This hack is for the keyboard. It provides 4 rows including permanent display of numbers and intelligent popups for nearly every sign. It’s for german language, for other languages as an example how to do this hack.
Reduce the keyboard's height & Keyboard layout change:
---------------------------------------------
Reduce the keyboard's height - for layout extension see larger file at the end.
/usr/share/maliit/plugins/com/jolla/KeyboardGeometry.qml
vi /usr/share/maliit/plugins/com/jolla/KeyboardGeometry.qml
As a reminder, if using vi or vim, you can display the lines number by typing
:set number Line numbers may vary in other SFOS versions.
16 32 line 16, change the 58 value to e.g. 37: // line 32 in SFOS 4.6.0.13
property int keyHeightLandscape: isLargeScreen ? keyHeightPortrait : 58*verticalScale
17 33 line 17, change the 80 value to e.g. 50: // line 33 in SFOS 4.6.0.13
property int keyHeightPortrait: 80*verticalScale
36 52 line 36, change the 99 value to 70: // Line 36 in SFOS 4.5.0.19, line 52 in SFOS 4.6.0.13
property int popperHeight: isLargeScreen ? 99*scaleRatio : 120*scaleRatio
Then restart the GUI of course.
systemctl --user restart lipstick
Undo:
cp /usr/share/maliit/plugins/com/jolla/KeyboardGeometry.qml.bak /usr/share/maliit/plugins/com/jolla/KeyboardGeometry.qml
--------------------------------------------- LAST TWEAK OF LIST
---------------------------------------------
Extend keyboard layout with smarter popups - no more shift and symbol needed -
Example: DE, is possible to make this the same way for other languages.
File is: /usr/share/maliit/plugins/com/jolla/layouts/de.qml
Make backup:
cp /usr/share/maliit/plugins/com/jolla/layouts/de.qml /usr/share/maliit/plugins/com/jolla/layouts/de.qml.bak
Edit file:
vi /usr/share/maliit/plugins/com/jolla/layouts/de.qml
Undo:
cp /usr/share/maliit/plugins/com/jolla/layouts/de.qml.bak /usr/share/maliit/plugins/com/jolla/layouts/de.qml
This is the keyboard layout with 4 rows and extended popups (german), but QWERTY.
Comment out with // "the other line" if you want QWERTZ.
After changing restart the GUI of course.
Replace content of file after the licence text with this:
import QtQuick 2.0
import ".."
KeyboardLayout {
splitSupported: true
KeyboardRow {
CharacterKey { caption: "1"; captionShifted: "1"; symView: "1"; symView2: "1" }
CharacterKey { caption: "2"; captionShifted: "2"; symView: "2"; symView2: "2" }
CharacterKey { caption: "3"; captionShifted: "3"; symView: "3"; symView2: "3" }
CharacterKey { caption: "4"; captionShifted: "4"; symView: "4"; symView2: "4" }
CharacterKey { caption: "5"; captionShifted: "5"; symView: "5"; symView2: "5" }
CharacterKey { caption: "6"; captionShifted: "6"; symView: "6"; symView2: "6" }
CharacterKey { caption: "7"; captionShifted: "7"; symView: "7"; symView2: "7" }
CharacterKey { caption: "8"; captionShifted: "8"; symView: "8"; symView2: "8" }
CharacterKey { caption: "9"; captionShifted: "9"; symView: "9"; symView2: "9" }
CharacterKey { caption: "0"; captionShifted: "0"; symView: "0"; symView2: "0" }
FittedCharacterKey { caption: "ß"; captionShifted: "@"; symView: "°"; symView2: "¤" }
}
KeyboardRow {
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: "y"; captionShifted: "Y"; symView: "@"; symView2: "«"; accents: "ýY¥"; accentsShifted: "Ýy¥" }
// 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: "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: 5
ShiftKey {}
CharacterKey { caption: "z"; captionShifted: "Z"; symView: "["; symView2: "¤"; accents: "Z"; accentsShifted: "z" }
// 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 {}
}