Search for an xkb keymap in the resources
This commit is contained in:
		
							
								
								
									
										308
									
								
								data/keyboards/keymaps/nb.xkb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										308
									
								
								data/keyboards/keymaps/nb.xkb
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,308 @@
 | 
				
			|||||||
 | 
					xkb_keymap {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    xkb_keycodes "squeekboard" {
 | 
				
			||||||
 | 
					        minimum = 8;
 | 
				
			||||||
 | 
					        maximum = 255;
 | 
				
			||||||
 | 
					        <ESC>                = 9;
 | 
				
			||||||
 | 
					        <AE01>               = 10;
 | 
				
			||||||
 | 
					        <AE02>               = 11;
 | 
				
			||||||
 | 
					        <AE03>               = 12;
 | 
				
			||||||
 | 
					        <AE04>               = 13;
 | 
				
			||||||
 | 
					        <AE05>               = 14;
 | 
				
			||||||
 | 
					        <AE06>               = 15;
 | 
				
			||||||
 | 
					        <AE07>               = 16;
 | 
				
			||||||
 | 
					        <AE08>               = 17;
 | 
				
			||||||
 | 
					        <AE09>               = 18;
 | 
				
			||||||
 | 
					        <AE10>               = 19;
 | 
				
			||||||
 | 
					        <AE11>               = 20;
 | 
				
			||||||
 | 
					        <AE12>               = 21;
 | 
				
			||||||
 | 
					        <BKSP>               = 22;
 | 
				
			||||||
 | 
					        <TAB>                = 23;
 | 
				
			||||||
 | 
					        <AD01>               = 24;
 | 
				
			||||||
 | 
					        <AD02>               = 25;
 | 
				
			||||||
 | 
					        <AD03>               = 26;
 | 
				
			||||||
 | 
					        <AD04>               = 27;
 | 
				
			||||||
 | 
					        <AD05>               = 28;
 | 
				
			||||||
 | 
					        <AD06>               = 29;
 | 
				
			||||||
 | 
					        <AD07>               = 30;
 | 
				
			||||||
 | 
					        <AD08>               = 31;
 | 
				
			||||||
 | 
					        <AD09>               = 32;
 | 
				
			||||||
 | 
					        <AD10>               = 33;
 | 
				
			||||||
 | 
					        <AD11>               = 34;
 | 
				
			||||||
 | 
					        <AD12>               = 35;
 | 
				
			||||||
 | 
					        <RTRN>               = 36;
 | 
				
			||||||
 | 
					        <LCTL>               = 37;
 | 
				
			||||||
 | 
					        <AC01>               = 38;
 | 
				
			||||||
 | 
					        <AC02>               = 39;
 | 
				
			||||||
 | 
					        <AC03>               = 40;
 | 
				
			||||||
 | 
					        <AC04>               = 41;
 | 
				
			||||||
 | 
					        <AC05>               = 42;
 | 
				
			||||||
 | 
					        <AC06>               = 43;
 | 
				
			||||||
 | 
					        <AC07>               = 44;
 | 
				
			||||||
 | 
					        <AC08>               = 45;
 | 
				
			||||||
 | 
					        <AC09>               = 46;
 | 
				
			||||||
 | 
					        <AC10>               = 47;
 | 
				
			||||||
 | 
					        <AC11>               = 48;
 | 
				
			||||||
 | 
					        <TLDE>               = 49;
 | 
				
			||||||
 | 
					        <LFSH>               = 50;
 | 
				
			||||||
 | 
					        <BKSL>               = 51;
 | 
				
			||||||
 | 
					        <AB01>               = 52;
 | 
				
			||||||
 | 
					        <AB02>               = 53;
 | 
				
			||||||
 | 
					        <AB03>               = 54;
 | 
				
			||||||
 | 
					        <AB04>               = 55;
 | 
				
			||||||
 | 
					        <AB05>               = 56;
 | 
				
			||||||
 | 
					        <AB06>               = 57;
 | 
				
			||||||
 | 
					        <AB07>               = 58;
 | 
				
			||||||
 | 
					        <AB08>               = 59;
 | 
				
			||||||
 | 
					        <AB09>               = 60;
 | 
				
			||||||
 | 
					        <AB10>               = 61;
 | 
				
			||||||
 | 
					        <RTSH>               = 62;
 | 
				
			||||||
 | 
					        <KPMU>               = 63;
 | 
				
			||||||
 | 
					        <LALT>               = 64;
 | 
				
			||||||
 | 
					        <SPCE>               = 65;
 | 
				
			||||||
 | 
					        <CAPS>               = 66;
 | 
				
			||||||
 | 
					        <FK01>               = 67;
 | 
				
			||||||
 | 
					        <FK02>               = 68;
 | 
				
			||||||
 | 
					        <FK03>               = 69;
 | 
				
			||||||
 | 
					        <FK04>               = 70;
 | 
				
			||||||
 | 
					        <FK05>               = 71;
 | 
				
			||||||
 | 
					        <FK06>               = 72;
 | 
				
			||||||
 | 
					        <FK07>               = 73;
 | 
				
			||||||
 | 
					        <FK08>               = 74;
 | 
				
			||||||
 | 
					        <FK09>               = 75;
 | 
				
			||||||
 | 
					        <FK10>               = 76;
 | 
				
			||||||
 | 
					        <NMLK>               = 77;
 | 
				
			||||||
 | 
					        <SCLK>               = 78;
 | 
				
			||||||
 | 
					        <KP7>                = 79;
 | 
				
			||||||
 | 
					        <KP8>                = 80;
 | 
				
			||||||
 | 
					        <KP9>                = 81;
 | 
				
			||||||
 | 
					        <KPSU>               = 82;
 | 
				
			||||||
 | 
					        <KP4>                = 83;
 | 
				
			||||||
 | 
					        <KP5>                = 84;
 | 
				
			||||||
 | 
					        <KP6>                = 85;
 | 
				
			||||||
 | 
					        <KPAD>               = 86;
 | 
				
			||||||
 | 
					        <KP1>                = 87;
 | 
				
			||||||
 | 
					        <KP2>                = 88;
 | 
				
			||||||
 | 
					        <KP3>                = 89;
 | 
				
			||||||
 | 
					        <KP0>                = 90;
 | 
				
			||||||
 | 
					        <KPDL>               = 91;
 | 
				
			||||||
 | 
					        <LVL3>               = 92;
 | 
				
			||||||
 | 
					        <LSGT>               = 94;
 | 
				
			||||||
 | 
					        <FK11>               = 95;
 | 
				
			||||||
 | 
					        <FK12>               = 96;
 | 
				
			||||||
 | 
					        <AB11>               = 97;
 | 
				
			||||||
 | 
					        <KATA>               = 98;
 | 
				
			||||||
 | 
					        <HIRA>               = 99;
 | 
				
			||||||
 | 
					        <HENK>               = 100;
 | 
				
			||||||
 | 
					        <HKTG>               = 101;
 | 
				
			||||||
 | 
					        <MUHE>               = 102;
 | 
				
			||||||
 | 
					        <JPCM>               = 103;
 | 
				
			||||||
 | 
					        <KPEN>               = 104;
 | 
				
			||||||
 | 
					        <RCTL>               = 105;
 | 
				
			||||||
 | 
					        <KPDV>               = 106;
 | 
				
			||||||
 | 
					        <PRSC>               = 107;
 | 
				
			||||||
 | 
					        <RALT>               = 108;
 | 
				
			||||||
 | 
					        <LNFD>               = 109;
 | 
				
			||||||
 | 
					        <HOME>               = 110;
 | 
				
			||||||
 | 
					        <UP>                 = 111;
 | 
				
			||||||
 | 
					        <PGUP>               = 112;
 | 
				
			||||||
 | 
					        <LEFT>               = 113;
 | 
				
			||||||
 | 
					        <RGHT>               = 114;
 | 
				
			||||||
 | 
					        <END>                = 115;
 | 
				
			||||||
 | 
					        <DOWN>               = 116;
 | 
				
			||||||
 | 
					        <PGDN>               = 117;
 | 
				
			||||||
 | 
					        <INS>                = 118;
 | 
				
			||||||
 | 
					        <DELE>               = 119;
 | 
				
			||||||
 | 
					        <I120>               = 120;
 | 
				
			||||||
 | 
					        <MUTE>               = 121;
 | 
				
			||||||
 | 
					        <VOL->               = 122;
 | 
				
			||||||
 | 
					        <VOL+>               = 123;
 | 
				
			||||||
 | 
					        <POWR>               = 124;
 | 
				
			||||||
 | 
					        <KPEQ>               = 125;
 | 
				
			||||||
 | 
					        <I126>               = 126;
 | 
				
			||||||
 | 
					        <PAUS>               = 127;
 | 
				
			||||||
 | 
					        <I128>               = 128;
 | 
				
			||||||
 | 
					        <I129>               = 129;
 | 
				
			||||||
 | 
					        <HNGL>               = 130;
 | 
				
			||||||
 | 
					        <HJCV>               = 131;
 | 
				
			||||||
 | 
					        <AE13>               = 132;
 | 
				
			||||||
 | 
					        <LWIN>               = 133;
 | 
				
			||||||
 | 
					        <RWIN>               = 134;
 | 
				
			||||||
 | 
					        <COMP>               = 135;
 | 
				
			||||||
 | 
					        <STOP>               = 136;
 | 
				
			||||||
 | 
					        <AGAI>               = 137;
 | 
				
			||||||
 | 
					        <PROP>               = 138;
 | 
				
			||||||
 | 
					        <UNDO>               = 139;
 | 
				
			||||||
 | 
					        <FRNT>               = 140;
 | 
				
			||||||
 | 
					        <COPY>               = 141;
 | 
				
			||||||
 | 
					        <OPEN>               = 142;
 | 
				
			||||||
 | 
					        <PAST>               = 143;
 | 
				
			||||||
 | 
					        <FIND>               = 144;
 | 
				
			||||||
 | 
					        <CUT>                = 145;
 | 
				
			||||||
 | 
					        <HELP>               = 146;
 | 
				
			||||||
 | 
					        <I147>               = 147;
 | 
				
			||||||
 | 
					        <I148>               = 148;
 | 
				
			||||||
 | 
					        <I149>               = 149;
 | 
				
			||||||
 | 
					        <I150>               = 150;
 | 
				
			||||||
 | 
					        <I151>               = 151;
 | 
				
			||||||
 | 
					        <I152>               = 152;
 | 
				
			||||||
 | 
					        <I153>               = 153;
 | 
				
			||||||
 | 
					        <I154>               = 154;
 | 
				
			||||||
 | 
					        <I155>               = 155;
 | 
				
			||||||
 | 
					        <I156>               = 156;
 | 
				
			||||||
 | 
					        <I157>               = 157;
 | 
				
			||||||
 | 
					        <I158>               = 158;
 | 
				
			||||||
 | 
					        <I159>               = 159;
 | 
				
			||||||
 | 
					        <I160>               = 160;
 | 
				
			||||||
 | 
					        <I161>               = 161;
 | 
				
			||||||
 | 
					        <I162>               = 162;
 | 
				
			||||||
 | 
					        <I163>               = 163;
 | 
				
			||||||
 | 
					        <I164>               = 164;
 | 
				
			||||||
 | 
					        <I165>               = 165;
 | 
				
			||||||
 | 
					        <I166>               = 166;
 | 
				
			||||||
 | 
					        <I167>               = 167;
 | 
				
			||||||
 | 
					        <I168>               = 168;
 | 
				
			||||||
 | 
					        <I169>               = 169;
 | 
				
			||||||
 | 
					        <I170>               = 170;
 | 
				
			||||||
 | 
					        <I171>               = 171;
 | 
				
			||||||
 | 
					        <I172>               = 172;
 | 
				
			||||||
 | 
					        <I173>               = 173;
 | 
				
			||||||
 | 
					        <I174>               = 174;
 | 
				
			||||||
 | 
					        <I175>               = 175;
 | 
				
			||||||
 | 
					        <I176>               = 176;
 | 
				
			||||||
 | 
					        <I177>               = 177;
 | 
				
			||||||
 | 
					        <I178>               = 178;
 | 
				
			||||||
 | 
					        <I179>               = 179;
 | 
				
			||||||
 | 
					        <I180>               = 180;
 | 
				
			||||||
 | 
					        <I181>               = 181;
 | 
				
			||||||
 | 
					        <I182>               = 182;
 | 
				
			||||||
 | 
					        <I183>               = 183;
 | 
				
			||||||
 | 
					        <I184>               = 184;
 | 
				
			||||||
 | 
					        <I185>               = 185;
 | 
				
			||||||
 | 
					        <I186>               = 186;
 | 
				
			||||||
 | 
					        <I187>               = 187;
 | 
				
			||||||
 | 
					        <I188>               = 188;
 | 
				
			||||||
 | 
					        <I189>               = 189;
 | 
				
			||||||
 | 
					        <I190>               = 190;
 | 
				
			||||||
 | 
					        <FK13>               = 191;
 | 
				
			||||||
 | 
					        <FK14>               = 192;
 | 
				
			||||||
 | 
					        <FK15>               = 193;
 | 
				
			||||||
 | 
					        <FK16>               = 194;
 | 
				
			||||||
 | 
					        <FK17>               = 195;
 | 
				
			||||||
 | 
					        <FK18>               = 196;
 | 
				
			||||||
 | 
					        <FK19>               = 197;
 | 
				
			||||||
 | 
					        <FK20>               = 198;
 | 
				
			||||||
 | 
					        <FK21>               = 199;
 | 
				
			||||||
 | 
					        <FK22>               = 200;
 | 
				
			||||||
 | 
					        <FK23>               = 201;
 | 
				
			||||||
 | 
					        <FK24>               = 202;
 | 
				
			||||||
 | 
					        <MDSW>               = 203;
 | 
				
			||||||
 | 
					        <ALT>                = 204;
 | 
				
			||||||
 | 
					        <META>               = 205;
 | 
				
			||||||
 | 
					        <SUPR>               = 206;
 | 
				
			||||||
 | 
					        <HYPR>               = 207;
 | 
				
			||||||
 | 
					        <I208>               = 208;
 | 
				
			||||||
 | 
					        <I209>               = 209;
 | 
				
			||||||
 | 
					        <I210>               = 210;
 | 
				
			||||||
 | 
					        <I211>               = 211;
 | 
				
			||||||
 | 
					        <I212>               = 212;
 | 
				
			||||||
 | 
					        <I213>               = 213;
 | 
				
			||||||
 | 
					        <I214>               = 214;
 | 
				
			||||||
 | 
					        <I215>               = 215;
 | 
				
			||||||
 | 
					        <I216>               = 216;
 | 
				
			||||||
 | 
					        <I217>               = 217;
 | 
				
			||||||
 | 
					        <I218>               = 218;
 | 
				
			||||||
 | 
					        <I219>               = 219;
 | 
				
			||||||
 | 
					        <I220>               = 220;
 | 
				
			||||||
 | 
					        <I221>               = 221;
 | 
				
			||||||
 | 
					        <I222>               = 222;
 | 
				
			||||||
 | 
					        <I223>               = 223;
 | 
				
			||||||
 | 
					        <I224>               = 224;
 | 
				
			||||||
 | 
					        <I225>               = 225;
 | 
				
			||||||
 | 
					        <I226>               = 226;
 | 
				
			||||||
 | 
					        <I227>               = 227;
 | 
				
			||||||
 | 
					        <I228>               = 228;
 | 
				
			||||||
 | 
					        <I229>               = 229;
 | 
				
			||||||
 | 
					        <I230>               = 230;
 | 
				
			||||||
 | 
					        <I231>               = 231;
 | 
				
			||||||
 | 
					        <I232>               = 232;
 | 
				
			||||||
 | 
					        <I233>               = 233;
 | 
				
			||||||
 | 
					        <I234>               = 234;
 | 
				
			||||||
 | 
					        <I235>               = 235;
 | 
				
			||||||
 | 
					        <I236>               = 236;
 | 
				
			||||||
 | 
					        <I237>               = 237;
 | 
				
			||||||
 | 
					        <I238>               = 238;
 | 
				
			||||||
 | 
					        <I239>               = 239;
 | 
				
			||||||
 | 
					        <I240>               = 240;
 | 
				
			||||||
 | 
					        <I241>               = 241;
 | 
				
			||||||
 | 
					        <I242>               = 242;
 | 
				
			||||||
 | 
					        <I243>               = 243;
 | 
				
			||||||
 | 
					        <I244>               = 244;
 | 
				
			||||||
 | 
					        <I245>               = 245;
 | 
				
			||||||
 | 
					        <I246>               = 246;
 | 
				
			||||||
 | 
					        <I247>               = 247;
 | 
				
			||||||
 | 
					        <I248>               = 248;
 | 
				
			||||||
 | 
					        <I249>               = 249;
 | 
				
			||||||
 | 
					        <I250>               = 250;
 | 
				
			||||||
 | 
					        <I251>               = 251;
 | 
				
			||||||
 | 
					        <I252>               = 252;
 | 
				
			||||||
 | 
					        <I253>               = 253;
 | 
				
			||||||
 | 
					        <I254>               = 254;
 | 
				
			||||||
 | 
					        <I255>               = 255;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    xkb_symbols "squeekboard" {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        name[Group1] = "Letters";
 | 
				
			||||||
 | 
					        name[Group2] = "Numbers/Symbols";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        key <AD01> { [ q, Q ], [ 1, asciitilde ] };
 | 
				
			||||||
 | 
					        key <AD02> { [ w, W ], [ 2, quoteleft ] };
 | 
				
			||||||
 | 
					        key <AD03> { [ e, E ], [ 3, bar ] };
 | 
				
			||||||
 | 
					        key <AD04> { [ r, R ], [ 4, U00B7 ] };
 | 
				
			||||||
 | 
					        key <AD05> { [ t, T ], [ 5, squareroot ] };
 | 
				
			||||||
 | 
					        key <AD06> { [ y, Y ], [ 6, Greek_pi ] };
 | 
				
			||||||
 | 
					        key <AD07> { [ u, U ], [ 7, division ] };
 | 
				
			||||||
 | 
					        key <AD08> { [ i, I ], [ 8, multiply ] };
 | 
				
			||||||
 | 
					        key <AD09> { [ o, O ], [ 9, paragraph ] };
 | 
				
			||||||
 | 
					        key <AD10> { [ p, P ], [ 0, U25B3 ] };
 | 
				
			||||||
 | 
					        key <AD11> { [ aring, Aring ], [ U00B1, U00A7 ] };
 | 
				
			||||||
 | 
					        key <AC01> { [ a, A ], [ at, copyright ] };
 | 
				
			||||||
 | 
					        key <AC02> { [ s, S ], [ numbersign, U00AE ] };
 | 
				
			||||||
 | 
					        key <AC03> { [ d, D ], [ dollar, U00A3 ] };
 | 
				
			||||||
 | 
					        key <AC04> { [ f, F ], [ percent, EuroSign ] };
 | 
				
			||||||
 | 
					        key <AC05> { [ g, G ], [ ampersand, U00A5 ] };
 | 
				
			||||||
 | 
					        key <AC06> { [ h, H ], [ minus, underscore ] };
 | 
				
			||||||
 | 
					        key <AC07> { [ j, J ], [ plus, equal ] };
 | 
				
			||||||
 | 
					        key <AC08> { [ k, K ], [ U00FC, asciicircum ] };
 | 
				
			||||||
 | 
					        key <AC09> { [ l, L ], [ U00F6, degree ] };
 | 
				
			||||||
 | 
					        key <AC10> { [ oslash, Oslash ], [ parenleft, braceleft ] };
 | 
				
			||||||
 | 
					        key <AC11> { [ ae, AE ], [ parenright, braceright ] };
 | 
				
			||||||
 | 
					        key <RTRN> { [ Return, Return ], [ Return, Return ] };
 | 
				
			||||||
 | 
					        key <LFSH> { [ Shift_L, Shift_L ], [ Shift_L, Shift_L ] };
 | 
				
			||||||
 | 
					        key <AB01> { [ z, Z ], [ comma, backslash ] };
 | 
				
			||||||
 | 
					        key <AB02> { [ x, X ], [ quotedbl, slash ] };
 | 
				
			||||||
 | 
					        key <AB03> { [ c, C ], [ quoteright, less ] };
 | 
				
			||||||
 | 
					        key <AB04> { [ v, V ], [ colon, greater ] };
 | 
				
			||||||
 | 
					        key <AB05> { [ b, B ], [ semicolon, equal ] };
 | 
				
			||||||
 | 
					        key <AB06> { [ n, N ], [ exclam, bracketleft ] };
 | 
				
			||||||
 | 
					        key <AB07> { [ m, M ], [ question, bracketright ] };
 | 
				
			||||||
 | 
					        key <AB08> { [ period, period ], [ period, period ] };
 | 
				
			||||||
 | 
					        key <I149> { [ preferences, preferences ], [ preferences, preferences ] };
 | 
				
			||||||
 | 
					        key <SPCE> { [ space, space ], [ space, space ] };
 | 
				
			||||||
 | 
					        key <BKSP> { [ BackSpace, BackSpace ], [ BackSpace, BackSpace ] };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    xkb_types "squeekboard" {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						type "TWO_LEVEL" {
 | 
				
			||||||
 | 
					            modifiers = Shift;
 | 
				
			||||||
 | 
					            map[Shift] = Level2;
 | 
				
			||||||
 | 
					            level_name[Level1] = "Base";
 | 
				
			||||||
 | 
					            level_name[Level2] = "Shift";
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    xkb_compatibility "squeekboard" {
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@ -5,6 +5,7 @@
 | 
				
			|||||||
   <file compressed="true" preprocess="xml-stripblanks">keyboards/geometry/compact.xml</file>
 | 
					   <file compressed="true" preprocess="xml-stripblanks">keyboards/geometry/compact.xml</file>
 | 
				
			||||||
   <file compressed="true" preprocess="xml-stripblanks">keyboards/geometry/extended.xml</file>
 | 
					   <file compressed="true" preprocess="xml-stripblanks">keyboards/geometry/extended.xml</file>
 | 
				
			||||||
   <file compressed="true" preprocess="xml-stripblanks">keyboards/keyboards.xml</file>
 | 
					   <file compressed="true" preprocess="xml-stripblanks">keyboards/keyboards.xml</file>
 | 
				
			||||||
 | 
					   <file compressed="true">keyboards/keymaps/nb.xkb</file>
 | 
				
			||||||
   <file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/ar.xml</file>
 | 
					   <file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/ar.xml</file>
 | 
				
			||||||
   <file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/as-inscript.xml</file>
 | 
					   <file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/as-inscript.xml</file>
 | 
				
			||||||
   <file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/be.xml</file>
 | 
					   <file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/be.xml</file>
 | 
				
			||||||
 | 
				
			|||||||
@ -86,6 +86,48 @@ struct _EekboardContextServicePrivate {
 | 
				
			|||||||
G_DEFINE_TYPE_WITH_PRIVATE (EekboardContextService, eekboard_context_service, G_TYPE_OBJECT);
 | 
					G_DEFINE_TYPE_WITH_PRIVATE (EekboardContextService, eekboard_context_service, G_TYPE_OBJECT);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*static Display *display = NULL; */
 | 
					/*static Display *display = NULL; */
 | 
				
			||||||
 | 
					gchar *
 | 
				
			||||||
 | 
					get_keymap_from_resource(const gchar *keyboard_type)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    g_autoptr (GFile) file = NULL;
 | 
				
			||||||
 | 
					    g_autoptr (GFileInfo) info = NULL;
 | 
				
			||||||
 | 
					    g_autoptr (GFileInputStream) stream = NULL;
 | 
				
			||||||
 | 
					    goffset size = 0;
 | 
				
			||||||
 | 
					    gsize bytes_read = 0;
 | 
				
			||||||
 | 
					    g_autofree gchar *contents = NULL;
 | 
				
			||||||
 | 
					    g_autofree gchar *path = NULL;
 | 
				
			||||||
 | 
					    GError *error = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    path = g_strconcat ("resource:///sm/puri/squeekboard/keyboards/keymaps/",
 | 
				
			||||||
 | 
					                        keyboard_type, ".xkb", NULL);
 | 
				
			||||||
 | 
					    file = g_file_new_for_uri (path);
 | 
				
			||||||
 | 
					    stream = g_file_read (file, NULL, &error);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (!stream)
 | 
				
			||||||
 | 
					        goto keymap_error;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    info = g_file_input_stream_query_info (stream,
 | 
				
			||||||
 | 
					                                           G_FILE_ATTRIBUTE_STANDARD_SIZE,
 | 
				
			||||||
 | 
					                                           NULL,
 | 
				
			||||||
 | 
					                                           &error);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (!info)
 | 
				
			||||||
 | 
					        goto keymap_error;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    size = g_file_info_get_size (info);
 | 
				
			||||||
 | 
					    contents = g_malloc0 (size);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (!g_input_stream_read_all (G_INPUT_STREAM(stream), contents, size,
 | 
				
			||||||
 | 
					                                  &bytes_read, NULL, &error))
 | 
				
			||||||
 | 
					        goto keymap_error;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return g_utf8_make_valid (contents, -1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					keymap_error:
 | 
				
			||||||
 | 
					    g_error ("failed to load keymap from resource: %s", error->message);
 | 
				
			||||||
 | 
					    g_error_free (error);
 | 
				
			||||||
 | 
					    return NULL;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static EekKeyboard *
 | 
					static EekKeyboard *
 | 
				
			||||||
eekboard_context_service_real_create_keyboard (EekboardContextService *self,
 | 
					eekboard_context_service_real_create_keyboard (EekboardContextService *self,
 | 
				
			||||||
@ -146,11 +188,14 @@ eekboard_context_service_real_create_keyboard (EekboardContextService *self,
 | 
				
			|||||||
    if (!context) {
 | 
					    if (!context) {
 | 
				
			||||||
        g_error("No context created");
 | 
					        g_error("No context created");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
    struct xkb_rule_names rules = { 0 };
 | 
					    struct xkb_rule_names rules = { 0 };
 | 
				
			||||||
    rules.layout = strdup(keyboard_type);
 | 
					    rules.layout = strdup(keyboard_type);
 | 
				
			||||||
    struct xkb_keymap *keymap = xkb_keymap_new_from_string(context, default_keymap,
 | 
					*/
 | 
				
			||||||
 | 
					    struct xkb_keymap *keymap = xkb_keymap_new_from_string(context,
 | 
				
			||||||
 | 
					        get_keymap_from_resource(keyboard_type),
 | 
				
			||||||
        XKB_KEYMAP_FORMAT_TEXT_V1, XKB_KEYMAP_COMPILE_NO_FLAGS);
 | 
					        XKB_KEYMAP_FORMAT_TEXT_V1, XKB_KEYMAP_COMPILE_NO_FLAGS);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    xkb_context_unref(context);
 | 
					    xkb_context_unref(context);
 | 
				
			||||||
    if (!keymap) {
 | 
					    if (!keymap) {
 | 
				
			||||||
        g_error("Bad keymap");
 | 
					        g_error("Bad keymap");
 | 
				
			||||||
 | 
				
			|||||||
@ -6,312 +6,3 @@ squeek_keymap_get_entries_for_keyval (struct xkb_keymap     *xkb_keymap,
 | 
				
			|||||||
                                      guint          keyval,
 | 
					                                      guint          keyval,
 | 
				
			||||||
                                      GdkKeymapKey **keys,
 | 
					                                      GdkKeymapKey **keys,
 | 
				
			||||||
                                      guint          *n_keys);
 | 
					                                      guint          *n_keys);
 | 
				
			||||||
 | 
					 | 
				
			||||||
static const char default_keymap[] = "xkb_keymap {\
 | 
					 | 
				
			||||||
\
 | 
					 | 
				
			||||||
xkb_keycodes \"squeekboard\" {\
 | 
					 | 
				
			||||||
        minimum = 8;\
 | 
					 | 
				
			||||||
        maximum = 255;\
 | 
					 | 
				
			||||||
        <ESC>                = 9;\
 | 
					 | 
				
			||||||
        <AE01>               = 10;\
 | 
					 | 
				
			||||||
        <AE02>               = 11;\
 | 
					 | 
				
			||||||
        <AE03>               = 12;\
 | 
					 | 
				
			||||||
        <AE04>               = 13;\
 | 
					 | 
				
			||||||
        <AE05>               = 14;\
 | 
					 | 
				
			||||||
        <AE06>               = 15;\
 | 
					 | 
				
			||||||
        <AE07>               = 16;\
 | 
					 | 
				
			||||||
        <AE08>               = 17;\
 | 
					 | 
				
			||||||
        <AE09>               = 18;\
 | 
					 | 
				
			||||||
        <AE10>               = 19;\
 | 
					 | 
				
			||||||
        <AE11>               = 20;\
 | 
					 | 
				
			||||||
        <AE12>               = 21;\
 | 
					 | 
				
			||||||
        <BKSP>               = 22;\
 | 
					 | 
				
			||||||
        <TAB>                = 23;\
 | 
					 | 
				
			||||||
        <AD01>               = 24;\
 | 
					 | 
				
			||||||
        <AD02>               = 25;\
 | 
					 | 
				
			||||||
        <AD03>               = 26;\
 | 
					 | 
				
			||||||
        <AD04>               = 27;\
 | 
					 | 
				
			||||||
        <AD05>               = 28;\
 | 
					 | 
				
			||||||
        <AD06>               = 29;\
 | 
					 | 
				
			||||||
        <AD07>               = 30;\
 | 
					 | 
				
			||||||
        <AD08>               = 31;\
 | 
					 | 
				
			||||||
        <AD09>               = 32;\
 | 
					 | 
				
			||||||
        <AD10>               = 33;\
 | 
					 | 
				
			||||||
        <AD11>               = 34;\
 | 
					 | 
				
			||||||
        <AD12>               = 35;\
 | 
					 | 
				
			||||||
        <RTRN>               = 36;\
 | 
					 | 
				
			||||||
        <LCTL>               = 37;\
 | 
					 | 
				
			||||||
        <AC01>               = 38;\
 | 
					 | 
				
			||||||
        <AC02>               = 39;\
 | 
					 | 
				
			||||||
        <AC03>               = 40;\
 | 
					 | 
				
			||||||
        <AC04>               = 41;\
 | 
					 | 
				
			||||||
        <AC05>               = 42;\
 | 
					 | 
				
			||||||
        <AC06>               = 43;\
 | 
					 | 
				
			||||||
        <AC07>               = 44;\
 | 
					 | 
				
			||||||
        <AC08>               = 45;\
 | 
					 | 
				
			||||||
        <AC09>               = 46;\
 | 
					 | 
				
			||||||
        <AC10>               = 47;\
 | 
					 | 
				
			||||||
        <AC11>               = 48;\
 | 
					 | 
				
			||||||
        <TLDE>               = 49;\
 | 
					 | 
				
			||||||
        <LFSH>               = 50;\
 | 
					 | 
				
			||||||
        <BKSL>               = 51;\
 | 
					 | 
				
			||||||
        <AB01>               = 52;\
 | 
					 | 
				
			||||||
        <AB02>               = 53;\
 | 
					 | 
				
			||||||
        <AB03>               = 54;\
 | 
					 | 
				
			||||||
        <AB04>               = 55;\
 | 
					 | 
				
			||||||
        <AB05>               = 56;\
 | 
					 | 
				
			||||||
        <AB06>               = 57;\
 | 
					 | 
				
			||||||
        <AB07>               = 58;\
 | 
					 | 
				
			||||||
        <AB08>               = 59;\
 | 
					 | 
				
			||||||
        <AB09>               = 60;\
 | 
					 | 
				
			||||||
        <AB10>               = 61;\
 | 
					 | 
				
			||||||
        <RTSH>               = 62;\
 | 
					 | 
				
			||||||
        <KPMU>               = 63;\
 | 
					 | 
				
			||||||
        <LALT>               = 64;\
 | 
					 | 
				
			||||||
        <SPCE>               = 65;\
 | 
					 | 
				
			||||||
        <CAPS>               = 66;\
 | 
					 | 
				
			||||||
        <FK01>               = 67;\
 | 
					 | 
				
			||||||
        <FK02>               = 68;\
 | 
					 | 
				
			||||||
        <FK03>               = 69;\
 | 
					 | 
				
			||||||
        <FK04>               = 70;\
 | 
					 | 
				
			||||||
        <FK05>               = 71;\
 | 
					 | 
				
			||||||
        <FK06>               = 72;\
 | 
					 | 
				
			||||||
        <FK07>               = 73;\
 | 
					 | 
				
			||||||
        <FK08>               = 74;\
 | 
					 | 
				
			||||||
        <FK09>               = 75;\
 | 
					 | 
				
			||||||
        <FK10>               = 76;\
 | 
					 | 
				
			||||||
        <NMLK>               = 77;\
 | 
					 | 
				
			||||||
        <SCLK>               = 78;\
 | 
					 | 
				
			||||||
        <KP7>                = 79;\
 | 
					 | 
				
			||||||
        <KP8>                = 80;\
 | 
					 | 
				
			||||||
        <KP9>                = 81;\
 | 
					 | 
				
			||||||
        <KPSU>               = 82;\
 | 
					 | 
				
			||||||
        <KP4>                = 83;\
 | 
					 | 
				
			||||||
        <KP5>                = 84;\
 | 
					 | 
				
			||||||
        <KP6>                = 85;\
 | 
					 | 
				
			||||||
        <KPAD>               = 86;\
 | 
					 | 
				
			||||||
        <KP1>                = 87;\
 | 
					 | 
				
			||||||
        <KP2>                = 88;\
 | 
					 | 
				
			||||||
        <KP3>                = 89;\
 | 
					 | 
				
			||||||
        <KP0>                = 90;\
 | 
					 | 
				
			||||||
        <KPDL>               = 91;\
 | 
					 | 
				
			||||||
        <LVL3>               = 92;\
 | 
					 | 
				
			||||||
        <LSGT>               = 94;\
 | 
					 | 
				
			||||||
        <FK11>               = 95;\
 | 
					 | 
				
			||||||
        <FK12>               = 96;\
 | 
					 | 
				
			||||||
        <AB11>               = 97;\
 | 
					 | 
				
			||||||
        <KATA>               = 98;\
 | 
					 | 
				
			||||||
        <HIRA>               = 99;\
 | 
					 | 
				
			||||||
        <HENK>               = 100;\
 | 
					 | 
				
			||||||
        <HKTG>               = 101;\
 | 
					 | 
				
			||||||
        <MUHE>               = 102;\
 | 
					 | 
				
			||||||
        <JPCM>               = 103;\
 | 
					 | 
				
			||||||
        <KPEN>               = 104;\
 | 
					 | 
				
			||||||
        <RCTL>               = 105;\
 | 
					 | 
				
			||||||
        <KPDV>               = 106;\
 | 
					 | 
				
			||||||
        <PRSC>               = 107;\
 | 
					 | 
				
			||||||
        <RALT>               = 108;\
 | 
					 | 
				
			||||||
        <LNFD>               = 109;\
 | 
					 | 
				
			||||||
        <HOME>               = 110;\
 | 
					 | 
				
			||||||
        <UP>                 = 111;\
 | 
					 | 
				
			||||||
        <PGUP>               = 112;\
 | 
					 | 
				
			||||||
        <LEFT>               = 113;\
 | 
					 | 
				
			||||||
        <RGHT>               = 114;\
 | 
					 | 
				
			||||||
        <END>                = 115;\
 | 
					 | 
				
			||||||
        <DOWN>               = 116;\
 | 
					 | 
				
			||||||
        <PGDN>               = 117;\
 | 
					 | 
				
			||||||
        <INS>                = 118;\
 | 
					 | 
				
			||||||
        <DELE>               = 119;\
 | 
					 | 
				
			||||||
        <I120>               = 120;\
 | 
					 | 
				
			||||||
        <MUTE>               = 121;\
 | 
					 | 
				
			||||||
        <VOL->               = 122;\
 | 
					 | 
				
			||||||
        <VOL+>               = 123;\
 | 
					 | 
				
			||||||
        <POWR>               = 124;\
 | 
					 | 
				
			||||||
        <KPEQ>               = 125;\
 | 
					 | 
				
			||||||
        <I126>               = 126;\
 | 
					 | 
				
			||||||
        <PAUS>               = 127;\
 | 
					 | 
				
			||||||
        <I128>               = 128;\
 | 
					 | 
				
			||||||
        <I129>               = 129;\
 | 
					 | 
				
			||||||
        <HNGL>               = 130;\
 | 
					 | 
				
			||||||
        <HJCV>               = 131;\
 | 
					 | 
				
			||||||
        <AE13>               = 132;\
 | 
					 | 
				
			||||||
        <LWIN>               = 133;\
 | 
					 | 
				
			||||||
        <RWIN>               = 134;\
 | 
					 | 
				
			||||||
        <COMP>               = 135;\
 | 
					 | 
				
			||||||
        <STOP>               = 136;\
 | 
					 | 
				
			||||||
        <AGAI>               = 137;\
 | 
					 | 
				
			||||||
        <PROP>               = 138;\
 | 
					 | 
				
			||||||
        <UNDO>               = 139;\
 | 
					 | 
				
			||||||
        <FRNT>               = 140;\
 | 
					 | 
				
			||||||
        <COPY>               = 141;\
 | 
					 | 
				
			||||||
        <OPEN>               = 142;\
 | 
					 | 
				
			||||||
        <PAST>               = 143;\
 | 
					 | 
				
			||||||
        <FIND>               = 144;\
 | 
					 | 
				
			||||||
        <CUT>                = 145;\
 | 
					 | 
				
			||||||
        <HELP>               = 146;\
 | 
					 | 
				
			||||||
        <I147>               = 147;\
 | 
					 | 
				
			||||||
        <I148>               = 148;\
 | 
					 | 
				
			||||||
        <I149>               = 149;\
 | 
					 | 
				
			||||||
        <I150>               = 150;\
 | 
					 | 
				
			||||||
        <I151>               = 151;\
 | 
					 | 
				
			||||||
        <I152>               = 152;\
 | 
					 | 
				
			||||||
        <I153>               = 153;\
 | 
					 | 
				
			||||||
        <I154>               = 154;\
 | 
					 | 
				
			||||||
        <I155>               = 155;\
 | 
					 | 
				
			||||||
        <I156>               = 156;\
 | 
					 | 
				
			||||||
        <I157>               = 157;\
 | 
					 | 
				
			||||||
        <I158>               = 158;\
 | 
					 | 
				
			||||||
        <I159>               = 159;\
 | 
					 | 
				
			||||||
        <I160>               = 160;\
 | 
					 | 
				
			||||||
        <I161>               = 161;\
 | 
					 | 
				
			||||||
        <I162>               = 162;\
 | 
					 | 
				
			||||||
        <I163>               = 163;\
 | 
					 | 
				
			||||||
        <I164>               = 164;\
 | 
					 | 
				
			||||||
        <I165>               = 165;\
 | 
					 | 
				
			||||||
        <I166>               = 166;\
 | 
					 | 
				
			||||||
        <I167>               = 167;\
 | 
					 | 
				
			||||||
        <I168>               = 168;\
 | 
					 | 
				
			||||||
        <I169>               = 169;\
 | 
					 | 
				
			||||||
        <I170>               = 170;\
 | 
					 | 
				
			||||||
        <I171>               = 171;\
 | 
					 | 
				
			||||||
        <I172>               = 172;\
 | 
					 | 
				
			||||||
        <I173>               = 173;\
 | 
					 | 
				
			||||||
        <I174>               = 174;\
 | 
					 | 
				
			||||||
        <I175>               = 175;\
 | 
					 | 
				
			||||||
        <I176>               = 176;\
 | 
					 | 
				
			||||||
        <I177>               = 177;\
 | 
					 | 
				
			||||||
        <I178>               = 178;\
 | 
					 | 
				
			||||||
        <I179>               = 179;\
 | 
					 | 
				
			||||||
        <I180>               = 180;\
 | 
					 | 
				
			||||||
        <I181>               = 181;\
 | 
					 | 
				
			||||||
        <I182>               = 182;\
 | 
					 | 
				
			||||||
        <I183>               = 183;\
 | 
					 | 
				
			||||||
        <I184>               = 184;\
 | 
					 | 
				
			||||||
        <I185>               = 185;\
 | 
					 | 
				
			||||||
        <I186>               = 186;\
 | 
					 | 
				
			||||||
        <I187>               = 187;\
 | 
					 | 
				
			||||||
        <I188>               = 188;\
 | 
					 | 
				
			||||||
        <I189>               = 189;\
 | 
					 | 
				
			||||||
        <I190>               = 190;\
 | 
					 | 
				
			||||||
        <FK13>               = 191;\
 | 
					 | 
				
			||||||
        <FK14>               = 192;\
 | 
					 | 
				
			||||||
        <FK15>               = 193;\
 | 
					 | 
				
			||||||
        <FK16>               = 194;\
 | 
					 | 
				
			||||||
        <FK17>               = 195;\
 | 
					 | 
				
			||||||
        <FK18>               = 196;\
 | 
					 | 
				
			||||||
        <FK19>               = 197;\
 | 
					 | 
				
			||||||
        <FK20>               = 198;\
 | 
					 | 
				
			||||||
        <FK21>               = 199;\
 | 
					 | 
				
			||||||
        <FK22>               = 200;\
 | 
					 | 
				
			||||||
        <FK23>               = 201;\
 | 
					 | 
				
			||||||
        <FK24>               = 202;\
 | 
					 | 
				
			||||||
        <MDSW>               = 203;\
 | 
					 | 
				
			||||||
        <ALT>                = 204;\
 | 
					 | 
				
			||||||
        <META>               = 205;\
 | 
					 | 
				
			||||||
        <SUPR>               = 206;\
 | 
					 | 
				
			||||||
        <HYPR>               = 207;\
 | 
					 | 
				
			||||||
        <I208>               = 208;\
 | 
					 | 
				
			||||||
        <I209>               = 209;\
 | 
					 | 
				
			||||||
        <I210>               = 210;\
 | 
					 | 
				
			||||||
        <I211>               = 211;\
 | 
					 | 
				
			||||||
        <I212>               = 212;\
 | 
					 | 
				
			||||||
        <I213>               = 213;\
 | 
					 | 
				
			||||||
        <I214>               = 214;\
 | 
					 | 
				
			||||||
        <I215>               = 215;\
 | 
					 | 
				
			||||||
        <I216>               = 216;\
 | 
					 | 
				
			||||||
        <I217>               = 217;\
 | 
					 | 
				
			||||||
        <I218>               = 218;\
 | 
					 | 
				
			||||||
        <I219>               = 219;\
 | 
					 | 
				
			||||||
        <I220>               = 220;\
 | 
					 | 
				
			||||||
        <I221>               = 221;\
 | 
					 | 
				
			||||||
        <I222>               = 222;\
 | 
					 | 
				
			||||||
        <I223>               = 223;\
 | 
					 | 
				
			||||||
        <I224>               = 224;\
 | 
					 | 
				
			||||||
        <I225>               = 225;\
 | 
					 | 
				
			||||||
        <I226>               = 226;\
 | 
					 | 
				
			||||||
        <I227>               = 227;\
 | 
					 | 
				
			||||||
        <I228>               = 228;\
 | 
					 | 
				
			||||||
        <I229>               = 229;\
 | 
					 | 
				
			||||||
        <I230>               = 230;\
 | 
					 | 
				
			||||||
        <I231>               = 231;\
 | 
					 | 
				
			||||||
        <I232>               = 232;\
 | 
					 | 
				
			||||||
        <I233>               = 233;\
 | 
					 | 
				
			||||||
        <I234>               = 234;\
 | 
					 | 
				
			||||||
        <I235>               = 235;\
 | 
					 | 
				
			||||||
        <I236>               = 236;\
 | 
					 | 
				
			||||||
        <I237>               = 237;\
 | 
					 | 
				
			||||||
        <I238>               = 238;\
 | 
					 | 
				
			||||||
        <I239>               = 239;\
 | 
					 | 
				
			||||||
        <I240>               = 240;\
 | 
					 | 
				
			||||||
        <I241>               = 241;\
 | 
					 | 
				
			||||||
        <I242>               = 242;\
 | 
					 | 
				
			||||||
        <I243>               = 243;\
 | 
					 | 
				
			||||||
        <I244>               = 244;\
 | 
					 | 
				
			||||||
        <I245>               = 245;\
 | 
					 | 
				
			||||||
        <I246>               = 246;\
 | 
					 | 
				
			||||||
        <I247>               = 247;\
 | 
					 | 
				
			||||||
        <I248>               = 248;\
 | 
					 | 
				
			||||||
        <I249>               = 249;\
 | 
					 | 
				
			||||||
        <I250>               = 250;\
 | 
					 | 
				
			||||||
        <I251>               = 251;\
 | 
					 | 
				
			||||||
        <I252>               = 252;\
 | 
					 | 
				
			||||||
        <I253>               = 253;\
 | 
					 | 
				
			||||||
        <I254>               = 254;\
 | 
					 | 
				
			||||||
        <I255>               = 255;\
 | 
					 | 
				
			||||||
    };\
 | 
					 | 
				
			||||||
\
 | 
					 | 
				
			||||||
    xkb_symbols \"squeekboard\" {\
 | 
					 | 
				
			||||||
\
 | 
					 | 
				
			||||||
        name[Group1] = \"Letters\";\
 | 
					 | 
				
			||||||
        name[Group2] = \"Numbers/Symbols\";\
 | 
					 | 
				
			||||||
\
 | 
					 | 
				
			||||||
    key <AD01> { [ q, Q ], [ 1, asciitilde ] };\
 | 
					 | 
				
			||||||
    key <AD02> { [ w, W ], [ 2, quoteleft ] };\
 | 
					 | 
				
			||||||
    key <AD03> { [ e, E ], [ 3, bar ] };\
 | 
					 | 
				
			||||||
    key <AD04> { [ r, R ], [ 4, U00B7 ] };\
 | 
					 | 
				
			||||||
    key <AD05> { [ t, T ], [ 5, squareroot ] };\
 | 
					 | 
				
			||||||
    key <AD06> { [ y, Y ], [ 6, Greek_pi ] };\
 | 
					 | 
				
			||||||
    key <AD07> { [ u, U ], [ 7, division ] };\
 | 
					 | 
				
			||||||
    key <AD08> { [ i, I ], [ 8, multiply ] };\
 | 
					 | 
				
			||||||
    key <AD09> { [ o, O ], [ 9, paragraph ] };\
 | 
					 | 
				
			||||||
    key <AD10> { [ p, P ], [ 0, U25B3 ] };\
 | 
					 | 
				
			||||||
    key <AD11> { [ aring, Aring ], [ U00B1, U00A7 ] };\
 | 
					 | 
				
			||||||
    key <AC01> { [ a, A ], [ at, copyright ] };\
 | 
					 | 
				
			||||||
    key <AC02> { [ s, S ], [ numbersign, U00AE ] };\
 | 
					 | 
				
			||||||
    key <AC03> { [ d, D ], [ dollar, U00A3 ] };\
 | 
					 | 
				
			||||||
    key <AC04> { [ f, F ], [ percent, EuroSign ] };\
 | 
					 | 
				
			||||||
    key <AC05> { [ g, G ], [ ampersand, U00A5 ] };\
 | 
					 | 
				
			||||||
    key <AC06> { [ h, H ], [ minus, underscore ] };\
 | 
					 | 
				
			||||||
    key <AC07> { [ j, J ], [ plus, equal ] };\
 | 
					 | 
				
			||||||
    key <AC08> { [ k, K ], [ U00FC, asciicircum ] };\
 | 
					 | 
				
			||||||
    key <AC09> { [ l, L ], [ U00F6, degree ] };\
 | 
					 | 
				
			||||||
    key <AC10> { [ oslash, Oslash ], [ parenleft, braceleft ] };\
 | 
					 | 
				
			||||||
    key <AC11> { [ ae, AE ], [ parenright, braceright ] };\
 | 
					 | 
				
			||||||
    key <RTRN> { [ Return, Return ], [ Return, Return ] };\
 | 
					 | 
				
			||||||
    key <LFSH> { [ Shift_L, Shift_L ], [ Shift_L, Shift_L ] };\
 | 
					 | 
				
			||||||
    key <AB01> { [ z, Z ], [ comma, backslash ] };\
 | 
					 | 
				
			||||||
    key <AB02> { [ x, X ], [ quotedbl, slash ] };\
 | 
					 | 
				
			||||||
    key <AB03> { [ c, C ], [ quoteright, less ] };\
 | 
					 | 
				
			||||||
    key <AB04> { [ v, V ], [ colon, greater ] };\
 | 
					 | 
				
			||||||
    key <AB05> { [ b, B ], [ semicolon, equal ] };\
 | 
					 | 
				
			||||||
    key <AB06> { [ n, N ], [ exclam, bracketleft ] };\
 | 
					 | 
				
			||||||
    key <AB07> { [ m, M ], [ question, bracketright ] };\
 | 
					 | 
				
			||||||
    key <AB08> { [ period, period ], [ period, period ] };\
 | 
					 | 
				
			||||||
    key <I149> { [ preferences, preferences ], [ preferences, preferences ] };\
 | 
					 | 
				
			||||||
    key <SPCE> { [ space, space ], [ space, space ] };\
 | 
					 | 
				
			||||||
    key <BKSP> { [ BackSpace, BackSpace ], [ BackSpace, BackSpace ] };\
 | 
					 | 
				
			||||||
    };\
 | 
					 | 
				
			||||||
\
 | 
					 | 
				
			||||||
    xkb_types \"squeekboard\" {\
 | 
					 | 
				
			||||||
\
 | 
					 | 
				
			||||||
	type \"TWO_LEVEL\" {\
 | 
					 | 
				
			||||||
		modifiers = Shift;\
 | 
					 | 
				
			||||||
		map[Shift] = Level2;\
 | 
					 | 
				
			||||||
		level_name[Level1] = \"Base\";\
 | 
					 | 
				
			||||||
		level_name[Level2] = \"Shift\";\
 | 
					 | 
				
			||||||
	};\
 | 
					 | 
				
			||||||
    };\
 | 
					 | 
				
			||||||
\
 | 
					 | 
				
			||||||
    xkb_compatibility \"squeekboard\" {\
 | 
					 | 
				
			||||||
    };\
 | 
					 | 
				
			||||||
};";
 | 
					 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user