Compare commits

..

1 Commits

Author SHA1 Message Date
Ben Reaves
de31948165 - Added new install script for linux 2021-01-23 23:34:32 -06:00
5 changed files with 78 additions and 34 deletions

View File

@@ -110,15 +110,16 @@ Select Uninstall
## How to use in Remote Desktop Solutions
RDP fully works as long as the entire keyboard input is being captured. RDP had been working for ahwile with Windows but as of 2/14/2021 Linux is now supported and potentially macOS as well.
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.
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|
|---|---|---|---|---|
|mstsc.exe (rdp)| Windows | Windows | Yes| |
|Official MS RDP| macOS | Windows | No|Use Windows in VM & RDP from it|
|Remmina| Linux | Windows | Yes|Use hover menu to enable "Grab all keyboard events"|
|FreeRDP| Linux | Windows | Maybe|Needs to grab keyboard events fully (Add client to remotes)|
|FreeRDP| macOS | Windows | Maybe|Needs to grab keyboard events fully|
|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|
## Table of Contents

60
linux/install.sh Normal file
View File

@@ -0,0 +1,60 @@
#!/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,19 +11,6 @@ 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]
@@ -37,6 +24,9 @@ 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
@@ -219,15 +209,6 @@ 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
})
# Open preferences in browsers
@@ -239,10 +220,7 @@ define_keymap(re.compile(chromeStr, re.IGNORECASE),{
})
# Opera C-F12
# 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,{
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)
K("RC-LC-f"):K("M-F10"), # Default SL - Maximize app (gnome/kde)
@@ -254,7 +232,7 @@ define_keymap(lambda wm_class: wm_class.casefold() not in remotes,{
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-Shift-Grave"), # Default not-xfce4 - Cmd ` - Same App Switching
K("RC-Shift-Grave"): K("M-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)

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

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
# set about:config?filter=ui.key.menuAccessKeyFocuses
# to false for wordwise to work in Firefox
@@ -327,8 +327,13 @@ expsh=" "
# sudo ./linux/system-config/unipkg.sh inotify-tools
# fi
if ! [ -x "$(command -v pip3)" ]; then
echo "Will need to install python3-pip..."
sudo ./linux/system-config/unipkg.sh python3-pip
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
fi
if ! [ -x "$(command -v python3-config)" ]; then
if [ "$distro" == "ubuntu" ] || [ "$distro" == "debian" ] || [ "$distro" == 'linuxmint' ]; then