mirror of https://github.com/koreader/koreader
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
2.1 KiB
Lua
66 lines
2.1 KiB
Lua
-- Start with the english keyboard layout (deep copy, to not alter it)
|
|
local fr_keyboard = require("util").tableDeepCopy(require("ui/data/keyboardlayouts/en_keyboard"))
|
|
|
|
-- Swap the four AZWQ keys (only in the lowercase and
|
|
-- uppercase letters layouts) to change it from QWERTY to AZERTY
|
|
local keys = fr_keyboard.keys
|
|
keys[1][1][1], keys[2][1][1] = keys[2][1][1], keys[1][1][1] -- Q <> A
|
|
keys[1][1][2], keys[2][1][2] = keys[2][1][2], keys[1][1][2] -- q <> a
|
|
keys[1][2][1], keys[3][2][1] = keys[3][2][1], keys[1][2][1] -- W <> Z
|
|
keys[1][2][2], keys[3][2][2] = keys[3][2][2], keys[1][2][2] -- w <> z
|
|
|
|
-- Insert an additional key at the end of 2nd row for M
|
|
table.insert(keys[2],
|
|
-- 1 2 3 4 5 6 7 8
|
|
{ "M", "m", "§", "+", "Œ", "œ", "Ő", "ő", }
|
|
)
|
|
-- But replace the alpha "M" and "m" with the original key+popup from english M/m
|
|
keys[2][10][1] = keys[3][8][1]
|
|
keys[2][10][2] = keys[3][8][2]
|
|
|
|
-- We have one more key than en_keyboard: replace that original M key
|
|
-- to show another char on alpha layouts: let's use ";", and a popup
|
|
-- helpful for CSS style tweaks editing.
|
|
local _semicolon = {
|
|
";",
|
|
-- north = "!",
|
|
north = { label = "!…", key = "!important;" },
|
|
northeast = "}",
|
|
northwest = "{",
|
|
west = "-",
|
|
east = ":",
|
|
south = "*",
|
|
southwest = "0",
|
|
southeast = ">",
|
|
"[",
|
|
'+',
|
|
"]",
|
|
}
|
|
keys[3][8][1] = _semicolon
|
|
keys[3][8][2] = _semicolon
|
|
|
|
-- Swap ê and ë (and the like) in the keyboard popups, so the
|
|
-- common french accentuated chars are all on the upper row.
|
|
local popups = {
|
|
keys[1][1][1], -- A
|
|
keys[1][1][2], -- a
|
|
keys[1][3][1], -- E
|
|
keys[1][3][2], -- e
|
|
keys[1][7][1], -- U
|
|
keys[1][7][2], -- u
|
|
keys[1][8][1], -- I
|
|
keys[1][8][2], -- i
|
|
keys[1][9][1], -- O
|
|
keys[1][9][2], -- o
|
|
}
|
|
for _, popup in ipairs(popups) do
|
|
popup.north, popup.east = popup.east, popup.north
|
|
end
|
|
|
|
-- Remove the "space" string
|
|
keys[4][4].label = ""
|
|
-- Or, if we'd rather have it in french:
|
|
-- keys[4][4].label = "espace"
|
|
|
|
return fr_keyboard
|