baskerville / sxhkd

Simple X hotkey daemon
BSD 2-Clause "Simplified" License
2.78k stars 139 forks source link

Setting SXHKD_SHELL to bash does not do anything. #306

Open MichaelDuPlessis opened 1 year ago

MichaelDuPlessis commented 1 year ago

I am using the fish shell and I have set the environment variable SXHKD_SHELL to /run/current-system/sw/bin/bash. The path looks strange because I am using NixOS. Even though I have changed the environment variable it seems to still be running commands using fish.

Kzer-Za commented 1 year ago

I confirm it on my system. I have set SXHKD_SHELL to /bin/sh, which on my system is dash. However, sxhkd still tries to execute commands in fish (which is my login shell) and with many of them, of course, fails.

Why does sxhkd even try to execute commands with $SHELL instead of /bin/sh to begin with? It's not so rare for people to use non-POSIX-compliant shell for their login shell, fish is not the only one. OTH, /bin/sh will always link to a POSIX-compliant shell.

So I think that the default behavior should be different and use /bin/sh instead of $SHELL. If it is not possible for backwards-compatibility reason, then sxhkd should at least pay attention to its own variable $SXHKD_SHELL whose whole supposed reason is to prevent this mess.