HeliBoard keyboard is an improved fork of the now-unmaintained OpenBoard keyboard. It does not require internet permission, allowing it to be used 100% offline.

Features

  • Add dictionaries for suggestions and spell check

    • Build your own, or access them here, or in the experimental section (quality may vary)
    • Additional dictionaries for emojis or scientific symbols can be used to provide suggestions (similar to “emoji search”)
    • Note that for Korean layouts, suggestions only work using this dictionary; the tools in the dictionary repository cannot create working dictionaries
  • Customize keyboard themes (style, colors, and background image)

    • Can follow the system’s day/night setting on Android 10+ (and on some versions of Android 9)
    • Can follow dynamic colors for Android 12+
  • Customize keyboard layouts (only available when disabling system languages)

  • Multilingual typing

  • Glide typing (only with closed-source library ☹️)

    • Library not included in the app, as there is no compatible open-source library available
    • Can be extracted from GApps packages (“swypelibs”), or downloaded here
  • Clipboard history

  • One-handed mode

  • Split keyboard (only available if the screen is large enough)

  • Number pad

  • Backup and restore your learned word/history data

Hidden Functionality

Features that may go unnoticed, and further potentially useful information

  • Long-pressing the Clipboard Key (the optional one in the suggestion strip) pastes system clipboard contents.
  • Long-pressing keys in the suggestion strip toolbar pins them to the suggestion strip.
  • Long-press the Comma-key to access Clipboard View, Emoji View, One-handed Mode, Settings, or Switch Language:
    • Emoji View and Language Switch will disappear if you have the corresponding key enabled;
    • For some layouts, it’s not the Comma-key, but the key at the same position (e.g. it’s q for Dvorak layout).
  • When incognito mode is enabled, no words will be learned, and no emojis will be added to recents.
  • Sliding key input: Swipe from shift or symbol key to another key. This will enter a single uppercase key or symbol and return to the previous keyboard.
  • Hold shift or symbol key, press one or more keys, and then release shift or symbol key to return to the previous keyboard.
  • Long-press a suggestion in the suggestion strip to show more suggestions, and a delete button to remove this suggestion.
  • Swipe up from a suggestion to open more suggestions, and release on the suggestion to select it.
  • Long-press an entry in the clipboard history to pin it (keep it in clipboard until you unpin).
  • Swipe left in clipboard view to remove an entry (except when it’s pinned)
  • Select text and press shift to switch between uppercase, lowercase, and capitalize words
  • You can add dictionaries by opening the file
    • This only works with content-uris and not with file-uris, meaning that it may not work with some file explorers.
  • Debug mode / debug APK
    • Long-press a suggestion in the suggestion strip twice to show the source dictionary.
    • When using debug APK, you can find Debug Settings within the Advanced Preferences, though the usefulness is limited except for dumping dictionaries into the log.
      • For a release APK, you need to tap the version in About several times, then you can find debug settings in Advanced Preferences.
      • When enabling Show suggestion infos, suggestions will have some tiny numbers on top showing some internal score and source dictionary.
    • In the event of an application crash, you will be prompted whether you want the crash logs when you open the Settings.
    • When using multilingual typing, the space bar will show a confidence value used for determining the currently used language.
  • For users doing manual backups with root access: Starting at Android 7, some files and the main shared preferences file are not in the default location because the app is using device-protected storage. This is necessary so the settings and layout files can be read before the device is unlocked, e.g., at boot. The files are usually located in /data/user_de/0/<package_id>/, though the location may depend on the device and Android version.

Planned features and improvements:

  • Customizable functional key layout
    • Will likely result in having the same functional key layout for alphabet and symbols layouts
  • Support for alt, ctrl, meta and fn (#479)
  • Less complicated addition of new keyboard languages (e.g. #519)
  • Additional and customizable key swipe functionality
    • Some functionality will not be possible when using glide typing
  • Ability to enter all emojis independent of Android version (optional, #297)
  • (limited) support for customizing all internally used colors
  • Add and enable emoji dictionaries by default (if available for language)
  • Clearer / more intuitive arrangement of settings
    • Maybe hide some less used settings by default (similar to color customization)
  • Customizable currency keys
  • Customizable clipboard toolbar keys (#513, #403)
  • Ability to export/import (share) custom colors
  • Make use of the .com key in URL fields (currently only available for tablets)
    • With language-dependent TLDs
  • Internal cleanup (a lot of over-complicated and convoluted code)
  • (optionally?) move toolbar key pinning to a setting, so long press actions on unpinned toolbar keys are available
  • Bug fixes

What will not be added:

  • Material 3 (not worth adding 1.5 MB to app size)
  • Dictionaries for more languages (you can still download them)
  • Anything that requires additional permissions
  • Blisterexe@lemmy.zip
    link
    fedilink
    English
    arrow-up
    50
    arrow-down
    4
    ·
    edit-2
    7 months ago

    Material 3 (not worth adding 1.5 MB to app size)

    yes it is! Like am i insane to think that 1.5mb is absolutely worth it>

  • db2@lemmy.world
    link
    fedilink
    English
    arrow-up
    20
    arrow-down
    1
    ·
    7 months ago

    I switched from gboard yesterday, added the swipe lib… I wish there were a standard keyboard layout but other than that it’s 🔥. It needs emoji search though.

  • ᴇᴍᴘᴇʀᴏʀ 帝@feddit.uk
    link
    fedilink
    English
    arrow-up
    17
    ·
    7 months ago

    I switched to this a month or so ago and haven’t looked back. The only thing I miss is the ability to add gifs but that’s not a big deal.

    • GlenRambo@jlai.lu
      link
      fedilink
      English
      arrow-up
      8
      ·
      7 months ago

      I miss the gifts, and would love a kB that I can swap to in order to add a gif.

      What I miss most is emoji search and recommendation. There’s so many that I can never find the one I want when scrolling though each page.

      • ᴇᴍᴘᴇʀᴏʀ 帝@feddit.uk
        link
        fedilink
        English
        arrow-up
        3
        ·
        7 months ago

        Yes, it’s a long list of emojis, a reply below links to how you can add an English emoji dictionary. I just followed the instructions and it works well. 👍

  • cum@lemmy.cafe
    link
    fedilink
    English
    arrow-up
    19
    arrow-down
    2
    ·
    7 months ago

    We’re in 2024 and you don’t think 1.5mb extra package size is worth it for better polish and a user experience?

  • Bugger@mander.xyz
    link
    fedilink
    English
    arrow-up
    14
    ·
    7 months ago

    I test drove Heliboard the past week and I quite liked it, especially the customization options. I’ve been trying to escape Gboard for years but viable options with swipe typing support are few and far between.

    Unfortunately, the lack of Japanese input makes it a total non-starter for my use case so I had to go crawling back.

    • Yukito01@lemmy.world
      link
      fedilink
      English
      arrow-up
      5
      ·
      7 months ago

      Thanks for this. I was about to ask if Japanese input was supported. Why is it so hard to find a good keyboard for both Japanese and English? I usually have to end up sacrificing convenience in one or the other.

    • jayandp@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      5
      ·
      7 months ago

      Unfortunately, the lack of Japanese input makes it a total non-starter for my use case so I had to go crawling back.

      Ack, I also need that. Oof. Guess I’ll have to keep looking.

    • N4CHEM@lemmy.ml
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      7 months ago

      It’s a pity it doesn’t work for you right now, but I’d recommend to keep an eye on it since it’s under active development and you might see Japanese input added soon. You could also check open issues on GitHub or open a new one and give feedback about this need.

  • slimarev92@lemmy.world
    link
    fedilink
    English
    arrow-up
    13
    arrow-down
    2
    ·
    7 months ago

    How can I know this keyboard is secure? Reading all the source code feels impractical.

    • jbk@discuss.tchncs.de
      link
      fedilink
      English
      arrow-up
      25
      arrow-down
      2
      ·
      7 months ago

      It doesn’t even declare any network access permissions (and according to the README’s policy, it won’t in the future), so it couldn’t even be a keylogger.

      • evo@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        5
        ·
        7 months ago

        Despite widespread misinformation, that isn’t actually true. You DO NOT need to declare the Internet permission in an Android app. Google removed the requirement about 10 years ago when they realized pretty much every single app used the Internet permission. You only need it now if you are using sockets

        • jbk@discuss.tchncs.de
          link
          fedilink
          English
          arrow-up
          5
          ·
          7 months ago

          Do you have any sources or docs on that? Sounds pretty backwards but also new to me. I pretty recently tried to download images (using Glide) without any special permissions and it failed since the app was missing the android.permission.INTERNET declaration (just like HeliBoard)

          • evo@sh.itjust.works
            link
            fedilink
            English
            arrow-up
            1
            ·
            7 months ago

            I don’t have a reputable source (only stack overflow) because Google’s docs are misleading. They say you need INTERNET and ACCESS_NETWORK_STATE permissions but it simply isn’t true. I wonder if they regret the decision but can’t change it now because it could break older apps?

      • notfromhere@lemmy.ml
        link
        fedilink
        English
        arrow-up
        4
        arrow-down
        1
        ·
        edit-2
        7 months ago

        Could it log to some type of storage and a different app with network permissions upload it? I’m not an Android dev, just thinking aloud.

          • notfromhere@lemmy.ml
            link
            fedilink
            English
            arrow-up
            2
            arrow-down
            1
            ·
            7 months ago

            Not any app has direct access to every key that you type like the keyboard app does. It has all access to literally every PII you enter in using it. If any app needs additional scrutiny it would be the keyboard.

    • southsamurai@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      3
      arrow-down
      2
      ·
      7 months ago

      Fwiw, my cousin says it’s clean. But he’s a bit of a dick. He does code for a living though, so there’s that.

  • Strayce@lemmy.sdf.org
    link
    fedilink
    English
    arrow-up
    10
    ·
    edit-2
    7 months ago

    Love your work, this is fucking great! I’ve been looking for a decent replacement for Swiftkey for a while now. Anysoftkeyboard is fine, but the emoji and swipe support is less than stellar. Once installed and configured this works great. Solid, clean, simple, intuitive.

    I have a few less tech-savvy friends also looking to ditch Swiftkey. I’d love to recommend this but they’re going to need a drop in replacement; the lack of swipe and emoji prediction out-of-the-box is going to be a deal breaker. Please keep working on this project, it’s genuinely awesome! Looking forward to the next update.

  • MNByChoice@midwest.social
    link
    fedilink
    English
    arrow-up
    8
    ·
    edit-2
    7 months ago

    I am surprised at how much more responsive my phone is now. GBoard wad 495 MiB, HeliBoard is nearly 34 MiB. (No idea how much was loaded into RAM.)

    Edit: I am aware of the cognitive bias of newness. My phone has 3 GiB of RAM, so it is possible there was a real impact.

  • Southern Wolf@pawb.social
    link
    fedilink
    English
    arrow-up
    8
    ·
    7 months ago

    It’s great seeing HeliBoard come so far, especially after it seemed like OpenBoard was potentially dead. I’m still a (firewalled on CalyxOS) GBoard user, but HeliBoard is the closest I’ve found to a viable replacement for it. I’m definitely looking forward to seeing what future developments it has in store.

  • raptore39@lemm.ee
    link
    fedilink
    English
    arrow-up
    8
    ·
    7 months ago

    I cannot believe how responsive this keyboard is. Absolutely love it and I have multilingual typing enabled. The swiping is also incredibly smooth after loading the library they suggested. Stunning

  • JCreazy@midwest.social
    link
    fedilink
    English
    arrow-up
    7
    ·
    7 months ago

    I am going to check this out because I am cuurently using Florisboard which I haven’t been too thrilled with.

    • catnash [she/her, ae/aer]@lemmy.blahaj.zone
      link
      fedilink
      English
      arrow-up
      8
      ·
      7 months ago

      It’s additional because the recommended gesture typing libraries (I believe it’s one made by Google?) are closed-source, so an open-source project wouldn’t be able to share them within the repository or release and keep the open-source label because a component would be closed-source.

      There are open-source gesture typing libraries out there but they’re such a bother to set up I just accept the proprietary software. In HeliBoard it took me a few moments to have it going.