mirror of
https://github.com/rbreaves/kinto.git
synced 2025-08-14 06:39:16 +02:00
Compare commits
1 Commits
1.2-11
...
feature/po
Author | SHA1 | Date | |
---|---|---|---|
![]() |
8c581db297 |
@@ -13,7 +13,7 @@ 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.
|
Kinto is powered by [xkeysnail](https://github.com/mooz/xkeysnail) for Linux & by [Autohotkey](https://github.com/Lexikos/AutoHotkey_L) for Windows 10.
|
||||||
|
|
||||||
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: If you plan to remote into Linux via VNC, xRDP, Synergy or other remote desktop solutions then remove the current release, or create a new user, & 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.
|
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.
|
||||||
|
|
||||||
@@ -157,10 +157,6 @@ RDP fully works as long as the entire keyboard input is being captured. RDP had
|
|||||||
|Royal TSX Client| 🍎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|
|
|Official MS RDP| 🍎🤖iOS/Android⇒| ❖Windows | ❌ No|No workaround atm|
|
||||||
|
|
||||||
## How to Remap Windows keyboards for remote access to macOS
|
|
||||||
Quick summary - Swap Alt & Win to conform with Apple keyboard layouts. Sharpkeys for Windows, Setkeycodes for Linux, then install Kinto.sh or change/update the Keyboard Type to Apple in the system tray.
|
|
||||||
https://benreaves.medium.com/macos-to-linux-back-again-c6151200f4dc
|
|
||||||
|
|
||||||
## FreeRDP for macOS
|
## FreeRDP for macOS
|
||||||
|
|
||||||
1. Install [brew.sh](https://brew.sh).
|
1. Install [brew.sh](https://brew.sh).
|
||||||
|
@@ -44,7 +44,6 @@ codeStr = "|".join(str('^'+x+'$') for x in mscodes)
|
|||||||
remotes = [
|
remotes = [
|
||||||
"Gnome-boxes",
|
"Gnome-boxes",
|
||||||
"org.remmina.Remmina",
|
"org.remmina.Remmina",
|
||||||
"remmina",
|
|
||||||
"qemu-system-.*",
|
"qemu-system-.*",
|
||||||
"Virt-manager",
|
"Virt-manager",
|
||||||
"VirtualBox",
|
"VirtualBox",
|
||||||
@@ -64,8 +63,6 @@ browsers = [
|
|||||||
"Discord",
|
"Discord",
|
||||||
"Epiphany",
|
"Epiphany",
|
||||||
"Firefox",
|
"Firefox",
|
||||||
"Firefox Developer Edition",
|
|
||||||
"Waterfox",
|
|
||||||
"Google-chrome",
|
"Google-chrome",
|
||||||
"microsoft-edge",
|
"microsoft-edge",
|
||||||
"microsoft-edge-dev",
|
"microsoft-edge-dev",
|
||||||
@@ -319,10 +316,6 @@ define_keymap(re.compile("pcmanfm|pcmanfm-qt", re.IGNORECASE),{
|
|||||||
# Keybindings overrides for SpaceFM
|
# Keybindings overrides for SpaceFM
|
||||||
# (overrides some bindings from general file manager code block below)
|
# (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
|
|
||||||
K("RC-Shift-Right_Brace"): K("C-Tab"), # Go to next tab
|
|
||||||
K("RC-Shift-N"): [K("RC-F")], # Create new folder is Ctrl+F by default
|
K("RC-Shift-N"): [K("RC-F")], # Create new folder is Ctrl+F by default
|
||||||
K("RC-Backspace"): [K("Delete"),K("Enter")], # Move to Trash (delete, bypass dialog)
|
K("RC-Backspace"): [K("Delete"),K("Enter")], # Move to Trash (delete, bypass dialog)
|
||||||
K("RC-comma"): [K("M-V"),K("p")], # Overrides "Open preferences dialog" shortcut below
|
K("RC-comma"): [K("M-V"),K("p")], # Overrides "Open preferences dialog" shortcut below
|
||||||
@@ -383,8 +376,6 @@ define_keymap(re.compile(filemanagerStr, re.IGNORECASE),{
|
|||||||
# K("RC-Down"): K("M-Down"), # Go Down dir (only works on folders) [not universal]
|
# K("RC-Down"): K("M-Down"), # Go Down dir (only works on folders) [not universal]
|
||||||
# K("RC-Down"): K("RC-O"), # Go Down dir (open folder/file) [not universal]
|
# K("RC-Down"): K("RC-O"), # Go Down dir (open folder/file) [not universal]
|
||||||
K("RC-Down"): K("Enter"), # Go Down dir (open folder/file) [universal]
|
K("RC-Down"): K("Enter"), # Go Down dir (open folder/file) [universal]
|
||||||
K("RC-Shift-Left_Brace"): K("C-Page_Up"), # Go to prior tab
|
|
||||||
K("RC-Shift-Right_Brace"): K("C-Page_Down"), # Go to next tab
|
|
||||||
###########################################################################################################
|
###########################################################################################################
|
||||||
### Open in New Window | Move to Trash | Duplicate file/folder ###
|
### Open in New Window | Move to Trash | Duplicate file/folder ###
|
||||||
###########################################################################################################
|
###########################################################################################################
|
||||||
@@ -403,7 +394,7 @@ define_keymap(re.compile(filemanagerStr, re.IGNORECASE),{
|
|||||||
### END OF FILE MANAGER GROUP OF KEYMAPS ###
|
### END OF FILE MANAGER GROUP OF KEYMAPS ###
|
||||||
############################################
|
############################################
|
||||||
|
|
||||||
# Keybindings for General Web Browsers
|
# Keybindings for Browsers
|
||||||
define_keymap(re.compile(browserStr, re.IGNORECASE),{
|
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("M-RC-I"): K("RC-Shift-I"), # Dev tools
|
K("M-RC-I"): K("RC-Shift-I"), # Dev tools
|
||||||
@@ -417,20 +408,9 @@ define_keymap(re.compile(browserStr, re.IGNORECASE),{
|
|||||||
K("RC-Key_7"): K("M-Key_7"),
|
K("RC-Key_7"): K("M-Key_7"),
|
||||||
K("RC-Key_8"): K("M-Key_8"),
|
K("RC-Key_8"): K("M-Key_8"),
|
||||||
K("RC-Key_9"): K("M-Key_9"), # Jump to last tab
|
K("RC-Key_9"): K("M-Key_9"), # Jump to last tab
|
||||||
# Enable Cmd+Shift+Braces for tab navigation
|
K("C-Left_Brace"): K("C-Page_Up"),
|
||||||
K("RC-Shift-Left_Brace"): K("C-Page_Up"), # Go to prior tab
|
K("C-Right_Brace"): K("C-Page_Down"),
|
||||||
K("RC-Shift-Right_Brace"): K("C-Page_Down"), # Go to next tab
|
})
|
||||||
# Enable Cmd+Option+Left/Right for tab navigation
|
|
||||||
K("RC-M-Left"): K("C-Page_Up"), # Go to prior tab
|
|
||||||
K("RC-M-Right"): K("C-Page_Down"), # Go to next tab
|
|
||||||
# Enable Ctrl+PgUp/PgDn for tab navigation
|
|
||||||
K("Super-Page_Up"): K("C-Page_Up"), # Go to prior tab
|
|
||||||
K("Super-Page_Down"): K("C-Page_Down"), # Go to next tab
|
|
||||||
# Use Cmd+Braces keys for tab navigation instead of page navigation
|
|
||||||
# K("C-Left_Brace"): K("C-Page_Up"),
|
|
||||||
# K("C-Right_Brace"): K("C-Page_Down"),
|
|
||||||
}, "General Web Browsers")
|
|
||||||
|
|
||||||
|
|
||||||
# Open preferences in browsers
|
# Open preferences in browsers
|
||||||
define_keymap(re.compile("Firefox", re.IGNORECASE),{
|
define_keymap(re.compile("Firefox", re.IGNORECASE),{
|
||||||
@@ -439,7 +419,6 @@ define_keymap(re.compile("Firefox", re.IGNORECASE),{
|
|||||||
K("Shift-SEMICOLON"),K("p"),K("r"),K("e"),K("f"),
|
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")
|
K("e"),K("r"),K("e"),K("n"),K("c"),K("e"),K("s"),K("Enter")
|
||||||
],
|
],
|
||||||
K("RC-Shift-N"): K("RC-Shift-P"), # Open private window with Ctrl+Shift+N like other browsers
|
|
||||||
})
|
})
|
||||||
define_keymap(re.compile(chromeStr, re.IGNORECASE),{
|
define_keymap(re.compile(chromeStr, re.IGNORECASE),{
|
||||||
K("C-comma"): [K("M-e"), K("s"),K("Enter")],
|
K("C-comma"): [K("M-e"), K("s"),K("Enter")],
|
||||||
@@ -458,7 +437,6 @@ 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-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-F3"):K("Super-d"), # Default SL - Show Desktop (gnome/kde,eos)
|
||||||
K("RC-Super-f"):K("M-F10"), # Default SL - Maximize app (gnome/kde)
|
K("RC-Super-f"):K("M-F10"), # Default SL - Maximize app (gnome/kde)
|
||||||
# K("RC-Super-f"): K("Super-Page_Up"), # SL - Toggle maximized window state (kde_neon)
|
|
||||||
# K("Super-Right"):K("C-M-Right"), # Default SL - Change workspace (budgie)
|
# K("Super-Right"):K("C-M-Right"), # Default SL - Change workspace (budgie)
|
||||||
# K("Super-Left"):K("C-M-Left"), # Default SL - Change workspace (budgie)
|
# K("Super-Left"):K("C-M-Left"), # Default SL - Change workspace (budgie)
|
||||||
K("RC-Q"): K("M-F4"), # Default SL - not-popos
|
K("RC-Q"): K("M-F4"), # Default SL - not-popos
|
||||||
|
@@ -11,4 +11,3 @@ Defaults!/etc/init.d/kinto setenv,env_reset,env_delete+=PATH,env_delete+=LD_PREL
|
|||||||
%{username} ALL=NOPASSWD: {pkill} -f bin/xkeysnail
|
%{username} ALL=NOPASSWD: {pkill} -f bin/xkeysnail
|
||||||
%{username} ALL=NOPASSWD: {xkeysnail} *
|
%{username} ALL=NOPASSWD: {xkeysnail} *
|
||||||
%{username} ALL=NOPASSWD: {systemctl} is-active --quiet xkeysnail
|
%{username} ALL=NOPASSWD: {systemctl} is-active --quiet xkeysnail
|
||||||
%{username} ALL=NOPASSWD: /usr/lib/systemd/system/xkeysnail.service
|
|
||||||
|
@@ -4,8 +4,8 @@ Description=xkeysnail
|
|||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
KillMode=process
|
KillMode=process
|
||||||
ExecStart={sudo}/bin/bash -c '/usr/bin/xhost +SI:localuser:root && {homedir}/.config/kinto/killdups.sh && {xkeysnail} --quiet --watch {homedir}/.config/kinto/kinto.py'
|
ExecStart=/usr/bin/sudo /bin/bash -c '/usr/bin/xhost +SI:localuser:root && {homedir}/.config/kinto/killdups.sh && {xkeysnail} --quiet --watch {homedir}/.config/kinto/kinto.py'
|
||||||
ExecStop={sudo}/bin/bash -c '{sudo}pkill -f bin/xkeysnail && exit 0'
|
ExecStop=/usr/bin/sudo /bin/bash -c '/usr/bin/sudo pkill -f bin/xkeysnail && exit 0'
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
RestartSec=3
|
RestartSec=3
|
||||||
Environment=DISPLAY={displayid}
|
Environment=DISPLAY={displayid}
|
||||||
|
28
setup.py
28
setup.py
@@ -29,15 +29,15 @@ def windows_setup():
|
|||||||
print("This install will fail if you are not running with elevated privileges")
|
print("This install will fail if you are not running with elevated privileges")
|
||||||
os.system('powershell -executionpolicy bypass ".\\windows\\autohotkey.ps1"')
|
os.system('powershell -executionpolicy bypass ".\\windows\\autohotkey.ps1"')
|
||||||
print("Copying autohotkey combinations for Terminals & Editors...")
|
print("Copying autohotkey combinations for Terminals & Editors...")
|
||||||
os.system('copy /Y "' + path + '\\windows\\kinto.ahk" "' + homedir + '\\kinto-new.ahk"')
|
os.system('copy /Y "' + path + '\\windows\\kinto.ahk" "' + path + '\\windows\\kinto-new.ahk"')
|
||||||
if default < 3:
|
if default < 3:
|
||||||
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; Default)(?!( - ST2CODE))(.*)/$2$3$5/gm" ' + homedir + '\\kinto-new.ahk')
|
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; Default)(?!( - ST2CODE))(.*)/$2$3$5/g" .\\windows\\kinto-new.ahk')
|
||||||
if default == 1:
|
if default == 1:
|
||||||
kbtype = "mac"
|
kbtype = "mac"
|
||||||
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; MacModifiers)/$2$3/gm" ' + homedir + '\\kinto-new.ahk')
|
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; MacModifiers)/$2$3/g" .\\windows\\kinto-new.ahk')
|
||||||
elif default == 2:
|
elif default == 2:
|
||||||
kbtype = "win"
|
kbtype = "win"
|
||||||
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; WinModifiers)/$2$3/gm" ' + homedir + '\\kinto-new.ahk')
|
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; WinModifiers)/$2$3/g" .\\windows\\kinto-new.ahk')
|
||||||
elif default == 5:
|
elif default == 5:
|
||||||
print("Removing any old registry keys from prior versions...")
|
print("Removing any old registry keys from prior versions...")
|
||||||
p = subprocess.Popen(['powershell.exe', "Remove-ItemProperty -Path HKLM:'SYSTEM\CurrentControlSet\Control\Keyboard Layout' -Name 'Scancode Map' -ErrorAction SilentlyContinue"], stdout=sys.stdout)
|
p = subprocess.Popen(['powershell.exe', "Remove-ItemProperty -Path HKLM:'SYSTEM\CurrentControlSet\Control\Keyboard Layout' -Name 'Scancode Map' -ErrorAction SilentlyContinue"], stdout=sys.stdout)
|
||||||
@@ -52,32 +52,32 @@ def windows_setup():
|
|||||||
print("Uninstall of Kinto is Complete.")
|
print("Uninstall of Kinto is Complete.")
|
||||||
if default == 3:
|
if default == 3:
|
||||||
kbtype = "chrome"
|
kbtype = "chrome"
|
||||||
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; Chromebook)/$2$3/gm" ' + homedir + '\\kinto-new.ahk')
|
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; Chromebook)/$2$3/g" .\\windows\\kinto-new.ahk')
|
||||||
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; WinModifiers\/CB)/$2$3/gm" ' + homedir + '\\kinto-new.ahk')
|
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; WinModifiers/CB)/$2$3/g" .\\windows\\kinto-new.ahk')
|
||||||
if default == 3 or default == 4:
|
if default == 3 or default == 4:
|
||||||
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; CB\/IBM)/$2$3/gm" ' + homedir + '\\kinto-new.ahk')
|
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; CB\/IBM)/$2$3/g" .\\windows\\kinto-new.ahk')
|
||||||
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; WinModifiers\/CB\/IBM)/$2$3/gm" ' + homedir + '\\kinto-new.ahk')
|
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; WinModifiers\/CB\/IBM)/$2$3/g" .\\windows\\kinto-new.ahk')
|
||||||
if default == 4:
|
if default == 4:
|
||||||
kbtype = "ibm"
|
kbtype = "ibm"
|
||||||
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; IBM)/$2$3/gm" ' + homedir + '\\kinto-new.ahk')
|
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; IBM)/$2$3/g" .\\windows\\kinto-new.ahk')
|
||||||
if default > 0 and default < 5:
|
if default > 0 and default < 5:
|
||||||
stvscode = yn_choice(bcolors.CYELLOW2 + "Would you like to use Sublime Text 3 keymaps in VS Code?\n" + bcolors.ENDC)
|
stvscode = yn_choice(bcolors.CYELLOW2 + "Would you like to use Sublime Text 3 keymaps in VS Code?\n" + bcolors.ENDC)
|
||||||
print("\nWill now install Ubuntu Terminal Theme as default...")
|
print("\nWill now install Ubuntu Terminal Theme as default...")
|
||||||
os.system('regedit "' + path + '\\windows\\theme_ubuntu.reg"')
|
os.system('regedit "' + path + '\\windows\\theme_ubuntu.reg"')
|
||||||
os.system('robocopy "'+ path + '\\assets" "%userprofile%\\.kinto\\assets" /E')
|
os.system('robocopy "'+ path + '\\assets" "%userprofile%\\.kinto\\assets" /E')
|
||||||
if (stvscode and (default > 0 or default < 3)):
|
if (stvscode and (default > 0 or default < 3)):
|
||||||
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; Default - ST2CODE)/$2$3/gm" ' + homedir + '\\kinto-new.ahk')
|
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; Default - ST2CODE)/$2$3/g" .\\windows\\kinto-new.ahk')
|
||||||
elif (stvscode and (default == 3 or default == 4 )):
|
elif (stvscode and (default == 3 or default == 4 )):
|
||||||
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; CB/IBM - ST2CODE)/$2$3/gm" ' + homedir + '\\kinto-new.ahk')
|
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; CB/IBM - ST2CODE)/$2$3/g" .\\windows\\kinto-new.ahk')
|
||||||
os.system('copy /Y "' + path + '\\windows\\kinto-start.vbs" "%userprofile%\\.kinto\\kinto-start.vbs"')
|
os.system('copy /Y "' + path + '\\windows\\kinto-start.vbs" "%userprofile%\\.kinto\\kinto-start.vbs"')
|
||||||
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/{kbtype}/' + kbtype + '/gm" "%userprofile%\\.kinto\\kinto-start.vbs"')
|
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/{kbtype}/' + kbtype + '/g" "%userprofile%\\.kinto\\kinto-start.vbs"')
|
||||||
os.system('copy /Y "' + path + '\\windows\\usb.vbs" "%userprofile%\\.kinto\\usb.vbs"')
|
os.system('copy /Y "' + path + '\\windows\\usb.vbs" "%userprofile%\\.kinto\\usb.vbs"')
|
||||||
os.system('copy /Y "' + path + '\\windows\\detectUSB.ahk" "%userprofile%\\.kinto\\detectUSB.ahk"')
|
os.system('copy /Y "' + path + '\\windows\\detectUSB.ahk" "%userprofile%\\.kinto\\detectUSB.ahk"')
|
||||||
os.system('mklink "%userprofile%\\AppData\\Roaming\\Microsoft\\Windows\\STARTM~1\\Programs\\Startup\\kinto-start.vbs" "%userprofile%\\.kinto\\kinto-start.vbs"')
|
os.system('mklink "%userprofile%\\AppData\\Roaming\\Microsoft\\Windows\\STARTM~1\\Programs\\Startup\\kinto-start.vbs" "%userprofile%\\.kinto\\kinto-start.vbs"')
|
||||||
os.system('copy /Y "'+ path + '\\windows\\NoShell.vbs" "%userprofile%\\.kinto\\NoShell.vbs"')
|
os.system('copy /Y "'+ path + '\\windows\\NoShell.vbs" "%userprofile%\\.kinto\\NoShell.vbs"')
|
||||||
os.system('copy /Y "'+ path + '\\windows\\toggle_kb.bat" "%userprofile%\\.kinto\\toggle_kb.bat"')
|
os.system('copy /Y "'+ path + '\\windows\\toggle_kb.bat" "%userprofile%\\.kinto\\toggle_kb.bat"')
|
||||||
os.system('copy /Y "'+ homedir + '\\kinto-new.ahk" "%userprofile%\\.kinto\\kinto.ahk"')
|
os.system('copy /Y "'+ path + '\\windows\\kinto-new.ahk" "%userprofile%\\.kinto\\kinto.ahk"')
|
||||||
os.system("del /f " + homedir + "\\kinto-new.ahk")
|
os.system("del /f .\\windows\\kinto-new.ahk")
|
||||||
os.system("del \"C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\StartUp\\kinto.ahk\" 2> nul")
|
os.system("del \"C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\StartUp\\kinto.ahk\" 2> nul")
|
||||||
userpath = cmdline('cmd /c for %A in ("%userprofile%") do @echo %~sA')[:-1]
|
userpath = cmdline('cmd /c for %A in ("%userprofile%") do @echo %~sA')[:-1]
|
||||||
print('Starting... "' + userpath + '\\AppData\\Roaming\\Microsoft\\Windows\\STARTM~1\\Programs\\Startup\\kinto-start.vbs"')
|
print('Starting... "' + userpath + '\\AppData\\Roaming\\Microsoft\\Windows\\STARTM~1\\Programs\\Startup\\kinto-start.vbs"')
|
||||||
|
@@ -176,7 +176,6 @@ GroupAdd, remotes, ahk_exe VirtualBoxVM.exe
|
|||||||
GroupAdd, remotes, ahk_exe mstsc.exe
|
GroupAdd, remotes, ahk_exe mstsc.exe
|
||||||
GroupAdd, remotes, ahk_exe msrdc.exe
|
GroupAdd, remotes, ahk_exe msrdc.exe
|
||||||
GroupAdd, remotes, ahk_exe nxplayer.bin
|
GroupAdd, remotes, ahk_exe nxplayer.bin
|
||||||
GroupAdd, remotes, ahk_exe vmconnect.exe
|
|
||||||
|
|
||||||
; Disabled Edge for now - no ability to close all instances
|
; Disabled Edge for now - no ability to close all instances
|
||||||
; GroupAdd, browsers, Microsoft Edge ahk_class ApplicationFrameWindow
|
; GroupAdd, browsers, Microsoft Edge ahk_class ApplicationFrameWindow
|
||||||
@@ -203,6 +202,17 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
|||||||
; End::Send {Media_Play_Pause} ; Pause/Play
|
; End::Send {Media_Play_Pause} ; Pause/Play
|
||||||
; PgDn::Send {Media_Next} ; Next
|
; PgDn::Send {Media_Next} ; Next
|
||||||
|
|
||||||
|
; Temporary fix that allows for full remapping via Powertoys
|
||||||
|
; useful for destinations where you cannot install Kinto
|
||||||
|
; and you are using a Mac based keyboard
|
||||||
|
; NOTE: Do not fully maximize the RDP window for this to work.
|
||||||
|
#IfWinActive ahk_group remotes ; MacOnly
|
||||||
|
; #IfWinActive ahk_exe msrdc.exe ; MacOnly
|
||||||
|
$LWin::LAlt ; MacOnly
|
||||||
|
$LAlt::RAlt ; MacOnly
|
||||||
|
$LWin up::Send {LWin up}{LAlt up}{LCtrl up} ; MacOnly
|
||||||
|
#If ; MacOnly
|
||||||
|
|
||||||
#IfWinNotActive ahk_group remotes
|
#IfWinNotActive ahk_group remotes
|
||||||
|
|
||||||
; New AltTab and CtrlTab fix
|
; New AltTab and CtrlTab fix
|
||||||
@@ -309,10 +319,8 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
|||||||
!Esc::SendInput, {Pause}
|
!Esc::SendInput, {Pause}
|
||||||
|
|
||||||
; Go up or down a page
|
; Go up or down a page
|
||||||
#IfWinNotActive ahk_group editors
|
$!Down::Send {PgDn};
|
||||||
$!Down::Send {PgDn}
|
$!Up::Send {PgUp};
|
||||||
$!Up::Send {PgUp}
|
|
||||||
#If
|
|
||||||
|
|
||||||
; Close Apps
|
; Close Apps
|
||||||
^q::Send !{F4}
|
^q::Send !{F4}
|
||||||
@@ -539,13 +547,6 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
|||||||
|
|
||||||
; Close all browsers
|
; Close all browsers
|
||||||
#IfWinActive ahk_group browsers
|
#IfWinActive ahk_group browsers
|
||||||
;Tab Navigation
|
|
||||||
^+[::send ^{PgUp}
|
|
||||||
^+]::send ^{PgDn}
|
|
||||||
^!Left::send ^{PgUp}
|
|
||||||
^!Right::send ^{PgDn}
|
|
||||||
#Left::send ^{PgUp}
|
|
||||||
#Right::send ^{PgDn}
|
|
||||||
^q::send {Alt Down}f{Alt Up}x ; exit all windows
|
^q::send {Alt Down}f{Alt Up}x ; exit all windows
|
||||||
; Dev Tools
|
; Dev Tools
|
||||||
!^i::send {Ctrl Down}{Shift Down}i{Shift Up}{Ctrl Up}
|
!^i::send {Ctrl Down}{Shift Down}i{Shift Up}{Ctrl Up}
|
||||||
@@ -553,7 +554,6 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
|||||||
; Open preferences
|
; Open preferences
|
||||||
#IfWinActive ahk_exe firefox.exe
|
#IfWinActive ahk_exe firefox.exe
|
||||||
^,::send, {Ctrl Down}t{Ctrl Up}about:preferences{Enter}
|
^,::send, {Ctrl Down}t{Ctrl Up}about:preferences{Enter}
|
||||||
^+n::send ^+p
|
|
||||||
#If
|
#If
|
||||||
#IfWinActive ahk_exe chrome.exe
|
#IfWinActive ahk_exe chrome.exe
|
||||||
^,::send {Alt Down}e{Alt Up}s{Enter}
|
^,::send {Alt Down}e{Alt Up}s{Enter}
|
||||||
@@ -593,7 +593,7 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
|||||||
; #x::Send ^{x} ; Default - Terminal - Ctrl-x
|
; #x::Send ^{x} ; Default - Terminal - Ctrl-x
|
||||||
; #c::Send ^{c} ; Default - Terminal - Ctrl-c sigint
|
; #c::Send ^{c} ; Default - Terminal - Ctrl-c sigint
|
||||||
; !x::Send ^{x} ; CB/IBM
|
; !x::Send ^{x} ; CB/IBM
|
||||||
; !c::Send ^{c} ; CB/IBM - Sigint
|
; !c::Send ^{c} ; CB/IBM
|
||||||
; #c::send ^{Pause} ; cancel_build
|
; #c::send ^{Pause} ; cancel_build
|
||||||
; #Space::Send ^{Space} ; Default - Basic code completion
|
; #Space::Send ^{Space} ; Default - Basic code completion
|
||||||
; !Space::Send ^{Space} ; CB/IBM - Basic code completion
|
; !Space::Send ^{Space} ; CB/IBM - Basic code completion
|
||||||
@@ -617,6 +617,7 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
|||||||
Insert::Return ; cancel toggle_overwrite
|
Insert::Return ; cancel toggle_overwrite
|
||||||
^!O::send {Insert} ; toggle_overwrite
|
^!O::send {Insert} ; toggle_overwrite
|
||||||
; !c::Return ; Default - cancel toggle_case_sensitive
|
; !c::Return ; Default - cancel toggle_case_sensitive
|
||||||
|
; $!c::send ^{c} ; CB/IBM - Sigint
|
||||||
^!c::send !{c} ; toggle_case_sensitive
|
^!c::send !{c} ; toggle_case_sensitive
|
||||||
; ^h::Return ; cancel replace
|
; ^h::Return ; cancel replace
|
||||||
^!f::send ^{h} ; replace
|
^!f::send ^{h} ; replace
|
||||||
@@ -624,7 +625,6 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
|||||||
^!e::send ^+{h} ; replace_next
|
^!e::send ^+{h} ; replace_next
|
||||||
F3::Return ; cancel find_next
|
F3::Return ; cancel find_next
|
||||||
^g::send {F3} ; find_next
|
^g::send {F3} ; find_next
|
||||||
#g::send ^{g} ; goto line - disable game bar - Start menu -> Game bar shortcuts -> toggle Off
|
|
||||||
*F3::Return ; cancel find_prev, find_under, find_all_under
|
*F3::Return ; cancel find_prev, find_under, find_all_under
|
||||||
^+g::send +{F3} ; find_prev
|
^+g::send +{F3} ; find_prev
|
||||||
#!g::send ^{F3} ; find_under
|
#!g::send ^{F3} ; find_under
|
||||||
@@ -754,45 +754,45 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
|||||||
; Clear Terminal and Scroll Buffer
|
; Clear Terminal and Scroll Buffer
|
||||||
^k::Send clear && printf '\e[3J'{Enter}
|
^k::Send clear && printf '\e[3J'{Enter}
|
||||||
; Remap Physical Ctrl back to Ctrl
|
; Remap Physical Ctrl back to Ctrl
|
||||||
; #0::Send {LCtrl down}0{Ctrl up} ; Default
|
#0::Send {LCtrl down}0{Ctrl up} ; Default
|
||||||
; #1::Send {LCtrl down}1{Ctrl up} ; Default
|
#1::Send {LCtrl down}1{Ctrl up} ; Default
|
||||||
; #2::Send {LCtrl down}2{Ctrl up} ; Default
|
#2::Send {LCtrl down}2{Ctrl up} ; Default
|
||||||
; #3::Send {LCtrl down}3{Ctrl up} ; Default
|
#3::Send {LCtrl down}3{Ctrl up} ; Default
|
||||||
; #4::Send {LCtrl down}4{Ctrl up} ; Default
|
#4::Send {LCtrl down}4{Ctrl up} ; Default
|
||||||
; #5::Send {LCtrl down}5{Ctrl up} ; Default
|
#5::Send {LCtrl down}5{Ctrl up} ; Default
|
||||||
; #6::Send {LCtrl down}6{Ctrl up} ; Default
|
#6::Send {LCtrl down}6{Ctrl up} ; Default
|
||||||
; #7::Send {LCtrl down}7{Ctrl up} ; Default
|
#7::Send {LCtrl down}7{Ctrl up} ; Default
|
||||||
; #8::Send {LCtrl down}8{Ctrl up} ; Default
|
#8::Send {LCtrl down}8{Ctrl up} ; Default
|
||||||
; #9::Send {LCtrl down}9{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
|
#=::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
|
#a::Send {LCtrl down}a{Ctrl up} ; Default
|
||||||
; #b::Send {LCtrl down}b{Ctrl up} ; Default
|
#b::Send {LCtrl down}b{Ctrl up} ; Default
|
||||||
; #c::Send {LCtrl down}c{Ctrl up} ; Default
|
#c::Send {LCtrl down}c{Ctrl up} ; Default
|
||||||
; #d::Send {LCtrl down}d{Ctrl up} ; Default
|
#d::Send {LCtrl down}d{Ctrl up} ; Default
|
||||||
; #e::Send {LCtrl down}e{Ctrl up} ; Default
|
#e::Send {LCtrl down}e{Ctrl up} ; Default
|
||||||
; #f::Send {LCtrl down}f{Ctrl up} ; Default
|
#f::Send {LCtrl down}f{Ctrl up} ; Default
|
||||||
; #g::Send {LCtrl down}g{Ctrl up} ; Default
|
#g::Send {LCtrl down}g{Ctrl up} ; Default
|
||||||
; #h::Send {LCtrl down}h{Ctrl up} ; Default
|
#h::Send {LCtrl down}h{Ctrl up} ; Default
|
||||||
; #i::Send {LCtrl down}i{Ctrl up} ; Default
|
#i::Send {LCtrl down}i{Ctrl up} ; Default
|
||||||
; #j::Send {LCtrl down}j{Ctrl up} ; Default
|
#j::Send {LCtrl down}j{Ctrl up} ; Default
|
||||||
; #k::Send {LCtrl down}k{Ctrl up} ; Default
|
#k::Send {LCtrl down}k{Ctrl up} ; Default
|
||||||
; #l::Send {LCtrl down}l{Ctrl up} ; Default
|
#l::Send {LCtrl down}l{Ctrl up} ; Default
|
||||||
; #m::Send {LCtrl down}m{Ctrl up} ; Default
|
#m::Send {LCtrl down}m{Ctrl up} ; Default
|
||||||
; #n::Send {LCtrl down}n{Ctrl up} ; Default
|
#n::Send {LCtrl down}n{Ctrl up} ; Default
|
||||||
; #o::Send {LCtrl down}o{Ctrl up} ; Default
|
#o::Send {LCtrl down}o{Ctrl up} ; Default
|
||||||
; #p::Send {LCtrl down}p{Ctrl up} ; Default
|
#p::Send {LCtrl down}p{Ctrl up} ; Default
|
||||||
; #q::Send {LCtrl down}q{Ctrl up} ; Default
|
#q::Send {LCtrl down}q{Ctrl up} ; Default
|
||||||
; #r::Send {LCtrl down}r{Ctrl up} ; Default
|
#r::Send {LCtrl down}r{Ctrl up} ; Default
|
||||||
; #s::Send {LCtrl down}s{Ctrl up} ; Default
|
#s::Send {LCtrl down}s{Ctrl up} ; Default
|
||||||
; #t::Send {LCtrl down}t{Ctrl up} ; Default
|
#t::Send {LCtrl down}t{Ctrl up} ; Default
|
||||||
; #u::Send {LCtrl down}u{Ctrl up} ; Default
|
#u::Send {LCtrl down}u{Ctrl up} ; Default
|
||||||
; #v::Send {LCtrl down}v{Ctrl up} ; Default
|
#v::Send {LCtrl down}v{Ctrl up} ; Default
|
||||||
; #w::Send {LCtrl down}w{Ctrl up} ; Default
|
#w::Send {LCtrl down}w{Ctrl up} ; Default
|
||||||
; #x::Send {LCtrl down}x{Ctrl up} ; Default
|
#x::Send {LCtrl down}x{Ctrl up} ; Default
|
||||||
; #y::Send {LCtrl down}y{Ctrl up} ; Default
|
#y::Send {LCtrl down}y{Ctrl up} ; Default
|
||||||
; #z::Send {LCtrl down}z{Ctrl up} ; Default
|
#z::Send {LCtrl down}z{Ctrl up} ; Default
|
||||||
; !0::Send {LCtrl down}0{Ctrl up} ; CB/IBM
|
; !0::Send {LCtrl down}0{Ctrl up} ; CB/IBM
|
||||||
; !1::Send {LCtrl down}1{Ctrl up} ; CB/IBM
|
; !1::Send {LCtrl down}1{Ctrl up} ; CB/IBM
|
||||||
; !2::Send {LCtrl down}2{Ctrl up} ; CB/IBM
|
; !2::Send {LCtrl down}2{Ctrl up} ; CB/IBM
|
||||||
@@ -844,4 +844,4 @@ Send {RWin up}
|
|||||||
Send {LWin up}
|
Send {LWin up}
|
||||||
Send {RShift up}
|
Send {RShift up}
|
||||||
Send {LShift up}
|
Send {LShift up}
|
||||||
return
|
return
|
@@ -329,6 +329,25 @@ if [[ $distro == 'kdeneon' ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $distro == 'fedora' ]]; then
|
if [[ $distro == 'fedora' ]]; then
|
||||||
|
echo "Checking SELinux status..."
|
||||||
|
if [[ $(perl -ne 'print if /^SELINUX=enforcing/' /etc/selinux/config | wc -l) != 0 ]]; then
|
||||||
|
while true; do
|
||||||
|
read -rep $'\nWould you like to update your SELinux state from enforcing to permissive? (y/n)\n' yn
|
||||||
|
case $yn in
|
||||||
|
[Yy]* ) setSE='yes'; break;;
|
||||||
|
[Nn]* ) exp='no'; expsh=" " break;;
|
||||||
|
# * ) echo "Please answer yes or no.";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ $yn == "yes" ]]; then
|
||||||
|
sed -i "s/SELINUX=enforcing/SELINUX=permissive/g" /etc/selinux/config
|
||||||
|
echo "/etc/selinux/config has been updated. Please reboot your computer before continuing."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "SELinux state should be ok for Kinto to install"
|
||||||
|
fi
|
||||||
if [[ $(gsettings get org.gnome.desktop.wm.keybindings show-desktop | grep "\[\]" | wc -l) == 1 ]];then
|
if [[ $(gsettings get org.gnome.desktop.wm.keybindings show-desktop | grep "\[\]" | wc -l) == 1 ]];then
|
||||||
gsettings set org.gnome.desktop.wm.keybindings show-desktop "['<Super>d']"
|
gsettings set org.gnome.desktop.wm.keybindings show-desktop "['<Super>d']"
|
||||||
else
|
else
|
||||||
@@ -501,11 +520,6 @@ fi
|
|||||||
|
|
||||||
if [[ $distro == "fedora" ]]; then
|
if [[ $distro == "fedora" ]]; then
|
||||||
perl -pi -e "\s{4}(# )(K.*)(# SL - .*fedora.*)/ \$2\$3/g" ./linux/kinto.py.new >/dev/null 2>&1
|
perl -pi -e "\s{4}(# )(K.*)(# SL - .*fedora.*)/ \$2\$3/g" ./linux/kinto.py.new >/dev/null 2>&1
|
||||||
sed -i "s#{sudo}##g" ./linux/xkeysnail.service.new
|
|
||||||
selinuxuser=system_u
|
|
||||||
selinuxtype=systemd_unit_file_t
|
|
||||||
else
|
|
||||||
sed -i "s#{sudo}#`\\which sudo` #g" ./linux/xkeysnail.service.new
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $distro == "elementaryos" ]]; then
|
if [[ $distro == "elementaryos" ]]; then
|
||||||
@@ -576,10 +590,6 @@ if ! [[ $1 == "5" || $1 == "uninstall" || $1 == "Uninstall" ]]; then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
sed -i "s#{xkeysnail}#`which xkeysnail`#g" ./linux/limitedadmins.new
|
sed -i "s#{xkeysnail}#`which xkeysnail`#g" ./linux/limitedadmins.new
|
||||||
if [[ $distro == "fedora" ]]; then
|
|
||||||
echo "Changing SELinux context"
|
|
||||||
sudo chcon -v --user=$selinuxuser --type=$selinuxtype "$xkeypath"xkeysnail.service
|
|
||||||
fi
|
|
||||||
sudo chown root:root ./linux/limitedadmins.new
|
sudo chown root:root ./linux/limitedadmins.new
|
||||||
# Add a check here for xkeysnail path resolving
|
# Add a check here for xkeysnail path resolving
|
||||||
sudo mv ./linux/limitedadmins.new /etc/sudoers.d/limitedadmins
|
sudo mv ./linux/limitedadmins.new /etc/sudoers.d/limitedadmins
|
||||||
@@ -588,19 +598,10 @@ if ! [[ $1 == "5" || $1 == "uninstall" || $1 == "Uninstall" ]]; then
|
|||||||
sed -i "s#{xkeysnail}#`which xkeysnail`#g" ./linux/xkeysnail.service.new
|
sed -i "s#{xkeysnail}#`which xkeysnail`#g" ./linux/xkeysnail.service.new
|
||||||
sudo mv ./linux/xkeysnail.service.new "$xkeypath"xkeysnail.service && echo "Service file added to "$xkeypath"xkeysnail.service"
|
sudo mv ./linux/xkeysnail.service.new "$xkeypath"xkeysnail.service && echo "Service file added to "$xkeypath"xkeysnail.service"
|
||||||
|
|
||||||
if [[ $distro == "fedora" ]]; then
|
sudo chown -R root:root "$xkeypath"xkeysnail.service && echo "Ownership set for root..." || echo "Failed to set ownership..."
|
||||||
sudo cp "$xkeypath"xkeysnail.service /etc/systemd/system/xkeysnail.service && echo "Copied service file to system..." || echo "Failed to create copy..."
|
sudo chmod 644 "$xkeypath"xkeysnail.service && echo "Permissions set to 644..." || echo "Failed to set permissions..."
|
||||||
sudo cp "$xkeypath"xkeysnail.service /etc/systemd/system/graphical.target.wants/xkeysnail.service && echo "Copied service file to system for graphical target..." || echo "Failed to create copy for graphical target..."
|
sudo ln -s "$xkeypath"xkeysnail.service /etc/systemd/system/xkeysnail.service && echo "Created soft symlink..." || echo "Failed to create soft symlink..."
|
||||||
sudo chown -R root:root /etc/systemd/system/xkeysnail.service && echo "Ownership set for root..." || echo "Failed to set ownership..."
|
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 chown -R root:root /etc/systemd/system/graphical.target.wants/xkeysnail.service && echo "Ownership set for root..." || echo "Failed to set ownership..."
|
|
||||||
sudo chmod 644 /etc/systemd/system/xkeysnail.service && echo "Permissions set to 644..." || echo "Failed to set permissions..."
|
|
||||||
sudo chmod 644 /etc/systemd/system/graphical.target.wants/xkeysnail.service && echo "Permissions set to 644..." || echo "Failed to set permissions..."
|
|
||||||
else
|
|
||||||
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..."
|
|
||||||
fi
|
|
||||||
sudo systemctl daemon-reload
|
sudo systemctl daemon-reload
|
||||||
sudo systemctl disable xkeysnail
|
sudo systemctl disable xkeysnail
|
||||||
sudo systemctl stop xkeysnail
|
sudo systemctl stop xkeysnail
|
||||||
|
Reference in New Issue
Block a user