commit 21f20dad93a81dbcac17d130bcebcd858ad14e22
parent 5847e90a62a7d57b87b052f4df535f9f1563ea90
Author: Robert Russell <robert@rr3.xyz>
Date: Sun, 11 May 2025 12:14:48 -0700
Add keyboard stuff
Diffstat:
4 files changed, 992 insertions(+), 2 deletions(-)
diff --git a/keyboard/custom.xkb b/keyboard/custom.xkb
@@ -0,0 +1,443 @@
+xkb_keymap "custom" {
+ xkb_keycodes "custom" {
+ minimum = 8;
+ maximum = 255;
+
+ // 0--15 (0--7 always unused)
+ <ESC> = 9; // (escape)
+ <1> = 10;
+ <2> = 11;
+ <3> = 12;
+ <4> = 13;
+ <5> = 14;
+ <6> = 15;
+
+ // 16--31
+ <7> = 16;
+ <8> = 17;
+ <9> = 18;
+ <0> = 19;
+ <HYPH> = 20; // - (hyphen/minus)
+ <EQ> = 21; // = (equals)
+ <BKSP> = 22; // (backspace)
+ <TAB> = 23;
+ <q> = 24;
+ <w> = 25;
+ <e> = 26;
+ <r> = 27;
+ <t> = 28;
+ <y> = 29;
+ <u> = 30;
+ <i> = 31;
+
+ // 32--47
+ <o> = 32;
+ <p> = 33;
+ <LBRK> = 34; // [ (left bracket)
+ <RBRK> = 35; // ] (right bracket)
+ <RTRN> = 36; // (enter/return)
+ <LCTL> = 37; // (left control)
+ <a> = 38;
+ <s> = 39;
+ <d> = 40;
+ <f> = 41;
+ <g> = 42;
+ <h> = 43;
+ <j> = 44;
+ <k> = 45;
+ <l> = 46;
+ <SEMI> = 47; // ; (semicolon)
+
+ // 48--63
+ <QUOT> = 48; // ' (single quotation mark)
+ <GRAV> = 49; // ` (grave/backtick)
+ <LSFT> = 50; // (left shift)
+ <BKSL> = 51; // \ (backslash)
+ <z> = 52;
+ <x> = 53;
+ <c> = 54;
+ <v> = 55;
+ <b> = 56;
+ <n> = 57;
+ <m> = 58;
+ <COMM> = 59; // , (comma)
+ <DOT> = 60; // . (dot/period)
+ <SLSH> = 61; // / (slash)
+ <RSFT> = 62; // (right shift)
+ <KPMU> = 63; // * (keypad multiply)
+
+ // 64--79
+ <LALT> = 64; // (left alt)
+ <SPCE> = 65; // (space)
+ <CAPS> = 66; // (caps lock)
+ <F01> = 67;
+ <F02> = 68;
+ <F03> = 69;
+ <F04> = 70;
+ <F05> = 71;
+ <F06> = 72;
+ <F07> = 73;
+ <F08> = 74;
+ <F09> = 75;
+ <F10> = 76;
+ <NMLK> = 77; // (num lock)
+ //<SCLK> = 78; // (scroll lock)
+ <KP7> = 79;
+
+ // 80--95
+ <KP8> = 80;
+ <KP9> = 81;
+ <KPSU> = 82; // - (keypad subtract)
+ <KP4> = 83;
+ <KP5> = 84;
+ <KP6> = 85;
+ <KPAD> = 86; // + (keypad add)
+ <KP1> = 87;
+ <KP2> = 88;
+ <KP3> = 89;
+ <KP0> = 90;
+ <KPDL> = 91; // (keypad delete)
+ <F11> = 95;
+
+ // 96--111
+ <F12> = 96;
+ <KPEN> = 104; // (keypad enter)
+ <RCTL> = 105; // (right control)
+ <KPDV> = 106; // / (keypad divide)
+ <PRSC> = 107; // (print screen)
+ <RALT> = 108; // (right alt)
+ //<LNFD> = 109; // (linefeed)
+ <HOME> = 110;
+ <UP> = 111; // (up)
+
+ // 112--127
+ <PGUP> = 112; // (page up)
+ <LEFT> = 113; // (left)
+ <RGHT> = 114; // (right)
+ <END> = 115;
+ <DOWN> = 116; // (down)
+ <PGDN> = 117; // (page down)
+ <INS> = 118; // (insert)
+ <DEL> = 119; // (delete)
+ <MUTE> = 121;
+ <VOLD> = 122; // (volume down)
+ <VOLU> = 123; // (volume up)
+ <POWR> = 124; // (power)
+ <KPEQ> = 125; // = (keypad equals)
+ <PAUS> = 127; // (pause)
+
+ // 128--143
+ <LWIN> = 133; // (left win/super)
+ <RWIN> = 134; // (right win/super)
+
+ // 144--159
+
+ // 160--175
+
+ // 176--191
+
+ // 192--207
+ <F14> = 192;
+ <F15> = 193;
+ <F16> = 194;
+ //<F17> = 195;
+ //<F18> = 196;
+ //<F19> = 197;
+
+ // 208--223
+
+ // 224--239
+ <MOND> = 232; // (monitor brightness down)
+ <MONU> = 233; // (monitor brightness up)
+
+ // 240--255
+ };
+
+ xkb_types "custom" {
+ // The first four types are mandatory so-called "canonical" types.
+
+ type "ONE_LEVEL" {
+ modifiers = None;
+ map[None] = 1;
+ level_name[1] = "LEVEL1";
+ };
+
+ type "TWO_LEVEL" {
+ modifiers = Shift;
+ map[Shift] = 2;
+ level_name[1] = "LEVEL1";
+ level_name[2] = "LEVEL2";
+ };
+
+ type "ALPHABETIC" {
+ modifiers = Shift + Lock;
+ map[Shift] = 2;
+ map[Lock] = 2;
+ level_name[1] = "LEVEL1";
+ level_name[2] = "LEVEL2";
+ };
+
+ type "KEYPAD" {
+ modifiers = Shift;
+ map[Shift] = 2;
+ level_name[1] = "LEVEL1";
+ level_name[2] = "LEVEL2";
+ };
+
+ type "FN_TTY" {
+ modifiers = Control + Mod1;
+ map[Control+Mod1] = 2;
+ level_name[1] = "LEVEL1";
+ level_name[2] = "LEVEL2";
+ };
+
+ type "LATIN_AND_GREEK" {
+ modifiers = Shift + Mod3;
+ map[Shift] = 2;
+ map[Mod3] = 3;
+ map[Shift+Mod3] = 4;
+ level_name[1] = "LEVEL1";
+ level_name[2] = "LEVEL2";
+ level_name[3] = "LEVEL3";
+ level_name[4] = "LEVEL4";
+ };
+
+ // Initialize remainder of all 32 types to dummy types to cope with
+ // the following bug:
+ // https://gitlab.freedesktop.org/xorg/xserver/-/issues/1376
+ type "TYPE07" { level_name[1] = "LEVEL1"; };
+ type "TYPE08" { level_name[1] = "LEVEL1"; };
+ type "TYPE09" { level_name[1] = "LEVEL1"; };
+ type "TYPE10" { level_name[1] = "LEVEL1"; };
+ type "TYPE11" { level_name[1] = "LEVEL1"; };
+ type "TYPE12" { level_name[1] = "LEVEL1"; };
+ type "TYPE13" { level_name[1] = "LEVEL1"; };
+ type "TYPE14" { level_name[1] = "LEVEL1"; };
+ type "TYPE15" { level_name[1] = "LEVEL1"; };
+ type "TYPE16" { level_name[1] = "LEVEL1"; };
+ type "TYPE17" { level_name[1] = "LEVEL1"; };
+ type "TYPE18" { level_name[1] = "LEVEL1"; };
+ type "TYPE19" { level_name[1] = "LEVEL1"; };
+ type "TYPE20" { level_name[1] = "LEVEL1"; };
+ type "TYPE21" { level_name[1] = "LEVEL1"; };
+ type "TYPE22" { level_name[1] = "LEVEL1"; };
+ type "TYPE23" { level_name[1] = "LEVEL1"; };
+ type "TYPE24" { level_name[1] = "LEVEL1"; };
+ type "TYPE25" { level_name[1] = "LEVEL1"; };
+ type "TYPE26" { level_name[1] = "LEVEL1"; };
+ type "TYPE27" { level_name[1] = "LEVEL1"; };
+ type "TYPE28" { level_name[1] = "LEVEL1"; };
+ type "TYPE29" { level_name[1] = "LEVEL1"; };
+ type "TYPE30" { level_name[1] = "LEVEL1"; };
+ type "TYPE31" { level_name[1] = "LEVEL1"; };
+ type "TYPE32" { level_name[1] = "LEVEL1"; };
+ };
+
+ xkb_compat "custom" {
+ // TODO: Figure out how to get rid of this.
+ include "complete"
+ };
+
+ xkb_symbols "custom" {
+ name[1] = "GROUP1";
+ name[2] = "GROUP2";
+ name[3] = "GROUP3";
+ name[4] = "GROUP4";
+
+ modifier_map Shift { Shift_L, Shift_R };
+ modifier_map Lock { Caps_Lock };
+ modifier_map Control { Control_L, Control_R };
+ modifier_map Mod1 { Alt_L, Alt_R };
+ modifier_map Mod2 { F14 };
+ modifier_map Mod3 { F15 };
+ modifier_map Mod4 { Super_L, Super_R };
+ modifier_map Mod5 { F16 };
+
+ key.type = "ONE_LEVEL";
+
+ // TODO: SetMods?
+ key <LSFT> { [Shift_L] };
+ key <RSFT> { [Shift_R] };
+ key <CAPS> { [Caps_Lock] };
+ key <LCTL> { [Control_L] };
+ key <RCTL> { [Control_R] };
+ key <LALT> { [Alt_L] };
+ key <RALT> { [Alt_R] };
+ key <LWIN> { [Super_L] };
+ key <RWIN> { [Super_R] };
+
+ key.type = "TWO_LEVEL";
+
+ key <F14> { symbols[1] = [NoSymbol], actions[1] = [SetMods(mods=Mod2)] };
+ key <F15> { symbols[1] = [NoSymbol], actions[1] = [SetMods(mods=Mod3)] };
+ key <F16> { symbols[1] = [NoSymbol], actions[1] = [SetMods(mods=Mod5)] };
+
+ key.type = "ONE_LEVEL";
+
+ // Numlock is normally Mod2, but I use Mod2 for Unicode shenanigans.
+ key <NMLK> { [Num_Lock] };
+
+ key <ESC> { [Escape] };
+ key <BKSP> { [BackSpace] };
+ key <RTRN> { [Return] };
+ key <SPCE> { [space] };
+
+ key <UP> { [Up] };
+ key <DOWN> { [Down] };
+ key <LEFT> { [Left] };
+ key <RGHT> { [Right] };
+
+ key <HOME> { [Home] };
+ key <END> { [End] };
+ key <PGUP> { [Prior] };
+ key <PGDN> { [Next] };
+ key <INS> { [Insert] };
+ key <DEL> { [Delete] };
+
+ key <MUTE> { [XF86AudioMute] };
+ key <VOLD> { [XF86AudioLowerVolume] };
+ key <VOLU> { [XF86AudioRaiseVolume] };
+ key <POWR> { [XF86PowerOff] };
+ key <MOND> { [XF86MonBrightnessDown] };
+ key <MONU> { [XF86MonBrightnessUp] };
+
+ key.type = "TWO_LEVEL";
+
+ key <GRAV> { [grave, asciitilde] };
+ key <HYPH> { [minus, underscore] };
+ key <EQ> { [equal, plus] };
+ key <LBRK> { [bracketleft, braceleft] };
+ key <RBRK> { [bracketright, braceright] };
+ key <BKSL> { [backslash, bar] };
+ key <SEMI> { [semicolon, colon] };
+ key <QUOT> { [apostrophe, quotedbl] };
+ key <COMM> { [comma, less] };
+ key <DOT> { [period, greater] };
+ key <SLSH> { [slash, question] };
+ // key <TAB> { [Tab, ISO_Left_Tab] };
+ key <TAB> { [Tab, Tab] };
+
+ key <PRSC> { [Print, Sys_Req] }; // TODO: should be alt instead of shift
+ key <PAUS> { [Pause, Break] }; // TODO: ditto
+
+ key.type = "FN_TTY";
+
+ key <F01> { symbols[1] = [F1, NoSymbol], actions[1] = [NoAction(), SwitchScreen(Screen=1, !Same)] };
+ key <F02> { symbols[1] = [F2, NoSymbol], actions[1] = [NoAction(), SwitchScreen(Screen=2, !Same)] };
+ key <F03> { symbols[1] = [F3, NoSymbol], actions[1] = [NoAction(), SwitchScreen(Screen=3, !Same)] };
+ key <F04> { symbols[1] = [F4, NoSymbol], actions[1] = [NoAction(), SwitchScreen(Screen=4, !Same)] };
+ key <F05> { symbols[1] = [F5, NoSymbol], actions[1] = [NoAction(), SwitchScreen(Screen=5, !Same)] };
+ key <F06> { symbols[1] = [F6, NoSymbol], actions[1] = [NoAction(), SwitchScreen(Screen=6, !Same)] };
+ key <F07> { symbols[1] = [F7, NoSymbol], actions[1] = [NoAction(), SwitchScreen(Screen=7, !Same)] };
+ key <F08> { symbols[1] = [F8, NoSymbol], actions[1] = [NoAction(), SwitchScreen(Screen=8, !Same)] };
+ key <F09> { symbols[1] = [F9, NoSymbol], actions[1] = [NoAction(), SwitchScreen(Screen=9, !Same)] };
+ key <F10> { symbols[1] = [F10, NoSymbol], actions[1] = [NoAction(), SwitchScreen(Screen=10, !Same)] };
+ key <F11> { symbols[1] = [F11, NoSymbol], actions[1] = [NoAction(), SwitchScreen(Screen=11, !Same)] };
+ key <F12> { symbols[1] = [F12, NoSymbol], actions[1] = [NoAction(), SwitchScreen(Screen=12, !Same)] };
+
+ key.type = "KEYPAD";
+
+ key <KP1> { [KP_End, KP_1] };
+ key <KP2> { [KP_Down, KP_2] };
+ key <KP3> { [KP_Next, KP_3] };
+ key <KP4> { [KP_Left, KP_4] };
+ key <KP5> { [KP_Begin, KP_5] };
+ key <KP6> { [KP_Right, KP_6] };
+ key <KP7> { [KP_Home, KP_7] };
+ key <KP8> { [KP_Up, KP_8] };
+ key <KP9> { [KP_Prior, KP_9] };
+ key <KP0> { [KP_Insert, KP_0] };
+ key <KPDL> { [KP_Delete, KP_Decimal] };
+
+ key.type = "ONE_LEVEL";
+
+ key <KPAD> { [KP_Add] };
+ key <KPSU> { [KP_Subtract] };
+ key <KPMU> { [KP_Multiply] };
+ key <KPDV> { [KP_Divide] };
+ key <KPEQ> { [KP_Equal] };
+ key <KPEN> { [KP_Enter] };
+
+ key.type = "TWO_LEVEL";
+
+ key <1> { [1, exclam ] };
+ key <2> { [2, at ] };
+ key <3> { [3, numbersign ] };
+ key <4> { [4, dollar ] };
+ key <5> { [5, percent ] };
+ key <6> { [6, asciicircum] };
+ key <7> { [7, ampersand ] };
+ key <8> { [8, asterisk ] };
+ key <9> { [9, parenleft ] };
+ key <0> { [0, parenright ] };
+
+ key.type = "LATIN_AND_GREEK";
+
+ key <a> { [a, A, Greek_alpha, Greek_ALPHA ] };
+ key <b> { [b, B, Greek_beta, Greek_BETA ] };
+ key <c> { [c, C, Greek_chi, Greek_CHI ] };
+ key <d> { [d, D, Greek_delta, Greek_DELTA ] };
+ key <e> { [e, E, Greek_epsilon, Greek_EPSILON] };
+ key <f> { [f, F, Greek_phi, Greek_PHI ] };
+ key <g> { [g, G, Greek_gamma, Greek_GAMMA ] };
+ key <h> { [h, H, Greek_theta, Greek_THETA ] };
+ key <i> { [i, I, Greek_iota, Greek_IOTA ] };
+ key <j> { [j, J, Greek_eta, Greek_ETA ] };
+ key <k> { [k, K, Greek_kappa, Greek_KAPPA ] };
+ key <l> { [l, L, Greek_lamda, Greek_LAMDA ] };
+ key <m> { [m, M, Greek_mu, Greek_MU ] };
+ key <n> { [n, N, Greek_nu, Greek_NU ] };
+ key <o> { [o, O, Greek_omicron, Greek_OMICRON] };
+ key <p> { [p, P, Greek_pi, Greek_PI ] };
+ key <q> { [q, Q, Greek_psi, Greek_PSI ] };
+ key <r> { [r, R, Greek_rho, Greek_RHO ] };
+ key <s> { [s, S, Greek_sigma, Greek_SIGMA ] };
+ key <t> { [t, T, Greek_tau, Greek_TAU ] };
+ key <u> { [u, U, NoSymbol, NoSymbol ] };
+ key <v> { [v, V, NoSymbol, NoSymbol ] };
+ key <w> { [w, W, Greek_omega, Greek_OMEGA ] };
+ key <x> { [x, X, Greek_xi, Greek_XI ] };
+ key <y> { [y, Y, Greek_upsilon, Greek_UPSILON] };
+ key <z> { [z, Z, Greek_zeta, Greek_ZETA ] };
+
+ // TODO: Subscripts and superscripts?
+ //key <1> { [1, exclam, U01D7D9, NoSymbol] };
+ //key <2> { [2, at, U01D7DA, NoSymbol] };
+ //key <3> { [3, numbersign, U01D7DB, NoSymbol] };
+ //key <4> { [4, dollar, U01D7DC, NoSymbol] };
+ //key <5> { [5, percent, U01D7DD, NoSymbol] };
+ //key <6> { [6, asciicircum, U01D7DE, NoSymbol] };
+ //key <7> { [7, ampersand, U01D7DF, NoSymbol] };
+ //key <8> { [8, asterisk, U01D7E0, NoSymbol] };
+ //key <9> { [9, parenleft, U01D7E1, U002985 ] };
+ //key <0> { [0, parenright, U01D7D8, U002986 ] };
+
+ // TODO: Greek variants
+ //key <a> { [a, A, U01D552, U01D538, U01D4B6, U01D49C, U01D51E, U01D504], [Greek_alpha, Greek_ALPHA ] };
+ //key <b> { [b, B, U01D553, U01D539, U01D4B7, U00212C, U01D51F, U01D505], [Greek_beta, Greek_BETA ] };
+ //key <c> { [c, C, U01D554, U002102, U01D4B8, U01D49E, U01D520, U00212D], [Greek_chi, Greek_CHI ] };
+ //key <d> { [d, D, U01D555, U01D53B, U01D4B9, U01D49F, U01D521, U01D507], [Greek_delta, Greek_DELTA ] };
+ //key <e> { [e, E, U01D556, U01D53C, U00212f, U002130, U01D522, U01D508], [Greek_epsilon, Greek_EPSILON] };
+ //key <f> { [f, F, U01D557, U01D53D, U01D4BB, U002131, U01D523, U01D509], [Greek_phi, Greek_PHI ] };
+ //key <g> { [g, G, U01D558, U01D53E, U00210A, U01D4A2, U01D524, U01D50A], [Greek_gamma, Greek_GAMMA ] };
+ //key <h> { [h, H, U01D559, U00210D, U01D4BD, U00210B, U01D525, U00210C], [Greek_theta, Greek_THETA ] };
+ //key <i> { [i, I, U01D55A, U01D540, U01D4BE, U002110, U01D526, U002111], [Greek_iota, Greek_IOTA ] };
+ //key <j> { [j, J, U01D55B, U01D541, U01D4BF, U01D4A5, U01D527, U01D50D], [Greek_eta, Greek_ETA ] };
+ //key <k> { [k, K, U01D55C, U01D542, U01D4C0, U01D4A6, U01D528, U01D50E], [Greek_kappa, Greek_KAPPA ] };
+ //key <l> { [l, L, U01D55D, U01D543, U01D4C1, U002112, U01D529, U01D50F], [Greek_lamda, Greek_LAMDA ] };
+ //key <m> { [m, M, U01D55E, U01D544, U01D4C2, U002133, U01D52A, U01D510], [Greek_mu, Greek_MU ] };
+ //key <n> { [n, N, U01D55F, U002115, U01D4C3, U01D4A9, U01D52B, U01D511], [Greek_nu, Greek_NU ] };
+ //key <o> { [o, O, U01D560, U01D546, U002134, U01D4AA, U01D52C, U01D512], [Greek_omicron, Greek_OMICRON] };
+ //key <p> { [p, P, U01D561, U002119, U01D4C5, U01D4AB, U01D52D, U01D513], [Greek_pi, Greek_PI ] };
+ //key <q> { [q, Q, U01D562, U00211A, U01D4C6, U01D4AC, U01D52E, U01D514], [Greek_psi, Greek_PSI ] };
+ //key <r> { [r, R, U01D563, U00211D, U01D4C7, U00211B, U01D52F, U00211C], [Greek_rho, Greek_RHO ] };
+ //key <s> { [s, S, U01D564, U01D54A, U01D4C8, U01D4AE, U01D530, U01D516], [Greek_sigma, Greek_SIGMA ] };
+ //key <t> { [t, T, U01D565, U01D54B, U01D4C9, U01D4AF, U01D531, U01D517], [Greek_tau, Greek_TAU ] };
+ //key <u> { [u, U, U01D566, U01D54C, U01D4CA, U01D4B0, U01D532, U01D518], [NoSymbol, NoSymbol ] };
+ //key <v> { [v, V, U01D567, U01D54D, U01D4CB, U01D4B1, U01D533, U01D519], [NoSymbol, NoSymbol ] };
+ //key <w> { [w, W, U01D568, U01D54E, U01D4CC, U01D4B2, U01D534, U01D51A], [Greek_omega, Greek_OMEGA ] };
+ //key <x> { [x, X, U01D569, U01D54F, U01D4CD, U01D4B3, U01D535, U01D51B], [Greek_xi, Greek_XI ] };
+ //key <y> { [y, Y, U01D56A, U01D550, U01D4CE, U01D4B4, U01D536, U01D51C], [Greek_upsilon, Greek_UPSILON] };
+ //key <z> { [z, Z, U01D56B, U002124, U01D4CF, U01D4B5, U01D537, U002128], [Greek_zeta, Greek_ZETA ] };
+ };
+};
+\ No newline at end of file
diff --git a/keyboard/kbd67rev2.json b/keyboard/kbd67rev2.json
@@ -0,0 +1,151 @@
+{
+ "version": 1,
+ "notes": "",
+ "documentation": "\"This file is a QMK Configurator export. You can import this at <https://config.qmk.fm>. It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: <https://docs.qmk.fm/#/newbs>\n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n",
+ "keyboard": "kbdfans/kbd67/rev2",
+ "keymap": "kbd67rev2",
+ "layout": "LAYOUT_65_ansi",
+ "layers": [
+ [
+ "KC_ESC",
+ "KC_1",
+ "KC_2",
+ "KC_3",
+ "KC_4",
+ "KC_5",
+ "KC_6",
+ "KC_7",
+ "KC_8",
+ "KC_9",
+ "KC_0",
+ "KC_MINS",
+ "KC_EQL",
+ "KC_BSPC",
+ "KC_GRV",
+ "KC_TAB",
+ "KC_Q",
+ "KC_W",
+ "KC_E",
+ "KC_R",
+ "KC_T",
+ "KC_Y",
+ "KC_U",
+ "KC_I",
+ "KC_O",
+ "KC_P",
+ "KC_LBRC",
+ "KC_RBRC",
+ "KC_BSLS",
+ "KC_PGUP",
+ "KC_F14",
+ "KC_A",
+ "KC_S",
+ "KC_D",
+ "KC_F",
+ "KC_G",
+ "KC_H",
+ "KC_J",
+ "KC_K",
+ "KC_L",
+ "KC_SCLN",
+ "KC_QUOT",
+ "KC_ENT",
+ "KC_PGDN",
+ "KC_LSFT",
+ "KC_Z",
+ "KC_X",
+ "KC_C",
+ "KC_V",
+ "KC_B",
+ "KC_N",
+ "KC_M",
+ "KC_COMM",
+ "KC_DOT",
+ "KC_SLSH",
+ "KC_F15",
+ "KC_UP",
+ "KC_END",
+ "KC_LCTL",
+ "KC_LGUI",
+ "KC_LALT",
+ "KC_SPC",
+ "MO(1)",
+ "KC_F16",
+ "KC_HOME",
+ "KC_LEFT",
+ "KC_DOWN",
+ "KC_RGHT"
+ ],
+ [
+ "QK_BOOT",
+ "KC_F1",
+ "KC_F2",
+ "KC_F3",
+ "KC_F4",
+ "KC_F5",
+ "KC_F6",
+ "KC_F7",
+ "KC_F8",
+ "KC_F9",
+ "KC_F10",
+ "KC_F11",
+ "KC_F12",
+ "KC_DEL",
+ "KC_INS",
+ "KC_NO",
+ "MS_BTN1",
+ "MS_UP",
+ "MS_BTN2",
+ "MS_WHLU",
+ "RGB_MOD",
+ "RGB_HUI",
+ "RGB_SAI",
+ "RGB_VAI",
+ "KC_NO",
+ "KC_NO",
+ "KC_NO",
+ "KC_PAUS",
+ "KC_PSCR",
+ "KC_BRIU",
+ "KC_NO",
+ "MS_LEFT",
+ "MS_UP",
+ "MS_RGHT",
+ "MS_WHLD",
+ "RGB_RMOD",
+ "RGB_HUD",
+ "RGB_SAD",
+ "RGB_VAD",
+ "KC_CAPS",
+ "KC_SCRL",
+ "KC_NUM",
+ "KC_MPLY",
+ "KC_BRID",
+ "KC_TRNS",
+ "MS_WHLL",
+ "MS_BTN3",
+ "MS_WHLR",
+ "NK_TOGG",
+ "RGB_TOG",
+ "KC_NO",
+ "KC_NO",
+ "KC_NO",
+ "KC_NO",
+ "KC_NO",
+ "KC_MUTE",
+ "KC_VOLU",
+ "KC_MNXT",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_NO",
+ "KC_NO",
+ "KC_NO",
+ "KC_MPRV",
+ "KC_MRWD",
+ "KC_VOLD",
+ "KC_MFFD"
+ ]
+ ],
+ "author": ""
+}
+\ No newline at end of file
diff --git a/keyboard/keychron_k6_pro_ansi_rgb.layout.json b/keyboard/keychron_k6_pro_ansi_rgb.layout.json
@@ -0,0 +1,393 @@
+{
+ "name": "Keychron K6 Pro ANSI RGB",
+ "vendorProductId": 875823712,
+ "macros": ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""],
+ "layers": [
+ [
+ "KC_ESC",
+ "KC_1",
+ "KC_2",
+ "KC_3",
+ "KC_4",
+ "KC_5",
+ "KC_6",
+ "KC_7",
+ "KC_8",
+ "KC_9",
+ "KC_0",
+ "KC_MINS",
+ "KC_EQL",
+ "KC_BSPC",
+ "KC_GRV",
+ "KC_TAB",
+ "KC_Q",
+ "KC_W",
+ "KC_E",
+ "KC_R",
+ "KC_T",
+ "KC_Y",
+ "KC_U",
+ "KC_I",
+ "KC_O",
+ "KC_P",
+ "KC_LBRC",
+ "KC_RBRC",
+ "KC_BSLS",
+ "KC_PGUP",
+ "KC_F14",
+ "KC_A",
+ "KC_S",
+ "KC_D",
+ "KC_F",
+ "KC_G",
+ "KC_H",
+ "KC_J",
+ "KC_K",
+ "KC_L",
+ "KC_SCLN",
+ "KC_QUOT",
+ "KC_NO",
+ "KC_ENT",
+ "KC_PGDN",
+ "KC_LSFT",
+ "KC_NO",
+ "KC_Z",
+ "KC_X",
+ "KC_C",
+ "KC_V",
+ "KC_B",
+ "KC_N",
+ "KC_M",
+ "KC_COMM",
+ "KC_DOT",
+ "KC_SLSH",
+ "KC_F15",
+ "KC_UP",
+ "KC_END",
+ "KC_LCTL",
+ "KC_LGUI",
+ "KC_LALT",
+ "KC_NO",
+ "KC_NO",
+ "KC_NO",
+ "KC_SPC",
+ "KC_NO",
+ "KC_NO",
+ "MO(1)",
+ "KC_F16",
+ "KC_HOME",
+ "KC_LEFT",
+ "KC_DOWN",
+ "KC_RGHT"
+ ],
+ [
+ "KC_NO",
+ "KC_F1",
+ "KC_F2",
+ "KC_F3",
+ "KC_F4",
+ "KC_F5",
+ "KC_F6",
+ "KC_F7",
+ "KC_F8",
+ "KC_F9",
+ "KC_F10",
+ "KC_F11",
+ "KC_F12",
+ "KC_DEL",
+ "KC_INS",
+ "KC_NO",
+ "KC_MS_BTN1",
+ "KC_MS_UP",
+ "KC_MS_BTN2",
+ "KC_MS_WH_UP",
+ "RGB_MOD",
+ "RGB_HUI",
+ "RGB_SAI",
+ "RGB_VAI",
+ "CUSTOM(14)",
+ "KC_NO",
+ "KC_NO",
+ "KC_PAUS",
+ "KC_PSCR",
+ "KC_BRIU",
+ "KC_NO",
+ "KC_MS_LEFT",
+ "KC_MS_DOWN",
+ "KC_MS_RIGHT",
+ "KC_MS_WH_DOWN",
+ "RGB_RMOD",
+ "RGB_HUD",
+ "RGB_SAD",
+ "RGB_VAD",
+ "KC_CAPS",
+ "KC_SLCK",
+ "KC_NLCK",
+ "KC_NO",
+ "KC_MPLY",
+ "KC_BRID",
+ "KC_TRNS",
+ "KC_NO",
+ "KC_MS_WH_LEFT",
+ "KC_MS_BTN3",
+ "KC_MS_WH_RIGHT",
+ "MAGIC_TOGGLE_NKRO",
+ "RGB_TOG",
+ "CUSTOM(11)",
+ "CUSTOM(12)",
+ "CUSTOM(13)",
+ "KC_NO",
+ "KC_NO",
+ "KC_MUTE",
+ "KC_VOLU",
+ "KC_MNXT",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_NO",
+ "KC_NO",
+ "KC_NO",
+ "KC_NO",
+ "KC_NO",
+ "KC_NO",
+ "KC_NO",
+ "KC_NO",
+ "KC_MPRV",
+ "KC_MRWD",
+ "KC_VOLD",
+ "KC_MFFD"
+ ],
+ [
+ "KC_GRV",
+ "KC_BRID",
+ "KC_BRIU",
+ "CUSTOM(4)",
+ "CUSTOM(5)",
+ "RGB_VAD",
+ "RGB_VAI",
+ "KC_MPRV",
+ "KC_MPLY",
+ "KC_MNXT",
+ "KC_MUTE",
+ "KC_VOLD",
+ "KC_VOLU",
+ "KC_TRNS",
+ "RGB_TOG",
+ "KC_TRNS",
+ "CUSTOM(11)",
+ "CUSTOM(12)",
+ "CUSTOM(13)",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "RGB_TOG",
+ "RGB_MOD",
+ "RGB_VAI",
+ "RGB_HUI",
+ "RGB_SAI",
+ "RGB_SPI",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_NO",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_NO",
+ "RGB_RMOD",
+ "RGB_VAD",
+ "RGB_HUD",
+ "RGB_SAD",
+ "RGB_SPD",
+ "MAGIC_TOGGLE_NKRO",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_NO",
+ "KC_NO",
+ "KC_NO",
+ "KC_TRNS",
+ "KC_NO",
+ "KC_NO",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS"
+ ],
+ [
+ "KC_GRV",
+ "KC_BRID",
+ "KC_BRIU",
+ "CUSTOM(6)",
+ "CUSTOM(7)",
+ "RGB_VAD",
+ "RGB_VAI",
+ "KC_MPRV",
+ "KC_MPLY",
+ "KC_MNXT",
+ "KC_MUTE",
+ "KC_VOLD",
+ "KC_VOLU",
+ "KC_TRNS",
+ "RGB_TOG",
+ "KC_TRNS",
+ "CUSTOM(11)",
+ "CUSTOM(12)",
+ "CUSTOM(13)",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "RGB_TOG",
+ "RGB_MOD",
+ "RGB_VAI",
+ "RGB_HUI",
+ "RGB_SAI",
+ "RGB_SPI",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_NO",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_NO",
+ "RGB_RMOD",
+ "RGB_VAD",
+ "RGB_HUD",
+ "RGB_SAD",
+ "RGB_SPD",
+ "MAGIC_TOGGLE_NKRO",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_NO",
+ "KC_NO",
+ "KC_NO",
+ "KC_TRNS",
+ "KC_NO",
+ "KC_NO",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS"
+ ],
+ [
+ "S(KC_GRV)",
+ "KC_F1",
+ "KC_F2",
+ "KC_F3",
+ "KC_F4",
+ "KC_F5",
+ "KC_F6",
+ "KC_F7",
+ "KC_F8",
+ "KC_F9",
+ "KC_F10",
+ "KC_F11",
+ "KC_F12",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_NO",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_NO",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "CUSTOM(14)",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_NO",
+ "KC_NO",
+ "KC_NO",
+ "KC_TRNS",
+ "KC_NO",
+ "KC_NO",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS"
+ ]
+ ],
+ "encoders": []
+}
+\ No newline at end of file
diff --git a/zed/settings.json b/zed/settings.json
@@ -19,8 +19,8 @@
"outline_panel": { "dock": "right" },
// Style
- "ui_font_size": 16,
- "buffer_font_size": 16,
+ "ui_font_size": 14,
+ "buffer_font_size": 14,
// Zed font features currently don't work on Linux, so we use a variant of
// JuliaMono with ligatures hard-coded off, created with
// https://mutsuntsai.github.io/fontfreeze.