Compare commits
110 Commits
hellosyste
...
feature/se
Author | SHA1 | Date | |
---|---|---|---|
![]() |
8fe1bc7772 | ||
![]() |
1ae096daf5 | ||
![]() |
46354a971c | ||
![]() |
af6f56d2dc | ||
![]() |
fbc630f1d5 | ||
![]() |
e1e9b08442 | ||
![]() |
b0ba86623b | ||
![]() |
a798b736b6 | ||
![]() |
3dc68314f9 | ||
![]() |
1529d90918 | ||
![]() |
56493b4eec | ||
![]() |
974cd13fae | ||
![]() |
d8ad4b874f | ||
![]() |
b532a9891d | ||
![]() |
294ba3b89f | ||
![]() |
c908b00a38 | ||
![]() |
56f4f679e4 | ||
![]() |
ba46c4ff97 | ||
![]() |
980ae6a237 | ||
![]() |
1a57dd9a5e | ||
![]() |
c9810838a1 | ||
![]() |
e60f7cffea | ||
![]() |
c8b169b6a0 | ||
![]() |
81c0c52902 | ||
![]() |
4d697d9cdc | ||
![]() |
307c9bc2d1 | ||
![]() |
7436825c93 | ||
![]() |
d680a58d04 | ||
![]() |
71af27be24 | ||
![]() |
2ce4bbdb82 | ||
![]() |
085485dcfc | ||
![]() |
e7188ca693 | ||
![]() |
4cf795619d | ||
![]() |
588fe1a0dc | ||
![]() |
18ae403188 | ||
![]() |
de8e674027 | ||
![]() |
625f775464 | ||
![]() |
4980c4a35e | ||
![]() |
c09d8b07e4 | ||
![]() |
a34acfb0b5 | ||
![]() |
9f694fd198 | ||
![]() |
4349c4f9dd | ||
![]() |
68395fd91c | ||
![]() |
482de09dcc | ||
![]() |
f075f3a927 | ||
![]() |
00cbd59a4e | ||
![]() |
cbfe1a4141 | ||
![]() |
d44247affb | ||
![]() |
4f1adbc358 | ||
![]() |
a362d704c2 | ||
![]() |
6e2631aa3c | ||
![]() |
4bcdcdea6a | ||
![]() |
f9d7cba452 | ||
![]() |
fb0c476c7f | ||
![]() |
afd7ec47bf | ||
![]() |
06ba71fa67 | ||
![]() |
539d916ae3 | ||
![]() |
6d49644151 | ||
![]() |
4a3877a5fa | ||
![]() |
12efd46dd7 | ||
![]() |
e255cb6727 | ||
![]() |
8e0828aa3b | ||
![]() |
ecbf8a7aed | ||
![]() |
93743cc4c5 | ||
![]() |
34dee0e9ef | ||
![]() |
261befaf7f | ||
![]() |
5410895d0a | ||
![]() |
319b506260 | ||
![]() |
6a8de98bbd | ||
![]() |
9aaac4f356 | ||
![]() |
e9911f3de8 | ||
![]() |
d76dcc9682 | ||
![]() |
6a32f41de4 | ||
![]() |
273d0e2ee4 | ||
![]() |
ce9b137c13 | ||
![]() |
dab65cd8f0 | ||
![]() |
50d53ba77f | ||
![]() |
a285e7ebe9 | ||
![]() |
231060ee5b | ||
![]() |
f693312dce | ||
![]() |
6d2dd55a96 | ||
![]() |
46430e3ec6 | ||
![]() |
d1d020ff80 | ||
![]() |
bc04c87042 | ||
![]() |
dc31e28e16 | ||
![]() |
30a9529940 | ||
![]() |
7c9887237b | ||
![]() |
a090725633 | ||
![]() |
1e694aa65f | ||
![]() |
7f771cb5da | ||
![]() |
20e73a060b | ||
![]() |
3cbb2efa4b | ||
![]() |
39aef1be43 | ||
![]() |
e526dfdda0 | ||
![]() |
c321e51a8f | ||
![]() |
43b4ae3986 | ||
![]() |
8eb14ee96a | ||
![]() |
b76154d046 | ||
![]() |
6fa0ec8ddd | ||
![]() |
c924d91440 | ||
![]() |
e9edc4891c | ||
![]() |
015faa4491 | ||
![]() |
844f03ebc1 | ||
![]() |
2663bfc574 | ||
![]() |
93743a6fa2 | ||
![]() |
74ef2b3a8f | ||
![]() |
b5854eec66 | ||
![]() |
06b235d4ea | ||
![]() |
24e42c1c8a | ||
![]() |
5f83fa9ba5 |
147
README.md
@@ -5,25 +5,24 @@
|
||||
|
||||
[](https://github.com/rbreaves/kinto/releases/latest)
|
||||
|
||||
\- Type in Linux & Windows like it's a Mac. \-
|
||||
\- Mac-style shortcut keys for Linux & Windows. \-
|
||||
|
||||
Seamless copy and paste with all apps and terminals. The zero effort solution.
|
||||
|
||||
v1.2 Release - Kinto now includes a system tray and simple wizard to setup the install with minimal effort.
|
||||
|
||||
Kinto is powered by [xkeysnail](https://github.com/mooz/xkeysnail) for Linux & by [Autohotkey](https://github.com/Lexikos/AutoHotkey_L) for Windows 10.
|
||||
|
||||
### [Table of Contents ](#Table-of-Contents)
|
||||
|
||||
## Donations
|
||||
|
||||
If you like or appreciate this project then please consider donating.
|
||||
|
||||
[Amazon wishlist](https://smile.amazon.com/hz/wishlist/ls/3EVXR21VFKD9Z?ref_=wl_share)
|
||||
|**Wishlists**|[Amazon](https://smile.amazon.com/hz/wishlist/ls/3EVXR21VFKD9Z?ref_=wl_share)|[Adafruit](https://www.adafruit.com/wishlists/515932)|[eBay](https://www.ebay.com/mye/myebay/WatchList?custom_list_id=636668138019)|
|
||||
|---|---|---|---|
|
||||
|
||||
[Adafruit Wishlist](https://www.adafruit.com/wishlists/515932)
|
||||
|
||||
[eBay Wishlist](https://www.ebay.com/mye/myebay/WatchList?custom_list_id=636668138019)
|
||||
|
||||
If you would like to send me a keyboard directly then please reach out to me over [twitter](https://twitter.com/gbit86) and send me a DM. I will accept shipments (of keyboards in particular) as well.
|
||||
If you would like to send me a keyboard directly then please reach out to me over [twitter](https://twitter.com/gbit86) and send me a DM.
|
||||
|
||||
## How to install (Linux)
|
||||
|
||||
@@ -33,6 +32,15 @@ Video Tutorial: [Install Kinto.sh for Linux in less than a minute](https://www.y
|
||||
|
||||
<img src="https://user-images.githubusercontent.com/10969616/97070698-179c4500-15a0-11eb-8064-c03aa7f4d4a5.png" width="75%">
|
||||
|
||||
### Quick Install Method
|
||||
|
||||
Paste the following into your Terminal
|
||||
```
|
||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/rbreaves/kinto/master/install/linux.sh)"
|
||||
```
|
||||
|
||||
### Old Install Method
|
||||
|
||||
1. clone this repo
|
||||
```
|
||||
git clone https://github.com/rbreaves/kinto.git
|
||||
@@ -51,20 +59,24 @@ sudo apt install python3
|
||||
./setup.py
|
||||
```
|
||||
|
||||
Troubleshoot
|
||||
**Troubleshoot**
|
||||
|
||||
If the wizard does not appear then either type in "kinto.sh" in your application overview search bar or run this following command.
|
||||
```
|
||||
~/.config/kinto/gui/kinto-gui.py
|
||||
```
|
||||
|
||||
To Uninstall Kinto
|
||||
**Issues with Numpad?**
|
||||
|
||||
Try toggling numlock on & off (clear key on official mac keyboards). If it still does not work then restart the Kinto service and try toggling the numlock/clear key again, it will likely work after that. #369
|
||||
|
||||
**Uninstall Kinto**
|
||||
|
||||
```
|
||||
./setup.py -r
|
||||
```
|
||||
|
||||
Other tips
|
||||
**Other tips**
|
||||
|
||||
If you want a global menu app similar to what mac users have then I strongly recommend Ubuntu Budgie as it has the Vala Appmenu built in and ready for activation. Short of that Vala-AppMenu can be installed in various distros, mileage will vary. If you try to activate it in the latest 20.xx releases with XFCE then you may need to run the following commands.
|
||||
|
||||
@@ -73,12 +85,30 @@ sudo apt install xfce4-appmenu-plugin vala-panel-appmenu-common
|
||||
xfconf-query -c xsettings -p /Gtk/Modules -n -t string -s "appmenu-gtk-module"
|
||||
```
|
||||
|
||||
**Perfect HiDPI fractional scaling on Ubuntu Budgie 20.04 under x11**
|
||||
|
||||
https://discourse.ubuntubudgie.org/t/ubuntu-budgie-20-04-fractional-hidpi-for-x11/4777
|
||||
|
||||
## How to Install (Windows)
|
||||
|
||||
Video Tutorial: [How to Install Kinto.sh on Windows 10](https://youtu.be/sRk8A8krz40)
|
||||
|
||||
[Windows 10 Requirements](#Kinto-for-Windows-10-Requirements)
|
||||
|
||||
### Quick install
|
||||
Open Powershell as Administrator and copy and paste the following. This will download & extract Kinto, install chocolatey, python3 and then install Kinto.
|
||||
|
||||
```
|
||||
Invoke-WebRequest -Uri https://github.com/rbreaves/kinto/archive/refs/heads/master.zip -OutFile $env:USERPROFILE\Downloads\kinto.zip;Expand-Archive -LiteralPath "$env:USERPROFILE\Downloads\kinto.zip" -DestinationPath "$env:USERPROFILE\Downloads" -Force;Set-ExecutionPolicy Bypass -Scope Process -Force; iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex; choco install -y python3;cd "$env:USERPROFILE\Downloads\kinto-master";py .\setup.py
|
||||
```
|
||||
|
||||
Update system tray to show Kinto icon at all times (optional)
|
||||
```
|
||||
cmd /c "explorer shell:::{05d7b0f4-2121-4eff-bf6b-ed3f69b894d9}"
|
||||
```
|
||||
|
||||
### Old method
|
||||
|
||||
1. Open Powershell (Right click and Run as Administrator)
|
||||
|
||||
2. clone this repo
|
||||
@@ -97,25 +127,68 @@ py setup.py
|
||||
<img src="https://user-images.githubusercontent.com/10969616/85195079-30fd4f80-b295-11ea-8bcd-257990b77dcb.png" width="50%" height="50%">
|
||||
<img src="https://user-images.githubusercontent.com/10969616/85195082-322e7c80-b295-11ea-8c81-320dab424c3c.png" width="50%" height="50%">
|
||||
|
||||
To Uninstall Kinto - Select Uninstall
|
||||
**Uninstall Kinto**
|
||||
|
||||
```
|
||||
py setup.py
|
||||
```
|
||||
|
||||
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 & macOS is now supported. 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|Src/Remote Client ⇒|Dst/Remote Server|Works? |Notes|
|
||||
|---|---|---|---|---|
|
||||
|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"|
|
||||
|FreeRDP| 🐧Linux/ChromeOS 87+⇒| ❖Windows | ✅ Yes | |
|
||||
|FreeRDP| 🍎macOS⇒| ❖Windows | ✅ Yes| [FreeRDP for macOS](#FreeRDP-for-macOS)|
|
||||
|Remote Desktop Manager Free|🍎iOS⇒| ❖Windows | ✅ Yes| |
|
||||
|Jump Desktop (RDP)| 🍎macOS*/iOS ⇒| ❖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|
|
||||
|
||||
Scenarios confirmed working?
|
||||
Windows RDP Client -> Windows Computer
|
||||
## 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%">
|
||||
|
||||
Scenarios that don't appear to work?
|
||||
Microsoft RDP Client on a Mac -> Windows Computer
|
||||
FreeRDP based client on a Mac -> Windows Computer
|
||||
Android/iOS RDP Client -> Windows Computer
|
||||
|
||||
## Table of Contents
|
||||
|
||||
@@ -196,6 +269,9 @@ Other programs that will be installed when you run ./setup.py
|
||||
- Strawberry Perl
|
||||
|
||||
Note: Sublime Text users should disable screen rotation hotkeys as they will interfere with multi-cursor and possibly other combos. See https://windowsloop.com/disable-screen-rotation-keyboard-shortcut/ for details.
|
||||
|
||||
You may also want to disable the Xbox Game Bar so that Win+G or other shortcuts will not interfer with any of your remaps. Start menu -> Game bar shortcuts -> toggle Off.
|
||||
|
||||
## Shortcut Creation
|
||||
|
||||
[Linux Shortcut Creation (Xkeysnail)](#Linux-Xkeysnail)
|
||||
@@ -380,10 +456,30 @@ 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.
|
||||
|
||||
[Wincent](https://github.com/wincent/wincent) by Greg Hurrell
|
||||
|
||||
Dot files and configurations that may help those that want mac-style shortcut keys that work under Wayland, or w/o x11.
|
||||
[Vim #102: macOS keyboard bindings on Linux](https://www.youtube.com/watch?v=TBqTHesnzkI)
|
||||
|
||||
[mac-precision-touchpad](https://github.com/imbushuo/mac-precision-touchpad) by imbushuo
|
||||
|
||||
Windows 10 touchpad to precision touchpad driver
|
||||
|
||||
[macOS-cursors-for-Windows](https://github.com/antiden/macOS-cursors-for-Windows) by antiden
|
||||
|
||||
macOS cursors for Windows
|
||||
|
||||
[QuickLook](https://github.com/QL-Win/QuickLook) for Windows by QL-Win
|
||||
|
||||
It allows users to peek into a file content in lightning speed by just pressing the Space key
|
||||
|
||||
[fusuma](https://github.com/iberianpig/fusuma) by iberianpig
|
||||
|
||||
Multitouch gestures with libinput driver on Linux
|
||||
@@ -392,10 +488,11 @@ Multitouch gestures with libinput driver on Linux
|
||||
|
||||
Linux driver for Facetime HD on macbooks
|
||||
|
||||
[Fluent Terminal - Windows only](https://github.com/felixse/FluentTerminal) by felixse
|
||||
[Windows Terminal Preview](https://aka.ms/terminal-preview) by Microsoft
|
||||
|
||||
The best Terminal app built for Windows hands down. I have tried countless, but this one actually seems to get everything right, despite the lack of a GUI to configure all aspects of the program. Custom configurations have to be done via a json file - but given the performance and feature set I feel like it is the a decent trade off.
|
||||
|
||||
A Terminal Emulator based on UWP and web technologies.
|
||||
I will update Kinto to have custom configurations for this specific Terminal in the future. Will make seamless copy & paste, which already works, work even better (Cmd-C can still trigger sigint - but there is a fix for that that involves updating the json config).
|
||||
|
||||
[PowerToys - Windows only](https://github.com/microsoft/PowerToys) by microsoft
|
||||
|
||||
@@ -445,7 +542,7 @@ Dark & Light Theme w/ OSX controls for Elementary OS
|
||||
|
||||
Auto-detect the connected display hardware and load the appropriate X11 setup using xrandr
|
||||
|
||||
[Barrier](https://github.com/debauchee/barrier) by debauchee
|
||||
[Barrier](https://github.com/debauchee/barrier) by debauchee (Note: Does not appear to work with Kinto v1.2+, may work w/ Kinto v1.1?)
|
||||
|
||||
Open-source KVM software
|
||||
|
||||
@@ -471,11 +568,9 @@ Vala rewrite of SimplePanel - GitHub mirror (Global Menu for XFCE)
|
||||
|
||||
## Contributing
|
||||
|
||||
I welcome any and all contributors who want to contribute something to this project.
|
||||
I welcome any and all contributors who want to add something to this project.
|
||||
|
||||
If you are specifically wanting to contribute additional custom keymaps to help with aligning Kinto's behavior to that of a mac keyboard then I would strongly recommend that you read Glen Whitney's comment on Superuser (the link is below). You may also look at the .xkb directory, mac_wordwise.sh and xactive.sh files to better understand how Kinto operates so that you can test your own keymaps without having to use the systemd service or running the xactive.sh script.
|
||||
|
||||
https://superuser.com/questions/385748/binding-superc-superv-to-copy-and-paste
|
||||
You can read the configuration files and the open issue tickets such as [#44 Shortcut Translation Tables](https://github.com/rbreaves/kinto/issues/44), [#115 Shortcut Creation (xkeysnail)](https://github.com/rbreaves/kinto/issues/115), and [#348 Missing Shortcuts: Post them here](https://github.com/rbreaves/kinto/issues/348) to best understand what's currently happening and how best to contribute.
|
||||
|
||||
## More information about Kinto
|
||||
|
||||
|
21
install/linux.sh
Executable file
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/rbreaves/kinto/master/install/linux.sh)"
|
||||
|
||||
curl https://github.com/rbreaves/kinto/archive/refs/heads/master.zip -J -L -o ~/Downloads/kinto.zip
|
||||
unzip ~/Downloads/kinto.zip -d ~/Downloads/
|
||||
cd ~/Downloads/kinto-master/
|
||||
|
||||
kintorelease=`curl -s https://api.github.com/repos/rbreaves/kinto/releases/latest | awk -F'tag_name": ' '{if ($2) print $2}' | tr -d \",`
|
||||
kintohash=`unzip -z ~/Downloads/kinto.zip | tail -n1`
|
||||
kintoshort=${kintohash::7}
|
||||
|
||||
echo "$kintorelease" "build" "$kintoshort" > ./dl_version
|
||||
|
||||
if [ $# -eq 0 ];then
|
||||
echo "Installing Kinto..."
|
||||
./setup.py
|
||||
elif [ $1 == "-r" ];then
|
||||
echo "Uninstall Kinto..."
|
||||
./setup.py -r
|
||||
fi
|
7
install/windows.ps1
Normal file
@@ -0,0 +1,7 @@
|
||||
Invoke-WebRequest -Uri https://github.com/rbreaves/kinto/archive/refs/heads/master.zip -OutFile $env:USERPROFILE\Downloads\kinto.zip
|
||||
Expand-Archive -LiteralPath "$env:USERPROFILE\Downloads\kinto.zip" -DestinationPath "$env:USERPROFILE\Downloads" -Force
|
||||
Set-ExecutionPolicy Bypass -Scope Process -Force
|
||||
iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex
|
||||
choco install -y python3
|
||||
cd "$env:USERPROFILE\Downloads\kinto-master"
|
||||
py .\setup.py
|
@@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
#!/bin/bash
|
||||
dbus-monitor --session "type='signal',interface='org.gnome.SessionManager.Logout'" | grep '1' |
|
||||
while read x; do
|
||||
# echo "$x"
|
0
xkeysnail-config/gui/capslock_1200x720.png → linux/gui/capslock_1200x720.png
Executable file → Normal file
Before Width: | Height: | Size: 7.0 KiB After Width: | Height: | Size: 7.0 KiB |
0
xkeysnail-config/gui/keys_1200x720.png → linux/gui/keys_1200x720.png
Executable file → Normal file
Before Width: | Height: | Size: 8.4 KiB After Width: | Height: | Size: 8.4 KiB |
@@ -153,6 +153,14 @@ class MyWindow(Gtk.Window):
|
||||
menuitem_file = Gtk.MenuItem(label="File")
|
||||
menubar.append(menuitem_file)
|
||||
submenu_file = Gtk.Menu()
|
||||
|
||||
menuitem_restart = Gtk.MenuItem(label="Restart")
|
||||
menuitem_restart.connect('activate',self.runRestart)
|
||||
submenu_file.append(menuitem_restart)
|
||||
menuitem_stop = Gtk.MenuItem(label="Stop")
|
||||
menuitem_stop.connect('activate',self.runStop)
|
||||
submenu_file.append(menuitem_stop)
|
||||
|
||||
menuitem_file.set_submenu(submenu_file)
|
||||
submenu_file.append(self.menuitem_auto)
|
||||
kintotray = int(self.queryConfig('ps -aux | grep [k]intotray >/dev/null 2>&1 && echo "1" || echo "0"'))
|
||||
@@ -164,12 +172,6 @@ class MyWindow(Gtk.Window):
|
||||
self.menuitem_systray.signal_id = self.menuitem_systray.connect('activate',self.checkTray,True)
|
||||
menuitem_file.connect('activate',self.refreshFile)
|
||||
submenu_file.append(self.menuitem_systray)
|
||||
menuitem_restart = Gtk.MenuItem(label="Restart")
|
||||
menuitem_restart.connect('activate',self.runRestart)
|
||||
submenu_file.append(menuitem_restart)
|
||||
menuitem_stop = Gtk.MenuItem(label="Stop")
|
||||
menuitem_stop.connect('activate',self.runStop)
|
||||
submenu_file.append(menuitem_stop)
|
||||
|
||||
menuitem_quit = Gtk.MenuItem(label="Quit")
|
||||
submenu_file.append(menuitem_quit)
|
||||
@@ -1435,4 +1437,4 @@ if openWin:
|
||||
win.show_all()
|
||||
openWin = False
|
||||
|
||||
Gtk.main()
|
||||
Gtk.main()
|
0
xkeysnail-config/gui/kinto.desktop → linux/gui/kinto.desktop
Normal file → Executable file
0
xkeysnail-config/gui/tuxbg.png → linux/gui/tuxbg.png
Executable file → Normal file
Before Width: | Height: | Size: 111 KiB After Width: | Height: | Size: 111 KiB |
0
xkeysnail-config/gui/tuxcry4.png → linux/gui/tuxcry4.png
Executable file → Normal file
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 65 KiB |
0
xkeysnail-config/gui/tuxerror.png → linux/gui/tuxerror.png
Executable file → Normal file
Before Width: | Height: | Size: 172 KiB After Width: | Height: | Size: 172 KiB |
0
xkeysnail-config/gui/tuxuninstall.png → linux/gui/tuxuninstall.png
Executable file → Normal file
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 94 KiB |
@@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
#!/bin/bash
|
||||
|
||||
xkeycount=$(pgrep 'xkeysnail' | wc -l)
|
||||
|
145
xkeysnail-config/kinto.py → linux/kinto.py
Normal file → Executable file
@@ -7,16 +7,65 @@ from xkeysnail.transform import *
|
||||
# Use the following for testing terminal keymaps
|
||||
# terminals = [ "", ... ]
|
||||
# xbindkeys -mk
|
||||
terminals = ["kinto-gui.py","gnome-terminal","konsole","io.elementary.terminal","terminator","sakura","guake","tilda","xterm","eterm","kitty","alacritty","mate-terminal","tilix","xfce4-terminal","hyper"]
|
||||
terminals = [
|
||||
"alacritty",
|
||||
"eterm",
|
||||
"gnome-terminal",
|
||||
"guake",
|
||||
"hyper",
|
||||
"io.elementary.terminal",
|
||||
"kinto-gui.py",
|
||||
"kitty",
|
||||
"konsole",
|
||||
"mate-terminal",
|
||||
"qterminal",
|
||||
"sakura",
|
||||
"terminator",
|
||||
"tilda",
|
||||
"tilix",
|
||||
"xfce4-terminal",
|
||||
"xterm",
|
||||
]
|
||||
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",
|
||||
"xfreerdp",
|
||||
]
|
||||
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 = [
|
||||
"Chromium",
|
||||
"Chromium-browser",
|
||||
"Discord",
|
||||
"Epiphany",
|
||||
"Firefox",
|
||||
"Google-chrome",
|
||||
"microsoft-edge",
|
||||
"microsoft-edge-dev",
|
||||
]
|
||||
browsers = [browser.casefold() for browser in browsers]
|
||||
browserStr = "|".join(str(x) for x in browsers)
|
||||
|
||||
chromes = ["Chromium","Chromium-browser","Google-chrome","microsoft-edge-dev","microsoft-edge"]
|
||||
chromes = [
|
||||
"Chromium",
|
||||
"Chromium-browser",
|
||||
"Google-chrome",
|
||||
"microsoft-edge",
|
||||
"microsoft-edge-dev",
|
||||
]
|
||||
chromes = [chrome.casefold() for chrome in chromes]
|
||||
chromeStr = "|".join(str(x) for x in chromes)
|
||||
|
||||
@@ -24,9 +73,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
|
||||
@@ -34,6 +80,12 @@ define_multipurpose_modmap(
|
||||
{ # Placeholder
|
||||
})
|
||||
|
||||
# Fix for avoiding modmapping when using Synergy keyboard/mouse sharing.
|
||||
# Synergy doesn't set a wm_class, so this may cause issues with other
|
||||
# applications that also don't set the wm_class.
|
||||
# Enable only if you use Synergy.
|
||||
# define_conditional_modmap(lambda wm_class: wm_class == '', {})
|
||||
|
||||
# [Global modemap] Change modifier keys as in xmodmap
|
||||
define_conditional_modmap(lambda wm_class: wm_class.casefold() not in terminals,{
|
||||
|
||||
@@ -107,7 +159,7 @@ define_conditional_modmap(re.compile(termStr, re.IGNORECASE), {
|
||||
})
|
||||
|
||||
# Keybindings for IntelliJ
|
||||
define_keymap(re.compile("jetbrains-idea", re.IGNORECASE),{
|
||||
define_keymap(re.compile("^jetbrains-(?!.*toolbox).*$", re.IGNORECASE),{
|
||||
# General
|
||||
K("C-Key_0"): K("M-Key_0"), # Open corresponding tool window
|
||||
K("C-Key_1"): K("M-Key_1"), # Open corresponding tool window
|
||||
@@ -194,7 +246,7 @@ define_keymap(re.compile("jetbrains-idea", re.IGNORECASE),{
|
||||
# VCS/Local History
|
||||
K("Super-v"): K("M-Grave"), # VCS quick popup
|
||||
K("Super-c"): K("LC-c"), # Sigints - interrupt
|
||||
})
|
||||
},"Jetbrains")
|
||||
|
||||
# Keybindings for Nautilus
|
||||
define_keymap(re.compile("org.gnome.nautilus", re.IGNORECASE),{
|
||||
@@ -202,28 +254,51 @@ 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 - Finder")
|
||||
|
||||
# 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
|
||||
K("C-Left_Brace"): K("C-Page_Up"),
|
||||
K("C-Right_Brace"): K("C-Page_Down"),
|
||||
})
|
||||
|
||||
# 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")],
|
||||
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")
|
||||
],
|
||||
})
|
||||
define_keymap(re.compile(chromeStr, re.IGNORECASE),{
|
||||
K("C-comma"): [K("M-e"), K("s"),K("Enter")],
|
||||
})
|
||||
}, "Browsers")
|
||||
# Opera C-F12
|
||||
|
||||
define_keymap(None,{
|
||||
# Note: terminals extends to remotes as well
|
||||
define_keymap(lambda wm_class: wm_class.casefold() not in terminals,{
|
||||
K("RC-Dot"): K("Esc"), # Mimic macOS Cmd+dot = Escape key (not in terminals)
|
||||
})
|
||||
|
||||
# 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)
|
||||
K("RC-Super-f"):K("M-F10"), # Default SL - Maximize app (gnome/kde)
|
||||
# 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("RC-Q"): K("M-F4"), # Default SL - not-popos
|
||||
@@ -232,7 +307,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)
|
||||
@@ -258,6 +333,9 @@ define_keymap(None,{
|
||||
# K("M-Grave") : K("C-Shift-Tab"), # Chromebook/IBM - In-App Tab switching
|
||||
K("Super-Tab"): K("LC-Tab"), # Default not-chromebook
|
||||
K("Super-Shift-Tab"): K("LC-Shift-Tab"), # Default not-chromebook
|
||||
|
||||
# Fn to Alt style remaps
|
||||
K("RM-Enter"): K("insert"), # Insert
|
||||
|
||||
# emacs style
|
||||
K("Super-a"): K("Home"), # Beginning of Line
|
||||
@@ -269,6 +347,8 @@ define_keymap(None,{
|
||||
K("Super-k"): [K("Shift-End"), K("Backspace")],
|
||||
K("Super-d"): K("Delete"),
|
||||
|
||||
# K("M-RC-Space"): K(""), # Open Finder - Placeholder
|
||||
|
||||
# Wordwise
|
||||
K("RC-Left"): K("Home"), # Beginning of Line
|
||||
K("RC-Shift-Left"): K("Shift-Home"), # Select all to Beginning of Line
|
||||
@@ -282,14 +362,16 @@ define_keymap(None,{
|
||||
K("RC-Shift-Up"): K("C-Shift-Home"), # Select all to Beginning of File
|
||||
K("RC-Down"): K("C-End"), # End of File
|
||||
K("RC-Shift-Down"): K("C-Shift-End"), # Select all to End of File
|
||||
# K("M-Backspace"): K("Delete"), # Chromebook/IBM - Delete
|
||||
K("Super-Backspace"): K("C-Backspace"), # Default not-chromebook - Delete Left Word of Cursor
|
||||
K("Super-Delete"): K("C-Delete"), # Default not-chromebook - Delete Right Word of Cursor
|
||||
K("Alt-Backspace"): K("C-Backspace"), # Default not-chromebook - Delete Left Word of Cursor
|
||||
K("Alt-Delete"): K("C-Delete"), # Default not-chromebook - Delete Right Word of Cursor
|
||||
# K("RM-Backspace"): K("Delete"), # Chromebook/IBM - Delete
|
||||
K("Super-Backspace"): K("C-Backspace"), # Delete Left Word of Cursor
|
||||
K("Super-Delete"): K("C-Delete"), # Delete Right Word of Cursor
|
||||
# K("LM-Backspace"): K("C-Backspace"), # Chromebook/IBM - Delete Left Word of Cursor
|
||||
K("M-Backspace"): K("C-Backspace"), # Default not-chromebook
|
||||
K("RC-Backspace"): K("C-Shift-Backspace"), # Delete Entire Line Left of Cursor
|
||||
K("Alt-Delete"): K("C-Delete"), # Delete Right Word of Cursor
|
||||
# K(""): pass_through_key, # cancel
|
||||
# K(""): K(""), #
|
||||
})
|
||||
}, "General GUI")
|
||||
|
||||
define_keymap(lambda wm_class: wm_class.casefold() not in mscodes,{
|
||||
# Wordwise remaining - for Everything but VS Code
|
||||
@@ -312,7 +394,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 - not vscode")
|
||||
|
||||
# Keybindings for VS Code
|
||||
define_keymap(re.compile(codeStr, re.IGNORECASE),{
|
||||
@@ -341,7 +423,10 @@ define_keymap(re.compile(codeStr, re.IGNORECASE),{
|
||||
K("C-g"): K("f3"), # find_next
|
||||
K("Shift-f3"): pass_through_key, # cancel find_prev
|
||||
K("C-Shift-g"): K("Shift-f3"), # find_prev
|
||||
K("Super-c"): K("LC-c"), # Sigints - interrupt
|
||||
# K("Super-c"): K("LC-c"), # Default - Terminal - Sigint
|
||||
# K("Super-x"): K("LC-x"), # Default - Terminal - Exit nano
|
||||
# K("M-c"): K("LC-c"), # Chromebook/IBM - Terminal - Sigint
|
||||
# K("M-x"): K("LC-x"), # Chromebook/IBM - Terminal - Exit nano
|
||||
# K("Super-C-g"): K("C-f2"), # Default - Sublime - find_all_under
|
||||
# K("C-M-g"): K("C-f2"), # Chromebook/IBM - Sublime - find_all_under
|
||||
# K("Super-Shift-up"): K("M-Shift-up"), # multi-cursor up - Sublime
|
||||
@@ -352,6 +437,10 @@ define_keymap(re.compile(codeStr, re.IGNORECASE),{
|
||||
|
||||
# Keybindings for Sublime Text
|
||||
define_keymap(re.compile("Sublime_text", re.IGNORECASE),{
|
||||
# K("Super-c"): K("LC-c"), # Default - Terminal - Sigint
|
||||
# K("Super-x"): K("LC-x"), # Default - Terminal - Exit nano
|
||||
# K("M-c"): K("LC-c"), # Chromebook/IBM - Terminal - Sigint
|
||||
# K("M-x"): K("LC-x"), # Chromebook/IBM - Terminal - Exit nano
|
||||
K("Super-Space"): K("C-Space"), # Basic code completion
|
||||
K("C-Super-up"): K("M-o"), # Switch file
|
||||
K("Super-RC-f"): K("f11"), # toggle_full_screen
|
||||
@@ -447,10 +536,14 @@ define_keymap(re.compile(termStr, re.IGNORECASE),{
|
||||
K("LC-Tab") : K("LC-PAGE_DOWN"),
|
||||
K("LC-Shift-Tab") : K("LC-PAGE_UP"),
|
||||
K("LC-Grave") : K("LC-PAGE_UP"),
|
||||
# K("M-Tab"): pass_through_key, # Default not-xfce4 - Cmd Tab - App Switching Default
|
||||
# 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
|
||||
# Cmd Tab - App Switching Default
|
||||
# K("RC-Tab"): K("RC-backslash"), # xfce4
|
||||
# K("RC-Shift-Tab"): K("RC-Shift-backslash"), # xfce4
|
||||
# K("RC-Grave"): K("RC-Shift-backslash"), # xfce4
|
||||
# Converts Cmd to use Ctrl-Shift
|
||||
K("RC-Tab"): K("RC-F13"),
|
||||
K("RC-Shift-Tab"): K("RC-Shift-F13"),
|
||||
K("RC-V"): K("C-Shift-V"),
|
||||
K("RC-MINUS"): K("C-Shift-MINUS"),
|
||||
K("RC-EQUAL"): K("C-Shift-EQUAL"),
|
||||
K("RC-BACKSPACE"): K("C-Shift-BACKSPACE"),
|
||||
@@ -486,7 +579,7 @@ define_keymap(re.compile(termStr, re.IGNORECASE),{
|
||||
K("RC-N"): K("C-Shift-N"),
|
||||
K("RC-M"): K("C-Shift-M"),
|
||||
K("RC-COMMA"): K("C-Shift-COMMA"),
|
||||
K("RC-DOT"): K("C-Shift-DOT"),
|
||||
K("RC-Dot"): K("LC-c"),
|
||||
K("RC-SLASH"): K("C-Shift-SLASH"),
|
||||
K("RC-KPASTERISK"): K("C-Shift-KPASTERISK"),
|
||||
}, "terminals")
|
@@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
#!/bin/bash
|
||||
if [ -f {homedir}/.config/systemd/user/keyswap.timer ]; then
|
||||
systemctl --user stop keyswap.timer >/dev/null 2>&1
|
||||
systemctl --user disable keyswap.timer >/dev/null 2>&1
|
@@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
#!/bin/bash
|
||||
# /usr/local/bin/logoff.sh
|
||||
while true; do
|
||||
w | grep -E "$1.*$2" > /dev/null 2>&1 || (sudo systemctl stop xkeysnail && sudo pkill -f logoff)
|
@@ -1,36 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
unamestr=$(uname)
|
||||
if [ "$unamestr" = 'FreeBSD' ]; then
|
||||
|
||||
DESKTOP="unknown"
|
||||
|
||||
ps -aux | grep -E '[s]tart-hello'
|
||||
if [ $? -ne 1 ];then
|
||||
echo "hellosystem"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
ps -aux | grep -E '[o]penbox'
|
||||
if [ $? -ne 1 ];then
|
||||
echo "openbox"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
ps -aux | grep -E '[m]ate-panel'
|
||||
if [ $? -ne 1 ];then
|
||||
echo "mate"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
ps -aux | grep -E '[x]fce4-session'
|
||||
if [ $? -ne 1 ];then
|
||||
echo "xfce"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
#!/bin/bash
|
||||
|
||||
function detect_budgie()
|
||||
{
|
@@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
#!/bin/bash
|
||||
|
||||
if pkgmgr="$( which apt-get )" 2> /dev/null; then
|
||||
echo "Debian"
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
0
xkeysnail-config/xkeysnail.desktop → linux/xkeysnail.desktop
Normal file → Executable file
0
xkeysnail-config/xkeysnail.service → linux/xkeysnail.service
Normal file → Executable file
@@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
#!/bin/bash
|
||||
# >/dev/null 2>&1
|
||||
|
||||
if [ -f /usr/local/bin/xkeysnail ];then
|
10
setup.py
@@ -55,14 +55,14 @@ def windows_setup():
|
||||
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')
|
||||
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/(; )(.*)(; 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')
|
||||
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/(; )(.*)(; WinModifiers/CB/IBM)/$2$3/g" .\\windows\\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 Termimnal Theme as default...")
|
||||
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)):
|
||||
@@ -73,7 +73,7 @@ def windows_setup():
|
||||
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\\detectUSB.ahk" "%userprofile%\\.kinto\\detectUSB.ahk"')
|
||||
os.system('mklink "%userprofile%\\Start Menu\\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\\toggle_kb.bat" "%userprofile%\\.kinto\\toggle_kb.bat"')
|
||||
os.system('copy /Y "'+ path + '\\windows\\kinto-new.ahk" "%userprofile%\\.kinto\\kinto.ahk"')
|
||||
@@ -113,7 +113,7 @@ if len(check_x11) == 0:
|
||||
sys.exit()
|
||||
|
||||
distro = cmdline("awk -F= '$1==\"NAME\" { print $2 ;}' /etc/os-release").replace('"','').strip().split(" ")[0]
|
||||
dename = cmdline("./system-config/dename.sh").replace('"','').strip().split(" ")[0].lower()
|
||||
dename = cmdline("./linux/system-config/dename.sh").replace('"','').strip().split(" ")[0].lower()
|
||||
|
||||
run_pkg = ""
|
||||
|
||||
|
@@ -9,7 +9,7 @@
|
||||
; https://www.autohotkey.com/boards/viewtopic.php?t=9501
|
||||
OnMessage(0x404, "AHK_NOTIFYICON")
|
||||
|
||||
AHK_NOTIFYICON(wParam, lParam)
|
||||
AHK_NOTIFYICON(wParam, lParam)
|
||||
{
|
||||
if (lParam = 0x202) { ; user left-clicked tray icon
|
||||
;ADD ANY SUBROUTINE OR FUNCTION HERE
|
||||
@@ -131,6 +131,7 @@ Exit() {
|
||||
SetTitleMatchMode, 2
|
||||
|
||||
GroupAdd, terminals, ahk_exe ubuntu.exe
|
||||
GroupAdd, terminals, ahk_exe ubuntu2004.exe
|
||||
GroupAdd, terminals, ahk_exe ConEmu.exe
|
||||
GroupAdd, terminals, ahk_exe ConEmu64.exe
|
||||
GroupAdd, terminals, ahk_exe powershell.exe
|
||||
@@ -144,6 +145,7 @@ GroupAdd, terminals, Fluent Terminal ahk_class ApplicationFrameWindow
|
||||
GroupAdd, terminals, ahk_class Console_2_Main
|
||||
|
||||
GroupAdd, posix, ahk_exe ubuntu.exe
|
||||
GroupAdd, posix, ahk_exe ubuntu2004.exe
|
||||
GroupAdd, posix, ahk_exe ConEmu.exe
|
||||
GroupAdd, posix, ahk_exe ConEmu64.exe
|
||||
GroupAdd, posix, ahk_exe Hyper.exe
|
||||
@@ -244,7 +246,7 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
||||
; Tertiary::LWin
|
||||
|
||||
; $LAlt::LCtrl ; CB/IBM
|
||||
; $RAlt::RCtrl ; CB/IBM
|
||||
; $RAlt::RCtrl ; IBM
|
||||
; $RCtrl::RAlt ; CB/IBM
|
||||
; $CapsLock::LWin ; IBM
|
||||
; $LCtrl::LAlt ; CB/IBM
|
||||
@@ -260,8 +262,15 @@ 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
|
||||
; LWin::return ; Chromebook
|
||||
; RWin::return ; Chromebook
|
||||
; RAlt::return ; Chromebook
|
||||
|
||||
; Disable Win-Up/Down - interferes with Sublime text 3 multi-cursors
|
||||
#Down::return
|
||||
#Up::return
|
||||
|
||||
; temporary hack to ensure keys don't get stuck
|
||||
; impacts Alt-Tab fix
|
||||
@@ -270,6 +279,24 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
||||
; $LWin up::Send {LWin up}{LAlt up}{LCtrl up} ; MacModifiers
|
||||
; $LAlt up::Send {LWin up}{CapsLock up}{LAlt up}{LCtrl up} ; CB/IBM
|
||||
|
||||
!Enter::
|
||||
{
|
||||
if (GetKeyState("RAlt", "P")) {
|
||||
Send {Insert}
|
||||
}
|
||||
else{
|
||||
Send {Alt down}{Enter}{Alt up}
|
||||
}
|
||||
Return
|
||||
}
|
||||
|
||||
; Remap Alt+Esc to Break/Pause
|
||||
!Esc::SendInput, {Pause}
|
||||
|
||||
; Go up or down a page
|
||||
$!Down::Send {PgDn};
|
||||
$!Up::Send {PgUp};
|
||||
|
||||
; Close Apps
|
||||
^q::Send !{F4}
|
||||
|
||||
@@ -312,7 +339,8 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
||||
^F3::Send #d
|
||||
|
||||
; Emoji Panel
|
||||
#^Space::Send {LWin down};{LWin up}
|
||||
; #^Space::Send {LWin down};{LWin up} ; Default
|
||||
; !^Space::Send {LWin down};{LWin up} ; CB/IBM
|
||||
|
||||
; Full Screenshot
|
||||
^+3::Send {PrintScreen}
|
||||
@@ -320,11 +348,11 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
||||
; Region Screenshot
|
||||
^+4::Send #+{S}
|
||||
|
||||
; Open File Browser
|
||||
; !^space::Send #e ; Default
|
||||
; #^space::Send #e ; CB/IBM
|
||||
|
||||
; wordwise support
|
||||
$^Left::Send {Home}
|
||||
$^+Left::Send +{Home}
|
||||
$^Right::Send {End}
|
||||
$^+Right::Send +{End}
|
||||
^Up::Send ^{Home}
|
||||
^+Up::Send ^+{Home}
|
||||
^Down::Send ^{End}
|
||||
@@ -335,8 +363,57 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
||||
!+Left::Send ^+{Left}
|
||||
!Right::Send ^{Right}
|
||||
!+Right::Send ^+{Right}
|
||||
$^Left::Send {Home}
|
||||
$^+Left::Send +{Home}
|
||||
$^Right::Send {End}
|
||||
$^+Right::Send +{End}
|
||||
|
||||
; #if GetKeyState("LWin", "P") || GetKeyState("RAlt", "P") ; Chromebook
|
||||
; Space::Send ^{Esc} ; Chromebook
|
||||
; 0::Send #0 ; Chromebook
|
||||
; 1::Send #1 ; Chromebook
|
||||
; 2::Send #2 ; Chromebook
|
||||
; 3::Send #3 ; Chromebook
|
||||
; 4::Send #4 ; Chromebook
|
||||
; 5::Send #5 ; Chromebook
|
||||
; 6::Send #6 ; Chromebook
|
||||
; 7::Send #7 ; Chromebook
|
||||
; 8::Send #8 ; Chromebook
|
||||
; 9::Send #9 ; Chromebook
|
||||
; -::Send #- ; Chromebook
|
||||
; =::Send #= ; Chromebook
|
||||
; `::Send #` ; Chromebook
|
||||
; `;::Send #; ; Chromebook
|
||||
; a::Send #a ; Chromebook
|
||||
; b::Send #b ; Chromebook
|
||||
; c::Send #c ; Chromebook
|
||||
; d::Send #d ; Chromebook
|
||||
; e::Send #e ; Chromebook
|
||||
; f::Send #f ; Chromebook
|
||||
; g::Send #g ; Chromebook
|
||||
; h::Send #h ; Chromebook
|
||||
; i::Send #i ; Chromebook
|
||||
; j::Send #j ; Chromebook
|
||||
; k::Send #k ; Chromebook
|
||||
; l::Send #l ; Chromebook
|
||||
; m::Send #m ; Chromebook
|
||||
; n::Send #n ; Chromebook
|
||||
; o::Send #o ; Chromebook
|
||||
; p::Send #p ; Chromebook
|
||||
; q::Send #q ; Chromebook
|
||||
; r::Send #r ; Chromebook
|
||||
; s::Send #s ; Chromebook
|
||||
; t::Send #t ; Chromebook
|
||||
; u::Send #u ; Chromebook
|
||||
; v::Send #v ; Chromebook
|
||||
; w::Send #w ; Chromebook
|
||||
; x::Send #x ; Chromebook
|
||||
; y::Send #y ; Chromebook
|
||||
; z::Send #z ; Chromebook
|
||||
; #If ; Chromebook
|
||||
|
||||
#IfWinNotActive ahk_group terminals
|
||||
^.::Send {Esc}
|
||||
; emacs style
|
||||
#n::Send {Down}
|
||||
#p::Send {Up}
|
||||
@@ -352,6 +429,8 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
||||
$^Space::Send ^{Esc}
|
||||
|
||||
#IfWinActive ahk_group intellij
|
||||
; $#c::Send ^{c} ; Default - Sigints interrupt
|
||||
; $!c::Send ^{c} ; CB/IBM
|
||||
; General
|
||||
^0::Send !{0} ;Open corresponding tool window
|
||||
^1::Send !{1} ;Open corresponding tool window
|
||||
@@ -478,12 +557,19 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
||||
!+g::send ^+{G} ; View source control
|
||||
; $#c::Send {Ctrl down}c{Ctrl up} ; Default - Sigints interrupt
|
||||
; $!c::Send {Ctrl down}c{Ctrl up} ; CB/IBM
|
||||
; $#x::Send {Ctrl down}x{Ctrl up} ; Default - Sigints interrupt
|
||||
; $!x::Send {Ctrl down}x{Ctrl up} ; CB/IBM
|
||||
|
||||
; #Space::Send ^{Space} ; Default - Basic code completion
|
||||
; !Space::Send ^{Space} ; CB/IBM - Basic code completion
|
||||
#If
|
||||
|
||||
#IfWinActive ahk_exe sublime_text.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 ^{Pause} ; cancel_build
|
||||
; #Space::Send ^{Space} ; Default - Basic code completion
|
||||
; !Space::Send ^{Space} ; CB/IBM - Basic code completion
|
||||
#^Up::send !{O} ; Switch file
|
||||
@@ -495,8 +581,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
|
||||
@@ -505,7 +591,8 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
||||
^!Left::send ^{PgUp} ; prev_view
|
||||
Insert::Return ; cancel toggle_overwrite
|
||||
^!O::send {Insert} ; toggle_overwrite
|
||||
!c::Return ; cancel toggle_case_sensitive
|
||||
; !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
|
||||
@@ -524,7 +611,7 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
||||
^+Down::Return ; cancel swap_line_down
|
||||
#!Down::send ^+{Down} ; swap_line_down
|
||||
^Pause::Return ; cancel cancel_build
|
||||
#c::send ^{Pause} ; cancel_build
|
||||
; #c::send ^{Pause} ; cancel_build
|
||||
F9::Return ; cancel sort_lines case_s false
|
||||
F5::send {F9} ; sort_lines case_s false
|
||||
#F9::Return ; cancel sort_lines case_s true
|
||||
@@ -588,6 +675,7 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
||||
; Sigints - interrupt
|
||||
; $#c::Send {Ctrl down}c{Ctrl up} ; Default
|
||||
; $!c::Send {Ctrl down}c{Ctrl up} ; CB/IBM
|
||||
$^.::Send {Ctrl down}c{Ctrl up}
|
||||
|
||||
; Windows Terminal
|
||||
; Ctrl+Shift+C should do nothing
|
||||
|
0
windows/macbook_winctrl_swap.skl → windows/unused/macbook_winctrl_swap.skl
Executable file → Normal 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
|
||||
@@ -6,7 +6,7 @@
|
||||
typeset -l distro
|
||||
distro=$(awk -F= '$1=="NAME" { gsub("[\",!,_, ]","",$2);print $2 ;}' /etc/os-release)
|
||||
typeset -l dename
|
||||
dename=$(./system-config/dename.sh | cut -d " " -f1)
|
||||
dename=$(./linux/system-config/dename.sh | cut -d " " -f1)
|
||||
|
||||
function uninstall {
|
||||
|
||||
@@ -123,14 +123,14 @@ function budgieUpdate {
|
||||
if [ "$yn" == "y" ]; then
|
||||
budgieVersion="$(/usr/bin/budgie-desktop --version | awk '{ print $2; }' | head -n1)"
|
||||
if [ "$budgieVersion" == "10.5.1" ]; then
|
||||
if ! [ -f ./system-config/budgie-daemon_10.5.1 ]; then
|
||||
wget https://github.com/rbreaves/budgie-desktop/blob/binaries/binaries/budgie-daemon_10.5.1?raw=true -O ./system-config/budgie-daemon_10.5.1
|
||||
if ! [ -f ./linux/system-config/budgie-daemon_10.5.1 ]; then
|
||||
wget https://github.com/rbreaves/budgie-desktop/blob/binaries/binaries/budgie-daemon_10.5.1?raw=true -O ./linux/system-config/budgie-daemon_10.5.1
|
||||
fi
|
||||
bdmd5=$(md5sum /usr/bin/budgie-daemon | awk '{ print $1 }')
|
||||
newbdmd5=$(md5sum ./system-config/budgie-daemon_10.5.1 | awk '{ print $1 }')
|
||||
newbdmd5=$(md5sum ./linux/system-config/budgie-daemon_10.5.1 | awk '{ print $1 }')
|
||||
if [ "$bdmd5" != "$newbdmd5" ]; then
|
||||
cp /usr/bin/budgie-daemon ./budgie-daemon_"$budgieVersion".bak
|
||||
sudo pkill budgie-daemon && sudo cp ./system-config/budgie-daemon_10.5.1 /usr/bin/budgie-daemon
|
||||
sudo pkill budgie-daemon && sudo cp ./linux/system-config/budgie-daemon_10.5.1 /usr/bin/budgie-daemon
|
||||
echo "Updated Budgie to use App Switching Patch"
|
||||
else
|
||||
echo "Budgie-daemon already patched, skipping replacement."
|
||||
@@ -146,11 +146,11 @@ function budgieUpdate {
|
||||
esac
|
||||
done
|
||||
if [ "$yn" == "y" ]; then
|
||||
if ! [ -f ./system-config/budgie-daemon_10.5.1 ]; then
|
||||
wget https://github.com/rbreaves/budgie-desktop/raw/43d3b44243b0bcaee3262a79818024a651475b58/binaries/budgie-daemon_10.5.1 -O ./system-config/budgie-daemon_10.5.1
|
||||
if ! [ -f ./linux/system-config/budgie-daemon_10.5.1 ]; then
|
||||
wget https://github.com/rbreaves/budgie-desktop/raw/43d3b44243b0bcaee3262a79818024a651475b58/binaries/budgie-daemon_10.5.1 -O ./linux/system-config/budgie-daemon_10.5.1
|
||||
fi
|
||||
cp /usr/bin/budgie-daemon ./budgie-daemon_"$budgieVersion".bak
|
||||
sudo pkill budgie-daemon && sudo cp ./system-config/budgie-daemon_10.5.1 /usr/bin/budgie-daemon
|
||||
sudo pkill budgie-daemon && sudo cp ./linux/system-config/budgie-daemon_10.5.1 /usr/bin/budgie-daemon
|
||||
echo "Updated Budgie to use App Switching Patch"
|
||||
fi
|
||||
fi
|
||||
@@ -209,8 +209,6 @@ sudo systemctl disable xkeysnail >/dev/null 2>&1
|
||||
sudo pkill -f bin/xkeysnail >/dev/null 2>&1
|
||||
sudo pkill -f "is-active xkeysnail" >/dev/null 2>&1
|
||||
|
||||
pip3 install pillow
|
||||
|
||||
# Add additional shortcuts if needed, does not modify existing ones
|
||||
|
||||
if [[ $dename == 'gnome' || $dename == 'budgie' ]];then
|
||||
@@ -243,15 +241,15 @@ fi
|
||||
|
||||
if ! [ -x "$(command -v xhost)" ] || ! [ -x "$(command -v gcc)" ]; then
|
||||
if [ "$distro" == "manjarolinux" ]; then
|
||||
sudo ./system-config/unipkg.sh "xorg-xhost gcc"
|
||||
sudo ./linux/system-config/unipkg.sh "xorg-xhost gcc"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ $dename == "kde" ]]; then
|
||||
if [[ $distro == "manjarolinux" ]]; then
|
||||
sudo ./system-config/unipkg.sh vte3
|
||||
sudo ./linux/system-config/unipkg.sh vte3
|
||||
else
|
||||
sudo ./system-config/unipkg.sh libvte-2.91-dev
|
||||
sudo ./linux/system-config/unipkg.sh libvte-2.91-dev
|
||||
fi
|
||||
fi
|
||||
if [[ $distro == 'kdeneon' ]]; then
|
||||
@@ -324,15 +322,15 @@ expsh=" "
|
||||
# sudo systemctl enable xkeysnail >/dev/null 2>&1
|
||||
# if ! [ -x "$(command -v inotifywait)" ]; then
|
||||
# echo "Will need to install inotify-tools to restart key remapper live for config file changes..."
|
||||
# sudo ./system-config/unipkg.sh inotify-tools
|
||||
# sudo ./linux/system-config/unipkg.sh inotify-tools
|
||||
# fi
|
||||
if ! [ -x "$(command -v git)" ]; then
|
||||
echo "Will need to install git..."
|
||||
sudo ./linux/system-config/unipkg.sh git
|
||||
fi
|
||||
if ! [ -x "$(command -v pip3)" ]; then
|
||||
if [ "$distro" == "freebsd" ]; then
|
||||
sudo python3 -m ensurepip
|
||||
else
|
||||
echo "Will need to install python3-pip..."
|
||||
sudo ./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
|
||||
@@ -342,21 +340,23 @@ if ! [ -x "$(command -v python3-config)" ]; then
|
||||
fi
|
||||
if [ "$distro" == "gnome" ] || [ "$distro" == "fedora" ] || [ "$distro" == "debian" ] || [ "$distro" == 'linuxmint' ]; then
|
||||
echo "Will need to install $pydev..."
|
||||
sudo ./system-config/unipkg.sh "$pydev"
|
||||
sudo ./linux/system-config/unipkg.sh "$pydev"
|
||||
fi
|
||||
fi
|
||||
# if [ "$distro" == "ubuntu" ] && [ "$dename" == "gnome" ];then
|
||||
# sudo ./system-config/unipkg.sh gnome-tweaks gnome-shell-extension-appindicator gir1.2-appindicator3-0.1
|
||||
# sudo ./linux/system-config/unipkg.sh gnome-tweaks gnome-shell-extension-appindicator gir1.2-appindicator3-0.1
|
||||
# fi
|
||||
if ! [ -x "$(command -v xhost)" ] || ! [ -x "$(command -v gcc)" ]; then
|
||||
if [ "$distro" == "\"manjaro linux\"" ]; then
|
||||
sudo ./system-config/unipkg.sh "xorg-xhost gcc"
|
||||
sudo ./linux/system-config/unipkg.sh "xorg-xhost gcc"
|
||||
fi
|
||||
fi
|
||||
if [ "$distro" == 'linuxmint' ]; then
|
||||
pip3 install setuptools
|
||||
fi
|
||||
|
||||
pip3 install pillow
|
||||
|
||||
# echo "Transferring files..."
|
||||
mkdir -p ~/.config/kinto
|
||||
|
||||
@@ -367,103 +367,112 @@ mkdir -p ~/.config/kinto
|
||||
|
||||
# KDE startup - xhost fix
|
||||
mkdir -p ~/.config/autostart
|
||||
yes | cp -rf ./xkeysnail-config/xkeysnail.desktop ~/.config/kinto/xkeysnail.desktop
|
||||
yes | cp -rf ./linux/xkeysnail.desktop ~/.config/kinto/xkeysnail.desktop
|
||||
|
||||
# yes | cp -rf ./xkeysnail-config/xkeystart.sh ~/.config/kinto/xkeystart.sh
|
||||
# yes | cp -rf ./linux/xkeystart.sh ~/.config/kinto/xkeystart.sh
|
||||
|
||||
# *** More testing needing, universal way of killing kinto on user log out? ***
|
||||
# yes | sudo cp -rf xkeysnail-config/root_logoff.sh /usr/local/bin/logoff.sh
|
||||
# yes | sudo cp -rf linux/root_logoff.sh /usr/local/bin/logoff.sh
|
||||
# sudo chown root:root /usr/local/bin/logoff.sh
|
||||
# sudo chmod u+rwx /usr/local/bin/logoff.sh
|
||||
# sudo chmod go-w+rx /usr/local/bin/logoff.sh
|
||||
# *** End universal killing of kinto
|
||||
|
||||
# logoff fix - not solid for every os. Prevents missed 1 character input on login
|
||||
# yes | sudo cp -rf xkeysnail-config/gnome_logoff.sh ~/.config/kinto/logoff.sh
|
||||
# yes | sudo cp -rf linux/gnome_logoff.sh ~/.config/kinto/logoff.sh
|
||||
|
||||
echo "$(git describe --tag --abbrev=0 | head -n 1)" "build" "$(git rev-parse --short HEAD)" > ~/.config/kinto/version
|
||||
yes | cp -rf ./xkeysnail-config/kinto.py ./xkeysnail-config/kinto.py.new
|
||||
yes | cp -rf ./xkeysnail-config/limitedadmins ./xkeysnail-config/limitedadmins.new
|
||||
yes | cp -rf ./xkeysnail-config/gui/ ~/.config/kinto/gui
|
||||
yes | cp -nrf ./xkeysnail-config/initkb ~/.config/kinto/initkb
|
||||
yes | cp -rf ./xkeysnail-config/killdups.sh ~/.config/kinto/killdups.sh
|
||||
yes | cp -rf ./xkeysnail-config/trayapps/appindicator/kintotray.py ~/.config/kinto/kintotray.py
|
||||
yes | cp -rf ./xkeysnail-config/trayapps/appindicator/kintotray.desktop ~/.config/kinto/kintotray.desktop
|
||||
yes | cp -rf ./xkeysnail-config/gui/kinto.desktop ./xkeysnail-config/gui/kinto.desktop.new
|
||||
yes | cp -rf ./xkeysnail-config/trayapps/appindicator/icons/kinto-color-16.svg ~/.config/kinto/kinto-color.svg
|
||||
yes | cp -rf ./xkeysnail-config/trayapps/appindicator/icons/kinto-color-16.svg ~/.config/kinto/kinto-color-48.svg
|
||||
yes | cp -rf ./xkeysnail-config/trayapps/appindicator/icons/kinto-invert-16.svg ~/.config/kinto/kinto-invert.svg
|
||||
yes | cp -rf ./xkeysnail-config/trayapps/appindicator/icons/kinto-solid-16.svg ~/.config/kinto/kinto-solid.svg
|
||||
yes | cp -rf ./xkeysnail-config/trayapps/appindicator/icons/kinto.svg ~/.config/kinto/kinto.svg
|
||||
# yes | cp -rf ./system-config/caret_status_xkey.sh ~/.config/kinto/caret_status_xkey.sh
|
||||
yes | cp -rf ./xkeysnail-config/xkeysnail.service ./xkeysnail-config/xkeysnail.service.new
|
||||
# yes | cp -rf ./xkeysnail-config/xkeysnail.timer ~/.config/systemd/user/xkeysnail.timer
|
||||
sed -i "s#{experimental-caret}#$exp#g" ./xkeysnail-config/xkeysnail.service.new
|
||||
if [ "$expsh" != " " ];then
|
||||
sed -i "s#{kill-caret}#/usr/bin/pkill -f $expsh#g" ./xkeysnail-config/xkeysnail.service.new
|
||||
if [ -d "./.git" ]
|
||||
then
|
||||
echo "$(git describe --tag --abbrev=0 | head -n 1)" "build" "$(git rev-parse --short HEAD)" > ~/.config/kinto/version
|
||||
elif [ -f "./dl_version" ]; then
|
||||
cp ./dl_version ~/.config/kinto/version
|
||||
else
|
||||
sed -i "s#{kill-caret}#$expsh#g" ./xkeysnail-config/xkeysnail.service.new
|
||||
# Not a typo - v is built in
|
||||
echo "ersion Unknown" > ~/.config/kinto/version
|
||||
fi
|
||||
sed -i "s/{username}/`whoami`/g" ./xkeysnail-config/xkeysnail.service.new
|
||||
sed -i "s#{homedir}#`echo "$HOME"`#g" ./xkeysnail-config/xkeysnail.service.new
|
||||
|
||||
yes | cp -rf ./linux/kinto.py ./linux/kinto.py.new
|
||||
yes | cp -rf ./linux/limitedadmins ./linux/limitedadmins.new
|
||||
yes | cp -rf ./linux/gui/ ~/.config/kinto/
|
||||
yes | cp -nrf ./linux/initkb ~/.config/kinto/initkb
|
||||
yes | cp -rf ./linux/killdups.sh ~/.config/kinto/killdups.sh
|
||||
yes | cp -rf ./linux/trayapps/appindicator/kintotray.py ~/.config/kinto/kintotray.py
|
||||
yes | cp -rf ./linux/trayapps/appindicator/kintotray.desktop ~/.config/kinto/kintotray.desktop
|
||||
yes | cp -rf ./linux/gui/kinto.desktop ./linux/gui/kinto.desktop.new
|
||||
yes | cp -rf ./linux/trayapps/appindicator/icons/kinto-color-16.svg ~/.config/kinto/kinto-color.svg
|
||||
yes | cp -rf ./linux/trayapps/appindicator/icons/kinto-color-16.svg ~/.config/kinto/kinto-color-48.svg
|
||||
yes | cp -rf ./linux/trayapps/appindicator/icons/kinto-invert-16.svg ~/.config/kinto/kinto-invert.svg
|
||||
yes | cp -rf ./linux/trayapps/appindicator/icons/kinto-solid-16.svg ~/.config/kinto/kinto-solid.svg
|
||||
yes | cp -rf ./linux/trayapps/appindicator/icons/kinto.svg ~/.config/kinto/kinto.svg
|
||||
# yes | cp -rf ./linux/system-config/caret_status_xkey.sh ~/.config/kinto/caret_status_xkey.sh
|
||||
yes | cp -rf ./linux/xkeysnail.service ./linux/xkeysnail.service.new
|
||||
# yes | cp -rf ./linux/xkeysnail.timer ~/.config/systemd/user/xkeysnail.timer
|
||||
sed -i "s#{experimental-caret}#$exp#g" ./linux/xkeysnail.service.new
|
||||
if [ "$expsh" != " " ];then
|
||||
sed -i "s#{kill-caret}#/usr/bin/pkill -f $expsh#g" ./linux/xkeysnail.service.new
|
||||
else
|
||||
sed -i "s#{kill-caret}#$expsh#g" ./linux/xkeysnail.service.new
|
||||
fi
|
||||
sed -i "s/{username}/`whoami`/g" ./linux/xkeysnail.service.new
|
||||
sed -i "s#{homedir}#`echo "$HOME"`#g" ./linux/xkeysnail.service.new
|
||||
sed -i "s#{homedir}#`echo "$HOME"`#g" ~/.config/kinto/kintotray.desktop
|
||||
sed -i "s#{homedir}#`echo "$HOME"`#g" ~/.config/kinto/gui/kinto-gui.py
|
||||
sed -i "s#{homedir}#`echo "$HOME"`#g" ./xkeysnail-config/gui/kinto.desktop.new
|
||||
sudo mv ./xkeysnail-config/gui/kinto.desktop.new /usr/share/applications/kinto.desktop
|
||||
sed -i "s#{xhost}#`\\which xhost`#g" ./xkeysnail-config/xkeysnail.service.new
|
||||
sed -i "s/{username}/`whoami`/g" ./xkeysnail-config/limitedadmins.new
|
||||
sed -i "s#{systemctl}#`\\which systemctl`#g" ./xkeysnail-config/limitedadmins.new
|
||||
sed -i "s#{pkill}#`\\which pkill`#g" ./xkeysnail-config/limitedadmins.new
|
||||
sed -i "s#{homedir}#`echo "$HOME"`#g" ./linux/gui/kinto.desktop.new
|
||||
sudo mv ./linux/gui/kinto.desktop.new /usr/share/applications/kinto.desktop
|
||||
sed -i "s#{xhost}#`\\which xhost`#g" ./linux/xkeysnail.service.new
|
||||
sed -i "s/{username}/`whoami`/g" ./linux/limitedadmins.new
|
||||
sed -i "s#{systemctl}#`\\which systemctl`#g" ./linux/limitedadmins.new
|
||||
sed -i "s#{pkill}#`\\which pkill`#g" ./linux/limitedadmins.new
|
||||
sed -i "s#{systemctl}#`\\which systemctl`#g" ~/.config/kinto/xkeysnail.desktop
|
||||
sed -i "s#{xhost}#`\\which xhost`#g" ~/.config/kinto/xkeysnail.desktop
|
||||
sed -i "s#{homedir}#`echo "$HOME"`#g" ~/.config/kinto/xkeysnail.desktop
|
||||
# sed -i "s#{homedir}#`echo "$HOME"`#g" ~/.config/kinto/prexk.sh
|
||||
sed -i "s/{displayid}/`echo "$DISPLAY"`/g" ./xkeysnail-config/xkeysnail.service.new
|
||||
sed -i "s/{displayid}/`echo "$DISPLAY"`/g" ./linux/xkeysnail.service.new
|
||||
# sed -i "s/{displayid}/`echo "$DISPLAY"`/g" ~/.config/kinto/prexk.sh
|
||||
|
||||
if [[ $dename == "budgie" ]]; then
|
||||
perl -pi -e "s/\s{4}(# )(K.*)(# Default SL - Change workspace.*budgie.*)/ \$2\$3/g" ./xkeysnail-config/kinto.py.new >/dev/null 2>&1
|
||||
perl -pi -e "s/\s{4}(# )(K.*)(# Default SL - Change workspace.*budgie.*)/ \$2\$3/g" ./linux/kinto.py.new >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
if [[ $distro == "popos" ]]; then
|
||||
perl -pi -e "\s{4}(# )(K.*)(# SL - .*popos.*)/ \$2\$3/g" ./xkeysnail-config/kinto.py.new >/dev/null 2>&1
|
||||
perl -pi -e "\s{4}(# )(K.*)(# SL - .*popos.*)/ \$2\$3/g" ./linux/kinto.py.new >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
if [[ $distro == "fedora" ]]; then
|
||||
perl -pi -e "\s{4}(# )(K.*)(# SL - .*fedora.*)/ \$2\$3/g" ./xkeysnail-config/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
|
||||
fi
|
||||
|
||||
if [[ $distro == "elementaryos" ]]; then
|
||||
perl -pi -e "\s{4}(# )(K.*)(# SL - .*eos.*)/ \$2\$3/g" ./xkeysnail-config/kinto.py.new >/dev/null 2>&1
|
||||
perl -pi -e "\s{4}(# )(K.*)(# SL - .*eos.*)/ \$2\$3/g" ./linux/kinto.py.new >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
if [[ "$distro" == "manjaro"* ]]; then
|
||||
perl -pi -e "\s{4}(# )(K.*)(# SL - .*manjaro.*)/ \$2\$3/g" ./xkeysnail-config/kinto.py.new >/dev/null 2>&1
|
||||
perl -pi -e "\s{4}(# )(K.*)(# SL - .*manjaro.*)/ \$2\$3/g" ./linux/kinto.py.new >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
if [[ $dename == "gnome" ]]; then
|
||||
perl -pi -e "\s{4}(# )(K.*)(# SL - .*ubuntu.*)/ \$2\$3/g" ./xkeysnail-config/kinto.py.new >/dev/null 2>&1
|
||||
perl -pi -e "\s{4}(# )(K.*)(# SL - .*ubuntu.*)/ \$2\$3/g" ./linux/kinto.py.new >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
if [[ $dename == "kde" ]]; then
|
||||
echo "Applying Cmd-Space to open App Launcher for KDE..."
|
||||
perl -pi -e "s/(# )(.*)(#.*kde)/\$2\$3/g" ./xkeysnail-config/kinto.py.new >/dev/null 2>&1
|
||||
perl -pi -e "s/(# )(.*)(#.*kde)/\$2\$3/g" ./linux/kinto.py.new >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
if [[ $dename == "xfce" ]]; then
|
||||
perl -pi -e "\s{4}(# )(K.*)(# SL - .*xfce.*)/ \$2\$3/g" ./xkeysnail-config/kinto.py.new >/dev/null 2>&1
|
||||
perl -pi -e "s/(# )(.*)(# xfce4)/\$2\$3/g" ./xkeysnail-config/kinto.py.new
|
||||
perl -pi -e "s/(\w.*)(# Default not-xfce4)/# \$1\$2/g" ./xkeysnail-config/kinto.py.new
|
||||
perl -pi -e "\s{4}(# )(K.*)(# SL - .*xfce.*)/ \$2\$3/g" ./linux/kinto.py.new >/dev/null 2>&1
|
||||
perl -pi -e "s/(# )(.*)(# xfce4)/\$2\$3/g" ./linux/kinto.py.new
|
||||
perl -pi -e "s/(\w.*)(# Default not-xfce4)/# \$1\$2/g" ./linux/kinto.py.new
|
||||
fi
|
||||
|
||||
if [[ $dename == "xfce" ]] && ls /etc/apt/sources.list.d/enso* 1> /dev/null 2>&1; then
|
||||
echo "enso OS detected, applying Cmd-Space for Launchy..."
|
||||
perl -pi -e "s/(K\(\"RC-Space)(.*)(# )(xfce4)/\$3\$1\$2\$3\$4/g" ./xkeysnail-config/kinto.py.new >/dev/null 2>&1
|
||||
perl -pi -e "s/(K\(\"RC-Space)(.*)(# )(xfce4)/\$3\$1\$2\$3\$4/g" ./linux/kinto.py.new >/dev/null 2>&1
|
||||
xfconf-query --channel xfce4-keyboard-shortcuts --property "/commands/custom/<Primary>space" --create --type string --set "launchy"
|
||||
fi
|
||||
|
||||
if ! [[ $1 == "5" || $1 == "uninstall" || $1 == "Uninstall" ]]; then
|
||||
mv ./xkeysnail-config/kinto.py.new ~/.config/kinto/kinto.py
|
||||
mv ./linux/kinto.py.new ~/.config/kinto/kinto.py
|
||||
# if [ "$distro" == "fedora" ];then
|
||||
sudo rm /etc/systemd/system/xkeysnail.service >/dev/null 2>&1
|
||||
if [ -d /usr/lib/systemd/system ];then
|
||||
@@ -474,8 +483,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 pull --depth 10
|
||||
git checkout 51c369084e0045a8410d227bab52411bf84fb65b
|
||||
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"
|
||||
@@ -483,7 +491,7 @@ if ! [[ $1 == "5" || $1 == "uninstall" || $1 == "Uninstall" ]]; then
|
||||
rm -rf ./xkeysnail
|
||||
git clone --depth 10 https://github.com/rbreaves/xkeysnail.git
|
||||
cd xkeysnail
|
||||
git checkout 51c369084e0045a8410d227bab52411bf84fb65b
|
||||
git checkout kinto
|
||||
fi
|
||||
sudo pip3 install --upgrade .
|
||||
cd ..
|
||||
@@ -494,12 +502,12 @@ if ! [[ $1 == "5" || $1 == "uninstall" || $1 == "Uninstall" ]]; then
|
||||
echo -e "Run 'sudo pip3 install --upgrade .' to debug issue"
|
||||
exit 0
|
||||
fi
|
||||
sed -i "s#{xkeysnail}#`which xkeysnail`#g" ./xkeysnail-config/xkeysnail.service.new
|
||||
sed -i "s#{xkeysnail}#`which xkeysnail`#g" ./xkeysnail-config/limitedadmins.new
|
||||
sudo mv ./xkeysnail-config/xkeysnail.service.new "$xkeypath"xkeysnail.service && echo "Service file added to "$xkeypath"xkeysnail.service"
|
||||
sudo chown root:root ./xkeysnail-config/limitedadmins.new
|
||||
sed -i "s#{xkeysnail}#`which xkeysnail`#g" ./linux/xkeysnail.service.new
|
||||
sed -i "s#{xkeysnail}#`which xkeysnail`#g" ./linux/limitedadmins.new
|
||||
sudo mv ./linux/xkeysnail.service.new "$xkeypath"xkeysnail.service && echo "Service file added to "$xkeypath"xkeysnail.service"
|
||||
sudo chown root:root ./linux/limitedadmins.new
|
||||
# Add a check here for xkeysnail path resolving
|
||||
sudo mv ./xkeysnail-config/limitedadmins.new /etc/sudoers.d/limitedadmins
|
||||
sudo mv ./linux/limitedadmins.new /etc/sudoers.d/limitedadmins
|
||||
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..."
|
||||
|