For Phosh, I usually find the touchscreen “english” keyboard to be a nuisance when it the default for an application, as opposed to the “terminal” keyboard, that I like much more. I looked in the keyboard settings, but I did not see a way to enable only the terminal keyboard, disabling the “english” keyboard. Is this possible?
Several existing discussions. Search is your friend e.g. Squeekboard set default layout to terminal
I have myself mused that I would prefer it to default to “terminal” and I am not the only one. There may not be a sane, straightforward way to change this right now but seemingly it can be changed.
You could add the terminal layout named as the standard one on /home/purism/.local/share/squeekboard/keyboards/en (or your language code) this way the keyboard will use this instead of the default one.
I did it with a symbolic link, so if I edit my terminal layout this one changes as well.
I just realized that I didn’t do it with the link as it wasn’t working.
I created the
squeekboard/keyboards path in
.local/share, then downloaded this file: https://source.puri.sm/Librem5/squeekboard/-/blob/master/data/keyboards/terminal/us.yaml`, placing it in my keyboards directory. (It’s labeled “us,” but it’s actually terminal layout.)
Everything now defaults to terminal-style keyboard, although it still shows
English (US) as selected, just like it already showed by default when opening Terminal, even though the layout is obviously “Terminal.”
Thanks for the tip,@uzanto.
EDIT: FYI, the L5’s original
English (US) (*) keyboard won’t be available for use while the above version exists within
.local, if that’s a concern. But you could always just remove the personal version, or temporarily rename it, if you want to revert to the original.
(*) …or whichever language your default keyboard version uses
EDIT, AGAIN: I just realized that you also need to add
us_wide.yaml (in addition to
.local/share/squeekboard/keyboards, if you want the terminal-style board in landscape view as well.
us_wide.yaml files that the contributor uploaded as terminal-style versions in
data/keyboards/terminal at https://source.puri.sm/Librem5/squeekboard/-/blob/master/data/keyboards/terminal/fr_wide.yaml )
Awesome! That is just what I am looking for. Can’t wait to try it after work (:
Actually, I should have been clearer … I want the terminal emulator to default to the Terminal layout but I don’t necessarily want any other applications to default to the Terminal layout. They can default to the system default layout.
Is it even possible to have a different layout depending on the application?
As other discussion has said, this is definitely what you want, not just per application but per context within an application.
Entering an email address? Hiding @ away and not having .com is a hindrance and want easy access to dot. Entering a SIM PIN? Only needs numbers (I think). Entering a URL? Want easy access to / and maybe : and dot. None of those needs up and down arrow. Email addresses and URLs could benefit from left and right arrow. Sitting in the shell? Want all four arrow keys and want easy access to characters like - | & ; ( ) as well as /. You get the idea.
Indeed. That’s why I suggested that a user would want something that is sane and straightforward.
Still it’s great that there is at least some means of changing the layout.
This is the current behavior for some time now. Everything else defaults to the non-Terminal style, unless you make a change like I did.
But it would be good to have per-app options.
Could you do some fancy (and potentially dangerous) .desktop exec instructions?
I’m thinking that new phone setting app would be perfect for something like this. It already has similar feature with setting the size per app - why not keyboard layout as well?
And just ot be clear, that terminal keyboard is US-layout for the rest of us. I’d like to have the additional terminal keys along with my language keyboard, not as a separate keyboard.
I don’t think, based on the way keyboard assignment is done, that it would work on a default-per-app basis. Currently, that is.
In this link (which for some strange reason redirects itself up to the main directory instead of the sub-directory I intended), if you look in the
data/terminal sub-directory, there is already a
fr.yaml terminal-style file, as well as the
us.yaml. I think all one has to do is to copy the particular language layout, copy the terminal extra keys, merge them into one, and then save as
By the way, it’s certainly possible to add additional language keyboards from
Region & Language. That makes it possible to use a non-Terminal-style keyboard again.
But oddly, adding
English (UK) or
English (Canada) doesn’t effect a change to non-Terminal-style, while adding
French, for example, does. I guess my modified
English (US)+ Terminal keys prevents that.
EDIT: You can also have more than one personal
.local/share/squeekboard/keyboards and switch between them. If you have, say, both
fr.yaml, and your region/lanuage is set to English-US, the following happens:
. Keyboard defaults to terminal style, but
English (US) is shown as selected when you tap the globe icon.
. It’s not possible to see/use the original non-terminal-style
English (US) keyboard.
French displays a non-terminal-style keyboard in French layout.
. Then selecting
Terminal displays the terminal-style keyboard with French layout.
In case anyone is wondering, if you change the personal
terminal.yaml, it doesn’t help; the regular/original keyboard behavior takes over again, i.e. it doesn’t default to terminal-style everywhere anymore. The personal
terminal.yaml is ignored.
FYI, the Italian keyboard has a similar qwerty layout to the default English (US) keyboard.