mirror of
https://github.com/rbreaves/kinto.git
synced 2025-08-02 09:06:40 +02:00
Compare commits
42 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
c4dcd3febc | ||
![]() |
7c289b7d0c | ||
![]() |
48ef1c596a | ||
![]() |
8c677e8ef0 | ||
![]() |
bd8ea9c4e1 | ||
![]() |
9df95e8b8d | ||
![]() |
e654929d1e | ||
![]() |
f1b37a8cbd | ||
![]() |
f922caff78 | ||
![]() |
68173fb5b6 | ||
![]() |
53f320e0b9 | ||
![]() |
dfec4f7eb1 | ||
![]() |
1fb5bf2a4b | ||
![]() |
656e2fafc9 | ||
![]() |
3af5eb286d | ||
![]() |
3945d5c29e | ||
![]() |
afefc5b0f1 | ||
![]() |
b66f2c591a | ||
![]() |
e12c51f98f | ||
![]() |
8690436629 | ||
![]() |
0eadd9b3a4 | ||
![]() |
1d6d367c39 | ||
![]() |
1e46a4dc74 | ||
![]() |
7aeb3dc44c | ||
![]() |
6968e08f2f | ||
![]() |
40ea2b6175 | ||
![]() |
367d55b04b | ||
![]() |
2864ae409a | ||
![]() |
e477848b59 | ||
![]() |
26dacc7984 | ||
![]() |
a3d8ac782a | ||
![]() |
acd0b8031e | ||
![]() |
9543eba753 | ||
![]() |
738aee9465 | ||
![]() |
dc826b8454 | ||
![]() |
8bd6ed242f | ||
![]() |
d96e238550 | ||
![]() |
e1948dcb08 | ||
![]() |
7e0680ff75 | ||
![]() |
a46bb911c9 | ||
![]() |
f4cad2a1e3 | ||
![]() |
ba10ff6ced |
42
README.md
42
README.md
@@ -21,9 +21,7 @@ Seamless copy and paste with all apps and terminals. The zero effort solution.
|
||||
|
||||
[How to install (Windows)](#How-to-install-Windows)
|
||||
|
||||
[Shortcut Creation (Xkeysnail)](#Shortcut-Creation-Xkeysnail)
|
||||
|
||||
[Shortcut Creation (Autohotkey)](#Shortcut-Creation-Autohotkey)
|
||||
[Shortcut Creation](#Shortcut-Creation)
|
||||
|
||||
[Other Notes Related to Install](#Other-Notes-Related-to-Install)
|
||||
|
||||
@@ -63,7 +61,7 @@ Kinto works for standard Windows, Apple and Chromebook keyboards. The following
|
||||
|
||||
## What's different?
|
||||
|
||||
Compared to most other remappers ***this is a complete system-wide remap of your base level modifier keys*** , this saves time. You're not going to die a death of thousand papercuts from trying to support every shortcut key under the sun.
|
||||
Compared to most other remappers ***this is a complete system-wide remap of your base level modifier keys***, this saves time. You're not going to die a death of a thousand papercuts from trying to support every shortcut key under the sun.
|
||||
|
||||
It also retains some of the most commonly used system level shortcut keys, such as Cmd-C/V, Cmd-Tab, and Ctrl-Tab among others. You will keep seamless copy & paste between all apps, ability to switch Windows while still using the physical Cmd/Alt key position; switch tabs in your favorite terminals, code editors, or web browsers. Depending on your OS and/or Desktop Environment you may also be able to switch Virtual Desktop environments the same way as well and other basic system level shortcuts.
|
||||
|
||||
@@ -81,9 +79,11 @@ Additionally, if you are using a cross-platform app and if it happens to have a
|
||||
- Fedora/RHEL (may not work w/ xkeysnail, but original xkb version does)
|
||||
- xkeysnail (Recommended, but optional)
|
||||
|
||||
Note: Budgie DE's, so Ubuntu Budgie, appears to have a bug where keybinds may not save across reboots. Please reset the Cmd+Tab keymap before rebooting to ensure it remembers that setting. I will remove this once the issue is resolved.
|
||||
|
||||
*IBus is needed to support wordwise during browser app usage as the keymap will need to change slightly depending if the cursor/caret is on screen waiting for input. Setup.py will set it but you can manually set it as well or check your current Input Method.
|
||||
|
||||
On most distros you can confirm navigate to your "Language Support" and set "Keyboard input method system:" to IBus for full word-wise support with web browsers.
|
||||
On most distros you can confirm Input Methods by navigating to "Language Support" and set "Keyboard input method system:" to IBus for full word-wise support with web browsers.
|
||||
|
||||
Wayland support is planned, but not ready yet.
|
||||
|
||||
@@ -100,8 +100,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).
|
||||
|
||||
<img src="https://user-images.githubusercontent.com/10969616/84471498-100c7d00-ac4b-11ea-972d-60c1907831ec.png" width="50%">
|
||||
@@ -113,6 +111,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)
|
||||
|
||||
@@ -160,8 +159,16 @@ To Uninstall Kinto - Select Uninstall
|
||||
```
|
||||
py setup.py
|
||||
```
|
||||
## Shortcut Creation
|
||||
|
||||
## Shortcut Creation (Xkeysnail)
|
||||
Note: A new project, [Universal Keys](https://github.com/rbreaves/Universal-Keys), has been created that will be updated to contain all current remaps - plus many more. Once that is done, Kinto will be updated to programmatically pull the latest keymaps from simple csv comma delimited files & will build out key remaps from there. This will also allow for more types of remaps within an application category, Sublime Text 3 to VS Code or VS Code to Sublime Text 3, Photoshop to Gimp, Gimp to Photoshop, etc & it will ensure that xkeysnail (linux) & autohotkey (windows) are pulling from the same data set.
|
||||
|
||||
[Linux Shortcut Creation (Xkeysnail)](#Linux-Xkeysnail)
|
||||
|
||||
[Windows Shortcut Creation (Autohotkey)](#Windows-Autohotkey)
|
||||
|
||||
|
||||
## Linux (Xkeysnail)
|
||||
|
||||
**GUI Keys**
|
||||
| Value| Description|Mac/Kinto Equivalent|
|
||||
@@ -199,7 +206,7 @@ sudo systemctl restart xkeysnail
|
||||
|
||||
More information can be seen on the readme page of [xkeysnail](https://github.com/mooz/xkeysnail).
|
||||
|
||||
## Shortcut Creation (Autohotkey)
|
||||
## Windows (Autohotkey)
|
||||
|
||||
This applies to the Windows version of Kinto and how to add additional support for Applications. The configuration file location is `~/.kinto/kinto.ahk` and after updating it you will want to right click on the tray icon and click on setting your keyboard type again and it will re-apply the latest changes.
|
||||
|
||||
@@ -237,7 +244,7 @@ With this being Autohotkey you can easily pull knowledge from the Autohotkey for
|
||||
#If
|
||||
```
|
||||
|
||||
I don't have too many examples on this one have only ran into a single UWP app, and most developers seem to be shying away from it. Kinto currently support "Fluent Terminal" which is a UWP app, but it is also being grouped together with other Terminal apps for hotkey remapping. You may take a look at that, but you may also create a new Autohotkey file and use the Window Spy feature built into Autohotkey to help you discover the full name and class names of any application.
|
||||
I don't have too many examples on this one, most developers seem to be shying away from UWP. Kinto currently supports "Fluent Terminal" which is a UWP app, but it is also being grouped with other Terminal apps for hotkey remapping. You may take a look at that, but you may also want to try creating a new Autohotkey file and use the Window Spy feature built into Autohotkey to help you discover the full name and class names of any application.
|
||||
|
||||
## Shortcut Creation (XKB)
|
||||
The older xkb shortcut method info can be read about in ticket [#125](https://github.com/rbreaves/kinto/issues/125).
|
||||
@@ -330,6 +337,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
|
||||
|
26
setup.py
26
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 \"['<Control><Shift>Space','<Super>Space']\"")
|
||||
cmdline("gsettings set org.gnome.desktop.wm.keybindings minimize \"['<Super>h','<Alt>F9']\"")
|
||||
cmdline("gsettings set org.gnome.desktop.wm.keybindings panel-main-menu \"['<Super>Space','<Primary>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 "
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
||||
@@ -173,6 +180,44 @@ $LCtrl up::Send {Ctrl down}{LWin up}{Ctrl up}
|
||||
; Close Apps
|
||||
^q::Send !{F4}
|
||||
|
||||
; Minimize specific Window
|
||||
^m::WinMinimize, A
|
||||
|
||||
; Minimize all but Active Window
|
||||
!^m::
|
||||
WinGet, winid ,, A
|
||||
WinMinimizeAll
|
||||
WinActivate ahk_id %winid%
|
||||
return
|
||||
|
||||
; hide all instances of active Program
|
||||
^h::
|
||||
WinGetClass, class, A
|
||||
WinGet, AllWindows, List
|
||||
loop %AllWindows% {
|
||||
WinGetClass, WinClass, % "ahk_id " AllWindows%A_Index%
|
||||
if(InStr(WinClass,class)){
|
||||
WinMinimize, % "ahk_id " AllWindows%A_Index%
|
||||
}
|
||||
}
|
||||
return
|
||||
|
||||
; hide all but active program
|
||||
!^h::
|
||||
WinGetClass, class, A
|
||||
WinMinimizeAll
|
||||
WinGet, AllWindows, List
|
||||
loop %AllWindows% {
|
||||
WinGetClass, WinClass, % "ahk_id " AllWindows%A_Index%
|
||||
if(InStr(WinClass,class)){
|
||||
WinRestore, % "ahk_id " AllWindows%A_Index%
|
||||
}
|
||||
}
|
||||
return
|
||||
|
||||
; Show Desktop
|
||||
^F3::Send #d
|
||||
|
||||
; Emoji Panel
|
||||
#^Space::Send {LWin down};{LWin up}
|
||||
|
||||
@@ -201,6 +246,99 @@ $^+Right::Send +{End}
|
||||
; Cmd+Space Alternative
|
||||
^Space::Send ^{Esc}
|
||||
|
||||
#IfWinActive ahk_group intellij
|
||||
; General
|
||||
^0::Send !{0} ;Open corresponding tool window
|
||||
^1::Send !{1} ;Open corresponding tool window
|
||||
^2::Send !{2} ;Open corresponding tool window
|
||||
^3::Send !{3} ;Open corresponding tool window
|
||||
^4::Send !{4} ;Open corresponding tool window
|
||||
^5::Send !{5} ;Open corresponding tool window
|
||||
^6::Send !{6} ;Open corresponding tool window
|
||||
^7::Send !{7} ;Open corresponding tool window
|
||||
^8::Send !{8} ;Open corresponding tool window
|
||||
^9::Send !{9} ;Open corresponding tool window
|
||||
#`::Send ^` ;Quick switch current scheme
|
||||
^,::Send ^!s ;Open Settings dialog
|
||||
^;::Send ^!+s ;Open Project Structure dialog
|
||||
; Debugging
|
||||
^!r::Send {F9} ;Resume program
|
||||
; Search/Replace
|
||||
^g::Send {F3} ;Find next
|
||||
^+F3::Send +{F3} ;Find previous
|
||||
#g::Send !j ;Select next occurrence
|
||||
^#g::Send ^!+j ;Select all occurrences
|
||||
#+g::Send !+j ;Unselect occurrence
|
||||
; Editing
|
||||
#Space::Send ^{Space} ;Basic code completion
|
||||
#+Space::Send ^+{Space} ;Smart code completion
|
||||
#j::Send ^q ;Quick documentation lookup
|
||||
^n::Send !{Insert} ;Generate code...
|
||||
#o::Send ^o ;Override methods
|
||||
#i::Send ^i ;Implement methods
|
||||
!Up::Send ^w ;Extend selection
|
||||
!Down::Send ^+w ;Shrink selection
|
||||
#+q::Send !q ;Context info
|
||||
#!o::Send ^!o ;Optimize imports
|
||||
#!i::Send ^!i ;Auto-indent line(s)
|
||||
^Backspace::Send ^y ;Delete line at caret
|
||||
#+j::Send ^+j ;Smart line join
|
||||
!Delete::Send ^{Delete} ;Delete to word end
|
||||
!Backspace::Send ^{Backspace} ;Delete to word start
|
||||
^+::Send ^{NumpadAdd} ;Expand code block
|
||||
^-::Send ^{NumpadSub} ;Collapse code block
|
||||
^++::Send ^+{NumpadAdd} ;Expand all
|
||||
^+-::Send ^+{NumpadSub} ;Collapse all
|
||||
^w::Send ^{F4} ;Close active editor tab
|
||||
; Refactoring
|
||||
^Delete::Send !{Delete} ;Safe Delete
|
||||
^T::Send ^!+T ;Refactor this
|
||||
; Navigation
|
||||
^o::Send ^n ;Go to class
|
||||
^+o::Send ^+n ;Go to file
|
||||
^!o::Send ^!+n ;Go to symbol
|
||||
#Right::Send !{Right} ;Go to next editor tab
|
||||
#Left::Send !{Left} ;Go to previous editor tab
|
||||
#l::Send ^g ;Go to line
|
||||
#e::Send ^e ;Recent files popup
|
||||
!Space::Send ^+i ;Open quick definition lookup
|
||||
^Y::Send ^+i ;Open quick definition lookup
|
||||
#+b::Send ^+b ;Go to type declaration
|
||||
#Up::Send !{Up} ;Go to previous
|
||||
#Down::Send !{Down} ;Go to next method
|
||||
#h::Send ^h ;Type hierarchy
|
||||
#!h::Send ^!h ;Call hierarchy
|
||||
^Down::Send ^{Enter} ;Edit source/View source
|
||||
!Home::Send !{Home} ;Show navigation bar
|
||||
F2::Send {F11} ;Toggle bookmark
|
||||
#F3::Send ^{F11} ;Toggle bookmark with mnemonic
|
||||
#0::Send ^{0} ;Go to numbered bookmark
|
||||
#1::Send ^{1} ;Go to numbered bookmark
|
||||
#2::Send ^{2} ;Go to numbered bookmark
|
||||
#3::Send ^{3} ;Go to numbered bookmark
|
||||
#4::Send ^{4} ;Go to numbered bookmark
|
||||
#5::Send ^{5} ;Go to numbered bookmark
|
||||
#6::Send ^{6} ;Go to numbered bookmark
|
||||
#7::Send ^{7} ;Go to numbered bookmark
|
||||
#8::Send ^{8} ;Go to numbered bookmark
|
||||
#9::Send ^{9} ;Go to numbered bookmark
|
||||
^F3::Send +{F11} ;Show bookmarks
|
||||
; Compile and Run
|
||||
#!r::Send !+{F10} ;Select configuration and run
|
||||
#!d::Send !+{F9} ;Select configuration and debug
|
||||
#r::Send +{F10} ;Run
|
||||
#d::Send +{F9} ;Debug
|
||||
#+r::Send ^+{F10} ;Run context configuration from editor
|
||||
#+d::Send ^+{F9} ;Debug context configuration from editor
|
||||
; VCS/Local History
|
||||
#v::Send !` ;VCS quick popup
|
||||
#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
|
||||
#IfWinActive ahk_group vscode
|
||||
; Remap Ctrl+Shift to behave like macOS Sublimetext
|
||||
@@ -210,6 +348,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
|
||||
@@ -232,7 +372,7 @@ $^+Right::Send +{End}
|
||||
^!O::send {Insert} ; toggle_overwrite
|
||||
!c::Return ; cancel toggle_case_sensitive
|
||||
^!c::send !{c} ; toggle_case_sensitive
|
||||
^h::Return ; cancel replace
|
||||
; ^h::Return ; cancel replace
|
||||
^!f::send ^{h} ; replace
|
||||
^+h::Return ; cancel replace_next
|
||||
^!e::send ^+{h} ; replace_next
|
||||
@@ -270,6 +410,17 @@ $^+Right::Send +{End}
|
||||
#If
|
||||
|
||||
#IfWinActive ahk_group terminals
|
||||
|
||||
; End of Line
|
||||
#e::
|
||||
Send {End}
|
||||
return
|
||||
|
||||
; Beginning of Line
|
||||
#a::
|
||||
Send {Home}
|
||||
return
|
||||
|
||||
; Copy
|
||||
^c::
|
||||
SetKeyDelay -1
|
||||
@@ -286,7 +437,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{
|
||||
@@ -315,28 +469,6 @@ $^+Right::Send +{End}
|
||||
}
|
||||
return
|
||||
|
||||
; End of Line
|
||||
^e::
|
||||
SetKeyDelay -1
|
||||
Send {Blind}{e DownTemp}
|
||||
return
|
||||
|
||||
^e up::
|
||||
SetKeyDelay -1
|
||||
Send {Blind}{e Up}
|
||||
return
|
||||
|
||||
; Beginning of Line
|
||||
^a::
|
||||
SetKeyDelay -1
|
||||
Send {Blind}{a DownTemp}
|
||||
return
|
||||
|
||||
^a up::
|
||||
SetKeyDelay -1
|
||||
Send {Blind}{a Up}
|
||||
return
|
||||
|
||||
^l::Send clear{Enter}
|
||||
; #l::return
|
||||
; Clear Terminal and Scroll Buffer
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user