We have moved to a new Sailfish OS Forum. Please start new discussions there.
12

[Feature Request] option to disable default initial uppercase in on-screen-keyboard typing

asked 2014-05-10 12:42:04 +0300

barral gravatar image

updated 2014-08-06 15:45:21 +0300

jiit gravatar image

I often encounter having to correct the proposal of the initial uppercase for a words' first character when typing with the on-screen-keyboard (e.g when writing an SMS message), because in the current context I would prefer using a lowercase character. Therefore, I would appreciate if an option existed to disable the default automatic shift key in the on-screen-keyboard.

edit retag flag offensive close delete

2 Answers

Sort by » oldest newest most voted
2

answered 2014-08-13 15:27:14 +0300

oitos gravatar image

updated 2014-08-17 05:57:22 +0300

[I too wanted to figure out how to disable autocaps and spent quite some time editing the config files, the solution eluding me..
well, just a few moments ago I stumbled on the solution in this thread: http://www.mobilio.biz/thread/keyboard_layouts_for_jolla_s_sailfish_os_yqylz.html]

In short one way to do it is to edit the language layout file of the languages you want to use and disable autocaps in each individually. You can see the code below these instructions.

An enhanced/clarified version of solution proposed on the page link above:
0. (( switch on developer mode ))
1. Log in to the device through SSH (or open Terminal on device)
2. Switch to developer mode:
devel-su
3. Navigate to the keyboard layouts folder:
/usr/share/maliit/plugins/com/jolla/layouts 4. Make a backup of the file(s) you want to edit:
cp lang.qml lang.qml_bak (eg: cp en.qml en.qml_bak)
5. Open your language file for edit:
nano en.qml
6. Find the section that says:
KeyboardLayout {
7. Copy the following text and paste it immediately under: KeyboardLayout {
// enables possibility to use own InputHandler,
// disables autocaps and text prediction
type: "custom"
Component.onCompleted: {
// disable autocaps
keyboard.autocaps = false
}
8. Press CTRL+S, then enter and then answer Y to save the document
9. Press CTRL+X to exit nano (you can skip step 8 by answering yes to save here)
10. Restart the keyboard service:
killall maliit-server

The result of the edit should look like this:
KeyboardLayout {
// enables possibility to use own InputHandler,
// disables autocaps and text prediction
type: "custom"
Component.onCompleted: {
// disable autocaps
keyboard.autocaps = false
}
    KeyboardRow {
...

Btw: You can install nano with by running the command:
pkcon install nano
(root is not required.)

Another note: The lines with // in front of them are not read by the program, so you can leave them out if you want. They are for clarification.

edit flag offensive delete publish link more

Comments

Thanks a lot for posting this! It works for me.

However, it is important to mention that after having modified a lang.qml file, you have to reboot Jolla in order to let it take effect. Otherwise the keyboard for that language won't be loaded.

barral ( 2014-08-16 13:07:59 +0300 )edit

You're welcome! And thank you for highlighting the missing step of resetting the keyboard server to reflect the changes -- I have edited my post now with one method to do so.
You can also restart the keyboard server as user (not logging in w. devel-su) by executing:
systemctl --user restart maliit-server.service

oitos ( 2014-08-17 05:53:48 +0300 )edit
0

answered 2014-08-10 21:00:42 +0300

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

updated 2014-08-10 21:00:42 +0300

mad_dev gravatar image

I too am facing an issue with autocaps. My Arabic layout(http://talk.maemo.org/showthread.php?t=91917&page=29) fits perfectly without the shifted keyboard.

In the maemo sailfish keyboard thread(http://talk.maemo.org/showthread.php?t=91917), someone mentioned that the Chinese keyboard does not have autocaps.

The Chinese handler for zh_cn_pinyin.qml

/usr/share/maliit/plugins/com/jolla/Xt9CpInputHandler.qml

In particular, lines 326 and 363:

if (keyboard.shiftState !== ShiftState.LockedShift) {
                keyboard.shiftState = ShiftState.NoShift
            }

My experience with qml is non existent to actually make something out of it.

edit flag offensive delete publish link more
Login/Signup to Answer

Question tools

Follow
3 followers

Stats

Asked: 2014-05-10 12:42:04 +0300

Seen: 381 times

Last updated: Aug 17 '14