This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
.. _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 <https://www.sudo.ws/man/1.8.13/sudoers.man.html>`_ for ``env_keep`` configuration
* `openssh manual <https://linux.die.net/man/1/ssh>`_ 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 <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 ❯