can I change the main keyboard of Sailfish OS? or remove the typing popup, it’s something that bothers me
The keyboard layouts are in
/usr/share/maliit/plugins/com/jolla/layouts/
There are the layouts for all languages, e.g. for german, de.qml . Open with editor in devel-su mode.
There are paragraphs named ‘Keyboard row’ inside are lines named ‘CharakterKey’.
If you remove at the end, e.g. for the E, this: ’ accents: “èéëꀔ; accentsShifted: “ÈÉÊË€” ’ and then reboot the GUI, the popups are gone. Take care not to remove the ‘}’ at the end of each line.
You can also add a row above the existing ones for numbers, add some extra characters or change the height if you want.
One paragraph is for one line in the layout, one line inside the paragraph is for one button.
caption is for small letters, captionShifted is for Capital letters, symView is for ‘?123’ symbol key, symView2 is for ‘?123’ symbol key + shifted.
I didn’t find the “maliit” folder
You have to start your file browser feom the terminal to have access to all files, otherwise the sandboxing blocks you.
manage to edit , remove exactly as in the example and the keyboard turns blue without any letter, something I have done wrong?
I remove that whole sentence, right? accents: “èéëê—; Shifted accents: “ÈÉÉÊË€
I managed to edit thanks for the help
Change only the letters in accent and accentShifted itself and nothing else please.
You can delete accent characters you’ll never need or add whatever you want. I added also capital letters to all small letters so I haven’t to push shift any more when writing text in german.
If you install File Browser v. 2.5.1-1 from OpenRepos you see all files also when starting FB from app grid.
Q: another Keyboard question:
Can I also add ‘cursor right’ and ‘cursor left’ button to Keyboard?
With editing the file
/usr/share/maliit/plugins/com/jolla/layouts/de.qml
it’s possible to change or add letters to buttons, also remove never used letters.
But how can I add a ‘cursor left’ or ‘cursor right’ to a button?
When editing the above mentioned file in vi editor, if I type ‘cursor left’ or ‘cursor right’ instead of a letter, number or sign, the cursor moves left or right but I can’t add the function to the key.
I think by myself without real knowledge at the moment, maybe the best place for these keys would be in the lowest line beside the Space button. There is also more than enough room when making the Space bar narrower.
Where (in what file) is the lowest line with ‘?123’, comma, Space bar, dot and ‘Enter’ defined?
Thanks for any hint!
Maybe it helps to take a look at the files of an already existing keyboard with arrows, just search openrepos for ‘arrows’.
There are indeed some kbds out there with arrows, look on openrepos.
- English Keyboard with Arrows | OpenRepos.net — Community Repository System
- German Keyboard with Arrows | OpenRepos.net — Community Repository System
And it’s funny you mention vi
in this context, as its UI was designed specifically to not need things like arrow keys.
In vi, when not in edit mode, use hjkn
to move the cursor.
Again I have a question, please.
Currently I have set ‘Split Keyboard’ ON in settings, and in landscape mode I have therefore Q-T on the left side, word suggestions in the middle, and Z-Ü on the right side. (german keyb.).
Is there a way to change this by tweak in the .qml files?
I’d like to have it this way: Word suggestions left, Q-T in the middle, Z-Ü right.
Thanks for any hint!
Could make it work!
For this, I edited the keyboard file
/usr/share/maliit/plugins/com/jolla/layouts/de.qml
to get this:
/*
* Copyright (C) 2013 Jolla ltd and/or its subsidiary(-ies). All rights reserved.
*
* Contact: Pekka Vuorela <pekka.vuorela@jollamobile.com>
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice, this list
* of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
* Neither the name of Jolla Ltd nor the names of its contributors may be
* used to endorse or promote products derived from this software without specific
* prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
* THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
import QtQuick 2.0
import ".."
KeyboardLayout {
splitSupported: true
KeyboardRow {
CharacterKey { caption: "1"; captionShifted: "1" }
CharacterKey { caption: "2"; captionShifted: "2" }
CharacterKey { caption: "3"; captionShifted: "3" }
CharacterKey { caption: "4"; captionShifted: "4" }
CharacterKey { caption: "5"; captionShifted: "5" }
CharacterKey { caption: "6"; captionShifted: "6" }
CharacterKey { caption: "7"; captionShifted: "7" }
CharacterKey { caption: "8"; captionShifted: "8" }
CharacterKey { caption: "9"; captionShifted: "9" }
CharacterKey { caption: "0"; captionShifted: "0" }
FittedCharacterKey { caption: "ß"; captionShifted: "@" }
CharacterKey { caption: "q"; captionShifted: "Q"; symView: "_"; symView2: "€"; accents: "Q"; accentsShifted: "q" }
CharacterKey { caption: "w"; captionShifted: "W"; symView: "|"; symView2: "£"; accents: "W"; accentsShifted: "w" }
CharacterKey { caption: "e"; captionShifted: "E"; symView: "$"; symView2: "$"; accents: "&Eé€"; accentsShifted: "&eÉ€" }
CharacterKey { caption: "r"; captionShifted: "R"; symView: "§"; symView2: "¥"; accents: "#R!¡"; accentsShifted: "#!r¡" }
CharacterKey { caption: "t"; captionShifted: "T"; symView: "{"; symView2: "₹"; accents: "T~"; accentsShifted: "t~" }
CharacterKey { caption: "z"; captionShifted: "Z"; symView: "["; symView2: "¤"; accents: "Z"; accentsShifted: "z" }
CharacterKey { caption: "u"; captionShifted: "U"; symView: "]"; symView2: "<"; accents: "&_úU"; accentsShifted: "&_uúÚ" }
CharacterKey { caption: "i"; captionShifted: "I"; symView: "}"; symView2: ">"; accents: "Ií"; accentsShifted: "Íií" }
CharacterKey { caption: "o"; captionShifted: "O"; symView: "<"; symView2: "["; accents: "óO"; accentsShifted: "Óoó" }
CharacterKey { caption: "p"; captionShifted: "P"; symView: ">"; symView2: "]"; accents: "‰§%P+"; accentsShifted: "‰§%p+" }
FittedCharacterKey { caption: "ü"; captionShifted: "Ü"; symView: "%"; symView2: "‰"; accents: "Ü" }
}
KeyboardRow {
CharacterKey { caption: "|"; captionShifted: "|"; accents: ""; accentsShifted: "" }
CharacterKey { caption: "_"; captionShifted: "_"; accents: ""; accentsShifted: "" }
CharacterKey { caption: "-"; captionShifted: "-"; accents: ""; accentsShifted: "" }
CharacterKey { caption: "$"; captionShifted: "$"; accents: ""; accentsShifted: "" }
CharacterKey { caption: "{"; captionShifted: "{"; accents: ""; accentsShifted: "" }
CharacterKey { caption: "["; captionShifted: "["; accents: ""; accentsShifted: "" }
CharacterKey { caption: "]"; captionShifted: "]"; accents: ""; accentsShifted: "" }
CharacterKey { caption: "}"; captionShifted: "}"; accents: ""; accentsShifted: "" }
CharacterKey { caption: "<"; captionShifted: "<"; accents: ""; accentsShifted: "" }
CharacterKey { caption: ">"; captionShifted: ">"; accents: ""; accentsShifted: "" }
CharacterKey { caption: "€"; captionShifted: "€"; accents: ""; accentsShifted: "" }
CharacterKey { caption: "a"; captionShifted: "A"; symView: "*"; symView2: "`"; accents: "A@'áåæ"; accentsShifted: "a@'ÁÅÆ"}
CharacterKey { caption: "s"; captionShifted: "S"; symView: "#"; symView2: "^"; accents: "|*S;ş$"; accentsShifted: "|*s;Ş$" }
CharacterKey { caption: "d"; captionShifted: "D"; symView: "+"; symView2: "|"; accents: "÷D:/$"; accentsShifted: "÷d:/$" }
CharacterKey { caption: "f"; captionShifted: "F"; symView: "-"; symView2: "_"; accents: "F?¿"; accentsShifted: "?¿" }
CharacterKey { caption: "g"; captionShifted: "G"; symView: "="; symView2: "§"; accents: ">=Gğ'\""; accentsShifted: ">=gĞ'\"" }
CharacterKey { caption: "h"; captionShifted: "H"; symView: "("; symView2: "{"; accents: "H"; accentsShifted: "h" }
CharacterKey { caption: "j"; captionShifted: "J"; symView: ")"; symView2: "}"; accents: "J"; accentsShifted: "j" }
CharacterKey { caption: "k"; captionShifted: "K"; symView: "\""; symView2: "°"; accents: "<K([{"; accentsShifted: "<k([{" }
CharacterKey { caption: "l"; captionShifted: "L"; symView: "~"; symView2: "·"; accents: ">L)]}"; accentsShifted: ">l)]}" }
CharacterKey { caption: "ö"; captionShifted: "Ö"; symView: "!"; symView2: "¡"; accents: "Ö"; accentsShifted: "ö" }
CharacterKey { caption: "ä"; captionShifted: "Ä"; symView: "?"; symView2: "¿"; accents: "Ä"; accentsShifted: "ä" }
}
KeyboardRow {
splitIndex: 11
CharacterKey { caption: "*"; captionShifted: "*"; accents: ""; accentsShifted: "" }
CharacterKey { caption: "/"; captionShifted: "/"; accents: "\\"; accentsShifted: "\\" }
CharacterKey { caption: "+"; captionShifted: "+"; accents: ""; accentsShifted: "" }
CharacterKey { caption: "-"; captionShifted: "-"; accents: ""; accentsShifted: "" }
CharacterKey { caption: "="; captionShifted: "="; accents: ""; accentsShifted: "" }
CharacterKey { caption: "("; captionShifted: "("; accents: ""; accentsShifted: "" }
CharacterKey { caption: ")"; captionShifted: ")"; accents: ""; accentsShifted: "" }
CharacterKey { caption: "'"; captionShifted: "\""; accents: "\""; accentsShifted: "" }
CharacterKey { caption: "#"; captionShifted: "~"; accents: ""; accentsShifted: "" }
CharacterKey { caption: "?"; captionShifted: "¿"; accents: "¿"; accentsShifted: "" }
CharacterKey { caption: "!"; captionShifted: "¡"; accents: "¡"; accentsShifted: "" }
ShiftKey {}
CharacterKey { caption: "y"; captionShifted: "Y"; symView: "@"; symView2: "«"; accents: "ýY¥"; accentsShifted: "Ýy¥" }
CharacterKey { caption: "x"; captionShifted: "X"; symView: "&"; symView2: "»"; accents: "X*"; accentsShifted: "x*" }
CharacterKey { caption: "c"; captionShifted: "C"; symView: "/"; symView2: "÷"; accents: "Cç"; accentsShifted: "cÇ" }
CharacterKey { caption: "v"; captionShifted: "V"; symView: "\\"; symView2: "“"; accents: "V"; accentsShifted: "v" }
CharacterKey { caption: "b"; captionShifted: "B"; symView: "'"; symView2: "”"; accents: "`B"; accentsShifted: "`b" }
CharacterKey { caption: "n"; captionShifted: "N"; symView: ";"; symView2: "„"; accents: "Nñ#"; accentsShifted: "nÑ#" }
CharacterKey { caption: "m"; captionShifted: "M"; symView: ":"; symView2: "×"; accents: "×M-"; accentsShifted: "×m-" }
BackspaceKey {}
}
SpacebarRow {}
}
and saved under dela.qml
.
In file
/usr/share/maliit/plugins/com/jolla/layouts/layouts_western.conf
I duplicated the de.qml entry and renamed the duplicate to dela.qml.
Restarted GUI and result see photo above!
So I’m very happy now in landscape mode, in portrait mode I have to swipe keyboard to the original one.
edit: Reducing keyboard height went by editing
/usr/share/maliit/plugins/com/jolla/KeyboardGeometry.qml
line 16, change the 58 value to e.g. 37:
property int keyHeightLandscape: isLargeScreen ? keyHeightPortrait : 58*verticalScale
line 17, change the 80 value to e.g. 50:
property int keyHeightPortrait: 80*verticalScale
line 36, change the 99 value to 70:
property int popperHeight: isLargeScreen ? 99*scaleRatio : 120*scaleRatio
Then keyboard must be restarted:
systemctl --user restart lipstick
This was done on Xperia 10 / SFOS 4.5.0.24, newer SFOS versions and devices may differ.