mirror of
https://github.com/rbreaves/kinto.git
synced 2025-08-05 18:38:26 +02:00
Compare commits
9 Commits
linux-rdp
...
feature/Br
Author | SHA1 | Date | |
---|---|---|---|
![]() |
9562a25ebb | ||
![]() |
b7f4c6c54d | ||
![]() |
c0bc49b150 | ||
![]() |
bcea1e682a | ||
![]() |
78e480c5ad | ||
![]() |
37c7949fb4 | ||
![]() |
ef99b6548c | ||
![]() |
7647cebf22 | ||
![]() |
1a836d20d5 |
@@ -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
|
||||
|
11
linux/.xbindkeysrc
Executable file
11
linux/.xbindkeysrc
Executable file
@@ -0,0 +1,11 @@
|
||||
"~/.config/kinto/browsers.sh Left"
|
||||
m:0x8 + c:192
|
||||
Alt + XF86Launch5
|
||||
|
||||
"~/.config/kinto/browsers.sh Right"
|
||||
m:0x8 + c:193
|
||||
Alt + XF86Launch6
|
||||
|
||||
"~/.config/kinto/browsers.sh Undo"
|
||||
m:0x8 + c:194
|
||||
Alt + XF86Launch7
|
75
linux/browsers.sh
Executable file
75
linux/browsers.sh
Executable file
@@ -0,0 +1,75 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
action=$1
|
||||
|
||||
saveClipboard=$(xclip -selection clipboard -o)
|
||||
echo "" | xclip -i -selection clipboard
|
||||
|
||||
if [ "$action" == "Left" ] || [ "$action" == "Undo" ];then
|
||||
xdotool getactivewindow key --delay 40 --clearmodifiers Shift+Home ctrl+c Home
|
||||
firstClipboard=$(xclip -selection clipboard -o)
|
||||
if [ "$firstClipboard" == "" ];then
|
||||
xdotool getactivewindow key --delay 40 --clearmodifiers Shift+Right ctrl+c Home
|
||||
firstClipboard=$(xclip -selection clipboard -o)
|
||||
if [ "$firstClipboard" == "" ];then
|
||||
xdotool getactivewindow key --delay 24 --clearmodifiers bar Shift+Left ctrl+x
|
||||
firstClipboard=$(xclip -selection clipboard -o)
|
||||
fi
|
||||
fi
|
||||
echo "" | xclip -i -selection clipboard
|
||||
xdotool getactivewindow key --clearmodifiers Shift+Right ctrl+c Home
|
||||
if [ "${firstClipboard:0:1}" == "$(xclip -selection clipboard -o)" ];then
|
||||
echo "" | xclip -i -selection clipboard
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
if [ "$action" == "Right" ];then
|
||||
xdotool getactivewindow key --delay 40 --clearmodifiers Shift+End ctrl+c
|
||||
firstClipboard=$(xclip -selection clipboard -o | tr -d /)
|
||||
if [ "$firstClipboard" == "" ];then
|
||||
xdotool getactivewindow key --delay 40 --clearmodifiers Left Shift+Right ctrl+c
|
||||
firstClipboard=$(xclip -selection clipboard -o | tr -d /)
|
||||
if [ "$firstClipboard" == "" ];then
|
||||
xdotool getactivewindow key --delay 24 --clearmodifiers bar Shift+Left ctrl+x
|
||||
firstClipboard=$(xclip -selection clipboard -o | tr -d /)
|
||||
fi
|
||||
fi
|
||||
if [ "$firstClipboard" != "" ];then
|
||||
xdotool getactivewindow key --clearmodifiers Right
|
||||
fi
|
||||
echo "" | xclip -i -selection clipboard
|
||||
xdotool getactivewindow key --clearmodifiers Shift+Left ctrl+c
|
||||
if [ "${firstClipboard: -1}" == "$(xclip -selection clipboard -o)" ];then
|
||||
echo "" | xclip -i -selection clipboard
|
||||
xdotool getactivewindow key --clearmodifiers Right
|
||||
fi
|
||||
fi
|
||||
|
||||
newClipboard=$(xclip -selection clipboard -o)
|
||||
|
||||
# echo ${#firstClipboard}
|
||||
# echo "$firstClipboard""-"
|
||||
# echo "first"
|
||||
# echo ${#newClipboard}
|
||||
# echo "$newClipboard""-"
|
||||
# echo "hello"
|
||||
|
||||
|
||||
if [ "$action" == "Left" ] && ([ "$firstClipboard" == "" ] || [ "$newClipboard" != "" ]);then
|
||||
xdotool getactivewindow key --clearmodifiers alt+Left
|
||||
fi
|
||||
|
||||
if [ "$action" == "Right" ] && ([ "$firstClipboard" == "" ] || [ "$newClipboard" != "" ]);then
|
||||
xdotool getactivewindow key --clearmodifiers alt+Right
|
||||
elif [ "$action" == "Right" ];then
|
||||
xdotool getactivewindow key --clearmodifiers End
|
||||
fi
|
||||
|
||||
if [ "$action" == "Undo" ] && ([ "$firstClipboard" != "" ] && [ "$newClipboard" == "" ]);then
|
||||
xdotool getactivewindow key --delay 24 --clearmodifiers ctrl+z
|
||||
elif [ "$action" == "Undo" ];then
|
||||
xdotool getactivewindow key ctrl+Shift+t
|
||||
fi
|
||||
|
||||
echo $saveClipboard | xclip -i -selection clipboard
|
@@ -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,6 +209,9 @@ 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-Left"): K("M-F14"), # Back
|
||||
K("RC-Right"): K("M-F15"), # Forward
|
||||
K("RC-Z"): K("M-F16"), # Undo Text/Closed Tab
|
||||
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"),
|
||||
@@ -239,10 +232,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)
|
||||
|
@@ -343,9 +343,29 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
||||
^+4::Send #+{S}
|
||||
|
||||
; wordwise support
|
||||
$^Left::Send {Home}
|
||||
#if !winactive("ahk_group browsers")
|
||||
$^Left::Send {Home}
|
||||
$^Right::Send {End}
|
||||
#if
|
||||
#if winactive("ahk_group browsers")
|
||||
$^Left::
|
||||
if(blinking()){
|
||||
Send, {Home}
|
||||
}
|
||||
else{
|
||||
Send, !{Left}
|
||||
}
|
||||
Return
|
||||
$^Right::
|
||||
if(blinking()){
|
||||
Send, {End}
|
||||
}
|
||||
else{
|
||||
Send, !{Right}
|
||||
}
|
||||
Return
|
||||
#if
|
||||
$^+Left::Send +{Home}
|
||||
$^Right::Send {End}
|
||||
$^+Right::Send +{End}
|
||||
^Up::Send ^{Home}
|
||||
^+Up::Send ^+{Home}
|
||||
@@ -469,9 +489,18 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
||||
; Dev Tools
|
||||
!^i::send {Ctrl Down}{Shift Down}i{Shift Up}{Ctrl Up}
|
||||
!^j::send {Ctrl Down}{Shift Down}j{Shift Up}{Ctrl Up}
|
||||
; Reopen closed tab or Undo text field
|
||||
$^z::
|
||||
if(blinking()){
|
||||
Send ^z
|
||||
}
|
||||
else{
|
||||
Send ^+t
|
||||
}
|
||||
Return
|
||||
; Open preferences
|
||||
#IfWinActive ahk_exe firefox.exe
|
||||
^,::send, {Ctrl Down}t{Ctrl Up}about:preferences{Enter}
|
||||
^,::send {Ctrl Down}t{Ctrl Up}about:preferences{Enter}
|
||||
#If
|
||||
#IfWinActive ahk_exe chrome.exe
|
||||
^,::send {Alt Down}e{Alt Up}s{Enter}
|
||||
@@ -759,4 +788,22 @@ Send {RWin up}
|
||||
Send {LWin up}
|
||||
Send {RShift up}
|
||||
Send {LShift up}
|
||||
return
|
||||
return
|
||||
|
||||
blinking(){
|
||||
ClipSaved := ClipboardAll
|
||||
clipboard := ""
|
||||
status := False
|
||||
Send, {Left}{Left}{Right}
|
||||
Send, +{Right}
|
||||
Send, ^c
|
||||
Send, {Left}
|
||||
ClipWait, 0.2
|
||||
if(clipboard != "" ){
|
||||
status := True
|
||||
}
|
||||
Sleep, 100
|
||||
clipboard := ClipSaved
|
||||
ClipSaved := ""
|
||||
return status
|
||||
}
|
Reference in New Issue
Block a user