Thanks so far, I did set up does file as you said, but I could never get the termination of the while loop to work.
The only way to cancel was with CTRL + c
Also, I realize running it from the .zshrc
file always needs the terminal.
So I got rid of run it from there, and made a second file call magickeys_off.sh
~/.local/bin/magickeys_off.sh
#!/usr/bin/env bash
# if command -v magickeys >/dev/null 2>&1; then
# if [[ pgrep -x xdotool ]]; then
# if [[ pgrep -x magickeys ]]; then
pkill magickeys.sh || magickeys.sh
# fi
In magickeys_off.sh I try different if else statement to trigger the termination of the while loop, but none of does version works.
I remap the key §
in the keyboard setting to ~/.local/bin/magickeys_off.sh
~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xfce4-keyboard-shortcuts" version="1.0">
<property name="commands" type="empty">
<property name="default" type="empty">
<property name="<Alt>F1" type="empty"/>
<property name="<Alt>F2" type="empty">
<property name="startup-notify" type="empty"/>
</property>
<property name="<Alt>F3" type="empty">
<property name="startup-notify" type="empty"/>
</property>
<property name="<Primary><Alt>Delete" type="empty"/>
<property name="<Primary><Alt>l" type="empty"/>
<property name="<Primary><Alt>t" type="empty"/>
<property name="XF86Display" type="empty"/>
<property name="<Super>p" type="empty"/>
<property name="<Primary>Escape" type="empty"/>
<property name="XF86WWW" type="empty"/>
<property name="HomePage" type="empty"/>
<property name="XF86Mail" type="empty"/>
<property name="Print" type="empty"/>
<property name="<Alt>Print" type="empty"/>
<property name="<Shift>Print" type="empty"/>
<property name="<Super>e" type="empty"/>
<property name="<Primary><Alt>f" type="string" value="nemo"/>
<property name="<Primary><Alt>Escape" type="empty"/>
<property name="<Primary><Shift>Escape" type="empty"/>
<property name="<Super>r" type="empty">
<property name="startup-notify" type="empty"/>
</property>
<property name="<Alt><Super>s" type="empty"/>
<property name="<Control><Alt>Delete" type="empty"/>
<property name="<Control>Escape" type="empty"/>
</property>
<property name="custom" type="empty">
<property name="<Alt>F2" type="string" value="xfce4-appfinder --collapsed">
<property name="startup-notify" type="bool" value="true"/>
</property>
<property name="<Super>r" type="string" value="xfce4-appfinder -c">
<property name="startup-notify" type="bool" value="true"/>
</property>
<property name="XF86WWW" type="string" value="exo-open --launch WebBrowser"/>
<property name="<Alt>F3" type="string" value="xfce4-appfinder">
<property name="startup-notify" type="bool" value="true"/>
</property>
<property name="<Primary>Escape" type="string" value="xfdesktop --menu"/>
<property name="<Primary><Alt>Delete" type="string" value="xfce4-session-logout"/>
<property name="<Primary><Alt>l" type="string" value="xflock4"/>
<property name="<Super>p" type="string" value="xfce4-display-settings --minimal"/>
<property name="<Primary><Shift>Escape" type="string" value="xfce4-taskmanager"/>
<property name="HomePage" type="string" value="exo-open --launch WebBrowser"/>
<property name="XF86Display" type="string" value="xfce4-display-settings --minimal"/>
<property name="override" type="bool" value="true"/>
<property name="<Primary>Print" type="string" value="xfce4-screenshooter -r"/>
<property name="<Primary><Alt>c" type="string" value="catfish"/>
<property name="<Alt>o" type="string" value="deluge-gtk %U"/>
<property name="<Primary><Alt>z" type="string" value="exo-open --launch TerminalEmulator --drop-down --hide-menubar --hide-toolbar --hide-borders --geometry 77x11"/>
<property name="<Alt>b" type="string" value="exo-open --launch WebBrowser"/>
<property name="<Primary><Alt>e" type="string" value="/opt/vscodium-bin/bin/codium --no-sandbox --unity-launch"/>
<property name="<Alt>p" type="string" value="popcorntime"/>
<property name="Print" type="string" value="flameshot gui"/>
<property name="<Alt>k" type="string" value="gapplication launch org.gnome.Maps %U"/>
<property name="<Alt>h" type="string" value="xfce4-terminal --maximize --hide-scrollbar -H -x zsh -c " htop""/>
<property name="Super_L" type="string" value="/usr/bin/xfce4-popup-whiskermenu"/>
<property name="<Alt>j" type="string" value="env DESKTOPINTEGRATION=0 APPIMAGELAUNCHER_DISABLE=1 /usr/bin/joplin-desktop --no-sandbox %U"/>
<property name="<Primary><Alt>t" type="string" value="exo-open --launch TerminalEmulator --hide-menubar --hide-toolbar --geometry 85x18"/>
<property name="<Alt>t" type="string" value="exo-open --launch MailReader"/>
<property name="<Primary><Alt>f" type="string" value="exo-open --launch FileManager"/>
<property name="<Primary><Alt>x" type="string" value="xkill"/>
</property>
</property>
<property name="xfwm4" type="empty">
<property name="default" type="empty">
<property name="<Alt>Insert" type="empty"/>
<property name="Escape" type="empty"/>
<property name="Left" type="empty"/>
<property name="Right" type="empty"/>
<property name="Up" type="empty"/>
<property name="Down" type="empty"/>
<property name="<Alt>Tab" type="empty"/>
<property name="<Alt><Shift>Tab" type="empty"/>
<property name="<Alt>Delete" type="empty"/>
<property name="<Primary><Alt>Down" type="empty"/>
<property name="<Primary><Alt>Left" type="empty"/>
<property name="<Shift><Alt>Page_Down" type="empty"/>
<property name="<Alt>F4" type="empty"/>
<property name="<Alt>F6" type="empty"/>
<property name="<Alt>F7" type="empty"/>
<property name="<Alt>F8" type="empty"/>
<property name="<Alt>F9" type="empty"/>
<property name="<Alt>F10" type="empty"/>
<property name="<Alt>F11" type="empty"/>
<property name="<Alt>F12" type="empty"/>
<property name="<Primary><Shift><Alt>Left" type="empty"/>
<property name="<Primary><Alt>End" type="empty"/>
<property name="<Primary><Alt>Home" type="empty"/>
<property name="<Primary><Shift><Alt>Right" type="empty"/>
<property name="<Primary><Shift><Alt>Up" type="empty"/>
<property name="<Primary><Alt>KP_1" type="empty"/>
<property name="<Primary><Alt>KP_2" type="empty"/>
<property name="<Primary><Alt>KP_3" type="empty"/>
<property name="<Primary><Alt>KP_4" type="empty"/>
<property name="<Primary><Alt>KP_5" type="empty"/>
<property name="<Primary><Alt>KP_6" type="empty"/>
<property name="<Primary><Alt>KP_7" type="empty"/>
<property name="<Primary><Alt>KP_8" type="empty"/>
<property name="<Primary><Alt>KP_9" type="empty"/>
<property name="<Alt>space" type="empty"/>
<property name="<Shift><Alt>Page_Up" type="empty"/>
<property name="<Primary><Alt>Right" type="empty"/>
<property name="<Primary><Alt>d" type="empty"/>
<property name="<Primary><Alt>Up" type="empty"/>
<property name="<Super>Tab" type="empty"/>
<property name="<Primary>F1" type="empty"/>
<property name="<Primary>F2" type="empty"/>
<property name="<Primary>F3" type="empty"/>
<property name="<Primary>F4" type="empty"/>
<property name="<Primary>F5" type="empty"/>
<property name="<Primary>F6" type="empty"/>
<property name="<Primary>F7" type="empty"/>
<property name="<Primary>F8" type="empty"/>
<property name="<Primary>F9" type="empty"/>
<property name="<Primary>F10" type="empty"/>
<property name="<Primary>F11" type="empty"/>
<property name="<Primary>F12" type="empty"/>
<property name="<Super>KP_Left" type="empty"/>
<property name="<Super>KP_Right" type="empty"/>
<property name="<Super>KP_Down" type="empty"/>
<property name="<Super>KP_Up" type="empty"/>
<property name="<Super>KP_Page_Up" type="empty"/>
<property name="<Super>KP_Home" type="empty"/>
<property name="<Super>KP_End" type="empty"/>
<property name="<Super>KP_Next" type="empty"/>
<property name="<Control><Alt>Down" type="empty"/>
<property name="<Control><Alt>Left" type="empty"/>
<property name="<Control><Shift><Alt>Left" type="empty"/>
<property name="<Alt><Control>End" type="empty"/>
<property name="<Alt><Control>Home" type="empty"/>
<property name="<Control><Shift><Alt>Right" type="empty"/>
<property name="<Control><Shift><Alt>Up" type="empty"/>
<property name="<Alt><Control>KP_1" type="empty"/>
<property name="<Alt><Control>KP_2" type="empty"/>
<property name="<Alt><Control>KP_3" type="empty"/>
<property name="<Alt><Control>KP_4" type="empty"/>
<property name="<Alt><Control>KP_5" type="empty"/>
<property name="<Alt><Control>KP_6" type="empty"/>
<property name="<Alt><Control>KP_7" type="empty"/>
<property name="<Alt><Control>KP_8" type="empty"/>
<property name="<Alt><Control>KP_9" type="empty"/>
<property name="<Control><Alt>Right" type="empty"/>
<property name="<Control><Alt>d" type="empty"/>
<property name="<Control><Alt>Up" type="empty"/>
<property name="<Control>F1" type="empty"/>
<property name="<Control>F2" type="empty"/>
<property name="<Control>F3" type="empty"/>
<property name="<Control>F4" type="empty"/>
<property name="<Control>F5" type="empty"/>
<property name="<Control>F6" type="empty"/>
<property name="<Control>F7" type="empty"/>
<property name="<Control>F8" type="empty"/>
<property name="<Control>F9" type="empty"/>
<property name="<Control>F10" type="empty"/>
<property name="<Control>F11" type="empty"/>
<property name="<Control>F12" type="empty"/>
<property name="<Shift><Control><Alt>Up" type="string" value="move_window_up_workspace_key"/>
<property name="<Shift><Control><Alt>Down" type="string" value="move_window_down_workspace_key"/>
<property name="<Shift><Control><Alt>Left" type="string" value="move_window_left_workspace_key"/>
<property name="<Shift><Control><Alt>Right" type="string" value="move_window_right_workspace_key"/>
</property>
<property name="custom" type="empty">
<property name="<Alt><Shift>Tab" type="string" value="cycle_reverse_windows_key"/>
<property name="<Primary><Alt>KP_1" type="string" value="move_window_workspace_1_key"/>
<property name="<Primary><Alt>KP_2" type="string" value="move_window_workspace_2_key"/>
<property name="<Super>Tab" type="string" value="switch_window_key"/>
<property name="<Primary>F1" type="string" value="workspace_1_key"/>
<property name="Right" type="string" value="right_key"/>
<property name="Left" type="string" value="left_key"/>
<property name="<Primary><Alt>d" type="string" value="show_desktop_key"/>
<property name="<Primary><Alt>KP_3" type="string" value="move_window_workspace_3_key"/>
<property name="Up" type="string" value="up_key"/>
<property name="<Primary>F2" type="string" value="workspace_2_key"/>
<property name="Down" type="string" value="down_key"/>
<property name="<Primary><Alt>KP_4" type="string" value="move_window_workspace_4_key"/>
<property name="<Primary>F3" type="string" value="workspace_3_key"/>
<property name="<Shift><Control><Alt>Left" type="string" value="move_window_left_workspace_key"/>
<property name="<Primary><Alt>Down" type="string" value="down_workspace_key"/>
<property name="<Shift><Control><Alt>Right" type="string" value="move_window_right_workspace_key"/>
<property name="<Shift><Control><Alt>Down" type="string" value="move_window_down_workspace_key"/>
<property name="<Primary>F4" type="string" value="workspace_4_key"/>
<property name="<Alt>Insert" type="string" value="add_workspace_key"/>
<property name="Escape" type="string" value="cancel_key"/>
<property name="<Primary><Shift><Alt>Up" type="string" value="move_window_up_key"/>
<property name="<Primary><Alt>Up" type="string" value="up_workspace_key"/>
<property name="<Shift><Control><Alt>Up" type="string" value="move_window_up_workspace_key"/>
<property name="<Alt>F4" type="string" value="close_window_key"/>
<property name="<Alt>Delete" type="string" value="del_workspace_key"/>
<property name="<Alt>Tab" type="string" value="cycle_windows_key"/>
<property name="<Alt>space" type="string" value="popup_menu_key"/>
<property name="override" type="bool" value="true"/>
<property name="<Primary><Alt>Left" type="string" value="prev_workspace_key"/>
<property name="<Primary><Alt>Right" type="string" value="next_workspace_key"/>
<property name="<Primary><Shift><Alt>Left" type="string" value="move_window_prev_workspace_key"/>
<property name="<Primary><Shift><Alt>Right" type="string" value="move_window_next_workspace_key"/>
</property>
</property>
<property name="providers" type="array">
<value type="string" value="xfwm4"/>
<value type="string" value="commands"/>
</property>
</channel>
…And yes, that was a mess…
It leads to an infinity loop with no exit. —> tty and reboot…
so I change up the script with a counter.
~/.local/bin/magickeys.sh
#!/usr/bin/env bash
i=0
# while [ $i -lt 11 ]; do
# xdotool key 1
# xdotool key 2
# xdotool key 3
# xdotool key 4
# sleep 0.4
# i=$((i + 1))
# done
# --------------------------------------
PIDS=$(pidof -o $$ -x poll.sh)
if [ x"$PIDS" != x ]; then
pkill -s SIGTERM "$PIDS"
else
while [ $i -lt 6 ]; do
xdotool key 1
xdotool key 2
xdotool key 3
xdotool key 4
sleep 0.4
i=$((i + 1))
done
fi
So now I can already see a better us case by setting the counter accordantly, if the toggle version does not work.
also sadly I don’t see a different between does two version in magickeys.ch
also a problem apear by chaning the keybind §
in the keyboard setting, leads to a broken w
key. I can’t figure out why.
then I also found autokey
in the AUR
with no broken w
key. but there I also could not figure out a toggle option jet, I guess retCode=() has to set accordendly…
the macro file from autokey is in python.
import time
while True:
retCode = keyboard.wait_for_keypress(
'c', modifiers=['<ctrl>'], timeOut= 0.4)
if retCode:
break
keyboard.send_key("1")
keyboard.send_key("2")
keyboard.send_key("3")
keyboard.send_key("4")
# time.sleep(0.4)