.. _barbuk: BarbUk theme ============ A minimal theme with a clean git prompt Provided Information -------------------- * Current git remote tool logo (support: github, gitlab, bitbucket) * Current path (red when user is root) * Current git info * Last command exit code (only shown when the exit code is greater than 0) * user@hostname for ssh connection Fonts and glyphs ---------------- A font with SCM glyphs is required to display the default tool/host logos. You can use a font from https://www.nerdfonts.com/ or patch your own font with the tool provided by https://github.com/ryanoasis/nerd-fonts. You can also override the default variables if you want to use different glyphs or standard ASCII characters. Default theme glyphs ^^^^^^^^^^^^^^^^^^^^ .. code-block:: bash BARBUK_GITLAB_CHAR=' ' BARBUK_BITBUCKET_CHAR=' ' BARBUK_GITHUB_CHAR=' ' BARBUK_GIT_DEFAULT_CHAR=' ' BARBUK_GIT_BRANCH_ICON='' BARBUK_HG_CHAR='☿ ' BARBUK_SVN_CHAR='⑆ ' BARBUK_EXIT_CODE_ICON=' ' BARBUK_PYTHON_VENV_CHAR=' ' BARBUK_COMMAND_DURATION_ICON='  ' Customize glyphs ^^^^^^^^^^^^^^^^ Define your custom glyphs before sourcing bash-it: .. code-block:: bash export BARBUK_GITHUB_CHAR='•' source "$BASH_IT"/bash_it.sh SSH prompt ---------- Usage ^^^^^ When using a ssh session, the theme will display ``user@hostname``. You can disable this information with ``BARBUK_SSH_INFO``. The hostname is displayed in the FQDN format by default. You can use the short hostname format with ``BARBUK_HOST_INFO``. .. code-block:: bash # short or long export BARBUK_HOST_INFO=short # true or false export BARBUK_SSH_INFO=false source "$BASH_IT"/bash_it.sh Keep theme with sudoer ^^^^^^^^^^^^^^^^^^^^^^ If you want the theme to persist using ``sudo -s`` in a ssh session, you need to configure sudo to keep the ``HOME`` and ``SSH_CONNECTION`` environment variables. ``HOME`` contains the path to the home directory of the current user. Keeping it will allow to use your user dotfiles when elevating privileges. Keeping ``SSH_CONNECTION`` env is necessary for ssh detection in the theme. Please refer to the following documentation for more information: * `sudo manual `_ for ``env_keep`` configuration * `openssh manual `_ for information about ``SSH_CONNECTION`` environment .. code-block:: bash cat << EOF > /etc/sudoers.d/keepenv Defaults env_keep += HOME Defaults env_keep += SSH_CONNECTION EOF chmod 400 /etc/sudoers.d/keepenv Command duration ---------------- See :ref:`Command duration `. Examples -------- Clean ^^^^^ .. code-block:: bash ~ ❯ Git ^^^ .. code-block:: bash  ~/.dotfiles on  master ⤏ origin ↑2 •7 ✗ ❯ Ssh ^^^ .. code-block:: bash user@hostname in  ~/bash-it on  master ✓ ❯ Python venv ^^^^^^^^^^^ .. code-block:: bash   flask ~/test on  master ✓ ❯ Command duration ^^^^^^^^^^^^^^^^ .. code-block:: bash # sleep 3s user@hostname in  ~/bash-it on  master ✓  3.2s ❯