]> ruderich.org/simon Gitweb - config/dotfiles.git/commitdiff
screenrc: use full path in "shell" option
authorSimon Ruderich <simon@ruderich.org>
Sun, 17 Apr 2022 17:07:25 +0000 (19:07 +0200)
committerSimon Ruderich <simon@ruderich.org>
Sun, 17 Apr 2022 17:07:25 +0000 (19:07 +0200)
GNU screen uses the value of "shell" for the $SHELL environment
variable. Having a non-absolute path there can cause issues. For
example, `ssh` uses $SHELL when running "Match exec" commands which fail
because it uses access() to verify if the shell exists.

shell/screenrc.in
shell/setup.sh

index 19bd786650db471461ef6badf1361dc4aae4bb44..75f3f2dd22f0a6250c8ada43219026f7e66aeaae 100644 (file)
@@ -35,8 +35,8 @@ defscrollback 50000
 ignorecase on
 
 # I prefer zsh as my shell. GNU screen displays a warning if the shell isn't
-# available.
-shell zsh
+# available. Also used for $SHELL environment variable.
+shell ZSH
 
 # Don't "login" windows (= add them to the utmp database) by default. Not
 # useful for me and the "$" flag clutters the window flags (displayed with
index 084193e467a0f6757f0183eed056136c2bb6c768..edb209ffc0b16444d520259053c82a411936b260 100755 (executable)
@@ -133,6 +133,9 @@ if ! lsblk --merge >/dev/null 2>&1; then
 fi
 
 generate screenrc .in cat
+# Use absolute path for "shell" option for proper $SHELL variable.
+apply_optional_replacement screenrc \
+    zsh ZSH "`installed_path zsh`"
 # As screen-256color is not widely supported use it only on machines where the
 # matching terminfo entry is available. This also requires a terminal emulator
 # which supports 256 colors. Also used for tmux.