diff --git a/README.md b/README.md index 45636a0..3987e6b 100644 --- a/README.md +++ b/README.md @@ -98,8 +98,6 @@ Other programs that will be installed when you run ./setup.py Note: Sublime Text users should disable screen rotation hotkeys as they will interfere with multi-cursor and possibly other combos. See https://windowsloop.com/disable-screen-rotation-keyboard-shortcut/ for details. -Does not have complete parity with the Linux edition, but it is getting very close now. Only lacks some Sublime Text 3 remaps at this point. - Users can now hotswap between Apple and Windows based keyboards without having to logoff and back on, and Windows is currently the only implementation with a system tray (but this feature is coming to Budgie, XFCE, Mate, Gnome, and lastly KDE). @@ -111,6 +109,7 @@ Users can now hotswap between Apple and Windows based keyboards without having t 1. clone this repo ``` git clone https://github.com/rbreaves/kinto.git +cd kinto ``` 2. Install python3 (If needed) @@ -336,6 +335,21 @@ systemctl --user stop keyswap && setxkbmap -option;setxkbmap -option altwin:swap ## Troubleshooting +### Installed successfully, but modifier keys are not properly remapped? + +Are you using a VM on macOS? If so you may need to disable automatic remapping of the Cmd key when using Vmware Fusion of Parallels. + +Disable Parallels Re-mapping: +1) Open Parallels and go to Preferences. +2) Click Keyboard and disable the Virtual machine shortcuts. +3) Close Preferences. + +To disable keyboard mapping: +1) From Fusion's menu bar, click VMware Fusion > Preferences... +2) Click Keyboard & Mouse. +3) Click the Key Mappings tab. +4) Deselect Enable Key Mapping. + ### Does not start when you log in or after you reboot? Kinto (xkb/x11) = keyswap diff --git a/setup.py b/setup.py index 895f52e..f7a3024 100755 --- a/setup.py +++ b/setup.py @@ -5,6 +5,7 @@ from subprocess import PIPE, Popen from prekinto import * homedir = os.path.expanduser("~") +kintotype = 0 def windows_setup(): keymaps = ["Apple keyboard standard", "Windows keyboard standard","Uninstall"] @@ -183,10 +184,11 @@ def setShortcuts(): cmdline("gsettings set org.gnome.desktop.wm.keybindings panel-main-menu \"['Space','Space']\"") cmdline("gsettings set org.gnome.desktop.wm.keybindings minimize \"['h','F9']\"") cmdline("gsettings set org.gnome.desktop.wm.keybindings panel-main-menu \"['Space','Space']\"") - cmdline('perl -pi -e "s/(\/\/ )(.*)(\/\/ Elementary cmdtab)/\$2\$3/g" ~/.xkb/symbols/mac_term') - cmdline('perl -pi -e "s/(\w.*)(\/\/ Default cmdtab)/\/\/ \$1\$2/g" ~/.xkb/symbols/mac_term') - cmdline('perl -pi -e "s/(\/\/ )(.*)(\/\/ Elementary cmdtab)/\$2\$3/g" ~/.xkb/symbols/mac_gui') - cmdline('perl -pi -e "s/(\w.*)(\/\/ Default cmdtab)/\/\/ \$1\$2/g" ~/.xkb/symbols/mac_gui') + if(kintotype == 2): + cmdline('perl -pi -e "s/(\/\/ )(.*)(\/\/ Elementary cmdtab)/\$2\$3/g" ~/.xkb/symbols/mac_term') + cmdline('perl -pi -e "s/(\w.*)(\/\/ Default cmdtab)/\/\/ \$1\$2/g" ~/.xkb/symbols/mac_term') + cmdline('perl -pi -e "s/(\/\/ )(.*)(\/\/ Elementary cmdtab)/\$2\$3/g" ~/.xkb/symbols/mac_gui') + cmdline('perl -pi -e "s/(\w.*)(\/\/ Default cmdtab)/\/\/ \$1\$2/g" ~/.xkb/symbols/mac_gui') # elif distro == "budgie" and dename == "gnome": # print("Apply budgie shortcuts here") elif (dename == "xfce"): @@ -256,13 +258,15 @@ def setShortcuts(): print('distro: ' + distro + ' de: ' + dename) print(bcolors.CRED2 + "A supported OS and DE was not found, you may not have full system level shortcuts installed." + bcolors.ENDC) print(bcolors.CRED2 + "You may want to find your DE or Window Manager settings and manually set Alt-Tab & other OS related shortcuts." + bcolors.ENDC) - if dename == "gnome": + if dename == "gnome" or dename == "mate" or dename == "budgie": # Apply dconf update to make updates survive reboots cmdline('dconf dump /org/gnome/desktop/wm/keybindings/ > tempkb.conf') cmdline('dconf dump /org/gnome/mutter/keybindings/ > tempmt.conf') cmdline('dconf load /org/gnome/desktop/wm/keybindings/ < tempkb.conf') cmdline('dconf load /org/gnome/mutter/keybindings/ < tempmt.conf') cmdline('sleep 1 && rm -f ./tempkb.conf;rm -f ./tempmt.conf') + if dename == "budgie": + print('** Make sure to open Keyboard settings & reset "switch applications" to cmd+tab **') # cmdline('dconf update') def Uninstall(): @@ -327,14 +331,14 @@ def Uninstall(): def kintoImpOne(): - check_xbind = cmdline("which xbindkeys 2>/dev/null").strip() - check_xdotool = cmdline("which xdotool 2>/dev/null").strip() - check_ibus = cmdline("which ibus-setup 2>/dev/null").strip() + check_xbind = cmdline("\\which xbindkeys 2>/dev/null").strip() + check_xdotool = cmdline("\\which xdotool 2>/dev/null").strip() + check_ibus = cmdline("\\which ibus-setup 2>/dev/null").strip() - pkgm = cmdline("which apt-get 2>/dev/null").strip() + pkgm = cmdline("\\which apt-get 2>/dev/null").strip() if len(pkgm) == 0: - pkgm = cmdline("which dnf 2>/dev/null").strip() + pkgm = cmdline("\\which dnf 2>/dev/null").strip() if len(pkgm) > 0: pkgm += " check-update;sudo dnf install -y " else: @@ -342,7 +346,7 @@ def kintoImpOne(): pkgm += " update; sudo apt-get install -y " if len(pkgm) == 0: - pkgm = cmdline("which pacman 2>/dev/null").strip() + pkgm = cmdline("\\which pacman 2>/dev/null").strip() if len(pkgm) > 0: pkgm += " -Syy; sudo pacman -S " diff --git a/uninstall.sh b/uninstall.sh index 3cd3d63..8019cf6 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -1,8 +1,8 @@ #!/bin/bash # Undo Apple keyboard cmd & alt swap if test -f "/sys/module/hid_apple/parameters/swap_opt_cmd" && [ `cat /sys/module/hid_apple/parameters/swap_opt_cmd` == "1" ]; then - echo '0' | sudo tee -a /sys/module/hid_apple/parameters/swap_opt_cmd - echo 'options hid_apple swap_opt_cmd=0' | sudo tee -a /etc/modprobe.d/hid_apple.conf + echo '0' | sudo tee /sys/module/hid_apple/parameters/swap_opt_cmd + echo 'options hid_apple swap_opt_cmd=0' | sudo tee /etc/modprobe.d/hid_apple.conf sudo update-initramfs -u -k all fi systemctl --user stop keyswap 2>/dev/null diff --git a/windows/kinto.ahk b/windows/kinto.ahk index 99da4df..2f73df7 100644 --- a/windows/kinto.ahk +++ b/windows/kinto.ahk @@ -75,6 +75,7 @@ GroupAdd, terminals, ahk_exe ConEmu64.exe GroupAdd, terminals, ahk_exe powershell.exe GroupAdd, terminals, ahk_exe WindowsTerminal.exe GroupAdd, terminals, ahk_exe Hyper.exe +GroupAdd, terminals, ahk_exe mintty.exe GroupAdd, terminals, ahk_exe Cmd.exe GroupAdd, terminals, ahk_exe Terminus.exe GroupAdd, terminals, Fluent Terminal ahk_class ApplicationFrameWindow @@ -95,6 +96,12 @@ GroupAdd, editors, ahk_exe sublime_text.exe GroupAdd, editors, ahk_exe VSCodium.exe GroupAdd, editors, ahk_exe Code.exe +GroupAdd, browsers, ahk_exe chrome.exe +GroupAdd, browsers, ahk_exe opera.exe +GroupAdd, browsers, ahk_exe firefox.exe +; Disabled Edge for now - no ability to close all instances +; GroupAdd, browsers, Microsoft Edge ahk_class ApplicationFrameWindow + GroupAdd, vscode, ahk_exe VSCodium.exe GroupAdd, vscode, ahk_exe Code.exe @@ -290,6 +297,13 @@ $^+Right::Send +{End} #+d::Send ^+F9 ;Debug context configuration from editor ; VCS/Local History #v::Send !` ;VCS quick popup + ; Sigints - interrupt + $#c::Send {Ctrl down}c{Ctrl up} +#If + +; Close all browsers +#IfWinActive ahk_group browsers + ^q::send {Alt Down}f{Alt Up}x ; exit all windows #If ; Sublime Text Remaps for VS Code @@ -301,6 +315,8 @@ $^+Right::Send +{End} ; Remap Ctrl+Cmd+G to select all matches ; #^g::send ^+{L} ; ST2CODE !+g::send ^+{G} ; View source control + ; Sigints - interrupt + $#c::Send {Ctrl down}c{Ctrl up} #If #IfWinActive ahk_exe sublime_text.exe @@ -377,7 +393,10 @@ $^+Right::Send +{End} ; Paste ^v:: - If WinActive("ahk_group posix"){ + If WinActive("ahk_exe mintty.exe"){ + Send {Shift down}{Insert}{Shift up} + } + else if WinActive("ahk_group posix"){ Send {Blind}{Shift down}v{Shift up} } else{ diff --git a/xkeysnail-config/kinto.py b/xkeysnail-config/kinto.py index 40b0a62..3ad6182 100644 --- a/xkeysnail-config/kinto.py +++ b/xkeysnail-config/kinto.py @@ -10,6 +10,11 @@ terminals = ["gnome-terminal","konsole","io.elementary.terminal","terminator","s terminals = [term.casefold() for term in terminals] termStr = "|".join(str(x) for x in terminals) +# Use for browser specific hotkeys +browsers = ["Chromium","Chromium-browser","Google-chrome","Epiphany","Firefox","Discord"] +browsers = [browser.casefold() for browser in browsers] +browserStr = "|".join(str(x) for x in browsers) + mscodes = ["code","vscodium"] codeStr = "|".join(str(x) for x in mscodes) @@ -18,22 +23,22 @@ define_conditional_modmap(lambda wm_class: wm_class.casefold() not in terminals, # # Chromebook # Key.LEFT_ALT: Key.RIGHT_CTRL, # Chromebook # Key.LEFT_CTRL: Key.LEFT_ALT, # Chromebook - # Key.RIGHT_ALT: Key.RIGHT_CTRL, # Chromebook - # Key.RIGHT_CTRL: Key.RIGHT_ALT, # Chromebook + # Key.RIGHT_ALT: Key.RIGHT_CTRL, # Chromebook - Multi-language (Remove) + # Key.RIGHT_CTRL: Key.RIGHT_ALT, # Chromebook - Multi-language (Remove) # # Default Mac/Win # Key.LEFT_ALT: Key.RIGHT_CTRL, # WinMac # Key.LEFT_META: Key.LEFT_ALT, # WinMac # Key.LEFT_CTRL: Key.LEFT_META, # WinMac - # Key.RIGHT_ALT: Key.RIGHT_CTRL, # WinMac - # Key.RIGHT_META: Key.RIGHT_ALT, # WinMac - # Key.RIGHT_CTRL: Key.RIGHT_META, # WinMac + # Key.RIGHT_ALT: Key.RIGHT_CTRL, # WinMac - Multi-language (Remove) + # Key.RIGHT_META: Key.RIGHT_ALT, # WinMac - Multi-language (Remove) + # Key.RIGHT_CTRL: Key.RIGHT_META, # WinMac - Multi-language (Remove) # # Mac Only # Key.LEFT_META: Key.RIGHT_CTRL, # Mac # Key.LEFT_CTRL: Key.LEFT_META, # Mac - # Key.RIGHT_META: Key.RIGHT_CTRL, # Mac - # Key.RIGHT_CTRL: Key.RIGHT_META, # Mac + # Key.RIGHT_META: Key.RIGHT_CTRL, # Mac - Multi-language (Remove) + # Key.RIGHT_CTRL: Key.RIGHT_META, # Mac - Multi-language (Remove) }) # [Conditional modmap] Change modifier keys in certain applications @@ -51,14 +56,104 @@ define_conditional_modmap(re.compile(termStr, re.IGNORECASE), { # Key.LEFT_META: Key.LEFT_ALT, # WinMac # Key.LEFT_CTRL: Key.LEFT_CTRL, # WinMac # Key.RIGHT_ALT: Key.RIGHT_CTRL, # WinMac - Multi-language (Remove) - # Key.RIGHT_META: Key.RIGHT_ALT, # WinMac - # Key.RIGHT_CTRL: Key.LEFT_CTRL, # WinMac + # Key.RIGHT_META: Key.RIGHT_ALT, # WinMac - Multi-language (Remove) + # Key.RIGHT_CTRL: Key.LEFT_CTRL, # WinMac - Multi-language (Remove) # # Mac Only # Key.LEFT_META: Key.RIGHT_CTRL, # Mac # # Left Ctrl Stays Left Ctrl - # Key.RIGHT_META: Key.RIGHT_CTRL, # Mac - # Key.RIGHT_CTRL: Key.LEFT_CTRL, # Mac + # Key.RIGHT_META: Key.RIGHT_CTRL, # Mac - Multi-language (Remove) + # Key.RIGHT_CTRL: Key.LEFT_CTRL, # Mac - Multi-language (Remove) +}) + +# Keybindings for IntelliJ +define_keymap(re.compile("jetbrains-idea", re.IGNORECASE),{ + # General + K("C-Key_0"): K("M-Key_0"), # Open corresponding tool window + K("C-Key_1"): K("M-Key_1"), # Open corresponding tool window + K("C-Key_2"): K("M-Key_2"), # Open corresponding tool window + K("C-Key_3"): K("M-Key_3"), # Open corresponding tool window + K("C-Key_4"): K("M-Key_4"), # Open corresponding tool window + K("C-Key_5"): K("M-Key_5"), # Open corresponding tool window + K("C-Key_6"): K("M-Key_6"), # Open corresponding tool window + K("C-Key_7"): K("M-Key_7"), # Open corresponding tool window + K("C-Key_8"): K("M-Key_8"), # Open corresponding tool window + K("C-Key_9"): K("M-Key_9"), # Open corresponding tool window + K("Super-Grave"): K("C-Grave"), # Quick switch current scheme + K("C-Comma"): K("C-M-s"), # Open Settings dialog + K("C-Semicolon"): K("C-M-Shift-s"), # Open Project Structure dialog + # Debugging + K("C-M-r"): K("F9"), # Resume program + # Search/Replace + K("C-g"): K("F3"), # Find next + K("C-Shift-F3"): K("Shift-F3"), # Find previous + K("Super-g"): K("M-j"), # Select next occurrence + K("C-Super-g"): K("C-M-Shift-j"), # Select all occurrences + K("Super-Shift-g"): K("M-Shift-j"), # Unselect occurrence + # Editing + K("Super-Space"): K("C-Space"), # Basic code completion + K("Super-Shift-Space"): K("C-Shift-Space"), # Smart code completion + K("Super-j"): K("C-q"), # Quick documentation lookup + K("C-n"): K("M-Insert"), # Generate code... + K("Super-o"): K("C-o"), # Override methods + K("Super-i"): K("C-i"), # Implement methods + K("M-Up"): K("C-w"), # Extend selection + K("M-Down"): K("C-Shift-w"), # Shrink selection + K("Super-Shift-q"): K("M-q"), # Context info + K("Super-M-o"): K("C-M-o"), # Optimize imports + K("Super-M-i"): K("C-M-i"), # Auto-indent line(s) + K("C-Backspace"): K("C-y"), # Delete line at caret + K("Super-Shift-j"): K("C-Shift-j"), # Smart line join + K("M-Delete"): K("C-Delete"), # Delete to word end + K("M-Backspace"): K("C-Backspace"), # Delete to word start + K("C-Shift-Equal"): K("C-KPPLUS"), # Expand code block + K("C-Minus"): K("C-KPMINUS"), # Collapse code block + K("C-Shift-Equal"): K("C-Shift-KPPLUS"), # Expand all + K("C-Shift-Minus"): K("C-Shift-KPMINUS"), # Collapse all + K("C-w"): K("C-F4"), # Close active editor tab + # Refactoring + K("C-Delete"): K("M-Delete"), # Safe Delete + K("C-T"): K("C-M-Shift-t"), # Refactor this + # Navigation + K("C-o"): K("C-n"), # Go to class + K("C-Shift-o"): K("C-Shift-n"), # Go to file + K("C-M-o"): K("C-M-Shift-n"), # Go to symbol + K("Super-Right"): K("M-Right"), # Go to next editor tab + K("Super-Left"): K("M-Left"), # Go to previous editor tab + K("Super-l"): K("C-g"), # Go to line + K("Super-e"): K("C-e"), # Recent files popup + K("M-Space"): K("C-Shift-i"), # Open quick definition lookup + K("C-Y"): K("C-Shift-i"), # Open quick definition lookup + K("Super-Shift-b"): K("C-Shift-b"), # Go to type declaration + K("Super-Up"): K("M-Up"), # Go to previous + K("Super-Down"): K("M-Down"), # Go to next method + K("Super-h"): K("C-h"), # Type hierarchy + K("Super-M-h"): K("C-M-h"), # Call hierarchy + K("C-Down"): K("C-Enter"), # Edit source/View source + K("M-Home"): K("M-Home"), # Show navigation bar + K("F2"): K("F11"), # Toggle bookmark + K("Super-F3"): K("C-F11"), # Toggle bookmark with mnemonic + K("Super-Key_0"): K("C-Key_0"), # Go to numbered bookmark + K("Super-Key_1"): K("C-Key_1"), # Go to numbered bookmark + K("Super-Key_2"): K("C-Key_2"), # Go to numbered bookmark + K("Super-Key_3"): K("C-Key_3"), # Go to numbered bookmark + K("Super-Key_4"): K("C-Key_4"), # Go to numbered bookmark + K("Super-Key_5"): K("C-Key_5"), # Go to numbered bookmark + K("Super-Key_6"): K("C-Key_6"), # Go to numbered bookmark + K("Super-Key_7"): K("C-Key_7"), # Go to numbered bookmark + K("Super-Key_8"): K("C-Key_8"), # Go to numbered bookmark + K("Super-Key_9"): K("C-Key_9"), # Go to numbered bookmark + K("C-F3"): K("Shift-F11"), # Show bookmarks + # Compile and Run + K("Super-M-r"): K("M-Shift-F10"), # Select configuration and run + K("Super-M-d"): K("M-Shift-F9"), # Select configuration and debug + K("Super-r"): K("Shift-F10"), # Run + K("Super-d"): K("Shift-F9"), # Debug + K("Super-Shift-r"): K("C-Shift-F10"), # Run context configuration from editor + K("Super-Shift-d"): K("C-Shift-F9"), # Debug context configuration from editor + # VCS/Local History + K("Super-v"): K("M-Grave"), # VCS quick popup + K("Super-c"): K("LC-c"), # Sigints - interrupt }) # Keybindings for Nautilus @@ -69,6 +164,11 @@ define_keymap(re.compile("org.gnome.nautilus", re.IGNORECASE),{ K("RC-Right"): K("M-Right"), # Go Forward }) +# Keybindings for Browsers +define_keymap(re.compile(browserStr, re.IGNORECASE),{ + K("RC-Q"): K("RC-Q"), # Close all browsers Instances +}) + define_keymap(None,{ # Basic App hotkey functions K("RC-Q"): K("Alt-F4"), @@ -161,6 +261,7 @@ define_keymap(re.compile(codeStr, re.IGNORECASE),{ K("C-g"): K("f3"), # find_next K("Shift-f3"): pass_through_key, # cancel find_prev K("C-Shift-g"): K("Shift-f3"), # find_prev + K("Super-c"): K("LC-c"), # Sigints - interrupt # K("Super-C-g"): K("C-f2"), # Default - Sublime - find_all_under # K("C-M-g"): K("C-f2"), # Chromebook - Sublime - find_all_under # K("Super-Shift-up"): K("M-Shift-up"), # multi-cursor up - Sublime diff --git a/xkeysnail_service.sh b/xkeysnail_service.sh index ecaac7b..bbe8ce9 100755 --- a/xkeysnail_service.sh +++ b/xkeysnail_service.sh @@ -75,13 +75,13 @@ function uninstall { function removeAppleKB { # Undo Apple keyboard cmd & alt swap if test -f "/sys/module/hid_apple/parameters/swap_opt_cmd" && [ `cat /sys/module/hid_apple/parameters/swap_opt_cmd` == "1" ]; then - echo '0' | sudo tee -a /sys/module/hid_apple/parameters/swap_opt_cmd - echo 'options hid_apple swap_opt_cmd=0' | sudo tee -a /etc/modprobe.d/hid_apple.conf + echo '0' | sudo tee /sys/module/hid_apple/parameters/swap_opt_cmd + echo 'options hid_apple swap_opt_cmd=0' | sudo tee /etc/modprobe.d/hid_apple.conf sudo update-initramfs -u -k all fi if test -f "/sys/module/applespi/parameters/swap_opt_cmd" && [ `cat /sys/module/applespi/parameters/swap_opt_cmd` == "1" ]; then - echo '0' | sudo tee -a /sys/module/applespi/parameters/swap_opt_cmd - echo 'options applespi swap_opt_cmd=0' | sudo tee -a /etc/modprobe.d/applespi.conf + echo '0' | sudo tee /sys/module/applespi/parameters/swap_opt_cmd + echo 'options applespi swap_opt_cmd=0' | sudo tee /etc/modprobe.d/applespi.conf sudo update-initramfs -u -k all fi } @@ -115,7 +115,7 @@ function budgieUpdate { budgieVersion="$(/usr/bin/budgie-desktop --version | awk '{ print $2; }' | head -n1)" if [ "$budgieVersion" == "10.5.1" ]; then if ! [ -f ./system-config/budgie-daemon_10.5.1 ]; then - wget https://github.com/rbreaves/budgie-desktop/raw/f112e0e349c021c1bbfa7e45c16083eae0d92fac/binaries/budgie-daemon_10.5.1 -O ./system-config/budgie-daemon_10.5.1 + wget https://github.com/rbreaves/budgie-desktop/blob/binaries/binaries/budgie-daemon_10.5.1?raw=true -O ./system-config/budgie-daemon_10.5.1 fi bdmd5=$(md5sum /usr/bin/budgie-daemon | awk '{ print $1 }') newbdmd5=$(md5sum ./system-config/budgie-daemon_10.5.1 | awk '{ print $1 }') @@ -151,9 +151,9 @@ function budgieUpdate { if [ $# -eq 0 ]; then echo "Install Kinto - xkeysnail (udev)" - echo " 1) Windows & Mac (HID driver)" - echo " 2) Mac Only & VMs on Macbooks" - echo " 3) Chromebook" + echo " 1) Windows & Mac (HID driver) - Most Standard keyboards (& 1st party usb/bt Apple keyboards)" + echo " 2) Mac Only & VMs on Macbooks - 3rd & 1st party Apple keyboards" + echo " 3) Chromebook - Chromebook running Linux" # echo " 5) Uninstall" read n @@ -168,7 +168,7 @@ vssublime=false if [[ $1 == "1" || $1 == "2" || $1 == "3" || $1 == "winmac" || $1 == "mac" || $1 == "chromebook" ]]; then while true; do - read -rep $'\nDo you want multi-language support (the right Alt key will not remap)? (y/N)\n' yn + read -rep $'\nDo you want multi-language on Right Alt key? (y/N)\naka Left side remaps, right side doesn\'t\n' yn case $yn in [Yy]* ) rightalt=true; break;; * ) break;; @@ -234,6 +234,7 @@ if [[ $1 == "1" || $1 == "2" || $1 == "3" || $1 == "winmac" || $1 == "mac" || $1 chmod +x ~/.kde/Autostart/kintohost.sh # KDE startup - xhost fix + mkdir -p ~/.config/autostart yes | cp -rf ./xkeysnail-config/xkeysnail.desktop ~/.config/autostart/xkeysnail.desktop yes | cp -rf ./xkeysnail-config/xkeystart.sh ~/.config/kinto/xkeystart.sh @@ -251,14 +252,14 @@ if [[ $1 == "1" || $1 == "2" || $1 == "3" || $1 == "winmac" || $1 == "mac" || $1 fi sed -i "s/{username}/`whoami`/g" ./xkeysnail-config/xkeysnail.service.new sed -i "s#{homedir}#`echo "$HOME"`#g" ./xkeysnail-config/xkeysnail.service.new - sed -i "s#{xhost}#`which xhost`#g" ./xkeysnail-config/xkeysnail.service.new + sed -i "s#{xhost}#`\\which xhost`#g" ./xkeysnail-config/xkeysnail.service.new sed -i "s/{username}/`whoami`/g" ./xkeysnail-config/limitedadmins.new sed -i "s#{homedir}#`echo "$HOME"`#g" ./xkeysnail-config/limitedadmins.new - sed -i "s#{systemctl}#`which systemctl`#g" ./xkeysnail-config/limitedadmins.new + sed -i "s#{systemctl}#`\\which systemctl`#g" ./xkeysnail-config/limitedadmins.new sudo chown root:root ./xkeysnail-config/limitedadmins.new sudo mv ./xkeysnail-config/limitedadmins.new /etc/sudoers.d/limitedadmins - sed -i "s#{systemctl}#`which systemctl`#g" ~/.config/autostart/xkeysnail.desktop - sed -i "s#{xhost}#`which xhost`#g" ~/.config/autostart/xkeysnail.desktop + sed -i "s#{systemctl}#`\\which systemctl`#g" ~/.config/autostart/xkeysnail.desktop + sed -i "s#{xhost}#`\\which xhost`#g" ~/.config/autostart/xkeysnail.desktop sed -i "s#{homedir}#`echo "$HOME"`#g" ~/.config/kinto/prexk.sh sed -i "s/{displayid}/`echo "$DISPLAY"`/g" ./xkeysnail-config/xkeysnail.service.new sed -i "s/{displayid}/`echo "$DISPLAY"`/g" ~/.config/kinto/prexk.sh @@ -270,10 +271,10 @@ fi if [[ $1 == "1" || $1 == "winmac" ]]; then if ls /sys/module | grep hid_apple >/dev/null 2>&1 ; then - 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 + echo '1' | sudo tee /sys/module/hid_apple/parameters/swap_opt_cmd;echo 'options hid_apple swap_opt_cmd=1' | sudo tee /etc/modprobe.d/hid_apple.conf;sudo update-initramfs -u -k all fi if ls /sys/module | grep applespi >/dev/null 2>&1 ; then - echo '1' | sudo tee -a /sys/module/applespi/parameters/swap_opt_cmd;echo 'options applespi swap_opt_cmd=1' | sudo tee -a /etc/modprobe.d/applespi.conf;sudo update-initramfs -u -k all + echo '1' | sudo tee /sys/module/applespi/parameters/swap_opt_cmd;echo 'options applespi swap_opt_cmd=1' | sudo tee /etc/modprobe.d/applespi.conf;sudo update-initramfs -u -k all fi if ! ls /sys/module | grep apple ; then removeAppleKB