

First, make sure to include the full path to the script in your config file, like exec /home/your_username/path/start_cmus.sh
or exec ~/path/start_cmus.sh
. If you just use ./start_cmus.sh
, there will be a complaint as it doesn’t know where to look for the script.
Another thing to keep in mind is that swaymsg
is usually the better choice (man sway
) when you want to send commands to sway. You can write your script as swaymsg -t command 'workspace 10; exec wezterm -e cmus'
and then put the whole thing in your config file.
To make debugging easier, I like to add some echo
or notify-send
commands to my script to see if it’s working as expected. I’ll put those in my config file, run it, and check if the debug commands are being executed correctly like echo "first: $first_output" && commands && echo "second: $second_output"
. It’s a simple trick that can save you a lot of time. Also, don’t forget to check out journalctl
for more info.
I’m not entirely sure how it works, but I think it’s read from top to bottom. If you need to control the order of execution, I’d suggest writing shell scripts and adding them to the config file. It should make things easier to manage.