Variable: ghostel-tramp-shells

ghostel-tramp-shells is a customizable variable defined in ghostel-shell.el.

Value

(("ssh" login-shell) ("sshx" login-shell) ("scp" login-shell)
 ("docker" "/bin/sh"))

Documentation

Shell to use for remote TRAMP connections, per method.

Each entry is (TRAMP-METHOD SHELL [FALLBACK [ARG...]]). TRAMP-METHOD is a method string such as "ssh" or "docker", or t as a catch-all default.

SHELL is either a path string like "/bin/bash" or the symbol login-shell to auto-detect the remote user's login shell via getent passwd. FALLBACK, when present, is used when login-shell detection fails.

Any elements after FALLBACK are extra arguments passed to the shell. When none are given, ghostel supplies a type-aware default: recognized shells
(bash, zsh, fish, nushell) are started as login+interactive shells (-l -i)
so they source the user's rc/profile files, mirroring an interactive ssh host login. Unrecognized shells (e.g. /bin/sh) get no args. To override, list the arguments explicitly after FALLBACK, e.g. ("ssh" login-shell nil "-i").

For bash, list long options (e.g. --rcfile) before single-character ones (e.g. -i); bash rejects long options that follow short ones.

Source Code

;; Defined in /nix/store/1252krff0gb2kisjcpp45m50cpdskfrl-emacs-packages-deps/share/emacs/site-lisp/ghostel-shell.el
(defcustom ghostel-tramp-shells
  '(("ssh" login-shell)
    ("sshx" login-shell)
    ("scp" login-shell)
    ("docker" "/bin/sh"))
  "Shell to use for remote TRAMP connections, per method.
Each entry is (TRAMP-METHOD SHELL [FALLBACK [ARG...]]).  TRAMP-METHOD is a
method string such as \"ssh\" or \"docker\", or t as a catch-all default.

SHELL is either a path string like \"/bin/bash\" or the symbol `login-shell'
to auto-detect the remote user's login shell via `getent passwd'.
FALLBACK, when present, is used when login-shell detection fails.

Any elements after FALLBACK are extra arguments passed to the shell.
When none are given, ghostel supplies a type-aware default: recognized shells
\(bash, zsh, fish, nushell) are started as login+interactive shells (`-l -i')
so they source the user's rc/profile files, mirroring an interactive `ssh host'
login.  Unrecognized shells (e.g. /bin/sh) get no args.
To override, list the arguments explicitly after FALLBACK,
e.g. (\"ssh\" login-shell nil \"-i\").

For bash, list long options (e.g. `--rcfile') before single-character
ones (e.g. `-i'); bash rejects long options that follow short ones."
  :type '(alist :key-type (choice string (const t))
                :value-type
                (list (choice :tag "Shell" string (const login-shell))
                      (choice :tag "Fallback" (const :tag "None" nil) string)
                      (repeat :inline t :tag "Extra arguments" string)))
  :group 'ghostel)