Browse Source

Use ADNW/KOY icons in Gnome 3.x indicator

master
Olaf Schulz 10 months ago
parent
commit
88f719dc91
32 changed files with 54579 additions and 40 deletions
  1. +9
    -0
      Keyboard_Layout_Viewer.desktop
  2. +1
    -2
      Makefile
  3. +33
    -14
      README.md
  4. BIN
      assets/adnw/tastatur_adnw_Ebene1.png
  5. BIN
      assets/adnw/tastatur_adnw_Ebene2.png
  6. BIN
      assets/adnw/tastatur_adnw_Ebene3.png
  7. BIN
      assets/adnw/tastatur_adnw_Ebene4.png
  8. BIN
      assets/adnw/tastatur_adnw_Ebene5.png
  9. BIN
      assets/adnw/tastatur_adnw_Ebene6.png
  10. BIN
      assets/adnw/tastatur_alt_left_2.png
  11. BIN
      assets/adnw/tastatur_ctrl_left_2.png
  12. BIN
      assets/adnw/tastatur_ctrl_right_2.png
  13. BIN
      assets/icons/ADNW-Icon.png
  14. BIN
      assets/icons/KOY-Icon.png
  15. BIN
      assets/koy/tastatur_alt_left_2.png
  16. BIN
      assets/koy/tastatur_ctrl_left_2.png
  17. BIN
      assets/koy/tastatur_ctrl_right_2.png
  18. BIN
      assets/koy/tastatur_koy_Ebene1.png
  19. BIN
      assets/koy/tastatur_koy_Ebene2.png
  20. BIN
      assets/koy/tastatur_koy_Ebene3.png
  21. BIN
      assets/koy/tastatur_koy_Ebene4.png
  22. BIN
      assets/koy/tastatur_koy_Ebene5.png
  23. BIN
      assets/koy/tastatur_koy_Ebene6.png
  24. +8
    -0
      graphics/README.txt
  25. +18019
    -0
      graphics/Tastatur_ADNW_alle_Ebenen.svg
  26. +18036
    -0
      graphics/Tastatur_KOY_alle_Ebenen.svg
  27. +17870
    -0
      graphics/Tastatur_NEO_2_alle_Ebenen.svg
  28. +4
    -2
      src/config-manager.vala
  29. +4
    -1
      src/indicator.vala
  30. +541
    -5
      src/key-overlay.vala
  31. +1
    -1
      src/main.vala
  32. +53
    -15
      src/neo-window.vala

+ 9
- 0
Keyboard_Layout_Viewer.desktop View File

@ -0,0 +1,9 @@
[Desktop Entry]
Type=Application
Name=Neo Layout Viewer
GenericName=Keyboard Layout Viewer
Comment=version neo2
Categories=Education;
Exec=neo_layout_viewer
Icon=/usr/local/share/NeoLayoutViewer/assets/icons/Neo-Icon.png
Name[de_DE]=Neo_Layout_Viewer

+ 1
- 2
Makefile View File

@ -35,8 +35,7 @@ UBUNTU ?= 0
DISTDIR = dist
TMPDIR = tmp
# ARCHS = amd64 # i386 # armhf arm64
ARCHS = amd64 i386 # armhf arm64
ARCHS = amd64 # i386 armhf arm64
BASETGZ_DIR = /var/cache/pbuilder
ifeq ($(UBUNTU),1)


+ 33
- 14
README.md View File

@ -9,7 +9,14 @@ Wird eine der Mod-Tasten (Shift,…) gedrückt oder losgelassen, wechselt die An
Ebene. Außerdem kann das Fenster per Tastenkombination bewegt oder ausgeblendet werden.
Alle Einstellungen können über eine Konfigurationsdatei angepasst werden.
Autoren: Olaf Schulz 2011-2019, rixx 2013, Marco Herrn 2018-2019
Andere Layouts können ebenfalls angezeigt werden. Für ADNW (Aus der Neo Welt) und KOY wurden die zugehörigen Grafiken bereits erzeugt (Jonathan Vetter, 2020).
Autoren:
Olaf Schulz 2011-2020
rixx 2013
Marco Herrn 2018-2019
Jonathan Vetter 2020
Lizenz: GNU Lesser General Public License version 3 (LGPLv3)
@ -30,8 +37,8 @@ Mittels
make; sudo make install
kann das Programm kompiliert und unter /usr/local installiert werden.
Unter Gnome 2.x wird eine andere Bibliothek für die Anzeige des Tray-Icons benötigt.
Geben Sie in diesem Falle „ICON=tray make“ ein.
Unter Gnome 2.x wird eine andere Bibliothek für die Anzeige des Tray-Icons benötigt. Dies betrifft unter anderem die Desktop-Umgebungen Cinnamon und Mate.
Geben Sie in diesem Falle „ICON=tray make“ ein.
Hinweise
@ -43,8 +50,10 @@ Hinweise
In der Konfigurationsdatei können unter anderem folgende Einstellungen vorgenommen
werden:
- Breite des Fensters. Mit „width“ können Sie die exakte Breite einstellen und mit
„max_width“ und „min_width“ die relative Breite in Bezug auf die derzeitige Auflösung.
- Tastaturbelegung (layout_type): NEO2, ADNW oder KOY
- Breite des Fensters: Mit „width“ können Sie die exakte Breite einstellen und
mit „max_width“ und „min_width“ die relative Breite in Bezug auf
die derzeitige Auflösung.
- Anzeige des Numblocks und der Funktionstasten.
- Tastenkürzel für Anzeige und Bewegung des Fensters. Möchten Sie die Tasten-
kombination nicht nutzen, löschen Sie den Text hinter dem Gleichheitszeichen.
@ -52,20 +61,30 @@ Hinweise
acht verschiedene Positionen verschoben werden. Soll nur eine Teilmenge dieser
Positionen genutzt werden, kann „position_cycle“ angepasst werden.
Der Wert X∈{1,…,9} ist entsprechend der Position auf dem Numblocks zu interpretieren.
Beim Druck der Tastenkombination springt das Fenster von Position X zu position_cycle[X].
Beim Druck der Tastenkombination springt das Fenster von Position X zu
position_cycle[X].
* Das Programm kann auch als virtuelle Tastatur genutzt werden. Damit die Eingabe das
richtige Fenster erreicht muss in der Konfigurationsdatei „window_selectable = 0“
eingetragen werden.
* Das Programm zeigt unter Gnome 3.x in der Indicator-Leiste ein Symbol an. Unter Gnome 2.x
war für diese Funktion noch eine andere Bibliothek verantwortlich. Sie können im
Makefile zwischen den beiden Varianten wechseln, indem Sie die Variable ICON anpassen.
* Das Programm kann auch als virtuelle Tastatur genutzt werden. Damit die Eingabe
das richtige Fenster erreicht, muss in der Konfigurationsdatei
„window_selectable = 0“ eingetragen werden.
* Das Programm zeigt unter Gnome 3.x in der Indicator-Leiste ein Symbol an.
Unter Gnome 2.x war für diese Funktion noch eine andere Bibliothek
verantwortlich. Sie können im Makefile zwischen beiden Varianten wechseln,
indem Sie die Variable ICON anpassen.
* Bei Verwendung eines Programmstarters muss dieser noch auf das gewünschte Layout
angepasst werden und dann unter '/usr/share/applications' bzw.
'/usr/local/share/applications' eingefügt werden.
Für automatisches Einblenden beim Anmelden kann der Programmstarter zusätzlich
nach /home/<user>/.config/autostart kopiert werden.
______________________________________________________________________
¹NEO ist eine Tastaturbelegung, welche für die deutsche Sprache optimiert ist.
Die offizielle Seite des Projektes: https://neo-layout.org/
Die offizielle Seiten der Projekte:
Neo-Layout: https://neo-layout.org/
ADNW-Layout: http://www.adnw.de/
KOY-Layout: http://www.adnw.de/index.php?n=Main.SeitlicheNachbaranschl%c3%a4ge

BIN
assets/adnw/tastatur_adnw_Ebene1.png View File

Before After
Width: 1000  |  Height: 250  |  Size: 147 KiB

BIN
assets/adnw/tastatur_adnw_Ebene2.png View File

Before After
Width: 1000  |  Height: 250  |  Size: 150 KiB

BIN
assets/adnw/tastatur_adnw_Ebene3.png View File

Before After
Width: 1000  |  Height: 250  |  Size: 143 KiB

BIN
assets/adnw/tastatur_adnw_Ebene4.png View File

Before After
Width: 1000  |  Height: 250  |  Size: 145 KiB

BIN
assets/adnw/tastatur_adnw_Ebene5.png View File

Before After
Width: 1000  |  Height: 250  |  Size: 148 KiB

BIN
assets/adnw/tastatur_adnw_Ebene6.png View File

Before After
Width: 1000  |  Height: 250  |  Size: 150 KiB

BIN
assets/adnw/tastatur_alt_left_2.png View File

Before After
Width: 62  |  Height: 44  |  Size: 1.8 KiB

BIN
assets/adnw/tastatur_ctrl_left_2.png View File

Before After
Width: 61  |  Height: 44  |  Size: 2.1 KiB

BIN
assets/adnw/tastatur_ctrl_right_2.png View File

Before After
Width: 61  |  Height: 44  |  Size: 2.1 KiB

BIN
assets/icons/ADNW-Icon.png View File

Before After
Width: 100  |  Height: 100  |  Size: 15 KiB

BIN
assets/icons/KOY-Icon.png View File

Before After
Width: 100  |  Height: 100  |  Size: 14 KiB

BIN
assets/koy/tastatur_alt_left_2.png View File

Before After
Width: 62  |  Height: 44  |  Size: 1.8 KiB

BIN
assets/koy/tastatur_ctrl_left_2.png View File

Before After
Width: 61  |  Height: 44  |  Size: 2.1 KiB

BIN
assets/koy/tastatur_ctrl_right_2.png View File

Before After
Width: 61  |  Height: 44  |  Size: 2.1 KiB

BIN
assets/koy/tastatur_koy_Ebene1.png View File

Before After
Width: 1000  |  Height: 250  |  Size: 147 KiB

BIN
assets/koy/tastatur_koy_Ebene2.png View File

Before After
Width: 1000  |  Height: 250  |  Size: 150 KiB

BIN
assets/koy/tastatur_koy_Ebene3.png View File

Before After
Width: 1000  |  Height: 250  |  Size: 143 KiB

BIN
assets/koy/tastatur_koy_Ebene4.png View File

Before After
Width: 1000  |  Height: 250  |  Size: 145 KiB

BIN
assets/koy/tastatur_koy_Ebene5.png View File

Before After
Width: 1000  |  Height: 250  |  Size: 148 KiB

BIN
assets/koy/tastatur_koy_Ebene6.png View File

Before After
Width: 1000  |  Height: 250  |  Size: 150 KiB

+ 8
- 0
graphics/README.txt View File

@ -0,0 +1,8 @@
Der Ordner "graphics" enthält die verwendeten Grafiken für das Tastaturlayout Neo_2 ADNW und KOY als svg (scalable vector graphics).
Diese können mit einem Vektorgrafikprogramm wie z.B. Inkscape editiert werden, um ein anderes Layout zu erzeugen.
Anschließend kann jede Ebene des SVGs als png (portable_network_graphics) im Format 1000 x 250 Pixel exportiert und unter /assets/<layoutname>/ abgespeichert werden.
Das für die Anordnung der Buchstaben auf der Bildschirmtastatur zuständige Key Array befindet sich am Ende der Datei "key-overlay.vala".

+ 18019
- 0
graphics/Tastatur_ADNW_alle_Ebenen.svg
File diff suppressed because it is too large
View File


+ 18036
- 0
graphics/Tastatur_KOY_alle_Ebenen.svg
File diff suppressed because it is too large
View File


+ 17870
- 0
graphics/Tastatur_NEO_2_alle_Ebenen.svg
File diff suppressed because it is too large
View File


+ 4
- 2
src/config-manager.vala View File

@ -81,6 +81,7 @@ namespace NeoLayoutViewer {
if it was not found.
*/
public void add_defaults() {
addSetting("layout_type", "NEO2", "Available keyboard layouts: NEO2, ADNW, KOY");
//config.set("show_shortcut", "<Mod4><Super_L>n", "Toggle the visibility of the window.");
addSetting("show_shortcut", "<Ctrl><Alt>q", "Toggle the visibility of the window.");
addSetting("on_top", "1", "Show window on top.");
@ -109,9 +110,10 @@ namespace NeoLayoutViewer {
# monitor 1 2
# position 1 2 3 4 5 6 7 8 9 | 11 12 13 14 15 18 17 18 19 |…
# position_cycle = 3 3 9 1 3 9 1 7 7 | 13 13 19 11 13 19 11 17 17 |… (corners only)
# position_cycle =3 3 11 1 3 9 1 7 7 | 13 13 19 11 13 19 9 17 17 |… (cycle over two monitors)""");
# position_cycle =3 3 11 1 3 9 1 7 7 | 13 13 19 11 13 19 9 17 17 |… (cycle over two monitors)"""
);
addSetting("display_numpad", "1", null);
addSetting("display_numpad", "1", null);
addSetting("display_function_keys", "0", null);
addSetting("window_selectable", "0", "Disable window selection to use the program as virtual keyboard.");
addSetting("window_decoration", "0", "Show window decoration/border (not recommended).");


+ 4
- 1
src/indicator.vala View File

@ -14,7 +14,9 @@ namespace NeoLayoutViewer {
public NeoIndicator(NeoWindow neo_win) {
this.neo_win = neo_win;
indicator = new AppIndicator.Indicator.with_path("Neo Layout Viewer", "Neo-Icon",
indicator = new AppIndicator.Indicator.with_path(
"Neo Layout Viewer",
neo_win.get_layout_icon_name(), // "Neo-Icon",
AppIndicator.IndicatorCategory.APPLICATION_STATUS,
configm.getConfig().get("asset_folder")+"/icons/");
//"./assets/icons/" );
@ -40,6 +42,7 @@ namespace NeoLayoutViewer {
#if _OLD_GTK_STOCK
var menuAnzeigen = new Gtk.MenuItem.with_label("Anzeigen");
menuAnzeigen.activate.connect(() => { this.neo_win.toggle(); });
menuMain.append(menuAnzeigen);
var menuAbout = new ImageMenuItem.from_stock(Stock.ABOUT, null);


+ 541
- 5
src/key-overlay.vala View File

@ -14,8 +14,7 @@ using Posix;//system-call
namespace NeoLayoutViewer {
/* Use Layout instead of Fixed because size of Layout content does not
/* Use Layout instead of Fixed because size of Layout content does not
influence the window size. (=> No feedback loop) */
public class KeyOverlay : Gtk.Layout {
@ -29,9 +28,26 @@ namespace NeoLayoutViewer {
private int _height;
public KeyOverlay(NeoWindow winMain) {
this.winMain = winMain;
this.keysyms = generateKeysyms();
switch (winMain.layoutType) {
case "ADNW":
{
this.keysyms = generateKeysymsAdnw(); // for ADNW-layout
break;
}
case "KOY":
{
this.keysyms = generateKeysymsKoy(); // for KOY-layout
break;
}
case "NEO2":
default:
{
this.keysyms = generateKeysymsNeo2(); // for NEO-layout
break;
}
}
this.eventCells = new Gee.HashMap<int, KeyEventCell>();
this._width = this.winMain.get_allocated_width();
@ -971,7 +987,8 @@ namespace NeoLayoutViewer {
}
}
public Gee.HashMap<int, KeycodeArray> generateKeysyms() {
// Define Keyboard layout NEO2
public Gee.HashMap<int, KeycodeArray> generateKeysymsNeo2() {
Gee.HashMap<int, KeycodeArray> keysyms = new Gee.HashMap<int, KeycodeArray>();
/* Define keyboard layout. this object maps the keycodes to the list of keycodes of each keyboard layer. */
@ -1229,5 +1246,524 @@ namespace NeoLayoutViewer {
return keysyms;
}
// Define Keyboard layout ADNW (Aus der Neo Welt)
public Gee.HashMap<int, KeycodeArray> generateKeysymsAdnw() {
Gee.HashMap<int, KeycodeArray> keysyms = new Gee.HashMap<int, KeycodeArray>();
/* Define keyboard layout. this object maps the keycodes to the list of keycodes of each keyboard layer. */
keysyms.set(8, new KeycodeArray({}));
keysyms.set( 9, new KeycodeArray({ XK_Escape, XK_Escape, XK_Escape, XK_Escape, XK_Escape }));
keysyms.set( 10, new KeycodeArray({ XK_1, XK_degree, XK_onesuperior, XK_onesubscript, XK_ordfeminine, XK_notsign, 0 /*NoSymbol*/ }));
keysyms.set( 11, new KeycodeArray({ XK_2, XK_section, XK_twosuperior, XK_twosubscript, XK_masculine, XK_logicalor, 0 /*NoSymbol*/ }));
keysyms.set( 12, new KeycodeArray({ XK_3, (uint)X.string_to_keysym("U2113"), XK_threesuperior, XK_threesubscript, XK_numerosign, XK_logicaland, 0 /*NoSymbol*/ }));
keysyms.set( 13, new KeycodeArray({ XK_4, XK_guillemotright, (uint)X.string_to_keysym("U203A"), XK_femalesymbol, 0 /*NoSymbol*/, (uint)X.string_to_keysym("U22A5"), 0 /*NoSymbol*/ }));
keysyms.set( 14, new KeycodeArray({ XK_5, XK_guillemotleft, (uint)X.string_to_keysym("U2039"), XK_malesymbol, XK_periodcentered, (uint)X.string_to_keysym("U2221"), 0 /*NoSymbol*/ }));
keysyms.set( 15, new KeycodeArray({ XK_6, XK_dollar, XK_cent, (uint)X.string_to_keysym("U26A5"), XK_sterling, (uint)X.string_to_keysym("U2225"), 0 /*NoSymbol*/ }));
keysyms.set( 16, new KeycodeArray({ XK_7, XK_EuroSign, XK_yen, (uint)X.string_to_keysym("U03F0"), XK_currency, XK_rightarrow, 0 /*NoSymbol*/ }));
keysyms.set( 17, new KeycodeArray({ XK_8, XK_doublelowquotemark, XK_singlelowquotemark, (uint)X.string_to_keysym("U27E8"), XK_Tab, (uint)X.string_to_keysym("U221E"), 0 /*NoSymbol*/ }));
keysyms.set( 18, new KeycodeArray({ XK_9, XK_leftdoublequotemark, XK_leftsinglequotemark, (uint)X.string_to_keysym("U27E9"), XK_KP_Divide, XK_variation, 0 /*NoSymbol*/ }));
keysyms.set( 19, new KeycodeArray({ XK_0, XK_rightdoublequotemark, XK_rightsinglequotemark, XK_zerosubscript, XK_KP_Multiply, XK_emptyset, 0 /*NoSymbol*/ }));
keysyms.set( 20, new KeycodeArray({ XK_minus, XK_emdash, 0 /*NoSymbol*/, (uint)X.string_to_keysym("U2011"), XK_KP_Subtract, XK_hyphen, 0 /*NoSymbol*/ }));
keysyms.set( 21, new KeycodeArray({ XK_dead_grave, XK_dead_cedilla, XK_dead_abovering, XK_dead_abovereversedcomma, XK_dead_diaeresis, XK_dead_macron, 0 /*NoSymbol*/ }));
keysyms.set( 22, new KeycodeArray({ XK_BackSpace, XK_BackSpace, XK_BackSpace, XK_BackSpace, XK_BackSpace }));
keysyms.set( 23, new KeycodeArray({ XK_Tab, XK_ISO_Left_Tab, XK_Multi_key, XK_ISO_Level5_Lock, 0 /*NoSymbol*/, 0 /*NoSymbol*/, XK_ISO_Level5_Lock }));
keysyms.set( 24, new KeycodeArray({ XK_k, XK_K, XK_ellipsis, XK_Greek_kappa, XK_Prior, XK_multiply, 0 /*NoSymbol*/ }));
keysyms.set( 25, new KeycodeArray({ XK_u, XK_U, XK_underscore, 0 /*NoSymbol*/, XK_BackSpace, XK_includedin, 0 /*NoSymbol*/ }));
keysyms.set( 26, new KeycodeArray({ XK_udiaeresis, XK_Udiaeresis, XK_bracketleft, 0 /*NoSymbol*/, XK_Up, XK_union, 0 /*NoSymbol*/ }));
keysyms.set( 27, new KeycodeArray({ XK_period, XK_enfilledcircbullet, XK_bracketright, (uint)X.string_to_keysym("U03D1"), XK_Delete, (uint)X.string_to_keysym("U21A6"), 0 /*NoSymbol*/ }));
keysyms.set( 28, new KeycodeArray({ XK_adiaeresis, XK_Adiaeresis, XK_asciicircum, XK_Greek_eta, XK_Next, (uint)X.string_to_keysym("U2135"), 0 /*NoSymbol*/ }));
keysyms.set( 29, new KeycodeArray({ XK_v, XK_V, XK_exclam, 0 /*NoSymbol*/, XK_exclamdown, XK_radical, 0 /*NoSymbol*/ }));
keysyms.set( 30, new KeycodeArray({ XK_g, XK_G, XK_less, XK_Greek_gamma, XK_KP_7, XK_Greek_GAMMA, 0 /*NoSymbol*/ }));
keysyms.set( 31, new KeycodeArray({ XK_c, XK_C, XK_greater, XK_Greek_chi, XK_KP_8, (uint)X.string_to_keysym("U2102"), 0 /*NoSymbol*/ }));
keysyms.set( 32, new KeycodeArray({ XK_l, XK_L, XK_equal, XK_Greek_lamda, XK_KP_9, XK_Greek_LAMDA, 0 /*NoSymbol*/ }));
keysyms.set( 33, new KeycodeArray({ XK_j, XK_J, XK_ampersand, XK_Greek_theta, XK_KP_Add, XK_Greek_THETA, 0 /*NoSymbol*/ }));
keysyms.set( 34, new KeycodeArray({ XK_f, XK_F, (uint)X.string_to_keysym("U017F"), XK_Greek_phi, (uint)X.string_to_keysym("U2212"), XK_Greek_PHI, 0 /*NoSymbol*/ }));
keysyms.set( 35, new KeycodeArray({ XK_dead_acute, XK_dead_tilde, XK_dead_stroke, XK_dead_abovecomma, XK_dead_doubleacute, XK_dead_breve, 0 /*NoSymbol*/ }));
keysyms.set( 36, new KeycodeArray({ XK_Return, XK_Return, XK_Return, XK_Return, XK_Return }));
keysyms.set( 37, new KeycodeArray({ XK_Control_L, XK_Control_L, XK_Control_L, XK_Control_L, XK_Control_L }));
keysyms.set( 38, new KeycodeArray({ XK_h, XK_H, XK_backslash, XK_Greek_psi, XK_Home, XK_Greek_PSI, 0 /*NoSymbol*/ }));
keysyms.set( 39, new KeycodeArray({ XK_i, XK_I, XK_slash, XK_Greek_iota, XK_Left, XK_integral, 0 /*NoSymbol*/ }));
keysyms.set( 40, new KeycodeArray({ XK_e, XK_E, XK_braceleft, XK_Greek_epsilon, XK_Down, (uint)X.string_to_keysym("U2203"), 0 /*NoSymbol*/ }));
keysyms.set( 41, new KeycodeArray({ XK_a, XK_A, XK_braceright, XK_Greek_alpha, XK_Right, (uint)X.string_to_keysym("U2200"), 0 /*NoSymbol*/ }));
keysyms.set( 42, new KeycodeArray({ XK_o, XK_O, XK_asterisk, XK_Greek_omicron, XK_End, XK_elementof, 0 /*NoSymbol*/ }));
keysyms.set( 43, new KeycodeArray({ XK_d, XK_D, XK_question, XK_Greek_delta, XK_questiondown, XK_Greek_DELTA, 0 /*NoSymbol*/ }));
keysyms.set( 44, new KeycodeArray({ XK_t, XK_T, XK_parenleft, XK_Greek_tau, XK_KP_4, XK_partialderivative, 0 /*NoSymbol*/ }));
keysyms.set( 45, new KeycodeArray({ XK_r, XK_R, XK_parenright, XK_Greek_rho, XK_KP_5, (uint)X.string_to_keysym("U211D"), 0 /*NoSymbol*/ }));
keysyms.set( 46, new KeycodeArray({ XK_n, XK_N, XK_minus, XK_Greek_nu, XK_KP_6, (uint)X.string_to_keysym("U2115"), 0 /*NoSymbol*/ }));
keysyms.set( 47, new KeycodeArray({ XK_s, XK_S, XK_colon, XK_Greek_sigma, XK_KP_Separator, XK_Greek_SIGMA, 0 /*NoSymbol*/ }));
keysyms.set( 48, new KeycodeArray({ XK_ssharp, (uint)X.string_to_keysym("U1E9E"), XK_at, XK_Greek_finalsmallsigma, XK_jot, 0 /*NoSymbol*/ }));
keysyms.set( 49, new KeycodeArray({ XK_dead_circumflex, XK_dead_caron, (uint)X.string_to_keysym("U21BB"), (uint)X.string_to_keysym("U02DE"), XK_dead_abovedot, XK_dead_belowdot, 0 /*NoSymbol*/ }));
keysyms.set( 50, new KeycodeArray({ XK_Shift_L, XK_Caps_Lock }));
keysyms.set( 51, new KeycodeArray({ XK_ISO_Level3_Shift }));
keysyms.set( 52, new KeycodeArray({ XK_x, XK_X, XK_numbersign, XK_Greek_xi, XK_Escape, XK_Greek_XI, 0 /*NoSymbol*/ }));
keysyms.set( 53, new KeycodeArray({ XK_y, XK_Y, XK_dollar, XK_Greek_upsilon, XK_Tab, XK_nabla, 0 /*NoSymbol*/ }));
keysyms.set( 54, new KeycodeArray({ XK_odiaeresis, XK_Odiaeresis, XK_bar, (uint)X.string_to_keysym("U03F5"), XK_Insert, XK_intersection, 0 /*NoSymbol*/ }));
keysyms.set( 55, new KeycodeArray({ XK_comma, XK_endash, XK_asciitilde, (uint)X.string_to_keysym("U03F1"), XK_Return, (uint)X.string_to_keysym("U21D2"), 0 /*NoSymbol*/ }));
keysyms.set( 56, new KeycodeArray({ XK_q, XK_Q, XK_grave, (uint)X.string_to_keysym("U03D5"), XK_Undo, (uint)X.string_to_keysym("U211A"), 0 /*NoSymbol*/ }));
keysyms.set( 57, new KeycodeArray({ XK_b, XK_B, XK_plus, XK_Greek_beta, XK_colon, (uint)X.string_to_keysym("U21D0"), 0 /*NoSymbol*/ }));
keysyms.set( 58, new KeycodeArray({ XK_p, XK_P, XK_percent, XK_Greek_pi, XK_KP_1, XK_Greek_PI, 0 /*NoSymbol*/ }));
keysyms.set( 59, new KeycodeArray({ XK_w, XK_W, XK_quotedbl, XK_Greek_omega, XK_KP_2, XK_Greek_OMEGA, 0 /*NoSymbol*/ }));
keysyms.set( 60, new KeycodeArray({ XK_m, XK_M, XK_apostrophe, XK_Greek_mu, XK_KP_3, XK_ifonlyif, 0 /*NoSymbol*/ }));
keysyms.set( 61, new KeycodeArray({ XK_z, XK_Z, XK_semicolon, XK_Greek_zeta, XK_semicolon, (uint)X.string_to_keysym("U2124"), 0 /*NoSymbol*/ }));
keysyms.set( 62, new KeycodeArray({ XK_Shift_R, XK_Caps_Lock }));
keysyms.set( 63, new KeycodeArray({ XK_KP_Multiply, XK_KP_Multiply, (uint)X.string_to_keysym("U2219"), (uint)X.string_to_keysym("U2299"), XK_multiply, (uint)X.string_to_keysym("U2297"), 0 /*NoSymbol*/ }));
keysyms.set( 64, new KeycodeArray({ XK_Alt_L, XK_Alt_L, XK_Alt_L, XK_Alt_L, XK_Alt_L, XK_Alt_L }));
keysyms.set( 65, new KeycodeArray({ XK_space, XK_space, XK_space, XK_nobreakspace, XK_KP_0, (uint)X.string_to_keysym("U202F"), 0 /*NoSymbol*/ }));
keysyms.set( 66, new KeycodeArray({ XK_ISO_Level3_Shift }));
keysyms.set( 67, new KeycodeArray({ XK_F1, 0 /*XK_XF86_Switch_VT_1*/ }));
keysyms.set( 68, new KeycodeArray({ XK_F2, 0 /*XK_XF86_Switch_VT_2*/ }));
keysyms.set( 69, new KeycodeArray({ XK_F3, 0 /*XK_XF86_Switch_VT_3*/ }));
keysyms.set( 70, new KeycodeArray({ XK_F4, 0 /*XK_XF86_Switch_VT_4*/ }));
keysyms.set( 71, new KeycodeArray({ XK_F5, 0 /*XK_XF86_Switch_VT_5*/ }));
keysyms.set( 72, new KeycodeArray({ XK_F6, 0 /*XK_XF86_Switch_VT_6*/ }));
keysyms.set( 73, new KeycodeArray({ XK_F7, 0 /*XK_XF86_Switch_VT_7*/ }));
keysyms.set( 74, new KeycodeArray({ XK_F8, 0 /*XK_XF86_Switch_VT_8*/ }));
keysyms.set( 75, new KeycodeArray({ XK_F9, 0 /*XK_XF86_Switch_VT_9*/ }));
keysyms.set( 76, new KeycodeArray({ XK_F10, 0 /*XK_XF86_Switch_VT_10*/ }));
keysyms.set( 77, new KeycodeArray({ XK_Tab, XK_ISO_Left_Tab, XK_equal, XK_approxeq, XK_notequal, XK_identical, 0 /*NoSymbol*/ }));
keysyms.set( 78, new KeycodeArray({ XK_Scroll_Lock, XK_Scroll_Lock, XK_Scroll_Lock, XK_Scroll_Lock, XK_Scroll_Lock }));
keysyms.set( 79, new KeycodeArray({ XK_KP_7, (uint)X.string_to_keysym("U2714"), (uint)X.string_to_keysym("U2195"), (uint)X.string_to_keysym("U226A"), XK_KP_Home, XK_upstile, 0 /*NoSymbol*/ }));
keysyms.set( 80, new KeycodeArray({ XK_KP_8, (uint)X.string_to_keysym("U2718"), XK_uparrow, XK_intersection, XK_KP_Up, (uint)X.string_to_keysym("U22C2"),
0 /*NoSymbol*/ }));
keysyms.set( 81, new KeycodeArray({ XK_KP_9, XK_dagger, (uint)X.string_to_keysym("U20D7"), (uint)X.string_to_keysym("U226B"), XK_KP_Prior, (uint)X.string_to_keysym("U2309"), 0 /*NoSymbol*/ }));
keysyms.set( 82, new KeycodeArray({ XK_KP_Subtract, XK_KP_Subtract, (uint)X.string_to_keysym("U2212"), (uint)X.string_to_keysym("U2296"), (uint)X.string_to_keysym("U2216"), (uint)X.string_to_keysym("U2238"), 0 /*NoSymbol*/ }));
keysyms.set( 83, new KeycodeArray({ XK_KP_4, XK_club, XK_leftarrow, XK_includedin, XK_KP_Left, (uint)X.string_to_keysym("U2286"), 0 /*NoSymbol*/ }));
keysyms.set( 84, new KeycodeArray({ XK_KP_5, XK_EuroSign, XK_colon, (uint)X.string_to_keysym("U22B6"), XK_KP_Begin, (uint)X.string_to_keysym("U22B7"), 0 /*NoSymbol*/ }));
keysyms.set( 85, new KeycodeArray({ XK_KP_6, (uint)X.string_to_keysym("U2023"), XK_rightarrow, XK_includes, XK_KP_Right, (uint)X.string_to_keysym("U2287"), 0 /*NoSymbol*/ }));
keysyms.set( 86, new KeycodeArray({ XK_KP_Add, XK_KP_Add, XK_plusminus, (uint)X.string_to_keysym("U2295"), (uint)X.string_to_keysym("U2213"), (uint)X.string_to_keysym("U2214"), 0 /*NoSymbol*/ }));
keysyms.set( 87, new KeycodeArray({ XK_KP_1, XK_diamond, (uint)X.string_to_keysym("U2194"), XK_lessthanequal, XK_KP_End, XK_downstile, 0 /*NoSymbol*/ }));
keysyms.set( 88, new KeycodeArray({ XK_KP_2, XK_heart, XK_downarrow, XK_union, XK_KP_Down, (uint)X.string_to_keysym("U22C3"), 0 /*NoSymbol*/ }));
keysyms.set( 89, new KeycodeArray({ XK_KP_3, (uint)X.string_to_keysym("U2660"), (uint)X.string_to_keysym("U21CC"), XK_greaterthanequal, XK_KP_Next, (uint)X.string_to_keysym("U230B"), 0 /*NoSymbol*/ }));
keysyms.set( 90, new KeycodeArray({ XK_KP_0, (uint)X.string_to_keysym("U2423"), XK_percent, (uint)X.string_to_keysym("U2030"), XK_KP_Insert, (uint)X.string_to_keysym("U25A1"), 0 /*NoSymbol*/ }));
keysyms.set( 91, new KeycodeArray({ XK_KP_Separator, XK_period, XK_comma, XK_minutes, XK_KP_Delete, XK_seconds, 0 /*NoSymbol*/ }));
keysyms.set( 92, new KeycodeArray({ XK_ISO_Level3_Shift }));
keysyms.set( 93, new KeycodeArray({ }));
keysyms.set( 94, new KeycodeArray({ XK_ISO_Level5_Shift, XK_ISO_Level5_Shift, XK_ISO_Level5_Shift, XK_ISO_Level5_Shift, XK_ISO_Level5_Lock, XK_ISO_Level5_Lock, XK_ISO_Level5_Lock }));
keysyms.set( 95, new KeycodeArray({ XK_F11, 0 /*XK_XF86_Switch_VT_11*/ }));
keysyms.set( 96, new KeycodeArray({ XK_F12, 0 /*XK_XF86_Switch_VT_12*/ }));
keysyms.set( 97, new KeycodeArray({ }));
keysyms.set( 98, new KeycodeArray({ XK_Katakana }));
keysyms.set( 99, new KeycodeArray({ XK_Hiragana }));
keysyms.set(100, new KeycodeArray({ XK_Henkan_Mode }));
keysyms.set(101, new KeycodeArray({ XK_Hiragana_Katakana }));
keysyms.set(102, new KeycodeArray({ XK_Muhenkan }));
keysyms.set(103, new KeycodeArray({ }));
keysyms.set(104, new KeycodeArray({ XK_KP_Enter, XK_KP_Enter, XK_KP_Enter, XK_KP_Enter, XK_KP_Enter, XK_KP_Enter, 0 /*NoSymbol*/ }));
keysyms.set(105, new KeycodeArray({ XK_Control_R, XK_Control_R, XK_Control_R, XK_Control_R, XK_Control_R }));
keysyms.set(106, new KeycodeArray({ XK_KP_Divide, XK_KP_Divide, XK_division, (uint)X.string_to_keysym("U2300"), (uint)X.string_to_keysym("U2215"), (uint)X.string_to_keysym("U2223"), 0 /*NoSymbol*/ }));
keysyms.set(107, new KeycodeArray({ XK_Print, XK_Sys_Req }));
keysyms.set(108, new KeycodeArray({ XK_ISO_Level5_Shift, XK_ISO_Level5_Shift, XK_ISO_Level5_Shift, XK_ISO_Level5_Shift, XK_ISO_Level5_Lock, XK_ISO_Level5_Lock, XK_ISO_Level5_Lock }));
keysyms.set(109, new KeycodeArray({ XK_Linefeed, XK_Linefeed, XK_Linefeed, XK_Linefeed, XK_Linefeed }));
keysyms.set(110, new KeycodeArray({ XK_Home, XK_Home, XK_Home, XK_Home, XK_Home }));
keysyms.set(111, new KeycodeArray({ XK_Up, XK_Up, XK_Up, XK_Up, XK_Up }));
keysyms.set(112, new KeycodeArray({ XK_Prior, XK_Prior, XK_Prior, XK_Prior, XK_Prior }));
keysyms.set(113, new KeycodeArray({ XK_Left, XK_Left, XK_Left, XK_Left, XK_Left }));
keysyms.set(114, new KeycodeArray({ XK_Right, XK_Right, XK_Right, XK_Right, XK_Right }));
keysyms.set(115, new KeycodeArray({ XK_End, XK_End, XK_End, XK_End, XK_End }));
keysyms.set(116, new KeycodeArray({ XK_Down, XK_Down, XK_Down, XK_Down, XK_Down }));
keysyms.set(117, new KeycodeArray({ XK_Next, XK_Next, XK_Next, XK_Next, XK_Next }));
keysyms.set(118, new KeycodeArray({ XK_Insert, XK_Insert, XK_Insert, XK_Insert, XK_Insert }));
keysyms.set(119, new KeycodeArray({ XK_Delete, XK_Delete, XK_Delete, XK_Delete, XK_Delete }));
keysyms.set(120, new KeycodeArray({ }));
keysyms.set(121, new KeycodeArray({ 0 /*XK_XF86AudioMute*/ }));
keysyms.set(122, new KeycodeArray({ 0 /*XK_XF86AudioLowerVolume*/ }));
keysyms.set(123, new KeycodeArray({ 0 /*XK_XF86AudioRaiseVolume*/ }));
keysyms.set(124, new KeycodeArray({ 0 /*XK_XF86PowerOff*/ }));
keysyms.set(125, new KeycodeArray({ XK_KP_Equal, 0 /*NoSymbol*/, 0 /*NoSymbol*/, 0 /*NoSymbol*/, 0 /*NoSymbol*/, 0 /*NoSymbol*/, 0 /*NoSymbol*/ }));
keysyms.set(126, new KeycodeArray({ XK_plusminus }));
keysyms.set(127, new KeycodeArray({ XK_Pause, XK_Break }));
keysyms.set(128, new KeycodeArray({ 0 /*XK_XF86LaunchA*/ }));
keysyms.set(129, new KeycodeArray({ XK_KP_Decimal }));
keysyms.set(130, new KeycodeArray({ XK_Hangul }));
keysyms.set(131, new KeycodeArray({ XK_Hangul_Hanja }));
keysyms.set(132, new KeycodeArray({ }));
keysyms.set(133, new KeycodeArray({ XK_Super_L }));
keysyms.set(134, new KeycodeArray({ XK_Super_R }));
keysyms.set(135, new KeycodeArray({ XK_Menu }));
keysyms.set(136, new KeycodeArray({ XK_Cancel }));
keysyms.set(137, new KeycodeArray({ XK_Redo }));
keysyms.set(138, new KeycodeArray({ 0 /*XK_SunProps*/ }));
keysyms.set(139, new KeycodeArray({ XK_Undo }));
keysyms.set(140, new KeycodeArray({ 0 /*XK_SunFront*/ }));
keysyms.set(141, new KeycodeArray({ 0 /*XK_XF86Copy*/ }));
keysyms.set(142, new KeycodeArray({ 0 /*XK_SunOpen*/ }));
keysyms.set(143, new KeycodeArray({ 0 /*XK_XF86Paste*/ }));
keysyms.set(144, new KeycodeArray({ XK_Find }));
keysyms.set(145, new KeycodeArray({ 0 /*XK_XF86Cut*/ }));
keysyms.set(146, new KeycodeArray({ XK_Help }));
keysyms.set(147, new KeycodeArray({ 0 /*XK_XF86MenuKB*/ }));
keysyms.set(148, new KeycodeArray({ 0 /*XK_XF86Calculator*/ }));
keysyms.set(149, new KeycodeArray({ }));
keysyms.set(150, new KeycodeArray({ 0 /*XK_XF86Sleep*/ }));
keysyms.set(151, new KeycodeArray({ 0 /*XK_XF86WakeUp*/ }));
keysyms.set(152, new KeycodeArray({ 0 /*XK_XF86Explorer*/ }));
keysyms.set(153, new KeycodeArray({ 0 /*XK_XF86Send*/ }));
keysyms.set(154, new KeycodeArray({ }));
keysyms.set(155, new KeycodeArray({ 0 /*XK_XF86Xfer*/ }));
keysyms.set(156, new KeycodeArray({ 0 /*XK_XF86Launch1*/ }));
keysyms.set(157, new KeycodeArray({ 0 /*XK_XF86Launch2*/ }));
keysyms.set(158, new KeycodeArray({ 0 /*XK_XF86WWW*/ }));
keysyms.set(159, new KeycodeArray({ 0 /*XK_XF86DOS*/ }));
keysyms.set(160, new KeycodeArray({ 0 /*XK_XF86ScreenSaver*/ }));
keysyms.set(161, new KeycodeArray({ }));
keysyms.set(162, new KeycodeArray({ 0 /*XK_XF86RotateWindows*/ }));
keysyms.set(163, new KeycodeArray({ 0 /*XK_XF86Mail*/ }));
keysyms.set(164, new KeycodeArray({ 0 /*XK_XF86Favorites*/ }));
keysyms.set(165, new KeycodeArray({ 0 /*XK_XF86MyComputer*/ }));
keysyms.set(166, new KeycodeArray({ 0 /*XK_XF86Back*/ }));
keysyms.set(167, new KeycodeArray({ 0 /*XK_XF86Forward*/ }));
keysyms.set(168, new KeycodeArray({ }));
keysyms.set(169, new KeycodeArray({ 0 /*XK_XF86Eject*/ }));
keysyms.set(170, new KeycodeArray({ 0 /*XK_XF86Eject*/, 0 /*XK_XF86Eject*/ }));
keysyms.set(171, new KeycodeArray({ 0 /*XK_XF86AudioNext*/ }));
keysyms.set(172, new KeycodeArray({ 0 /*XK_XF86AudioPlay*/, 0 /*XK_XF86AudioPause*/ }));
keysyms.set(173, new KeycodeArray({ 0 /*XK_XF86AudioPrev*/ }));
keysyms.set(174, new KeycodeArray({ 0 /*XK_XF86AudioStop*/, 0 /*XK_XF86Eject*/ }));
keysyms.set(175, new KeycodeArray({ 0 /*XK_XF86AudioRecord*/ }));
keysyms.set(176, new KeycodeArray({ 0 /*XK_XF86AudioRewind*/ }));
keysyms.set(177, new KeycodeArray({ 0 /*XK_XF86Phone*/ }));
keysyms.set(178, new KeycodeArray({ }));
keysyms.set(179, new KeycodeArray({ 0 /*XK_XF86Tools*/ }));
keysyms.set(180, new KeycodeArray({ 0 /*XK_XF86HomePage*/ }));
keysyms.set(181, new KeycodeArray({ 0 /*XK_XF86Reload*/ }));
keysyms.set(182, new KeycodeArray({ 0 /*XK_XF86Close*/ }));
keysyms.set(183, new KeycodeArray({ }));
keysyms.set(184, new KeycodeArray({ }));
keysyms.set(185, new KeycodeArray({ 0 /*XK_XF86ScrollUp*/ }));
keysyms.set(186, new KeycodeArray({ 0 /*XK_XF86ScrollDown*/ }));
keysyms.set(187, new KeycodeArray({ XK_parenleft }));
keysyms.set(188, new KeycodeArray({ XK_parenright }));
keysyms.set(189, new KeycodeArray({ 0 /*XK_XF86New*/ }));
keysyms.set(190, new KeycodeArray({ XK_Redo }));
keysyms.set(191, new KeycodeArray({ 0 /*XK_XF86Tools*/ }));
keysyms.set(192, new KeycodeArray({ 0 /*XK_XF86Launch5*/ }));
keysyms.set(193, new KeycodeArray({ 0 /*XK_XF86MenuKB*/ }));
keysyms.set(194, new KeycodeArray({ }));
keysyms.set(195, new KeycodeArray({ }));
keysyms.set(196, new KeycodeArray({ }));
keysyms.set(197, new KeycodeArray({ }));
keysyms.set(198, new KeycodeArray({ }));
keysyms.set(199, new KeycodeArray({ }));
keysyms.set(200, new KeycodeArray({ 0 /*XK_XF86TouchpadToggle*/ }));
keysyms.set(201, new KeycodeArray({ }));
keysyms.set(202, new KeycodeArray({ }));
keysyms.set(203, new KeycodeArray({ XK_ISO_Level5_Shift, XK_ISO_Level5_Shift, XK_ISO_Level5_Shift, XK_ISO_Level5_Shift, XK_ISO_Level5_Shift }));
keysyms.set(204, new KeycodeArray({ XK_Alt_L }));
keysyms.set(205, new KeycodeArray({ XK_Alt_L }));
keysyms.set(206, new KeycodeArray({ XK_Super_L }));
keysyms.set(207, new KeycodeArray({ }));
keysyms.set(208, new KeycodeArray({ 0 /*XK_XF86AudioPlay*/ }));
keysyms.set(209, new KeycodeArray({ 0 /*XK_XF86AudioPause*/ }));
keysyms.set(210, new KeycodeArray({ 0 /*XK_XF86Launch3*/ }));
keysyms.set(211, new KeycodeArray({ 0 /*XK_XF86Launch4*/ }));
keysyms.set(212, new KeycodeArray({ 0 /*XK_XF86LaunchB*/ }));
keysyms.set(213, new KeycodeArray({ 0 /*XK_XF86Suspend*/ }));
keysyms.set(214, new KeycodeArray({ 0 /*XK_XF86Close*/ }));
keysyms.set(215, new KeycodeArray({ 0 /*XK_XF86AudioPlay*/ }));
keysyms.set(216, new
KeycodeArray({ 0 /*XK_XF86AudioForward*/ }));
keysyms.set(217, new KeycodeArray({ }));
keysyms.set(218, new KeycodeArray({ XK_Print }));
keysyms.set(219, new KeycodeArray({ }));
keysyms.set(220, new KeycodeArray({ 0 /*XK_XF86WebCam*/ }));
keysyms.set(221, new KeycodeArray({ }));
keysyms.set(222, new KeycodeArray({ }));
keysyms.set(223, new KeycodeArray({ 0 /*XK_XF86Mail*/ }));
keysyms.set(224, new KeycodeArray({ }));
keysyms.set(225, new KeycodeArray({ 0 /*XK_XF86Search*/ }));
keysyms.set(226, new KeycodeArray({ }));
keysyms.set(227, new KeycodeArray({ 0 /*XK_XF86Finance*/ }));
keysyms.set(228, new KeycodeArray({ }));
keysyms.set(229, new KeycodeArray({ 0 /*XK_XF86Shop*/ }));
keysyms.set(230, new KeycodeArray({ }));
keysyms.set(231, new KeycodeArray({ XK_Cancel }));
keysyms.set(232, new KeycodeArray({ 0 /*XK_XF86MonBrightnessDown*/ }));
keysyms.set(233, new KeycodeArray({ 0 /*XK_XF86MonBrightnessUp*/ }));
keysyms.set(234, new KeycodeArray({ 0 /*XK_XF86AudioMedia*/ }));
keysyms.set(235, new KeycodeArray({ 0 /*XK_XF86Display*/ }));
keysyms.set(236, new KeycodeArray({ 0 /*XK_XF86KbdLightOnOff*/ }));
keysyms.set(237, new KeycodeArray({ 0 /*XK_XF86KbdBrightnessDown*/ }));
keysyms.set(238, new KeycodeArray({ 0 /*XK_XF86KbdBrightnessUp*/ }));
keysyms.set(239, new KeycodeArray({ 0 /*XK_XF86Send*/ }));
keysyms.set(240, new KeycodeArray({ 0 /*XK_XF86Reply*/ }));
keysyms.set(241, new KeycodeArray({ 0 /*XK_XF86MailForward*/ }));
keysyms.set(242, new KeycodeArray({ 0 /*XK_XF86Save*/ }));
keysyms.set(243, new KeycodeArray({ 0 /*XK_XF86Documents*/ }));
keysyms.set(244, new KeycodeArray({ 0 /*XK_XF86Battery*/ }));
keysyms.set(245, new KeycodeArray({ 0 /*XK_XF86Bluetooth*/ }));
keysyms.set(246, new KeycodeArray({ 0 /*XK_XF86WLAN*/ }));
keysyms.set(247, new KeycodeArray({ }));
keysyms.set(248, new KeycodeArray({ }));
keysyms.set(249, new KeycodeArray({ }));
keysyms.set(250, new KeycodeArray({ }));
keysyms.set(251, new KeycodeArray({ }));
keysyms.set(252, new KeycodeArray({ }));
keysyms.set(253, new KeycodeArray({ }));
keysyms.set(254, new KeycodeArray({ }));
keysyms.set(255, new KeycodeArray({ }));
return keysyms;
}
// Define Keyboard layout KOY (Weiterentwicklung von Aus der Neo Welt)
public Gee.HashMap<int, KeycodeArray> generateKeysymsKoy() {
Gee.HashMap<int, KeycodeArray> keysyms = new Gee.HashMap<int, KeycodeArray>();
/* Define keyboard layout. this object maps the keycodes to the list of keycodes of each keyboard layer. */
keysyms.set(8, new KeycodeArray({}));
keysyms.set( 9, new KeycodeArray({ XK_Escape, XK_Escape, XK_Escape, XK_Escape, XK_Escape }));
keysyms.set( 10, new KeycodeArray({ XK_1, XK_degree, XK_onesuperior, XK_onesubscript, XK_ordfeminine, XK_notsign, 0 /*NoSymbol*/ }));
keysyms.set( 11, new KeycodeArray({ XK_2, XK_section, XK_twosuperior, XK_twosubscript, XK_masculine, XK_logicalor, 0 /*NoSymbol*/ }));
keysyms.set( 12, new KeycodeArray({ XK_3, (uint)X.string_to_keysym("U2113"), XK_threesuperior, XK_threesubscript, XK_numerosign, XK_logicaland, 0 /*NoSymbol*/ }));
keysyms.set( 13, new KeycodeArray({ XK_4, XK_guillemotright, (uint)X.string_to_keysym("U203A"), XK_femalesymbol, 0 /*NoSymbol*/, (uint)X.string_to_keysym("U22A5"), 0 /*NoSymbol*/ }));
keysyms.set( 14, new KeycodeArray({ XK_5, XK_guillemotleft, (uint)X.string_to_keysym("U2039"), XK_malesymbol, XK_periodcentered, (uint)X.string_to_keysym("U2221"), 0 /*NoSymbol*/ }));
keysyms.set( 15, new KeycodeArray({ XK_6, XK_dollar, XK_cent, (uint)X.string_to_keysym("U26A5"), XK_sterling, (uint)X.string_to_keysym("U2225"), 0 /*NoSymbol*/ }));
keysyms.set( 16, new KeycodeArray({ XK_7, XK_EuroSign, XK_yen, (uint)X.string_to_keysym("U03F0"), XK_currency, XK_rightarrow, 0 /*NoSymbol*/ }));
keysyms.set( 17, new KeycodeArray({ XK_8, XK_doublelowquotemark, XK_singlelowquotemark, (uint)X.string_to_keysym("U27E8"), XK_Tab, (uint)X.string_to_keysym("U221E"), 0 /*NoSymbol*/ }));
keysyms.set( 18, new KeycodeArray({ XK_9, XK_leftdoublequotemark, XK_leftsinglequotemark, (uint)X.string_to_keysym("U27E9"), XK_KP_Divide, XK_variation, 0 /*NoSymbol*/ }));
keysyms.set( 19, new KeycodeArray({ XK_0, XK_rightdoublequotemark, XK_rightsinglequotemark, XK_zerosubscript, XK_KP_Multiply, XK_emptyset, 0 /*NoSymbol*/ }));
keysyms.set( 20, new KeycodeArray({ XK_minus, XK_emdash, 0 /*NoSymbol*/, (uint)X.string_to_keysym("U2011"), XK_KP_Subtract, XK_hyphen, 0 /*NoSymbol*/ }));
keysyms.set( 21, new KeycodeArray({ XK_dead_grave, XK_dead_cedilla, XK_dead_abovering, XK_dead_abovereversedcomma, XK_dead_diaeresis, XK_dead_macron, 0 /*NoSymbol*/ }));
keysyms.set( 22, new KeycodeArray({ XK_BackSpace, XK_BackSpace, XK_BackSpace, XK_BackSpace, XK_BackSpace }));
keysyms.set( 23, new KeycodeArray({ XK_Tab, XK_ISO_Left_Tab, XK_Multi_key, XK_ISO_Level5_Lock, 0 /*NoSymbol*/, 0 /*NoSymbol*/, XK_ISO_Level5_Lock }));
keysyms.set( 24, new KeycodeArray({ XK_k, XK_K, XK_ellipsis, XK_Greek_kappa, XK_Prior, XK_multiply, 0 /*NoSymbol*/ }));
keysyms.set( 25, new KeycodeArray({ XK_period, XK_enfilledcircbullet, XK_underscore, (uint)X.string_to_keysym("U03D1"), XK_BackSpace, (uint)X.string_to_keysym("U21A6"), 0 /*NoSymbol*/ }));
keysyms.set( 26, new KeycodeArray({ XK_o, XK_O, XK_bracketleft, XK_Greek_omicron, XK_Up, XK_elementof, 0 /*NoSymbol*/ }));
keysyms.set( 27, new KeycodeArray({ XK_comma, XK_endash, XK_bracketright, (uint)X.string_to_keysym("U03F1"), XK_Delete, (uint)X.string_to_keysym("U21D2"), 0 /*NoSymbol*/ }));
keysyms.set( 28, new KeycodeArray({ XK_y, XK_Y, XK_asciicircum, XK_Greek_upsilon, XK_Next, XK_nabla, 0 /*NoSymbol*/ }));
keysyms.set( 29, new KeycodeArray({ XK_v, XK_V, XK_exclam, 0 /*NoSymbol*/, 0 /*NoSymbol*/, XK_radical, 0 /*NoSymbol*/ }));
keysyms.set( 30, new KeycodeArray({ XK_g, XK_G, XK_less, XK_Greek_gamma, XK_KP_7, XK_Greek_GAMMA, 0 /*NoSymbol*/ }));
keysyms.set( 31, new KeycodeArray({ XK_c, XK_C, XK_greater, XK_Greek_chi, XK_KP_8, (uint)X.string_to_keysym("U2102"), 0 /*NoSymbol*/ }));
keysyms.set( 32, new KeycodeArray({ XK_l, XK_L, (uint)X.string_to_keysym("U1E9E"), XK_equal, XK_Greek_lamda, XK_KP_9, XK_Greek_LAMDA, 0 /*NoSymbol*/ }));
keysyms.set( 33, new KeycodeArray({ XK_ssharp, XK_ampersand, XK_Greek_finalsmallsigma, XK_KP_Add, XK_jot, 0 /*NoSymbol*/ }));
keysyms.set( 34, new KeycodeArray({ XK_z, XK_Z, (uint)X.string_to_keysym("U017F"), XK_Greek_zeta, (uint)X.string_to_keysym("U2212"), (uint)X.string_to_keysym("U2124"), 0 /*NoSymbol*/ }));
keysyms.set( 35, new KeycodeArray({ XK_dead_acute, XK_dead_tilde, XK_dead_stroke, XK_dead_abovecomma, XK_dead_doubleacute, XK_dead_breve, 0 /*NoSymbol*/ }));
keysyms.set( 36, new KeycodeArray({ XK_Return, XK_Return, XK_Return, XK_Return, XK_Return }));
keysyms.set( 37, new KeycodeArray({ XK_Control_L, XK_Control_L, XK_Control_L, XK_Control_L, XK_Control_L }));
keysyms.set( 38, new KeycodeArray({ XK_h, XK_H, XK_backslash, XK_Greek_psi, XK_Home, XK_Greek_PSI, 0 /*NoSymbol*/ }));
keysyms.set( 39, new KeycodeArray({ XK_a, XK_A, XK_slash, XK_Greek_alpha, XK_Left, (uint)X.string_to_keysym("U2200"), 0 /*NoSymbol*/ }));
keysyms.set( 40, new KeycodeArray({ XK_e, XK_E, XK_braceleft, XK_Greek_epsilon, XK_Down, (uint)X.string_to_keysym("U2203"), 0 /*NoSymbol*/ }));
keysyms.set( 41, new KeycodeArray({ XK_i, XK_I, XK_braceright, XK_Greek_iota, XK_Right, XK_integral, 0 /*NoSymbol*/ }));
keysyms.set( 42, new KeycodeArray({ XK_u, XK_U, XK_asterisk, 0 /*NoSymbol*/, XK_End, XK_includedin, 0 /*NoSymbol*/ }));
keysyms.set( 43, new KeycodeArray({ XK_d, XK_D, XK_question, XK_Greek_delta, XK_questiondown, XK_Greek_DELTA, 0 /*NoSymbol*/ }));
keysyms.set( 44, new KeycodeArray({ XK_t, XK_T, XK_parenleft, XK_Greek_tau, XK_KP_4, XK_partialderivative, 0 /*NoSymbol*/ }));
keysyms.set( 45, new KeycodeArray({ XK_r, XK_R, XK_parenright, XK_Greek_rho, XK_KP_5, (uint)X.string_to_keysym("U211D"), 0 /*NoSymbol*/ }));
keysyms.set( 46, new KeycodeArray({ XK_n, XK_N, XK_minus, XK_Greek_nu, XK_KP_6, (uint)X.string_to_keysym("U2115"), 0 /*NoSymbol*/ }));
keysyms.set( 47, new KeycodeArray({ XK_s, XK_S, XK_colon, XK_Greek_sigma, XK_KP_Separator, XK_Greek_SIGMA, 0 /*NoSymbol*/ }));
keysyms.set( 48, new KeycodeArray({ XK_f, XK_F, XK_at, XK_Greek_phi, XK_Return, XK_Greek_PHI, 0 /*NoSymbol*/ }));
keysyms.set( 49, new KeycodeArray({ XK_dead_circumflex, XK_dead_caron, (uint)X.string_to_keysym("U21BB"), (uint)X.string_to_keysym("U02DE"), XK_dead_abovedot, XK_dead_belowdot, 0 /*NoSymbol*/ }));
keysyms.set( 50, new KeycodeArray({ XK_Shift_L, XK_Caps_Lock }));
keysyms.set( 51, new KeycodeArray({ XK_ISO_Level3_Shift }));
keysyms.set( 52, new KeycodeArray({ XK_x, XK_X, XK_numbersign, XK_Greek_xi, XK_Escape, XK_Greek_XI, 0 /*NoSymbol*/ }));
keysyms.set( 53, new KeycodeArray({ XK_q, XK_Q, XK_dollar, (uint)X.string_to_keysym("U03D5"), XK_Tab, (uint)X.string_to_keysym("U211A"), 0 /*NoSymbol*/ }));
keysyms.set( 54, new KeycodeArray({ XK_adiaeresis, XK_Adiaeresis, XK_bar, XK_Greek_eta, XK_Insert, (uint)X.string_to_keysym("U2135"), 0 /*NoSymbol*/ }));
keysyms.set( 55, new KeycodeArray({ XK_udiaeresis, XK_Udiaeresis, XK_asciitilde, 0 /*NoSymbol*/, XK_Return, XK_union, 0 /*NoSymbol*/ }));
keysyms.set( 56, new KeycodeArray({ XK_odiaeresis, XK_Odiaeresis, XK_grave, (uint)X.string_to_keysym("U03F5"), XK_Undo, XK_intersection, 0 /*NoSymbol*/ }));
keysyms.set( 57, new KeycodeArray({ XK_b, XK_B, XK_plus, XK_Greek_beta, XK_colon, (uint)X.string_to_keysym("U21D0"), 0 /*NoSymbol*/ }));
keysyms.set( 58, new KeycodeArray({ XK_p, XK_P, XK_percent, XK_Greek_pi, XK_KP_1, XK_Greek_PI, 0 /*NoSymbol*/ }));
keysyms.set( 59, new KeycodeArray({ XK_w, XK_W, XK_quotedbl, XK_Greek_omega, XK_KP_2, XK_Greek_OMEGA, 0 /*NoSymbol*/ }));
keysyms.set( 60, new KeycodeArray({ XK_m, XK_M, XK_apostrophe, XK_Greek_mu, XK_KP_3, XK_ifonlyif, 0 /*NoSymbol*/ }));
keysyms.set( 61, new KeycodeArray({ XK_j, XK_J, XK_semicolon, XK_Greek_theta, XK_semicolon, XK_Greek_THETA, 0 /*NoSymbol*/ }));
keysyms.set( 62, new KeycodeArray({ XK_Shift_R, XK_Caps_Lock }));
keysyms.set( 63, new KeycodeArray({ XK_KP_Multiply, XK_KP_Multiply, (uint)X.string_to_keysym("U2219"), (uint)X.string_to_keysym("U2299"), XK_multiply, (uint)X.string_to_keysym("U2297"), 0 /*NoSymbol*/ }));
keysyms.set( 64, new KeycodeArray({ XK_Alt_L, XK_Alt_L, XK_Alt_L, XK_Alt_L, XK_Alt_L, XK_Alt_L }));
keysyms.set( 65, new KeycodeArray({ XK_space, XK_space, XK_space, XK_nobreakspace, XK_KP_0, (uint)X.string_to_keysym("U202F"), 0 /*NoSymbol*/ }));
keysyms.set( 66, new KeycodeArray({ XK_ISO_Level3_Shift }));
keysyms.set( 67, new KeycodeArray({ XK_F1, 0 /*XK_XF86_Switch_VT_1*/ }));
keysyms.set( 68, new KeycodeArray({ XK_F2, 0 /*XK_XF86_Switch_VT_2*/ }));
keysyms.set( 69, new KeycodeArray({ XK_F3, 0 /*XK_XF86_Switch_VT_3*/ }));
keysyms.set( 70, new KeycodeArray({ XK_F4, 0 /*XK_XF86_Switch_VT_4*/ }));
keysyms.set( 71, new KeycodeArray({ XK_F5, 0 /*XK_XF86_Switch_VT_5*/ }));
keysyms.set( 72, new KeycodeArray({ XK_F6, 0 /*XK_XF86_Switch_VT_6*/ }));
keysyms.set( 73, new KeycodeArray({ XK_F7, 0 /*XK_XF86_Switch_VT_7*/ }));
keysyms.set( 74, new KeycodeArray({ XK_F8, 0 /*XK_XF86_Switch_VT_8*/ }));
keysyms.set( 75, new KeycodeArray({ XK_F9, 0 /*XK_XF86_Switch_VT_9*/ }));
keysyms.set( 76, new KeycodeArray({ XK_F10, 0 /*XK_XF86_Switch_VT_10*/ }));
keysyms.set( 77, new KeycodeArray({ XK_Tab, XK_ISO_Left_Tab, XK_equal, XK_approxeq, XK_notequal, XK_identical, 0 /*NoSymbol*/ }));
keysyms.set( 78, new KeycodeArray({ XK_Scroll_Lock, XK_Scroll_Lock, XK_Scroll_Lock, XK_Scroll_Lock, XK_Scroll_Lock }));
keysyms.set( 79, new KeycodeArray({ XK_KP_7, (uint)X.string_to_keysym("U2714"), (uint)X.string_to_keysym("U2195"), (uint)X.string_to_keysym("U226A"), XK_KP_Home, XK_upstile, 0 /*NoSymbol*/ }));
keysyms.set( 80, new KeycodeArray({ XK_KP_8, (uint)X.string_to_keysym("U2718"), XK_uparrow, XK_intersection, XK_KP_Up, (uint)X.string_to_keysym("U22C2"),
0 /*NoSymbol*/ }));
keysyms.set( 81, new KeycodeArray({ XK_KP_9, XK_dagger, (uint)X.string_to_keysym("U20D7"), (uint)X.string_to_keysym("U226B"), XK_KP_Prior, (uint)X.string_to_keysym("U2309"), 0 /*NoSymbol*/ }));
keysyms.set( 82, new KeycodeArray({ XK_KP_Subtract, XK_KP_Subtract, (uint)X.string_to_keysym("U2212"), (uint)X.string_to_keysym("U2296"), (uint)X.string_to_keysym("U2216"), (uint)X.string_to_keysym("U2238"), 0 /*NoSymbol*/ }));
keysyms.set( 83, new KeycodeArray({ XK_KP_4, XK_club, XK_leftarrow, XK_includedin, XK_KP_Left, (uint)X.string_to_keysym("U2286"), 0 /*NoSymbol*/ }));
keysyms.set( 84, new KeycodeArray({ XK_KP_5, XK_EuroSign, XK_colon, (uint)X.string_to_keysym("U22B6"), XK_KP_Begin, (uint)X.string_to_keysym("U22B7"), 0 /*NoSymbol*/ }));
keysyms.set( 85, new KeycodeArray({ XK_KP_6, (uint)X.string_to_keysym("U2023"), XK_rightarrow, XK_includes, XK_KP_Right, (uint)X.string_to_keysym("U2287"), 0 /*NoSymbol*/ }));
keysyms.set( 86, new KeycodeArray({ XK_KP_Add, XK_KP_Add, XK_plusminus, (uint)X.string_to_keysym("U2295"), (uint)X.string_to_keysym("U2213"), (uint)X.string_to_keysym("U2214"), 0 /*NoSymbol*/ }));
keysyms.set( 87, new KeycodeArray({ XK_KP_1, XK_diamond, (uint)X.string_to_keysym("U2194"), XK_lessthanequal, XK_KP_End, XK_downstile, 0 /*NoSymbol*/ }));
keysyms.set( 88, new KeycodeArray({ XK_KP_2, XK_heart, XK_downarrow, XK_union, XK_KP_Down, (uint)X.string_to_keysym("U22C3"), 0 /*NoSymbol*/ }));
keysyms.set( 89, new KeycodeArray({ XK_KP_3, (uint)X.string_to_keysym("U2660"), (uint)X.string_to_keysym("U21CC"), XK_greaterthanequal, XK_KP_Next, (uint)X.string_to_keysym("U230B"), 0 /*NoSymbol*/ }));
keysyms.set( 90, new KeycodeArray({ XK_KP_0, (uint)X.string_to_keysym("U2423"), XK_percent, (uint)X.string_to_keysym("U2030"), XK_KP_Insert, (uint)X.string_to_keysym("U25A1"), 0 /*NoSymbol*/ }));
keysyms.set( 91, new KeycodeArray({ XK_KP_Separator, XK_period, XK_comma, XK_minutes, XK_KP_Delete, XK_seconds, 0 /*NoSymbol*/ }));
keysyms.set( 92, new KeycodeArray({ XK_ISO_Level3_Shift }));
keysyms.set( 93, new KeycodeArray({ }));
keysyms.set( 94, new KeycodeArray({ XK_ISO_Level5_Shift, XK_ISO_Level5_Shift, XK_ISO_Level5_Shift, XK_ISO_Level5_Shift, XK_ISO_Level5_Lock, XK_ISO_Level5_Lock, XK_ISO_Level5_Lock }));
keysyms.set( 95, new KeycodeArray({ XK_F11, 0 /*XK_XF86_Switch_VT_11*/ }));
keysyms.set( 96, new KeycodeArray({ XK_F12, 0 /*XK_XF86_Switch_VT_12*/ }));
keysyms.set( 97, new KeycodeArray({ }));
keysyms.set( 98, new KeycodeArray({ XK_Katakana }));
keysyms.set( 99, new KeycodeArray({ XK_Hiragana }));
keysyms.set(100, new KeycodeArray({ XK_Henkan_Mode }));
keysyms.set(101, new KeycodeArray({ XK_Hiragana_Katakana }));
keysyms.set(102, new KeycodeArray({ XK_Muhenkan }));
keysyms.set(103, new KeycodeArray({ }));
keysyms.set(104, new KeycodeArray({ XK_KP_Enter, XK_KP_Enter, XK_KP_Enter, XK_KP_Enter, XK_KP_Enter, XK_KP_Enter, 0 /*NoSymbol*/ }));
keysyms.set(105, new KeycodeArray({ XK_Control_R, XK_Control_R, XK_Control_R, XK_Control_R, XK_Control_R }));
keysyms.set(106, new KeycodeArray({ XK_KP_Divide, XK_KP_Divide, XK_division, (uint)X.string_to_keysym("U2300"), (uint)X.string_to_keysym("U2215"), (uint)X.string_to_keysym("U2223"), 0 /*NoSymbol*/ }));
keysyms.set(107, new KeycodeArray({ XK_Print, XK_Sys_Req }));
keysyms.set(108, new KeycodeArray({ XK_ISO_Level5_Shift, XK_ISO_Level5_Shift, XK_ISO_Level5_Shift, XK_ISO_Level5_Shift, XK_ISO_Level5_Lock, XK_ISO_Level5_Lock, XK_ISO_Level5_Lock }));
keysyms.set(109, new KeycodeArray({ XK_Linefeed, XK_Linefeed, XK_Linefeed, XK_Linefeed, XK_Linefeed }));
keysyms.set(110, new KeycodeArray({ XK_Home, XK_Home, XK_Home, XK_Home, XK_Home }));
keysyms.set(111, new KeycodeArray({ XK_Up, XK_Up, XK_Up, XK_Up, XK_Up }));
keysyms.set(112, new KeycodeArray({ XK_Prior, XK_Prior, XK_Prior, XK_Prior, XK_Prior }));
keysyms.set(113, new KeycodeArray({ XK_Left, XK_Left, XK_Left, XK_Left, XK_Left }));
keysyms.set(114, new KeycodeArray({ XK_Right, XK_Right, XK_Right, XK_Right, XK_Right }));
keysyms.set(115, new KeycodeArray({ XK_End, XK_End, XK_End, XK_End, XK_End }));
keysyms.set(116, new KeycodeArray({ XK_Down, XK_Down, XK_Down, XK_Down, XK_Down }));
keysyms.set(117, new KeycodeArray({ XK_Next, XK_Next, XK_Next, XK_Next, XK_Next }));
keysyms.set(118, new KeycodeArray({ XK_Insert, XK_Insert, XK_Insert, XK_Insert, XK_Insert }));
keysyms.set(119, new KeycodeArray({ XK_Delete, XK_Delete, XK_Delete, XK_Delete, XK_Delete }));
keysyms.set(120, new KeycodeArray({ }));
keysyms.set(121, new KeycodeArray({ 0 /*XK_XF86AudioMute*/ }));
keysyms.set(122, new KeycodeArray({ 0 /*XK_XF86AudioLowerVolume*/ }));
keysyms.set(123, new KeycodeArray({ 0 /*XK_XF86AudioRaiseVolume*/ }));
keysyms.set(124, new KeycodeArray({ 0 /*XK_XF86PowerOff*/ }));
keysyms.set(125, new KeycodeArray({ XK_KP_Equal, 0 /*NoSymbol*/, 0 /*NoSymbol*/, 0 /*NoSymbol*/, 0 /*NoSymbol*/, 0 /*NoSymbol*/, 0 /*NoSymbol*/ }));
keysyms.set(126, new KeycodeArray({ XK_plusminus }));
keysyms.set(127, new KeycodeArray({ XK_Pause, XK_Break }));
keysyms.set(128, new KeycodeArray({ 0 /*XK_XF86LaunchA*/ }));
keysyms.set(129, new KeycodeArray({ XK_KP_Decimal }));
keysyms.set(130, new KeycodeArray({ XK_Hangul }));
keysyms.set(131, new KeycodeArray({ XK_Hangul_Hanja }));
keysyms.set(132, new KeycodeArray({ }));
keysyms.set(133, new KeycodeArray({ XK_Super_L }));
keysyms.set(134, new KeycodeArray({ XK_Super_R }));
keysyms.set(135, new KeycodeArray({ XK_Menu }));
keysyms.set(136, new KeycodeArray({ XK_Cancel }));
keysyms.set(137, new KeycodeArray({ XK_Redo }));
keysyms.set(138, new KeycodeArray({ 0 /*XK_SunProps*/ }));
keysyms.set(139, new KeycodeArray({ XK_Undo }));
keysyms.set(140, new KeycodeArray({ 0 /*XK_SunFront*/ }));
keysyms.set(141, new KeycodeArray({ 0 /*XK_XF86Copy*/ }));
keysyms.set(142, new KeycodeArray({ 0 /*XK_SunOpen*/ }));
keysyms.set(143, new KeycodeArray({ 0 /*XK_XF86Paste*/ }));
keysyms.set(144, new KeycodeArray({ XK_Find }));
keysyms.set(145, new KeycodeArray({ 0 /*XK_XF86Cut*/ }));
keysyms.set(146, new KeycodeArray({ XK_Help }));
keysyms.set(147, new KeycodeArray({ 0 /*XK_XF86MenuKB*/ }));
keysyms.set(148, new KeycodeArray({ 0 /*XK_XF86Calculator*/ }));
keysyms.set(149, new KeycodeArray({ }));
keysyms.set(150, new KeycodeArray({ 0 /*XK_XF86Sleep*/ }));
keysyms.set(151, new KeycodeArray({ 0 /*XK_XF86WakeUp*/ }));
keysyms.set(152, new KeycodeArray({ 0 /*XK_XF86Explorer*/ }));
keysyms.set(153, new KeycodeArray({ 0 /*XK_XF86Send*/ }));
keysyms.set(154, new KeycodeArray({ }));
keysyms.set(155, new KeycodeArray({ 0 /*XK_XF86Xfer*/ }));
keysyms.set(156, new KeycodeArray({ 0 /*XK_XF86Launch1*/ }));
keysyms.set(157, new KeycodeArray({ 0 /*XK_XF86Launch2*/ }));
keysyms.set(158, new KeycodeArray({ 0 /*XK_XF86WWW*/ }));
keysyms.set(159, new KeycodeArray({ 0 /*XK_XF86DOS*/ }));
keysyms.set(160, new KeycodeArray({ 0 /*XK_XF86ScreenSaver*/ }));
keysyms.set(161, new KeycodeArray({ }));
keysyms.set(162, new KeycodeArray({ 0 /*XK_XF86RotateWindows*/ }));
keysyms.set(163, new KeycodeArray({ 0 /*XK_XF86Mail*/ }));
keysyms.set(164, new KeycodeArray({ 0 /*XK_XF86Favorites*/ }));
keysyms.set(165, new KeycodeArray({ 0 /*XK_XF86MyComputer*/ }));
keysyms.set(166, new KeycodeArray({ 0 /*XK_XF86Back*/ }));
keysyms.set(167, new KeycodeArray({ 0 /*XK_XF86Forward*/ }));
keysyms.set(168, new KeycodeArray({ }));
keysyms.set(169, new KeycodeArray({ 0 /*XK_XF86Eject*/ }));
keysyms.set(170, new KeycodeArray({ 0 /*XK_XF86Eject*/, 0 /*XK_XF86Eject*/ }));
keysyms.set(171, new KeycodeArray({ 0 /*XK_XF86AudioNext*/ }));
keysyms.set(172, new KeycodeArray({ 0 /*XK_XF86AudioPlay*/, 0 /*XK_XF86AudioPause*/ }));
keysyms.set(173, new KeycodeArray({ 0 /*XK_XF86AudioPrev*/ }));
keysyms.set(174, new KeycodeArray({ 0 /*XK_XF86AudioStop*/, 0 /*XK_XF86Eject*/ }));
keysyms.set(175, new KeycodeArray({ 0 /*XK_XF86AudioRecord*/ }));
keysyms.set(176, new KeycodeArray({ 0 /*XK_XF86AudioRewind*/ }));
keysyms.set(177, new KeycodeArray({ 0 /*XK_XF86Phone*/ }));
keysyms.set(178, new KeycodeArray({ }));
keysyms.set(179, new KeycodeArray({ 0 /*XK_XF86Tools*/ }));
keysyms.set(180, new KeycodeArray({ 0 /*XK_XF86HomePage*/ }));
keysyms.set(181, new KeycodeArray({ 0 /*XK_XF86Reload*/ }));
keysyms.set(182, new KeycodeArray({ 0 /*XK_XF86Close*/ }));
keysyms.set(183, new KeycodeArray({ }));
keysyms.set(184, new KeycodeArray({ }));
keysyms.set(185, new KeycodeArray({ 0 /*XK_XF86ScrollUp*/ }));
keysyms.set(186, new KeycodeArray({ 0 /*XK_XF86ScrollDown*/ }));
keysyms.set(187, new KeycodeArray({ XK_parenleft }));
keysyms.set(188, new KeycodeArray({ XK_parenright }));
keysyms.set(189, new KeycodeArray({ 0 /*XK_XF86New*/ }));
keysyms.set(190, new KeycodeArray({ XK_Redo }));
keysyms.set(191, new KeycodeArray({ 0 /*XK_XF86Tools*/ }));
keysyms.set(192, new KeycodeArray({ 0 /*XK_XF86Launch5*/ }));
keysyms.set(193, new KeycodeArray({ 0 /*XK_XF86MenuKB*/ }));
keysyms.set(194, new KeycodeArray({ }));
keysyms.set(195, new KeycodeArray({ }));
keysyms.set(196, new KeycodeArray({ }));
keysyms.set(197, new KeycodeArray({ }));
keysyms.set(198, new KeycodeArray({ }));
keysyms.set(199, new KeycodeArray({ }));
keysyms.set(200, new KeycodeArray({ 0 /*XK_XF86TouchpadToggle*/ }));
keysyms.set(201, new KeycodeArray({ }));
keysyms.set(202, new KeycodeArray({ }));
keysyms.set(203, new KeycodeArray({ XK_ISO_Level5_Shift, XK_ISO_Level5_Shift, XK_ISO_Level5_Shift, XK_ISO_Level5_Shift, XK_ISO_Level5_Shift }));
keysyms.set(204, new KeycodeArray({ XK_Alt_L }));
keysyms.set(205, new KeycodeArray({ XK_Alt_L }));
keysyms.set(206, new KeycodeArray({ XK_Super_L }));
keysyms.set(207, new KeycodeArray({ }));
keysyms.set(208, new KeycodeArray({ 0 /*XK_XF86AudioPlay*/ }));
keysyms.set(209, new KeycodeArray({ 0 /*XK_XF86AudioPause*/ }));
keysyms.set(210, new KeycodeArray({ 0 /*XK_XF86Launch3*/ }));
keysyms.set(211, new KeycodeArray({ 0 /*XK_XF86Launch4*/ }));
keysyms.set(212, new KeycodeArray({ 0 /*XK_XF86LaunchB*/ }));
keysyms.set(213, new KeycodeArray({ 0 /*XK_XF86Suspend*/ }));
keysyms.set(214, new KeycodeArray({ 0 /*XK_XF86Close*/ }));
keysyms.set(215, new KeycodeArray({ 0 /*XK_XF86AudioPlay*/ }));
keysyms.set(216, new
KeycodeArray({ 0 /*XK_XF86AudioForward*/ }));
keysyms.set(217, new KeycodeArray({ }));
keysyms.set(218, new KeycodeArray({ XK_Print }));
keysyms.set(219, new KeycodeArray({ }));
keysyms.set(220, new KeycodeArray({ 0 /*XK_XF86WebCam*/ }));
keysyms.set(221, new KeycodeArray({ }));
keysyms.set(222, new KeycodeArray({ }));
keysyms.set(223, new KeycodeArray({ 0 /*XK_XF86Mail*/ }));
keysyms.set(224, new KeycodeArray({ }));
keysyms.set(225, new KeycodeArray({ 0 /*XK_XF86Search*/ }));
keysyms.set(226, new KeycodeArray({ }));
keysyms.set(227, new KeycodeArray({ 0 /*XK_XF86Finance*/ }));
keysyms.set(228, new KeycodeArray({ }));
keysyms.set(229, new KeycodeArray({ 0 /*XK_XF86Shop*/ }));
keysyms.set(230, new KeycodeArray({ }));
keysyms.set(231, new KeycodeArray({ XK_Cancel }));
keysyms.set(232, new KeycodeArray({ 0 /*XK_XF86MonBrightnessDown*/ }));
keysyms.set(233, new KeycodeArray({ 0 /*XK_XF86MonBrightnessUp*/ }));
keysyms.set(234, new KeycodeArray({ 0 /*XK_XF86AudioMedia*/ }));
keysyms.set(235, new KeycodeArray({ 0 /*XK_XF86Display*/ }));
keysyms.set(236, new KeycodeArray({ 0 /*XK_XF86KbdLightOnOff*/ }));
keysyms.set(237, new KeycodeArray({ 0 /*XK_XF86KbdBrightnessDown*/ }));
keysyms.set(238, new KeycodeArray({ 0 /*XK_XF86KbdBrightnessUp*/ }));
keysyms.set(239, new KeycodeArray({ 0 /*XK_XF86Send*/ }));
keysyms.set(240, new KeycodeArray({ 0 /*XK_XF86Reply*/ }));
keysyms.set(241, new KeycodeArray({ 0 /*XK_XF86MailForward*/ }));
keysyms.set(242, new KeycodeArray({ 0 /*XK_XF86Save*/ }));
keysyms.set(243, new KeycodeArray({ 0 /*XK_XF86Documents*/ }));
keysyms.set(244, new KeycodeArray({ 0 /*XK_XF86Battery*/ }));
keysyms.set(245, new KeycodeArray({ 0 /*XK_XF86Bluetooth*/ }));
keysyms.set(246, new KeycodeArray({ 0 /*XK_XF86WLAN*/ }));
keysyms.set(247, new KeycodeArray({ }));
keysyms.set(248, new KeycodeArray({ }));
keysyms.set(249, new KeycodeArray({ }));
keysyms.set(250, new KeycodeArray({ }));
keysyms.set(251, new KeycodeArray({ }));
keysyms.set(252, new KeycodeArray({ }));
keysyms.set(253, new KeycodeArray({ }));
keysyms.set(254, new KeycodeArray({ }));
keysyms.set(255, new KeycodeArray({ }));
return keysyms;
}
}

+ 1
- 1
src/main.vala View File

@ -115,7 +115,7 @@ namespace NeoLayoutViewer{
@return: assed folder or null.
*/
private static string? search_asset_folder(string path) {
/*const*/ string filename = "/icons/Neo-Icon.png";
string filename = "/icons/Neo-Icon.png"; // Name of file we search for
string[] paths = {
path, // path from config file


+ 53
- 15
src/neo-window.vala View File

@ -43,6 +43,8 @@ namespace NeoLayoutViewer {
private KeyOverlay key_overlay;
#endif
public string layoutType; // = "NEO2";
public Gee.Map<string, Gdk.Pixbuf> image_buffer;
private Gdk.Pixbuf[] layer_pixbufs;
private int monitor_id = -1;
@ -85,7 +87,7 @@ namespace NeoLayoutViewer {
Interpretationsreihenfolge der Dimensionen: Shift, Neo-Mod3, Neo-Mod4. */
private short[,,] MODIFIER_MAP2 = {
{ {0 , 3}, {2 , 5 } }, // 000, 001; 010, 011
{ {1 , 3}, {4 , 5}} // 100, 101; 110, 111
{ {1 , 3}, {4 , 5}} // 100, 101; 110, 111
};
/* {0, 5} -> [0, 1]^3 */
@ -133,6 +135,8 @@ namespace NeoLayoutViewer {
this.config = app.configm.getConfig();
this.minimized = true;
this.layoutType = this.config.get("layout_type");
/* Set window type to let tiling window manager, i.e. i3-wm,
* the chance to float the window automatically.
*/
@ -538,9 +542,27 @@ namespace NeoLayoutViewer {
}
}
public Gdk.Pixbuf open_image (int layer) {
var bildpfad = @"$(config.get("asset_folder"))/neo2.0_hires/tastatur_neo_Ebene$(layer).png";
return open_image_str(bildpfad);
public Gdk.Pixbuf open_image(int layer) {
string bildpfad = "";
switch (this.layoutType) {
case "ADNW":
{
bildpfad = @"$(config.get("asset_folder"))/adnw/tastatur_adnw_Ebene$(layer).png";
break;
}
case "KOY":
{
bildpfad = @"$(config.get("asset_folder"))/koy/tastatur_koy_Ebene$(layer).png";
break;
}
case "NEO2":
default:
{
bildpfad = @"$(config.get("asset_folder"))/neo2.0/tastatur_neo_Ebene$(layer).png";
break;
}
}
return open_image_str(bildpfad);
}
public Gdk.Pixbuf open_image_str (string bildpfad) {
@ -551,17 +573,33 @@ namespace NeoLayoutViewer {
}
}
public void load_images () {
public string get_layout_icon_name () {
// Name without extenion returned for indicator.vala
switch (this.layoutType) {
case "ADNW":
{
return "ADNW-Icon";
}
case "KOY":
{
return "KOY-Icon";
}
case "NEO2":
default:
{
return "Neo-Icon";
}
}
}
private void load_program_icon () {
this.image_buffer["icon"] = open_image_str(
@"$(config.get("asset_folder"))/icons/Neo-Icon.png");
/*
int screen_width = this.get_screen_width(); //Gdk.Screen.width();
int max_width = (int) (double.parse(this.config.get("max_width")) * screen_width);
int min_width = (int) (double.parse(this.config.get("min_width")) * screen_width);
int width = int.min(int.max(int.parse(this.config.get("width")), min_width), max_width);
int w, h;
*/
@"$(config.get("asset_folder"))/icons/$(get_layout_icon_name()).png");
}
public void load_images () {
this.load_program_icon();
this.numpad_width = int.parse(this.config.get("numpad_width"));
this.function_keys_height = int.parse(this.config.get("function_keys_height"));
@ -631,7 +669,7 @@ namespace NeoLayoutViewer {
int old_mod_state;
if (keyboard) {
//Keypress or Release of shift etc.
old_mod_state = this.active_modifier_by_keyboard[mod_index];
old_mod_state = this.active_modifier_by_keyboard[mod_index];
this.active_modifier_by_keyboard[mod_index] = MODIFIER_KEYBOARD_MOUSE_MAP[
old_mod_state,
this.active_modifier_by_mouse[mod_index],


Loading…
Cancel
Save