feat(sterni/emacs): use bash login shell for M-x shell

bash (unlike fish) doesn't break down if TERM=dumb which is the only one
I'll be using in emacs (I want to reduce my usage of things depending on
ANSI escape sequence to a minimum, for stuff that needs it I still have
foot). bash is started in login shell mode so /etc/profile is sourced
which will a) enable direnv support and b) setup some tweaks (relating
to PAGER etc.) if TERM=dumb.

Since I use a semicolon for a prompt in (ba)sh, shell-prompt-pattern
needs to be adjusted.

Change-Id: If58b6d1edf1d9ab1883cb51c27729e23d889b16c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5570
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
This commit is contained in:
sterni 2022-05-10 16:13:22 +02:00 committed by clbot
parent 2f74626718
commit 1e3306ab57
2 changed files with 12 additions and 0 deletions

View file

@ -52,6 +52,13 @@ let
languagetool-server-command "${pkgs.languagetool}/share/languagetool-server.jar"
languagetool-java-arguments '("-Dfile.encoding=UTF-8"))
;; use bash instead of fish from SHELL for some things, as it plays
;; nicer with TERM=dumb, as I don't need/want vterm anyways.
;; We want it to source /etc/profile for some extra setup that
;; kicks in if TERM=dumb, meaning we can't use dash/sh mode.
(setq shell-file-name "${pkgs.bash}/bin/bash"
explicit-bash-args '("-l"))
(provide 'nix-inject)
'';
})

View file

@ -114,6 +114,11 @@
;; man
(setq Man-notify-method 'pushy) ; display man page in current window
;; shell
; default, but allows ';' as prompt
(setq shell-prompt-pattern "^[^#$%>;\n]*[#$%>;] *")
;;; Configure packages
(require 'use-package)