| layout.mobile-simple.h - svkbd - simple virtual keyboard | |
| git clone git://git.suckless.org/svkbd | |
| Log | |
| Files | |
| Refs | |
| README | |
| LICENSE | |
| --- | |
| layout.mobile-simple.h (9487B) | |
| --- | |
| 1 #define KEYS 43 | |
| 2 | |
| 3 static Key keys_lazy_en[KEYS] = { | |
| 4 { 0, 0, XK_q, 1 }, | |
| 5 { 0, 0, XK_w, 1 }, | |
| 6 { 0, 0, XK_e, 1 }, | |
| 7 { 0, 0, XK_r, 1 }, | |
| 8 { 0, 0, XK_t, 1 }, | |
| 9 { 0, 0, XK_y, 1 }, | |
| 10 { 0, 0, XK_u, 1 }, | |
| 11 { 0, 0, XK_i, 1 }, | |
| 12 { 0, 0, XK_o, 1 }, | |
| 13 { 0, 0, XK_p, 1 }, | |
| 14 | |
| 15 { 0 }, | |
| 16 | |
| 17 { 0, 0, XK_a, 1 }, | |
| 18 { 0, 0, XK_s, 1 }, | |
| 19 { 0, 0, XK_d, 1 }, | |
| 20 { 0, 0, XK_f, 1 }, | |
| 21 { 0, 0, XK_g, 1 }, | |
| 22 { 0, 0, XK_h, 1 }, | |
| 23 { 0, 0, XK_j, 1 }, | |
| 24 { 0, 0, XK_k, 1 }, | |
| 25 { 0, 0, XK_l, 1 }, | |
| 26 { "'", 0, XK_apostrophe, 1 }, | |
| 27 | |
| 28 { 0 }, | |
| 29 | |
| 30 { "↑", 0, XK_Shift_L, 1 }, | |
| 31 { 0, 0, XK_z, 1 }, | |
| 32 { 0, 0, XK_x, 1 }, | |
| 33 { 0, 0, XK_c, 1 }, | |
| 34 { 0, 0, XK_v, 1 }, | |
| 35 { 0, 0, XK_b, 1 }, | |
| 36 { 0, 0, XK_n, 1 }, | |
| 37 { 0, 0, XK_m, 1 }, | |
| 38 { "Tab", 0, XK_Tab, 1 }, | |
| 39 { "⌫", 0, XK_BackSpace, 1 }, | |
| 40 | |
| 41 { 0 }, | |
| 42 | |
| 43 { "?123", 0, XK_Cancel, 3 }, | |
| 44 { "-", 0, XK_minus, 2 }, | |
| 45 { "☺", 0, 0x101f642, 2 }, | |
| 46 { "Ctl", 0, XK_Control_L, 2 }, | |
| 47 { "Alt", 0, XK_Alt_L, 2 }, | |
| 48 { "", 0, XK_space, 4 }, | |
| 49 { ".", 0, XK_period, 2 }, | |
| 50 { "↲Enter", 0, XK_Return, 3 } | |
| 51 }; | |
| 52 | |
| 53 static Key keys_symbols[KEYS] = { | |
| 54 { "1", 0, XK_1, 1 }, | |
| 55 { "2", 0, XK_2, 1 }, | |
| 56 { "3", 0, XK_3, 1 }, | |
| 57 { "4", 0, XK_4, 1 }, | |
| 58 { "5", 0, XK_5, 1 }, | |
| 59 { "6", 0, XK_6, 1 }, | |
| 60 { "7", 0, XK_7, 1 }, | |
| 61 { "8", 0, XK_8, 1 }, | |
| 62 { "9", 0, XK_9, 1 }, | |
| 63 { "0", 0, XK_0, 1 }, | |
| 64 | |
| 65 { 0 }, | |
| 66 | |
| 67 { "!", 0, XK_1, 1, XK_Shift_L }, | |
| 68 { "@", 0, XK_2, 1, XK_Shift_L }, | |
| 69 { "#", 0, XK_3, 1, XK_Shift_L }, | |
| 70 { "$", 0, XK_4, 1, XK_Shift_L }, | |
| 71 { "%", 0, XK_5, 1, XK_Shift_L }, | |
| 72 { "^", 0, XK_6, 1, XK_Shift_L }, | |
| 73 { "&", 0, XK_7, 1, XK_Shift_L }, | |
| 74 { "*", 0, XK_8, 1, XK_Shift_L }, | |
| 75 { "(", 0, XK_9, 1, XK_Shift_L }, | |
| 76 { ")", 0, XK_0, 1, XK_Shift_L }, | |
| 77 | |
| 78 { 0 }, | |
| 79 | |
| 80 { "Esc", 0, XK_Escape, 1 }, | |
| 81 { "~", 0, XK_grave, 1, XK_Shift_L }, | |
| 82 { "\\", 0, XK_backslash, 1 }, | |
| 83 { "|", 0, XK_backslash, 1, XK_Shift_L }, | |
| 84 { "←", 0, XK_Left, 1 }, | |
| 85 { "↓", 0, XK_Down, 1 }, | |
| 86 { "↑", 0, XK_Up, 1 }, | |
| 87 { "→", 0, XK_Right, 1 }, | |
| 88 { "Tab", 0, XK_Tab, 1 }, | |
| 89 { "⌫", 0, XK_BackSpace, 1 }, | |
| 90 | |
| 91 { 0 }, | |
| 92 | |
| 93 { "abc", 0, XK_Mode_switch, 3 }, | |
| 94 { "-", 0, XK_minus, 2 }, | |
| 95 { "↺", 0, XK_Cancel, 2 }, | |
| 96 { "Ctl", 0, XK_Control_L, 2 }, | |
| 97 { "Alt", 0, XK_Alt_L, 2 }, | |
| 98 { "", 0, XK_space, 4 }, | |
| 99 { ".", 0, XK_period, 2 }, | |
| 100 { "↲Enter", 0, XK_Return, 3 } | |
| 101 }; | |
| 102 | |
| 103 static Key keys_functions[KEYS] = { | |
| 104 { "Esc", 0, XK_Escape, 1 }, | |
| 105 { "F1", 0, XK_F1, 1 }, | |
| 106 { "F2", 0, XK_F2, 1 }, | |
| 107 { "F3", 0, XK_F3, 1 }, | |
| 108 { "F4", 0, XK_F4, 1 }, | |
| 109 { "F5", 0, XK_F5, 1 }, | |
| 110 { "F6", 0, XK_F6, 1 }, | |
| 111 { "F7", 0, XK_F7, 1 }, | |
| 112 { "F8", 0, XK_F8, 1 }, | |
| 113 { "F9", 0, XK_F9, 1 }, | |
| 114 { "F10", 0, XK_F10, 1 }, | |
| 115 | |
| 116 { 0 }, | |
| 117 | |
| 118 { "≅", 0, XK_KP_Insert, 1 }, | |
| 119 { "▶", 0, XF86XK_AudioPlay, 1 }, | |
| 120 { "●", 0, XF86XK_AudioRecord, 1 }, | |
| 121 { "■", 0, XF86XK_AudioStop, 1 }, | |
| 122 { "◂◂", 0, XF86XK_AudioPrev, 1 }, | |
| 123 { "▸▸", 0, XF86XK_AudioNext, 1 }, | |
| 124 { "♫M", 0, XF86XK_AudioMute, 1 }, | |
| 125 { "♫-", 0, XF86XK_AudioLowerVolume, 1 }, | |
| 126 { "♫+", 0, XF86XK_AudioRaiseVolume, 1 }, | |
| 127 { "☀-", 0, XF86XK_MonBrightnessDown, 1 }, | |
| 128 { "☀+", 0, XF86XK_MonBrightnessUp, 1 }, | |
| 129 | |
| 130 { 0 }, | |
| 131 | |
| 132 { "abc", 0, XK_Mode_switch, 1 }, | |
| 133 { "Del", 0, XK_Delete, 1 }, | |
| 134 { "⇤", 0, XK_Home, 1 }, | |
| 135 { "←", 0, XK_Left, 1 }, | |
| 136 { "→", 0, XK_Right, 1 }, | |
| 137 { "⇥", 0, XK_End, 1 }, | |
| 138 { "⇊", 0, XK_Next, 1 }, | |
| 139 { "⇈", 0, XK_Prior, 1 }, | |
| 140 { "Tab", 0, XK_Tab, 1 }, | |
| 141 { "⌫", 0, XK_BackSpace, 2 }, | |
| 142 | |
| 143 { 0 }, | |
| 144 | |
| 145 { "↺", 0, XK_Cancel, 1}, | |
| 146 { "Shift", 0, XK_Shift_L, 2 }, | |
| 147 { "Ctrl", 0, XK_Control_L, 1 }, | |
| 148 { "Alt", 0, XK_Alt_L, 1 }, | |
| 149 { "", 0, XK_space, 2 }, | |
| 150 { "↓", 0, XK_Down, 1 }, | |
| 151 { "↑", 0, XK_Up, 1 }, | |
| 152 { "↲ Enter", 0, XK_Return, 2 }, | |
| 153 }; | |
| 154 | |
| 155 #define DIALER_KEYS 27 | |
| 156 | |
| 157 static Key keys_dialer[DIALER_KEYS] = { | |
| 158 { "Esc", 0, XK_Escape, 1 }, | |
| 159 { "1!", 0, XK_1, 1 }, | |
| 160 { "2@", 0, XK_2, 1 }, | |
| 161 { "3#", 0, XK_3, 1 }, | |
| 162 { "-_", 0, XK_minus, 1 }, | |
| 163 { ",<", 0, XK_comma, 1 }, | |
| 164 | |
| 165 { 0 }, | |
| 166 | |
| 167 { "Shift", 0, XK_Shift_L, 1 }, | |
| 168 { "4$", 0, XK_4, 1 }, | |
| 169 { "5%", 0, XK_5, 1 }, | |
| 170 { "6^", 0, XK_6, 1 }, | |
| 171 { "=+", 0, XK_equal, 1 }, | |
| 172 { "/?", 0, XK_slash, 1 }, | |
| 173 | |
| 174 { 0 }, | |
| 175 | |
| 176 { "abc", 0, XK_Mode_switch, 1 }, | |
| 177 { "7&", 0, XK_7, 1 }, | |
| 178 { "8*", 0, XK_8, 1 }, | |
| 179 { "9(", 0, XK_9, 1 }, | |
| 180 { "⌫", 0, XK_BackSpace, 2 }, | |
| 181 | |
| 182 { 0 }, | |
| 183 | |
| 184 { "↺", 0, XK_Cancel, 1}, | |
| 185 { "", 0, XK_space, 1 }, | |
| 186 { "0)", 0, XK_0, 1 }, | |
| 187 { ".>", 0, XK_period, 1 }, | |
| 188 { "↲ Enter", 0, XK_Return, 2}, | |
| 189 }; | |
| 190 | |
| 191 #define OVERLAYS 193 | |
| 192 | |
| 193 static Key overlay[OVERLAYS] = { | |
| 194 { 0, 0, XK_a }, | |
| 195 { "à", 0, XK_agrave }, | |
| 196 { "á", 0, XK_aacute }, | |
| 197 { "â", 0, XK_acircumflex }, | |
| 198 { "ä", 0, XK_adiaeresis }, | |
| 199 { "ą", 0, XK_aogonek }, | |
| 200 { "ã", 0, XK_atilde }, | |
| 201 { "ā", 0, XK_amacron }, | |
| 202 { "ă", 0, XK_abreve }, | |
| 203 { "å", 0, XK_aring }, | |
| 204 { "æ", 0, XK_ae }, | |
| 205 { 0, 0, XK_Cancel }, | |
| 206 { 0, 0, XK_e }, | |
| 207 { "è", 0, XK_egrave }, | |
| 208 { "é", 0, XK_eacute }, | |
| 209 { "ê", 0, XK_ecircumflex }, | |
| 210 { "ë", 0, XK_ediaeresis }, | |
| 211 { "ę", 0, XK_eogonek }, | |
| 212 { "ē", 0, XK_emacron }, | |
| 213 { "ė", 0, XK_eabovedot }, | |
| 214 { "ě", 0, XK_ecaron }, | |
| 215 { 0, 0, XK_Cancel }, | |
| 216 { 0, 0, XK_y }, | |
| 217 { "ỳ", 0, XK_ygrave }, | |
| 218 { "ý", 0, XK_yacute }, | |
| 219 { "ŷ", 0, XK_ycircumflex }, | |
| 220 { "ÿ", 0, XK_ydiaeresis }, | |
| 221 { 0, 0, XK_Cancel }, | |
| 222 { 0, 0, XK_u }, | |
| 223 { "ù", 0, XK_ugrave }, | |
| 224 { "ú", 0, XK_uacute }, | |
| 225 { "û", 0, XK_ucircumflex }, | |
| 226 { "ü", 0, XK_udiaeresis }, | |
| 227 { "ų", 0, XK_uogonek }, | |
| 228 { "ū", 0, XK_umacron }, | |
| 229 { "ů", 0, XK_uring}, | |
| 230 { "ŭ", 0, XK_ubreve}, | |
| 231 { "ű", 0, XK_udoubleacute }, | |
| 232 { 0, 0, XK_Cancel }, | |
| 233 { 0, 0, XK_i }, | |
| 234 { "ì", 0, XK_igrave }, | |
| 235 { "í", 0, XK_iacute }, | |
| 236 { "î", 0, XK_icircumflex }, | |
| 237 { "ï", 0, XK_idiaeresis }, | |
| 238 { "į", 0, XK_iogonek }, | |
| 239 { "ī", 0, XK_imacron }, | |
| 240 { "ı", 0, XK_idotless }, | |
| 241 { 0, 0, XK_Cancel }, | |
| 242 { 0, 0, XK_o }, | |
| 243 { "ò", 0, XK_ograve }, | |
| 244 { "ó", 0, XK_oacute }, | |
| 245 { "ô", 0, XK_ocircumflex }, | |
| 246 { "ö", 0, XK_odiaeresis }, | |
| 247 { "ǫ", 0, XK_ogonek }, | |
| 248 { "õ", 0, XK_otilde }, | |
| 249 { "ō", 0, XK_omacron }, | |
| 250 { "ø", 0, XK_oslash }, | |
| 251 { "ő", 0, XK_odoubleacute }, | |
| 252 { "œ", 0, XK_oe }, | |
| 253 { 0, 0, XK_Cancel }, | |
| 254 { 0, 0, XK_d }, | |
| 255 { "ď", 0, XK_dcaron }, | |
| 256 { "ð", 0, XK_eth }, | |
| 257 { 0, 0, XK_Cancel }, | |
| 258 { 0, 0, XK_c }, | |
| 259 { "ç", 0, XK_ccedilla }, | |
| 260 { "ĉ", 0, XK_ccircumflex }, | |
| 261 { "č", 0, XK_ccaron }, | |
| 262 { "ć", 0, XK_cacute }, | |
| 263 { 0, 0, XK_Cancel }, | |
| 264 { 0, 0, XK_s }, | |
| 265 { "ş", 0, XK_scedilla }, | |
| 266 { "ŝ", 0, XK_scircumflex }, | |
| 267 { "š", 0, XK_scaron }, | |
| 268 { "ś", 0, XK_sacute }, | |
| 269 { "ß", 0, XK_ssharp }, | |
| 270 { 0, 0, XK_Cancel }, | |
| 271 { 0, 0, XK_z }, | |
| 272 { "ž", 0, XK_zcaron }, | |
| 273 { "ż", 0, XK_zabovedot }, | |
| 274 { 0, 0, XK_Cancel }, | |
| 275 { 0, 0, XK_n }, | |
| 276 { "ñ", 0, XK_ntilde }, | |
| 277 { "ń", 0, XK_nacute }, | |
| 278 { "ň", 0, XK_ncaron }, | |
| 279 { 0, 0, XK_Cancel }, | |
| 280 { 0, 0, XK_t }, | |
| 281 { "ț", 0, XK_tcedilla }, | |
| 282 { "ť", 0, XK_tcaron }, | |
| 283 { "þ", 0, XK_thorn }, | |
| 284 { 0, 0, XK_Cancel }, | |
| 285 { 0, 0, XK_g }, | |
| 286 { "ĝ", 0, XK_gcircumflex }, | |
| 287 { "ğ", 0, XK_gbreve }, | |
| 288 { 0, 0, XK_Cancel }, | |
| 289 { 0, 0, XK_h }, | |
| 290 { "ĥ", 0, XK_hcircumflex }, | |
| 291 { 0, 0, XK_Cancel }, | |
| 292 { 0, 0, XK_j }, | |
| 293 { "ĵ", 0, XK_jcircumflex }, | |
| 294 { 0, 0, XK_Cancel }, | |
| 295 { 0, 0, XK_l }, | |
| 296 { "ł", 0, XK_lstroke }, | |
| 297 { "ľ", 0, XK_lcaron }, | |
| 298 { 0, 0, XK_Cancel }, | |
| 299 { 0, 0, XK_r }, | |
| 300 { "ř", 0, XK_rcaron }, | |
| 301 { 0, 0, XK_Cancel }, | |
| 302 { 0, 0, XK_Cyrillic_softsign }, | |
| 303 { "ъ", 0, XK_Cyrillic_hardsign }, | |
| 304 { 0, 0, XK_Cancel }, | |
| 305 { 0, 0, XK_Cyrillic_ie }, | |
| 306 { "ё", 0, XK_Cyrillic_io }, | |
| 307 { "э", 0, XK_Cyrillic_e }, | |
| 308 { "Є", 0, XK_Ukrainian_ie }, | |
| 309 { 0, 0, XK_Cancel }, | |
| 310 { 0, 0, XK_Cyrillic_i }, | |
| 311 { "і", 0, XK_Ukrainian_i }, | |
| 312 { "ї", 0, XK_Ukrainian_yi }, | |
| 313 { 0, 0, XK_Cancel }, | |
| 314 { 0, 0, XK_Cyrillic_u }, | |
| 315 { "ў", 0, XK_Byelorussian_shortu }, | |
| 316 { 0, 0, XK_Cancel }, | |
| 317 { 0, 0, XK_Cyrillic_shorti }, | |
| 318 { "ј", 0, XK_Cyrillic_je }, | |
| 319 { 0, 0, XK_Cancel }, | |
| 320 { 0, 0, XK_Cyrillic_el }, | |
| 321 { "љ", 0, XK_Cyrillic_lje }, | |
| 322 { 0, 0, XK_Cancel }, | |
| 323 { 0, 0, XK_Cyrillic_en }, | |
| 324 { "њ", 0, XK_Cyrillic_nje }, | |
| 325 { 0, 0, XK_Cancel }, | |
| 326 { 0, 0, XK_Cyrillic_tse }, | |
| 327 { "џ", 0, XK_Cyrillic_dzhe }, | |
| 328 { 0, 0, XK_Cancel }, | |
| 329 { 0, 0, XK_Cyrillic_che }, | |
| 330 { "ћ", 0, XK_Serbian_tshe }, | |
| 331 { "ђ", 0, XK_Serbian_dje }, | |
| 332 { 0, 0, XK_Cancel }, | |
| 333 { "🙂", 0, 0x101f642 }, | |
| 334 { "😀", 0, 0x101f600 }, | |
| 335 { "😁", 0, 0x101f601 }, | |
| 336 { "😂", 0, 0x101f602 }, | |
| 337 { "😃", 0, 0x101f603 }, | |
| 338 { "😄", 0, 0x101f604 }, | |
| 339 { "😅", 0, 0x101f605 }, | |
| 340 { "😆", 0, 0x101f606 }, | |
| 341 { "😇", 0, 0x101f607 }, | |
| 342 { "😈", 0, 0x101f608 }, | |
| 343 { "😉", 0, 0x101f609 }, | |
| 344 { "😊", 0, 0x101f60a }, | |
| 345 { "😋", 0, 0x101f60b }, | |
| 346 { "😌", 0, 0x101f60c }, | |
| 347 { "😍", 0, 0x101f60d }, | |
| 348 { "😎", 0, 0x101f60e }, | |
| 349 { "😏", 0, 0x101f60f }, | |
| 350 { "😐", 0, 0x101f610 }, | |
| 351 { "😒", 0, 0x101f612 }, | |
| 352 { "😓", 0, 0x101f613 }, | |
| 353 { "😛", 0, 0x101f61b }, | |
| 354 { "😮", 0, 0x101f62e }, | |
| 355 { "😟", 0, 0x101f61f }, | |
| 356 { "😟", 0, 0x101f620 }, | |
| 357 { "😢", 0, 0x101f622 }, | |
| 358 { "😭", 0, 0x101f62d }, | |
| 359 { "😳", 0, 0x101f633 }, | |
| 360 { "😴", 0, 0x101f634 }, | |
| 361 { 0, 0, XK_Cancel }, | |
| 362 { ".", 0, XK_period, }, | |
| 363 { ":", 0, XK_colon, 26, XK_Shift_L }, | |
| 364 { ";", 0, XK_colon, 0 }, | |
| 365 { "!", 0, XK_1, 0, XK_Shift_L }, | |
| 366 { "?", 0, XK_slash, 0, XK_Shift_L }, | |
| 367 { ",", 0, XK_comma, 0 }, | |
| 368 { 0, 0, XK_Cancel }, | |
| 369 { "-", 0, XK_minus }, | |
| 370 { "_", 0, XK_minus, 24, XK_Shift_L }, | |
| 371 { "+", 0, XK_plus, 0, XK_Shift_L }, | |
| 372 { "/", 0, XK_slash, 0 }, | |
| 373 { "*", 0, XK_8, 0, XK_Shift_L }, | |
| 374 { "=", 0, XK_plus }, | |
| 375 { 0, 0, XK_Cancel }, | |
| 376 { "'", 0, XK_apostrophe }, | |
| 377 { "{", 0, XK_bracketleft, 7, XK_Shift_L }, | |
| 378 { "}", 0, XK_bracketright, 0, XK_Shift_L }, | |
| 379 { "[", 0, XK_bracketleft, 0 }, | |
| 380 { "]", 0, XK_bracketright, 0 }, | |
| 381 { "<", 0, XK_comma, 6, XK_Shift_L }, | |
| 382 { ">", 0, XK_period, 0, XK_Shift_L }, | |
| 383 { "`", 0, XK_grave, 0 }, | |
| 384 { "\"", 0, XK_apostrophe, 0, XK_Shift_L }, | |
| 385 { "'", 0, XK_apostrophe }, | |
| 386 { 0, 0, XK_Cancel }, | |
| 387 }; | |
| 388 | |
| 389 #define LAYERS 4 | |
| 390 | |
| 391 static char* layer_names[LAYERS] = { | |
| 392 "lazy en", | |
| 393 "symbols", | |
| 394 "functions", | |
| 395 "dialer", | |
| 396 }; | |
| 397 | |
| 398 static Key* available_layers[LAYERS] = { | |
| 399 keys_lazy_en, | |
| 400 keys_symbols, | |
| 401 keys_functions, | |
| 402 keys_dialer, | |
| 403 }; | |
| 404 | |
| 405 Buttonmod buttonmods[] = { | |
| 406 { XK_Shift_L, Button2 }, | |
| 407 { XK_Alt_L, Button3 }, | |
| 408 }; |