Compare commits

..

3 Commits

Author SHA1 Message Date
Ben Reaves
ad35946adb Merge pull request #144 from rbreaves/dev
- Case insensitivity for xkey config. General term tab switching restored. Fixes #143
2020-05-03 12:58:43 -05:00
Ben Reaves
6aa77a30a8 Merge pull request #142 from rbreaves/dev
- Minor fix for non-elementary terminal keymap
2020-05-02 22:46:33 -05:00
Ben Reaves
e22cc5b6c7 Merge pull request #140 from rbreaves/dev
- Xkeysnail added to Production branch
2020-05-02 22:02:14 -05:00
23 changed files with 27 additions and 609 deletions

4
.gitattributes vendored
View File

@@ -1,3 +1,3 @@
*.py linguist-detectable=true
*.py linguist-detectable=false
*.json liguist-detectable=false
*.c linguist-detectable=true
*.c linguist-detectable=true

137
README.md
View File

@@ -10,34 +10,6 @@
Seamless copy and paste with all apps and terminals. Also the only linux remapper that is aware of your cursor/caret status - meaning it avoids shortcut conflicts within an app versus wordwise shortcuts when a text field is in use. (xkeysnail implementation of Kinto has caret checking disabled in master for now.)
## Table of Contents
[What does this do exactly?](#What-does-this-do-exactly)
[What does Kinto require?](#What-does-Kinto-require)
[How to install](#How-to-install)
[Shortcut Creation (Xkeysnail)](#Shortcut-Creation-Xkeysnail)
[Other Notes Related to Install](#Other-Notes-Related-to-Install)
[How to Upgrade/Control Kinto](#How-to-Upgrade-Kinto)
[Troubleshooting](#Troubleshooting)
[Language Support](#Language-Support)
[Related or Useful Resources](#Related-or-Useful-Resources)
[Contributing](#Contributing)
[More information about Kinto](#More-information-about-Kinto)
[License](#License)
[Credits and Contributions](#Credits-and-Contributions)
## What does this do exactly?
Kinto works for standard Windows, Apple and Chromebook keyboards. The following however describes the dynamic rebinding based on a standard Windows keyboard. (Alt location is Cmd for Apple keyboards)
@@ -48,10 +20,6 @@ Kinto works for standard Windows, Apple and Chromebook keyboards. The following
- Cursor/word-wise shortcut keys have been added to align with macOS keyboard shortcuts.
Does Kinto have to have specific keyamps for individual apps?
I'd say 90+% of the time no, but every OS has their default conventions that sometimes run afoul to macs. For this reason you can easily edit kinto.py or kinto.ahk to support the few shortcut keys Kinto may miss. If you do add additional support please consider forking this project and sharing your new keymaps with the rest of us!
## What does Kinto require?
- Python (initial install only)
@@ -68,7 +36,7 @@ On most distros you can confirm navigate to your "Language Support" and set "Key
Wayland support is planned, but not ready yet.
### Kinto for Windows 10 Requirements
## Kinto for Windows 10 Requirements
- WSL Ubuntu edition
- Powershell - run as Administrator
@@ -117,9 +85,9 @@ To Uninstall Kinto
**Terminal Keys**
| Value| Description|Mac/Kinto Equivalent|
| ----- |:--------:|:--------:|
|RC,RCtrl|Right Control Left & Right Alt/Cmd key|Cmd|
|M,Alt|Alt/Option|Alt/Option|
|LC,LCtrl |Left Control|Ctrl|
|RC,RCtrl|Right Control on Left & Right Alt/Cmd key|Cmd|
|M,Alt| Alt/Option|Alt/Option|
|Ctrl | Ctrl|Ctrl|
You can define new keymaps for your specific app via this method. You also do not have to cancel out the original keybinding if you do not need or want to, but you can do so with "pass_through_key".
@@ -148,9 +116,7 @@ The older xkb shortcut method info can be read about in ticket [#125](https://gi
## Other Notes Related to Install
**Manjaro with Gnome there are issues with caret/input checking.**
Only impacts back/forward hotkeys for web browsers.
**Manjaro with Gnome there are issues.**
Please see this ticket for more information.
@@ -223,6 +189,7 @@ systemctl --user disable keyswap
sudo systemctl disable xkeysnail
```
## Learning macOS style hotkeys on Linux
You can use websites like https://www.shortcutfoo.com in Google Chrome while using the terminal style keymap, but Firefox is not compatible due to detecting "cmd" as keycode 224. Chrome detects Win/Super/Cmd as keycode 91 on all OS's.
@@ -346,102 +313,16 @@ sudo systemctl start xkeysnail
sudo systemctl status xkeysnail
```
## Notes about Windows 10
Sharpkeys was used to create the layout/reg files to swap the Ctrl, Win and Alt keys. Sharpkeys was not required however because the reg keys were extracted. Autohotkey is used to manage keyswaps needed for terminal usage. Autohotkey is also used to add additional mac like keybinds for Sublime text and can be used for other apps as well.
Microsoft is working on a new Powertoy Keyboard Manager that could be used with an easier to use GUI interface, but this approach should be fully sufficient for a mac like experience and autohotkeys appears to be more than capable enough to handle complex rebinding of any or most mac like shortcuts.
## Language Support
I'd appreciate any help from people with non-US based keyboards, to help ensure that these keymaps and keyswap methods work in all or most languages.
If you would like to attempt adding additional custom keymaps for other languages then I strongly recommend reading Glen Whitney's post here.
https://superuser.com/questions/385748/binding-superc-superv-to-copy-and-paste
## Related or Useful Resources
## Notes about Windows 10
Sharpkeys was used to create the layout/reg files to swap the Ctrl, Win and Alt keys. Sharpkeys was not required however because the reg keys were extracted. Autohotkey is used to manage keyswaps needed for terminal usage. Autohotkey is also used to add additional mac like keybinds for Sublime text and can be used for other apps as well.
[Xkeysnail](https://github.com/mooz/xkeysnail) by mooz
Yet another keyboard remapping tool for X environment
[fusuma](https://github.com/iberianpig/fusuma) by iberianpig
Multitouch gestures with libinput driver on Linux
[Fluent Terminal - Windows only](https://github.com/felixse/FluentTerminal) by felixse
A Terminal Emulator based on UWP and web technologies.
[PowerToys - Windows only](https://github.com/microsoft/PowerToys) by microsoft
Windows system utilities to maximize productivity
[AutoHotKey - Windows only](https://github.com/AutoHotkey/AutoHotkey) by AutoHotkey
AutoHotkey is a powerful and easy to use scripting language for desktop automation on Windows.
[pykeymacs](https://github.com/zhanghai/pykeymacs) by zhanghai
Emacs style keyboard macros implemented in Python
[Dynamic Wallpapers](https://github.com/adi1090x/dynamic-wallpaper) by adi1090x
Simple bash script to set a Dynamic Wallpaper according to certain conditions.
[macify-linux](https://github.com/Jonchun/macify-linux) by JonChun
Automated setup scripts to transform Linux into macOS. (Uses Kinto for key remaps)
[ibus-typing-booster](https://github.com/mike-fabian/ibus-typing-booster) by mike-fabian
ibus-typing-booster is a completion input method for faster typing
[twemoji color font](https://github.com/eosrei/twemoji-color-font) by eosrei
Twitter Unicode 12 emoji color SVGinOT font for Linux/MacOS/Windows
[iTerm2 Color Schemes](https://github.com/mbadolato/iTerm2-Color-Schemes) by mbadolato
Over 225 terminal color schemes/themes for iTerm/iTerm2. Includes ports to Terminal, Konsole, PuTTY, Xresources, XRDB, Remmina, Termite, XFCE, Tilda, FreeBSD VT, Terminator, Kitty...
[espanso](https://github.com/federico-terzi/espanso) by federico-terzi
Cross-platform Text Expander written in Rust
[GalliumOS](https://github.com/GalliumOS/galliumos-distro) by GalliumOS
Docs, issues, and artwork sources for GalliumOS
[eOS-X](https://github.com/ipproductions/eOS-X) by ipproductions
Dark & Light Theme w/ OSX controls for Elementary OS
[Autorandr](https://github.com/phillipberndt/autorandr) by phillipberndt
Auto-detect the connected display hardware and load the appropriate X11 setup using xrandr
[Barrier](https://github.com/debauchee/barrier) by debauchee
Open-source KVM software
[Synergy Free Binaries](https://github.com/amankhoza/synergy-binaries) by amankhoza
The latest freely available Synergy binaries
[Synergy Official](https://symless.com/) by Symless
Latest Official Synergy
[Karabiner-Elements](https://github.com/pqrs-org/Karabiner-Elements) by pqrs-org
Karabiner-Elements is a powerful utility for keyboard customization on macOS Sierra (10.12) or later.
[mbpfan](https://github.com/linux-on-mac/mbpfan) by linux-on-mac
A simple daemon to control fan speed on all MacBook/MacBook Pros (probably all Apple computers) for Linux Kernel 3 and newer
[vala-panel](https://github.com/rilian-la-te/vala-panel) by rilian-la-te
Vala rewrite of SimplePanel - GitHub mirror (Global Menu for XFCE)
Microsoft is working on a new Powertoy Keyboard Manager that could be used with an easier to use GUI interface, but this approach should be fully sufficient for a mac like experience and autohotkeys appears to be more than capable enough to handle complex rebinding of any or most mac like shortcuts.
## Contributing

View File

@@ -1,432 +0,0 @@
{"scancode":"01",
"eventcode":1,
"eventname":"ESC"},
{"scancode":"02",
"eventcode":2,
"eventname":"1"},
{"scancode":"03",
"eventcode":3,
"eventname":"2"},
{"scancode":"04",
"eventcode":4,
"eventname":"3"},
{"scancode":"05",
"eventcode":5,
"eventname":"4"},
{"scancode":"06",
"eventcode":6,
"eventname":"5"},
{"scancode":"07",
"eventcode":7,
"eventname":"6"},
{"scancode":"08",
"eventcode":8,
"eventname":"7"},
{"scancode":"09",
"eventcode":9,
"eventname":"8"},
{"scancode":"0a",
"eventcode":10,
"eventname":"9"},
{"scancode":"0b",
"eventcode":11,
"eventname":"0"},
{"scancode":"0c",
"eventcode":12,
"eventname":"MINUS"},
{"scancode":"0d",
"eventcode":13,
"eventname":"EQUAL"},
{"scancode":"0e",
"eventcode":14,
"eventname":"BACKSPACE"},
{"scancode":"0f",
"eventcode":15,
"eventname":"TAB"},
{"scancode":"10",
"eventcode":16,
"eventname":"Q"},
{"scancode":"11",
"eventcode":17,
"eventname":"W"},
{"scancode":"12",
"eventcode":18,
"eventname":"E"},
{"scancode":"13",
"eventcode":19,
"eventname":"R"},
{"scancode":"14",
"eventcode":20,
"eventname":"T"},
{"scancode":"15",
"eventcode":21,
"eventname":"Y"},
{"scancode":"16",
"eventcode":22,
"eventname":"U"},
{"scancode":"17",
"eventcode":23,
"eventname":"I"},
{"scancode":"18",
"eventcode":24,
"eventname":"O"},
{"scancode":"19",
"eventcode":25,
"eventname":"P"},
{"scancode":"1a",
"eventcode":26,
"eventname":"LEFTBRACE"},
{"scancode":"1b",
"eventcode":27,
"eventname":"RIGHTBRACE"},
{"scancode":"1c",
"eventcode":28,
"eventname":"ENTER"},
{"scancode":"1d",
"eventcode":29,
"eventname":"LEFTCTRL"},
{"scancode":"1e",
"eventcode":30,
"eventname":"A"},
{"scancode":"1f",
"eventcode":31,
"eventname":"S"},
{"scancode":"20",
"eventcode":32,
"eventname":"D"},
{"scancode":"21",
"eventcode":33,
"eventname":"F"},
{"scancode":"22",
"eventcode":34,
"eventname":"G"},
{"scancode":"23",
"eventcode":35,
"eventname":"H"},
{"scancode":"24",
"eventcode":36,
"eventname":"J"},
{"scancode":"25",
"eventcode":37,
"eventname":"K"},
{"scancode":"26",
"eventcode":38,
"eventname":"L"},
{"scancode":"27",
"eventcode":39,
"eventname":"SEMICOLON"},
{"scancode":"28",
"eventcode":40,
"eventname":"APOSTROPHE"},
{"scancode":"29",
"eventcode":41,
"eventname":"GRAVE"},
{"scancode":"2a",
"eventcode":42,
"eventname":"LEFTSHIFT"},
{"scancode":"2b",
"eventcode":43,
"eventname":"BACKSLASH"},
{"scancode":"2c",
"eventcode":44,
"eventname":"Z"},
{"scancode":"2d",
"eventcode":45,
"eventname":"X"},
{"scancode":"2e",
"eventcode":46,
"eventname":"C"},
{"scancode":"2f",
"eventcode":47,
"eventname":"V"},
{"scancode":"30",
"eventcode":48,
"eventname":"B"},
{"scancode":"31",
"eventcode":49,
"eventname":"N"},
{"scancode":"32",
"eventcode":50,
"eventname":"M"},
{"scancode":"33",
"eventcode":51,
"eventname":"COMMA"},
{"scancode":"34",
"eventcode":52,
"eventname":"DOT"},
{"scancode":"35",
"eventcode":53,
"eventname":"SLASH"},
{"scancode":"36",
"eventcode":54,
"eventname":"RIGHTSHIFT"},
{"scancode":"37",
"eventcode":55,
"eventname":"KPASTERISK"},
{"scancode":"38",
"eventcode":56,
"eventname":"LEFTALT"},
{"scancode":"39",
"eventcode":57,
"eventname":"SPACE"},
{"scancode":"40",
"eventcode":58,
"eventname":"CAPSLOCK"},
{"scancode":"41",
"eventcode":59,
"eventname":"F1"},
{"scancode":"42",
"eventcode":60,
"eventname":"F2"},
{"scancode":"43",
"eventcode":61,
"eventname":"F3"},
{"scancode":"44",
"eventcode":62,
"eventname":"F4"},
{"scancode":"45",
"eventcode":63,
"eventname":"F5"},
{"scancode":"46",
"eventcode":64,
"eventname":"F6"},
{"scancode":"47",
"eventcode":65,
"eventname":"F7"},
{"scancode":"48",
"eventcode":66,
"eventname":"F8"},
{"scancode":"49",
"eventcode":67,
"eventname":"F9"},
{"scancode":"50",
"eventcode":68,
"eventname":"F10"},
{"scancode":"51",
"eventcode":69,
"eventname":"NUMLOCK"},
{"scancode":"52",
"eventcode":70,
"eventname":"SCROLLLOCK"},
{"scancode":"53",
"eventcode":71,
"eventname":"KP7"},
{"scancode":"54",
"eventcode":72,
"eventname":"KP8"},
{"scancode":"55",
"eventcode":73,
"eventname":"KP9"},
{"scancode":"56",
"eventcode":74,
"eventname":"KPMINUS"},
{"scancode":"57",
"eventcode":75,
"eventname":"KP4"},
{"scancode":"58",
"eventcode":76,
"eventname":"KP5"},
{"scancode":"59",
"eventcode":77,
"eventname":"KP6"},
{"scancode":"5A",
"eventcode":78,
"eventname":"KPPLUS"},
{"scancode":"5B",
"eventcode":79,
"eventname":"KP1"},
{"scancode":"5C",
"eventcode":80,
"eventname":"KP2"},
{"scancode":"5D",
"eventcode":81,
"eventname":"KP3"},
{"scancode":"5E",
"eventcode":82,
"eventname":"KP0"},
{"scancode":"5F",
"eventcode":83,
"eventname":"KPDOT"},
{"scancode":"60",
"eventcode":85,
"eventname":"ZENKAKUHANKAKU"},
{"scancode":"61",
"eventcode":86,
"eventname":"102ND"},
{"scancode":"62",
"eventcode":87,
"eventname":"F11"},
{"scancode":"63",
"eventcode":88,
"eventname":"F12"},
{"scancode":"64",
"eventcode":89,
"eventname":"RO"},
{"scancode":"65",
"eventcode":90,
"eventname":"KATAKANA"},
{"scancode":"66",
"eventcode":91,
"eventname":"HIRAGANA"},
{"scancode":"67",
"eventcode":92,
"eventname":"HENKAN"},
{"scancode":"68",
"eventcode":93,
"eventname":"KATAKANAHIRAGANA"},
{"scancode":"69",
"eventcode":94,
"eventname":"MUHENKAN"},
{"scancode":"6A",
"eventcode":95,
"eventname":"KPJPCOMMA"},
{"scancode":"6B",
"eventcode":96,
"eventname":"KPENTER"},
{"scancode":"6C",
"eventcode":97,
"eventname":"RIGHTCTRL"},
{"scancode":"6D",
"eventcode":98,
"eventname":"KPSLASH"},
{"scancode":"6E",
"eventcode":99,
"eventname":"SYSRQ"},
{"scancode":"6F",
"eventcode":100,
"eventname":"RIGHTALT"},
{"scancode":"70",
"eventcode":102,
"eventname":"HOME"},
{"scancode":"71",
"eventcode":103,
"eventname":"UP"},
{"scancode":"72",
"eventcode":104,
"eventname":"PAGEUP"},
{"scancode":"73",
"eventcode":105,
"eventname":"LEFT"},
{"scancode":"74",
"eventcode":106,
"eventname":"RIGHT"},
{"scancode":"75",
"eventcode":107,
"eventname":"END"},
{"scancode":"76",
"eventcode":108,
"eventname":"DOWN"},
{"scancode":"77",
"eventcode":109,
"eventname":"PAGEDOWN"},
{"scancode":"78",
"eventcode":110,
"eventname":"INSERT"},
{"scancode":"79",
"eventcode":111,
"eventname":"DELETE"},
{"scancode":"7A",
"eventcode":112,
"eventname":"MACRO"},
{"scancode":"7B",
"eventcode":113,
"eventname":"MUTE"},
{"scancode":"7C",
"eventcode":114,
"eventname":"VOLUMEDOWN"},
{"scancode":"7D",
"eventcode":115,
"eventname":"VOLUMEUP"},
{"scancode":"7E",
"eventcode":116,
"eventname":"POWER"},
{"scancode":"7F",
"eventcode":117,
"eventname":"KPEQUAL"},
{"scancode":"80",
"eventcode":118,
"eventname":"KPPLUSMINUS"},
{"scancode":"81",
"eventcode":119,
"eventname":"PAUSE"},
{"scancode":"82",
"eventcode":121,
"eventname":"KPCOMMA"},
{"scancode":"83",
"eventcode":122,
"eventname":"HANGUEL"},
{"scancode":"84",
"eventcode":123,
"eventname":"HANJA"},
{"scancode":"85",
"eventcode":124,
"eventname":"YEN"},
{"scancode":"86",
"eventcode":125,
"eventname":"LEFTMETA"},
{"scancode":"87",
"eventcode":126,
"eventname":"RIGHTMETA"},
{"scancode":"88",
"eventcode":127,
"eventname":"COMPOSE"},
{"scancode":"89",
"eventcode":128,
"eventname":"STOP"},
{"scancode":"8A",
"eventcode":140,
"eventname":"CALC"},
{"scancode":"8B",
"eventcode":142,
"eventname":"SLEEP"},
{"scancode":"8C",
"eventcode":143,
"eventname":"WAKEUP"},
{"scancode":"8D",
"eventcode":155,
"eventname":"MAIL"},
{"scancode":"8E",
"eventcode":156,
"eventname":"BOOKMARKS"},
{"scancode":"8F",
"eventcode":157,
"eventname":"COMPUTER"},
{"scancode":"90",
"eventcode":158,
"eventname":"BACK"},
{"scancode":"91",
"eventcode":159,
"eventname":"FORWARD"},
{"scancode":"92",
"eventcode":163,
"eventname":"NEXTSONG"},
{"scancode":"93",
"eventcode":164,
"eventname":"PLAYPAUSE"},
{"scancode":"94",
"eventcode":165,
"eventname":"PREVIOUSSONG"},
{"scancode":"95",
"eventcode":166,
"eventname":"STOPCD"},
{"scancode":"96",
"eventcode":172,
"eventname":"HOMEPAGE"},
{"scancode":"97",
"eventcode":173,
"eventname":"REFRESH"},
{"scancode":"98",
"eventcode":183,
"eventname":"F13"},
{"scancode":"99",
"eventcode":184,
"eventname":"F14"},
{"scancode":"9A",
"eventcode":185,
"eventname":"F15"},
{"scancode":"9B",
"eventcode":217,
"eventname":"SEARCH"},
{"scancode":"9C",
"eventcode":226,
"eventname":"MEDIA"}

View File

@@ -70,7 +70,6 @@ def setShortcuts():
cmdline("gsettings set org.gnome.desktop.wm.keybindings switch-applications-backward \"['<Primary>F14','<Primary><Shift>F14','<Alt><Shift>Tab']\"")
cmdline("gsettings set org.gnome.desktop.wm.keybindings minimize \"['<Super>h','<Alt>F9']\"")
cmdline("gsettings set org.gnome.desktop.wm.keybindings panel-main-menu \"['<Primary><Shift>Space','<Primary>Space']\"")
cmdline("gsettings set org.gnome.mutter overlay-key ''")
if distro == "ubuntu" and dename == "gnome":
cmdline("gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-up \"['<Super>Up','<Super>Left']\"")
cmdline("gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-down \"['<Super>Down','<Super>Right']\"")
@@ -155,8 +154,6 @@ def setShortcuts():
if(kintotype == 1):
cmdline('kwriteconfig5 --file "$HOME/.config/kglobalshortcutsrc" --group "kwin" --key "Walk Through Windows" "Ctrl+Tools,Alt+Tab,Walk Through Windows"')
cmdline('kwriteconfig5 --file "$HOME/.config/kglobalshortcutsrc" --group "kwin" --key "Walk Through Windows (Reverse)" "Ctrl+Shift+Tools,Alt+Shift+Backtab,Walk Through Windows (Reverse)"')
cmdline('kwriteconfig5 --file "$HOME/.config/kglobalshortcutsrc" --group "kwin" --key "Walk Through Windows of Current Application" "Alt+F6,none,Walk Through Windows of Current Application"')
cmdline('kwriteconfig5 --file "$HOME/.config/kglobalshortcutsrc" --group "kwin" --key "Walk Through Windows of Current Application (Reverse)" "Alt+Shift+F6,none,Walk Through Windows of Current Application (Reverse)"')
else:
cmdline('kwriteconfig5 --file "$HOME/.config/kglobalshortcutsrc" --group "kwin" --key "Walk Through Windows" "Ctrl+F13,Alt+Tab,Walk Through Windows"')
cmdline('kwriteconfig5 --file "$HOME/.config/kglobalshortcutsrc" --group "kwin" --key "Walk Through Windows (Reverse)" "Ctrl+Shift+F14,Alt+Shift+Backtab,Walk Through Windows (Reverse)"')
@@ -218,7 +215,7 @@ def Uninstall():
if dename == "gnome":
print("Restoring DE hotkeys...")
wmkeys = cmdline('ls | grep -m1 "keybinding"')
mutterkeys = cmdline('ls | grep -m1 "mutter_"')
mutterkeys = cmdline('ls | grep -m1 "mutter"')
if len(wmkeys) > 0:
print('dconf load /org/gnome/desktop/wm/keybindings/ < ' + wmkeys)
cmdline('dconf load /org/gnome/desktop/wm/keybindings/ < ' + wmkeys)
@@ -241,7 +238,7 @@ def Uninstall():
cmdline('cp ./' + xfcekeys + ' ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml')
if dename == "gnome" or dename == "kde" or dename == "xfce":
print("./uninstall.sh\n")
subprocess.check_call(shlex.split("./uninstall.sh"))
cmdline("./uninstall.sh")
print("Done.")
if dename == "kde" or dename == "xfce":
print("Please log off and back on for your original hotkeys to take effect.")
@@ -252,10 +249,6 @@ def Uninstall():
cmdline("gsettings reset-recursively org.gnome.desktop.wm.keybindings")
print("gsettings reset-recursively org.gnome.mutter.keybindings")
cmdline("gsettings reset-recursively org.gnome.mutter.keybindings")
print("gsettings set org.gnome.mutter overlay-key 'super'")
cmdline("gsettings set org.gnome.mutter overlay-key 'super'")
cmdline('dconf dump /org/gnome/mutter/ > mutter.conf')
cmdline('dconf load /org/gnome/mutter/ < mutter.conf')
elif dename == "kde":
print("Resetting DE hotkeys...\n")
cmdline('mv ~/.config/kwinrc ~/.config/kwinrc.kinto')
@@ -265,7 +258,7 @@ def Uninstall():
cmdline('cp /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml')
if dename == "gnome" or dename == "kde" or dename == "xfce":
print("./uninstall.sh\n")
subprocess.check_call(shlex.split("./uninstall.sh"))
cmdline("./uninstall.sh")
print("Done.")
if dename == "kde" or dename == "xfce":
print("Please log off and back on for your original DE hotkeys to take effect.")
@@ -362,25 +355,11 @@ color_arr = [bcolors.CBEIGE,bcolors.CRED2,bcolors.CGREEN,bcolors.CYELLOW ]
print("\nKinto - Type in Linux like it's a Mac.\n")
kintotype = int(input(color_arr[2] +
"1) Kinto - xkeysnail (udev/x11) - Recommended\n" + color_arr[0] +
"2) Kinto - Original xkb/x11 implementation\n" + color_arr[3] +
"3) Uninstall Kinto - xkeysnail\n" +
"4) Uninstall Kinto - Original xkb\n\n"
+ bcolors.ENDC))
kintotype = int(input(color_arr[2] + "1) Kinto - xkeysnail (udev/x11) - Recommended\n" + color_arr[0] + "2) Kinto - Original xkb/x11 implementation\n\n" + bcolors.ENDC))
print("")
if(kintotype == 1):
setShortcuts()
subprocess.check_call(shlex.split("./xkeysnail_service.sh"))
if os.path.isdir(homedir + "/.config/kinto") == True:
setShortcuts()
exit()
if(kintotype == 3):
subprocess.check_call(shlex.split("./xkeysnail_service.sh uninstall"))
exit()
if(kintotype == 4):
Uninstall()
exit()
for index, item in enumerate(data['defaulttypes']):

View File

@@ -1,10 +1,5 @@
#!/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
sudo update-initramfs -u -k all
fi
systemctl --user stop keyswap 2>/dev/null
systemctl --user disable keyswap
systemctl --user stop keyswap.timer 2>/dev/null
@@ -14,6 +9,5 @@ rm ~/.config/systemd/user/keyswap.timer
rm -rf ~/.config/autostart/kinto.desktop
rm -rf ~/.config/kinto
rm -rf ~/.xkb
sudo systemctl daemon-reload
sed -i '/xkb/d' ~/.Xsession 2>/dev/null
exit 0
systemctl daemon-reload
sed -i '/xkb/d' ~/.Xsession 2>/dev/null

View File

@@ -16,7 +16,7 @@
"symbols":"",
"types":"",
"de":[],
"appnames":[ "Gnome-terminal","konsole","io.elementary.terminal","terminator","sakura","guake","tilda","xterm","eterm","kitty","alacritty" ]
"appnames":[ "Gnome-terminal","konsole","io.elementary.terminal","terminator","sakura","guake","tilda","xterm","eterm","kitty" ]
},
{
"name": "firefox",
@@ -73,4 +73,4 @@
"run_term":"",
"run_gui":""
}]
}
}

View File

@@ -3,7 +3,7 @@
import re
from xkeysnail.transform import *
terminals = ["gnome-terminal","konsole","io.elementary.terminal","terminator","sakura","guake","tilda","xterm","eterm","kitty","alacritty"]
terminals = ["gnome-terminal","konsole","io.elementary.terminal","terminator","sakura","guake","tilda","xterm","eterm","kitty"]
terminals = [term.casefold() for term in terminals]
termStr = "|".join(str(x) for x in terminals)
@@ -67,8 +67,7 @@ define_keymap(None,{
# Cmd Tab - App Switching Default
K("RC-Tab"): K("RC-F13"), # Default
K("RC-Shift-Tab"): K("RC-Shift-F13"), # Default
K("RC-Grave"): K("M-F6"), # Default
K("RC-Shift-Grave"): K("M-Shift-F6"), # Default
K("RC-Grave"): K("RC-Shift-F13"), # Default
# K("RC-Tab"): K("RC-backslash"), # Chromebook
# K("RC-Shift-Tab"): K("RC-Shift-backslash"), # Chromebook
# K("RC-Grave"): K("RC-Shift-backslash"), # Chromebook
@@ -78,6 +77,7 @@ define_keymap(None,{
# K("M-Grave") : K("C-Shift-Tab"), # Chromebook - In-App Tab switching
K("Super-Tab"): K("LC-Tab"), # Default
K("Super-Shift-Tab"): K("LC-Shift-Tab"), # Default
K("LC-Grave") : K("LC-Shift-Tab"), # Default
# Wordwise
K("RC-Left"): K("Home"), # Beginning of Line
@@ -220,7 +220,7 @@ define_keymap(re.compile("konsole", re.IGNORECASE),{
}, "Konsole tab switching")
define_keymap(re.compile("Io.elementary.terminal|kitty", re.IGNORECASE),{
define_keymap(re.compile("Io.elementary.terminal", re.IGNORECASE),{
# Ctrl Tab - In App Tab Switching
K("LC-Tab") : K("LC-Shift-Right"),
K("LC-Shift-Tab") : K("LC-Shift-Left"),

View File

@@ -27,10 +27,6 @@ function uninstall {
gsettings reset-recursively org.gnome.desktop.wm.keybindings
echo "gsettings reset-recursively org.gnome.mutter.keybindings"
gsettings reset-recursively org.gnome.mutter.keybindings
echo "gsettings set org.gnome.mutter overlay-key 'super'"
gsettings set org.gnome.mutter overlay-key 'super'
dconf dump /org/gnome/mutter/ > mutter.conf
dconf load /org/gnome/mutter/ < mutter.conf
elif [ "$dename" == "kde" ];then
echo "Resetting DE hotkeys..."
mv ~/.config/kwinrc ~/.config/kwinrc.kinto
@@ -44,7 +40,7 @@ function uninstall {
if [ "$dename" == "gnome" ]; then
echo "Restoring DE hotkeys..."
wmkeys=$(ls | grep -m1 "keybinding")
mutterkeys=$(ls | grep -m1 "mutter_")
mutterkeys=$(ls | grep -m1 "mutter")
if [[ ${#wmkeys} > 0 ]]; then
echo "dconf load /org/gnome/desktop/wm/keybindings/ < $wmkeys"
dconf load /org/gnome/desktop/wm/keybindings/ < "$wmkeys"
@@ -77,7 +73,7 @@ if [ $# -eq 0 ]; then
echo " 1) Windows & Mac (HID driver)"
echo " 2) Mac Only & VMs on Macbooks"
echo " 3) Chromebook"
# echo " 4) Uninstall"
echo " 4) Uninstall"
read n