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

Revision history [back]

click to hide/show revision 1
initial version

posted 2014-01-31 02:24:37 +0200

jgr gravatar image

HowTo: Adapt Sailfish virtual keyboard (vkb) layout

It is quite easy to adapt the virtual keyboard of Sailfish OS in such a way, that you do not spoil any of the original layouts and that it also should survive a system update. While you can do it all on the Jolla handset itself, I personally prefer using a PC for it.

What you need:

  • Developer mode activated (including ssh access when using the PC; see below).
  • An Unicode capable editor (UTF-8), I prefer SciTE (http://www.scintilla.org). (Alternatively you may use vi directly on the Jolla handset -- but if you can use this, you do not need the following instructions ;-)
  • An ssh client, I prefer Cygwin Terminal. (Alternatively you may use Terminal on the Jolla handset.)
  • WiFi access from your PC to your Jolla handset
  • USB access from your PC to your Jolla handset
  • FileBrowser app on your Jolla handset (get it from the Jolla Store)

Developer mode

  1. Go to |- Settings | System Settings | Developer Mode -|. ( Because your Jolla device can access the Jolla apps shop, a Terminal app is installed now.)
  2. Activate „Developer mode“.
  3. Activate „Remote connection” (either enter and [Save] a password or [Generate] it; if you generate it, you have to edit it slightly before the [Save] button becomes available).
  4. Note the WiFi IP address shown under ""Networking".

Getting the layout template

  1. Open FileBrowser.
  2. From the pulley menu select "Go to home".
  3. Using the 3 dots in the top left, go to the root of the file system (no dot being shown any longer).
  4. Go down in the file system to (tapping each of the directory icons): /usr/share/maliit/plugins/com/jolla/layouts/
  5. Look for the qml file of the language you want to use as a template, e.g. de.qml for German.
  6. Tap-and-hold that file.
  7. From the context menu opening select "Copy".
  8. From the pulley menu select "Home".
  9. Go down to directory "Downloads".
  10. From the pulley menu select "Paste".
  11. Connect Jolla handset and PC via USB.
  12. When requested, select "PC connection".
  13. Using your PC file browser (e.g. Windows Explorer) go to the "Sailfish" device, directory "Downloads" (in Windows, the address line should show: "Computer\Sailfish\Phone Memory\Downloads").
  14. Copy the previous qml file onto your PC.
  15. Rename the qml file suitably, e.g. de.qml into dex.qml (x = extended)

Editing the template

  1. Open the renamed qml file in the text editor of your choice.
  2. Make sure, the character coding is set to UTF-8 (in SciTE: |- File | Encoding | UTF-8 -|.

Study the file contents. You have

  • 3 entries "KeyboardLayout" corresponding to the 3 rows of keys (except the lowest one with the space bar).
  • 7 or 11 "CharacterKeys" in each row corresponding to the actual keys.
  • For each CharacterKey a
    • "caption": lower case letter
    • "captionShifted": upper case letter
    • "symView": 1st level figure/symbol character
    • "symView2": 2nd level figure/symbol character
    • "accents": The list of characters appearing when you tap-and-hold a key in the lower case letter level
    • "accentsShifted": The list of characters appearing when you tap-and-hold a key in the upper case letter level
  • 1 entry "SpacebarRow": A reference for the space bar row definitions. (You may change even this row, check file http://bundyo.org/jolla/layouts/bg.qml.)

Most interesting probably are changes to the "accents" and "accentsShifted" entries, you may add such entries for any key not yet having such entry. For example, I created a keyboard layout where each key of the upper row includes a number from 1 to 9 and 0 in the accents and accentsShifted and the most right key holding some special characters such as @.

When finished with editing, save the file.

Creating a config file

In order that Sailfish recognizes your newly created layout, you need a config file. This should have the same name as the layout file, except for the extension being "conf", i.e. dex.conf. The contents should be:

[dex.qml]

name=DeutschX

languageCode=DE

With:

  • 1st line: file name of layout file
  • 2nd line: indicating the language as shown when tap-and-holding the space bar of the vkb
  • 3rd line: international language code as shown on the space bar

Create such file on your computer, e.g. using SciTE.

Copying the layout and config file back onto the Jolla handset

Because the Sailfish FileBrowser cannot copy files into the system directories, you need command line access to the handset.

  1. Using the file browser of your computer copy the 2 files back to the Download directory of the Jolla device.
  2. On the PC start the ssh client (e.g. Cygwin Terminal).
  3. Connect to the Jolla device: On the command line enter: xxx.xxx.xxx.xxx -l nemo and \<enter\&gt;. (xxx.xxx.xxx.xxx="" being="" the="" wifi="" ip="" address="" you="" noted="" earlier;="" "-l"="hyphen" +="" lower="" case="" l).="" (the="" ssh="" client="" connects="" to="" the="" handset="" and="" asks="" for="" the="" password.="" if="" it="" should="" not="" connect,="" somehow="" the="" pc="" does="" not="" find="" the="" way="" to="" the="" jolla.="" check="" your="" firewall.="" on="" my="" system="" for="" example,="" i="" can="" only="" connect="" when="" the="" pc="" is="" connected="" to="" the="" router="" via="" cable.)<="" li="">
  4. When prompted for the password, enter the "Remote connection" password you created earlier and \<enter\&gt;. (the="" command="" line="" prompt="" of="" sailfish="" appears,="" the="" prompt="" will="" be="" "$".="" you="" are="" logged="" in="" as="" user.)<="" li="">
  5. On the command line enter devel-su and \<enter>. (You are asked for a password.)
  6. When prompted for the password, enter the "Remote connection" password you created earlier and \<enter\&gt;. (the="" command="" line="" prompt="" changes="" to="" "#".="" you="" are="" logged="" in="" as="" administrator.)<="" li="">

From now on be careful, what you are doing. As administrator you may break your handset!

  1. Copy the files created to the layout directory: Enter cd /home/nemo/Downloads and \<enter\&gt; (observe="" the="" upper="" case="" "d"="" in="" downloads="" --="" you="" are="" talking="" linux="" where="" file="" directory="" names="" are="" case="" sensitive).="" <="" li="">
  2. Check that you are in the right directory and your files are there: Enter dir and \<enter\&gt;. (in="" the="" list="" shown,="" your="" files="" should="" be="" included.)<="" li="">
  3. Copy the layout file: Enter cp dex.qml /usr/share/maliit/plugins/com/jolla/layouts/ and \<enter\&gt; (instead="" of="" dex.qml="" not="" your="" own="" file).="" <="" li="">
  4. Copy the layout file: Enter cp dex.config /usr/share/maliit/plugins/com/jolla/layouts/ and \<enter\&gt; (instead="" of="" dex.conf="" not="" your="" own="" file).="" <="" li="">
  5. Reset the keyboard service: Enter killall maliit-server and \<enter\&gt;.< li="">

Selecting the new keyboard layout

  1. Open any application that shows the keyboard.
  2. Tap-and-hold the space bar. (The languages available are displayed.)
  3. From the languages list select your language (as stated in the your conf file).

Enjoy.

PS: Helpful was http://talk.maemo.org/showthread.php?t=91917 found by @ssahla, see https://together.jolla.com/question/19999/cant-type-en-dash-on-virtual-keyboard/.

Initially created by: @jgr

HowTo: Adapt Sailfish virtual keyboard (vkb) layout

It is quite easy to adapt the virtual keyboard of Sailfish OS in such a way, that you do not spoil any of the original layouts and that it also should survive a system update. While you can do it all on the Jolla handset itself, I personally prefer using a PC for it.

What you need:

  • Developer mode activated (including ssh access when using the PC; see below).
  • An Unicode capable editor (UTF-8), I prefer SciTE (http://www.scintilla.org). (Alternatively you may use vi directly on the Jolla handset -- but if you can use this, you do not need the following instructions ;-)
  • An ssh client, I prefer Cygwin Terminal. (Alternatively you may use Terminal on the Jolla handset.)
  • WiFi access from your PC to your Jolla handset
  • USB access from your PC to your Jolla handset
  • FileBrowser app on your Jolla handset (get it from the Jolla Store)

Developer mode

  1. Go to |- Settings | System Settings | Developer Mode -|. ( Because your Jolla device can access the Jolla apps shop, a Terminal app is installed now.)
  2. Activate „Developer mode“.
  3. Activate „Remote connection” (either enter and [Save] a password or [Generate] it; if you generate it, you have to edit it slightly before the [Save] button becomes available).
  4. Note the WiFi IP address shown under ""Networking".

Getting the layout template

  1. Open FileBrowser.
  2. From the pulley menu select "Go to home".
  3. Using the 3 dots in the top left, go to the root of the file system (no dot being shown any longer).
  4. Go down in the file system to (tapping each of the directory icons): /usr/share/maliit/plugins/com/jolla/layouts/
  5. Look for the qml file of the language you want to use as a template, e.g. de.qml for German.
  6. Tap-and-hold that file.
  7. From the context menu opening select "Copy".
  8. From the pulley menu select "Home".
  9. Go down to directory "Downloads".
  10. From the pulley menu select "Paste".
  11. Connect Jolla handset and PC via USB.
  12. When requested, select "PC connection".
  13. Using your PC file browser (e.g. Windows Explorer) go to the "Sailfish" device, directory "Downloads" (in Windows, the address line should show: "Computer\Sailfish\Phone Memory\Downloads").
  14. Copy the previous qml file onto your PC.
  15. Rename the qml file suitably, e.g. de.qml into dex.qml (x = extended)

Editing the template

  1. Open the renamed qml file in the text editor of your choice.
  2. Make sure, the character coding is set to UTF-8 (in SciTE: |- File | Encoding | UTF-8 -|.

Study the file contents. You have

  • 3 entries "KeyboardLayout" corresponding to the 3 rows of keys (except the lowest one with the space bar).
  • 7 or 11 "CharacterKeys" in each row corresponding to the actual keys.
  • For each CharacterKey a
    • "caption": lower case letter
    • "captionShifted": upper case letter
    • "symView": 1st level figure/symbol character
    • "symView2": 2nd level figure/symbol character
    • "accents": The list of characters appearing when you tap-and-hold a key in the lower case letter level
    • "accentsShifted": The list of characters appearing when you tap-and-hold a key in the upper case letter level
  • 1 entry "SpacebarRow": A reference for the space bar row definitions. (You may change even this row, check file http://bundyo.org/jolla/layouts/bg.qml.)

Most interesting probably are changes to the "accents" and "accentsShifted" entries, you may add such entries for any key not yet having such entry. For example, I created a keyboard layout where each key of the upper row includes a number from 1 to 9 and 0 in the accents and accentsShifted and the most right key holding some special characters such as @.

When finished with editing, save the file.

Creating a config file

In order that Sailfish recognizes your newly created layout, you need a config file. This should have the same name as the layout file, except for the extension being "conf", i.e. dex.conf. The contents should be:

[dex.qml]

name=DeutschX

languageCode=DE

With:

  • 1st line: file name of layout file
  • 2nd line: indicating the language as shown when tap-and-holding the space bar of the vkb
  • 3rd line: international language code as shown on the space bar

Create such file on your computer, e.g. using SciTE.

Copying the layout and config file back onto the Jolla handset

Because the Sailfish FileBrowser cannot copy files into the system directories, you need command line access to the handset.

  1. Using the file browser of your computer copy the 2 files back to the Download directory of the Jolla device.
  2. On the PC start the ssh client (e.g. Cygwin Terminal).
  3. Connect to the Jolla device: On the command line enter: xxx.xxx.xxx.xxx -l nemo and \<enter\&gt;. (xxx.xxx.xxx.xxx="" being="" the="" wifi="" ip="" address="" you="" noted="" earlier;="" "-l"="hyphen" +="" lower="" case="" l).="" (the="" ssh="" client="" connects="" to="" the="" handset="" and="" asks="" for="" the="" password.="" if="" it="" should="" not="" connect,="" somehow="" the="" pc="" does="" not="" find="" the="" way="" to="" the="" jolla.="" check="" your="" firewall.="" on="" my="" system="" for="" example,="" i="" can="" only="" connect="" when="" the="" pc="" is="" connected="" to="" the="" router="" via="" cable.)<="" li="">
  4. [Enter]. (xxx.xxx.xxx.xxx being the WiFi IP address you noted earlier; "-l" = hyphen + lower case L). (The ssh client connects to the handset and asks for the password. If it should not connect, somehow the PC does not find the way to the Jolla. Check your firewall. On my system for example, I can only connect when the PC is connected to the router via cable.)
  5. When prompted for the password, enter the "Remote connection" password you created earlier and \<enter\&gt;. (the="" command="" line="" prompt="" of="" sailfish="" appears,="" the="" prompt="" will="" be="" "$".="" you="" are="" logged="" in="" as="" user.)<="" li="">
  6. [Enter]. (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)
  7. On the command line enter devel-su and \<enter>. [Enter]. (You are asked for a password.)
  8. When prompted for the password, enter the "Remote connection" password you created earlier and \<enter\&gt;. (the="" command="" line="" prompt="" changes="" to="" "#".="" you="" are="" logged="" in="" as="" administrator.)<="" li="">
  9. [Enter]. (The command line prompt changes to "#". You are logged in as administrator.)

From now on be careful, what you are doing. As administrator you may break your handset!

  1. Copy the files created to the layout directory: Enter cd /home/nemo/Downloads and \<enter\&gt; (observe="" the="" upper="" case="" "d"="" in="" downloads="" --="" you="" are="" talking="" linux="" where="" file="" directory="" names="" are="" case="" sensitive).="" <="" li="">
  2. [Enter] (observe the upper case "D" in Downloads -- you are talking Linux where file/directory names are case sensitive).
  3. Check that you are in the right directory and your files are there: Enter dir and \<enter\&gt;. (in="" the="" list="" shown,="" your="" files="" should="" be="" included.)<="" li="">
  4. [Enter]. (In the list shown, your files should be included.)
  5. Copy the layout file: Enter cp dex.qml /usr/share/maliit/plugins/com/jolla/layouts/ and \<enter\&gt; (instead="" of="" dex.qml="" not="" your="" own="" file).="" <="" li="">
  6. [Enter] (instead of dex.qml not your own file).
  7. Copy the layout file: Enter cp dex.config /usr/share/maliit/plugins/com/jolla/layouts/ and \<enter\&gt; (instead="" of="" dex.conf="" not="" your="" own="" file).="" <="" li="">
  8. [Enter] (instead of dex.conf not your own file).
  9. Reset the keyboard service: Enter killall maliit-server and \<enter\&gt;.< li="">
  10. [Enter].

Selecting the new keyboard layout

  1. Open any application that shows the keyboard.
  2. Tap-and-hold the space bar. (The languages available are displayed.)
  3. From the languages list select your language (as stated in the your conf file).

Enjoy.

PS: Helpful was http://talk.maemo.org/showthread.php?t=91917 found by @ssahla, see https://together.jolla.com/question/19999/cant-type-en-dash-on-virtual-keyboard/.

Initially created by: @jgr

HowTo: Adapt Sailfish virtual keyboard (vkb) layout

It is quite easy to adapt the virtual keyboard of Sailfish OS in such a way, that you do not spoil any of the original layouts and that it also should survive a system update. While you can do it all on the Jolla handset itself, I personally prefer using a PC for it.

What you need:

  • Developer mode activated (including ssh access when using the PC; see below).
  • An Unicode capable editor (UTF-8), I prefer SciTE (http://www.scintilla.org). (Alternatively you may use vi directly on the Jolla handset -- but if you can use this, you do not need the following instructions ;-)
  • An ssh client, I prefer Cygwin Terminal. (Alternatively you may use Terminal on the Jolla handset.)
  • WiFi access from your PC to your Jolla handset
  • USB access from your PC to your Jolla handset
  • FileBrowser app on your Jolla handset (get it from the Jolla Store)

Developer mode

  1. Go to |- Settings | System Settings | Developer Mode -|. ( Because your Jolla device can access the Jolla apps shop, a Terminal app is installed now.)
  2. Activate „Developer mode“.
  3. Activate „Remote connection” (either enter and [Save] a password or [Generate] it; if you generate it, you have to edit it slightly before the [Save] button becomes available).
  4. Note the WiFi IP address shown under ""Networking".

Getting the layout template

  1. Open FileBrowser.
  2. From the pulley menu select "Go to home".
  3. Using the 3 dots in the top left, go to the root of the file system (no dot being shown any longer).
  4. Go down in the file system to (tapping each of the directory icons): /usr/share/maliit/plugins/com/jolla/layouts/
  5. Look for the qml file of the language you want to use as a template, e.g. de.qml for German.
  6. Tap-and-hold that file.
  7. From the context menu opening select "Copy".
  8. From the pulley menu select "Home".
  9. Go down to directory "Downloads".
  10. From the pulley menu select "Paste".
  11. Connect Jolla handset and PC via USB.
  12. When requested, select "PC connection".
  13. Using your PC file browser (e.g. Windows Explorer) go to the "Sailfish" device, directory "Downloads" (in Windows, the address line should show: "Computer\Sailfish\Phone Memory\Downloads").
  14. Copy the previous qml file onto your PC.
  15. Rename the qml file suitably, e.g. de.qml into dex.qml (x = extended)

Editing the template

  1. Open the renamed qml file in the text editor of your choice.
  2. Make sure, the character coding is set to UTF-8 (in SciTE: |- File | Encoding | UTF-8 -|.

Study the file contents. You have

  • 3 entries "KeyboardLayout" corresponding to the 3 rows of keys (except the lowest one with the space bar).
  • 7 or 11 "CharacterKeys" in each row corresponding to the actual keys.
  • For each CharacterKey a
    • "caption": lower case letter
    • "captionShifted": upper case letter
    • "symView": 1st level figure/symbol character
    • "symView2": 2nd level figure/symbol character
    • "accents": The list of characters appearing when you tap-and-hold a key in the lower case letter level
    • "accentsShifted": The list of characters appearing when you tap-and-hold a key in the upper case letter level
  • 1 entry "SpacebarRow": A reference for the space bar row definitions. (You may change even this row, check file http://bundyo.org/jolla/layouts/bg.qml.)

Most interesting probably are changes to the "accents" and "accentsShifted" entries, you may add such entries for any key not yet having such entry. For example, I created a keyboard layout where each key of the upper row includes a number from 1 to 9 and 0 in the accents and accentsShifted and the most right key holding some special characters such as @.

When finished with editing, save the file.

Creating a config file

In order that Sailfish recognizes your newly created layout, you need a config file. This should have the same name as the layout file, except for the extension being "conf", i.e. dex.conf. The contents should be:

[dex.qml]

name=DeutschX

languageCode=DE

With:

  • 1st line: file name of layout file
  • 2nd line: indicating the language as shown when tap-and-holding the space bar of the vkb
  • 3rd line: international language code as shown on the space bar

Create such file on your computer, e.g. using SciTE.

Copying the layout and config file back onto the Jolla handset

Because the Sailfish FileBrowser cannot copy files into the system directories, you need command line access to the handset.

  1. Using the file browser of your computer copy the 2 files back to the Download directory of the Jolla device.
  2. On the PC start the ssh client (e.g. Cygwin Terminal).
  3. Connect to the Jolla device: On the command line enter: xxx.xxx.xxx.xxx -l nemo and [Enter]. (xxx.xxx.xxx.xxx being the WiFi IP address you noted earlier; "-l" = hyphen + lower case L). (The ssh client connects to the handset and asks for the password. If it should not connect, somehow the PC does not find the way to the Jolla. Check your firewall. On my system for example, I can only connect when the PC is connected to the router via cable.)
  4. \<enter\&gt;. (xxx.xxx.xxx.xxx="" being="" the="" wifi="" ip="" address="" you="" noted="" earlier;="" "-l"="hyphen" +="" lower="" case="" l).="" (the="" ssh="" client="" connects="" to="" the="" handset="" and="" asks="" for="" the="" password.="" if="" it="" should="" not="" connect,="" somehow="" the="" pc="" does="" not="" find="" the="" way="" to="" the="" jolla.="" check="" your="" firewall.="" on="" my="" system="" for="" example,="" i="" can="" only="" connect="" when="" the="" pc="" is="" connected="" to="" the="" router="" via="" cable.)<="" li="">
  5. When prompted for the password, enter the "Remote connection" password you created earlier and [Enter]. (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)
  6. \<enter\&gt;. (the="" command="" line="" prompt="" of="" sailfish="" appears,="" the="" prompt="" will="" be="" "$".="" you="" are="" logged="" in="" as="" user.)<="" li="">
  7. On the command line enter devel-su and [Enter]. \<enter>. (You are asked for a password.)
  8. When prompted for the password, enter the "Remote connection" password you created earlier and [Enter]. (The command line prompt changes to "#". You are logged in as administrator.)
  9. \<enter\&gt;. (the="" command="" line="" prompt="" changes="" to="" "#".="" you="" are="" logged="" in="" as="" administrator.)<="" li="">

From now on be careful, what you are doing. As administrator you may break your handset!

  1. Copy the files created to the layout directory: Enter cd /home/nemo/Downloads and [Enter] (observe the upper case "D" in Downloads -- you are talking Linux where file/directory names are case sensitive).
  2. \<enter\&gt; (observe="" the="" upper="" case="" "d"="" in="" downloads="" --="" you="" are="" talking="" linux="" where="" file="" directory="" names="" are="" case="" sensitive).="" <="" li="">
  3. Check that you are in the right directory and your files are there: Enter dir and [Enter]. (In the list shown, your files should be included.)
  4. \<enter\&gt;. (in="" the="" list="" shown,="" your="" files="" should="" be="" included.)<="" li="">
  5. Copy the layout file: Enter cp dex.qml /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter] (instead of dex.qml not your own file).
  6. \<enter\&gt; (instead="" of="" dex.qml="" note="" your="" own="" file).="" <="" li="">
  7. Copy the layout file: Enter cp dex.config /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter] (instead of dex.conf not your own file).
  8. \<enter\&gt; (instead="" of="" dex.conf="" note="" your="" own="" file).="" <="" li="">
  9. Reset the keyboard service: Enter killall maliit-server and [Enter].
  10. \<enter\&gt;.< li="">

Selecting the new keyboard layout

  1. Open any application that shows the keyboard.
  2. Tap-and-hold the space bar. (The languages available are displayed.)
  3. From the languages list select your language (as stated in the your conf file).

Enjoy.

PS: Helpful was http://talk.maemo.org/showthread.php?t=91917 found by @ssahla, see https://together.jolla.com/question/19999/cant-type-en-dash-on-virtual-keyboard/.

Initially created by: @jgr

HowTo: Adapt Sailfish virtual keyboard (vkb) layout

It is quite easy to adapt the virtual keyboard of Sailfish OS in such a way, that you do not spoil any of the original layouts and that it also should survive a system update. While you can do it all on the Jolla handset itself, I personally prefer using a PC for it.

What you need:

  • Developer mode activated (including ssh access when using the PC; see below).
  • An Unicode capable editor (UTF-8), I prefer SciTE (http://www.scintilla.org). (Alternatively you may use vi directly on the Jolla handset -- but if you can use this, you do not need the following instructions ;-)
  • An ssh client, I prefer Cygwin Terminal. (Alternatively you may use Terminal on the Jolla handset.)
  • WiFi access from your PC to your Jolla handset
  • USB access from your PC to your Jolla handset
  • FileBrowser app on your Jolla handset (get it from the Jolla Store)

Developer mode

  1. Go to |- Settings | System Settings | Developer Mode -|. ( Because your Jolla device can access the Jolla apps shop, a Terminal app is installed now.)
  2. Activate „Developer mode“.
  3. Activate „Remote connection” (either enter and [Save] a password or [Generate] it; if you generate it, you have to edit it slightly before the [Save] button becomes available).
  4. Note the WiFi IP address shown under ""Networking".

Getting the layout template

  1. Open FileBrowser.
  2. From the pulley menu select "Go to home".
  3. Using the 3 dots in the top left, go to the root of the file system (no dot being shown any longer).
  4. Go down in the file system to (tapping each of the directory icons): /usr/share/maliit/plugins/com/jolla/layouts/
  5. Look for the qml file of the language you want to use as a template, e.g. de.qml for German.
  6. Tap-and-hold that file.
  7. From the context menu opening select "Copy".
  8. From the pulley menu select "Home".
  9. Go down to directory "Downloads".
  10. From the pulley menu select "Paste".
  11. Connect Jolla handset and PC via USB.
  12. When requested, select "PC connection".
  13. Using your PC file browser (e.g. Windows Explorer) go to the "Sailfish" device, directory "Downloads" (in Windows, the address line should show: "Computer\Sailfish\Phone Memory\Downloads").
  14. Copy the previous qml file onto your PC.
  15. Rename the qml file suitably, e.g. de.qml into dex.qml (x = extended)

Editing the template

  1. Open the renamed qml file in the text editor of your choice.
  2. Make sure, the character coding is set to UTF-8 (in SciTE: |- File | Encoding | UTF-8 -|.

Study the file contents. You have

  • 3 entries "KeyboardLayout" corresponding to the 3 rows of keys (except the lowest one with the space bar).
  • 7 or 11 "CharacterKeys" in each row corresponding to the actual keys.
  • For each CharacterKey a
    • "caption": lower case letter
    • "captionShifted": upper case letter
    • "symView": 1st level figure/symbol character
    • "symView2": 2nd level figure/symbol character
    • "accents": The list of characters appearing when you tap-and-hold a key in the lower case letter level
    • "accentsShifted": The list of characters appearing when you tap-and-hold a key in the upper case letter level
  • 1 entry "SpacebarRow": A reference for the space bar row definitions. (You may change even this row, check file http://bundyo.org/jolla/layouts/bg.qml.)

Most interesting probably are changes to the "accents" and "accentsShifted" entries, you may add such entries for any key not yet having such entry. For example, I created a keyboard layout where each key of the upper row includes a number from 1 to 9 and 0 in the accents and accentsShifted and the most right key holding some special characters such as @.

When finished with editing, save the file.

Creating a config file

In order that Sailfish recognizes your newly created layout, you need a config file. This should have the same name as the layout file, except for the extension being "conf", i.e. dex.conf. The contents should be:

[dex.qml]

name=DeutschX

languageCode=DE

With:

  • 1st line: file name of layout file
  • 2nd line: indicating the language as shown when tap-and-holding the space bar of the vkb
  • 3rd line: international language code as shown on the space bar

Create such file on your computer, e.g. using SciTE.

Copying the layout and config file back onto the Jolla handset

Because the Sailfish FileBrowser cannot copy files into the system directories, you need command line access to the handset.

  1. Using the file browser of your computer copy the 2 files back to the Download directory of the Jolla device.
  2. On the PC start the ssh client (e.g. Cygwin Terminal).
  3. Connect to the Jolla device: On the command line enter: xxx.xxx.xxx.xxx -l nemo and \<enter\&gt;. (xxx.xxx.xxx.xxx="" being="" the="" wifi="" ip="" address="" you="" noted="" earlier;="" "-l"="hyphen" +="" lower="" case="" l).="" (the="" ssh="" client="" connects="" to="" the="" handset="" and="" asks="" for="" the="" password.="" if="" it="" should="" not="" connect,="" somehow="" the="" pc="" does="" not="" find="" the="" way="" to="" the="" jolla.="" check="" your="" firewall.="" on="" my="" system="" for="" example,="" i="" can="" only="" connect="" when="" the="" pc="" is="" connected="" to="" the="" router="" via="" cable.)<="" li="">
  4. [Enter]. (xxx.xxx.xxx.xxx being the WiFi IP address you noted earlier; "-l" = hyphen + lower case L). (The ssh client connects to the handset and asks for the password. If it should not connect, somehow the PC does not find the way to the Jolla. Check your firewall. On my system for example, I can only connect when the PC is connected to the router via cable.)
  5. When prompted for the password, enter the "Remote connection" password you created earlier and \<enter\&gt;. (the="" command="" line="" prompt="" of="" sailfish="" appears,="" the="" prompt="" will="" be="" "$".="" you="" are="" logged="" in="" as="" user.)<="" li="">
  6. [Enter]. (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)
  7. On the command line enter devel-su and \<enter>. [Enter]. (You are asked for a password.)
  8. When prompted for the password, enter the "Remote connection" password you created earlier and \<enter\&gt;. (the="" command="" line="" prompt="" changes="" to="" "#".="" you="" are="" logged="" in="" as="" administrator.)<="" li="">
  9. [Enter]. (The command line prompt changes to "#". You are logged in as administrator.)

From now on be careful, what you are doing. As administrator you may break your handset!

  1. Copy the files created to the layout directory: Enter cd /home/nemo/Downloads and \<enter\&gt; (observe="" the="" upper="" case="" "d"="" in="" downloads="" --="" you="" are="" talking="" linux="" where="" file="" directory="" names="" are="" case="" sensitive).="" <="" li="">
  2. [Enter] (observe the upper case "D" in Downloads -- you are talking Linux where file/directory names are case sensitive).
  3. Check that you are in the right directory and your files are there: Enter dir and \<enter\&gt;. (in="" the="" list="" shown,="" your="" files="" should="" be="" included.)<="" li="">
  4. [Enter]. (In the list shown, your files should be included.)
  5. Copy the layout file: Enter cp dex.qml /usr/share/maliit/plugins/com/jolla/layouts/ and \<enter\&gt; (instead="" of="" dex.qml="" note="" your="" own="" file).="" <="" li="">
  6. [Enter] (instead of dex.qml note your own file).
  7. Copy the layout file: Enter cp dex.config /usr/share/maliit/plugins/com/jolla/layouts/ and \<enter\&gt; (instead="" of="" dex.conf="" note="" your="" own="" file).="" <="" li="">
  8. [Enter] (instead of dex.conf note your own file).
  9. Reset the keyboard service: Enter killall maliit-server and \<enter\&gt;.< li="">
  10. [Enter].

Selecting the new keyboard layout

  1. Open any application that shows the keyboard.
  2. Tap-and-hold the space bar. (The languages available are displayed.)
  3. From the languages list select your language (as stated in the your conf file).

Enjoy.

PS: Helpful was http://talk.maemo.org/showthread.php?t=91917 found by @ssahla, see https://together.jolla.com/question/19999/cant-type-en-dash-on-virtual-keyboard/.

Initially created by: @jgr

HowTo: Adapt Sailfish virtual keyboard (vkb) layout

It is quite easy to adapt the virtual keyboard of Sailfish OS in such a way, that you do not spoil any of the original layouts and that it also should survive a system update. While you can do it all on the Jolla handset itself, I personally prefer using a PC for it.

1 What you need:

need

  • Developer mode activated (including ssh access when using the PC; see below).
  • An Unicode capable editor (UTF-8), I prefer SciTE (http://www.scintilla.org). (Alternatively you may use vi directly on the Jolla handset -- but if you can use this, you do not need the following instructions ;-)
  • USB access from your PC to your Jolla handset
  • FileBrowser app on your Jolla handset (get it from the Jolla Store)
  • Optional: An ssh client, I prefer Cygwin Terminal. (Alternatively you may use Terminal on the Jolla handset.)
  • Optional, only when using an ssh client: WiFi access from your PC to your Jolla handset
  • USB access from your PC to your Jolla handset
  • FileBrowser app on your Jolla handset (get it from the Jolla Store)

2 Procedure

2.1 Developer mode

  1. Go to |- Settings | System Settings | Developer Mode -|. ( Because your Jolla device can access the Jolla apps shop, a Terminal app is installed now.)
  2. Activate „Developer mode“.
  3. Activate „Remote connection” (either enter and [Save] a password or [Generate] it; if you generate it, you have to edit it slightly before the [Save] button becomes available).
  4. Note the WiFi IP address shown under ""Networking".

2.2 Getting the layout template

  1. Open FileBrowser.
  2. From the pulley menu select "Go to home".
  3. Using the 3 dots in the top left, go to the root of the file system (no dot being shown any longer).
  4. Go down in the file system to (tapping each of the directory icons): /usr/share/maliit/plugins/com/jolla/layouts/
  5. Look for the qml file of the language you want to use as a template, e.g. de.qml for German.
  6. Tap-and-hold that file.
  7. From the context menu opening select "Copy".
  8. From the pulley menu select "Home".
  9. Go down to directory "Downloads".
  10. From the pulley menu select "Paste".
  11. Connect Jolla handset and PC via USB.
  12. When requested, select "PC connection".
  13. Using your PC file browser (e.g. Windows Explorer) go to the "Sailfish" device, directory "Downloads" (in Windows, the address line should show: "Computer\Sailfish\Phone Memory\Downloads").
  14. Copy the previous qml file onto your PC.
  15. Rename the qml file suitably, e.g. de.qml into dex.qml (x = extended)

2.3 Editing the template

  1. Open the renamed qml file in the text editor of your choice.
  2. Make sure, the character coding is set to UTF-8 (in SciTE: |- File | Encoding | UTF-8 -|.

Study the file contents. You have

  • 3 entries "KeyboardLayout" corresponding to the 3 rows of keys (except the lowest one with the space bar).
  • 7 or 11 "CharacterKeys" in each row corresponding to the actual keys.
  • For each CharacterKey a
    • "caption": lower case letter
    • "captionShifted": upper case letter
    • "symView": 1st level figure/symbol character
    • "symView2": 2nd level figure/symbol character
    • "accents": The list of characters appearing when you tap-and-hold a key in the lower case letter level
    • "accentsShifted": The list of characters appearing when you tap-and-hold a key in the upper case letter level
  • 1 entry "SpacebarRow": A reference for the space bar row definitions. (You may change even this row, check file http://bundyo.org/jolla/layouts/bg.qml.)

Most interesting probably are changes to the "accents" and "accentsShifted" entries, you may add such entries for any key not yet having such entry. For example, I created a keyboard layout where each key of the upper row includes a number from 1 to 9 and 0 in the accents and accentsShifted and the most right key holding some special characters such as @.

When finished with editing, save the file.

2.4 Creating a config file

In order that Sailfish recognizes your newly created layout, you need a config file. This should have the same name as the layout file, except for the extension being "conf", i.e. dex.conf. The contents should be:

[dex.qml]

name=DeutschX

languageCode=DE

With:

  • 1st line: file name of layout file
  • 2nd line: indicating the language as shown when tap-and-holding the space bar of the vkb
  • 3rd line: international language code as shown on the space bar

Create such file on your computer, e.g. using SciTE.

2.5 Copying the layout and config file back onto the Jolla handset

Because the Sailfish FileBrowser cannot copy files into the system directories, you need command line access to the handset.

  1. Using the file browser of your computer copy the 2 files back to the Download directory of the Jolla device.
  2. If you want to use an ssh client (instead of typing on the command prompt of the Sailfish Terminal):
  • On the PC start the ssh client (e.g. Cygwin Terminal).
  • Connect to the Jolla device: On the command line enter: xxx.xxx.xxx.xxx -l nemo and [Enter]. (xxx.xxx.xxx.xxx being the WiFi IP address you noted earlier; "-l" = hyphen + lower case L). (The ssh client connects to the handset and asks for the password. If it should not connect, somehow the PC does not find the way to the Jolla. Check your firewall. On my system for example, I can only connect when the PC is connected to the router via cable.)
  • cable. If it still does not work: Use the Sailfish Terminal.)
  • When prompted for the password, enter the "Remote connection" password you created earlier and [Enter]. (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)

  • On the command line enter devel-su and [Enter]. (You are asked for a password.)
  • When prompted for the password, enter the "Remote connection" password you created earlier and [Enter]. (The

    1. If you want to use the Sailfish Terminal app (as installed when activating the developer mode):
  • Start Terminal.(The command line prompt changes to "#". of Sailfish appears, the prompt will be "$". You are logged in as administrator.)

  • user.)

From now on be careful, what you are doing. As administrator you may break your handset!

Continue with either, ssh client or Terminal as follows:

  1. On the command line enter devel-su and [Enter]. (You are asked for a password.)
  2. When prompted for the password, enter the "Remote connection" password you created earlier and [Enter]. (The command line prompt changes to "#". You are logged in as administrator.)
  3. Copy the files created to the layout directory: Enter cd /home/nemo/Downloads and [Enter] (observe the upper case "D" in Downloads -- you are talking Linux where file/directory names are case sensitive).
  4. Check that you are in the right directory and your files are there: Enter dir and [Enter]. (In the list shown, your files should be included.)
  5. Copy the layout file: Enter cp dex.qml /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter] (instead of dex.qml note your own file).
  6. Copy the layout file: Enter cp dex.config /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter] (instead of dex.conf note your own file).
  7. Reset the keyboard service: Enter killall maliit-server and [Enter].

2.6 Selecting the new keyboard layout

  1. Open any application that shows the keyboard.
  2. Tap-and-hold the space bar. (The languages available are displayed.)
  3. From the languages list select your language (as stated in the your conf file).

Enjoy.

PS: Helpful was http://talk.maemo.org/showthread.php?t=91917 found by @ssahla, see https://together.jolla.com/question/19999/cant-type-en-dash-on-virtual-keyboard/.

Initially created by: @jgr

HowTo: Adapt Sailfish virtual keyboard (vkb) layout

It is quite easy to adapt the virtual keyboard of Sailfish OS in such a way, that you do not spoil any of the original layouts and that it also should survive a system update. While you can do it all on the Jolla handset itself, I personally prefer using a PC for it.

1 What you need

  • Developer mode activated (including ssh access when using the PC; see below).
  • An Unicode capable editor (UTF-8), I prefer SciTE (http://www.scintilla.org). (Alternatively you may use vi directly on the Jolla handset -- but if you can use this, you do not need the following instructions ;-)
  • USB access from your PC to your Jolla handset
  • FileBrowser app on your Jolla handset (get it from the Jolla Store)
  • Optional: An ssh client, I prefer Cygwin Terminal. (Alternatively you may use Terminal on the Jolla handset.)
  • Optional, only when using an ssh client: WiFi access from your PC to your Jolla handset

2 Procedure

2.1 Developer mode

  1. Go to |- Settings | System Settings | Developer Mode -|. ( Because your Jolla device can access the Jolla apps shop, a Terminal app is installed now.)
  2. Activate „Developer mode“.
  3. Activate „Remote connection” (either enter and [Save] a password or [Generate] it; if you generate it, you have to edit it slightly before the [Save] button becomes available).
  4. Note the WiFi IP address shown under ""Networking".

2.2 Getting the layout template

  1. Open FileBrowser.
  2. From the pulley menu select "Go to home".
  3. Using the 3 dots in the top left, go to the root of the file system (no dot being shown any longer).
  4. Go down in the file system to (tapping each of the directory icons): /usr/share/maliit/plugins/com/jolla/layouts/
  5. Look for the qml file of the language you want to use as a template, e.g. de.qml for German.
  6. Tap-and-hold that file.
  7. From the context menu opening select "Copy".
  8. From the pulley menu select "Home".
  9. Go down to directory "Downloads".
  10. From the pulley menu select "Paste".
  11. Connect Jolla handset and PC via USB.
  12. When requested, select "PC connection".
  13. Using your PC file browser (e.g. Windows Explorer) go to the "Sailfish" device, directory "Downloads" (in Windows, the address line should show: "Computer\Sailfish\Phone Memory\Downloads").
  14. Copy the previous qml file onto your PC.
  15. Rename the qml file suitably, e.g. de.qml into dex.qml (x = extended)

2.3 Editing the template

  1. Open the renamed qml file in the text editor of your choice.
  2. Make sure, the character coding is set to UTF-8 (in SciTE: |- File | Encoding | UTF-8 -|.

Study the file contents. You have

  • 3 entries "KeyboardLayout" corresponding to the 3 rows of keys (except the lowest one with the space bar).
  • 7 or 11 "CharacterKeys" in each row corresponding to the actual keys.
  • For each CharacterKey a
    • "caption": lower case letter
    • "captionShifted": upper case letter
    • "symView": 1st level figure/symbol character
    • "symView2": 2nd level figure/symbol character
    • "accents": The list of characters appearing when you tap-and-hold a key in the lower case letter level
    • "accentsShifted": The list of characters appearing when you tap-and-hold a key in the upper case letter level
  • 1 entry "SpacebarRow": A reference for the space bar row definitions. (You may change even this row, check file http://bundyo.org/jolla/layouts/bg.qml.)

Most interesting probably are changes to the "accents" and "accentsShifted" entries, you may add such entries for any key not yet having such entry. For example, I created a keyboard layout where each key of the upper row includes a number from 1 to 9 and 0 in the accents and accentsShifted and the most right key holding some special characters such as @.

When finished with editing, save the file.

2.4 Creating a config file

In order that Sailfish recognizes your newly created layout, you need a config file. This should have the same name as the layout file, except for the extension being "conf", i.e. dex.conf. The contents should be:

[dex.qml]

name=DeutschX

languageCode=DE

With:

  • 1st line: file name of layout file
  • 2nd line: indicating the language as shown when tap-and-holding the space bar of the vkb
  • 3rd line: international language code as shown on the space bar

Create such file on your computer, e.g. using SciTE.

2.5 Copying the layout and config file back onto the Jolla handset

Because the Sailfish FileBrowser cannot copy files into the system directories, you need command line access to the handset.

  1. Using the file browser of your computer copy the 2 files back to the Download directory of the Jolla device.
  2. If you want to use an ssh client (instead of typing on the command prompt of the Sailfish Terminal):
  • On the PC start the ssh client (e.g. Cygwin Terminal).
  • Connect to the Jolla device: On the command line enter: xxx.xxx.xxx.xxx `xxx.xxx.xxx.xxx -l nemo nemo` and [Enter]. (xxx.xxx.xxx.xxx being the WiFi IP address you noted earlier; "-l" = hyphen + lower case L).
    (The ssh client connects to the handset and asks for the password. If it should not connect, somehow the PC does not find the way to the Jolla. Check your firewall. On my system for example, I can only connect when the PC is connected to the router via cable. If it still does not work: Use the Sailfish Terminal.)
  • When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
    (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)

  • If you want to use the Sailfish Terminal app (as installed when activating the developer mode):
    • Start Terminal.(The Terminal.
      (The
      command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)


    From now on be careful, what you are doing. As administrator you may break your handset!



    Continue with either, ssh client or Terminal as follows:

    1. On the command line enter devel-su `devel-su` and [Enter]. (You are asked for a password.)
    2. When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
      (The command line prompt changes to "#". You are logged in as administrator.)
    3. Copy the files created to the layout directory: Enter cd /home/nemo/Downloads and [Enter] (observe `cd /home/nemo/Downloads` and [Enter]
      (Observe
      the upper case "D" in Downloads -- you are talking Linux where file/directory names are case sensitive).
    4. Check that you are in the right directory and your files are there: Enter dir `dir` and [Enter].
      (In the list shown, your files should be included.)
    5. Copy the layout file: Enter cp `cp dex.qml /usr/share/maliit/plugins/com/jolla/layouts/ /usr/share/maliit/plugins/com/jolla/layouts/` and [Enter] (instead
      (Instead
      of dex.qml note your own file).
    6. Copy the layout file: Enter cp `cp dex.config /usr/share/maliit/plugins/com/jolla/layouts/ /usr/share/maliit/plugins/com/jolla/layouts/` and [Enter] (instead
      (Instead
      of dex.conf note your own file).
    7. Reset the keyboard service: Enter killall maliit-server `killall maliit-server` and [Enter].

    2.6 Selecting the new keyboard layout

    1. Open any application that shows the keyboard.
    2. Tap-and-hold the space bar. (The languages available are displayed.)
    3. From the languages list select your language (as stated in the your conf file).

    Enjoy.

    PS: Helpful was http://talk.maemo.org/showthread.php?t=91917 found by @ssahla, see https://together.jolla.com/question/19999/cant-type-en-dash-on-virtual-keyboard/.

    Initially created by: @jgr

  • HowTo: Adapt Sailfish virtual keyboard (vkb) layout

    It is quite easy to adapt the virtual keyboard of Sailfish OS in such a way, that you do not spoil any of the original layouts and that it also should survive a system update. While you can do it all on the Jolla handset itself, I personally prefer using a PC for it.

    1 What you need

    • Developer mode activated (including ssh access when using the PC; see below).
    • An Unicode capable editor (UTF-8), I prefer SciTE (http://www.scintilla.org). (Alternatively you may use vi directly on the Jolla handset -- but if you can use this, you do not need the following instructions ;-)
    • USB access from your PC to your Jolla handset
    • FileBrowser app on your Jolla handset (get it from the Jolla Store)
    • Optional: An ssh client, I prefer Cygwin Terminal. (Alternatively you may use Terminal on the Jolla handset.)
    • Optional, only when using an ssh client: WiFi access from your PC to your Jolla handset

    2 Procedure

    2.1 Developer mode

    1. Go to |- Settings | System Settings | Developer Mode -|. ( Because your Jolla device can access the Jolla apps shop, a Terminal app is installed now.)
    2. Activate „Developer mode“.
    3. Activate „Remote connection” (either enter and [Save] a password or [Generate] it; if you generate it, you have to edit it slightly before the [Save] button becomes available).
    4. Note the WiFi IP address shown under ""Networking".

    2.2 Getting the layout template

    1. Open FileBrowser.
    2. From the pulley menu select "Go to home".
    3. Using the 3 dots in the top left, go to the root of the file system (no dot being shown any longer).
    4. Go down in the file system to (tapping each of the directory icons): /usr/share/maliit/plugins/com/jolla/layouts/
    5. Look for the qml file of the language you want to use as a template, e.g. de.qml for German.
    6. Tap-and-hold that file.
    7. From the context menu opening select "Copy".
    8. From the pulley menu select "Home".
    9. Go down to directory "Downloads".
    10. From the pulley menu select "Paste".
    11. Connect Jolla handset and PC via USB.
    12. When requested, select "PC connection".
    13. Using your PC file browser (e.g. Windows Explorer) go to the "Sailfish" device, directory "Downloads" (in Windows, the address line should show: "Computer\Sailfish\Phone Memory\Downloads").
    14. Copy the previous qml file onto your PC.
    15. Rename the qml file suitably, e.g. de.qml into dex.qml (x = extended)

    2.3 Editing the template

    1. Open the renamed qml file in the text editor of your choice.
    2. Make sure, the character coding is set to UTF-8 (in SciTE: |- File | Encoding | UTF-8 -|.

    Study the file contents. You have

    • 3 entries "KeyboardLayout" corresponding to the 3 rows of keys (except the lowest one with the space bar).
    • 7 or 11 "CharacterKeys" in each row corresponding to the actual keys.
    • For each CharacterKey a
      • "caption": lower case letter
      • "captionShifted": upper case letter
      • "symView": 1st level figure/symbol character
      • "symView2": 2nd level figure/symbol character
      • "accents": The list of characters appearing when you tap-and-hold a key in the lower case letter level
      • "accentsShifted": The list of characters appearing when you tap-and-hold a key in the upper case letter level
    • 1 entry "SpacebarRow": A reference for the space bar row definitions. (You may change even this row, check file http://bundyo.org/jolla/layouts/bg.qml.)

    Most interesting probably are changes to the "accents" and "accentsShifted" entries, you may add such entries for any key not yet having such entry. For example, I created a keyboard layout where each key of the upper row includes a number from 1 to 9 and 0 in the accents and accentsShifted and the most right key holding some special characters such as @.

    When finished with editing, save the file.

    2.4 Creating a config file

    In order that Sailfish recognizes your newly created layout, you need a config file. This should have the same name as the layout file, except for the extension being "conf", i.e. dex.conf. The contents should be:

    [dex.qml]

    name=DeutschX

    languageCode=DE

    With:

    • 1st line: file name of layout file
    • 2nd line: indicating the language as shown when tap-and-holding the space bar of the vkb
    • 3rd line: international language code as shown on the space bar

    Create such file on your computer, e.g. using SciTE.

    2.5 Copying the layout and config file back onto the Jolla handset

    Because the Sailfish FileBrowser cannot copy files into the system directories, you need command line access to the handset.

    1. Using the file browser of your computer copy the 2 files back to the Download directory of the Jolla device.
    2. If you want to use an ssh client (instead of typing on the command prompt of the Sailfish Terminal):
      • On the PC start the ssh client (e.g. Cygwin Terminal).
      • Connect to the Jolla device: On the command line enter: `xxx.xxx.xxx.xxx -l nemo` and [Enter]. (xxx.xxx.xxx.xxx being the WiFi IP address you noted earlier; "-l" = hyphen + lower case L).
        (The ssh client connects to the handset and asks for the password. If it should not connect, somehow the PC does not find the way to the Jolla. Check your firewall. On my system for example, I can only connect when the PC is connected to the router via cable. If it still does not work: Use the Sailfish Terminal.)
      • When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)
    3. If you want to use the Sailfish Terminal app (as installed when activating the developer mode):
      • Start Terminal.
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)

      From now on be careful, what you are doing. As administrator you may break your handset!

      Continue with either, ssh client or Terminal as follows:
    4. On the command line enter `devel-su` and [Enter]. (You are asked for a password.)
    5. When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
      (The command line prompt changes to "#". You are logged in as administrator.)
    6. Copy the files created to the layout directory: Enter `cd /home/nemo/Downloads` and [Enter]
      (Observe the upper case "D" in Downloads -- you are talking Linux where file/directory names are case sensitive).
    7. Check that you are in the right directory and your files are there: Enter `dir` and [Enter].
      (In the list shown, your files should be included.)
    8. Copy the layout file: Enter `cp dex.qml /usr/share/maliit/plugins/com/jolla/layouts/` and [Enter]
      (Instead of dex.qml note your own file).
    9. Copy the layout file: Enter `cp dex.config dex.conf /usr/share/maliit/plugins/com/jolla/layouts/` and [Enter]
      (Instead of dex.conf note your own file).
    10. Reset the keyboard service: Enter `killall maliit-server` and [Enter].

    2.6 Selecting the new keyboard layout

    1. Open any application that shows the keyboard.
    2. Tap-and-hold the space bar. (The languages available are displayed.)
    3. From the languages list select your language (as stated in the your conf file).

    Enjoy.

    PS: Helpful was http://talk.maemo.org/showthread.php?t=91917 found by @ssahla, see https://together.jolla.com/question/19999/cant-type-en-dash-on-virtual-keyboard/.

    Initially created by: @jgr

    HowTo: Adapt Sailfish virtual keyboard (vkb) layout

    It is quite easy to adapt the virtual keyboard of Sailfish OS in such a way, that you do not spoil any of the original layouts and that it also should survive a system update. While you can do it all on the Jolla handset itself, I personally prefer using a PC for it.

    1 What you need

    • Developer mode activated (including ssh access when using the PC; see below).
    • An Unicode capable editor (UTF-8), I prefer SciTE (http://www.scintilla.org). (Alternatively you may use vi directly on the Jolla handset -- but if you can use this, you do not need the following instructions ;-)
    • USB access from your PC to your Jolla handset
    • FileBrowser app on your Jolla handset (get it from the Jolla Store)
    • Optional: An ssh client, I prefer Cygwin Terminal. (Alternatively you may use Terminal on the Jolla handset.)
    • Optional, only when using an ssh client: WiFi access from your PC to your Jolla handset

    2 Procedure

    2.1 Developer mode

    1. Go to |- Settings | System Settings | Developer Mode -|. ( Because your Jolla device can access the Jolla apps shop, a Terminal app is installed now.)
    2. Activate „Developer mode“.
    3. Activate „Remote connection” (either enter and [Save] a password or [Generate] it; if you generate it, you have to edit it slightly before the [Save] button becomes available).
    4. Note the WiFi IP address shown under ""Networking".

    2.2 Getting the layout template

    1. Open FileBrowser.
    2. From the pulley menu select "Go to home".
    3. Using the 3 dots in the top left, go to the root of the file system (no dot being shown any longer).
    4. Go down in the file system to (tapping each of the directory icons): /usr/share/maliit/plugins/com/jolla/layouts/
    5. Look for the qml file of the language you want to use as a template, e.g. de.qml for German.
    6. Tap-and-hold that file.
    7. From the context menu opening select "Copy".
    8. From the pulley menu select "Home".
    9. Go down to directory "Downloads".
    10. From the pulley menu select "Paste".
    11. Connect Jolla handset and PC via USB.
    12. When requested, select "PC connection".
    13. Using your PC file browser (e.g. Windows Explorer) go to the "Sailfish" device, directory "Downloads" (in Windows, the address line should show: "Computer\Sailfish\Phone Memory\Downloads").
    14. Copy the previous qml file onto your PC.
    15. Rename the qml file suitably, e.g. de.qml into dex.qml (x = extended)

    2.3 Editing the template

    1. Open the renamed qml file in the text editor of your choice.
    2. Make sure, the character coding is set to UTF-8 (in SciTE: |- File | Encoding | UTF-8 -|.

    Study the file contents. You have

    • 3 entries "KeyboardLayout" corresponding to the 3 rows of keys (except the lowest one with the space bar).
    • 7 or 11 "CharacterKeys" in each row corresponding to the actual keys.
    • For each CharacterKey a
      • "caption": lower case letter
      • "captionShifted": upper case letter
      • "symView": 1st level figure/symbol character
      • "symView2": 2nd level figure/symbol character
      • "accents": The list of characters appearing when you tap-and-hold a key in the lower case letter level
      • "accentsShifted": The list of characters appearing when you tap-and-hold a key in the upper case letter level
    • 1 entry "SpacebarRow": A reference for the space bar row definitions. (You may change even this row, check file http://bundyo.org/jolla/layouts/bg.qml.)

    Most interesting probably are changes to the "accents" and "accentsShifted" entries, you may add such entries for any key not yet having such entry. For example, I created a keyboard layout where each key of the upper row includes a number from 1 to 9 and 0 in the accents and accentsShifted and the most right key holding some special characters such as @.

    When finished with editing, save the file.

    2.4 Creating a config file

    In order that Sailfish recognizes your newly created layout, you need a config file. This should have the same name as the layout file, except for the extension being "conf", i.e. dex.conf. The contents should be:

    [dex.qml]

    name=DeutschX

    languageCode=DE

    With:

    • 1st line: file name of layout file
    • 2nd line: indicating the language as shown when tap-and-holding the space bar of the vkb
    • 3rd line: international language code as shown on the space bar

    Create such file on your computer, e.g. using SciTE.

    2.5 Copying the layout and config file back onto the Jolla handset

    Because the Sailfish FileBrowser cannot copy files into the system directories, you need command line access to the handset.

    1. Using the file browser of your computer copy the 2 files back to the Download directory of the Jolla device.
    2. If you want to use an ssh client (instead of typing on the command prompt of the Sailfish Terminal):
      • On the PC start the ssh client (e.g. Cygwin Terminal).
      • Connect to the Jolla device: On the command line enter: `xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx -l nemo` nemo and [Enter]. (xxx.xxx.xxx.xxx being the WiFi IP address you noted earlier; "-l" = hyphen + lower case L).
        (The ssh client connects to the handset and asks for the password. If it should not connect, somehow the PC does not find the way to the Jolla. Check your firewall. On my system for example, I can only connect when the PC is connected to the router via cable. If it still does not work: Use the Sailfish Terminal.)
      • When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)
    3. If you want to use the Sailfish Terminal app (as installed when activating the developer mode):
      • Start Terminal.
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)

      From now on be careful, what you are doing. As administrator you may break your handset!

      Continue with either, ssh client or Terminal as follows:
    4. On the command line enter `devel-su` devel-su and [Enter]. (You are asked for a password.)
    5. When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
      (The command line prompt changes to "#". You are logged in as administrator.)
    6. Copy the files created to the layout directory: Enter `cd /home/nemo/Downloads` cd /home/nemo/Downloads and [Enter]
      (Observe the upper case "D" in Downloads -- you are talking Linux where file/directory names are case sensitive).
    7. Check that you are in the right directory and your files are there: Enter `dir` dir and [Enter].
      (In the list shown, your files should be included.)
    8. Copy the layout file: Enter `cp cp dex.qml /usr/share/maliit/plugins/com/jolla/layouts/` /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
      (Instead of dex.qml note your own file).
    9. Copy the layout file: Enter `cp cp dex.conf /usr/share/maliit/plugins/com/jolla/layouts/` /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
      (Instead of dex.conf note your own file).
    10. Reset the keyboard service: Enter `killall maliit-server` killall maliit-server and [Enter].

    2.6 Selecting the new keyboard layout

    1. Open any application that shows the keyboard.
    2. Tap-and-hold the space bar. (The languages available are displayed.)
    3. From the languages list select your language (as stated in the your conf file).

    Enjoy.

    PS: Helpful was http://talk.maemo.org/showthread.php?t=91917 found by @ssahla, see https://together.jolla.com/question/19999/cant-type-en-dash-on-virtual-keyboard/.

    Initially created by: @jgr

    HowTo: Adapt Sailfish virtual keyboard (vkb) layout

    It is quite easy to adapt the virtual keyboard of Sailfish OS in such a way, that you do not spoil any of the original layouts and that it also should survive a system update. While you can do it all on the Jolla handset itself, I personally prefer using a PC for it.

    1 What you need

    • Developer mode activated (including ssh access when using the PC; see below).
    • An Unicode capable editor (UTF-8), I prefer SciTE (http://www.scintilla.org). (Alternatively you may use vi directly on the Jolla handset -- but if you can use this, you do not need the following instructions ;-)
    • USB access from your PC to your Jolla handset
    • FileBrowser app on your Jolla handset (get it from the Jolla Store)
    • Optional: An ssh client, I prefer Cygwin Terminal. (Alternatively you may use Terminal on the Jolla handset.)
    • Optional, only when using an ssh client: WiFi access from your PC to your Jolla handset

    2 Procedure

    See answer vkb layout file available from internet if you have found a layout file on the internet that suits you.

    2.1 Developer mode

    1. Go to |- Settings | System Settings | Developer Mode -|. ( Because your Jolla device can access the Jolla apps shop, a Terminal app is installed now.)
    2. Activate „Developer mode“.
    3. Activate „Remote connection” (either enter and [Save] a password or [Generate] it; if you generate it, you have to edit it slightly before the [Save] button becomes available).
    4. Note the WiFi IP address shown under ""Networking".

    2.2 Getting the layout template

    1. Open FileBrowser.
    2. From the pulley menu select "Go to home".
    3. Using the 3 dots in the top left, go to the root of the file system (no dot being shown any longer).
    4. Go down in the file system to (tapping each of the directory icons): /usr/share/maliit/plugins/com/jolla/layouts/
    5. Look for the qml file of the language you want to use as a template, e.g. de.qml for German.
    6. Tap-and-hold that file.
    7. From the context menu opening select "Copy".
    8. From the pulley menu select "Home".
    9. Go down to directory "Downloads".
    10. From the pulley menu select "Paste".
    11. Connect Jolla handset and PC via USB.
    12. When requested, select "PC connection".
    13. Using your PC file browser (e.g. Windows Explorer) go to the "Sailfish" device, directory "Downloads" (in Windows, the address line should show: "Computer\Sailfish\Phone Memory\Downloads").
    14. Copy the previous qml file onto your PC.
    15. Rename the qml file suitably, e.g. de.qml into dex.qml (x = extended)

    2.3 Editing the template

    1. Open the renamed qml file in the text editor of your choice.
    2. Make sure, the character coding is set to UTF-8 (in SciTE: |- File | Encoding | UTF-8 -|.

    Study the file contents. You have

    • 3 entries "KeyboardLayout" corresponding to the 3 rows of keys (except the lowest one with the space bar).
    • 7 or 11 "CharacterKeys" in each row corresponding to the actual keys.
    • For each CharacterKey a
      • "caption": lower case letter
      • "captionShifted": upper case letter
      • "symView": 1st level figure/symbol character
      • "symView2": 2nd level figure/symbol character
      • "accents": The list of characters appearing when you tap-and-hold a key in the lower case letter level
      • "accentsShifted": The list of characters appearing when you tap-and-hold a key in the upper case letter level
    • 1 entry "SpacebarRow": A reference for the space bar row definitions. (You may change even this row, check file http://bundyo.org/jolla/layouts/bg.qml.)

    Most interesting probably are changes to the "accents" and "accentsShifted" entries, you may add such entries for any key not yet having such entry. For example, I created a keyboard layout where each key of the upper row includes a number from 1 to 9 and 0 in the accents and accentsShifted and the most right key holding some special characters such as @.

    When finished with editing, save the file.

    2.4 Creating a config file

    In order that Sailfish recognizes your newly created layout, you need a config file. This should have the same name as the layout file, except for the extension being "conf", i.e. dex.conf. The contents should be:

    [dex.qml]

    name=DeutschX

    languageCode=DE

    With:

    • 1st line: file name of layout file
    • 2nd line: indicating the language as shown when tap-and-holding the space bar of the vkb
    • 3rd line: international language code as shown on the space bar

    Create such file on your computer, e.g. using SciTE.

    2.5 Copying the layout and config file back onto the Jolla handset

    Because the Sailfish FileBrowser cannot copy files into the system directories, you need command line access to the handset.

    1. Using the file browser of your computer copy the 2 files back to the Download directory of the Jolla device.
    2. If you want to use an ssh client (instead of typing on the command prompt of the Sailfish Terminal):
      • On the PC start the ssh client (e.g. Cygwin Terminal).
      • Connect to the Jolla device: On the command line enter: xxx.xxx.xxx.xxx -l nemo and [Enter]. (xxx.xxx.xxx.xxx being the WiFi IP address you noted earlier; "-l" = hyphen + lower case L).
        (The ssh client connects to the handset and asks for the password. If it should not connect, somehow the PC does not find the way to the Jolla. Check your firewall. On my system for example, I can only connect when the PC is connected to the router via cable. If it still does not work: Use the Sailfish Terminal.)
      • When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)
    3. If you want to use the Sailfish Terminal app (as installed when activating the developer mode):
      • Start Terminal.
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)

      From now on be careful, what you are doing. As administrator you may break your handset!

      Continue with either, ssh client or Terminal as follows:
    4. On the command line enter devel-su and [Enter]. (You are asked for a password.)
    5. When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
      (The command line prompt changes to "#". You are logged in as administrator.)
    6. Copy the files created to the layout directory: Enter cd /home/nemo/Downloads and [Enter]
      (Observe the upper case "D" in Downloads -- you are talking Linux where file/directory names are case sensitive).
    7. Check that you are in the right directory and your files are there: Enter dir and [Enter].
      (In the list shown, your files should be included.)
    8. Copy the layout file: Enter cp dex.qml /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
      (Instead of dex.qml note your own file).
    9. Copy the layout file: Enter cp dex.conf /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
      (Instead of dex.conf note your own file).
    10. Reset the keyboard service: Enter killall maliit-server and [Enter].

    2.6 Selecting the new keyboard layout

    1. Open any application that shows the keyboard.
    2. Tap-and-hold the space bar. (The languages available are displayed.)
    3. From the languages list select your language (as stated in the your conf file).

    Enjoy.

    PS: Helpful was http://talk.maemo.org/showthread.php?t=91917 found by @ssahla, see https://together.jolla.com/question/19999/cant-type-en-dash-on-virtual-keyboard/.

    Initially created by: @jgr

    HowTo: Adapt Sailfish virtual keyboard (vkb) layout

    It is quite easy to adapt the virtual keyboard of Sailfish OS in such a way, that you do not spoil any of the original layouts and that it also should survive a system update. While you can do it all on the Jolla handset itself, I personally prefer using a PC for it.

    1 What you need

    • Developer mode activated (including ssh access when using the PC; see below).
    • An Unicode capable editor (UTF-8), I prefer SciTE (http://www.scintilla.org). (Alternatively you may use vi directly on the Jolla handset -- but if you can use this, you do not need the following instructions ;-)
    • USB access from your PC to your Jolla handset
    • FileBrowser app on your Jolla handset (get it from the Jolla Store)
    • Optional: An ssh client, I prefer Cygwin Terminal. (Alternatively you may use Terminal on the Jolla handset.)
    • Optional, only when using an ssh client: WiFi access from your PC to your Jolla handset

    2 Procedure

    See answer vkb layout file available from internet if you have found a layout file on the internet that suits you.

    2.1 Developer mode

    1. Go to |- Settings | System Settings | Developer Mode -|. ( Because your Jolla device can access the Jolla apps shop, a Terminal app is installed now.)
    2. Activate „Developer mode“.
    3. Activate „Remote connection” (either enter and [Save] a password or [Generate] it; if you generate it, you have to edit it slightly before the [Save] button becomes available).
    4. Note the WiFi IP address shown under ""Networking".

    2.2 Getting the layout template

    1. Open FileBrowser.
    2. From the pulley menu select "Go to home".
    3. Using the 3 dots in the top left, go to the root of the file system (no dot being shown any longer).
    4. Go down in the file system to (tapping each of the directory icons): /usr/share/maliit/plugins/com/jolla/layouts/
    5. Look for the qml file of the language you want to use as a template, e.g. de.qml for German.
    6. Tap-and-hold that file.
    7. From the context menu opening select "Copy".
    8. From the pulley menu select "Home".
    9. Go down to directory "Downloads".
    10. From the pulley menu select "Paste".
    11. Connect Jolla handset and PC via USB.
    12. When requested, select "PC connection".
    13. Using your PC file browser (e.g. Windows Explorer) go to the "Sailfish" device, directory "Downloads" (in Windows, the address line should show: "Computer\Sailfish\Phone Memory\Downloads").
    14. Copy the previous qml file onto your PC.
    15. Rename the qml file suitably, e.g. de.qml into dex.qml (x = extended)

    2.3 Editing the template

    1. Open the renamed qml file in the text editor of your choice.
    2. Make sure, the character coding is set to UTF-8 (in SciTE: |- File | Encoding | UTF-8 -|.

    Study the file contents. You have

    • 3 entries "KeyboardLayout" corresponding to the 3 rows of keys (except the lowest one with the space bar).
    • 7 or 11 "CharacterKeys" in each row corresponding to the actual keys.
    • For each CharacterKey a
      • "caption": lower case letter
      • "captionShifted": upper case letter
      • "symView": 1st level figure/symbol character
      • "symView2": 2nd level figure/symbol character
      • "accents": The list of characters appearing when you tap-and-hold a key in the lower case letter level
      • "accentsShifted": The list of characters appearing when you tap-and-hold a key in the upper case letter level
    • 1 entry "SpacebarRow": A reference for the space bar row definitions. (You may change even this row, check file http://bundyo.org/jolla/layouts/bg.qml.)

    Most interesting probably are changes to the "accents" and "accentsShifted" entries, you may add such entries for any key not yet having such entry. For example, I created a keyboard layout where each key of the upper row includes a number from 1 to 9 and 0 in the accents and accentsShifted and the most right key holding some special characters such as @.

    You may even add or remove keys (add/remove a "CharacterKey" statement). However, 11 keys in the upper rows seems to be a natural maximum, thereafter the key space gets too small to be usable (at least for me).

    When finished with editing, save the file.

    2.4 Creating a config file

    In order that Sailfish recognizes your newly created layout, you need a config file. This should have the same name as the layout file, except for the extension being "conf", i.e. dex.conf. The contents should be:

    [dex.qml]

    name=DeutschX

    languageCode=DE

    With:

    • 1st line: file name of layout file
    • 2nd line: indicating the language as shown when tap-and-holding the space bar of the vkb
    • 3rd line: international language code as shown on the space bar

    Create such file on your computer, e.g. using SciTE.

    2.5 Copying the layout and config file back onto the Jolla handset

    Because the Sailfish FileBrowser cannot copy files into the system directories, you need command line access to the handset.

    1. Using the file browser of your computer copy the 2 files back to the Download directory of the Jolla device.
    2. If you want to use an ssh client (instead of typing on the command prompt of the Sailfish Terminal):
      • On the PC start the ssh client (e.g. Cygwin Terminal).
      • Connect to the Jolla device: On the command line enter: xxx.xxx.xxx.xxx -l nemo and [Enter]. (xxx.xxx.xxx.xxx being the WiFi IP address you noted earlier; "-l" = hyphen + lower case L).
        (The ssh client connects to the handset and asks for the password. If it should not connect, somehow the PC does not find the way to the Jolla. Check your firewall. On my system for example, I can only connect when the PC is connected to the router via cable. If it still does not work: Use the Sailfish Terminal.)
      • When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)
    3. If you want to use the Sailfish Terminal app (as installed when activating the developer mode):
      • Start Terminal.
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)

      From now on be careful, what you are doing. As administrator you may break your handset!

      Continue with either, ssh client or Terminal as follows:
    4. On the command line enter devel-su and [Enter]. (You are asked for a password.)
    5. When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
      (The command line prompt changes to "#". You are logged in as administrator.)
    6. Copy the files created to the layout directory: Enter cd /home/nemo/Downloads and [Enter]
      (Observe the upper case "D" in Downloads -- you are talking Linux where file/directory names are case sensitive).
    7. Check that you are in the right directory and your files are there: Enter dir and [Enter].
      (In the list shown, your files should be included.)
    8. Copy the layout file: Enter cp dex.qml /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
      (Instead of dex.qml note your own file).
    9. Copy the layout file: Enter cp dex.conf /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
      (Instead of dex.conf note your own file).
    10. Reset the keyboard service: Enter killall maliit-server and [Enter].

    2.6 Selecting the new keyboard layout

    1. Open any application that shows the keyboard.
    2. Tap-and-hold the space bar. (The languages available are displayed.)
    3. From the languages list select your language (as stated in the your conf file).

    Enjoy.

    PS: Helpful was http://talk.maemo.org/showthread.php?t=91917 found by @ssahla, see https://together.jolla.com/question/19999/cant-type-en-dash-on-virtual-keyboard/.

    Initially created by: @jgr

    HowTo: Adapt Sailfish virtual keyboard (vkb) layout

    It is quite easy to adapt the virtual keyboard of Sailfish OS in such a way, that you do not spoil any of the original layouts and that it also should survive a system update. While you can do it all on the Jolla handset itself, I personally prefer using a PC for it.

    See also answers

    1 What you need

    • Developer mode activated (including ssh access when using the PC; see below).
    • An Unicode capable editor (UTF-8), I prefer SciTE (http://www.scintilla.org). (Alternatively you may use vi directly on the Jolla handset -- but if you can use this, you do not need the following instructions ;-)
    • USB access from your PC to your Jolla handset
    • FileBrowser app on your Jolla handset (get it from the Jolla Store)
    • Optional: An ssh client, I prefer Cygwin Terminal. (Alternatively you may use Terminal on the Jolla handset.)
    • Optional, only when using an ssh client: WiFi access from your PC to your Jolla handset

    2 Procedure

    See answer vkb layout file available from internet if you have found a layout file on the internet that suits you.

    2.1 Developer mode

    1. Go to |- Settings | System Settings | Developer Mode -|. ( Because your Jolla device can access the Jolla apps shop, a Terminal app is installed now.)
    2. Activate „Developer mode“.
    3. Activate „Remote connection” (either enter and [Save] a password or [Generate] it; if you generate it, you have to edit it slightly before the [Save] button becomes available).
    4. Note the WiFi IP address shown under ""Networking".

    2.2 Getting the layout template

    1. Open FileBrowser.
    2. From the pulley menu select "Go to home".
    3. Using the 3 dots in the top left, go to the root of the file system (no dot being shown any longer).
    4. Go down in the file system to (tapping each of the directory icons): /usr/share/maliit/plugins/com/jolla/layouts/
    5. Look for the qml file of the language you want to use as a template, e.g. de.qml for German.
    6. Tap-and-hold that file.
    7. From the context menu opening select "Copy".
    8. From the pulley menu select "Home".
    9. Go down to directory "Downloads".
    10. From the pulley menu select "Paste".
    11. Connect Jolla handset and PC via USB.
    12. When requested, select "PC connection".
    13. Using your PC file browser (e.g. Windows Explorer) go to the "Sailfish" device, directory "Downloads" (in Windows, the address line should show: "Computer\Sailfish\Phone Memory\Downloads").
    14. Copy the previous qml file onto your PC.
    15. Rename the qml file suitably, e.g. de.qml into dex.qml (x = extended)

    2.3 Editing the template

    1. Open the renamed qml file in the text editor of your choice.
    2. Make sure, the character coding is set to UTF-8 (in SciTE: |- File | Encoding | UTF-8 -|.

    Study the file contents. You have

    • 3 entries "KeyboardLayout" corresponding to the 3 rows of keys (except the lowest one with the space bar).
    • 7 or 11 "CharacterKeys" in each row corresponding to the actual keys.
    • For each CharacterKey a
      • "caption": lower case letter
      • "captionShifted": upper case letter
      • "symView": 1st level figure/symbol character
      • "symView2": 2nd level figure/symbol character
      • "accents": The list of characters appearing when you tap-and-hold a key in the lower case letter level
      • "accentsShifted": The list of characters appearing when you tap-and-hold a key in the upper case letter level
    • 1 entry "SpacebarRow": A reference for the space bar row definitions. (You may change even this row, check file http://bundyo.org/jolla/layouts/bg.qml.)

    Most interesting probably are changes to the "accents" and "accentsShifted" entries, you may add such entries for any key not yet having such entry. For example, I created a keyboard layout where each key of the upper row includes a number from 1 to 9 and 0 in the accents and accentsShifted and the most right key holding some special characters such as @.

    You may even add or remove keys (add/remove a "CharacterKey" statement). However, 11 keys in the upper rows seems to be a natural maximum, thereafter the key space gets too small to be usable (at least for me).

    When finished with editing, save the file.

    2.4 Creating a config file

    In order that Sailfish recognizes your newly created layout, you need a config file. This should have the same name as the layout file, except for the extension being "conf", i.e. dex.conf. The contents should be:

    [dex.qml]

    name=DeutschX

    languageCode=DE

    With:

    • 1st line: file name of layout file
    • 2nd line: indicating the language as shown when tap-and-holding the space bar of the vkb
    • 3rd line: international language code as shown on the space bar

    Create such file on your computer, e.g. using SciTE.

    2.5 Copying the layout and config file back onto the Jolla handset

    Because the Sailfish FileBrowser cannot copy files into the system directories, you need command line access to the handset.

    1. Using the file browser of your computer copy the 2 files back to the Download directory of the Jolla device.
    2. If you want to use an ssh client (instead of typing on the command prompt of the Sailfish Terminal):
      • On the PC start the ssh client (e.g. Cygwin Terminal).
      • Connect to the Jolla device: On the command line enter: xxx.xxx.xxx.xxx -l nemo and [Enter]. (xxx.xxx.xxx.xxx being the WiFi IP address you noted earlier; "-l" = hyphen + lower case L).
        (The ssh client connects to the handset and asks for the password. If it should not connect, somehow the PC does not find the way to the Jolla. Check your firewall. On my system for example, I can only connect when the PC is connected to the router via cable. If it still does not work: Use the Sailfish Terminal.)
      • When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)
    3. If you want to use the Sailfish Terminal app (as installed when activating the developer mode):
      • Start Terminal.
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)

      From now on be careful, what you are doing. As administrator you may break your handset!

      Continue with either, ssh client or Terminal as follows:
    4. On the command line enter devel-su and [Enter]. (You are asked for a password.)
    5. When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
      (The command line prompt changes to "#". You are logged in as administrator.)
    6. Copy the files created to the layout directory: Enter cd /home/nemo/Downloads and [Enter]
      (Observe the upper case "D" in Downloads -- you are talking Linux where file/directory names are case sensitive).
    7. Check that you are in the right directory and your files are there: Enter dir and [Enter].
      (In the list shown, your files should be included.)
    8. Copy the layout file: Enter cp dex.qml /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
      (Instead of dex.qml note your own file).
    9. Copy the layout file: Enter cp dex.conf /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
      (Instead of dex.conf note your own file).
    10. Reset the keyboard service: Enter killall maliit-server and [Enter].

    2.6 Selecting the new keyboard layout

    1. Open any application that shows the keyboard.
    2. Tap-and-hold the space bar. (The languages available are displayed.)
    3. From the languages list select your language (as stated in the your conf file).

    Enjoy.

    PS: Helpful was http://talk.maemo.org/showthread.php?t=91917 found by @ssahla, see https://together.jolla.com/question/19999/cant-type-en-dash-on-virtual-keyboard/.

    Initially created by: @jgr

    HowTo: Adapt Sailfish virtual keyboard (vkb) layout

    It is quite easy to adapt the virtual keyboard of Sailfish OS in such a way, that you do not spoil any of the original layouts and that it also should survive a system update. While you can do it all on the Jolla handset itself, I personally prefer using a PC for it.

    See also answers

    1 What you need

    • Developer mode activated (including ssh access when using the PC; see below).
    • An Unicode capable editor (UTF-8), I prefer SciTE (http://www.scintilla.org). (Alternatively you may use vi directly on the Jolla handset -- but if you can use this, you do not need the following instructions ;-)
    • USB access from your PC to your Jolla handset
    • FileBrowser app on your Jolla handset (get it from the Jolla Store)
    • Optional: An ssh client, I prefer Cygwin Terminal. (Alternatively you may use Terminal on the Jolla handset.)
    • Optional, only when using an ssh client: WiFi access from your PC to your Jolla handset

    2 Procedure

    See answer vkb layout file available from internet if you have found a layout file on the internet that suits you.

    2.1 Developer mode

    1. Go to |- Settings | System Settings | Developer Mode -|. ( Because your Jolla device can access the Jolla apps shop, a Terminal app is installed now.)
    2. Activate „Developer mode“.
    3. Activate „Remote connection” (either enter and [Save] a password or [Generate] it; if you generate it, you have to edit it slightly before the [Save] button becomes available).
    4. Note the WiFi IP address shown under ""Networking".

    2.2 Getting the layout template

    1. Open FileBrowser.
    2. From the pulley menu select "Go to home".
    3. Using the 3 dots in the top left, go to the root of the file system (no dot being shown any longer).
    4. Go down in the file system to (tapping each of the directory icons): /usr/share/maliit/plugins/com/jolla/layouts/
    5. Look for the qml file of the language you want to use as a template, e.g. de.qml for German.
    6. Tap-and-hold that file.
    7. From the context menu opening select "Copy".
    8. From the pulley menu select "Home".
    9. Go down to directory "Downloads".
    10. From the pulley menu select "Paste".
    11. Connect Jolla handset and PC via USB.
    12. When requested, select "PC connection".
    13. Using your PC file browser (e.g. Windows Explorer) go to the "Sailfish" device, directory "Downloads" (in Windows, the address line should show: "Computer\Sailfish\Phone Memory\Downloads").
    14. Copy the previous qml file onto your PC.
    15. Rename the qml file suitably, e.g. de.qml into dex.qml (x = extended)

    2.3 Editing the template

    1. Open the renamed qml file in the text editor of your choice.
    2. Make sure, the character coding is set to UTF-8 (in SciTE: |- File | Encoding | UTF-8 -|.

    Study the file contents. You have

    • 3 entries "KeyboardLayout" corresponding to the 3 rows of keys (except the lowest one with the space bar).
    • 7 or 11 "CharacterKeys" in each row corresponding to the actual keys.
    • For each CharacterKey a
      • "caption": lower case letter
      • "captionShifted": upper case letter
      • "symView": 1st level figure/symbol character
      • "symView2": 2nd level figure/symbol character
      • "accents": The list of characters appearing when you tap-and-hold a key in the lower case letter level
      • "accentsShifted": The list of characters appearing when you tap-and-hold a key in the upper case letter level
    • 1 entry "SpacebarRow": A reference for the space bar row definitions. (You may change even this row, check file http://bundyo.org/jolla/layouts/bg.qml.)

    Most interesting probably are changes to the "accents" and "accentsShifted" entries, you may add such entries for any key not yet having such entry. For example, I created a keyboard layout where each key of the upper row includes a number from 1 to 9 and 0 in the accents and accentsShifted and the most right key holding some special characters such as @.

    You may even add or remove keys (add/remove a "CharacterKey" statement). However, 11 keys in the upper rows seems to be a natural maximum, thereafter the key space gets too small to be usable (at least for me).

    When finished with editing, save the file.

    2.4 Creating a config file

    In order that Sailfish recognizes your newly created layout, you need a config file. This should have the same name as the layout file, except for the extension being "conf", i.e. dex.conf. The contents should be:

    [dex.qml]

    name=DeutschX

    languageCode=DE

    With:

    • 1st line: file name of layout file
    • 2nd line: indicating the language as shown when tap-and-holding the space bar of the vkb
    • 3rd line: international language code as shown on the space bar

    Create such file on your computer, e.g. using SciTE.

    2.5 Copying the layout and config file back onto the Jolla handset

    Because the Sailfish FileBrowser cannot copy files into the system directories, you need command line access to the handset.

    1. Using the file browser of your computer copy the 2 files back to the Download directory of the Jolla device.
    2. If you want to use an ssh client (instead of typing on the command prompt of the Sailfish Terminal):
      • On the PC start the ssh client (e.g. Cygwin Terminal).
      • Connect to the Jolla device: On the command line enter: xxx.xxx.xxx.xxx -l nemo and [Enter]. (xxx.xxx.xxx.xxx being the WiFi IP address you noted earlier; "-l" = hyphen + lower case L).
        (The ssh client connects to the handset and asks for the password. If it should not connect, somehow the PC does not find the way to the Jolla. Check your firewall. On my system for example, I can only connect when the PC is connected to the router via cable. If it still does not work: Use the Sailfish Terminal.)
      • When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)
    3. If you want to use the Sailfish Terminal app (as installed when activating the developer mode):
      • Start Terminal.
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)

      From now on be careful, what you are doing. As administrator you may break your handset!

      Continue with either, ssh client or Terminal as follows:
    4. On the command line enter devel-su and [Enter]. (You are asked for a password.)
    5. When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
      (The command line prompt changes to "#". You are logged in as administrator.)
    6. Copy the files created to the layout directory: Enter cd /home/nemo/Downloads and [Enter]
      (Observe the upper case "D" in Downloads -- you are talking Linux where file/directory names are case sensitive).
    7. Check that you are in the right directory and your files are there: Enter dir and [Enter].
      (In the list shown, your files should be included.)
    8. Copy the layout file: Enter cp dex.qml /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
      (Instead of dex.qml note your own file).
    9. Copy the layout file: Enter cp dex.conf /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
      (Instead of dex.conf note your own file).
    10. Reset the keyboard service: Enter killall maliit-server and [Enter].

    2.6 Selecting the new keyboard layout

    1. Open any application that shows the keyboard.
    2. Tap-and-hold the space bar. (The languages available are displayed.)
    3. From the languages list select your language (as stated in the your conf file).

    Enjoy.

    PS: Helpful was http://talk.maemo.org/showthread.php?t=91917 found by @ssahla, see https://together.jolla.com/question/19999/cant-type-en-dash-on-virtual-keyboard/.

    Initially created by: @jgr

    HowTo: Adapt Sailfish virtual keyboard (vkb) layout

    It is quite easy to adapt the virtual keyboard of Sailfish OS in such a way, that you do not spoil any of the original layouts and that it also should survive a system update. While you can do it all on the Jolla handset itself, I personally prefer using a PC for it.

    See also answers

    1 What you need

    • Developer mode activated (including ssh access when using the PC; see below).
    • An Unicode capable editor (UTF-8), I prefer SciTE (http://www.scintilla.org). (Alternatively you may use vi directly on the Jolla handset -- but if you can use this, you do not need the following instructions ;-)
    • USB access from your PC to your Jolla handset
    • FileBrowser app on your Jolla handset (get it from the Jolla Store)
    • Optional: An ssh client, I prefer Cygwin Terminal. (Alternatively you may use Terminal on the Jolla handset.)
    • Optional, only when using an ssh client: WiFi access from your PC to your Jolla handset

    2 Procedure

    See answer vkb layout file available from internet if you have found a layout file on the internet that suits you.

    2.1 Developer mode

    1. Go to |- Settings | System Settings | Developer Mode -|. ( Because your Jolla device can access the Jolla apps shop, a Terminal app is installed now.)
    2. Activate „Developer mode“.
    3. Activate „Remote connection” (either enter and [Save] a password or [Generate] it; if you generate it, you have to edit it slightly before the [Save] button becomes available).
    4. Note the WiFi IP address shown under ""Networking".

    2.2 Getting the layout template

    1. Open FileBrowser.
    2. From the pulley menu select "Go to home".
    3. Using the 3 dots in the top left, go to the root of the file system (no dot being shown any longer).
    4. Go down in the file system to (tapping each of the directory icons): /usr/share/maliit/plugins/com/jolla/layouts/
    5. Look for the qml file of the language you want to use as a template, e.g. de.qml for German.
    6. Tap-and-hold that file.
    7. From the context menu opening select "Copy".
    8. From the pulley menu select "Home".
    9. Go down to directory "Downloads".
    10. From the pulley menu select "Paste".
    11. Connect Jolla handset and PC via USB.
    12. When requested, select "PC connection".
    13. Using your PC file browser (e.g. Windows Explorer) go to the "Sailfish" device, directory "Downloads" (in Windows, the address line should show: "Computer\Sailfish\Phone Memory\Downloads").
    14. Copy the previous qml file onto your PC.
    15. Rename the qml file suitably, e.g. de.qml into dex.qml (x = extended)

    2.3 Editing the template

    1. Open the renamed qml file in the text editor of your choice.
    2. Make sure, the character coding is set to UTF-8 (in SciTE: |- File | Encoding | UTF-8 -|.

    Study the file contents. You have

    • 3 entries "KeyboardLayout" corresponding to the 3 rows of keys (except the lowest one with the space bar).
    • 7 or 11 "CharacterKeys" in each row corresponding to the actual keys.
    • For each CharacterKey a
      • "caption": lower case letter
      • "captionShifted": upper case letter
      • "symView": 1st level figure/symbol character
      • "symView2": 2nd level figure/symbol character
      • "accents": The list of characters appearing when you tap-and-hold a key in the lower case letter level
      • "accentsShifted": The list of characters appearing when you tap-and-hold a key in the upper case letter level
    • 1 entry "SpacebarRow": A reference for the space bar row definitions. (You may change even this row, check file http://bundyo.org/jolla/layouts/bg.qml.)

    Most interesting probably are changes to the "accents" and "accentsShifted" entries, you may add such entries for any key not yet having such entry. For example, I created a keyboard layout where each key of the upper row includes a number from 1 to 9 and 0 in the accents and accentsShifted and the most right key holding some special characters such as @.

    You may even add or remove keys (add/remove a "CharacterKey" statement). However, 11 keys in the upper rows seems to be a natural maximum, thereafter the key space gets too small to be usable (at least for me).

    When finished with editing, save the file.

    2.4 Creating a config file

    In order that Sailfish recognizes your newly created layout, you need a config file. This should have the same name as the layout file, except for the extension being "conf", i.e. dex.conf. The contents should be:

    [dex.qml]

    name=DeutschX

    languageCode=DE

    With:

    • 1st line: file name of layout file
    • 2nd line: indicating the language as shown when tap-and-holding the space bar of the vkb
    • 3rd line: international language code as shown on the space bar

    Create such file on your computer, e.g. using SciTE.

    2.5 Copying the layout and config file back onto the Jolla handset

    Because the Sailfish FileBrowser cannot copy files into the system directories, you need command line access to the handset.

    1. Using the file browser of your computer copy the 2 files back to the Download directory of the Jolla device.
    2. If you want to use an ssh client (instead of typing on the command prompt of the Sailfish Terminal):
      • On the PC start the ssh client (e.g. Cygwin Terminal).
      • Connect to the Jolla device: On the command line enter: xxx.xxx.xxx.xxx -l nemo and [Enter]. (xxx.xxx.xxx.xxx being the WiFi IP address you noted earlier; "-l" = hyphen + lower case L).
        (The ssh client connects to the handset and asks for the password. If it should not connect, somehow the PC does not find the way to the Jolla. Check your firewall. On my system for example, I can only connect when the PC is connected to the router via cable. If it still does not work: Use the Sailfish Terminal.)
      • When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)
    3. If you want to use the Sailfish Terminal app (as installed when activating the developer mode):
      • Start Terminal.
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)

      From now on be careful, what you are doing. As administrator you may break your handset!

      Continue with either, ssh client or Terminal as follows:
    4. On the command line enter devel-su and [Enter]. (You are asked for a password.)
    5. When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
      (The command line prompt changes to "#". You are logged in as administrator.)
    6. Copy the files created to the layout directory: Enter cd /home/nemo/Downloads and [Enter]
      (Observe the upper case "D" in Downloads -- you are talking Linux where file/directory names are case sensitive).
    7. Check that you are in the right directory and your files are there: Enter dir and [Enter].
      (In the list shown, your files should be included.)
    8. Copy the layout file: Enter cp dex.qml /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
      (Instead of dex.qml note your own file).
    9. Copy the layout file: Enter cp dex.conf /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
      (Instead of dex.conf note your own file).
    10. Reset the keyboard service: Enter killall maliit-server and [Enter].

    2.6 Selecting the new keyboard layout

    1. Open any application that shows the keyboard.
    2. Tap-and-hold the space bar. (The languages available are displayed.)
    3. From the languages list select your language (as stated in the your conf file).

    Enjoy.

    PS: Helpful was http://talk.maemo.org/showthread.php?t=91917 found by @ssahla, see https://together.jolla.com/question/19999/cant-type-en-dash-on-virtual-keyboard/.

    Initially created by: @jgr

    HowTo: Adapt Sailfish virtual keyboard (vkb) layout

    It is quite easy to adapt the virtual keyboard of Sailfish OS in such a way, that you do not spoil any of the original layouts and that it also should survive a system update. While you can do it all on the Jolla handset itself, I personally prefer using a PC for it.

    See also answers

    1 What you need

    • Developer mode activated (including ssh access when using the PC; see below).
    • An Unicode capable editor (UTF-8), I prefer SciTE (http://www.scintilla.org). (Alternatively you may use vi directly on the Jolla handset -- but if you can use this, you do not need the following instructions ;-)
    • USB access from your PC to your Jolla handset
    • FileBrowser app on your Jolla handset (get it from the Jolla Store)
    • Optional: An ssh client, I prefer Cygwin Terminal. (Alternatively you may use Terminal on the Jolla handset.)
    • Optional, only when using an ssh client: WiFi access from your PC to your Jolla handset

    2 Procedure

    See answer vkb layout file available from internet if you have found a layout file on the internet that suits you.

    2.1 Developer mode

    1. Go to |- Settings | System Settings | Developer Mode -|. ( Because your Jolla device can access the Jolla apps shop, a Terminal app is installed now.)
    2. Activate „Developer mode“.
    3. Activate „Remote connection” (either enter and [Save] a password or [Generate] it; if you generate it, you have to edit it slightly before the [Save] button becomes available).
    4. Note the WiFi IP address shown under ""Networking".

    2.2 Getting the layout template

    1. Open FileBrowser.
    2. From the pulley menu select "Go to home".
    3. Using the 3 dots in the top left, go to the root of the file system (no dot being shown any longer).
    4. Go down in the file system to (tapping each of the directory icons): /usr/share/maliit/plugins/com/jolla/layouts/
    5. Look for the qml file of the language you want to use as a template, e.g. de.qml for German.
    6. Tap-and-hold that file.
    7. From the context menu opening select "Copy".
    8. From the pulley menu select "Home".
    9. Go down to directory "Downloads".
    10. From the pulley menu select "Paste".
    11. Connect Jolla handset and PC via USB.
    12. When requested, select "PC connection".
    13. Using your PC file browser (e.g. Windows Explorer) go to the "Sailfish" device, directory "Downloads" (in Windows, the address line should show: "Computer\Sailfish\Phone Memory\Downloads").
    14. Copy the previous qml file onto your PC.
    15. Rename the qml file suitably, e.g. de.qml into dex.qml (x = extended)

    2.3 Editing the template

    1. Open the renamed qml file in the text editor of your choice.
    2. Make sure, the character coding is set to UTF-8 (in SciTE: |- File | Encoding | UTF-8 -|.

    Study the file contents. You have

    • 3 entries "KeyboardLayout" corresponding to the 3 rows of keys (except the lowest one with the space bar).
    • 7 or 11 "CharacterKeys" in each row corresponding to the actual keys.
    • For each CharacterKey a
      • "caption": lower case letter
      • "captionShifted": upper case letter
      • "symView": 1st level figure/symbol character
      • "symView2": 2nd level figure/symbol character
      • "accents": The list of characters appearing when you tap-and-hold a key in the lower case letter level
      • "accentsShifted": The list of characters appearing when you tap-and-hold a key in the upper case letter level
    • 1 entry "SpacebarRow": A reference for the space bar row definitions. (You may change even this row, check file http://bundyo.org/jolla/layouts/bg.qml.)

    Most interesting probably are changes to the "accents" and "accentsShifted" entries, you may add such entries for any key not yet having such entry. For example, I created a keyboard layout where each key of the upper row includes a number from 1 to 9 and 0 in the accents and accentsShifted and the most right key holding some special characters such as @.

    You may even add or remove keys (add/remove a "CharacterKey" statement). However, 11 keys in the upper rows seems to be a natural maximum, thereafter the key space gets too small to be usable (at least for me).

    When finished with editing, save the file.

    2.4 Creating a config file

    In order that Sailfish recognizes your newly created layout, you need a config file. This should have the same name as the layout file, except for the extension being "conf", i.e. dex.conf. The contents should be:

    [dex.qml]

    name=DeutschX

    languageCode=DE

    With:

    • 1st line: file name of layout file
    • 2nd line: indicating the language as shown when tap-and-holding the space bar of the vkb
    • 3rd line: international language code as shown on the space bar

    Create such file on your computer, e.g. using SciTE.

    2.5 Copying the layout and config file back onto the Jolla handset

    Because the Sailfish FileBrowser cannot copy files into the system directories, you need command line access to the handset.

    1. Using the file browser of your computer copy the 2 files back to the Download directory of the Jolla device.
    2. If you want to use an ssh client (instead of typing on the command prompt of the Sailfish Terminal):
      • On the PC start the ssh client (e.g. Cygwin Terminal).
      • Connect to the Jolla device: On the command line enter: xxx.xxx.xxx.xxx -l nemo and [Enter]. (xxx.xxx.xxx.xxx being the WiFi IP address you noted earlier; "-l" = hyphen + lower case L).
        (The ssh client connects to the handset and asks for the password. If it should not connect, somehow the PC does not find the way to the Jolla. Check your firewall. On my system for example, I can only connect when the PC is connected to the router via cable. If it still does not work: Use the Sailfish Terminal.)
      • When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)
    3. If you want to use the Sailfish Terminal app (as installed when activating the developer mode):
      • Start Terminal.
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)

      From now on be careful, what you are doing. As administrator you may break your handset!

      Continue with either, ssh client or Terminal as follows:
    4. On the command line enter devel-su and [Enter]. (You are asked for a password.)
    5. When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
      (The command line prompt changes to "#". You are logged in as administrator.)
    6. Copy the files created to the layout directory: Enter cd /home/nemo/Downloads and [Enter]
      (Observe the upper case "D" in Downloads -- you are talking Linux where file/directory names are case sensitive).
    7. Check that you are in the right directory and your files are there: Enter dir and [Enter].
      (In the list shown, your files should be included.)
    8. Copy the layout file: Enter cp dex.qml /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
      (Instead of dex.qml note your own file).
    9. Copy the layout file: Enter cp dex.conf /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
      (Instead of dex.conf note your own file).
    10. Reset the keyboard service: Enter killall maliit-server and [Enter].

    NOTE: Disable "Remote access" again before connecting to networks you cannot trust (e.g. public WiFi networks, mobile providers that do not allocate private IP 4 addresses and block inter-user IP communication – assume, they do not, as long as you do not know they do). Otherwise, strangers could try to enter your phone via ssh and try passwords using an automated procedure until they have been successfully entering your phone.

    2.6 Selecting the new keyboard layout

    1. Open any application that shows the keyboard.
    2. Tap-and-hold the space bar. (The languages available are displayed.)
    3. From the languages list select your language (as stated in the your conf file).

    Enjoy.

    PS: Helpful was http://talk.maemo.org/showthread.php?t=91917 found by @ssahla, see https://together.jolla.com/question/19999/cant-type-en-dash-on-virtual-keyboard/.

    Initially created by: @jgr

    HowTo: Adapt Sailfish virtual keyboard (vkb) layout

    It is quite easy to adapt the virtual keyboard of Sailfish OS in such a way, that you do not spoil any of the original layouts and that it also should survive a system update. While you can do it all on the Jolla handset itself, I personally prefer using a PC for it.

    See also answers

    If you want to get capital letters in the lower case keyboard level by long-tapping, you might be interested in the post https://together.jolla.com/question/28819/howto-long-press-character-keyboard-for-capitalization/.
     

    1 What you need

    • Developer mode activated (including ssh access when using the PC; see below).
    • An Unicode capable editor (UTF-8), I prefer SciTE (http://www.scintilla.org). (Alternatively you may use vi directly on the Jolla handset -- but if you can use this, you do not need the following instructions ;-)
    • USB access from your PC to your Jolla handset
    • FileBrowser app on your Jolla handset (get it from the Jolla Store)
    • Optional: An ssh client, I prefer Cygwin Terminal. (Alternatively you may use Terminal on the Jolla handset.)
    • Optional, only when using an ssh client: WiFi access from your PC to your Jolla handset

    2 Procedure

    See answer vkb layout file available from internet if you have found a layout file on the internet that suits you.

    2.1 Developer mode

    1. Go to |- Settings | System Settings | Developer Mode -|. ( Because your Jolla device can access the Jolla apps shop, a Terminal app is installed now.)
    2. Activate „Developer mode“.
    3. Activate „Remote connection” (either enter and [Save] a password or [Generate] it; if you generate it, you have to edit it slightly before the [Save] button becomes available).
    4. Note the WiFi IP address shown under ""Networking".

    2.2 Getting the layout template

    1. Open FileBrowser.
    2. From the pulley menu select "Go to home".
    3. Using the 3 dots in the top left, go to the root of the file system (no dot being shown any longer).
    4. Go down in the file system to (tapping each of the directory icons): /usr/share/maliit/plugins/com/jolla/layouts/
    5. Look for the qml file of the language you want to use as a template, e.g. de.qml for German.
    6. Tap-and-hold that file.
    7. From the context menu opening select "Copy".
    8. From the pulley menu select "Home".
    9. Go down to directory "Downloads".
    10. From the pulley menu select "Paste".
    11. Connect Jolla handset and PC via USB.
    12. When requested, select "PC connection".
    13. Using your PC file browser (e.g. Windows Explorer) go to the "Sailfish" device, directory "Downloads" (in Windows, the address line should show: "Computer\Sailfish\Phone Memory\Downloads").
    14. Copy the previous qml file onto your PC.
    15. Rename the qml file suitably, e.g. de.qml into dex.qml (x = extended)

    2.3 Editing the template

    1. Open the renamed qml file in the text editor of your choice.
    2. Make sure, the character coding is set to UTF-8 (in SciTE: |- File | Encoding | UTF-8 -|.

    Study the file contents. You have

    • 3 entries "KeyboardLayout" corresponding to the 3 rows of keys (except the lowest one with the space bar).
    • 7 or 11 "CharacterKeys" in each row corresponding to the actual keys.
    • For each CharacterKey a
      • "caption": lower case letter
      • "captionShifted": upper case letter
      • "symView": 1st level figure/symbol character
      • "symView2": 2nd level figure/symbol character
      • "accents": The list of characters appearing when you tap-and-hold a key in the lower case letter level
      • "accentsShifted": The list of characters appearing when you tap-and-hold a key in the upper case letter level
    • 1 entry "SpacebarRow": A reference for the space bar row definitions. (You may change even this row, check file http://bundyo.org/jolla/layouts/bg.qml.)

    Most interesting probably are changes to the "accents" and "accentsShifted" entries, you may add such entries for any key not yet having such entry. For example, I created a keyboard layout where each key of the upper row includes a number from 1 to 9 and 0 in the accents and accentsShifted and the most right key holding some special characters such as @.

    You may even add or remove keys (add/remove a "CharacterKey" statement). However, 11 keys in the upper rows seems to be a natural maximum, thereafter the key space gets too small to be usable (at least for me).

    When finished with editing, save the file.

    2.4 Creating a config file

    In order that Sailfish recognizes your newly created layout, you need a config file. This should have the same name as the layout file, except for the extension being "conf", i.e. dex.conf. The contents should be:

    [dex.qml]

    name=DeutschX

    languageCode=DE

    With:

    • 1st line: file name of layout file
    • 2nd line: indicating the language as shown when tap-and-holding the space bar of the vkb
    • 3rd line: international language code as shown on the space bar

    Create such file on your computer, e.g. using SciTE.

    2.5 Copying the layout and config file back onto the Jolla handset

    Because the Sailfish FileBrowser cannot copy files into the system directories, you need command line access to the handset.

    1. Using the file browser of your computer copy the 2 files back to the Download directory of the Jolla device.
    2. If you want to use an ssh client (instead of typing on the command prompt of the Sailfish Terminal):
      • On the PC start the ssh client (e.g. Cygwin Terminal).
      • Connect to the Jolla device: On the command line enter: xxx.xxx.xxx.xxx -l nemo and [Enter]. (xxx.xxx.xxx.xxx being the WiFi IP address you noted earlier; "-l" = hyphen + lower case L).
        (The ssh client connects to the handset and asks for the password. If it should not connect, somehow the PC does not find the way to the Jolla. Check your firewall. On my system for example, I can only connect when the PC is connected to the router via cable. If it still does not work: Use the Sailfish Terminal.)
      • When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)
    3. If you want to use the Sailfish Terminal app (as installed when activating the developer mode):
      • Start Terminal.
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)

      From now on be careful, what you are doing. As administrator you may break your handset!

      Continue with either, ssh client or Terminal as follows:
    4. On the command line enter devel-su and [Enter]. (You are asked for a password.)
    5. When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
      (The command line prompt changes to "#". You are logged in as administrator.)
    6. Copy the files created to the layout directory: Enter cd /home/nemo/Downloads and [Enter]
      (Observe the upper case "D" in Downloads -- you are talking Linux where file/directory names are case sensitive).
    7. Check that you are in the right directory and your files are there: Enter dir and [Enter].
      (In the list shown, your files should be included.)
    8. Copy the layout file: Enter cp dex.qml /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
      (Instead of dex.qml note your own file).
    9. Copy the layout file: Enter cp dex.conf /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
      (Instead of dex.conf note your own file).
    10. Reset the keyboard service: Enter killall maliit-server and [Enter].

    NOTE: Disable "Remote access" again before connecting to networks you cannot trust (e.g. public WiFi networks, mobile providers that do not allocate private IP 4 addresses and block inter-user IP communication – assume, they do not, as long as you do not know they do). Otherwise, strangers could try to enter your phone via ssh and try passwords using an automated procedure until they have been successfully entering your phone.

    2.6 Selecting the new keyboard layout

    1. Open any application that shows the keyboard.
    2. Tap-and-hold the space bar. (The languages available are displayed.)
    3. From the languages list select your language (as stated in the your conf file).

    Enjoy.

    PS: Helpful was http://talk.maemo.org/showthread.php?t=91917 found by @ssahla, see https://together.jolla.com/question/19999/cant-type-en-dash-on-virtual-keyboard/.

    Initially created by: @jgr

    HowTo: Adapt Sailfish virtual keyboard (vkb) layout

    It is quite easy to adapt the virtual keyboard of Sailfish OS in such a way, that you do not spoil any of the original layouts and that it also should survive a system update. While you can do it all on the Jolla handset itself, I personally prefer using a PC for it.

    ###General warning

    With Sailfish OS 1.0.4.2 the keyboard code in directory /usr/share/maliit/plugins/com/jolla/ has changed, including Popper.qml and InputHandler.qml. See Do not overwrite your Sailfish OS 1.0.4.2 with files designed for previous versions! (This HowTo has not yet been adapted to Sailfish OS 1.0.4.2! Changing the layout files only seems to be ok, but e.g. adding cursor/arrow keys has to be considered afresh.)

    ###See also answers

    If you want to get capital letters in the lower case keyboard level by long-tapping, you might be interested in the post https://together.jolla.com/question/28819/howto-long-press-character-keyboard-for-capitalization/.
     

    1 What you need

    • Developer mode activated (including ssh access when using the PC; see below).
    • An Unicode capable editor (UTF-8), I prefer SciTE (http://www.scintilla.org). (Alternatively you may use vi directly on the Jolla handset -- but if you can use this, you do not need the following instructions ;-)
    • USB access from your PC to your Jolla handset
    • FileBrowser app on your Jolla handset (get it from the Jolla Store)
    • Optional: An ssh client, I prefer Cygwin Terminal. (Alternatively you may use Terminal on the Jolla handset.)
    • Optional, only when using an ssh client: WiFi access from your PC to your Jolla handset

    2 Procedure

    See answer vkb layout file available from internet if you have found a layout file on the internet that suits you.

    2.1 Developer mode

    1. Go to |- Settings | System Settings | Developer Mode -|. ( Because your Jolla device can access the Jolla apps shop, a Terminal app is installed now.)
    2. Activate „Developer mode“.
    3. Activate „Remote connection” (either enter and [Save] a password or [Generate] it; if you generate it, you have to edit it slightly before the [Save] button becomes available).
    4. Note the WiFi IP address shown under ""Networking".

    2.2 Getting the layout template

    1. Open FileBrowser.
    2. From the pulley menu select "Go to home".
    3. Using the 3 dots in the top left, go to the root of the file system (no dot being shown any longer).
    4. Go down in the file system to (tapping each of the directory icons): /usr/share/maliit/plugins/com/jolla/layouts/
    5. Look for the qml file of the language you want to use as a template, e.g. de.qml for German.
    6. Tap-and-hold that file.
    7. From the context menu opening select "Copy".
    8. From the pulley menu select "Home".
    9. Go down to directory "Downloads".
    10. From the pulley menu select "Paste".
    11. Connect Jolla handset and PC via USB.
    12. When requested, select "PC connection".
    13. Using your PC file browser (e.g. Windows Explorer) go to the "Sailfish" device, directory "Downloads" (in Windows, the address line should show: "Computer\Sailfish\Phone Memory\Downloads").
    14. Copy the previous qml file onto your PC.
    15. Rename the qml file suitably, e.g. de.qml into dex.qml (x = extended)

    2.3 Editing the template

    1. Open the renamed qml file in the text editor of your choice.
    2. Make sure, the character coding is set to UTF-8 (in SciTE: |- File | Encoding | UTF-8 -|.

    Study the file contents. You have

    • 3 entries "KeyboardLayout" corresponding to the 3 rows of keys (except the lowest one with the space bar).
    • 7 or 11 "CharacterKeys" in each row corresponding to the actual keys.
    • For each CharacterKey a
      • "caption": lower case letter
      • "captionShifted": upper case letter
      • "symView": 1st level figure/symbol character
      • "symView2": 2nd level figure/symbol character
      • "accents": The list of characters appearing when you tap-and-hold a key in the lower case letter level
      • "accentsShifted": The list of characters appearing when you tap-and-hold a key in the upper case letter level
    • 1 entry "SpacebarRow": A reference for the space bar row definitions. (You may change even this row, check file http://bundyo.org/jolla/layouts/bg.qml.)

    Most interesting probably are changes to the "accents" and "accentsShifted" entries, you may add such entries for any key not yet having such entry. For example, I created a keyboard layout where each key of the upper row includes a number from 1 to 9 and 0 in the accents and accentsShifted and the most right key holding some special characters such as @.

    You may even add or remove keys (add/remove a "CharacterKey" statement). However, 11 keys in the upper rows seems to be a natural maximum, thereafter the key space gets too small to be usable (at least for me).

    When finished with editing, save the file.

    2.4 Creating a config file

    In order that Sailfish recognizes your newly created layout, you need a config file. This should have the same name as the layout file, except for the extension being "conf", i.e. dex.conf. The contents should be:

    [dex.qml]

    name=DeutschX

    languageCode=DE

    With:

    • 1st line: file name of layout file
    • 2nd line: indicating the language as shown when tap-and-holding the space bar of the vkb
    • 3rd line: international language code as shown on the space bar

    Create such file on your computer, e.g. using SciTE.

    2.5 Copying the layout and config file back onto the Jolla handset

    Because the Sailfish FileBrowser cannot copy files into the system directories, you need command line access to the handset.

    1. Using the file browser of your computer copy the 2 files back to the Download directory of the Jolla device.
    2. If you want to use an ssh client (instead of typing on the command prompt of the Sailfish Terminal):
      • On the PC start the ssh client (e.g. Cygwin Terminal).
      • Connect to the Jolla device: On the command line enter: xxx.xxx.xxx.xxx -l nemo and [Enter]. (xxx.xxx.xxx.xxx being the WiFi IP address you noted earlier; "-l" = hyphen + lower case L).
        (The ssh client connects to the handset and asks for the password. If it should not connect, somehow the PC does not find the way to the Jolla. Check your firewall. On my system for example, I can only connect when the PC is connected to the router via cable. If it still does not work: Use the Sailfish Terminal.)
      • When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)
    3. If you want to use the Sailfish Terminal app (as installed when activating the developer mode):
      • Start Terminal.
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)

      From now on be careful, what you are doing. As administrator you may break your handset!

      Continue with either, ssh client or Terminal as follows:
    4. On the command line enter devel-su and [Enter]. (You are asked for a password.)
    5. When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
      (The command line prompt changes to "#". You are logged in as administrator.)
    6. Copy the files created to the layout directory: Enter cd /home/nemo/Downloads and [Enter]
      (Observe the upper case "D" in Downloads -- you are talking Linux where file/directory names are case sensitive).
    7. Check that you are in the right directory and your files are there: Enter dir and [Enter].
      (In the list shown, your files should be included.)
    8. Copy the layout file: Enter cp dex.qml /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
      (Instead of dex.qml note your own file).
    9. Copy the layout file: Enter cp dex.conf /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
      (Instead of dex.conf note your own file).
    10. Reset the keyboard service: Enter killall maliit-server and [Enter].

    NOTE: Disable "Remote access" again before connecting to networks you cannot trust (e.g. public WiFi networks, mobile providers that do not allocate private IP 4 addresses and block inter-user IP communication – assume, they do not, as long as you do not know they do). Otherwise, strangers could try to enter your phone via ssh and try passwords using an automated procedure until they have been successfully entering your phone.

    2.6 Selecting the new keyboard layout

    1. Open any application that shows the keyboard.
    2. Tap-and-hold the space bar. (The languages available are displayed.)
    3. From the languages list select your language (as stated in the your conf file).

    Enjoy.

    PS: Helpful was http://talk.maemo.org/showthread.php?t=91917 found by @ssahla, see https://together.jolla.com/question/19999/cant-type-en-dash-on-virtual-keyboard/.

    Initially created by: @jgr

    HowTo: Adapt Sailfish virtual keyboard (vkb) layout

    It is quite easy to adapt the virtual keyboard of Sailfish OS in such a way, that you do not spoil any of the original layouts and that it also should survive a system update. While you can do it all on the Jolla handset itself, I personally prefer using a PC for it.

    ###General

    General warning

    With Sailfish OS 1.0.4.2 the keyboard code in directory /usr/share/maliit/plugins/com/jolla/ has changed, including Popper.qml and InputHandler.qml. Do not overwrite your Sailfish OS 1.0.4.2 with files designed for previous versions! (This HowTo has not yet been adapted to Sailfish OS 1.0.4.2! Changing the layout files only seems to be ok, but e.g. adding cursor/arrow keys has to be considered afresh.)

    ###See

    See also answers

    If you want to get capital letters in the lower case keyboard level by long-tapping, you might be interested in the post https://together.jolla.com/question/28819/howto-long-press-character-keyboard-for-capitalization/.
     

    1 What you need

    • Developer mode activated (including ssh access when using the PC; see below).
    • An Unicode capable editor (UTF-8), I prefer SciTE (http://www.scintilla.org). (Alternatively you may use vi directly on the Jolla handset -- but if you can use this, you do not need the following instructions ;-)
    • USB access from your PC to your Jolla handset
    • FileBrowser app on your Jolla handset (get it from the Jolla Store)
    • Optional: An ssh client, I prefer Cygwin Terminal. (Alternatively you may use Terminal on the Jolla handset.)
    • Optional, only when using an ssh client: WiFi access from your PC to your Jolla handset

    2 Procedure

    See answer vkb layout file available from internet if you have found a layout file on the internet that suits you.

    2.1 Developer mode

    1. Go to |- Settings | System Settings | Developer Mode -|. ( Because your Jolla device can access the Jolla apps shop, a Terminal app is installed now.)
    2. Activate „Developer mode“.
    3. Activate „Remote connection” (either enter and [Save] a password or [Generate] it; if you generate it, you have to edit it slightly before the [Save] button becomes available).
    4. Note the WiFi IP address shown under ""Networking".

    2.2 Getting the layout template

    1. Open FileBrowser.
    2. From the pulley menu select "Go to home".
    3. Using the 3 dots in the top left, go to the root of the file system (no dot being shown any longer).
    4. Go down in the file system to (tapping each of the directory icons): /usr/share/maliit/plugins/com/jolla/layouts/
    5. Look for the qml file of the language you want to use as a template, e.g. de.qml for German.
    6. Tap-and-hold that file.
    7. From the context menu opening select "Copy".
    8. From the pulley menu select "Home".
    9. Go down to directory "Downloads".
    10. From the pulley menu select "Paste".
    11. Connect Jolla handset and PC via USB.
    12. When requested, select "PC connection".
    13. Using your PC file browser (e.g. Windows Explorer) go to the "Sailfish" device, directory "Downloads" (in Windows, the address line should show: "Computer\Sailfish\Phone Memory\Downloads").
    14. Copy the previous qml file onto your PC.
    15. Rename the qml file suitably, e.g. de.qml into dex.qml (x = extended)

    2.3 Editing the template

    1. Open the renamed qml file in the text editor of your choice.
    2. Make sure, the character coding is set to UTF-8 (in SciTE: |- File | Encoding | UTF-8 -|.

    Study the file contents. You have

    • 3 entries "KeyboardLayout" corresponding to the 3 rows of keys (except the lowest one with the space bar).
    • 7 or 11 "CharacterKeys" in each row corresponding to the actual keys.
    • For each CharacterKey a
      • "caption": lower case letter
      • "captionShifted": upper case letter
      • "symView": 1st level figure/symbol character
      • "symView2": 2nd level figure/symbol character
      • "accents": The list of characters appearing when you tap-and-hold a key in the lower case letter level
      • "accentsShifted": The list of characters appearing when you tap-and-hold a key in the upper case letter level
    • 1 entry "SpacebarRow": A reference for the space bar row definitions. (You may change even this row, check file http://bundyo.org/jolla/layouts/bg.qml.)

    Most interesting probably are changes to the "accents" and "accentsShifted" entries, you may add such entries for any key not yet having such entry. For example, I created a keyboard layout where each key of the upper row includes a number from 1 to 9 and 0 in the accents and accentsShifted and the most right key holding some special characters such as @.

    You may even add or remove keys (add/remove a "CharacterKey" statement). However, 11 keys in the upper rows seems to be a natural maximum, thereafter the key space gets too small to be usable (at least for me).

    When finished with editing, save the file.

    2.4 Creating a config file

    In order that Sailfish recognizes your newly created layout, you need a config file. This should have the same name as the layout file, except for the extension being "conf", i.e. dex.conf. The contents should be:

    [dex.qml]

    name=DeutschX

    languageCode=DE

    With:

    • 1st line: file name of layout file
    • 2nd line: indicating the language as shown when tap-and-holding the space bar of the vkb
    • 3rd line: international language code as shown on the space bar

    Create such file on your computer, e.g. using SciTE.

    2.5 Copying the layout and config file back onto the Jolla handset

    Because the Sailfish FileBrowser cannot copy files into the system directories, you need command line access to the handset.

    1. Using the file browser of your computer copy the 2 files back to the Download directory of the Jolla device.
    2. If you want to use an ssh client (instead of typing on the command prompt of the Sailfish Terminal):
      • On the PC start the ssh client (e.g. Cygwin Terminal).
      • Connect to the Jolla device: On the command line enter: xxx.xxx.xxx.xxx -l nemo and [Enter]. (xxx.xxx.xxx.xxx being the WiFi IP address you noted earlier; "-l" = hyphen + lower case L).
        (The ssh client connects to the handset and asks for the password. If it should not connect, somehow the PC does not find the way to the Jolla. Check your firewall. On my system for example, I can only connect when the PC is connected to the router via cable. If it still does not work: Use the Sailfish Terminal.)
      • When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)
    3. If you want to use the Sailfish Terminal app (as installed when activating the developer mode):
      • Start Terminal.
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)

      From now on be careful, what you are doing. As administrator you may break your handset!

      Continue with either, ssh client or Terminal as follows:
    4. On the command line enter devel-su and [Enter]. (You are asked for a password.)
    5. When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
      (The command line prompt changes to "#". You are logged in as administrator.)
    6. Copy the files created to the layout directory: Enter cd /home/nemo/Downloads and [Enter]
      (Observe the upper case "D" in Downloads -- you are talking Linux where file/directory names are case sensitive).
    7. Check that you are in the right directory and your files are there: Enter dir and [Enter].
      (In the list shown, your files should be included.)
    8. Copy the layout file: Enter cp dex.qml /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
      (Instead of dex.qml note your own file).
    9. Copy the layout file: Enter cp dex.conf /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
      (Instead of dex.conf note your own file).
    10. Reset the keyboard service: Enter killall maliit-server and [Enter].

    NOTE: Disable "Remote access" again before connecting to networks you cannot trust (e.g. public WiFi networks, mobile providers that do not allocate private IP 4 addresses and block inter-user IP communication – assume, they do not, as long as you do not know they do). Otherwise, strangers could try to enter your phone via ssh and try passwords using an automated procedure until they have been successfully entering your phone.

    2.6 Selecting the new keyboard layout

    1. Open any application that shows the keyboard.
    2. Tap-and-hold the space bar. (The languages available are displayed.)
    3. From the languages list select your language (as stated in the your conf file).

    Enjoy.

    PS: Helpful was http://talk.maemo.org/showthread.php?t=91917 found by @ssahla, see https://together.jolla.com/question/19999/cant-type-en-dash-on-virtual-keyboard/.

    Initially created by: @jgr

    HowTo: Adapt Sailfish virtual keyboard (vkb) layout

    It is quite easy to adapt the virtual keyboard of Sailfish OS in such a way, that you do not spoil any of the original layouts and that it also should survive a system update. While you can do it all on the Jolla handset itself, I personally prefer using a PC for it.

    General warning

    See also answers

    If you want to get capital letters in the lower case keyboard level by long-tapping, you might be interested in the post https://together.jolla.com/question/28819/howto-long-press-character-keyboard-for-capitalization/.
     

    Newer Sailfish versions

    • With Sailfish OS 1.0.4.2 the keyboard code in directory /usr/share/maliit/plugins/com/jolla/ has been changed, including Popper.qml and InputHandler.qml. Do not overwrite your Check Wiki: Changes from Sailfish OS 1.0.4.2 with files designed 1.0.3.8 to 1.0.4.20 to see what this means for previous versions! (This HowTo has not yet been adapted to Sailfish OS 1.0.4.2! Changing the layout files only seems to be ok, but e.g. adding cursor/arrow keys has to be considered afresh.)

      See also answers

      If you want to get capital letters in the lower case keyboard level by long-tapping, you might be interested in the post https://together.jolla.com/question/28819/howto-long-press-character-keyboard-for-capitalization/.
       

      1 What you need

      • Developer mode activated (including ssh access when using the PC; see below).
      • An Unicode capable editor (UTF-8), I prefer SciTE (http://www.scintilla.org). (Alternatively you may use vi directly on the Jolla handset -- but if you can use this, you do not need the following instructions ;-)
      • USB access from your PC to your Jolla handset
      • FileBrowser app on your Jolla handset (get it from the Jolla Store)
      • Optional: An ssh client, I prefer Cygwin Terminal. (Alternatively you may use Terminal on the Jolla handset.)
      • Optional, only when using an ssh client: WiFi access from your PC to your Jolla handset

      2 Procedure

      See answer vkb layout file available from internet if you have found a layout file on the internet that suits you.

      2.1 Developer mode

      1. Go to |- Settings | System Settings | Developer Mode -|. ( Because your Jolla device can access the Jolla apps shop, a Terminal app is installed now.)
      2. Activate „Developer mode“.
      3. Activate „Remote connection” (either enter and [Save] a password or [Generate] it; if you generate it, you have to edit it slightly before the [Save] button becomes available).
      4. Note the WiFi IP address shown under ""Networking".

      2.2 Getting the layout template

      1. Open FileBrowser.
      2. From the pulley menu select "Go to home".
      3. Using the 3 dots in the top left, go to the root of the file system (no dot being shown any longer).
      4. Go down in the file system to (tapping each of the directory icons): /usr/share/maliit/plugins/com/jolla/layouts/
      5. Look for the qml file of the language you want to use as a template, e.g. de.qml for German.
      6. Tap-and-hold that file.
      7. From the context menu opening select "Copy".
      8. From the pulley menu select "Home".
      9. Go down to directory "Downloads".
      10. From the pulley menu select "Paste".
      11. Connect Jolla handset and PC via USB.
      12. When requested, select "PC connection".
      13. Using your PC file browser (e.g. Windows Explorer) go to the "Sailfish" device, directory "Downloads" (in Windows, the address line should show: "Computer\Sailfish\Phone Memory\Downloads").
      14. Copy the previous qml file onto your PC.
      15. Rename the qml file suitably, e.g. de.qml into dex.qml (x = extended)

      2.3 Editing the template

      1. Open the renamed qml file in the text editor of your choice.
      2. Make sure, the character coding is set to UTF-8 (in SciTE: |- File | Encoding | UTF-8 -|.

      Study the file contents. You have

      • 3 entries "KeyboardLayout" corresponding to the 3 rows of keys (except the lowest one with the space bar).
      • 7 or 11 "CharacterKeys" in each row corresponding to the actual keys.
      • For each CharacterKey a
        • "caption": lower case letter
        • "captionShifted": upper case letter
        • "symView": 1st level figure/symbol character
        • "symView2": 2nd level figure/symbol character
        • "accents": The list of characters appearing when you tap-and-hold a key in the lower case letter level
        • "accentsShifted": The list of characters appearing when you tap-and-hold a key in the upper case letter level
      • 1 entry "SpacebarRow": A reference for the space bar row definitions. (You may change even this row, check file http://bundyo.org/jolla/layouts/bg.qml.)

      Most interesting probably are changes to the "accents" and "accentsShifted" entries, you may add such entries for any key not yet having such entry. For example, I created a keyboard layout where each key of the upper row includes a number from 1 to 9 and 0 in the accents and accentsShifted and the most right key holding some special characters such as @.

      You may even add or remove keys (add/remove a "CharacterKey" statement). However, 11 keys in the upper rows seems to be a natural maximum, thereafter the key space gets too small to be usable (at least for me).

      When finished with editing, save the file.

      2.4 Creating a config file

      In order that Sailfish recognizes your newly created layout, you need a config file. This should have the same name as the layout file, except for the extension being "conf", i.e. dex.conf. The contents should be:

      [dex.qml]

      name=DeutschX

      languageCode=DE

      With:

      • 1st line: file name of layout file
      • 2nd line: indicating the language as shown when tap-and-holding the space bar of the vkb
      • 3rd line: international language code as shown on the space bar

      Create such file on your computer, e.g. using SciTE.

      2.5 Copying the layout and config file back onto the Jolla handset

      Because the Sailfish FileBrowser cannot copy files into the system directories, you need command line access to the handset.

      1. Using the file browser of your computer copy the 2 files back to the Download directory of the Jolla device.
      2. If you want to use an ssh client (instead of typing on the command prompt of the Sailfish Terminal):
        • On the PC start the ssh client (e.g. Cygwin Terminal).
        • Connect to the Jolla device: On the command line enter: xxx.xxx.xxx.xxx -l nemo and [Enter]. (xxx.xxx.xxx.xxx being the WiFi IP address you noted earlier; "-l" = hyphen + lower case L).
          (The ssh client connects to the handset and asks for the password. If it should not connect, somehow the PC does not find the way to the Jolla. Check your firewall. On my system for example, I can only connect when the PC is connected to the router via cable. If it still does not work: Use the Sailfish Terminal.)
        • When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
          (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)
      3. If you want to use the Sailfish Terminal app (as installed when activating the developer mode):
        • Start Terminal.
          (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)

        From now on be careful, what you are doing. As administrator you may break your handset!

        Continue with either, ssh client or Terminal as follows:
      4. On the command line enter devel-su and [Enter]. (You are asked for a password.)
      5. When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
        (The command line prompt changes to "#". You are logged in as administrator.)
      6. Copy the files created to the layout directory: Enter cd /home/nemo/Downloads and [Enter]
        (Observe the upper case "D" in Downloads -- you are talking Linux where file/directory names are case sensitive).
      7. Check that you are in the right directory and your files are there: Enter dir and [Enter].
        (In the list shown, your files should be included.)
      8. Copy the layout file: Enter cp dex.qml /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
        (Instead of dex.qml note your own file).
      9. Copy the layout file: Enter cp dex.conf /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
        (Instead of dex.conf note your own file).
      10. Reset the keyboard service: Enter killall maliit-server and [Enter].

      NOTE: Disable "Remote access" again before connecting to networks you cannot trust (e.g. public WiFi networks, mobile providers that do not allocate private IP 4 addresses and block inter-user IP communication – assume, they do not, as long as you do not know they do). Otherwise, strangers could try to enter your phone via ssh and try passwords using an automated procedure until they have been successfully entering your phone.

      2.6 Selecting the new keyboard layout

      1. Open any application that shows the keyboard.
      2. Tap-and-hold the space bar. (The languages available are displayed.)
      3. From the languages list select your language (as stated in the your conf file).

      Enjoy.

      PS: Helpful was http://talk.maemo.org/showthread.php?t=91917 found by @ssahla, see https://together.jolla.com/question/19999/cant-type-en-dash-on-virtual-keyboard/.

      Initially created by: @jgr

    HowTo: Adapt Sailfish virtual keyboard (vkb) layout

    It is quite easy to adapt the virtual keyboard of Sailfish OS in such a way, that you do not spoil any of the original layouts and that it also should survive a system update. While you can do it all on the Jolla handset itself, I personally prefer using a PC for it.

    See also answers

    If you want to get capital letters in the lower case keyboard level by long-tapping, you might be interested in the post https://together.jolla.com/question/28819/howto-long-press-character-keyboard-for-capitalization/.
     

    Newer Sailfish versions

    • With Sailfish OS 1.0.4.2 the keyboard code in directory /usr/share/maliit/plugins/com/jolla/ has been changed, including Popper.qml and InputHandler.qml. Check Wiki: Changes from Sailfish OS 1.0.3.8 to 1.0.4.20 to see what this means for your particular code amendments.
      The procedure below works also for Sailfish OS 1.0.4.2.

    1 What you need

    • Developer mode activated (including ssh access when using the PC; see below).
    • An Unicode capable editor (UTF-8), I prefer SciTE (http://www.scintilla.org). (Alternatively you may use vi directly on the Jolla handset -- but if you can use this, you do not need the following instructions ;-)
    • USB access from your PC to your Jolla handset
    • FileBrowser app on your Jolla handset (get it from the Jolla Store)
    • Optional: An ssh client, I prefer Cygwin Terminal. (Alternatively you may use Terminal on the Jolla handset.)
    • Optional, only when using an ssh client: WiFi access from your PC to your Jolla handset

    2 Procedure

    See answer vkb layout file available from internet if you have found a layout file on the internet that suits you.

    2.1 Developer mode

    1. Go to |- Settings | System Settings | Developer Mode -|. ( Because your Jolla device can access the Jolla apps shop, a Terminal app is installed now.)
    2. Activate „Developer mode“.
    3. Activate „Remote connection” (either enter and [Save] a password or [Generate] it; if you generate it, you have to edit it slightly before the [Save] button becomes available).
    4. Note the WiFi IP address shown under ""Networking".

    2.2 Getting the layout template

    1. Open FileBrowser.
    2. From the pulley menu select "Go to home".
    3. Using the 3 dots in the top left, go to the root of the file system (no dot being shown any longer).
    4. Go down in the file system to (tapping each of the directory icons): /usr/share/maliit/plugins/com/jolla/layouts/
    5. Look for the qml file of the language you want to use as a template, e.g. de.qml for German.
    6. Tap-and-hold that file.
    7. From the context menu opening select "Copy".
    8. From the pulley menu select "Home".
    9. Go down to directory "Downloads".
    10. From the pulley menu select "Paste".
    11. Connect Jolla handset and PC via USB.
    12. When requested, select "PC connection".
    13. Using your PC file browser (e.g. Windows Explorer) go to the "Sailfish" device, directory "Downloads" (in Windows, the address line should show: "Computer\Sailfish\Phone Memory\Downloads").
    14. Copy the previous qml file onto your PC.
    15. Rename the qml file suitably, e.g. de.qml into dex.qml (x = extended)

    2.3 Editing the template

    1. Open the renamed qml file in the text editor of your choice.
    2. Make sure, the character coding is set to UTF-8 (in SciTE: |- File | Encoding | UTF-8 -|.

    Study the file contents. You have

    • 3 entries "KeyboardLayout" corresponding to the 3 rows of keys (except the lowest one with the space bar).
    • 7 or 11 "CharacterKeys" in each row corresponding to the actual keys.
    • For each CharacterKey a
      • "caption": lower case letter
      • "captionShifted": upper case letter
      • "symView": 1st level figure/symbol character
      • "symView2": 2nd level figure/symbol character
      • "accents": The list of characters appearing when you tap-and-hold a key in the lower case letter level
      • "accentsShifted": The list of characters appearing when you tap-and-hold a key in the upper case letter level
    • 1 entry "SpacebarRow": A reference for the space bar row definitions. (You may change even this row, check file http://bundyo.org/jolla/layouts/bg.qml.)

    Most interesting probably are changes to the "accents" and "accentsShifted" entries, you may add such entries for any key not yet having such entry. For example, I created a keyboard layout where each key of the upper row includes a number from 1 to 9 and 0 in the accents and accentsShifted and the most right key holding some special characters such as @.

    You may even add or remove keys (add/remove a "CharacterKey" statement). However, 11 keys in the upper rows seems to be a natural maximum, thereafter the key space gets too small to be usable (at least for me).

    When finished with editing, save the file.

    2.4 Creating a config file

    In order that Sailfish recognizes your newly created layout, you need a config file. This should have the same name as the layout file, except for the extension being "conf", i.e. dex.conf. The contents should be:

    [dex.qml]

    name=DeutschX

    languageCode=DE

    With:

    • 1st line: file name of layout file
    • 2nd line: indicating the language as shown when tap-and-holding the space bar of the vkb
    • 3rd line: international language code as shown on the space bar

    Create such file on your computer, e.g. using SciTE.

    2.5 Copying the layout and config file back onto the Jolla handset

    Because the Sailfish FileBrowser cannot copy files into the system directories, you need command line access to the handset.

    1. Using the file browser of your computer copy the 2 files back to the Download directory of the Jolla device.
    2. If you want to use an ssh client (instead of typing on the command prompt of the Sailfish Terminal):
      • On the PC start the ssh client (e.g. Cygwin Terminal).
      • Connect to the Jolla device: On the command line enter: xxx.xxx.xxx.xxx -l nemo and [Enter]. (xxx.xxx.xxx.xxx being the WiFi IP address you noted earlier; "-l" = hyphen + lower case L).
        (The ssh client connects to the handset and asks for the password. If it should not connect, somehow the PC does not find the way to the Jolla. Check your firewall. On my system for example, I can only connect when the PC is connected to the router via cable. If it still does not work: Use the Sailfish Terminal.)
      • When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)
    3. If you want to use the Sailfish Terminal app (as installed when activating the developer mode):
      • Start Terminal.
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)

      From now on be careful, what you are doing. As administrator you may break your handset!

      Continue with either, ssh client or Terminal as follows:
    4. On the command line enter devel-su and [Enter]. (You are asked for a password.)
    5. When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
      (The command line prompt changes to "#". You are logged in as administrator.)
    6. Copy the files created to the layout directory: Enter cd /home/nemo/Downloads and [Enter]
      (Observe the upper case "D" in Downloads -- you are talking Linux where file/directory names are case sensitive).
    7. Check that you are in the right directory and your files are there: Enter dir and [Enter].
      (In the list shown, your files should be included.)
    8. Copy the layout file: Enter cp dex.qml /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
      (Instead of dex.qml note your own file).
    9. Copy the layout file: Enter cp dex.conf /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
      (Instead of dex.conf note your own file).
    10. Reset the keyboard service: Enter killall maliit-server and [Enter].

    NOTE: Disable "Remote access" again before connecting to networks you cannot trust (e.g. public WiFi networks, mobile providers that do not allocate private IP 4 addresses and block inter-user IP communication – assume, they do not, as long as you do not know they do). Otherwise, strangers could try to enter your phone via ssh and try passwords using an automated procedure until they have been successfully entering your phone.

    2.6 Selecting the new keyboard layout

    1. Open any application that shows the keyboard.
    2. Tap-and-hold the space bar. (The languages available are displayed.)
    3. From the languages list select your language (as stated in the your conf file).

    Enjoy.

    PS: Helpful was http://talk.maemo.org/showthread.php?t=91917 found by @ssahla, see https://together.jolla.com/question/19999/cant-type-en-dash-on-virtual-keyboard/.

    Initially created by: @jgr

    HowTo: Adapt Sailfish virtual keyboard (vkb) layout

    It is quite easy to adapt the virtual keyboard of Sailfish OS in such a way, that you do not spoil any of the original layouts and that it also should survive a system update. While you can do it all on the Jolla handset itself, I personally prefer using a PC for it.

    See also answers

    If you want to get capital letters in the lower case keyboard level by long-tapping, you might be interested in the post https://together.jolla.com/question/28819/howto-long-press-character-keyboard-for-capitalization/.
     

    Newer Sailfish versions

    • With Sailfish OS 1.0.4.2 1.0.4.20 the keyboard code in directory /usr/share/maliit/plugins/com/jolla/ has been changed, including Popper.qml and InputHandler.qml. Check Wiki: Changes from Sailfish OS 1.0.3.8 to 1.0.4.20 to see what this means for your particular code amendments.
      The procedure below works also for Sailfish OS 1.0.4.2.1.0.4.20.

    1 What you need

    • Developer mode activated (including ssh access when using the PC; see below).
    • An Unicode capable editor (UTF-8), I prefer SciTE (http://www.scintilla.org). (Alternatively you may use vi directly on the Jolla handset -- but if you can use this, you do not need the following instructions ;-)
    • USB access from your PC to your Jolla handset
    • FileBrowser app on your Jolla handset (get it from the Jolla Store)
    • Optional: An ssh client, I prefer Cygwin Terminal. (Alternatively you may use Terminal on the Jolla handset.)
    • Optional, only when using an ssh client: WiFi access from your PC to your Jolla handset

    2 Procedure

    See answer vkb layout file available from internet if you have found a layout file on the internet that suits you.

    2.1 Developer mode

    1. Go to |- Settings | System Settings | Developer Mode -|. ( Because your Jolla device can access the Jolla apps shop, a Terminal app is installed now.)
    2. Activate „Developer mode“.
    3. Activate „Remote connection” (either enter and [Save] a password or [Generate] it; if you generate it, you have to edit it slightly before the [Save] button becomes available).
    4. Note the WiFi IP address shown under ""Networking".

    2.2 Getting the layout template

    1. Open FileBrowser.
    2. From the pulley menu select "Go to home".
    3. Using the 3 dots in the top left, go to the root of the file system (no dot being shown any longer).
    4. Go down in the file system to (tapping each of the directory icons): /usr/share/maliit/plugins/com/jolla/layouts/
    5. Look for the qml file of the language you want to use as a template, e.g. de.qml for German.
    6. Tap-and-hold that file.
    7. From the context menu opening select "Copy".
    8. From the pulley menu select "Home".
    9. Go down to directory "Downloads".
    10. From the pulley menu select "Paste".
    11. Connect Jolla handset and PC via USB.
    12. When requested, select "PC connection".
    13. Using your PC file browser (e.g. Windows Explorer) go to the "Sailfish" device, directory "Downloads" (in Windows, the address line should show: "Computer\Sailfish\Phone Memory\Downloads").
    14. Copy the previous qml file onto your PC.
    15. Rename the qml file suitably, e.g. de.qml into dex.qml (x = extended)

    2.3 Editing the template

    1. Open the renamed qml file in the text editor of your choice.
    2. Make sure, the character coding is set to UTF-8 (in SciTE: |- File | Encoding | UTF-8 -|.

    Study the file contents. You have

    • 3 entries "KeyboardLayout" corresponding to the 3 rows of keys (except the lowest one with the space bar).
    • 7 or 11 "CharacterKeys" in each row corresponding to the actual keys.
    • For each CharacterKey a
      • "caption": lower case letter
      • "captionShifted": upper case letter
      • "symView": 1st level figure/symbol character
      • "symView2": 2nd level figure/symbol character
      • "accents": The list of characters appearing when you tap-and-hold a key in the lower case letter level
      • "accentsShifted": The list of characters appearing when you tap-and-hold a key in the upper case letter level
    • 1 entry "SpacebarRow": A reference for the space bar row definitions. (You may change even this row, check file http://bundyo.org/jolla/layouts/bg.qml.)

    Most interesting probably are changes to the "accents" and "accentsShifted" entries, you may add such entries for any key not yet having such entry. For example, I created a keyboard layout where each key of the upper row includes a number from 1 to 9 and 0 in the accents and accentsShifted and the most right key holding some special characters such as @.

    You may even add or remove keys (add/remove a "CharacterKey" statement). However, 11 keys in the upper rows seems to be a natural maximum, thereafter the key space gets too small to be usable (at least for me).

    When finished with editing, save the file.

    2.4 Creating a config file

    In order that Sailfish recognizes your newly created layout, you need a config file. This should have the same name as the layout file, except for the extension being "conf", i.e. dex.conf. The contents should be:

    [dex.qml]

    name=DeutschX

    languageCode=DE

    With:

    • 1st line: file name of layout file
    • 2nd line: indicating the language as shown when tap-and-holding the space bar of the vkb
    • 3rd line: international language code as shown on the space bar

    Create such file on your computer, e.g. using SciTE.

    2.5 Copying the layout and config file back onto the Jolla handset

    Because the Sailfish FileBrowser cannot copy files into the system directories, you need command line access to the handset.

    1. Using the file browser of your computer copy the 2 files back to the Download directory of the Jolla device.
    2. If you want to use an ssh client (instead of typing on the command prompt of the Sailfish Terminal):
      • On the PC start the ssh client (e.g. Cygwin Terminal).
      • Connect to the Jolla device: On the command line enter: xxx.xxx.xxx.xxx -l nemo and [Enter]. (xxx.xxx.xxx.xxx being the WiFi IP address you noted earlier; "-l" = hyphen + lower case L).
        (The ssh client connects to the handset and asks for the password. If it should not connect, somehow the PC does not find the way to the Jolla. Check your firewall. On my system for example, I can only connect when the PC is connected to the router via cable. If it still does not work: Use the Sailfish Terminal.)
      • When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)
    3. If you want to use the Sailfish Terminal app (as installed when activating the developer mode):
      • Start Terminal.
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)

      From now on be careful, what you are doing. As administrator you may break your handset!

      Continue with either, ssh client or Terminal as follows:
    4. On the command line enter devel-su and [Enter]. (You are asked for a password.)
    5. When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
      (The command line prompt changes to "#". You are logged in as administrator.)
    6. Copy the files created to the layout directory: Enter cd /home/nemo/Downloads and [Enter]
      (Observe the upper case "D" in Downloads -- you are talking Linux where file/directory names are case sensitive).
    7. Check that you are in the right directory and your files are there: Enter dir and [Enter].
      (In the list shown, your files should be included.)
    8. Copy the layout file: Enter cp dex.qml /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
      (Instead of dex.qml note your own file).
    9. Copy the layout file: Enter cp dex.conf /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
      (Instead of dex.conf note your own file).
    10. Reset the keyboard service: Enter killall maliit-server and [Enter].

    NOTE: Disable "Remote access" again before connecting to networks you cannot trust (e.g. public WiFi networks, mobile providers that do not allocate private IP 4 addresses and block inter-user IP communication – assume, they do not, as long as you do not know they do). Otherwise, strangers could try to enter your phone via ssh and try passwords using an automated procedure until they have been successfully entering your phone.

    2.6 Selecting the new keyboard layout

    1. Open any application that shows the keyboard.
    2. Tap-and-hold the space bar. (The languages available are displayed.)
    3. From the languages list select your language (as stated in the your conf file).

    Enjoy.

    PS: Helpful was http://talk.maemo.org/showthread.php?t=91917 found by @ssahla, see https://together.jolla.com/question/19999/cant-type-en-dash-on-virtual-keyboard/.

    Initially created by: @jgr

    HowTo: Adapt Sailfish virtual keyboard (vkb) layout

    It is quite easy to adapt the virtual keyboard of Sailfish OS in such a way, that you do not spoil any of the original layouts and that it also should survive a system update. While you can do it all on the Jolla handset itself, I personally prefer using a PC for it.

    See also answers

    If you want to get capital letters in the lower case keyboard level by long-tapping, you might be interested in the post https://together.jolla.com/question/28819/howto-long-press-character-keyboard-for-capitalization/.
     

    Newer Sailfish versions

    • With Sailfish OS 1.0.4.20 the keyboard code in directory /usr/share/maliit/plugins/com/jolla/ has been changed, including Popper.qml and InputHandler.qml. Check Wiki: Changes from Sailfish OS 1.0.3.8 to 1.0.4.20 to see what this means for your particular code amendments.
      The procedure below works also for Sailfish OS 1.0.4.20.

    1 What you need

    • Developer mode activated (including ssh access when using the PC; see below).
    • An Unicode capable editor (UTF-8), I prefer SciTE (http://www.scintilla.org). (Alternatively you may use vi directly on the Jolla handset -- but if you can use this, you do not need the following instructions ;-)
    • USB access from your PC to your Jolla handset
    • FileBrowser app on your Jolla handset (get it from the Jolla Store)
    • Optional: An ssh client, I prefer Cygwin Terminal. (Alternatively you may use Terminal on the Jolla handset.)
    • Optional, only when using an ssh client: WiFi access from your PC to your Jolla handset

    2 Procedure

    See answer vkb layout file available from internet if you have found a layout file on the internet that suits you.

    2.1 Developer mode

    1. Go to |- Settings | System Settings | Developer Mode -|. ( Because your Jolla device can access the Jolla apps shop, a Terminal app is installed now.)
    2. Activate „Developer mode“.
    3. Activate „Remote connection” (either enter and [Save] a password or [Generate] it; if you generate it, you have to edit it slightly before the [Save] button becomes available).
    4. Note the WiFi IP address shown under ""Networking".

    2.2 Getting the layout template

    1. Open FileBrowser.
    2. From the pulley menu select "Go to home".
    3. Using the 3 dots in the top left, go to the root of the file system (no dot being shown any longer).
    4. Go down in the file system to (tapping each of the directory icons): /usr/share/maliit/plugins/com/jolla/layouts/
    5. Look for the qml file of the language you want to use as a template, e.g. de.qml for German.
    6. Tap-and-hold that file.
    7. From the context menu opening select "Copy".
    8. From the pulley menu select "Home".
    9. Go down to directory "Downloads".
    10. From the pulley menu select "Paste".
    11. Connect Jolla handset and PC via USB.
    12. When requested, select "PC connection".
    13. Using your PC file browser (e.g. Windows Explorer) go to the "Sailfish" device, directory "Downloads" (in Windows, the address line should show: "Computer\Sailfish\Phone Memory\Downloads").
    14. Copy the previous qml file onto your PC.
    15. Rename the qml file suitably, e.g. de.qml into dex.qml (x = extended)

    2.3 Editing the template

    1. Open the renamed qml file in the text editor of your choice.
    2. Make sure, the character coding is set to UTF-8 (in SciTE: |- File | Encoding | UTF-8 -|.

    Study the file contents. You have

    • 3 entries "KeyboardLayout" corresponding to the 3 rows of keys (except the lowest one with the space bar).
    • 7 or 11 "CharacterKeys" in each row corresponding to the actual keys.
    • For each CharacterKey a
      • "caption": lower case letter
      • "captionShifted": upper case letter
      • "symView": 1st level figure/symbol character
      • "symView2": 2nd level figure/symbol character
      • "accents": The list of characters appearing when you tap-and-hold a key in the lower case letter level
      • "accentsShifted": The list of characters appearing when you tap-and-hold a key in the upper case letter level
    • 1 entry "SpacebarRow": A reference for the space bar row definitions. (You may change even this row, check file http://bundyo.org/jolla/layouts/bg.qml.)

    Most interesting probably are changes to the "accents" and "accentsShifted" entries, you may add such entries for any key not yet having such entry. For example, I created a keyboard layout where each key of the upper row includes a number from 1 to 9 and 0 in the accents and accentsShifted and the most right key holding some special characters such as @.

    You may even add or remove keys (add/remove a "CharacterKey" statement). However, 11 keys in the upper rows seems to be a natural maximum, thereafter the key space gets too small to be usable (at least for me).

    When finished with editing, save the file.

    2.4 Creating a config file

    In order that Sailfish recognizes your newly created layout, you need a config file. This should have the same name as the layout file, except for the extension being "conf", i.e. dex.conf. The contents should be:

    [dex.qml]

    name=DeutschX

    languageCode=DE

    With:

    • 1st line: file name of layout file
    • 2nd line: indicating the language as shown when tap-and-holding the space bar of the vkb
    • 3rd line: international language code as shown on the space bar

    Create such file on your computer, e.g. using SciTE.

    2.5 Copying the layout and config file back onto the Jolla handset

    Because the Sailfish FileBrowser cannot copy files into the system directories, you need command line access to the handset.

    1. Using the file browser of your computer copy the 2 files back to the Download directory of the Jolla device.
    2. If you want to use an ssh client (instead of typing on the command prompt of the Sailfish Terminal):
      • On the PC start the ssh client (e.g. Cygwin Terminal).
      • Connect to the Jolla device: On the command line enter: xxx.xxx.xxx.xxx -l nemo and [Enter]. (xxx.xxx.xxx.xxx being the WiFi IP address you noted earlier; "-l" = hyphen + lower case L).
        (The ssh client connects to the handset and asks for the password. If it should not connect, somehow the PC does not find the way to the Jolla. Check your firewall. On my system for example, I can only connect when the PC is connected to the router via cable. If it still does not work: Use the Sailfish Terminal.)
      • When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)
    3. If you want to use the Sailfish Terminal app (as installed when activating the developer mode):
      • Start Terminal.
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)

      From now on be careful, what you are doing. As administrator you may break your handset!

      Continue with either, ssh client or Terminal as follows:
    4. On the command line enter devel-su and [Enter]. (You are asked for a password.)
    5. When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
      (The command line prompt changes to "#". You are logged in as administrator.)
    6. Copy the files created to the layout directory: Enter cd /home/nemo/Downloads and [Enter]
      (Observe the upper case "D" in Downloads -- you are talking Linux where file/directory names are case sensitive).
    7. Check that you are in the right directory and your files are there: Enter dir and [Enter].
      (In the list shown, your files should be included.)
    8. Copy the layout file: Enter cp dex.qml /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
      (Instead of dex.qml note your own file).
    9. Copy the layout file: Enter cp dex.conf /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
      (Instead of dex.conf note your own file).
    10. Reset the keyboard service: Enter killall maliit-server and [Enter].

    NOTE: Disable "Remote access" again before connecting to networks you cannot trust (e.g. public WiFi networks, mobile providers that do not allocate private IP 4 addresses and block inter-user IP communication – assume, they do not, as long as you do not know they do). Otherwise, strangers could try to enter your phone via ssh and try passwords using an automated procedure until they have been successfully entering your phone.

    2.6 Selecting the new keyboard layout

    1. Open any application that shows the keyboard.
    2. Tap-and-hold the space bar. (The languages available are displayed.)
    3. From the languages list select your language (as stated in the your conf file).

    Enjoy.

    PS: Helpful was http://talk.maemo.org/showthread.php?t=91917 found by @ssahla, see https://together.jolla.com/question/19999/cant-type-en-dash-on-virtual-keyboard/.

    Initially created by: @jgr

    HowTo: Adapt Sailfish virtual keyboard (vkb) layout

    It is quite easy to adapt the virtual keyboard of Sailfish OS in such a way, that you do not spoil any of the original layouts and that it also should survive a system update. While you can do it all on the Jolla handset itself, I personally prefer using a PC for it.

    See also answers

    If you want to get capital letters in the lower case keyboard level by long-tapping, you might be interested in the post https://together.jolla.com/question/28819/howto-long-press-character-keyboard-for-capitalization/.
     

    Newer Sailfish versions

    • With Sailfish OS 1.0.4.20 the keyboard code in directory /usr/share/maliit/plugins/com/jolla/ has been changed, including Popper.qml and InputHandler.qml. Check Wiki: Changes from Sailfish OS 1.0.3.8 to 1.0.4.20 to see what this means for your particular code amendments.
      The procedure below works also for Sailfish OS 1.0.4.20.

    1 What you need

    • Developer mode activated (including ssh access when using the PC; see below).
    • An Unicode capable editor (UTF-8), I prefer SciTE (http://www.scintilla.org). (Alternatively you may use vi directly on the Jolla handset -- but if you can use this, you do not need the following instructions ;-)
    • USB access from your PC to your Jolla handset
    • FileBrowser app on your Jolla handset (get it from the Jolla Store)
    • Optional: An ssh client, I prefer Cygwin Terminal. (Alternatively you may use Terminal on the Jolla handset.)
    • Optional, only when using an ssh client: WiFi access from your PC to your Jolla handset

    2 Procedure

    See answer vkb layout file available from internet if you have found a layout file on the internet that suits you.

    2.1 Developer mode

    1. Go to |- Settings | System Settings | Developer Mode -|. ( Because your Jolla device can access the Jolla apps shop, a Terminal app is installed now.)
    2. Activate „Developer mode“.
    3. Activate „Remote connection” (either enter and [Save] a password or [Generate] it; if you generate it, you have to edit it slightly before the [Save] button becomes available).
    4. Note the WiFi IP address shown under ""Networking".

    2.2 Getting the layout template

    1. Open FileBrowser.
    2. From the pulley menu select "Go to home".
    3. Using the 3 dots in the top left, go to the root of the file system (no dot being shown any longer).
    4. Go down in the file system to (tapping each of the directory icons): /usr/share/maliit/plugins/com/jolla/layouts/
    5. Look for the qml file of the language you want to use as a template, e.g. de.qml for German.
    6. Tap-and-hold that file.
    7. From the context menu opening select "Copy".
    8. From the pulley menu select "Home".
    9. Go down to directory "Downloads".
    10. From the pulley menu select "Paste".
    11. Connect Jolla handset and PC via USB.
    12. When requested, select "PC connection".
    13. Using your PC file browser (e.g. Windows Explorer) go to the "Sailfish" device, directory "Downloads" (in Windows, the address line should show: "Computer\Sailfish\Phone Memory\Downloads").
    14. Copy the previous qml file onto your PC.
    15. Rename the qml file suitably, e.g. de.qml into dex.qml (x = extended)

    2.3 Editing the template

    1. Open the renamed qml file in the text editor of your choice.
    2. Make sure, the character coding is set to UTF-8 (in SciTE: |- File | Encoding | UTF-8 -|.

    Study the file contents. You have

    • 3 entries "KeyboardLayout" corresponding to the 3 rows of keys (except the lowest one with the space bar).
    • 7 or 11 "CharacterKeys" in each row corresponding to the actual keys.
    • For each CharacterKey a
      • "caption": lower case letter
      • "captionShifted": upper case letter
      • "symView": 1st level figure/symbol character
      • "symView2": 2nd level figure/symbol character
      • "accents": The list of characters appearing when you tap-and-hold a key in the lower case letter level
      • "accentsShifted": The list of characters appearing when you tap-and-hold a key in the upper case letter level
    • 1 entry "SpacebarRow": A reference for the space bar row definitions. (You may change even this row, check file http://bundyo.org/jolla/layouts/bg.qml.)

    Most interesting probably are changes to the "accents" and "accentsShifted" entries, you may add such entries for any key not yet having such entry. For example, I created a keyboard layout where each key of the upper row includes a number from 1 to 9 and 0 in the accents and accentsShifted and the most right key holding some special characters such as @.

    You may even add or remove keys (add/remove a "CharacterKey" statement). However, 11 keys in the upper rows seems to be a natural maximum, thereafter the key space gets too small to be usable (at least for me).

    When finished with editing, save the file.

    2.4 Creating a config file

    In order that Sailfish recognizes your newly created layout, you need a config file. This should have the same name as the layout file, except for the extension being "conf", i.e. dex.conf. The contents should be:

    [dex.qml]

    name=DeutschX

    languageCode=DE

    With:

    • 1st line: file name of layout file
    • 2nd line: indicating the language as shown when tap-and-holding the space bar of the vkb
    • 3rd line: international language code as shown on the space bar

    Create such file on your computer, e.g. using SciTE.

    2.5 Copying the layout and config file back onto the Jolla handset

    Because the Sailfish FileBrowser cannot copy files into the system directories, you need command line access to the handset.

    1. Using the file browser of your computer copy the 2 files back to the Download directory of the Jolla device.
    2. If you want to use an ssh client (instead of typing on the command prompt of the Sailfish Terminal):
      • On the PC start the ssh client (e.g. Cygwin Terminal).
      • Connect to the Jolla device: On the command line enter: xxx.xxx.xxx.xxx -l nemo and [Enter]. (xxx.xxx.xxx.xxx being the WiFi IP address you noted earlier; "-l" = hyphen + lower case L).
        (The ssh client connects to the handset and asks for the password. If it should not connect, somehow the PC does not find the way to the Jolla. Check your firewall. On my system for example, I can only connect when the PC is connected to the router via cable. If it still does not work: Use the Sailfish Terminal.)
      • When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)
    3. If you want to use the Sailfish Terminal app (as installed when activating the developer mode):
      • Start Terminal.
        (The command line prompt of Sailfish appears, the prompt will be "$". You are logged in as user.)

      From now on be careful, what you are doing. As administrator you may break your handset!

      Continue with either, ssh client or Terminal as follows:
    4. On the command line enter devel-su and [Enter]. (You are asked for a password.)
    5. When prompted for the password, enter the "Remote connection" password you created earlier and [Enter].
      (The command line prompt changes to "#". You are logged in as administrator.)
    6. Copy the files created to the layout directory: Enter cd /home/nemo/Downloads and [Enter]
      (Observe the upper case "D" in Downloads -- you are talking Linux where file/directory names are case sensitive).
    7. Check that you are in the right directory and your files are there: Enter dir and [Enter].
      (In the list shown, your files should be included.)
    8. Copy the layout file: Enter cp dex.qml /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
      (Instead of dex.qml note your own file).
    9. Copy the layout file: Enter cp dex.conf /usr/share/maliit/plugins/com/jolla/layouts/ and [Enter]
      (Instead of dex.conf note your own file).
    10. Reset the keyboard service: Enter killall maliit-server and [Enter].

    NOTE: Disable "Remote access" again before connecting to networks you cannot trust (e.g. public WiFi networks, mobile providers that do not allocate private IP 4 addresses and block inter-user IP communication – assume, they do not, as long as you do not know they do). Otherwise, strangers could try to enter your phone via ssh and try passwords using an automated procedure until they have been successfully entering your phone.

    2.6 Selecting the new keyboard layout

    1. Open any application that shows the keyboard.
    2. Tap-and-hold the space bar. (The languages available are displayed.)
    3. From the languages list select your language (as stated in the your conf file).

    Enjoy.

    PS: Helpful was http://talk.maemo.org/showthread.php?t=91917 found by @ssahla, see https://together.jolla.com/question/19999/cant-type-en-dash-on-virtual-keyboard/.

    Initially created by: @jgr