mirror of
https://github.com/rbreaves/kinto.git
synced 2025-08-05 18:38:26 +02:00
Compare commits
37 Commits
1.2-9
...
chrome-fix
Author | SHA1 | Date | |
---|---|---|---|
![]() |
56cae8a009 | ||
![]() |
e7dd3684c2 | ||
![]() |
982cdcb92a | ||
![]() |
829289ba78 | ||
![]() |
b8793cff49 | ||
![]() |
8b522461a5 | ||
![]() |
04bc3f60e4 | ||
![]() |
8ffd3159c8 | ||
![]() |
b19b0bea4b | ||
![]() |
07bee26ddb | ||
![]() |
6dc97a5628 | ||
![]() |
59e47dbbd6 | ||
![]() |
e6d0512ff4 | ||
![]() |
6587a149ce | ||
![]() |
f80a1d616d | ||
![]() |
c391b6abf8 | ||
![]() |
f6d57eae4c | ||
![]() |
06531dd6cc | ||
![]() |
4c2a4993ef | ||
![]() |
572739360e | ||
![]() |
d87802918d | ||
![]() |
e5b2ef8155 | ||
![]() |
7149b4ab24 | ||
![]() |
db61f2d937 | ||
![]() |
19aefd68e0 | ||
![]() |
9fb72c95b1 | ||
![]() |
ec8b0fdc22 | ||
![]() |
1e98cfc29d | ||
![]() |
e92bc37308 | ||
![]() |
14021fbf67 | ||
![]() |
1562096889 | ||
![]() |
c84d13118a | ||
![]() |
bec547bbda | ||
![]() |
724006ef3a | ||
![]() |
ef60bf8a59 | ||
![]() |
44080c25da | ||
![]() |
6fa6d05123 |
41
README.md
41
README.md
@@ -13,6 +13,10 @@ 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.
|
||||
|
||||
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.
|
||||
|
||||
### [Table of Contents ](#Table-of-Contents)
|
||||
|
||||
## Donations
|
||||
@@ -140,6 +144,7 @@ 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| 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"|
|
||||
@@ -252,7 +257,7 @@ Additionally, if you are using a cross-platform app and if it happens to have a
|
||||
## What does Kinto require?
|
||||
|
||||
- Python
|
||||
- systemd
|
||||
- systemd or sysvinit
|
||||
- x11
|
||||
- xkeysnail
|
||||
|
||||
@@ -310,10 +315,16 @@ In the above example I am also showing that you can define a single shortcut to
|
||||
|
||||
You can also make changes to the file in your /tmp/kinto/xkeysnail/kinto.py location and see them take affect in real time, but for your changes to be permanent you will need to make your changes in the ~/.config/kinto/kinto.py location & restart the xkeysnail service.
|
||||
|
||||
systemd
|
||||
```
|
||||
sudo systemctl restart xkeysnail
|
||||
```
|
||||
|
||||
sysvinit
|
||||
```
|
||||
sudo -E /etc/init.d/kinto restart
|
||||
```
|
||||
|
||||
More information can be seen on the readme page of [xkeysnail](https://github.com/mooz/xkeysnail).
|
||||
|
||||
## Windows (Autohotkey)
|
||||
@@ -375,25 +386,53 @@ git pull origin master
|
||||
This info is now superceded by the fact that linux has a full fledge GUI and system tray app that is very easy to use, but I will keep the command line options for those that want to know what they are.
|
||||
|
||||
Status
|
||||
|
||||
systemd
|
||||
```
|
||||
sudo systemctl status xkeysnail
|
||||
```
|
||||
|
||||
sysvinit
|
||||
```
|
||||
tail -f /tmp/kinto.log
|
||||
```
|
||||
|
||||
Stop (your keymap will return to normal)
|
||||
|
||||
systemd
|
||||
```
|
||||
sudo systemctl stop xkeysnail
|
||||
```
|
||||
|
||||
sysvinit
|
||||
```
|
||||
sudo -E /etc/init.d/kinto stop
|
||||
```
|
||||
|
||||
Start
|
||||
|
||||
systemd
|
||||
```
|
||||
sudo systemctl start xkeysnail
|
||||
```
|
||||
|
||||
sysvinit
|
||||
```
|
||||
sudo -E /etc/init.d/kinto start
|
||||
```
|
||||
|
||||
Restart
|
||||
|
||||
systemd
|
||||
```
|
||||
sudo systemctl restart xkeysnail
|
||||
```
|
||||
|
||||
sysvinit
|
||||
```
|
||||
sudo -E /etc/init.d/kinto restart
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Installed successfully, but modifier keys are not properly remapped?
|
||||
|
@@ -628,9 +628,9 @@ class MyWindow(Gtk.Window):
|
||||
time.sleep(1)
|
||||
global child_pid
|
||||
if sysv:
|
||||
self.kinto_status = Popen("while :; do clear; pgrep 'xkeysnail'; sleep 2; done", stdout=PIPE, shell=True)
|
||||
self.kinto_status = Popen("export TERM=xterm-color;while :; do clear; pgrep 'xkeysnail'; sleep 2; done", stdout=PIPE, shell=True)
|
||||
else:
|
||||
self.kinto_status = Popen("while :; do clear; systemctl is-active xkeysnail; sleep 2; done", stdout=PIPE, shell=True)
|
||||
self.kinto_status = Popen("export TERM=xterm-color;while :; do clear; systemctl is-active xkeysnail; sleep 2; done", stdout=PIPE, shell=True)
|
||||
child_pid = self.kinto_status.pid
|
||||
self.menuitem_systray.disconnect(self.menuitem_systray.signal_id)
|
||||
self.menuitem_systray.set_active(False)
|
||||
|
@@ -21,28 +21,34 @@ terminals = [
|
||||
"lxterminal",
|
||||
"mate-terminal",
|
||||
"qterminal",
|
||||
"st",
|
||||
"sakura",
|
||||
"station",
|
||||
"terminator",
|
||||
"termite",
|
||||
"tilda",
|
||||
"tilix",
|
||||
"urxvt",
|
||||
"xfce4-terminal",
|
||||
"xterm",
|
||||
]
|
||||
terminals = [term.casefold() for term in terminals]
|
||||
termStr = "|".join(str(x) for x in terminals)
|
||||
termStr = "|".join(str('^'+x+'$') for x in terminals)
|
||||
|
||||
mscodes = ["code","vscodium"]
|
||||
codeStr = "|".join(str(x) for x in mscodes)
|
||||
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",
|
||||
"xfreerdp",
|
||||
"VirtualBox Machine",
|
||||
"VirtualBox",
|
||||
"Gnome-boxes",
|
||||
"org.remmina.Remmina",
|
||||
"qemu-system-.*",
|
||||
"Virt-manager",
|
||||
"VirtualBox",
|
||||
"VirtualBox Machine",
|
||||
"xfreerdp",
|
||||
]
|
||||
remotes = [client.casefold() for client in remotes]
|
||||
|
||||
@@ -62,7 +68,7 @@ browsers = [
|
||||
"microsoft-edge-dev",
|
||||
]
|
||||
browsers = [browser.casefold() for browser in browsers]
|
||||
browserStr = "|".join(str(x) for x in browsers)
|
||||
browserStr = "|".join(str('^'+x+'$') for x in browsers)
|
||||
|
||||
chromes = [
|
||||
"Chromium",
|
||||
@@ -72,11 +78,11 @@ chromes = [
|
||||
"microsoft-edge-dev",
|
||||
]
|
||||
chromes = [chrome.casefold() for chrome in chromes]
|
||||
chromeStr = "|".join(str(x) for x in chromes)
|
||||
chromeStr = "|".join(str('^'+x+'$') for x in chromes)
|
||||
|
||||
# edges = ["microsoft-edge-dev","microsoft-edge"]
|
||||
# edges = [edge.casefold() for edge in edges]
|
||||
# edgeStr = "|".join(str(x) for x in edges)
|
||||
# edgeStr = "|".join(str('^'+x+'$') for x in edges)
|
||||
|
||||
define_multipurpose_modmap(
|
||||
# {Key.ENTER: [Key.ENTER, Key.RIGHT_CTRL] # Enter2Cmd
|
||||
@@ -135,7 +141,7 @@ define_conditional_modmap(re.compile(termStr, re.IGNORECASE), {
|
||||
# Key.RIGHT_ALT: Key.RIGHT_CTRL, # IBM - Multi-language (Remove)
|
||||
# Key.RIGHT_CTRL: Key.RIGHT_ALT, # IBM
|
||||
# # Right Meta does not exist on chromebooks
|
||||
|
||||
|
||||
# Key.RIGHT_ALT: Key.RIGHT_CTRL, # IBM - Multi-language (Remove)
|
||||
# Key.RIGHT_CTRL: Key.RIGHT_ALT, # IBM - Multi-language (Remove)
|
||||
|
||||
@@ -256,14 +262,14 @@ define_keymap(re.compile("^jetbrains-(?!.*toolbox).*$", re.IGNORECASE),{
|
||||
### START OF FILE MANAGER GROUP OF KEYMAPS ###
|
||||
##############################################
|
||||
|
||||
# Keybindings overrides for Caja
|
||||
# Keybindings overrides for Caja
|
||||
# (overrides some bindings from general file manager code block below)
|
||||
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-Enter"), # Open in new tab
|
||||
K("RC-Super-o"): K("RC-Shift-W"), # Open in new window
|
||||
},"Overrides for Caja - Finder")
|
||||
|
||||
# Keybindings overrides for DDE (Deepin) File Manager
|
||||
# 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),{
|
||||
K("RC-i"): K("RC-i"), # File properties dialog (Get Info)
|
||||
@@ -271,29 +277,29 @@ define_keymap(re.compile("dde-file-manager", re.IGNORECASE),{
|
||||
K("RC-Up"): K("RC-Up"), # Go Up dir
|
||||
},"Overrides for DDE File Manager - Finder")
|
||||
|
||||
# Keybindings overrides for Dolphin
|
||||
# Keybindings overrides for Dolphin
|
||||
# (overrides some bindings from general file manager code block below)
|
||||
define_keymap(re.compile("dolphin", re.IGNORECASE),{
|
||||
##########################################################################################
|
||||
### "Open in new window" requires manually setting custom shortcut of Ctrl+Shift+o
|
||||
### "Open in new window" requires manually setting custom shortcut of Ctrl+Shift+o
|
||||
### in Dolphin's keyboard shortcuts. There is no default shortcut set for this function.
|
||||
##########################################################################################
|
||||
### "Open in new tab" requires manually setting custom shortcut of Ctrl+Shift+o in
|
||||
### Dolphin's keyboard shortcuts. There is no default shortcut set for this function.
|
||||
### "Open in new tab" requires manually setting custom shortcut of Ctrl+Shift+o in
|
||||
### Dolphin's keyboard shortcuts. There is no default shortcut set for this function.
|
||||
##########################################################################################
|
||||
K("RC-Super-o"): K("RC-Shift-o"), # Open in new window (or new tab, user's choice, see above)
|
||||
K("RC-Shift-N"): K("F10"), # Create new folder
|
||||
K("RC-comma"): K("RC-Shift-comma"), # Open preferences dialog
|
||||
},"Overrides for Dolphin - Finder")
|
||||
|
||||
# Keybindings overrides for elementary OS Files
|
||||
# Keybindings overrides for elementary OS Files
|
||||
# (overrides some bindings from general file manager code block below)
|
||||
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")
|
||||
|
||||
# Keybindings overrides for Nautilus
|
||||
# Keybindings overrides for Nautilus
|
||||
# (overrides some bindings from general file manager code block below)
|
||||
define_keymap(re.compile("org.gnome.nautilus|nautilus", re.IGNORECASE),{
|
||||
K("RC-Super-o"): K("Shift-Enter"), # Open in new window
|
||||
@@ -313,11 +319,11 @@ define_keymap(re.compile("spacefm", re.IGNORECASE),{
|
||||
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-comma"): [K("M-V"),K("p")], # Overrides "Open preferences dialog" shortcut below
|
||||
# This shortcut ^^^^^^^^^^^^^^^ is not fully working in SpaceFM. Opens "View" menu but not Preferences.
|
||||
# SpaceFM seems to be doing some nasty binding that blocks things like Alt+Tab while the menu is open.
|
||||
# This shortcut ^^^^^^^^^^^^^^^ is not fully working in SpaceFM. Opens "View" menu but not Preferences.
|
||||
# SpaceFM seems to be doing some nasty binding that blocks things like Alt+Tab while the menu is open.
|
||||
},"Overrides for SpaceFM - Finder")
|
||||
|
||||
# Keybindings overrides for Thunar
|
||||
# Keybindings overrides for Thunar
|
||||
# (overrides some bindings from general file manager code block below)
|
||||
define_keymap(re.compile("thunar", re.IGNORECASE),{
|
||||
K("RC-Super-o"): K("RC-Shift-P"), # Open in new tab
|
||||
@@ -338,10 +344,10 @@ filemanagers = [
|
||||
"thunar",
|
||||
]
|
||||
filemanagers = [filemanager.casefold() for filemanager in filemanagers]
|
||||
filemanagerStr = "|".join(str(x) for x in filemanagers)
|
||||
filemanagerStr = "|".join(str('^'+x+'$') for x in filemanagers)
|
||||
|
||||
# Currently supported Linux file managers (file browsers):
|
||||
#
|
||||
# Currently supported Linux file managers (file browsers):
|
||||
#
|
||||
# Caja File Browser (MATE file manager, fork of Nautilus)
|
||||
# DDE File Manager (Deepin Linux file manager)
|
||||
# Dolphin (KDE file manager)
|
||||
@@ -352,8 +358,8 @@ filemanagerStr = "|".join(str(x) for x in filemanagers)
|
||||
# PCManFM-Qt (LXQt file manager)
|
||||
# SpaceFM (Fork of PCManFM file manager)
|
||||
# Thunar File Manager (Xfce file manager)
|
||||
#
|
||||
# Keybindings for general Linux file managers group:
|
||||
#
|
||||
# Keybindings for general Linux file managers group:
|
||||
define_keymap(re.compile(filemanagerStr, re.IGNORECASE),{
|
||||
###########################################################################################################
|
||||
### Show Properties (Get Info) | Open Settings/Preferences | Show/Hide hidden files ###
|
||||
@@ -440,7 +446,7 @@ define_keymap(lambda wm_class: wm_class.casefold() not in remotes,{
|
||||
K("RC-Shift-Tab"): K("M-Shift-Tab"), # Default - 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-Grave"): K("Super-Tab"), # xfce4 Switch within app group
|
||||
# K("RC-Grave"): K("Super-Tab"), # xfce4 Switch within app group
|
||||
# K("RC-Shift-Grave"): K("Super-Shift-Tab"), # xfce4 Switch within app group
|
||||
# K("Super-Right"):K("Super-Page_Up"), # SL - Change workspace (ubuntu/fedora)
|
||||
# K("Super-Left"):K("Super-Page_Down"), # SL - Change workspace (ubuntu/fedora)
|
||||
@@ -466,7 +472,7 @@ define_keymap(lambda wm_class: wm_class.casefold() not in remotes,{
|
||||
|
||||
# Fn to Alt style remaps
|
||||
K("RM-Enter"): K("insert"), # Insert
|
||||
|
||||
|
||||
# emacs style
|
||||
K("Super-a"): K("Home"), # Beginning of Line
|
||||
K("Super-e"): K("End"), # End of Line
|
||||
@@ -535,7 +541,7 @@ define_keymap(re.compile(codeStr, re.IGNORECASE),{
|
||||
K("M-Right"): [K("M-F19"),K("C-Right")], # Right of Word
|
||||
K("M-Shift-Left"): [K("M-F19"),K("C-Shift-Left")], # Select Left of Word
|
||||
K("M-Shift-Right"): [K("M-F19"),K("C-Shift-Right")], # Select Right of Word
|
||||
|
||||
|
||||
# K("C-PAGE_DOWN"): pass_through_key, # cancel next_view
|
||||
# K("C-PAGE_UP"): pass_through_key, # cancel prev_view
|
||||
K("C-M-Left"): K("C-PAGE_UP"), # next_view
|
||||
@@ -652,13 +658,14 @@ define_keymap(re.compile("Io.elementary.terminal|kitty", re.IGNORECASE),{
|
||||
}, "Elementary Terminal tab switching")
|
||||
|
||||
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
|
||||
# K("RC-Shift-Grave"): K("Super-Shift-Tab"), # xfce4 Switch within app group
|
||||
# K("LC-Right"):K("C-M-Right"), # Default SL - Change workspace (budgie)
|
||||
# K("LC-Left"):K("C-M-Left"), # Default SL - Change workspace (budgie)
|
||||
# K("LC-Left"):K("C-M-End"), # SL - Change workspace xfce4
|
||||
# K("LC-Left"):K("Super-Left"), # SL - Change workspace eos
|
||||
# K("LC-Right"):K("C-M-Home"), # SL - Change workspace xfce4
|
||||
# K("LC-Left"):K("C-M-End"), # SL - Change workspace xfce4
|
||||
# K("LC-Left"):K("Super-Left"), # SL - Change workspace eos
|
||||
# K("LC-Right"):K("C-M-Home"), # SL - Change workspace xfce4
|
||||
# K("LC-Right"):K("Super-Right"), # SL - Change workspace eos
|
||||
# K("LC-Right"):K("Super-Page_Up"), # SL - Change workspace (ubuntu/fedora)
|
||||
# K("LC-Left"):K("Super-Page_Down"), # SL - Change workspace (ubuntu/fedora)
|
||||
@@ -672,7 +679,7 @@ define_keymap(re.compile(termStr, re.IGNORECASE),{
|
||||
# K("RC-Tab"): K("M-Tab"), # Default - Cmd Tab - App Switching Default
|
||||
# K("RC-Shift-Tab"): K("M-Shift-Tab"), # Default - Cmd Tab - App Switching Default
|
||||
# Converts Cmd to use Ctrl-Shift
|
||||
K("RC-MINUS"): K("C-Shift-MINUS"),
|
||||
K("RC-MINUS"): K("C-MINUS"),
|
||||
K("RC-EQUAL"): K("C-Shift-EQUAL"),
|
||||
K("RC-BACKSPACE"): K("C-Shift-BACKSPACE"),
|
||||
K("RC-W"): K("C-Shift-W"),
|
||||
|
@@ -35,9 +35,9 @@ class Indicator():
|
||||
except:
|
||||
sysv = 2
|
||||
if sysv:
|
||||
kinto_status = Popen("while :; do clear; pgrep 'xkeysnail' && echo 'active'; sleep 2; done", stdout=PIPE, shell=True)
|
||||
kinto_status = Popen("export TERM=xterm-color;while :; do clear; pgrep 'xkeysnail' && echo 'active'; sleep 2; done", stdout=PIPE, shell=True)
|
||||
else:
|
||||
kinto_status = Popen("while :; do clear; systemctl is-active xkeysnail; sleep 2; done", stdout=PIPE, shell=True)
|
||||
kinto_status = Popen("export TERM=xterm-color;while :; do clear; systemctl is-active xkeysnail; sleep 2; done", stdout=PIPE, shell=True)
|
||||
child_pid = kinto_status.pid
|
||||
|
||||
homedir = os.path.expanduser("~")
|
||||
@@ -50,46 +50,46 @@ class Indicator():
|
||||
autostart_bool = False
|
||||
menu = Gtk.Menu()
|
||||
menukb = Gtk.Menu()
|
||||
checkbox_autostart = Gtk.CheckMenuItem('Autostart')
|
||||
restart = Gtk.MenuItem('Restart')
|
||||
stop = Gtk.MenuItem('Stop')
|
||||
keyboards = Gtk.MenuItem('Keyboard Types')
|
||||
checkbox_autostart = Gtk.CheckMenuItem(label='Autostart')
|
||||
restart = Gtk.MenuItem(label='Restart')
|
||||
stop = Gtk.MenuItem(label='Stop')
|
||||
keyboards = Gtk.MenuItem(label='Keyboard Types')
|
||||
keyboards.set_submenu(menukb)
|
||||
winkb = Gtk.RadioMenuItem(label='Windows')
|
||||
mackb = Gtk.RadioMenuItem(label='Apple',group=winkb)
|
||||
chromekb = Gtk.RadioMenuItem(label='Chromebook',group=winkb)
|
||||
ibmkb = Gtk.RadioMenuItem(label='IBM (No Super/Win key)',group=winkb)
|
||||
winmackb = Gtk.RadioMenuItem(label='Windows & Apple*',group=winkb)
|
||||
edit = Gtk.MenuItem('Customize')
|
||||
edit = Gtk.MenuItem(label='Customize')
|
||||
edit_submenu = Gtk.Menu()
|
||||
edit.set_submenu(edit_submenu)
|
||||
tweaks = Gtk.MenuItem('Tweaks')
|
||||
rightmod = Gtk.CheckButton('AltGr on Right Cmd')
|
||||
vsc2st3 = Gtk.CheckButton('ST3 hotkeys for VS Code')
|
||||
caps2esc = Gtk.CheckButton('Capslock is Escape when tapped, Cmd when held')
|
||||
caps2cmd = Gtk.CheckButton('Capslock is Cmd')
|
||||
button_config = Gtk.MenuItem('Kinto Config (shortcuts)')
|
||||
service = Gtk.MenuItem('Kinto Service')
|
||||
tweaks = Gtk.MenuItem(label='Tweaks')
|
||||
rightmod = Gtk.CheckButton(label='AltGr on Right Cmd')
|
||||
vsc2st3 = Gtk.CheckButton(label='ST3 hotkeys for VS Code')
|
||||
caps2esc = Gtk.CheckButton(label='Capslock is Escape when tapped, Cmd when held')
|
||||
caps2cmd = Gtk.CheckButton(label='Capslock is Cmd')
|
||||
button_config = Gtk.MenuItem(label='Kinto Config (shortcuts)')
|
||||
service = Gtk.MenuItem(label='Kinto Service')
|
||||
# Keyboard type set below
|
||||
button_syskb = Gtk.MenuItem('System Shortcuts')
|
||||
button_region = Gtk.MenuItem('Change Language')
|
||||
systray = Gtk.CheckMenuItem('Tray Enabled')
|
||||
helpm = Gtk.MenuItem('Help')
|
||||
button_syskb = Gtk.MenuItem(label='System Shortcuts')
|
||||
button_region = Gtk.MenuItem(label='Change Language')
|
||||
systray = Gtk.CheckMenuItem(label='Tray Enabled')
|
||||
helpm = Gtk.MenuItem(label='Help')
|
||||
help_submenu = Gtk.Menu()
|
||||
helpm.set_submenu(help_submenu)
|
||||
debug = Gtk.MenuItem('Debug')
|
||||
opengui = Gtk.MenuItem('Open Kinto')
|
||||
support = Gtk.MenuItem("Support")
|
||||
about = Gtk.MenuItem('About')
|
||||
debug = Gtk.MenuItem(label='Debug')
|
||||
opengui = Gtk.MenuItem(label='Open Kinto')
|
||||
support = Gtk.MenuItem(label='Support')
|
||||
about = Gtk.MenuItem(label='About')
|
||||
global restartsvc
|
||||
restartsvc = False
|
||||
unixts = int(time.time())
|
||||
last_status = ""
|
||||
last_status = ''
|
||||
|
||||
def __init__(self):
|
||||
global sysv
|
||||
try:
|
||||
sysv = check_output("pidof systemd >/dev/null 2>&1 && echo '0' || echo '1'").strip().decode('UTF-8')
|
||||
sysv = int(Popen("pidof systemd >/dev/null 2>&1 && echo '0' || echo '1'", stdout=PIPE, shell=True).communicate()[0].strip().decode('UTF-8'))
|
||||
except:
|
||||
sysv = 1
|
||||
if sysv:
|
||||
@@ -199,7 +199,7 @@ class Indicator():
|
||||
# self.button_region.connect('activate',self.setRegion)
|
||||
# self.menu.append(self.button_region)
|
||||
|
||||
item_quit = Gtk.MenuItem('Close')
|
||||
item_quit = Gtk.MenuItem(label='Close')
|
||||
item_quit.connect('activate', quit)
|
||||
self.menu.append(item_quit)
|
||||
self.menu.show_all()
|
||||
@@ -417,10 +417,10 @@ class Indicator():
|
||||
self.lbl = Gtk.Label()
|
||||
global restartsvc
|
||||
restartsvc = False
|
||||
self.rightmod = Gtk.CheckButton('AltGr on Right Cmd')
|
||||
self.vsc2st3 = Gtk.CheckButton('ST3 hotkeys for VS Code')
|
||||
self.caps2esc = Gtk.CheckButton('Capslock is Escape when tapped, Cmd when held')
|
||||
self.caps2cmd = Gtk.CheckButton('Capslock is Cmd')
|
||||
self.rightmod = Gtk.CheckButton(label='AltGr on Right Cmd')
|
||||
self.vsc2st3 = Gtk.CheckButton(label='ST3 hotkeys for VS Code')
|
||||
self.caps2esc = Gtk.CheckButton(label='Capslock is Escape when tapped, Cmd when held')
|
||||
self.caps2cmd = Gtk.CheckButton(label='Capslock is Cmd')
|
||||
|
||||
if rightmod_result == 0:
|
||||
self.rightmod.set_active(True)
|
||||
@@ -598,6 +598,7 @@ class Indicator():
|
||||
Popen(['notify-send','Kinto: Error restarting Kinto!'])
|
||||
|
||||
def runStop(self,button):
|
||||
global sysv
|
||||
try:
|
||||
if sysv:
|
||||
stop = Popen(['sudo', '-E','/etc/init.d/kinto','stop'])
|
||||
|
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")
|
||||
os.system('powershell -executionpolicy bypass ".\\windows\\autohotkey.ps1"')
|
||||
print("Copying autohotkey combinations for Terminals & Editors...")
|
||||
os.system('copy /Y "' + path + '\\windows\\kinto.ahk" "' + path + '\\windows\\kinto-new.ahk"')
|
||||
os.system('copy /Y "' + path + '\\windows\\kinto.ahk" "' + homedir + '\\kinto-new.ahk"')
|
||||
if default < 3:
|
||||
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; Default)(?!( - ST2CODE))(.*)/$2$3$5/g" .\\windows\\kinto-new.ahk')
|
||||
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; Default)(?!( - ST2CODE))(.*)/$2$3$5/gm" ' + homedir + '\\kinto-new.ahk')
|
||||
if default == 1:
|
||||
kbtype = "mac"
|
||||
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; MacModifiers)/$2$3/g" .\\windows\\kinto-new.ahk')
|
||||
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; MacModifiers)/$2$3/gm" ' + homedir + '\\kinto-new.ahk')
|
||||
elif default == 2:
|
||||
kbtype = "win"
|
||||
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; WinModifiers)/$2$3/g" .\\windows\\kinto-new.ahk')
|
||||
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; WinModifiers)/$2$3/gm" ' + homedir + '\\kinto-new.ahk')
|
||||
elif default == 5:
|
||||
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)
|
||||
@@ -52,32 +52,32 @@ def windows_setup():
|
||||
print("Uninstall of Kinto is Complete.")
|
||||
if default == 3:
|
||||
kbtype = "chrome"
|
||||
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/g" .\\windows\\kinto-new.ahk')
|
||||
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/(; )(.*)(; WinModifiers\/CB)/$2$3/gm" ' + homedir + '\\kinto-new.ahk')
|
||||
if default == 3 or default == 4:
|
||||
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/g" .\\windows\\kinto-new.ahk')
|
||||
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/(; )(.*)(; WinModifiers\/CB\/IBM)/$2$3/gm" ' + homedir + '\\kinto-new.ahk')
|
||||
if default == 4:
|
||||
kbtype = "ibm"
|
||||
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; IBM)/$2$3/g" .\\windows\\kinto-new.ahk')
|
||||
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; IBM)/$2$3/gm" ' + homedir + '\\kinto-new.ahk')
|
||||
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)
|
||||
print("\nWill now install Ubuntu Terminal Theme as default...")
|
||||
os.system('regedit "' + path + '\\windows\\theme_ubuntu.reg"')
|
||||
os.system('robocopy "'+ path + '\\assets" "%userprofile%\\.kinto\\assets" /E')
|
||||
if (stvscode and (default > 0 or default < 3)):
|
||||
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; Default - ST2CODE)/$2$3/g" .\\windows\\kinto-new.ahk')
|
||||
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; Default - ST2CODE)/$2$3/gm" ' + homedir + '\\kinto-new.ahk')
|
||||
elif (stvscode and (default == 3 or default == 4 )):
|
||||
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; CB/IBM - ST2CODE)/$2$3/g" .\\windows\\kinto-new.ahk')
|
||||
os.system('C:\\Strawberry\\perl\\bin\\perl.exe -pi -e "s/(; )(.*)(; CB/IBM - ST2CODE)/$2$3/gm" ' + homedir + '\\kinto-new.ahk')
|
||||
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 + '/g" "%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('copy /Y "' + path + '\\windows\\usb.vbs" "%userprofile%\\.kinto\\usb.vbs"')
|
||||
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('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\\kinto-new.ahk" "%userprofile%\\.kinto\\kinto.ahk"')
|
||||
os.system("del /f .\\windows\\kinto-new.ahk")
|
||||
os.system('copy /Y "'+ homedir + '\\kinto-new.ahk" "%userprofile%\\.kinto\\kinto.ahk"')
|
||||
os.system("del /f " + homedir + "\\kinto-new.ahk")
|
||||
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]
|
||||
print('Starting... "' + userpath + '\\AppData\\Roaming\\Microsoft\\Windows\\STARTM~1\\Programs\\Startup\\kinto-start.vbs"')
|
||||
|
@@ -172,8 +172,10 @@ GroupAdd, browsers, ahk_exe msedge.exe
|
||||
|
||||
; Disable Key Remapping for Virtual Machines
|
||||
; Disable for Remote desktop solutions too
|
||||
GroupAdd, virtm, ahk_exe VirtualBoxVM.exe
|
||||
GroupAdd, virtm, ahk_exe mstsc.exe
|
||||
GroupAdd, remotes, ahk_exe VirtualBoxVM.exe
|
||||
GroupAdd, remotes, ahk_exe mstsc.exe
|
||||
GroupAdd, remotes, ahk_exe msrdc.exe
|
||||
GroupAdd, remotes, ahk_exe nxplayer.bin
|
||||
|
||||
; Disabled Edge for now - no ability to close all instances
|
||||
; GroupAdd, browsers, Microsoft Edge ahk_class ApplicationFrameWindow
|
||||
@@ -188,7 +190,19 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
||||
|
||||
; SetCapsLockState, AlwaysOff ; CB/IBM
|
||||
|
||||
#IfWinNotActive ahk_group virtm
|
||||
; Keyboards w/o media keys can use this Remap
|
||||
; This will replace unneeded dedicated keys
|
||||
; with most commonly used media keys
|
||||
;
|
||||
; Insert::SoundSet, +1, , mute ; Toggles Speaker
|
||||
; +Insert::Insert ; Shift Insert maps to Insert
|
||||
; Home::SoundSetWaveVolume, -10 ; Decrease volume
|
||||
; PgUp::SoundSetWaveVolume, +10 ; Increase volume
|
||||
; Delete::Send {Media_Prev} ; Previous
|
||||
; End::Send {Media_Play_Pause} ; Pause/Play
|
||||
; PgDn::Send {Media_Next} ; Next
|
||||
|
||||
#IfWinNotActive ahk_group remotes
|
||||
|
||||
; New AltTab and CtrlTab fix
|
||||
*tab::
|
||||
@@ -568,7 +582,7 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
||||
; #x::Send ^{x} ; Default - Terminal - Ctrl-x
|
||||
; #c::Send ^{c} ; Default - Terminal - Ctrl-c sigint
|
||||
; !x::Send ^{x} ; CB/IBM
|
||||
; !c::Send ^{c} ; CB/IBM
|
||||
; !c::Send ^{c} ; CB/IBM - Sigint
|
||||
; #c::send ^{Pause} ; cancel_build
|
||||
; #Space::Send ^{Space} ; Default - Basic code completion
|
||||
; !Space::Send ^{Space} ; CB/IBM - Basic code completion
|
||||
@@ -592,7 +606,6 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
||||
Insert::Return ; cancel toggle_overwrite
|
||||
^!O::send {Insert} ; toggle_overwrite
|
||||
; !c::Return ; Default - cancel toggle_case_sensitive
|
||||
; $!c::send ^{c} ; CB/IBM - Sigint
|
||||
^!c::send !{c} ; toggle_case_sensitive
|
||||
; ^h::Return ; cancel replace
|
||||
^!f::send ^{h} ; replace
|
||||
@@ -600,6 +613,7 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
||||
^!e::send ^+{h} ; replace_next
|
||||
F3::Return ; cancel 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
|
||||
^+g::send +{F3} ; find_prev
|
||||
#!g::send ^{F3} ; find_under
|
||||
@@ -729,45 +743,45 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
||||
; Clear Terminal and Scroll Buffer
|
||||
^k::Send clear && printf '\e[3J'{Enter}
|
||||
; Remap Physical Ctrl back to Ctrl
|
||||
#0::Send {LCtrl down}0{Ctrl up} ; Default
|
||||
#1::Send {LCtrl down}1{Ctrl up} ; Default
|
||||
#2::Send {LCtrl down}2{Ctrl up} ; Default
|
||||
#3::Send {LCtrl down}3{Ctrl up} ; Default
|
||||
#4::Send {LCtrl down}4{Ctrl up} ; Default
|
||||
#5::Send {LCtrl down}5{Ctrl up} ; Default
|
||||
#6::Send {LCtrl down}6{Ctrl up} ; Default
|
||||
#7::Send {LCtrl down}7{Ctrl up} ; Default
|
||||
#8::Send {LCtrl down}8{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
|
||||
#a::Send {LCtrl down}a{Ctrl up} ; Default
|
||||
#b::Send {LCtrl down}b{Ctrl up} ; Default
|
||||
#c::Send {LCtrl down}c{Ctrl up} ; Default
|
||||
#d::Send {LCtrl down}d{Ctrl up} ; Default
|
||||
#e::Send {LCtrl down}e{Ctrl up} ; Default
|
||||
#f::Send {LCtrl down}f{Ctrl up} ; Default
|
||||
#g::Send {LCtrl down}g{Ctrl up} ; Default
|
||||
#h::Send {LCtrl down}h{Ctrl up} ; Default
|
||||
#i::Send {LCtrl down}i{Ctrl up} ; Default
|
||||
#j::Send {LCtrl down}j{Ctrl up} ; Default
|
||||
#k::Send {LCtrl down}k{Ctrl up} ; Default
|
||||
#l::Send {LCtrl down}l{Ctrl up} ; Default
|
||||
#m::Send {LCtrl down}m{Ctrl up} ; Default
|
||||
#n::Send {LCtrl down}n{Ctrl up} ; Default
|
||||
#o::Send {LCtrl down}o{Ctrl up} ; Default
|
||||
#p::Send {LCtrl down}p{Ctrl up} ; Default
|
||||
#q::Send {LCtrl down}q{Ctrl up} ; Default
|
||||
#r::Send {LCtrl down}r{Ctrl up} ; Default
|
||||
#s::Send {LCtrl down}s{Ctrl up} ; Default
|
||||
#t::Send {LCtrl down}t{Ctrl up} ; Default
|
||||
#u::Send {LCtrl down}u{Ctrl up} ; Default
|
||||
#v::Send {LCtrl down}v{Ctrl up} ; Default
|
||||
#w::Send {LCtrl down}w{Ctrl up} ; Default
|
||||
#x::Send {LCtrl down}x{Ctrl up} ; Default
|
||||
#y::Send {LCtrl down}y{Ctrl up} ; Default
|
||||
#z::Send {LCtrl down}z{Ctrl up} ; Default
|
||||
; #0::Send {LCtrl down}0{Ctrl up} ; Default
|
||||
; #1::Send {LCtrl down}1{Ctrl up} ; Default
|
||||
; #2::Send {LCtrl down}2{Ctrl up} ; Default
|
||||
; #3::Send {LCtrl down}3{Ctrl up} ; Default
|
||||
; #4::Send {LCtrl down}4{Ctrl up} ; Default
|
||||
; #5::Send {LCtrl down}5{Ctrl up} ; Default
|
||||
; #6::Send {LCtrl down}6{Ctrl up} ; Default
|
||||
; #7::Send {LCtrl down}7{Ctrl up} ; Default
|
||||
; #8::Send {LCtrl down}8{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
|
||||
; #a::Send {LCtrl down}a{Ctrl up} ; Default
|
||||
; #b::Send {LCtrl down}b{Ctrl up} ; Default
|
||||
; #c::Send {LCtrl down}c{Ctrl up} ; Default
|
||||
; #d::Send {LCtrl down}d{Ctrl up} ; Default
|
||||
; #e::Send {LCtrl down}e{Ctrl up} ; Default
|
||||
; #f::Send {LCtrl down}f{Ctrl up} ; Default
|
||||
; #g::Send {LCtrl down}g{Ctrl up} ; Default
|
||||
; #h::Send {LCtrl down}h{Ctrl up} ; Default
|
||||
; #i::Send {LCtrl down}i{Ctrl up} ; Default
|
||||
; #j::Send {LCtrl down}j{Ctrl up} ; Default
|
||||
; #k::Send {LCtrl down}k{Ctrl up} ; Default
|
||||
; #l::Send {LCtrl down}l{Ctrl up} ; Default
|
||||
; #m::Send {LCtrl down}m{Ctrl up} ; Default
|
||||
; #n::Send {LCtrl down}n{Ctrl up} ; Default
|
||||
; #o::Send {LCtrl down}o{Ctrl up} ; Default
|
||||
; #p::Send {LCtrl down}p{Ctrl up} ; Default
|
||||
; #q::Send {LCtrl down}q{Ctrl up} ; Default
|
||||
; #r::Send {LCtrl down}r{Ctrl up} ; Default
|
||||
; #s::Send {LCtrl down}s{Ctrl up} ; Default
|
||||
; #t::Send {LCtrl down}t{Ctrl up} ; Default
|
||||
; #u::Send {LCtrl down}u{Ctrl up} ; Default
|
||||
; #v::Send {LCtrl down}v{Ctrl up} ; Default
|
||||
; #w::Send {LCtrl down}w{Ctrl up} ; Default
|
||||
; #x::Send {LCtrl down}x{Ctrl up} ; Default
|
||||
; #y::Send {LCtrl down}y{Ctrl up} ; Default
|
||||
; #z::Send {LCtrl down}z{Ctrl up} ; Default
|
||||
; !0::Send {LCtrl down}0{Ctrl up} ; CB/IBM
|
||||
; !1::Send {LCtrl down}1{Ctrl up} ; CB/IBM
|
||||
; !2::Send {LCtrl down}2{Ctrl up} ; CB/IBM
|
||||
|
@@ -621,7 +621,7 @@ if ! [[ $1 == "5" || $1 == "uninstall" || $1 == "Uninstall" ]]; then
|
||||
# sudo systemctl restart xkeysnail
|
||||
sudo pkill -f kintotray &
|
||||
# >/dev/null 2>&1
|
||||
if [[ $dename == "gnome" || $dename == "kde" ]];then
|
||||
if [[ $dename == "kde" ]];then
|
||||
sed -i "s/systray = true/systray = false/g" ~/.config/kinto/initkb
|
||||
fi
|
||||
nohup python3 ~/.config/kinto/gui/kinto-gui.py >/dev/null 2>&1 &
|
||||
|
Reference in New Issue
Block a user