Compare commits

..

26 Commits

Author SHA1 Message Date
Ben Reaves
5a373c0ede Debug purposes 2021-02-17 23:31:50 -06:00
Ben Reaves
06ba71fa67 Update README.md 2021-02-16 19:45:39 -06:00
Ben Reaves
539d916ae3 Update README.md 2021-02-16 19:42:32 -06:00
Ben Reaves
4a3877a5fa Update README.md 2021-02-15 21:33:08 -06:00
Ben Reaves
e255cb6727 Merge pull request #398 from rbreaves/hotfix
- Fixed hotkey mistakes for Chrome/IBM on Windows
2021-02-15 17:49:58 -06:00
Ben Reaves
8e0828aa3b - Fixed hotkey mistakes for Chrome/IBM on Windows 2021-02-15 17:42:53 -06:00
Ben Reaves
ecbf8a7aed Update README.md 2021-02-15 14:59:07 -06:00
Ben Reaves
93743cc4c5 Update README.md 2021-02-15 14:57:30 -06:00
Ben Reaves
34dee0e9ef Update README.md 2021-02-15 14:56:32 -06:00
Ben Reaves
261befaf7f Update README.md 2021-02-15 14:52:27 -06:00
Ben Reaves
5410895d0a Update README.md 2021-02-15 14:50:48 -06:00
Ben Reaves
319b506260 Update README.md 2021-02-15 14:48:46 -06:00
Ben Reaves
6a8de98bbd Update README.md 2021-02-15 14:44:10 -06:00
Ben Reaves
9aaac4f356 Update README.md 2021-02-15 14:40:48 -06:00
Ben Reaves
e9911f3de8 Update README.md 2021-02-15 14:33:54 -06:00
Ben Reaves
d76dcc9682 Update README.md 2021-02-15 14:31:48 -06:00
Ben Reaves
6a32f41de4 Update README.md 2021-02-15 14:24:30 -06:00
Ben Reaves
273d0e2ee4 Update README.md 2021-02-15 01:07:12 -06:00
Ben Reaves
ce9b137c13 Merge pull request #396 from rbreaves/linux-rdp
- Added Remmina support for RDP sessions (Linux to Windows)
2021-02-14 23:47:28 -06:00
Ben Reaves
dab65cd8f0 - Added Remmina support for RDP sessions (Linux to Windows) 2021-02-14 23:45:29 -06:00
Ben Reaves
50d53ba77f Merge pull request #385 from fracture91/browser-tab-num-jump
Make Command+Num on linux jump to tabs in browsers
2021-02-07 14:12:01 -08:00
Ben Reaves
a285e7ebe9 Merge pull request #386 from fracture91/same-app-switching-backwards
Fix Command + Shift + Grave same app switching so it moves backwards, not forwards
2021-02-04 19:59:49 -08:00
Andrew Hurle
231060ee5b Fix Command + Shift + Grave same app switching so it moves backwards 2021-02-04 21:13:42 -05:00
Andrew Hurle
f693312dce Make Command+Num on linux jump to tabs in browsers
See "Go to Tab 1 to 8" and "Go to Last Tab":

https://support.mozilla.org/en-US/kb/keyboard-shortcuts-perform-firefox-tasks-quickly#w_windows-tabs

See "Jump to a specific tab" and "Jump to the rightmost tab":

https://support.google.com/chrome/answer/157179?co=GENIE.Platform%3DDesktop&hl=en#zippy=%2Ctab-and-window-shortcuts
2021-02-04 17:12:22 -05:00
Ben Reaves
6d2dd55a96 Merge pull request #384 from rbreaves/dev
- Fixes system tray to be executable. Closes #383
2021-02-03 11:33:58 -08:00
Ryan Reaves
46430e3ec6 - Fixes system tray to be executable. Closes #383 2021-02-01 13:03:16 -06:00
6 changed files with 93 additions and 103 deletions

View File

@@ -110,17 +110,56 @@ Select Uninstall
## How to use in Remote Desktop Solutions
Currently this may be limited to Windows RDP Clients and Servers on both ends, but in theory any remote desktop solution that properly handles the Windows key should work is what I am finding. The latest version of Kinto may need to be suspended via the system tray on the computer running the Client software of the Remote Desktop solution you are using - or you can add it to the "virtm" group of the Kinto.ahk script for Windows 10. On the linux side a 3rd, but similar "define_conditional_modmap" terminals like group may need to be added to align with virtm.
RDP fully works as long as the entire keyboard input is being captured. RDP had been working for awhile with Windows but as of 2/14/2021 Linux is now supported and potentially macOS as well. VNC & other protocols may work, but is likely most dependent on how the keyboard input is captured on the computer running the client.
Note: virtm is just a shortname for virtual machine and remote desktop exceptions - so that remapping can happen within their OS & not on your host machine - if it can be avoided.
|Program|Host OS|Client OS|Works? |Notes|
|Program|Src/Remote Client ⇒|Dst/Remote Server|Works? |Notes|
|---|---|---|---|---|
|mstsc.exe (rdp)| Windows | Windows | Yes| |
|Official MS RDP| macOS | Windows | No|Use Windows in VM & RDP from it|
|FreeRDP| macOS | Windows | No|Use Windows in VM & RDP from it|
|FreeRDP| Linux | Windows | No|Use Windows in VM & RDP from it|
|Official MS RDP| iOS/Android | Windows | No|No workaround atm|
|Official MS RDP (mstsc.exe)| Windows | Windows | Yes| |
|Remmina| 🐧Linux⇒| Windows | ✅ Yes|Use hover menu to enable "Grab all keyboard events"|
|FreeRDP| 🐧Linux⇒| Windows | ✅ Yes | |
|FreeRDP| 🍎macOS⇒| Windows | ✅ Yes| [FreeRDP for macOS](#FreeRDP-for-macOS)|
|Jump Desktop (RDP)| 🍎macOS ⇒| Windows | ✅ Yes|Preferences -> Keyboard -> Disable "Key Conversions", Enabled "Send macOS Shortcuts" under Keyboard shortcuts|
|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|
|Official MS RDP| 🍎🤖iOS/Android⇒| ❖Windows | ❌ No|No workaround atm|
## FreeRDP for macOS
1. Install [brew.sh](https://brew.sh).
```/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"```
2. Install XQuartz (x11/xorg)
```brew install --cask xquartz```
3. log off and back on.
4. Install FreeRDP
```brew install freerdp```
5. Disable [NLA](https://kb.parallels.com/en/123661), if it is enabled on the destination.
6. Run command to access machine
Note: 192.168.x.x = Your IP.
```xfreerdp /u:your_username /v:192.168.x.x /cert-ignore /auto-reconnect-max-retries:0 /f +clipboard -decorations```
7. Click on XQuartz -> Preferences and set these checkmarks so that fullscreen can work, may need to quit it and re-run the xfreerdp command from step 6.
<img src="https://user-images.githubusercontent.com/10969616/108144025-68bfcf80-708e-11eb-96cc-2930b7b1694a.png" width="50%">
More info here
https://medium.com/idomongodb/macos-rdp-to-a-windows-machine-1e0f52f777b
## Jump Desktop for macOS
Screenshots of how to configure Jump Desktop for macOS users accessing a Windows PC with Kinto installed. I apologize that it is not a free RDP client - BUT it does work, and at $15 it is reasonable if you plan to use it frequently.
<img src="https://user-images.githubusercontent.com/10969616/107990246-a2fb7500-6f99-11eb-8c19-0a9b538b996f.png" width="25%">
<img src="https://user-images.githubusercontent.com/10969616/107990265-a8f15600-6f99-11eb-9922-bbcfa0b92031.png" width="50%">
<img src="https://user-images.githubusercontent.com/10969616/107990256-a68efc00-6f99-11eb-9f31-575ed6016944.png" width="50%">
## Table of Contents
@@ -385,6 +424,9 @@ I'd appreciate any help from people with non-US based keyboards, to help ensure
Yet another keyboard remapping tool for X environment
[libinput-gestures](https://github.com/bulletmark/libinput-gestures)
Three finger gesture or other type of gestures for desktop switching or other features within a Linux distro. More info here for quickly setting it up. Make sure you logoff after setting your user to access input. https://www.reddit.com/r/GalliumOS/comments/5lgrxe/psa_multitouch_gestures_on_galliumos/
[Interception](https://gitlab.com/interception/linux/tools)
Another low level key remapper, not as easily configurable as Xkeysnail, but does not rely on X11.

View File

@@ -1,60 +0,0 @@
#!/usr/bin/env bash
typeset -l distro
distro=$(awk -F= '$1=="NAME" { gsub("[\",!,_, ]","",$2);print $2 ;}' /etc/os-release)
packages=""
function unipkg() {
if pkgmgr="$( which apt-get )" 2> /dev/null; then
echo "Debian"
$pkgmgr update
$pkgmgr --yes --force-yes install $1
elif pkgmgr="$( which dnf )" 2> /dev/null; then
echo "dnf"
$pkgmgr check-update; $pkgmgr install -y $1
elif pkgmgr="$( which pacman )" 2> /dev/null; then
echo "Arch-based"
$pkgmgr -Syy;yes | $pkgmgr -S $1
else
echo "Package manager not found, please install $1" >&2
fi
if [[ 1 -ne $# ]]; then
echo "Syntax: $0 PACKAGE"
fi
}
if ! [ -x "$(command -v git)" ]; then
packages="${packages} git"
fi
if ! [ -x "$(command -v xhost)" ] || ! [ -x "$(command -v gcc)" ]; then
if [ "$distro" == "manjarolinux" ]; then
packages="xorg-xhost gcc"
fi
fi
if ! [ -x "$(command -v pip3)" ]; then
if [ "$distro" == "manjarolinux" ]; then
echo "Will need to install python-pip..."
packages="${packages} python-pip"
else
echo "Will need to install python3-pip..."
packages="${packages} python3-pip"
fi
fi
if ! [ -x "$(command -v python3-config)" ]; then
if [ "$distro" == "ubuntu" ] || [ "$distro" == "debian" ] || [ "$distro" == 'linuxmint' ]; then
packages="${packages} python3-dev"
elif [ "$distro" == "fedora" ]; then
packages="${packages} python3-devel"
fi
fi
if [ "$packages" != "" ]; then
sudo unipkg "${packages}"
fi
git clone https://github.com/rbreaves/kinto.git /tmp/kinto
cd /tmp/kinto
./setup.py

View File

@@ -11,6 +11,19 @@ terminals = ["kinto-gui.py","gnome-terminal","konsole","io.elementary.terminal",
terminals = [term.casefold() for term in terminals]
termStr = "|".join(str(x) for x in terminals)
mscodes = ["code","vscodium"]
codeStr = "|".join(str(x) for x in mscodes)
# Add remote desktop clients & VM software here
# Ideally we'd only exclude the client window,
# but that may not be easily done.
remotes = ["org.remmina.Remmina"]
remotes = [client.casefold() for client in remotes]
# Add remote desktop clients & VMs for no remapping
terminals.extend(remotes)
mscodes.extend(remotes)
# Use for browser specific hotkeys
browsers = ["Chromium","Chromium-browser","Google-chrome","microsoft-edge-dev","microsoft-edge","Epiphany","Firefox","Discord"]
browsers = [browser.casefold() for browser in browsers]
@@ -24,9 +37,6 @@ chromeStr = "|".join(str(x) for x in chromes)
# 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)
define_multipurpose_modmap(
# {Key.ENTER: [Key.ENTER, Key.RIGHT_CTRL] # Enter2Cmd
# {Key.CAPSLOCK: [Key.ESC, Key.RIGHT_CTRL] # Caps2Esc
@@ -194,7 +204,7 @@ define_keymap(re.compile("^jetbrains-(?!.*toolbox).*$", re.IGNORECASE),{
# VCS/Local History
K("Super-v"): K("M-Grave"), # VCS quick popup
K("Super-c"): K("LC-c"), # Sigints - interrupt
})
},"JetBrains Products")
# Keybindings for Nautilus
define_keymap(re.compile("org.gnome.nautilus", re.IGNORECASE),{
@@ -202,25 +212,37 @@ define_keymap(re.compile("org.gnome.nautilus", re.IGNORECASE),{
K("RC-Down"): K("M-Down"), # Go Down dir
K("RC-Left"): K("M-Left"), # Go Back
K("RC-Right"): K("M-Right"), # Go Forward
})
},"Nautilus")
# Keybindings for Browsers
define_keymap(re.compile(browserStr, re.IGNORECASE),{
K("RC-Q"): K("RC-Q"), # Close all browsers Instances
K("M-RC-I"): K("RC-Shift-I"), # Dev tools
K("M-RC-J"): K("RC-Shift-J"), # Dev tools
})
K("RC-Key_1"): K("M-Key_1"), # Jump to Tab #1-#8
K("RC-Key_2"): K("M-Key_2"),
K("RC-Key_3"): K("M-Key_3"),
K("RC-Key_4"): K("M-Key_4"),
K("RC-Key_5"): K("M-Key_5"),
K("RC-Key_6"): K("M-Key_6"),
K("RC-Key_7"): K("M-Key_7"),
K("RC-Key_8"): K("M-Key_8"),
K("RC-Key_9"): K("M-Key_9"), # Jump to last tab
},"General Web Browsers")
# Open preferences in browsers
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"),K("e"),K("r"),K("e"),K("n"),K("c"),K("e"),K("s"),K("Enter")],
})
},"Firefox")
define_keymap(re.compile(chromeStr, re.IGNORECASE),{
K("C-comma"): [K("M-e"), K("s"),K("Enter")],
})
},"Chrome Based Web Browsers")
# Opera C-F12
define_keymap(None,{
# None referenced here originally
# - but remote clients and VM software ought to be set here
# These are the typical remaps for ALL GUI based apps
define_keymap(lambda wm_class: wm_class.casefold() not in remotes,{
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)
K("RC-LC-f"):K("M-F10"), # Default SL - Maximize app (gnome/kde)
@@ -232,7 +254,7 @@ define_keymap(None,{
K("RC-Tab"): K("M-Tab"), # Default not-xfce4 - Cmd Tab - App Switching Default
K("RC-Shift-Tab"): K("M-Shift-Tab"), # Default not-xfce4 - Cmd Tab - App Switching Default
K("RC-Grave"): K("M-Grave"), # Default not-xfce4 - Cmd ` - Same App Switching
K("RC-Shift-Grave"): K("M-Grave"), # Default not-xfce4 - Cmd ` - Same App Switching
K("RC-Shift-Grave"): K("M-Shift-Grave"), # Default not-xfce4 - Cmd ` - Same App Switching
# K("Super-Right"):K("Super-Page_Up"), # SL - Change workspace (ubuntu/fedora)
# K("Super-Left"):K("Super-Page_Down"), # SL - Change workspace (ubuntu/fedora)
# K("Super-Right"):K("Super-C-Up"), # SL - Change workspace (popos)
@@ -292,7 +314,7 @@ define_keymap(None,{
K("Alt-Delete"): K("C-Delete"), # Default not-chromebook - Delete Right Word of Cursor
# K(""): pass_through_key, # cancel
# K(""): K(""), #
})
},"General GUI Apps")
define_keymap(lambda wm_class: wm_class.casefold() not in mscodes,{
# Wordwise remaining - for Everything but VS Code
@@ -315,7 +337,7 @@ define_keymap(lambda wm_class: wm_class.casefold() not in mscodes,{
# https://superuser.com/questions/770301/pentadactyl-how-to-disable-menu-bar-toggle-by-alt
# **
#
})
}, "wordwise for GUI apps")
# Keybindings for VS Code
define_keymap(re.compile(codeStr, re.IGNORECASE),{

0
linux/trayapps/appindicator/kintotray.py Normal file → Executable file
View File

View File

@@ -260,8 +260,8 @@ GroupAdd, intellij, ahk_exe idea64.exe
; $LCtrl::LWin ; MacModifiers
; Hack to disable start menu on winkey
; Static
$LCtrl up::Send {Ctrl down}{LWin up}{Ctrl up}
; Static - Does not apply to IBM or Chromebooks
; $LCtrl up::Send {Ctrl down}{LWin up}{Ctrl up} ; Default
; Disable Win-Up/Down - interferes with Sublime text 3 multi-cursors
#Down::return
@@ -524,8 +524,8 @@ GroupAdd, intellij, ahk_exe idea64.exe
^!Down::send ^{Down} ; scroll_lines down
; #+Up::send {shift up}^!{Up} ; Default - multi-cursor up
; #+Down::send {shift up}^!{Down} ; Default - multi-cursor down
; #+Up::send {shift up}^!{Up} ; CB/IBM - multi-cursor up
; #+Down::send {shift up}^!{Down} ; CB/IBM - multi-cursor down
; !+Up::send {shift up}^!{Up} ; CB/IBM - multi-cursor up
; !+Down::send {shift up}^!{Down} ; CB/IBM - multi-cursor down
^PgDn::Return ; cancel next_view
^PgUp::Return ; cancel prev_view
^+{::send ^{PgDn} ; next_view

View File

@@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/bin/bash
# set about:config?filter=ui.key.menuAccessKeyFocuses
# to false for wordwise to work in Firefox
@@ -327,13 +327,8 @@ expsh=" "
# sudo ./linux/system-config/unipkg.sh inotify-tools
# fi
if ! [ -x "$(command -v pip3)" ]; then
if [ "$distro" == "manjarolinux" ]; then
echo "Will need to install python-pip..."
sudo ./linux/system-config/unipkg.sh python-pip
else
echo "Will need to install python3-pip..."
sudo ./linux/system-config/unipkg.sh python3-pip
fi
echo "Will need to install python3-pip..."
sudo ./linux/system-config/unipkg.sh python3-pip
fi
if ! [ -x "$(command -v python3-config)" ]; then
if [ "$distro" == "ubuntu" ] || [ "$distro" == "debian" ] || [ "$distro" == 'linuxmint' ]; then
@@ -475,16 +470,7 @@ if ! [[ $1 == "5" || $1 == "uninstall" || $1 == "Uninstall" ]]; then
xhost +SI:localuser:root
git clone --depth 10 https://github.com/rbreaves/xkeysnail.git
cd xkeysnail
git checkout kinto
giturl=$(git ls-remote --get-url)
if [ "$giturl" != "https://github.com/rbreaves/xkeysnail.git" ];then
echo -e "\nreplacing xkeysnail with fork...\n"
cd ..
rm -rf ./xkeysnail
git clone --depth 10 https://github.com/rbreaves/xkeysnail.git
cd xkeysnail
git checkout kinto
fi
git checkout debug
sudo pip3 install --upgrade .
cd ..
which xkeysnail