From 7690af09fc89393dd345e9ad6d0ec15013cf2b49 Mon Sep 17 00:00:00 2001 From: Ben Reaves Date: Fri, 10 Jun 2022 23:26:55 -0500 Subject: [PATCH 1/8] Adds Subl for Sublime Text Arch package. closes #696 --- linux/kinto.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/linux/kinto.py b/linux/kinto.py index 8180fff..381da10 100755 --- a/linux/kinto.py +++ b/linux/kinto.py @@ -42,6 +42,9 @@ termStr = "|".join(str('^'+x+'$') for x in terminals) mscodes = ["code","vscodium"] codeStr = "|".join(str('^'+x+'$') for x in mscodes) +sublimes = ["Sublime_text","subl"] +sublimeStr = "|".join(str('^'+x+'$') for x in sublimes) + # Add remote desktop clients & VM software here # Ideally we'd only exclude the client window, # but that may not be easily done. @@ -674,7 +677,7 @@ define_keymap(re.compile(codeStr, re.IGNORECASE),{ }, "Code") # Keybindings for Sublime Text -define_keymap(re.compile("Sublime_text", re.IGNORECASE),{ +define_keymap(re.compile(sublimeStr, re.IGNORECASE),{ # K("Super-c"): K("LC-c"), # Default - Terminal - Sigint # K("Super-x"): K("LC-x"), # Default - Terminal - Exit nano # K("M-c"): K("LC-c"), # Chromebook/IBM - Terminal - Sigint From aadfafac4ac51f3213795fb5afe688be3c83d518 Mon Sep 17 00:00:00 2001 From: Josh Goebel Date: Sat, 11 Jun 2022 07:22:44 -0400 Subject: [PATCH 2/8] (enh) Map clear log for alacritty terminal --- linux/kinto.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/linux/kinto.py b/linux/kinto.py index 381da10..e825fb7 100755 --- a/linux/kinto.py +++ b/linux/kinto.py @@ -769,6 +769,10 @@ define_keymap(re.compile("deepin-terminal", re.IGNORECASE),{ K("RC-equal"): K("C-equal"), # Increase font size/zoom in },"Deepin Terminal fixes") +define_keymap(re.compile("alacritty", re.IGNORECASE),{ + K("RC-K"): K("C-L"), # clear log +}) + define_keymap(re.compile(termStr, re.IGNORECASE),{ K("LC-RC-f"): K("M-F10"), # Toggle window maximized state # K("RC-Grave"): K("Super-Tab"), # xfce4 Switch within app group From f310919cf98da1ce93a4bc6d853ac33607f4e069 Mon Sep 17 00:00:00 2001 From: Ben Reaves Date: Sat, 11 Jun 2022 22:03:17 -0500 Subject: [PATCH 3/8] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c689351..1e6e0a6 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,9 @@ v1.2 Release - Kinto now includes a system tray and simple wizard to setup the i Kinto is powered by [xkeysnail](https://github.com/mooz/xkeysnail) for Linux & by [Autohotkey](https://github.com/Lexikos/AutoHotkey_L) for Windows 10 & 11. -Note: If you plan to remote into Linux via VNC, xRDP, Synergy or other remote desktop solutions then remove the current release & try an earlier [v1.0.7-3](https://github.com/rbreaves/kinto/releases/tag/1.0.7-3) release. It uses xkb so it'll work with virtual xinput devices. Some v1.1-x releases may offer both, but all v1.2.x releases ended support for xkb. I do plan to bring offical support back for virtual input devices. +Note: VNC is now experimentally supported on Linux w/ the latest releases, but you must compile & install x11vnc. More info can be [found here](https://gist.github.com/rbreaves/87059f92f030ee4e068f911ddb56a4dd). + +~~Note: If you plan to remote into Linux via VNC, xRDP, Synergy or other remote desktop solutions then remove the current release & try an earlier [v1.0.7-3](https://github.com/rbreaves/kinto/releases/tag/1.0.7-3) release. It uses xkb so it'll work with virtual xinput devices. Some v1.1-x releases may offer both, but all v1.2.x releases ended support for xkb. I do plan to bring offical support back for virtual input devices.~~ Additionally VMware, Virtualbox, KVM and other virtualization technologies work best with the current release - so *this note only applies to remote desktop into Linux* - not virtualization. From 82018232bf7415996465a6451ebfdf7335767d5a Mon Sep 17 00:00:00 2001 From: Kash Raman Date: Mon, 13 Jun 2022 14:07:45 -0400 Subject: [PATCH 4/8] adding citrix workspace --- linux/kinto.py | 1 + 1 file changed, 1 insertion(+) diff --git a/linux/kinto.py b/linux/kinto.py index 381da10..fde9344 100755 --- a/linux/kinto.py +++ b/linux/kinto.py @@ -59,6 +59,7 @@ remotes = [ "VirtualBox", "VirtualBox Machine", "xfreerdp", + "Wfica", ] remotes = [client.casefold() for client in remotes] From 53c5d96b2c4dc040a296e3e5b2c5d4e4b92c0c70 Mon Sep 17 00:00:00 2001 From: Ben Reaves Date: Sat, 11 Jun 2022 00:19:59 -0500 Subject: [PATCH 5/8] Setting proper regex for app name matches. #696 --- linux/kinto.py | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/linux/kinto.py b/linux/kinto.py index fde9344..1843550 100755 --- a/linux/kinto.py +++ b/linux/kinto.py @@ -62,6 +62,7 @@ remotes = [ "Wfica", ] remotes = [client.casefold() for client in remotes] +remotesStr = "|".join(str('^'+x+'$') for x in remotes) # Add remote desktop clients & VMs for no remapping terminals.extend(remotes) @@ -281,14 +282,14 @@ define_keymap(re.compile("^jetbrains-(?!.*toolbox).*$", re.IGNORECASE),{ # Keybindings overrides for Caja # (overrides some bindings from general file manager code block below) -define_keymap(re.compile("caja", re.IGNORECASE),{ +define_keymap(re.compile("^caja$", re.IGNORECASE),{ # K("RC-Super-o"): K("RC-Shift-Enter"), # Open in new tab K("RC-Super-o"): K("RC-Shift-W"), # Open in new window },"Overrides for Caja - Finder Mods") # Keybindings overrides for DDE (Deepin) File Manager # (overrides some bindings from general file manager code block below) -define_keymap(re.compile("dde-file-manager", re.IGNORECASE),{ +define_keymap(re.compile("^dde-file-manager$", re.IGNORECASE),{ K("RC-i"): K("RC-i"), # File properties dialog (Get Info) K("RC-comma"): None, # Disable preferences shortcut (no shortcut available) K("RC-Up"): K("RC-Up"), # Go Up dir @@ -300,7 +301,7 @@ define_keymap(re.compile("dde-file-manager", re.IGNORECASE),{ # Keybindings overrides for Dolphin # (overrides some bindings from general file manager code block below) -define_keymap(re.compile("dolphin", re.IGNORECASE),{ +define_keymap(re.compile("^dolphin$", re.IGNORECASE),{ K("RC-KEY_2"): K("C-KEY_3"), # View as List (Detailed) K("RC-KEY_3"): K("C-KEY_2"), # View as List (Compact) ########################################################################################## @@ -317,14 +318,14 @@ define_keymap(re.compile("dolphin", re.IGNORECASE),{ # Keybindings overrides for elementary OS Files (Pantheon) # (overrides some bindings from general file manager code block below) -define_keymap(re.compile("io.elementary.files", re.IGNORECASE),{ +define_keymap(re.compile("^io.elementary.files$", re.IGNORECASE),{ # K("RC-Super-o"): K("Shift-Enter"), # Open folder in new tab K("RC-comma"): None, # Disable preferences shortcut since none available },"Overrides for Pantheon - Finder Mods") # Keybindings overrides for Nautilus # (overrides some bindings from general file manager code block below) -define_keymap(re.compile("org.gnome.nautilus|nautilus", re.IGNORECASE),{ +define_keymap(re.compile("^org.gnome.nautilus$|^nautilus$", re.IGNORECASE),{ # K("RC-N"): K("C-M-Space"), # macOS Finder search window shortcut Cmd+Option+Space # For this ^^^^^^^^^^^ to work, a custom shortcut must be set up in the Settings app in GNOME # to run command: "nautilus --new-window /home/USER" [ replace "USER" ] @@ -337,14 +338,14 @@ define_keymap(re.compile("org.gnome.nautilus|nautilus", re.IGNORECASE),{ # Keybindings overrides for PCManFM and PCManFM-Qt # (overrides some bindings from general file manager code block below) -define_keymap(re.compile("pcmanfm|pcmanfm-qt", re.IGNORECASE),{ +define_keymap(re.compile("^pcmanfm$|^pcmanfm-qt$", re.IGNORECASE),{ K("RC-KEY_2"): K("C-KEY_4"), # View as List (Detailed) [Not in PCManFM-Qt] K("RC-Backspace"): [K("Delete"),K("Enter")], # Move to Trash (delete, bypass dialog) },"Overrides for PCManFM - Finder Mods") # Keybindings overrides for SpaceFM # (overrides some bindings from general file manager code block below) -define_keymap(re.compile("spacefm", re.IGNORECASE),{ +define_keymap(re.compile("^spacefm$", re.IGNORECASE),{ K("RC-Page_Up"): K("C-Shift-Tab"), # Go to prior tab K("RC-Page_Down"): K("C-Tab"), # Go to next tab K("RC-Shift-Left_Brace"): K("C-Shift-Tab"), # Go to prior tab @@ -360,7 +361,7 @@ define_keymap(re.compile("spacefm", re.IGNORECASE),{ # Keybindings overrides for Thunar # (overrides some bindings from general file manager code block below) -define_keymap(re.compile("thunar", re.IGNORECASE),{ +define_keymap(re.compile("^thunar$", re.IGNORECASE),{ K("RC-Super-o"): K("RC-Shift-P"), # Open in new tab K("RC-comma"): [K("M-E"),K("E")], # Overrides "Open preferences dialog" shortcut below },"Overrides for Thunar - Finder Mods") @@ -438,7 +439,7 @@ define_keymap(re.compile(filemanagerStr, re.IGNORECASE),{ ############################################ # Open preferences in browsers -define_keymap(re.compile("Firefox", re.IGNORECASE),{ +define_keymap(re.compile("^Firefox$", re.IGNORECASE),{ K("C-comma"): [ K("C-T"),K("a"),K("b"),K("o"),K("u"),K("t"), K("Shift-SEMICOLON"),K("p"),K("r"),K("e"),K("f"), @@ -485,7 +486,7 @@ define_keymap(re.compile(browserStr, re.IGNORECASE),{ # K("C-Right_Brace"): K("C-Page_Down"), }, "General Web Browsers") -define_keymap(re.compile("ulauncher", re.IGNORECASE),{ +define_keymap(re.compile("^ulauncher$", re.IGNORECASE),{ K("RC-Key_1"): K("M-Key_1"), # Remap Ctrl+[1-9] and Ctrl+[a-z] to Alt+[1-9] and Alt+[a-z] K("RC-Key_2"): K("M-Key_2"), K("RC-Key_3"): K("M-Key_3"), @@ -512,7 +513,7 @@ define_keymap(lambda wm_class: wm_class.casefold() not in terminals,{ }) # Tab navigation overrides for apps that use Ctrl+Shift+Tab/Ctrl+Tab instead of Ctrl+PgUp/PgDn -define_keymap(re.compile("org.gnome.Console|Kgx|deepin-terminal|Angry*IP*Scanner|jDownloader", re.IGNORECASE),{ +define_keymap(re.compile("^org.gnome.Console$|^Kgx$|^deepin-terminal$|^Angry*IP*Scanner$|^jDownloader$", re.IGNORECASE),{ ### Tab navigation K("RC-Shift-Left_Brace"): K("C-Shift-Tab"), # Tab nav: Go to prior tab (left) K("RC-Shift-Right_Brace"): K("C-Tab"), # Tab nav: Go to next tab (right) @@ -747,7 +748,7 @@ define_keymap(re.compile(sublimeStr, re.IGNORECASE),{ # K(""): K(""), # }, "Sublime Text") -define_keymap(re.compile("konsole", re.IGNORECASE),{ +define_keymap(re.compile("^konsole$", re.IGNORECASE),{ # Ctrl Tab - In App Tab Switching K("LC-Tab") : K("Shift-Right"), K("LC-Shift-Tab") : K("Shift-Left"), @@ -755,7 +756,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$|^kitty$", re.IGNORECASE),{ # Ctrl Tab - In App Tab Switching K("LC-Tab") : K("LC-Shift-Right"), K("LC-Shift-Tab") : K("LC-Shift-Left"), @@ -763,7 +764,7 @@ define_keymap(re.compile("Io.elementary.terminal|kitty", re.IGNORECASE),{ }, "Elementary Terminal tab switching") -define_keymap(re.compile("deepin-terminal", re.IGNORECASE),{ +define_keymap(re.compile("^deepin-terminal$", re.IGNORECASE),{ K("RC-w"): K("M-w"), # Close only current tab, instead of all other tabs K("RC-j"): None, # Block Cmd+J from remapping to vertical split (Ctrl+Shift+J) K("RC-minus"): K("C-minus"), # Decrease font size/zoom out From 79dd20652bb99807898c5f1c5c32402b42d7f043 Mon Sep 17 00:00:00 2001 From: Ben Reaves Date: Thu, 16 Jun 2022 02:23:45 -0500 Subject: [PATCH 6/8] Adds Devolutions RDP, Latest MS RDC, vmconnect, & vncviewer.exe. Closes #712 --- windows/kinto.ahk | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/windows/kinto.ahk b/windows/kinto.ahk index e4b9d02..caf24e3 100644 --- a/windows/kinto.ahk +++ b/windows/kinto.ahk @@ -177,6 +177,9 @@ GroupAdd, remotes, ahk_exe mstsc.exe GroupAdd, remotes, ahk_exe msrdc.exe GroupAdd, remotes, ahk_exe nxplayer.bin GroupAdd, remotes, ahk_exe vmconnect.exe +GroupAdd, remotes, ahk_exe RemoteDesktopManagerFree.exe +GroupAdd, remotes, ahk_exe vncviewer.exe +GroupAdd, remotes, Remote Desktop ahk_class ApplicationFrameWindow ; Disabled Edge for now - no ability to close all instances ; GroupAdd, browsers, Microsoft Edge ahk_class ApplicationFrameWindow @@ -442,7 +445,7 @@ GroupAdd, intellij, ahk_exe idea64.exe ; z::Send #z ; Chromebook ; #If ; Chromebook - #IfWinNotActive ahk_group terminals + #If Not WinActive("ahk_group terminals") and Not WinActive("ahk_group remotes") ^.::Send {Esc} ; emacs style #n::Send {Down} From 2c90c09c1be4a72c05aaa35048897eaae36e6481 Mon Sep 17 00:00:00 2001 From: Ben Reaves Date: Wed, 15 Jun 2022 21:45:30 -0500 Subject: [PATCH 7/8] Update README.md --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1e6e0a6..0efb897 100644 --- a/README.md +++ b/README.md @@ -151,14 +151,20 @@ RDP fully works as long as the entire keyboard input is being captured. RDP had |Program|Src/Remote Client ⇒|Dst/Remote Server|Works? |Notes| |---|---|---|---|---| -|Official MS RDP (mstsc.exe)| ❖Windows ⇒| 🐧Linux | ✅ Yes| Note: [v1.0.7-3 Only](https://github.com/rbreaves/kinto/releases/tag/1.0.7-3). Should work for xRDP/VNC and other remote server protocols. | |Official MS RDP (mstsc.exe)| ❖Windows ⇒| ❖Windows | ✅ Yes| | +|Official MS RDP (mstsc.exe)| ❖Windows ⇒| 🍎macOS | ✅ Yes| Note: Must compile & install xrdp. | +|Official MS RDC from Store| ❖Windows ⇒| ❖Windows | ✅ Yes| | +|Official MS RDC from Store| ❖Windows ⇒| 🍎macOS | ✅ Yes| Note: Must compile & install xrdp. | +|RealVNC| ❖Windows ⇒| 🐧Linux | ✅ Yes| Note: Compile & install my forked [x11vnc](https://gist.github.com/rbreaves/87059f92f030ee4e068f911ddb56a4dd) for compatibility. | +|Official MS RDP (mstsc.exe)| ❖Windows ⇒| 🐧Linux | ☐ Maybe | Note: Compile & install my forked [x11vnc](https://gist.github.com/rbreaves/87059f92f030ee4e068f911ddb56a4dd) for compatibility. | +|Official MS RDC from Store| ❖Windows ⇒| 🐧Linux | ☐ Maybe| Note: Compile & install my forked [x11vnc](https://gist.github.com/rbreaves/87059f92f030ee4e068f911ddb56a4dd) for compatibility. | |Official MS RDP| ChromeOS 87+⇒| ❖Windows | ✅ Yes|May work on earlier versions as well, if they support Android apps| |Remmina| 🐧Linux*/ChromeOS 87+⇒| ❖Windows | ✅ Yes|*Use hover menu to enable "Grab all keyboard events"| |FreeRDP| 🐧Linux/ChromeOS 87+⇒| ❖Windows | ✅ Yes | | |FreeRDP| 🍎macOS⇒| ❖Windows | ✅ Yes| [FreeRDP for macOS](#FreeRDP-for-macOS)| |Remote Desktop Manager Free|🍎iOS⇒| ❖Windows | ✅ Yes| | |Jump Desktop (RDP)| 🍎macOS*/iOS ⇒| ❖Windows | ✅ Yes|*Preferences -> Keyboard -> Disable "Key Conversions", Enabled "Send macOS Shortcuts" under Keyboard shortcuts| +|RealVNC| 🍎macOS⇒| 🐧Linux | ✅ Yes| Note: Compile & install my forked [x11vnc](https://gist.github.com/rbreaves/87059f92f030ee4e068f911ddb56a4dd) for compatibility. | |Official MS RDP| 🍎macOS⇒| ❖Windows | ❌ No|Initial Cmd key press not being passed| |Remote Desktop Manager Free| 🍎macOS⇒| ❖Windows | ❌ No|Initial Cmd key press not being passed| |Royal TSX Client| 🍎macOS⇒| ❖Windows | ❌ No|Initial Cmd key press not being passed| From 7c6c56f7c3c6807a146b9212874bd019412d858f Mon Sep 17 00:00:00 2001 From: Ben Reaves Date: Wed, 15 Jun 2022 21:46:45 -0500 Subject: [PATCH 8/8] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0efb897..842339c 100644 --- a/README.md +++ b/README.md @@ -156,8 +156,8 @@ RDP fully works as long as the entire keyboard input is being captured. RDP had |Official MS RDC from Store| ❖Windows ⇒| ❖Windows | ✅ Yes| | |Official MS RDC from Store| ❖Windows ⇒| 🍎macOS | ✅ Yes| Note: Must compile & install xrdp. | |RealVNC| ❖Windows ⇒| 🐧Linux | ✅ Yes| Note: Compile & install my forked [x11vnc](https://gist.github.com/rbreaves/87059f92f030ee4e068f911ddb56a4dd) for compatibility. | -|Official MS RDP (mstsc.exe)| ❖Windows ⇒| 🐧Linux | ☐ Maybe | Note: Compile & install my forked [x11vnc](https://gist.github.com/rbreaves/87059f92f030ee4e068f911ddb56a4dd) for compatibility. | -|Official MS RDC from Store| ❖Windows ⇒| 🐧Linux | ☐ Maybe| Note: Compile & install my forked [x11vnc](https://gist.github.com/rbreaves/87059f92f030ee4e068f911ddb56a4dd) for compatibility. | +|Official MS RDP (mstsc.exe)| ❖Windows ⇒| 🐧Linux | ☐ Maybe | Note: Compile & install my forked [x11vnc](https://gist.github.com/rbreaves/87059f92f030ee4e068f911ddb56a4dd) for compatibility, then setup xrdp like normal. | +|Official MS RDC from Store| ❖Windows ⇒| 🐧Linux | ☐ Maybe| Note: Compile & install my forked [x11vnc](https://gist.github.com/rbreaves/87059f92f030ee4e068f911ddb56a4dd) for compatibility, then setup xrdp like normal. | |Official MS RDP| ChromeOS 87+⇒| ❖Windows | ✅ Yes|May work on earlier versions as well, if they support Android apps| |Remmina| 🐧Linux*/ChromeOS 87+⇒| ❖Windows | ✅ Yes|*Use hover menu to enable "Grab all keyboard events"| |FreeRDP| 🐧Linux/ChromeOS 87+⇒| ❖Windows | ✅ Yes | |