Skip to content

Web: Add mobile keyboard support / mobile keyboard is not working #847

Description

@trvrj

Maintainer edit: Due to engine limitations, to use the app on a mobile device, you need to have a physical keyboard at the moment, either plugged through the device charging port or connected via Bluetooth.

The app is built on Godot 3 which does not support the on-screen keyboard on mobile devices. If someone would like to contribute this feature, this could perhaps be achieved by coordinating an invisible HTML form elements overlaid on top of editable text fields in the app, and by sending the input received through these HTML elements to the app.


The app tells me that my mobile browser screen is too narrow and to use at my own risk.

I would enjoy using this during downtime at work on my phone. The issue I'm running into is I'm unable to tap the IDE portion and enter text to add or edit the code. When I tap, the cursor appears but the keyboard will not popup. I have tried with Opera Full, Opera Gaming Browser, Chrome, and Samsung's browser with the same issue. It would be great to have mobility functionality so I can learn no matter where I am.

Activity

  1. NathanLovato commented on Aug 11, 2023

    @NathanLovato
    Contributor

    The app doesn't support mobile platforms, and adding mobile support for this is not planned at the moment as it's not easy to offer with a web export in Godot. In the future we'd like to support mobile devices better but it'll take a lot of work, and we have other needs we've decided to prioritize.

    Physical keyboards are supported so right now the workaround is to connect a physical or a bluetooth keyboard to your tablet or mobile phone.

    If there are motivated contributors who'd like to help in this area though, their help would be most welcome!

  2. trvrj commented on Aug 11, 2023

    @trvrj
    Author

    I see. Thank you.

  3. changed the title [-]Mobile learning[/-] [+]Add mobile support[/+] on Mar 29, 2024
  4. pinned this issue on Apr 21, 2024
  5. changed the title [-]Add mobile support[/-] [+]Mobile devices are not supported (the mobile keyboard does not appear)[/+] on May 9, 2025
  6. wfllive commented on Oct 29, 2025

    @wfllive

    Hello, you can't have a 12.4-inch tablet with a keyboard, are you kidding me? Now there is also a mobile application godot 4 there you can write code, and you can't learn the keyboard exercise, only the physical keyboard, because I wanted support to add resolution.

  7. changed the title [-]Mobile devices are not supported (the mobile keyboard does not appear)[/-] [+]Add mobile keyboard support[/+] on Dec 11, 2025
  8. changed the title [-]Add mobile keyboard support[/-] [+]Add mobile keyboard support / mobile keyboard not working[/+] on Dec 11, 2025
  9. NathanLovato commented on Dec 11, 2025

    @NathanLovato
    Contributor

    Generally it'll be much more comfortable to use a physical keyboard, even on mobile devices, and magnet or bluetooth keyboards specifically for phone and tablets actually exist.

    That said though, the reason we don't have support for on-screen keyboards is an inherent limitation of the technology plus lack of time, or eager contributor, or sponsorship for example to implement a reliable workaround. But it's not a simple issue to address very well with this technology. It's rather a design consideration we'll keep from the start the day we make a new app.

  10. Archeia commented on Apr 11, 2026

    @Archeia

    Unsure if this is the place to report, I apologize in advance. I just tried this on mobile (Samsung Android) and while the virtual keyboard works, it is impossible to use special characters like parenthesis. When I press those keys it returns nothing.

  11. NathanLovato commented on Apr 11, 2026

    @NathanLovato
    Contributor

    No worries and thanks for the info! In general, the mobile keyboard remains unsupported in the browser. The main way to add mobile support will remain to port and release the application on mobile devices natively. Then in the browser, we could hack it. But it's a fair amount of work + it's possibly going to be a bit brittle/give a so-so experience.

    Either way, it's a lot of work and it's not something that we will be able to do soon.

  12. changed the title [-]Add mobile keyboard support / mobile keyboard not working[/-] [+]Web: Add mobile keyboard support / mobile keyboard is not working[/+] on Apr 28, 2026
  13. NathanLovato commented on Jul 12, 2026

    @NathanLovato
    Contributor

    Collecting notes on this by @Xananax from #1336. In short, while we're aware there's a simple way to forward on screen keyboard input from javascript to Godot, there are UX problems to solve and a simple code patch is not enough to address this:

    • The tab key (for indentation) still gets swallowed but users need a way to indent their code, and it's done with tabs by default in GDScript.
    • There's also the size of the on-screen keyboard to account for. It could cover code that users would not be able to reach in some cases and require detaching and moving the keyboard around.

    The reason we didn't implement the keyboard this way is that it lacks support for tab.

    We didn't decide on a solution for this. We considered:

    1. Automatically convert double-space to tab, but it wouldn't be an obvious feature without some kind of warning and animation. It could also have false positives.
    2. Automatically convert space at the beginning of a line to tabs. So matching against ^\s, and ^\t+\s. This too though is non-obvious and could defy expectations.
    3. We looked at other applications, and realized almost all coding applications add their own bar on top of the keyboard, with special keys like tab, escape and so on. This is probably the cleanest solution, but requires quite a bit more work. I'm also not sure if can hide/show the bar only when the keyboard is shown/hidden. Finally, while most applications like Termux and co need to present multiple new keys such as escape, tab, tilda, and so on, we really only need tab, so the design might be a little awkward.

    There might be other solutions, but these are the ones I remember we identified when we discussed this internally.

    If this was an application for people who know how to code, then not having any of this would be ok. But since this is an application aimed at people who might have never coded before, leaving them without any obvious way to enter a tab character is problematic.

    I'm not convinced by any of the solutions above, to be honest.

    I'm open to any suggestion you may have (or anyone else reading).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions