mirror of
https://github.com/rbreaves/kinto.git
synced 2025-08-06 19:08:27 +02:00
Compare commits
26 Commits
chrome-fix
...
1.2-11
Author | SHA1 | Date | |
---|---|---|---|
![]() |
39ed3c83f9 | ||
![]() |
bf35285914 | ||
![]() |
7a3d9cbd7c | ||
![]() |
2a920d0622 | ||
![]() |
253b061b12 | ||
![]() |
c8a28fe3e0 | ||
![]() |
9f5ba6e14e | ||
![]() |
f855da301c | ||
![]() |
4e33e5516b | ||
![]() |
5c25cd15cb | ||
![]() |
af4b4ea08e | ||
![]() |
e69e529a18 | ||
![]() |
f717db9aaa | ||
![]() |
353c2c6bb4 | ||
![]() |
dcbf1e8382 | ||
![]() |
9a52bd864a | ||
![]() |
9b87fda382 | ||
![]() |
b3fc4c9202 | ||
![]() |
4858b9cf28 | ||
![]() |
45ad4f3f68 | ||
![]() |
e54dba20a1 | ||
![]() |
1f4b2bb451 | ||
![]() |
9a5b44661c | ||
![]() |
d19e5836a5 | ||
![]() |
5e28015a31 | ||
![]() |
3a59edb51e |
@@ -157,6 +157,10 @@ RDP fully works as long as the entire keyboard input is being captured. RDP had
|
|||||||
|Royal TSX Client| 🍎macOS⇒| ❖Windows | ❌ No|Initial Cmd key press not being passed|
|
|Royal TSX Client| 🍎macOS⇒| ❖Windows | ❌ No|Initial Cmd key press not being passed|
|
||||||
|Official MS RDP| 🍎🤖iOS/Android⇒| ❖Windows | ❌ No|No workaround atm|
|
|Official MS RDP| 🍎🤖iOS/Android⇒| ❖Windows | ❌ No|No workaround atm|
|
||||||
|
|
||||||
|
## How to Remap Windows keyboards for remote access to macOS
|
||||||
|
Quick summary - Swap Alt & Win to conform with Apple keyboard layouts. Sharpkeys for Windows, Setkeycodes for Linux, then install Kinto.sh or change/update the Keyboard Type to Apple in the system tray.
|
||||||
|
https://benreaves.medium.com/macos-to-linux-back-again-c6151200f4dc
|
||||||
|
|
||||||
## FreeRDP for macOS
|
## FreeRDP for macOS
|
||||||
|
|
||||||
1. Install [brew.sh](https://brew.sh).
|
1. Install [brew.sh](https://brew.sh).
|
||||||
|
@@ -44,6 +44,7 @@ codeStr = "|".join(str('^'+x+'$') for x in mscodes)
|
|||||||
remotes = [
|
remotes = [
|
||||||
"Gnome-boxes",
|
"Gnome-boxes",
|
||||||
"org.remmina.Remmina",
|
"org.remmina.Remmina",
|
||||||
|
"remmina",
|
||||||
"qemu-system-.*",
|
"qemu-system-.*",
|
||||||
"Virt-manager",
|
"Virt-manager",
|
||||||
"VirtualBox",
|
"VirtualBox",
|
||||||
@@ -63,6 +64,8 @@ browsers = [
|
|||||||
"Discord",
|
"Discord",
|
||||||
"Epiphany",
|
"Epiphany",
|
||||||
"Firefox",
|
"Firefox",
|
||||||
|
"Firefox Developer Edition",
|
||||||
|
"Waterfox",
|
||||||
"Google-chrome",
|
"Google-chrome",
|
||||||
"microsoft-edge",
|
"microsoft-edge",
|
||||||
"microsoft-edge-dev",
|
"microsoft-edge-dev",
|
||||||
@@ -316,6 +319,10 @@ define_keymap(re.compile("pcmanfm|pcmanfm-qt", re.IGNORECASE),{
|
|||||||
# Keybindings overrides for SpaceFM
|
# Keybindings overrides for SpaceFM
|
||||||
# (overrides some bindings from general file manager code block below)
|
# (overrides some bindings from general file manager code block below)
|
||||||
define_keymap(re.compile("spacefm", re.IGNORECASE),{
|
define_keymap(re.compile("spacefm", re.IGNORECASE),{
|
||||||
|
K("RC-Page_Up"): K("C-Shift-Tab"), # Go to prior tab
|
||||||
|
K("RC-Page_Down"): K("C-Tab"), # Go to next tab
|
||||||
|
K("RC-Shift-Left_Brace"): K("C-Shift-Tab"), # Go to prior tab
|
||||||
|
K("RC-Shift-Right_Brace"): K("C-Tab"), # Go to next tab
|
||||||
K("RC-Shift-N"): [K("RC-F")], # Create new folder is Ctrl+F by default
|
K("RC-Shift-N"): [K("RC-F")], # Create new folder is Ctrl+F by default
|
||||||
K("RC-Backspace"): [K("Delete"),K("Enter")], # Move to Trash (delete, bypass dialog)
|
K("RC-Backspace"): [K("Delete"),K("Enter")], # Move to Trash (delete, bypass dialog)
|
||||||
K("RC-comma"): [K("M-V"),K("p")], # Overrides "Open preferences dialog" shortcut below
|
K("RC-comma"): [K("M-V"),K("p")], # Overrides "Open preferences dialog" shortcut below
|
||||||
@@ -376,6 +383,8 @@ define_keymap(re.compile(filemanagerStr, re.IGNORECASE),{
|
|||||||
# K("RC-Down"): K("M-Down"), # Go Down dir (only works on folders) [not universal]
|
# K("RC-Down"): K("M-Down"), # Go Down dir (only works on folders) [not universal]
|
||||||
# K("RC-Down"): K("RC-O"), # Go Down dir (open folder/file) [not universal]
|
# K("RC-Down"): K("RC-O"), # Go Down dir (open folder/file) [not universal]
|
||||||
K("RC-Down"): K("Enter"), # Go Down dir (open folder/file) [universal]
|
K("RC-Down"): K("Enter"), # Go Down dir (open folder/file) [universal]
|
||||||
|
K("RC-Shift-Left_Brace"): K("C-Page_Up"), # Go to prior tab
|
||||||
|
K("RC-Shift-Right_Brace"): K("C-Page_Down"), # Go to next tab
|
||||||
###########################################################################################################
|
###########################################################################################################
|
||||||
### Open in New Window | Move to Trash | Duplicate file/folder ###
|
### Open in New Window | Move to Trash | Duplicate file/folder ###
|
||||||
###########################################################################################################
|
###########################################################################################################
|
||||||
@@ -394,7 +403,7 @@ define_keymap(re.compile(filemanagerStr, re.IGNORECASE),{
|
|||||||
### END OF FILE MANAGER GROUP OF KEYMAPS ###
|
### END OF FILE MANAGER GROUP OF KEYMAPS ###
|
||||||
############################################
|
############################################
|
||||||
|
|
||||||
# Keybindings for Browsers
|
# Keybindings for General Web Browsers
|
||||||
define_keymap(re.compile(browserStr, re.IGNORECASE),{
|
define_keymap(re.compile(browserStr, re.IGNORECASE),{
|
||||||
K("RC-Q"): K("RC-Q"), # Close all browsers Instances
|
K("RC-Q"): K("RC-Q"), # Close all browsers Instances
|
||||||
K("M-RC-I"): K("RC-Shift-I"), # Dev tools
|
K("M-RC-I"): K("RC-Shift-I"), # Dev tools
|
||||||
@@ -408,9 +417,20 @@ define_keymap(re.compile(browserStr, re.IGNORECASE),{
|
|||||||
K("RC-Key_7"): K("M-Key_7"),
|
K("RC-Key_7"): K("M-Key_7"),
|
||||||
K("RC-Key_8"): K("M-Key_8"),
|
K("RC-Key_8"): K("M-Key_8"),
|
||||||
K("RC-Key_9"): K("M-Key_9"), # Jump to last tab
|
K("RC-Key_9"): K("M-Key_9"), # Jump to last tab
|
||||||
K("C-Left_Brace"): K("C-Page_Up"),
|
# Enable Cmd+Shift+Braces for tab navigation
|
||||||
K("C-Right_Brace"): K("C-Page_Down"),
|
K("RC-Shift-Left_Brace"): K("C-Page_Up"), # Go to prior tab
|
||||||
})
|
K("RC-Shift-Right_Brace"): K("C-Page_Down"), # Go to next tab
|
||||||
|
# Enable Cmd+Option+Left/Right for tab navigation
|
||||||
|
K("RC-M-Left"): K("C-Page_Up"), # Go to prior tab
|
||||||
|
K("RC-M-Right"): K("C-Page_Down"), # Go to next tab
|
||||||
|
# Enable Ctrl+PgUp/PgDn for tab navigation
|
||||||
|
K("Super-Page_Up"): K("C-Page_Up"), # Go to prior tab
|
||||||
|
K("Super-Page_Down"): K("C-Page_Down"), # Go to next tab
|
||||||
|
# Use Cmd+Braces keys for tab navigation instead of page navigation
|
||||||
|
# K("C-Left_Brace"): K("C-Page_Up"),
|
||||||
|
# K("C-Right_Brace"): K("C-Page_Down"),
|
||||||
|
}, "General Web Browsers")
|
||||||
|
|
||||||
|
|
||||||
# Open preferences in browsers
|
# Open preferences in browsers
|
||||||
define_keymap(re.compile("Firefox", re.IGNORECASE),{
|
define_keymap(re.compile("Firefox", re.IGNORECASE),{
|
||||||
@@ -419,6 +439,7 @@ define_keymap(re.compile("Firefox", re.IGNORECASE),{
|
|||||||
K("Shift-SEMICOLON"),K("p"),K("r"),K("e"),K("f"),
|
K("Shift-SEMICOLON"),K("p"),K("r"),K("e"),K("f"),
|
||||||
K("e"),K("r"),K("e"),K("n"),K("c"),K("e"),K("s"),K("Enter")
|
K("e"),K("r"),K("e"),K("n"),K("c"),K("e"),K("s"),K("Enter")
|
||||||
],
|
],
|
||||||
|
K("RC-Shift-N"): K("RC-Shift-P"), # Open private window with Ctrl+Shift+N like other browsers
|
||||||
})
|
})
|
||||||
define_keymap(re.compile(chromeStr, re.IGNORECASE),{
|
define_keymap(re.compile(chromeStr, re.IGNORECASE),{
|
||||||
K("C-comma"): [K("M-e"), K("s"),K("Enter")],
|
K("C-comma"): [K("M-e"), K("s"),K("Enter")],
|
||||||
@@ -437,6 +458,7 @@ define_keymap(lambda wm_class: wm_class.casefold() not in remotes,{
|
|||||||
K("RC-Space"): K("Alt-F1"), # Default SL - Launch Application Menu (gnome/kde)
|
K("RC-Space"): K("Alt-F1"), # Default SL - Launch Application Menu (gnome/kde)
|
||||||
K("RC-F3"):K("Super-d"), # Default SL - Show Desktop (gnome/kde,eos)
|
K("RC-F3"):K("Super-d"), # Default SL - Show Desktop (gnome/kde,eos)
|
||||||
K("RC-Super-f"):K("M-F10"), # Default SL - Maximize app (gnome/kde)
|
K("RC-Super-f"):K("M-F10"), # Default SL - Maximize app (gnome/kde)
|
||||||
|
# K("RC-Super-f"): K("Super-Page_Up"), # SL - Toggle maximized window state (kde_neon)
|
||||||
# K("Super-Right"):K("C-M-Right"), # Default SL - Change workspace (budgie)
|
# K("Super-Right"):K("C-M-Right"), # Default SL - Change workspace (budgie)
|
||||||
# K("Super-Left"):K("C-M-Left"), # Default SL - Change workspace (budgie)
|
# K("Super-Left"):K("C-M-Left"), # Default SL - Change workspace (budgie)
|
||||||
K("RC-Q"): K("M-F4"), # Default SL - not-popos
|
K("RC-Q"): K("M-F4"), # Default SL - not-popos
|
||||||
|
@@ -11,3 +11,4 @@ Defaults!/etc/init.d/kinto setenv,env_reset,env_delete+=PATH,env_delete+=LD_PREL
|
|||||||
%{username} ALL=NOPASSWD: {pkill} -f bin/xkeysnail
|
%{username} ALL=NOPASSWD: {pkill} -f bin/xkeysnail
|
||||||
%{username} ALL=NOPASSWD: {xkeysnail} *
|
%{username} ALL=NOPASSWD: {xkeysnail} *
|
||||||
%{username} ALL=NOPASSWD: {systemctl} is-active --quiet xkeysnail
|
%{username} ALL=NOPASSWD: {systemctl} is-active --quiet xkeysnail
|
||||||
|
%{username} ALL=NOPASSWD: /usr/lib/systemd/system/xkeysnail.service
|
||||||
|
@@ -4,8 +4,8 @@ Description=xkeysnail
|
|||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
KillMode=process
|
KillMode=process
|
||||||
ExecStart=/usr/bin/sudo /bin/bash -c '/usr/bin/xhost +SI:localuser:root && {homedir}/.config/kinto/killdups.sh && {xkeysnail} --quiet --watch {homedir}/.config/kinto/kinto.py'
|
ExecStart={sudo}/bin/bash -c '/usr/bin/xhost +SI:localuser:root && {homedir}/.config/kinto/killdups.sh && {xkeysnail} --quiet --watch {homedir}/.config/kinto/kinto.py'
|
||||||
ExecStop=/usr/bin/sudo /bin/bash -c '/usr/bin/sudo pkill -f bin/xkeysnail && exit 0'
|
ExecStop={sudo}/bin/bash -c '{sudo}pkill -f bin/xkeysnail && exit 0'
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
RestartSec=3
|
RestartSec=3
|
||||||
Environment=DISPLAY={displayid}
|
Environment=DISPLAY={displayid}
|
||||||
|
@@ -176,6 +176,7 @@ GroupAdd, remotes, ahk_exe VirtualBoxVM.exe
|
|||||||
GroupAdd, remotes, ahk_exe mstsc.exe
|
GroupAdd, remotes, ahk_exe mstsc.exe
|
||||||
GroupAdd, remotes, ahk_exe msrdc.exe
|
GroupAdd, remotes, ahk_exe msrdc.exe
|
||||||
GroupAdd, remotes, ahk_exe nxplayer.bin
|
GroupAdd, remotes, ahk_exe nxplayer.bin
|
||||||
|
GroupAdd, remotes, ahk_exe vmconnect.exe
|
||||||
|
|
||||||
; Disabled Edge for now - no ability to close all instances
|
; Disabled Edge for now - no ability to close all instances
|
||||||
; GroupAdd, browsers, Microsoft Edge ahk_class ApplicationFrameWindow
|
; GroupAdd, browsers, Microsoft Edge ahk_class ApplicationFrameWindow
|
||||||
@@ -308,8 +309,10 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
|||||||
!Esc::SendInput, {Pause}
|
!Esc::SendInput, {Pause}
|
||||||
|
|
||||||
; Go up or down a page
|
; Go up or down a page
|
||||||
$!Down::Send {PgDn};
|
#IfWinNotActive ahk_group editors
|
||||||
$!Up::Send {PgUp};
|
$!Down::Send {PgDn}
|
||||||
|
$!Up::Send {PgUp}
|
||||||
|
#If
|
||||||
|
|
||||||
; Close Apps
|
; Close Apps
|
||||||
^q::Send !{F4}
|
^q::Send !{F4}
|
||||||
@@ -536,6 +539,13 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
|||||||
|
|
||||||
; Close all browsers
|
; Close all browsers
|
||||||
#IfWinActive ahk_group browsers
|
#IfWinActive ahk_group browsers
|
||||||
|
;Tab Navigation
|
||||||
|
^+[::send ^{PgUp}
|
||||||
|
^+]::send ^{PgDn}
|
||||||
|
^!Left::send ^{PgUp}
|
||||||
|
^!Right::send ^{PgDn}
|
||||||
|
#Left::send ^{PgUp}
|
||||||
|
#Right::send ^{PgDn}
|
||||||
^q::send {Alt Down}f{Alt Up}x ; exit all windows
|
^q::send {Alt Down}f{Alt Up}x ; exit all windows
|
||||||
; Dev Tools
|
; Dev Tools
|
||||||
!^i::send {Ctrl Down}{Shift Down}i{Shift Up}{Ctrl Up}
|
!^i::send {Ctrl Down}{Shift Down}i{Shift Up}{Ctrl Up}
|
||||||
@@ -543,6 +553,7 @@ GroupAdd, intellij, ahk_exe idea64.exe
|
|||||||
; Open preferences
|
; Open preferences
|
||||||
#IfWinActive ahk_exe firefox.exe
|
#IfWinActive ahk_exe firefox.exe
|
||||||
^,::send, {Ctrl Down}t{Ctrl Up}about:preferences{Enter}
|
^,::send, {Ctrl Down}t{Ctrl Up}about:preferences{Enter}
|
||||||
|
^+n::send ^+p
|
||||||
#If
|
#If
|
||||||
#IfWinActive ahk_exe chrome.exe
|
#IfWinActive ahk_exe chrome.exe
|
||||||
^,::send {Alt Down}e{Alt Up}s{Enter}
|
^,::send {Alt Down}e{Alt Up}s{Enter}
|
||||||
@@ -833,4 +844,4 @@ Send {RWin up}
|
|||||||
Send {LWin up}
|
Send {LWin up}
|
||||||
Send {RShift up}
|
Send {RShift up}
|
||||||
Send {LShift up}
|
Send {LShift up}
|
||||||
return
|
return
|
||||||
|
@@ -329,25 +329,6 @@ if [[ $distro == 'kdeneon' ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $distro == 'fedora' ]]; then
|
if [[ $distro == 'fedora' ]]; then
|
||||||
echo "Checking SELinux status..."
|
|
||||||
if [[ $(perl -ne 'print if /^SELINUX=enforcing/' /etc/selinux/config | wc -l) != 0 ]]; then
|
|
||||||
while true; do
|
|
||||||
read -rep $'\nWould you like to update your SELinux state from enforcing to permissive? (y/n)\n' yn
|
|
||||||
case $yn in
|
|
||||||
[Yy]* ) setSE='yes'; break;;
|
|
||||||
[Nn]* ) exp='no'; expsh=" " break;;
|
|
||||||
# * ) echo "Please answer yes or no.";;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
if [[ $yn == "yes" ]]; then
|
|
||||||
sed -i "s/SELINUX=enforcing/SELINUX=permissive/g" /etc/selinux/config
|
|
||||||
echo "/etc/selinux/config has been updated. Please reboot your computer before continuing."
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "SELinux state should be ok for Kinto to install"
|
|
||||||
fi
|
|
||||||
if [[ $(gsettings get org.gnome.desktop.wm.keybindings show-desktop | grep "\[\]" | wc -l) == 1 ]];then
|
if [[ $(gsettings get org.gnome.desktop.wm.keybindings show-desktop | grep "\[\]" | wc -l) == 1 ]];then
|
||||||
gsettings set org.gnome.desktop.wm.keybindings show-desktop "['<Super>d']"
|
gsettings set org.gnome.desktop.wm.keybindings show-desktop "['<Super>d']"
|
||||||
else
|
else
|
||||||
@@ -520,6 +501,11 @@ fi
|
|||||||
|
|
||||||
if [[ $distro == "fedora" ]]; then
|
if [[ $distro == "fedora" ]]; then
|
||||||
perl -pi -e "\s{4}(# )(K.*)(# SL - .*fedora.*)/ \$2\$3/g" ./linux/kinto.py.new >/dev/null 2>&1
|
perl -pi -e "\s{4}(# )(K.*)(# SL - .*fedora.*)/ \$2\$3/g" ./linux/kinto.py.new >/dev/null 2>&1
|
||||||
|
sed -i "s#{sudo}##g" ./linux/xkeysnail.service.new
|
||||||
|
selinuxuser=system_u
|
||||||
|
selinuxtype=systemd_unit_file_t
|
||||||
|
else
|
||||||
|
sed -i "s#{sudo}#`\\which sudo` #g" ./linux/xkeysnail.service.new
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $distro == "elementaryos" ]]; then
|
if [[ $distro == "elementaryos" ]]; then
|
||||||
@@ -590,6 +576,10 @@ if ! [[ $1 == "5" || $1 == "uninstall" || $1 == "Uninstall" ]]; then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
sed -i "s#{xkeysnail}#`which xkeysnail`#g" ./linux/limitedadmins.new
|
sed -i "s#{xkeysnail}#`which xkeysnail`#g" ./linux/limitedadmins.new
|
||||||
|
if [[ $distro == "fedora" ]]; then
|
||||||
|
echo "Changing SELinux context"
|
||||||
|
sudo chcon -v --user=$selinuxuser --type=$selinuxtype "$xkeypath"xkeysnail.service
|
||||||
|
fi
|
||||||
sudo chown root:root ./linux/limitedadmins.new
|
sudo chown root:root ./linux/limitedadmins.new
|
||||||
# Add a check here for xkeysnail path resolving
|
# Add a check here for xkeysnail path resolving
|
||||||
sudo mv ./linux/limitedadmins.new /etc/sudoers.d/limitedadmins
|
sudo mv ./linux/limitedadmins.new /etc/sudoers.d/limitedadmins
|
||||||
@@ -598,10 +588,19 @@ if ! [[ $1 == "5" || $1 == "uninstall" || $1 == "Uninstall" ]]; then
|
|||||||
sed -i "s#{xkeysnail}#`which xkeysnail`#g" ./linux/xkeysnail.service.new
|
sed -i "s#{xkeysnail}#`which xkeysnail`#g" ./linux/xkeysnail.service.new
|
||||||
sudo mv ./linux/xkeysnail.service.new "$xkeypath"xkeysnail.service && echo "Service file added to "$xkeypath"xkeysnail.service"
|
sudo mv ./linux/xkeysnail.service.new "$xkeypath"xkeysnail.service && echo "Service file added to "$xkeypath"xkeysnail.service"
|
||||||
|
|
||||||
sudo chown -R root:root "$xkeypath"xkeysnail.service && echo "Ownership set for root..." || echo "Failed to set ownership..."
|
if [[ $distro == "fedora" ]]; then
|
||||||
sudo chmod 644 "$xkeypath"xkeysnail.service && echo "Permissions set to 644..." || echo "Failed to set permissions..."
|
sudo cp "$xkeypath"xkeysnail.service /etc/systemd/system/xkeysnail.service && echo "Copied service file to system..." || echo "Failed to create copy..."
|
||||||
sudo ln -s "$xkeypath"xkeysnail.service /etc/systemd/system/xkeysnail.service && echo "Created soft symlink..." || echo "Failed to create soft symlink..."
|
sudo cp "$xkeypath"xkeysnail.service /etc/systemd/system/graphical.target.wants/xkeysnail.service && echo "Copied service file to system for graphical target..." || echo "Failed to create copy for graphical target..."
|
||||||
sudo ln -s "$xkeypath"xkeysnail.service /etc/systemd/system/graphical.target.wants/xkeysnail.service && echo "Created soft symlink for graphical target..." || echo "Failed to create soft symlink for graphical target..."
|
sudo chown -R root:root /etc/systemd/system/xkeysnail.service && echo "Ownership set for root..." || echo "Failed to set ownership..."
|
||||||
|
sudo chown -R root:root /etc/systemd/system/graphical.target.wants/xkeysnail.service && echo "Ownership set for root..." || echo "Failed to set ownership..."
|
||||||
|
sudo chmod 644 /etc/systemd/system/xkeysnail.service && echo "Permissions set to 644..." || echo "Failed to set permissions..."
|
||||||
|
sudo chmod 644 /etc/systemd/system/graphical.target.wants/xkeysnail.service && echo "Permissions set to 644..." || echo "Failed to set permissions..."
|
||||||
|
else
|
||||||
|
sudo chown -R root:root "$xkeypath"xkeysnail.service && echo "Ownership set for root..." || echo "Failed to set ownership..."
|
||||||
|
sudo chmod 644 "$xkeypath"xkeysnail.service && echo "Permissions set to 644..." || echo "Failed to set permissions..."
|
||||||
|
sudo ln -s "$xkeypath"xkeysnail.service /etc/systemd/system/xkeysnail.service && echo "Created soft symlink..." || echo "Failed to create soft symlink..."
|
||||||
|
sudo ln -s "$xkeypath"xkeysnail.service /etc/systemd/system/graphical.target.wants/xkeysnail.service && echo "Created soft symlink for graphical target..." || echo "Failed to create soft symlink for graphical target..."
|
||||||
|
fi
|
||||||
sudo systemctl daemon-reload
|
sudo systemctl daemon-reload
|
||||||
sudo systemctl disable xkeysnail
|
sudo systemctl disable xkeysnail
|
||||||
sudo systemctl stop xkeysnail
|
sudo systemctl stop xkeysnail
|
||||||
|
Reference in New Issue
Block a user