[yocto] [matchbox-keyboard][PATCH 1/1] Addition of french keyboard
Herve Jourdain
herve.jourdain at neuf.fr
Tue May 17 02:43:29 PDT 2016
Signed-off-by: Herve Jourdain <herve.jourdain at neuf.fr>
---
.../files/0002-add-french-keyboard.patch | 477 +++++++++++++++++++++
.../matchbox-keyboard/matchbox-keyboard_git.bb | 1 +
2 files changed, 478 insertions(+)
create mode 100644 meta/recipes-sato/matchbox-keyboard/files/0002-add-french-keyboard.patch
diff --git a/meta/recipes-sato/matchbox-keyboard/files/0002-add-french-keyboard.patch b/meta/recipes-sato/matchbox-keyboard/files/0002-add-french-keyboard.patch
new file mode 100644
index 0000000..c6dc5f7
--- /dev/null
+++ b/meta/recipes-sato/matchbox-keyboard/files/0002-add-french-keyboard.patch
@@ -0,0 +1,477 @@
+diff --git a/layouts/Makefile.am b/layouts/Makefile.am
+index b439041..ed40256 100644
+--- a/layouts/Makefile.am
++++ b/layouts/Makefile.am
+@@ -1,4 +1,4 @@
+ keyboardsdir = $(datadir)/matchbox-keyboard
+ dist_keyboards_DATA = keyboard.xml keyboard-extended.xml keyboard-dvorak.xml \
+ keyboard-us.xml keyboard-ru.xml keyboard-fi.xml \
+- keyboard-numpad.xml
++ keyboard-fr.xml keyboard-numpad.xml
+diff --git a/layouts/keyboard-fr.xml b/layouts/keyboard-fr.xml
+--- a/layouts/keyboard-fr.xml
++++ b/layouts/keyboard-fr.xml
+@@ -0,0 +1,343 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<keyboard>
++
++<!--
++
++ FR keyboard layout by Herve Jourdain <herve.jourdain at neuf.fr>
++
++-->
++
++<options>
++<!-- not yet implemented -->
++</options>
++
++<layout id="default keyboard">
++
++ <row>
++ <space width="500" extended="true"/>
++
++ <key fill="true">
++ <default display="Esc" action="escape" />
++ </key>
++ <key>
++ <default display="²" />
++ <shifted display="³" />
++ </key>
++ <key>
++ <default display="&" />
++ <shifted display="1" />
++ </key>
++ <key>
++ <default display="é" />
++ <shifted display='2' />
++ <mod1 display='~' />
++ <caps display="É" />
++ </key>
++ <key>
++ <default display=""" />
++ <shifted display="3" />
++ <mod1 display="#" />
++ </key>
++ <key>
++ <default display="'" />
++ <shifted display="4" />
++ <mod1 display="{" />
++ </key>
++ <key>
++ <default display="(" />
++ <shifted display="5" />
++ <mod1 display="[" />
++ </key>
++ <key>
++ <default display="-" />
++ <shifted display="6" />
++ <mod1 display="|" />
++ </key>
++ <key>
++ <default display="è" />
++ <shifted display="7" />
++ <mod1 display='`' />
++ <caps display="È" />
++ </key>
++ <key>
++ <default display="_" />
++ <shifted display="8" />
++ <mod1 display='\' />
++ </key>
++ <key>
++ <default display="ç" />
++ <shifted display="9" />
++ <mod1 display='^' />
++ <caps display="Ç" />
++ </key>
++ <key>
++ <default display="à" />
++ <shifted display="0" />
++ <mod1 display='@' />
++ <caps display="À" />
++ </key>
++ <key>
++ <default display=")" />
++ <shifted display="°" />
++ <mod1 display="]" />
++ </key>
++ <key>
++ <default display="=" />
++ <shifted display="+" />
++ <mod1 display="}" />
++ </key>
++ <key>
++ <default display="*" />
++ <shifted display="µ" />
++ </key>
++
++ <key fill="true">
++ <default display="Suppr" action="backspace"/>
++ </key>
++
++ <space width="500" extended="true"/>
++
++ <key width="4000" extended="true">
++ <default display="Début" action="home"/>
++ </key>
++ <key width="4000" extended="true">
++ <default display="Préc" action="pageup"/>
++ </key>
++
++ <space width="500" extended="true"/>
++ </row>
++
++ <row>
++ <space width="500" extended="true"/>
++
++ <key fill="true">
++ <default display="Tab" action="tab"/>
++ </key>
++ <key obey-caps='true'>
++ <default display="a" />
++ <shifted display="A" />
++ </key>
++ <key obey-caps='true'>
++ <default display="z" />
++ <shifted display="Z" />
++ </key>
++ <key obey-caps='true'>
++ <default display="e" />
++ <shifted display="E" />
++ <mod1 display="€" />
++ </key>
++ <key obey-caps='true'>
++ <default display="r" />
++ <shifted display="R" />
++ </key>
++ <key obey-caps='true'>
++ <default display="t" />
++ <shifted display="T" />
++ </key>
++ <key obey-caps='true'>
++ <default display="y" />
++ <shifted display="Y" />
++ </key>
++ <key obey-caps='true'>
++ <default display="u" />
++ <shifted display="U" />
++ </key>
++ <key obey-caps='true'>
++ <default display="i" />
++ <shifted display="I" />
++ </key>
++ <key obey-caps='true'>
++ <default display="o" />
++ <shifted display="O" />
++ </key>
++ <key obey-caps='true'>
++ <default display="p" />
++ <shifted display="P" />
++ </key>
++ <key>
++ <default display="^" action="xkeysym:dead_circumflex"/>
++ <shifted display="¨" action="xkeysym:dead_diaeresis"/>
++ </key>
++ <key>
++ <default display="$" />
++ <shifted display="£" />
++ <mod1 display="ø" />
++ </key>
++ <key>
++ <default display="Préc" action="pageup"/>
++ </key>
++ <key>
++ <default display="Suiv" action="pagedown"/>
++ </key>
++
++ <space width="500" extended="true"/>
++
++ <key width="4000" extended="true">
++ <default display="Fin" action="end"/>
++ </key>
++ <key width="4000" extended="true">
++ <default display="Suiv" action="pagedown"/>
++ </key>
++
++ <space width="500" extended="true"/>
++ </row>
++
++ <row>
++ <space width="500" extended="true"/>
++
++ <key fill="true">
++ <default display="Caps" action="modifier:caps"/>
++ </key>
++ <key obey-caps='true'>
++ <default display="q" />
++ <shifted display="Q" />
++ </key>
++ <key obey-caps='true'>
++ <default display="s" />
++ <shifted display="S" />
++ </key>
++ <key obey-caps='true'>
++ <default display="d" />
++ <shifted display="D" />
++ </key>
++ <key obey-caps='true'>
++ <default display="f" />
++ <shifted display="F" />
++ </key>
++ <key obey-caps='true'>
++ <default display="g" />
++ <shifted display="G" />
++ </key>
++ <key obey-caps='true'>
++ <default display="h" />
++ <shifted display="H" />
++ </key>
++ <key obey-caps='true'>
++ <default display="j" />
++ <shifted display="J" />
++ </key>
++ <key obey-caps='true'>
++ <default display="k" />
++ <shifted display="K" />
++ </key>
++ <key obey-caps='true'>
++ <default display="l" />
++ <shifted display="L" />
++ </key>
++ <key obey-caps='true'>
++ <default display="m" />
++ <shifted display="M" />
++ </key>
++ <key>
++ <default display="ù" />
++ <shifted display="%" />
++ <caps display="Ù" />
++ </key>
++ <key fill="true">
++ <default display="Entrée" action="return"/>
++ </key>
++
++ <space width="500" extended="true"/>
++ <space width="4000" extended="true" />
++ <space width="4000" extended="true" />
++ <space width="500" extended="true"/>
++ </row>
++
++ <row>
++ <space width="500" extended="true"/>
++
++ <key fill="true">
++ <default display="Maj" action="modifier:shift"/>
++ </key>
++ <key>
++ <default display="<" />
++ <shifted display=">" />
++ </key>
++ <key obey-caps='true'>
++ <default display="w" />
++ <shifted display="W" />
++ </key>
++ <key obey-caps='true'>
++ <default display="x" />
++ <shifted display="X" />
++ </key>
++ <key obey-caps='true'>
++ <default display="c" />
++ <shifted display="C" />
++ </key>
++ <key obey-caps='true'>
++ <default display="v" />
++ <shifted display="V" />
++ </key>
++ <key obey-caps='true'>
++ <default display="b" />
++ <shifted display="B" />
++ </key>
++ <key obey-caps='true'>
++ <default display="n" />
++ <shifted display="N" />
++ </key>
++ <key>
++ <default display="," />
++ <shifted display="?" />
++ </key>
++ <key>
++ <default display=";" />
++ <shifted display="." />
++ </key>
++ <key>
++ <default display=":" />
++ <shifted display="/" />
++ </key>
++ <key>
++ <default display="!" />
++ <shifted display="§" />
++ </key>
++ <key fill="true">
++ <default display="Maj" action="modifier:shift"/>
++ </key>
++
++ <space width="500" extended="true"/>
++ <space width="4000" extended="true" />
++ <space width="4000" extended="true" />
++ <space width="500" extended="true"/>
++ </row>
++
++ <row>
++ <space width="500" extended="true"/>
++
++ <key fill="true">
++ <default display="Ctrl" action="modifier:ctrl"/>
++ </key>
++ <key>
++ <default display="Alt" action="modifier:alt"/>
++ </key>
++ <key width="12000">
++ <default display=" " action="space" />
++ </key>
++ <key>
++ <default display="AGR" action="modifier:mod1"/>
++ </key>
++
++ <key>
++ <default display="↑" action="up" />
++ </key>
++ <key>
++ <default display="↓" action="down" />
++ </key>
++ <key>
++ <default display="←" action="left" />
++ </key>
++ <key>
++ <default display="→" action="right" />
++ </key>
++
++ <space width="500" extended="true"/>
++ <space width="4000" extended="true" />
++ <space width="4000" extended="true" />
++ <space width="500" extended="true"/>
++ </row>
++
++</layout>
++
++</keyboard>
+diff --git a/src/matchbox-keyboard.h b/src/matchbox-keyboard.h
+index 4dd258f..430b08b 100644
+--- a/src/matchbox-keyboard.h
++++ b/src/matchbox-keyboard.h
+@@ -116,6 +116,7 @@ typedef enum
+ {
+ MBKeyboardKeyStateNormal = 0,
+ MBKeyboardKeyStateShifted,
++ MBKeyboardKeyStateCaps,
+ MBKeyboardKeyStateMod1,
+ MBKeyboardKeyStateMod2,
+ MBKeyboardKeyStateMod3,
+diff --git a/src/matchbox-keyboard.c b/src/matchbox-keyboard.c
+index 9f9bb7d..3ed98c0 100644
+--- a/src/matchbox-keyboard.c
++++ b/src/matchbox-keyboard.c
+@@ -200,6 +200,9 @@ mb_kbd_keys_current_state(MBKeyboard *kbd)
+ if (mb_kbd_has_state(kbd, MBKeyboardStateShifted))
+ return MBKeyboardKeyStateShifted;
+
++ if (mb_kbd_has_state(kbd, MBKeyboardStateCaps))
++ return MBKeyboardKeyStateCaps;
++
+ if (mb_kbd_has_state(kbd, MBKeyboardStateMod1))
+ return MBKeyboardKeyStateMod1;
+
+diff --git a/src/matchbox-keyboard-key.c b/src/matchbox-keyboard-key.c
+index 0555c9c..c086fbe 100644
+--- a/src/matchbox-keyboard-key.c
++++ b/src/matchbox-keyboard-key.c
+@@ -413,9 +413,13 @@ mb_kbd_key_press(MBKeyboardKey *key)
+
+ state = mb_kbd_keys_current_state(key->kbd);
+
+- if (mb_kbd_has_state(key->kbd, MBKeyboardStateCaps)
+- && mb_kbd_key_get_obey_caps(key))
+- state = MBKeyboardKeyStateShifted;
++ if (mb_kbd_has_state(key->kbd, MBKeyboardStateCaps))
++ {
++ if (mb_kdb_key_has_state (key, MBKeyboardKeyStateCaps))
++ state = MBKeyboardKeyStateCaps;
++ else if (mb_kbd_key_get_obey_caps(key))
++ state = MBKeyboardKeyStateShifted;
++ }
+
+ /* XXX below fakekey mods probably better in ui */
+
+@@ -616,6 +620,7 @@ mb_kbd_key_dump_key(MBKeyboardKey *key)
+ {
+ /* MBKeyboardKeyStateNormal */ "Normal",
+ /* MBKeyboardKeyStateShifted */ "Shifted" ,
++ /* MBKeyboardKeyStateCaps */ "Caps" ,
+ /* MBKeyboardKeyStateMod1, */ "Mod1" ,
+ /* MBKeyboardKeyStateMod2, */ "Mod2" ,
+ /* MBKeyboardKeyStateMod3, */ "Mod3"
+diff --git a/src/config-parser.c b/src/config-parser.c
+index 15a973e..13ee6d6 100644
+--- a/src/config-parser.c
++++ b/src/config-parser.c
+@@ -326,6 +326,10 @@ config_handle_key_subtag(MBKeyboardConfigState *state,
+ {
+ keystate = MBKeyboardKeyStateShifted;
+ }
++ else if (streq(tag, "caps"))
++ {
++ keystate = MBKeyboardKeyStateCaps;
++ }
+ else if (streq(tag, "mod1"))
+ {
+ keystate = MBKeyboardKeyStateMod1;
+@@ -548,6 +552,7 @@ config_xml_start_cb(void *data, const char *tag, const char **attr)
+ else if (streq(tag, "normal")
+ || streq(tag, "default")
+ || streq(tag, "shifted")
++ || streq(tag, "caps")
+ || streq(tag, "mod1")
+ || streq(tag, "mod2")
+ || streq(tag, "mod3"))
+diff --git a/src/matchbox-keyboard-ui-cairo-backend.c b/src/matchbox-keyboard-ui-cairo-backend.c
+index 3b7a401..3f15ac8 100644
+--- a/src/matchbox-keyboard-ui-cairo-backend.c
++++ b/src/matchbox-keyboard-ui-cairo-backend.c
+@@ -174,9 +174,13 @@ mb_kbd_ui_cairo_redraw_key(MBKeyboardUI *ui, MBKeyboardKey *key)
+
+ state = mb_kbd_keys_current_state(kbd);
+
+- if (mb_kbd_has_state(kbd, MBKeyboardStateCaps)
+- && mb_kbd_key_get_obey_caps(key))
+- state = MBKeyboardKeyStateShifted;
++ if (mb_kbd_has_state(kbd, MBKeyboardStateCaps))
++ {
++ if (mb_kdb_key_has_state (key, MBKeyboardKeyStateCaps))
++ state = MBKeyboardKeyStateCaps;
++ else if (mb_kbd_key_get_obey_caps(key))
++ state = MBKeyboardKeyStateShifted;
++ }
+
+ if (!mb_kdb_key_has_state(key, state))
+ {
+diff --git a/src/matchbox-keyboard-ui-xft-backend.c b/src/matchbox-keyboard-ui-xft-backend.c
+index 9a3c6d2..2790591 100644
+--- a/src/matchbox-keyboard-ui-xft-backend.c
++++ b/src/matchbox-keyboard-ui-xft-backend.c
+@@ -212,9 +212,13 @@ mb_kbd_ui_xft_redraw_key(MBKeyboardUI *ui, MBKeyboardKey *key)
+
+ state = mb_kbd_keys_current_state(kbd);
+
+- if (mb_kbd_has_state(kbd, MBKeyboardStateCaps)
+- && mb_kbd_key_get_obey_caps(key))
+- state = MBKeyboardKeyStateShifted;
++ if (mb_kbd_has_state(kbd, MBKeyboardStateCaps))
++ {
++ if (mb_kdb_key_has_state (key, MBKeyboardKeyStateCaps))
++ state = MBKeyboardKeyStateCaps;
++ else if (mb_kbd_key_get_obey_caps(key))
++ state = MBKeyboardKeyStateShifted;
++ }
+
+ if (!mb_kdb_key_has_state(key, state))
+ {
diff --git a/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_git.bb b/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_git.bb
index eba1970..6d9d943 100644
--- a/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_git.bb
+++ b/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_git.bb
@@ -16,6 +16,7 @@ PR = "r4"
SRC_URI = "git://git.yoctoproject.org/${BPN};branch=matchbox-keyboard-0-1 \
file://0001-desktop-file-Hide-the-keyboard-from-app-list.patch \
+ file://0002-add-french-keyboard.patch \
file://80matchboxkeyboard.sh"
S = "${WORKDIR}/git"
--
2.7.4
More information about the yocto
mailing list