- Corrected keyboard detection bug and updated files in prep of a future keymap update.

This commit is contained in:
Ben Reaves
2019-08-05 15:34:14 -05:00
parent 134bc4c597
commit d4dbfd67dc
7 changed files with 112 additions and 14 deletions

View File

@@ -24,9 +24,9 @@ default partial xkb_symbols "mac_levelssym" {
actions[Group1]= [ NoAction(), NoAction(), RedirectKey(key=<END>)]
};
// CTRL BKSP to DELETE
replace key <BKSP> {
type[Group1]= "TWO_LEVEL_CTRL",
symbols[Group1]= [ BackSpace, BackSpace, NoSymbol ],
actions[Group1]= [ NoAction(), NoAction(), RedirectKey(key=<DELE>,clearmods=Control)]
};
// replace key <BKSP> {
// type[Group1]= "TWO_LEVEL_CTRL",
// symbols[Group1]= [ BackSpace, BackSpace, NoSymbol ],
// actions[Group1]= [ NoAction(), NoAction(), RedirectKey(key=<DELE>,clearmods=Control)]
// };
};

80
.xkb/symbols/mac_term Normal file
View File

@@ -0,0 +1,80 @@
default partial xkb_symbols "mac_levelssym" {
// Cut
replace key <AB02> {
type[Group1]= "ALPHABETIC_SUPER",
symbols[Group1]= [ x, X, NoSymbol ],
actions[Group1]= [ NoAction(), NoAction(), RedirectKey(key=<LatX>,mods=Control+Shift,clearmods=Super)]
};
// Copy
replace key <AB03> {
type[Group1]= "ALPHABETIC_SUPER",
symbols[Group1]= [ c, C, NoSymbol ],
actions[Group1]= [ NoAction(), NoAction(), RedirectKey(key=<LatC>,mods=Control+Shift,clearmods=Super)]
};
// Paste
replace key <AB04> {
type[Group1]= "ALPHABETIC_SUPER",
symbols[Group1]= [ v, V, NoSymbol ],
actions[Group1]= [ NoAction(), NoAction(), RedirectKey(key=<LatV>,mods=Control+Shift,clearmods=Super)]
};
// New Tab
replace key <AD05> {
type[Group1]= "ALPHABETIC_SUPER",
symbols[Group1]= [ t, T, NoSymbol ],
actions[Group1]= [ NoAction(), NoAction(), RedirectKey(key=<LatT>,mods=Control+Shift,clearmods=Super)]
};
// New Window
replace key <AB06> {
type[Group1]= "ALPHABETIC_SUPER",
symbols[Group1]= [ n, N, NoSymbol ],
actions[Group1]= [ NoAction(), NoAction(), RedirectKey(key=<LatN>,mods=Control+Shift,clearmods=Super)]
};
// Close Tab
replace key <AD02> {
type[Group1]= "ALPHABETIC_SUPER",
symbols[Group1]= [ w, W, NoSymbol ],
actions[Group1]= [ NoAction(), NoAction(), RedirectKey(key=<LatW>,mods=Control+Shift,clearmods=Super)]
};
// Close Window
replace key <AD01> {
type[Group1]= "ALPHABETIC_SUPER",
symbols[Group1]= [ q, Q, NoSymbol ],
actions[Group1]= [ NoAction(), NoAction(), RedirectKey(key=<LatQ>,mods=Control+Shift,clearmods=Super)]
};
// Scroll back reset
replace key <AC08> {
type[Group1]= "ALPHABETIC_SUPER",
symbols[Group1]= [ k, K, NoSymbol ],
actions[Group1]= [ NoAction(), NoAction(), RedirectKey(key=<LatK>,mods=Control+Shift,clearmods=Super)]
};
// Detach Tab
replace key <AC06> {
type[Group1]= "ALPHABETIC_SUPER",
symbols[Group1]= [ h, H, NoSymbol ],
actions[Group1]= [ NoAction(), NoAction(), RedirectKey(key=<LatH>,mods=Control+Shift,clearmods=Super)]
};
// Find
replace key <AC04> {
type[Group1]= "ALPHABETIC_SUPER",
symbols[Group1]= [ f, F, NoSymbol ],
actions[Group1]= [ NoAction(), NoAction(), RedirectKey(key=<LatF>,mods=Control+Shift,clearmods=Super)]
};
// Close Active
replace key <AC02> {
type[Group1]= "ALPHABETIC_SUPER",
symbols[Group1]= [ s, S, NoSymbol ],
actions[Group1]= [ NoAction(), NoAction(), RedirectKey(key=<LatS>,mods=Control+Shift,clearmods=Super)]
};
// Close Others
replace key <AD09> {
type[Group1]= "ALPHABETIC_SUPER",
symbols[Group1]= [ o, O, NoSymbol ],
actions[Group1]= [ NoAction(), NoAction(), RedirectKey(key=<LatO>,mods=Control+Shift,clearmods=Super)]
};
// Show Menu
replace key <AB07> {
type[Group1]= "ALPHABETIC_SUPER",
symbols[Group1]= [ m, M, NoSymbol ],
actions[Group1]= [ NoAction(), NoAction(), RedirectKey(key=<LatM>,mods=Control+Shift,clearmods=Super)]
};
};

13
.xkb/types/mac_term Normal file
View File

@@ -0,0 +1,13 @@
default partial xkb_types "addmac_levels" {
type "ALPHABETIC_SUPER" {
modifiers= Shift+Lock+Mod4;
map[Shift]= Level2;
map[Lock]= Level2;
map[Mod4]= Level3;
map[Shift+Mod4]= Level3;
map[Lock+Mod4]= Level3;
level_name[Level1]= "Base";
level_name[Level2]= "Caps";
level_name[Level3]= "With Super";
};
};

View File

@@ -1,7 +1,12 @@
#!/bin/bash
mkdir -p ~/.xkb/{keymap,symbols}
mkdir -p ~/.xkb/{keymap,symbols,types}
cp ./.xkb/symbols/chromebook ~/.xkb/symbols/chromebook
cp ./.xkb/symbols/mac_gui ~/.xkb/symbols/mac_gui
cp ./.xkb/types/mac_term ~/.xkb/types/mac_term
setxkbmap -option
setxkbmap -print > ~/.xkb/keymap/kbd.gui
line=$(cat ~/.xkb/keymap/kbd.gui | grep -n 'xkb_symbols' | cut -f1 -d:)
sed -ie "${line}s/)\"/)+chromebook(swap_lalt_lctrl)+mac_onelvl(mac_onelvlsym)\"/g" ~/.xkb/keymap/kbd.gui
setxkbmap -print > ~/.xkb/keymap/kbd.chromebook.gui
line=$(cat ~/.xkb/keymap/kbd.chromebook.gui | grep -n 'xkb_symbols' | cut -f1 -d:)
sed -ie "${line}s/)\"/)+chromebook(swap_lalt_lctrl)+mac_gui(mac_onelvlsym)\"/g" ~/.xkb/keymap/kbd.chromebook.gui
sleep 1
line=$(cat ~/.xkb/keymap/kbd.mac.gui | grep -n 'xkb_types' | cut -f1 -d:)
sed -ie "${line}s/)\"/)+mac_gui(addmac_levels)\"/g" ~/.xkb/keymap/kbd.chromebook.gui

View File

@@ -31,7 +31,7 @@ def keyboard_detect():
result = subprocess.check_output('xinput list | grep -iv "Virtual\|USB" | grep -i "keyboard.*keyboard" | grep -o -P "(?<=↳).*(?=id\=)";exit 0', shell=True).decode('utf-8')
if result != "":
internal_kbname = result.strip()
internalid = subprocess.check_output('xinput list | grep -iv "Virtual\|USB" | grep -i "keyboard.*keyboard" | cut -d "=" -f 2- | awk \'{print $1}\';exit 0', shell=True).decode('utf-8')
internalid = subprocess.check_output('xinput list | grep -iv "Virtual\|USB" | grep -i "keyboard.*keyboard" | cut -d "=" -f 2- | awk \'{print $1}\' | tail -1;exit 0', shell=True).decode('utf-8')
print("Internal Keyboard\nName: " + internal_kbname + "\nID: " + internalid)
result = subprocess.check_output('udevadm info -e | grep -o -P "(?<=by-id/usb-).*(?=-event-kbd)" | head -1;exit 0', shell=True).decode('utf-8')

View File

@@ -1,11 +1,11 @@
#!/bin/bash
mkdir -p ~/.xkb/{keymap,symbols,types}
cp ./.xkb/symbols/mac_levels ~/.xkb/symbols/mac_levels
cp ./.xkb/types/mac_levels ~/.xkb/types/mac_levels
cp ./.xkb/symbols/mac_gui ~/.xkb/symbols/mac_gui
cp ./.xkb/types/mac_term ~/.xkb/types/mac_term
setxkbmap -option
setxkbmap -print > ~/.xkb/keymap/kbd.mac.gui
line=$(cat ~/.xkb/keymap/kbd.mac.gui | grep -n 'xkb_symbols' | cut -f1 -d:)
sed -ie "${line}s/)\"/)+altwin(ctrl_alt_win)+mac_levels(mac_levelssym)\"/g" ~/.xkb/keymap/kbd.mac.gui
sed -ie "${line}s/)\"/)+altwin(ctrl_alt_win)+mac_gui(mac_levelssym)\"/g" ~/.xkb/keymap/kbd.mac.gui
sleep 1
line=$(cat ~/.xkb/keymap/kbd.mac.gui | grep -n 'xkb_types' | cut -f1 -d:)
sed -ie "${line}s/)\"/)+altwin(ctrl_alt_win)+mac_levels(addmac_levels)\"/g" ~/.xkb/keymap/kbd.mac.gui
sed -ie "${line}s/)\"/)+mac_gui(addmac_levels)\"/g" ~/.xkb/keymap/kbd.mac.gui