mirror of
https://github.com/rbreaves/kinto.git
synced 2025-08-05 18:38:26 +02:00
Compare commits
31 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
9dff7e0f7d | ||
![]() |
75ac498c9d | ||
![]() |
f952c9e569 | ||
![]() |
72d5dc7a8f | ||
![]() |
cf2353b5a6 | ||
![]() |
4b51013380 | ||
![]() |
3045a424b9 | ||
![]() |
bfe8d8f039 | ||
![]() |
8ab59cc914 | ||
![]() |
15adc5b96b | ||
![]() |
dd32a6f954 | ||
![]() |
eb96ad08b8 | ||
![]() |
0442bd8b6b | ||
![]() |
5d37e720c7 | ||
![]() |
aa53b7b14d | ||
![]() |
046bee95c3 | ||
![]() |
0c53a7a114 | ||
![]() |
46b8e1ca6e | ||
![]() |
a4f12cbdd8 | ||
![]() |
fe0346ea63 | ||
![]() |
1406e3bea5 | ||
![]() |
e0344eaa72 | ||
![]() |
4eea5c17cc | ||
![]() |
6101213537 | ||
![]() |
c71714e0c2 | ||
![]() |
ef6dc65a20 | ||
![]() |
525aa91cbf | ||
![]() |
b29ec9d936 | ||
![]() |
94595a3324 | ||
![]() |
a9afdac847 | ||
![]() |
39f65c0e2b |
15
README.md
15
README.md
@@ -69,7 +69,7 @@ It also retains some of the most commonly used system level shortcut keys, such
|
||||
|
||||
If your OS and macOS have similar functionality on the system level, but only differ by a slight difference of a shortcut command then Kinto likely supports it already. If Kinto doesn't have what you need then you can open up a support ticket and it will be added. You can also fork the project to add the fix and I will merge it via a PR you make.
|
||||
|
||||
Additionally, if you are using a cross-platform app and if it happens to have a few shortcut keys that differ then that can very easily be added to either the kinto.py or kinto.ahk configuration files which on Windows is located here `~/.kinto/kinto.ahk` and on Linux it can be found here `~/.config/kinto/kinto.py`. More info can be found here [Shortcut Creation (Xkeysnail)](#Shortcut-Creation-Xkeysnail) for Linux.
|
||||
Additionally, if you are using a cross-platform app and if it happens to have a few shortcut keys that differ then that can very easily be added to either the kinto.py or kinto.ahk configuration files which on Windows is located here `~/.kinto/kinto.ahk` and on Linux it can be found here `~/.config/kinto/kinto.py`. More info can be found here [Shortcut Creation](#Shortcut-Creation)
|
||||
|
||||
## How to install (Linux)
|
||||
|
||||
@@ -143,8 +143,6 @@ py setup.py
|
||||
- x11
|
||||
- xkeysnail
|
||||
|
||||
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.
|
||||
|
||||
### Kinto for Windows 10 Requirements
|
||||
|
||||
- [Git for Windows](https://git-scm.com/download/win)
|
||||
@@ -157,16 +155,8 @@ Other programs that will be installed when you run ./setup.py
|
||||
- Strawberry Perl
|
||||
|
||||
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.
|
||||
|
||||
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%">
|
||||
<img src="https://user-images.githubusercontent.com/10969616/84471501-10a51380-ac4b-11ea-9e0e-c19a7ebfad6d.png" width="50%">
|
||||
|
||||
## Shortcut Creation
|
||||
|
||||
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)
|
||||
@@ -343,9 +333,6 @@ If you continue to have issues then open a ticket and send me the info.
|
||||
## 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
|
||||
|
||||
[Xkeysnail](https://github.com/mooz/xkeysnail) by mooz
|
||||
|
5
setup.py
5
setup.py
@@ -104,9 +104,12 @@ if platform.system() == 'Windows':
|
||||
check_x11 = cmdline("(env | grep -i x11 || loginctl show-session \"$XDG_SESSION_ID\" -p Type) | awk -F= '{print $2}'").strip()
|
||||
|
||||
if len(check_x11) == 0:
|
||||
if os.name != 'nt':
|
||||
if os.name != 'nt' and os.name != 'posix':
|
||||
print(os.name)
|
||||
print("You are not using x11, please logout and back in using x11/Xorg")
|
||||
sys.exit()
|
||||
elif os.name == 'posix':
|
||||
print("You may be trying to run Kinto under WSL2 w/ Linux. We will continue...")
|
||||
else:
|
||||
print("\nYou are detected as running Windows.")
|
||||
windows_setup()
|
||||
|
@@ -24,7 +24,7 @@ AHK_NOTIFYICON(wParam, lParam)
|
||||
}
|
||||
; End Enable Left clicks
|
||||
|
||||
; I_Icon = %A_ScriptDir%\assets\kinto-white.ico ; MacModifiers
|
||||
; I_Icon = %A_ScriptDir%\assets\kinto-white-invert.ico ; MacModifiers
|
||||
; IfExist, %I_Icon% ; MacModifiers
|
||||
; Menu, Tray, Icon, %I_Icon%,, 1 ; MacModifiers
|
||||
; Menu, Tray, Tip, Mac - Kinto ; MacModifiers
|
||||
@@ -97,8 +97,9 @@ Send {LAlt down}{tab}{LAlt up}
|
||||
tray_suspend(){
|
||||
suspend toggle
|
||||
if (a_isSuspended = 1){
|
||||
Gosub ReleaseModifiers
|
||||
menu, tray, check , Suspend Kinto
|
||||
I_Icon = %A_ScriptDir%\assets\kinto-color-invert.ico
|
||||
I_Icon = %A_ScriptDir%\assets\kinto-white.ico
|
||||
Menu, Tray, Icon, %I_Icon%,, 1
|
||||
Menu, Tray, Tip, Suspended - Kinto
|
||||
IfWinExist, detectUSB.ahk
|
||||
@@ -106,8 +107,12 @@ tray_suspend(){
|
||||
}
|
||||
else{
|
||||
menu, tray, unCheck, Suspend Kinto
|
||||
; I_Icon = %A_ScriptDir%\assets\kinto-white.ico ; MacModifiers
|
||||
; I_Icon = %A_ScriptDir%\assets\kinto-white-invert.ico ; MacModifiers
|
||||
; I_Icon = %A_ScriptDir%\assets\kinto-white-invert.ico ; WinModifiers/CB/IBM
|
||||
; Menu, Tray, Tip, Mac - Kinto ; MacModifiers
|
||||
; Menu, Tray, Tip, Windows - Kinto ; WinModifiers
|
||||
; Menu, Tray, Tip, Chromebook - Kinto ; Chromebook
|
||||
; Menu, Tray, Tip, IBM - Kinto ; IBM
|
||||
Menu, Tray, Icon, %I_Icon%,,1
|
||||
Run, %A_ScriptDir%\detectUSB.ahk
|
||||
}
|
||||
@@ -116,6 +121,7 @@ tray_suspend(){
|
||||
}
|
||||
|
||||
Exit() {
|
||||
Gosub ReleaseModifiers
|
||||
IfWinExist, detectUSB.ahk
|
||||
WinClose
|
||||
|
||||
@@ -132,8 +138,10 @@ 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 box.exe
|
||||
GroupAdd, terminals, ahk_exe Terminus.exe
|
||||
GroupAdd, terminals, Fluent Terminal ahk_class ApplicationFrameWindow
|
||||
GroupAdd, terminals, ahk_class Console_2_Main
|
||||
|
||||
GroupAdd, posix, ahk_exe ubuntu.exe
|
||||
GroupAdd, posix, ahk_exe ConEmu.exe
|
||||
@@ -142,10 +150,11 @@ GroupAdd, posix, ahk_exe Hyper.exe
|
||||
GroupAdd, posix, ahk_exe mintty.exe
|
||||
GroupAdd, posix, ahk_exe Terminus.exe
|
||||
GroupAdd, posix, Fluent Terminal ahk_class ApplicationFrameWindow
|
||||
GroupAdd, posix, ahk_class Console_2_Main
|
||||
GroupAdd, posix, ahk_exe WindowsTerminal.exe
|
||||
|
||||
GroupAdd, ConEmu, ahk_exe ConEmu.exe
|
||||
GroupAdd, ConEmu, ahk_exe ConEmu64.exe
|
||||
GroupAdd, ConEmu, ahk_exe WindowsTerminal.exe
|
||||
|
||||
GroupAdd, ExcPaste, ahk_exe Cmd.exe
|
||||
GroupAdd, ExcPaste, ahk_exe mintty.exe
|
||||
@@ -157,6 +166,7 @@ GroupAdd, editors, ahk_exe Code.exe
|
||||
GroupAdd, browsers, ahk_exe chrome.exe
|
||||
GroupAdd, browsers, ahk_exe opera.exe
|
||||
GroupAdd, browsers, ahk_exe firefox.exe
|
||||
GroupAdd, browsers, ahk_exe msedge.exe
|
||||
|
||||
; Disable Key Remapping for Virtual Machines
|
||||
; Disable for Remote desktop solutions too
|
||||
@@ -326,6 +336,18 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
||||
!Right::Send ^{Right}
|
||||
!+Right::Send ^+{Right}
|
||||
|
||||
#IfWinNotActive ahk_group terminals
|
||||
; emacs style
|
||||
#n::Send {Down}
|
||||
#p::Send {Up}
|
||||
#f::Send {Right}
|
||||
#b::Send {Left}
|
||||
#a::Send {Home}
|
||||
#e::Send {End}
|
||||
#d::Send {Delete}
|
||||
#k::Send +{End}{Backspace}
|
||||
#If
|
||||
|
||||
; Cmd+Space Alternative
|
||||
$^Space::Send ^{Esc}
|
||||
|
||||
@@ -421,7 +443,23 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
||||
|
||||
; Close all browsers
|
||||
#IfWinActive ahk_group browsers
|
||||
^q::send {Alt Down}f{Alt Up}x ; exit all windows
|
||||
^q::send {Alt Down}f{Alt Up}x ; exit all windows
|
||||
; Dev Tools
|
||||
#^i::send {Ctrl Down}{Shift Down}i{Shift Up}{Ctrl Up}
|
||||
#^j::send {Ctrl Down}{Shift Down}j{Shift Up}{Ctrl Up}
|
||||
; Open preferences
|
||||
#IfWinActive ahk_exe firefox.exe
|
||||
^,::send {Alt Down}{Shift Down}t{Shift Up}{Alt Up}o{Enter}
|
||||
#If
|
||||
#IfWinActive ahk_exe chrome.exe
|
||||
^,::send {Alt Down}e{Alt Up}s{Enter}
|
||||
#If
|
||||
#IfWinActive ahk_exe msedge.exe
|
||||
^,::send {Alt Down}e{Alt Up}s{Enter}
|
||||
#If
|
||||
#IfWinActive ahk_exe opera.exe
|
||||
^,::send {Ctrl Down}{F12}{Ctrl Up}
|
||||
#If
|
||||
#If
|
||||
|
||||
; Sublime Text Remaps for VS Code
|
||||
@@ -523,13 +561,17 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
||||
|
||||
; Copy
|
||||
^c::
|
||||
If WinActive("ahk_exe cmd.exe"){
|
||||
If WinActive("ahk_exe cmd.exe") OR WinActive("ahk_exe box.exe"){
|
||||
Send {Enter}
|
||||
}
|
||||
else if WinActive("ahk_exe mintty.exe"){
|
||||
SetKeyDelay -1
|
||||
Send {Blind}{Insert}
|
||||
}
|
||||
; else if WinActive("ahk_exe WindowsTerminal.exe"){ ; WinTerm
|
||||
; SetKeyDelay -1 ; WinTerm
|
||||
; Send {Blind}{F13} ; WinTerm
|
||||
; } ; WinTerm
|
||||
else{
|
||||
SetKeyDelay -1
|
||||
Send {Blind}{LShift down}{c DownTemp}
|
||||
@@ -537,7 +579,7 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
||||
return
|
||||
|
||||
^c up::
|
||||
If not WinActive("ahk_group cmd.exe"){
|
||||
If not WinActive("ahk_group cmd.exe") OR WinActive("ahk_exe box.exe"){
|
||||
SetKeyDelay -1
|
||||
Send {Blind}{c Up}{LShift Up}
|
||||
}
|
||||
@@ -547,6 +589,12 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
||||
; $#c::Send {Ctrl down}c{Ctrl up} ; Default
|
||||
; $!c::Send {Ctrl down}c{Ctrl up} ; CB/IBM
|
||||
|
||||
; Windows Terminal
|
||||
; Ctrl+Shift+C should do nothing
|
||||
If WinActive("ahk_exe WindowsTerminal.exe"){
|
||||
$#+c::return
|
||||
}
|
||||
|
||||
; Paste
|
||||
$^v::
|
||||
If WinActive("ahk_exe mintty.exe"){
|
||||
@@ -555,6 +603,9 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
||||
else if WinActive("ahk_group posix"){
|
||||
Send {Blind}{Shift down}v{Shift up}
|
||||
}
|
||||
else if WinActive("ahk_exe box.exe"){
|
||||
SendEvent {RButton}
|
||||
}
|
||||
else{
|
||||
Send {Blind}v
|
||||
}
|
||||
@@ -564,17 +615,21 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
||||
#IfWinActive ahk_group posix
|
||||
; Open/Close Tab for those that support it
|
||||
$^t::
|
||||
If not WinActive("ahk_group ConEmu"){
|
||||
Send {LCtrl down}{LShift down}t{LCtrl Up}{LShift Up}
|
||||
If not WinActive("ahk_group ConEmu") AND not WinActive("ahk_class Console_2_Main"){
|
||||
Send {Blind}{LShift down}t{LShift Up}
|
||||
}
|
||||
else if WinActive("ahk_class Console_2_Main"){
|
||||
Send {Blind}{F1}{LShift Up}
|
||||
}
|
||||
else{
|
||||
Send ^t
|
||||
Send {Blind}t
|
||||
}
|
||||
return
|
||||
|
||||
|
||||
$^w::
|
||||
If not WinActive("ahk_group ConEmu"){
|
||||
Send {LCtrl down}{LShift down}w{LCtrl Up}{LShift Up}
|
||||
Send {Blind}{LShift down}w{LShift Up}
|
||||
}
|
||||
else{
|
||||
Send ^w
|
||||
@@ -585,34 +640,95 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
||||
; #l::return
|
||||
; Clear Terminal and Scroll Buffer
|
||||
^k::Send clear && printf '\e[3J'{Enter}
|
||||
; Nano editor shortcuts
|
||||
#g::Send {LCtrl down}g{LCtrl Up} ; Default
|
||||
#k::Send {LCtrl down}k{LCtrl Up} ; Default
|
||||
#x::Send {LCtrl down}x{LCtrl Up} ; Default
|
||||
#o::Send {LCtrl down}o{LCtrl Up} ; Default
|
||||
#r::Send {LCtrl down}r{LCtrl Up} ; Default
|
||||
#w::Send {LCtrl down}w{LCtrl Up} ; Default
|
||||
#\::Send {LCtrl down}\{LCtrl Up} ; Default
|
||||
#u::Send {LCtrl down}u{LCtrl Up} ; Default
|
||||
#j::Send {LCtrl down}j{LCtrl Up} ; Default
|
||||
#t::Send {LCtrl down}t{LCtrl Up} ; Default
|
||||
#_::Send {LCtrl down}_{LCtrl Up} ; Default
|
||||
#z::Send {LCtrl down}z{LCtrl Up} ; Default
|
||||
#y::Send {LCtrl down}y{LCtrl Up} ; Default
|
||||
#v::Send {LCtrl down}v{LCtrl Up} ; Default
|
||||
!g::Send {LCtrl down}g{LCtrl Up} ; CB/IBM
|
||||
!k::Send {LCtrl down}k{LCtrl Up} ; CB/IBM
|
||||
!x::Send {LCtrl down}x{LCtrl Up} ; CB/IBM
|
||||
!o::Send {LCtrl down}o{LCtrl Up} ; CB/IBM
|
||||
!r::Send {LCtrl down}r{LCtrl Up} ; CB/IBM
|
||||
!w::Send {LCtrl down}w{LCtrl Up} ; CB/IBM
|
||||
!\::Send {LCtrl down}\{LCtrl Up} ; CB/IBM
|
||||
!u::Send {LCtrl down}u{LCtrl Up} ; CB/IBM
|
||||
!j::Send {LCtrl down}j{LCtrl Up} ; CB/IBM
|
||||
!t::Send {LCtrl down}t{LCtrl Up} ; CB/IBM
|
||||
!_::Send {LCtrl down}_{LCtrl Up} ; CB/IBM
|
||||
!z::Send {LCtrl down}z{LCtrl Up} ; CB/IBM
|
||||
!y::Send {LCtrl down}y{LCtrl Up} ; CB/IBM
|
||||
!v::Send {LCtrl down}v{LCtrl Up} ; CB/IBM
|
||||
; Remap Physical Ctrl back to Ctrl
|
||||
#0::Send {LCtrl down}0{Ctrl up} ; Default
|
||||
#1::Send {LCtrl down}1{Ctrl up} ; Default
|
||||
#2::Send {LCtrl down}2{Ctrl up} ; Default
|
||||
#3::Send {LCtrl down}3{Ctrl up} ; Default
|
||||
#4::Send {LCtrl down}4{Ctrl up} ; Default
|
||||
#5::Send {LCtrl down}5{Ctrl up} ; Default
|
||||
#6::Send {LCtrl down}6{Ctrl up} ; Default
|
||||
#7::Send {LCtrl down}7{Ctrl up} ; Default
|
||||
#8::Send {LCtrl down}8{Ctrl up} ; Default
|
||||
#9::Send {LCtrl down}9{Ctrl up} ; Default
|
||||
#-::Send {LCtrl down}-{Ctrl up} ; Default
|
||||
#=::Send {LCtrl down}={Ctrl up} ; Default
|
||||
#`::Send {LCtrl down}`{Ctrl up} ; Default
|
||||
#a::Send {LCtrl down}a{Ctrl up} ; Default
|
||||
#b::Send {LCtrl down}b{Ctrl up} ; Default
|
||||
#c::Send {LCtrl down}c{Ctrl up} ; Default
|
||||
#d::Send {LCtrl down}d{Ctrl up} ; Default
|
||||
#e::Send {LCtrl down}e{Ctrl up} ; Default
|
||||
#f::Send {LCtrl down}f{Ctrl up} ; Default
|
||||
#g::Send {LCtrl down}g{Ctrl up} ; Default
|
||||
#h::Send {LCtrl down}h{Ctrl up} ; Default
|
||||
#i::Send {LCtrl down}i{Ctrl up} ; Default
|
||||
#j::Send {LCtrl down}j{Ctrl up} ; Default
|
||||
#k::Send {LCtrl down}k{Ctrl up} ; Default
|
||||
#l::Send {LCtrl down}l{Ctrl up} ; Default
|
||||
#m::Send {LCtrl down}m{Ctrl up} ; Default
|
||||
#n::Send {LCtrl down}n{Ctrl up} ; Default
|
||||
#o::Send {LCtrl down}o{Ctrl up} ; Default
|
||||
#p::Send {LCtrl down}p{Ctrl up} ; Default
|
||||
#q::Send {LCtrl down}q{Ctrl up} ; Default
|
||||
#r::Send {LCtrl down}r{Ctrl up} ; Default
|
||||
#s::Send {LCtrl down}s{Ctrl up} ; Default
|
||||
#t::Send {LCtrl down}t{Ctrl up} ; Default
|
||||
#u::Send {LCtrl down}u{Ctrl up} ; Default
|
||||
#v::Send {LCtrl down}v{Ctrl up} ; Default
|
||||
#w::Send {LCtrl down}w{Ctrl up} ; Default
|
||||
#x::Send {LCtrl down}x{Ctrl up} ; Default
|
||||
#y::Send {LCtrl down}y{Ctrl up} ; Default
|
||||
#z::Send {LCtrl down}z{Ctrl up} ; Default
|
||||
; !0::Send {LCtrl down}0{Ctrl up} ; CB/IBM
|
||||
; !1::Send {LCtrl down}1{Ctrl up} ; CB/IBM
|
||||
; !2::Send {LCtrl down}2{Ctrl up} ; CB/IBM
|
||||
; !3::Send {LCtrl down}3{Ctrl up} ; CB/IBM
|
||||
; !4::Send {LCtrl down}4{Ctrl up} ; CB/IBM
|
||||
; !5::Send {LCtrl down}5{Ctrl up} ; CB/IBM
|
||||
; !6::Send {LCtrl down}6{Ctrl up} ; CB/IBM
|
||||
; !7::Send {LCtrl down}7{Ctrl up} ; CB/IBM
|
||||
; !8::Send {LCtrl down}8{Ctrl up} ; CB/IBM
|
||||
; !9::Send {LCtrl down}9{Ctrl up} ; CB/IBM
|
||||
; !-::Send {LCtrl down}-{Ctrl up} ; CB/IBM
|
||||
; !=::Send {LCtrl down}={Ctrl up} ; CB/IBM
|
||||
; !`::Send {LCtrl down}`{Ctrl up} ; CB/IBM
|
||||
; !a::Send {LCtrl down}a{Ctrl up} ; CB/IBM
|
||||
; !b::Send {LCtrl down}b{Ctrl up} ; CB/IBM
|
||||
; !c::Send {LCtrl down}c{Ctrl up} ; CB/IBM
|
||||
; !d::Send {LCtrl down}d{Ctrl up} ; CB/IBM
|
||||
; !e::Send {LCtrl down}e{Ctrl up} ; CB/IBM
|
||||
; !f::Send {LCtrl down}f{Ctrl up} ; CB/IBM
|
||||
; !g::Send {LCtrl down}g{Ctrl up} ; CB/IBM
|
||||
; !h::Send {LCtrl down}h{Ctrl up} ; CB/IBM
|
||||
; !i::Send {LCtrl down}i{Ctrl up} ; CB/IBM
|
||||
; !j::Send {LCtrl down}j{Ctrl up} ; CB/IBM
|
||||
; !k::Send {LCtrl down}k{Ctrl up} ; CB/IBM
|
||||
; !l::Send {LCtrl down}l{Ctrl up} ; CB/IBM
|
||||
; !m::Send {LCtrl down}m{Ctrl up} ; CB/IBM
|
||||
; !n::Send {LCtrl down}n{Ctrl up} ; CB/IBM
|
||||
; !o::Send {LCtrl down}o{Ctrl up} ; CB/IBM
|
||||
; !p::Send {LCtrl down}p{Ctrl up} ; CB/IBM
|
||||
; !q::Send {LCtrl down}q{Ctrl up} ; CB/IBM
|
||||
; !r::Send {LCtrl down}r{Ctrl up} ; CB/IBM
|
||||
; !s::Send {LCtrl down}s{Ctrl up} ; CB/IBM
|
||||
; !t::Send {LCtrl down}t{Ctrl up} ; CB/IBM
|
||||
; !u::Send {LCtrl down}u{Ctrl up} ; CB/IBM
|
||||
; !v::Send {LCtrl down}v{Ctrl up} ; CB/IBM
|
||||
; !w::Send {LCtrl down}w{Ctrl up} ; CB/IBM
|
||||
; !x::Send {LCtrl down}x{Ctrl up} ; CB/IBM
|
||||
; !y::Send {LCtrl down}y{Ctrl up} ; CB/IBM
|
||||
; !z::Send {LCtrl down}z{Ctrl up} ; CB/IBM
|
||||
#If
|
||||
#If
|
||||
#If
|
||||
|
||||
ReleaseModifiers:
|
||||
Send {RCtrl up}
|
||||
Send {LCtrl up}
|
||||
Send {RAlt up}
|
||||
Send {LAlt up}
|
||||
Send {RWin up}
|
||||
Send {LWin up}
|
||||
Send {RShift up}
|
||||
Send {LShift up}
|
||||
return
|
@@ -5,6 +5,7 @@ gi.require_version('Gtk', '3.0')
|
||||
gi.require_version('Vte', '2.91')
|
||||
from gi.repository import Gtk,Gdk,GdkPixbuf
|
||||
from gi.repository import Vte,GLib
|
||||
from shutil import which
|
||||
from subprocess import Popen,PIPE,CalledProcessError
|
||||
from distutils.util import strtobool
|
||||
|
||||
@@ -918,10 +919,14 @@ class MyWindow(Gtk.Window):
|
||||
try:
|
||||
if os.path.exists('/opt/sublime_text/sublime_text'):
|
||||
Popen(['/opt/sublime_text/sublime_text',os.environ['HOME']+'/.config/kinto/kinto.py'])
|
||||
elif which(gedit) is not None:
|
||||
elif which('gedit') is not None:
|
||||
Popen(['gedit',os.environ['HOME']+'/.config/kinto/kinto.py'])
|
||||
elif which(mousepad) is not None:
|
||||
elif which('mousepad') is not None:
|
||||
Popen(['mousepad',os.environ['HOME']+'/.config/kinto/kinto.py'])
|
||||
elif which('kate') is not None:
|
||||
Popen(['kate',os.environ['HOME']+'/.config/kinto/kinto.py'])
|
||||
elif which('kwrite') is not None:
|
||||
Popen(['kwrite',os.environ['HOME']+'/.config/kinto/kinto.py'])
|
||||
|
||||
except CalledProcessError: # Notify user about error on running restart commands.
|
||||
Popen(['notify-send','Kinto: Error could not open config file!'])
|
||||
@@ -930,10 +935,14 @@ class MyWindow(Gtk.Window):
|
||||
try:
|
||||
if os.path.exists('/opt/sublime_text/sublime_text'):
|
||||
Popen(['/opt/sublime_text/sublime_text','/lib/systemd/system/xkeysnail.service'])
|
||||
elif which(gedit) is not None:
|
||||
elif which('gedit') is not None:
|
||||
Popen(['gedit','/lib/systemd/system/xkeysnail.service'])
|
||||
elif which(mousepad) is not None:
|
||||
elif which('mousepad') is not None:
|
||||
Popen(['mousepad','/lib/systemd/system/xkeysnail.service'])
|
||||
elif which('kate') is not None:
|
||||
Popen(['kate','/lib/systemd/system/xkeysnail.service'])
|
||||
elif which('kwrite') is not None:
|
||||
Popen(['kwrite','/lib/systemd/system/xkeysnail.service'])
|
||||
|
||||
except CalledProcessError: # Notify user about error on running restart commands.
|
||||
Popen(['notify-send','Kinto: Error could not open config file!'])
|
||||
@@ -941,12 +950,16 @@ class MyWindow(Gtk.Window):
|
||||
def setSysKB(self,button):
|
||||
if self.ostype == "XFCE":
|
||||
Popen(['xfce4-keyboard-settings'])
|
||||
elif self.ostype == "KDE":
|
||||
self.queryConfig('systemsettings >/dev/null 2>&1 || systemsettings5 >/dev/null 2>&1')
|
||||
else:
|
||||
Popen(['gnome-control-center','keyboard'])
|
||||
|
||||
def setRegion(self,button):
|
||||
if self.ostype == "XFCE":
|
||||
Popen(['gnome-language-selector'])
|
||||
elif self.ostype == "KDE":
|
||||
self.queryConfig('kcmshell4 kcm_translations >/dev/null 2>&1 || kcmshell5 kcm_translations >/dev/null 2>&1')
|
||||
else:
|
||||
Popen(['gnome-control-center','region'])
|
||||
|
||||
@@ -1221,7 +1234,8 @@ class SecondPage(Gtk.Box):
|
||||
scroller.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.ALWAYS)
|
||||
|
||||
label_start = Gtk.Label()
|
||||
label_start.set_markup('<b>Identifying your Keyboard...</b>\n\nPress the <b>2nd</b> key <b>Left</b> of the spacebar.')
|
||||
|
||||
label_start.set_markup('<b>Identifying your Keyboard...</b>\n\nPress the <b>2nd</b> key <b>Left</b> of the spacebar.\n\n<sub>If stuck here then unset Overlay (Super) key on your DE.</sub>')
|
||||
label_start.set_alignment(0,0)
|
||||
label_start.set_line_wrap(True)
|
||||
vbox.add(label_start)
|
||||
@@ -1370,13 +1384,43 @@ class SuccessPage(Gtk.Box):
|
||||
def __init__(self, parent_window):
|
||||
super().__init__(spacing=10)
|
||||
self.__parent_window = parent_window
|
||||
self.grid = Gtk.Grid()
|
||||
|
||||
vbox_container = Gtk.VBox()
|
||||
self.__parent_window.last_onward.props.relief = Gtk.ReliefStyle.NONE
|
||||
hbox = Gtk.HBox()
|
||||
previous = Gtk.Button(" ")
|
||||
previous.props.relief = Gtk.ReliefStyle.NONE
|
||||
previous.set_margin_right(245)
|
||||
hbox.add(previous)
|
||||
|
||||
self.__parent_window.last_onward.set_label("")
|
||||
for child in self.__parent_window.last_onward.get_children():
|
||||
child.set_label("<b>Done</b>")
|
||||
child.set_use_markup(True)
|
||||
self.__parent_window.last_onward.connect("clicked", self.forward)
|
||||
vbox_container.set_margin_top(600)
|
||||
vbox_container.add(self.__parent_window.last_onward)
|
||||
self.add(vbox_container)
|
||||
|
||||
hbox.add(self.__parent_window.last_onward)
|
||||
hbox.set_hexpand(False)
|
||||
hbox.set_vexpand(False)
|
||||
hbox.set_margin_bottom(6)
|
||||
hbox.set_margin_right(25)
|
||||
|
||||
scroller = Gtk.ScrolledWindow()
|
||||
scroller.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.NEVER)
|
||||
scroller.set_hexpand(True)
|
||||
scroller.set_vexpand(True)
|
||||
vbox = Gtk.VBox()
|
||||
vbox_container = Gtk.VBox()
|
||||
vbox_container.set_margin_top(55)
|
||||
vbox_container.set_margin_right(28)
|
||||
vbox_container.add(scroller)
|
||||
self.grid.set_margin_left(157)
|
||||
vbox_container.set_margin_bottom(18)
|
||||
vbox.set_margin_right(10)
|
||||
vbox.set_margin_bottom(18)
|
||||
self.grid.add(vbox_container)
|
||||
self.grid.attach_next_to(hbox, vbox_container, Gtk.PositionType.BOTTOM, 2, 1)
|
||||
self.add(self.grid)
|
||||
self.__parent_window.last_onward.grab_focus()
|
||||
|
||||
def forward(self, *args):
|
||||
self.hide()
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 65 KiB |
@@ -12,10 +12,18 @@ 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 = ["Chromium","Chromium-browser","Google-chrome","microsoft-edge-dev","microsoft-edge","Epiphany","Firefox","Discord"]
|
||||
browsers = [browser.casefold() for browser in browsers]
|
||||
browserStr = "|".join(str(x) for x in browsers)
|
||||
|
||||
chromes = ["Chromium","Chromium-browser","Google-chrome","microsoft-edge-dev","microsoft-edge"]
|
||||
chromes = [chrome.casefold() for chrome in chromes]
|
||||
chromeStr = "|".join(str(x) for x in chromes)
|
||||
|
||||
# edges = ["microsoft-edge-dev","microsoft-edge"]
|
||||
# edges = [edge.casefold() for edge in edges]
|
||||
# edgeStr = "|".join(str(x) for x in edges)
|
||||
|
||||
mscodes = ["code","vscodium"]
|
||||
codeStr = "|".join(str(x) for x in mscodes)
|
||||
|
||||
@@ -198,9 +206,20 @@ define_keymap(re.compile("org.gnome.nautilus", re.IGNORECASE),{
|
||||
|
||||
# Keybindings for Browsers
|
||||
define_keymap(re.compile(browserStr, re.IGNORECASE),{
|
||||
K("RC-Q"): K("RC-Q"), # Close all browsers Instances
|
||||
K("RC-Q"): K("RC-Q"), # Close all browsers Instances
|
||||
K("Super-RC-I"): K("RC-Shift-I"), # Dev tools
|
||||
K("Super-RC-J"): K("RC-Shift-J"), # Dev tools
|
||||
})
|
||||
|
||||
# Open preferences in browsers
|
||||
define_keymap(re.compile("Firefox", re.IGNORECASE),{
|
||||
K("C-comma"): [K("M-t"), K("o"),K("Enter")],
|
||||
})
|
||||
define_keymap(re.compile(chromeStr, re.IGNORECASE),{
|
||||
K("C-comma"): [K("M-e"), K("s"),K("Enter")],
|
||||
})
|
||||
# Opera C-F12
|
||||
|
||||
define_keymap(None,{
|
||||
K("RC-Space"): K("Alt-F1"), # Default SL - Launch Application Menu (gnome/kde)
|
||||
K("RC-F3"):K("Super-d"), # Default SL - Show Desktop (gnome/kde,eos)
|
||||
@@ -239,13 +258,21 @@ define_keymap(None,{
|
||||
# K("M-Grave") : K("C-Shift-Tab"), # Chromebook/IBM - In-App Tab switching
|
||||
K("Super-Tab"): K("LC-Tab"), # Default not-chromebook
|
||||
K("Super-Shift-Tab"): K("LC-Shift-Tab"), # Default not-chromebook
|
||||
|
||||
# emacs style
|
||||
K("Super-a"): K("Home"), # Beginning of Line
|
||||
K("Super-e"): K("End"), # End of Line
|
||||
K("Super-b"): K("Left"),
|
||||
K("Super-f"): K("Right"),
|
||||
K("Super-n"): K("Down"),
|
||||
K("Super-p"): K("Up"),
|
||||
K("Super-k"): [K("Shift-End"), K("Backspace")],
|
||||
K("Super-d"): K("Delete"),
|
||||
|
||||
# Wordwise
|
||||
K("RC-Left"): K("Home"), # Beginning of Line
|
||||
K("Super-a"): K("Home"), # Beginning of Line
|
||||
K("RC-Shift-Left"): K("Shift-Home"), # Select all to Beginning of Line
|
||||
K("RC-Right"): K("End"), # End of Line
|
||||
K("Super-e"): K("End"), # End of Line
|
||||
K("RC-Shift-Right"): K("Shift-End"), # Select all to End of Line
|
||||
# K("RC-Left"): K("C-LEFT_BRACE"), # Firefox-nw - Back
|
||||
# K("RC-Right"): K("C-RIGHT_BRACE"), # Firefox-nw - Forward
|
||||
|
@@ -620,10 +620,14 @@ class Indicator():
|
||||
try:
|
||||
if os.path.exists('/opt/sublime_text/sublime_text'):
|
||||
Popen(['/opt/sublime_text/sublime_text',os.environ['HOME']+'/.config/kinto/kinto.py'])
|
||||
elif which(gedit) is not None:
|
||||
elif which('gedit') is not None:
|
||||
Popen(['gedit',os.environ['HOME']+'/.config/kinto/kinto.py'])
|
||||
elif which(mousepad) is not None:
|
||||
elif which('mousepad') is not None:
|
||||
Popen(['mousepad',os.environ['HOME']+'/.config/kinto/kinto.py'])
|
||||
elif which('kate') is not None:
|
||||
Popen(['kate',os.environ['HOME']+'/.config/kinto/kinto.py'])
|
||||
elif which('kwrite') is not None:
|
||||
Popen(['kwrite',os.environ['HOME']+'/.config/kinto/kinto.py'])
|
||||
|
||||
except CalledProcessError: # Notify user about error on running restart commands.
|
||||
Popen(['notify-send','Kinto: Error could not open config file!'])
|
||||
@@ -632,10 +636,14 @@ class Indicator():
|
||||
try:
|
||||
if os.path.exists('/opt/sublime_text/sublime_text'):
|
||||
Popen(['/opt/sublime_text/sublime_text','/lib/systemd/system/xkeysnail.service'])
|
||||
elif which(gedit) is not None:
|
||||
elif which('gedit') is not None:
|
||||
Popen(['gedit','/lib/systemd/system/xkeysnail.service'])
|
||||
elif which(mousepad) is not None:
|
||||
elif which('mousepad') is not None:
|
||||
Popen(['mousepad','/lib/systemd/system/xkeysnail.service'])
|
||||
elif which('kate') is not None:
|
||||
Popen(['kate','/lib/systemd/system/xkeysnail.service'])
|
||||
elif which('kwrite') is not None:
|
||||
Popen(['kwrite','/lib/systemd/system/xkeysnail.service'])
|
||||
|
||||
except CalledProcessError: # Notify user about error on running restart commands.
|
||||
Popen(['notify-send','Kinto: Error could not open config file!'])
|
||||
@@ -690,12 +698,16 @@ class Indicator():
|
||||
def setSysKB(self,button):
|
||||
if self.ostype == "XFCE":
|
||||
Popen(['xfce4-keyboard-settings'])
|
||||
elif self.ostype == "KDE":
|
||||
self.queryConfig('systemsettings >/dev/null 2>&1 || systemsettings5 >/dev/null 2>&1')
|
||||
else:
|
||||
Popen(['gnome-control-center','keyboard'])
|
||||
|
||||
def setRegion(self,button):
|
||||
if self.ostype == "XFCE":
|
||||
Popen(['gnome-language-selector'])
|
||||
elif self.ostype == "KDE":
|
||||
self.queryConfig('kcmshell4 kcm_translations >/dev/null 2>&1 || kcmshell5 kcm_translations >/dev/null 2>&1')
|
||||
else:
|
||||
Popen(['gnome-control-center','region'])
|
||||
|
||||
|
@@ -73,7 +73,7 @@ function uninstall {
|
||||
elif [ "$yn" == "n" ]; then
|
||||
echo "Skipping..."
|
||||
fi
|
||||
if [[ $dename == "gnome" || $dename == "budgie" ]]; then
|
||||
if [[ $dename == "gnome" || $dename == "budgie" || $dename == "mate" ]]; then
|
||||
echo -e "\nWill still be restoring the overlay key"
|
||||
echo -e "gsettings set org.gnome.mutter overlay-key 'super'\n"
|
||||
gsettings set org.gnome.mutter overlay-key 'super'
|
||||
@@ -196,6 +196,9 @@ if [[ $1 == "5" || $1 == "uninstall" || $1 == "Uninstall" ]]; then
|
||||
if [ -f /usr/local/bin/logoff.sh ];then
|
||||
sudo rm /usr/local/bin/logoff.sh
|
||||
fi
|
||||
if [[ $distro == "elementaryos" ]]; then
|
||||
gsettings set io.elementary.terminal.settings natural-copy-paste true
|
||||
fi
|
||||
sudo systemctl daemon-reload
|
||||
# sudo systemctl --state=not-found --all | grep xkeysnail
|
||||
exit 0
|
||||
@@ -234,6 +237,10 @@ if [[ $distro == 'popos' ]]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ $distro == "elementaryos" ]]; then
|
||||
gsettings set io.elementary.terminal.settings natural-copy-paste false
|
||||
fi
|
||||
|
||||
if ! [ -x "$(command -v xhost)" ] || ! [ -x "$(command -v gcc)" ]; then
|
||||
if [ "$distro" == "manjarolinux" ]; then
|
||||
sudo ./system-config/unipkg.sh "xorg-xhost gcc"
|
||||
@@ -400,13 +407,9 @@ sed -i "s#{homedir}#`echo "$HOME"`#g" ~/.config/kinto/gui/kinto-gui.py
|
||||
sed -i "s#{homedir}#`echo "$HOME"`#g" ./xkeysnail-config/gui/kinto.desktop.new
|
||||
sudo mv ./xkeysnail-config/gui/kinto.desktop.new /usr/share/applications/kinto.desktop
|
||||
sed -i "s#{xhost}#`\\which xhost`#g" ./xkeysnail-config/xkeysnail.service.new
|
||||
sed -i "s#{xkeysnail}#`which xkeysnail`#g" ./xkeysnail-config/xkeysnail.service.new
|
||||
sed -i "s/{username}/`whoami`/g" ./xkeysnail-config/limitedadmins.new
|
||||
sed -i "s#{systemctl}#`\\which systemctl`#g" ./xkeysnail-config/limitedadmins.new
|
||||
sed -i "s#{pkill}#`\\which pkill`#g" ./xkeysnail-config/limitedadmins.new
|
||||
sed -i "s#{xkeysnail}#`which xkeysnail`#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/kinto/xkeysnail.desktop
|
||||
sed -i "s#{xhost}#`\\which xhost`#g" ~/.config/kinto/xkeysnail.desktop
|
||||
sed -i "s#{homedir}#`echo "$HOME"`#g" ~/.config/kinto/xkeysnail.desktop
|
||||
@@ -464,11 +467,6 @@ if ! [[ $1 == "5" || $1 == "uninstall" || $1 == "Uninstall" ]]; then
|
||||
elif [ -d /lib/systemd/system ];then
|
||||
xkeypath="/lib/systemd/system/"
|
||||
fi
|
||||
sudo mv ./xkeysnail-config/xkeysnail.service.new "$xkeypath"xkeysnail.service && echo "Service file added to "$xkeypath"xkeysnail.service"
|
||||
sudo chown -R root:root "$xkeypath"xkeysnail.service && echo "Ownership set for root..." || echo "Failed to set ownership..."
|
||||
sudo chmod 644 "$xkeypath"xkeysnail.service && echo "Permissions set to 644..." || echo "Failed to set permissions..."
|
||||
sudo ln -s "$xkeypath"xkeysnail.service /etc/systemd/system/xkeysnail.service && echo "Created soft symlink..." || echo "Failed to create soft symlink..."
|
||||
sudo ln -s "$xkeypath"xkeysnail.service /etc/systemd/system/graphical.target.wants/xkeysnail.service && echo "Created soft symlink for graphical target..." || echo "Failed to create soft symlink for graphical target..."
|
||||
xhost +SI:localuser:root
|
||||
git clone --depth 10 https://github.com/rbreaves/xkeysnail.git
|
||||
cd xkeysnail
|
||||
@@ -485,6 +483,23 @@ if ! [[ $1 == "5" || $1 == "uninstall" || $1 == "Uninstall" ]]; then
|
||||
fi
|
||||
sudo pip3 install --upgrade .
|
||||
cd ..
|
||||
which xkeysnail
|
||||
if [ $? -eq 1 ]; then
|
||||
echo -e "\nKinto install has \e[1m\033[0;91mfailed\e[0m.\n"
|
||||
echo -e "cd into ./xkeysnail"
|
||||
echo -e "Run 'sudo pip3 install --upgrade .' to debug issue"
|
||||
exit 0
|
||||
fi
|
||||
sed -i "s#{xkeysnail}#`which xkeysnail`#g" ./xkeysnail-config/xkeysnail.service.new
|
||||
sed -i "s#{xkeysnail}#`which xkeysnail`#g" ./xkeysnail-config/limitedadmins.new
|
||||
sudo mv ./xkeysnail-config/xkeysnail.service.new "$xkeypath"xkeysnail.service && echo "Service file added to "$xkeypath"xkeysnail.service"
|
||||
sudo chown root:root ./xkeysnail-config/limitedadmins.new
|
||||
# Add a check here for xkeysnail path resolving
|
||||
sudo mv ./xkeysnail-config/limitedadmins.new /etc/sudoers.d/limitedadmins
|
||||
sudo chown -R root:root "$xkeypath"xkeysnail.service && echo "Ownership set for root..." || echo "Failed to set ownership..."
|
||||
sudo chmod 644 "$xkeypath"xkeysnail.service && echo "Permissions set to 644..." || echo "Failed to set permissions..."
|
||||
sudo ln -s "$xkeypath"xkeysnail.service /etc/systemd/system/xkeysnail.service && echo "Created soft symlink..." || echo "Failed to create soft symlink..."
|
||||
sudo ln -s "$xkeypath"xkeysnail.service /etc/systemd/system/graphical.target.wants/xkeysnail.service && echo "Created soft symlink for graphical target..." || echo "Failed to create soft symlink for graphical target..."
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl disable xkeysnail
|
||||
sudo systemctl stop xkeysnail
|
||||
|
Reference in New Issue
Block a user