mirror of
https://github.com/fish-shell/fish-shell.git
synced 2026-04-23 02:41:14 -03:00
Add support for the SHELL_PROMPT_PREFIX, SHELL_PROMPT_SUFFIX, and SHELL_WELCOME environment variables as standardized by systemd v257. SHELL_PROMPT_PREFIX and SHELL_PROMPT_SUFFIX are automatically prepended and appended to the left prompt at the shell level, so all prompts (default, custom, and sample) pick them up without modification. SHELL_WELCOME is displayed after the greeting when an interactive shell starts. These variables provide a standard interface for tools like systemd's run0 to communicate session context to the shell. Fixes https://github.com/fish-shell/fish-shell/issues/10924 Closes #12570
46 lines
1.3 KiB
ReStructuredText
46 lines
1.3 KiB
ReStructuredText
fish_greeting - display a welcome message in interactive shells
|
|
===============================================================
|
|
|
|
Synopsis
|
|
--------
|
|
|
|
.. synopsis::
|
|
|
|
fish_greeting
|
|
|
|
::
|
|
|
|
function fish_greeting
|
|
...
|
|
end
|
|
|
|
|
|
Description
|
|
-----------
|
|
|
|
When an interactive fish starts, it executes fish_greeting and displays its output.
|
|
|
|
The default fish_greeting is a function that prints a variable of the same name (``$fish_greeting``), so you can also just change that if you just want to change the text.
|
|
|
|
If :envvar:`SHELL_WELCOME` is set, it is displayed after the greeting. This is a standard environment variable that may be set by tools like systemd's ``run0`` to display session information.
|
|
|
|
While you could also just put ``echo`` calls into config.fish, fish_greeting takes care of only being used in interactive shells, so it won't be used e.g. with ``scp`` (which executes a shell), which prevents some errors.
|
|
|
|
Example
|
|
-------
|
|
|
|
To just empty the text, with the default greeting function::
|
|
|
|
set -U fish_greeting
|
|
|
|
or ``set -g fish_greeting`` in :ref:`config.fish <configuration>`.
|
|
|
|
A simple greeting:
|
|
|
|
::
|
|
|
|
function fish_greeting
|
|
echo Hello friend!
|
|
echo The time is (set_color yellow)(date +%T)(set_color --reset) and this machine is called $hostname
|
|
end
|