From 5207428abd8b313339d084df1fb9dcd0c8707227 Mon Sep 17 00:00:00 2001 From: Ben Reaves Date: Wed, 19 Feb 2020 02:02:57 -0600 Subject: [PATCH] - Added PgUp, PgDn, Home, and End to terminal keymap on Cmd+Up/Dn/Left/Right --- .xkb/symbols/mac_term | 24 ++++++++++++++++++++++++ .xkb/symbols/mac_term_chromebook | 24 ++++++++++++++++++++++++ .xkb/types/mac_term | 11 +++++++++++ defaults.json | 12 ++++++------ setup.py | 20 ++++++++++---------- 5 files changed, 75 insertions(+), 16 deletions(-) create mode 100644 .xkb/types/mac_term diff --git a/.xkb/symbols/mac_term b/.xkb/symbols/mac_term index 92af5c3..41d5de0 100644 --- a/.xkb/symbols/mac_term +++ b/.xkb/symbols/mac_term @@ -11,4 +11,28 @@ default partial xkb_symbols "mac_levelssym" { symbols[Group1]= [ Hyper_R ], actions[group1]=[ SetMods(modifiers=Shift+Control) ] }; + // Page Up + replace key { + type[Group1]= "ONE_LEVEL_CTRL", + symbols[Group1]= [ Up, Up, NoSymbol ], + actions[Group1]= [ NoAction(), NoAction(), RedirectKey(key=,clearmods=Shift+Control)] + }; + // Page Down + replace key { + type[Group1]= "ONE_LEVEL_CTRL", + symbols[Group1]= [ Down, Down, NoSymbol ], + actions[Group1]= [ NoAction(), NoAction(), RedirectKey(key=,clearmods=Shift+Control)] + }; + // HOME + replace key { + type[Group1]= "ONE_LEVEL_CTRL", + symbols[Group1]= [ Up, Up, NoSymbol ], + actions[Group1]= [ NoAction(), NoAction(), RedirectKey(key=,clearmods=Shift+Control)] + }; + // END + replace key { + type[Group1]= "ONE_LEVEL_CTRL", + symbols[Group1]= [ Down, Down, NoSymbol ], + actions[Group1]= [ NoAction(), NoAction(), RedirectKey(key=,clearmods=Shift+Control)] + }; }; \ No newline at end of file diff --git a/.xkb/symbols/mac_term_chromebook b/.xkb/symbols/mac_term_chromebook index 5a02285..8a55465 100644 --- a/.xkb/symbols/mac_term_chromebook +++ b/.xkb/symbols/mac_term_chromebook @@ -11,4 +11,28 @@ default partial xkb_symbols "mac_levelssym" { symbols[Group1]= [ Hyper_R ], actions[group1]=[ SetMods(modifiers=Shift+Control) ] }; + // Page Up + replace key { + type[Group1]= "ONE_LEVEL_CTRL", + symbols[Group1]= [ Up, Up, NoSymbol ], + actions[Group1]= [ NoAction(), NoAction(), RedirectKey(key=,clearmods=Shift+Control)] + }; + // Page Down + replace key { + type[Group1]= "ONE_LEVEL_CTRL", + symbols[Group1]= [ Down, Down, NoSymbol ], + actions[Group1]= [ NoAction(), NoAction(), RedirectKey(key=,clearmods=Shift+Control)] + }; + // HOME + replace key { + type[Group1]= "ONE_LEVEL_CTRL", + symbols[Group1]= [ Up, Up, NoSymbol ], + actions[Group1]= [ NoAction(), NoAction(), RedirectKey(key=,clearmods=Shift+Control)] + }; + // END + replace key { + type[Group1]= "ONE_LEVEL_CTRL", + symbols[Group1]= [ Down, Down, NoSymbol ], + actions[Group1]= [ NoAction(), NoAction(), RedirectKey(key=,clearmods=Shift+Control)] + }; }; diff --git a/.xkb/types/mac_term b/.xkb/types/mac_term new file mode 100644 index 0000000..7b379df --- /dev/null +++ b/.xkb/types/mac_term @@ -0,0 +1,11 @@ +default partial xkb_types "addmac_levels" { + type "ONE_LEVEL_CTRL" { + modifiers= Shift+Control; + map[Shift]= Level2; + // map[Control]= Level3; + map[Shift+Control]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Alt"; + level_name[Level3]= "With Control"; + }; +}; \ No newline at end of file diff --git a/defaults.json b/defaults.json index 8ea15a6..fd53907 100644 --- a/defaults.json +++ b/defaults.json @@ -14,7 +14,7 @@ "xkb_symbols_gui":"+altwin(ctrl_alt_win)+mac_gui(mac_levelssym)", "xkb_symbols_term":"+altwin(swap_alt_win)+mac_term(mac_levelssym)", "xkb_types_gui":"+mac_gui(addmac_levels)", - "xkb_types_term":"" + "xkb_types_term":"+mac_term(addmac_levels)" }, { "id": 2, @@ -27,7 +27,7 @@ "xkb_symbols_gui":"+altwin(ctrl_alt_win)+mac_gui(mac_levelssym)", "xkb_symbols_term":"+altwin(swap_alt_win)+mac_term(mac_levelssym)", "xkb_types_gui":"+mac_gui(addmac_levels)", - "xkb_types_term":"", + "xkb_types_term":"+mac_term(addmac_levels)", "hack": "echo '1' | sudo tee -a /sys/module/hid_apple/parameters/swap_opt_cmd;echo 'options hid_apple swap_opt_cmd=1' | sudo tee -a /etc/modprobe.d/hid_apple.conf;sudo update-initramfs -u -k all" }, { @@ -41,7 +41,7 @@ "xkb_symbols_gui":"+ctrl(swap_lwin_lctl)+ctrl(swap_rwin_rctl)+mac_gui(mac_levelssym)", "xkb_symbols_term":"+altwin(alt_super_win)+mac_term(mac_levelssym)", "xkb_types_gui":"+mac_gui(addmac_levels)", - "xkb_types_term":"" + "xkb_types_term":"+mac_term(addmac_levels)" }, { "id": 4, @@ -54,7 +54,7 @@ "xkb_symbols_gui":"+chromebook(swap_lalt_lctrl)+mac_gui(mac_levelssym)", "xkb_symbols_term":"+altwin(swap_alt_win)+mac_term_chromebook(mac_levelssym)", "xkb_types_gui":"+mac_gui(addmac_levels)", - "xkb_types_term":"" + "xkb_types_term":"+mac_term(addmac_levels)" }, { "id": 5, @@ -68,7 +68,7 @@ "xkb_symbols_gui":"+chromebook(swap_lalt_lctrl)+mac_gui(mac_levelssym)", "xkb_symbols_term":"+altwin(swap_alt_win)+mac_term_chromebook(mac_levelssym)", "xkb_types_gui":"+mac_gui(addmac_levels)", - "xkb_types_term":"" + "xkb_types_term":"+mac_term(addmac_levels)" }, { "id": 6, @@ -81,6 +81,6 @@ "xkb_symbols_gui":"+chromebook(swap_lalt_lctrl)+mac_gui(mac_levelssym)", "xkb_symbols_term":"+altwin(swap_alt_win)+mac_term_chromebook(mac_levelssym)", "xkb_types_gui":"+mac_gui(addmac_levels)", - "xkb_types_term":"" + "xkb_types_term":"+mac_term(addmac_levels)" }] } \ No newline at end of file diff --git a/setup.py b/setup.py index d336f81..173a22f 100755 --- a/setup.py +++ b/setup.py @@ -149,18 +149,18 @@ os.system('setxkbmap -print > ~/.xkb/keymap/kbd.mac.gui.chrome') os.system('setxkbmap -print > ~/.xkb/keymap/kbd.mac.term') time.sleep(0.5) -symbols_gui_line = cmdline("cat ~/.xkb/keymap/kbd.mac.gui | grep -n 'xkb_symbols' | cut -f1 -d:").strip() -types_gui_line = cmdline("cat ~/.xkb/keymap/kbd.mac.gui | grep -n 'xkb_types' | cut -f1 -d:").strip() -symbols_term_line = cmdline("cat ~/.xkb/keymap/kbd.mac.term | grep -n 'xkb_symbols' | cut -f1 -d:").strip() +symbols_line = cmdline("cat ~/.xkb/keymap/kbd.mac.gui | grep -n 'xkb_symbols' | cut -f1 -d:").strip() +types_line = cmdline("cat ~/.xkb/keymap/kbd.mac.gui | grep -n 'xkb_types' | cut -f1 -d:").strip() -cmdline('sed -i '' -e "' + symbols_gui_line + 's/\\"/' + keyboardconfigs[defaultkb-1]['xkb_symbols_gui'] + '\\"/2" ~/.xkb/keymap/kbd.mac.gui') -cmdline('sed -i '' -e "' + types_gui_line + 's/\\"/' + keyboardconfigs[defaultkb-1]['xkb_types_gui'] + '\\"/2" ~/.xkb/keymap/kbd.mac.gui') -cmdline('sed -i '' -e "' + symbols_term_line + 's/\\"/' + keyboardconfigs[defaultkb-1]['xkb_symbols_term'] + '\\"/2" ~/.xkb/keymap/kbd.mac.term') +cmdline('sed -i '' -e "' + symbols_line + 's/\\"/' + keyboardconfigs[defaultkb-1]['xkb_symbols_gui'] + '\\"/2" ~/.xkb/keymap/kbd.mac.gui') +cmdline('sed -i '' -e "' + types_line + 's/\\"/' + keyboardconfigs[defaultkb-1]['xkb_types_gui'] + '\\"/2" ~/.xkb/keymap/kbd.mac.gui') +cmdline('sed -i '' -e "' + symbols_line + 's/\\"/' + keyboardconfigs[defaultkb-1]['xkb_symbols_term'] + '\\"/2" ~/.xkb/keymap/kbd.mac.term') +cmdline('sed -i '' -e "' + types_line + 's/\\"/' + keyboardconfigs[defaultkb-1]['xkb_types_term'] + '\\"/2" ~/.xkb/keymap/kbd.mac.term') -cmdline('sed -i '' -e "' + symbols_gui_line + 's/\\"/' + keyboardconfigs[defaultkb-1]['xkb_symbols_gui'].replace("+mac_gui(mac_levelssym)","") + '\\"/2" ~/.xkb/keymap/kbd.mac.gui.nw') -cmdline('sed -i '' -e "' + symbols_gui_line + 's/\\"/' + keyboardconfigs[defaultkb-1]['xkb_symbols_gui'].replace("+mac_gui(mac_levelssym)","+mac_gui(mac_chrome)") + '\\"/2" ~/.xkb/keymap/kbd.mac.gui.chrome') -cmdline('sed -i '' -e "' + types_gui_line + 's/\\"/' + keyboardconfigs[defaultkb-1]['xkb_types_gui'] + '\\"/2" ~/.xkb/keymap/kbd.mac.gui.nw') -cmdline('sed -i '' -e "' + types_gui_line + 's/\\"/' + keyboardconfigs[defaultkb-1]['xkb_types_gui'] + '\\"/2" ~/.xkb/keymap/kbd.mac.gui.chrome') +cmdline('sed -i '' -e "' + symbols_line + 's/\\"/' + keyboardconfigs[defaultkb-1]['xkb_symbols_gui'].replace("+mac_gui(mac_levelssym)","") + '\\"/2" ~/.xkb/keymap/kbd.mac.gui.nw') +cmdline('sed -i '' -e "' + symbols_line + 's/\\"/' + keyboardconfigs[defaultkb-1]['xkb_symbols_gui'].replace("+mac_gui(mac_levelssym)","+mac_gui(mac_chrome)") + '\\"/2" ~/.xkb/keymap/kbd.mac.gui.chrome') +cmdline('sed -i '' -e "' + types_line + 's/\\"/' + keyboardconfigs[defaultkb-1]['xkb_types_gui'] + '\\"/2" ~/.xkb/keymap/kbd.mac.gui.nw') +cmdline('sed -i '' -e "' + types_line + 's/\\"/' + keyboardconfigs[defaultkb-1]['xkb_types_gui'] + '\\"/2" ~/.xkb/keymap/kbd.mac.gui.chrome') user_file = homedir + '/.config/kinto/user_config.json'