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.
Sweet…
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 us.yaml
) to .local/share/squeekboard/keyboards
, if you want the terminal-style board in landscape view as well.
(Meaning the us.yaml
and 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 whateverlanguage.yaml
in .local/share/squeekboard/keyboards
.
By the way, it’s certainly possible to add additional language keyboards from Settings
- 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 .yaml
in .local/share/squeekboard/keyboards
and switch between them. If you have, say, both us.yaml
and 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.
. Selecting 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 us.yaml
(in .local/share/squeekboard/keyboards
) to 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.