9 Advanced Options

In this category you’ll find various advanced options regarding history, Bash builtin features and BashStyle-NG specific additions.

BashStyle-NG Advanced Settings part 1

Figure 9.1: Advanced Settings

BashStyle-NG Advanced Settings part 2

Figure 9.2: Advanced Settings (continuation)

BashStyle-NG Advanced Settings part 3

Figure 9.3: Advanced Settings (final)

History

Setting: history_timeformat History Timeformat

If this is set it’s value will be used as a timestamp that will be prepend to the output of the history builtin. For a detailed list of possible values refer to man strftime.

Setting: history_control Historycontrol Type

There are different ways of history controlling in Bash. This option lets you choose which one to use.

  • Erasedups: erase duplicated entries from history and only keep the newest one
  • Ignoredups: erase duplicated entries from history and only keep the oldest one
  • Ignorespace: remove any entries with a leading space from history
  • Ignoreboth: Ignoredups and Ignorespace together
Setting: history_blacklist History Blacklist

A colon separated list of commands to not log in the history. A good choice is to add cd and ls to this list, to prevent excessive history spamming. You can also use ?? to blacklist all two characters long commands.

Setting: history_size History Size

This controls how many history entries are saved. 0 for infinite.

Setting: dummy Use standard History

This is a dummy radio button, which does nothing, besides disabling the following two settings.

Setting: history_sync Sync History (Multisession)

This is a BashStyle-NG extension which allows syncronized history over multiple, simultaneously running Bash sessions. It provides custom functions for history controlling as well, so history blacklisting is honoured.

Setting: history_isolate Isolate History per Session

This is a BashStyle-NG extension which allows to isolate the history per session. Inside each session the history works as desired, but is never written to disk.

BashStyle-NG

This Section contains settings for BashStyle-NG specific functions and features.

Setting: dummy Use standard cd

This is a dummy radio button, which does nothing, besides disabling the following two settings.

Setting: use_lscd Use lscd in favour of cd

lscd is a BashStyle-NG builtin function which can be used in favour of the cd Bash builtin. lscd displays the directory content every time you change the directory, while it allows for custom ls options to be used.

Furthermore it features additional options for creating a directory if it does not exist yet, or for logging the directory currently in after each directory change, together with BashStyle-NG’s option to restore the directory in a new shell you’ll then start in the same directory in a newly started session as the one you’re in the current session.

Those additional options are described next.

Setting: use_treecd Use treecd in favour of cd

treecd is a BashStyle-NG builtin function similar to lscd, but using tree instead of ls to display the directory content on each directory change.

Setting: customcd_mkdir lscd/treecd: create directory

When using lscd or treecd in favour of cd, this option controls whether a directory that does currently not exist is created and then changed into.

Note: there’s currently only partial permission check done for this feature, it will work when a directory inside an existing directory is created (1 level deep directory paths), deeper nested directories paths are not supported.

Example: if /home/test exists cd /home/test/newdir will succeed, while cd /home/test/newdir/newsubdir will fail, as /home/test/newdir does not exist.

Setting: restore_directory Restore directory in new shell

This option saves the last directory upon session exit. When a new session is started, Bash will automatically change into it.

Note: if you’ve enabled either lscd or treecd the directory will be additionally saved every time you change the directory, allowing you to start a new shell in your current directory immediately.

Setting: lscd_opts lscd options

Additional options to pass to lscd for displaying the directory content. All ls options are supported, see ls --help for all possibilites.

Setting: treecd_opts treecd options

Additional options to pass to treecd for displaying the directory content. All tree options are supported, see tree --help for all possibilites.

Setting: color_cd_banner lscd/treecd: banner color

When using lscd or treecd in favour of cd, this option controls what color is used for the banner.

Setting: color_cd_empty lscd/treecd: empty color

When using lscd or treecd in favour of cd, this option controls what color is used to indicate a directory is empty.

Setting: color_cd_mkdir lscd/treecd: mkdir color

When using lscd or treecd in favour of cd, this option controls what color is used to indicate the directory was newly created.

Setting: dd_progress Let dd show progressbar

Let the dd utility show a progressbar. This requires coreutils version 8.24 or newer.

Setting: dd_noerror Let dd continue on error

Normally the dd utility will abort on the first occurring error. Enabling this will make dd displaying a warning and continuing it’s work instead.

This is mostly useful when dealing with damaged CDs or thelike.

Setting: user_char User Char

Character to display in prompt for normal users, if unset the default $ is used, this utilizes the showuser utility. You can set it to an emoji, if you use a modern terminal/font.

Setting: root_char Root Char

Character to display in prompt for the root user, if unset the default # is used, this utilizes the showuser utility. You can set it to an emoji, if you use a modern terminal/font.

Setting: welcome_message Welcome Message

A command to execute upon each new Bash session, or a message to print. This can be any command in $PATH. Usually this is something like fortune, if the value is not a command, BashStyle-NG assumes it’s a string and prints it.

Setting: user_birthday User Birthday

User’s birthday in MM-DD format. What’s gonna happen that day, I wonder?

Setting: return_good Return Code: OK

Character to display in prompts that support return code displaying when a command has succesfully finished, default . On the linux console always +.

Setting: return_bad Return Code: Error

Character to display in prompts that support return code displaying when a command has failed to finish successfully, default . On the linux console always -.

Setting: return_bad Return Code: Other

Character to display in prompts that support return code displaying when a command has neither return code 0 (success) or 1 (error), default . On the linux console always /.

Setting: directory_indicator Directory indicator

Normally directories are indicated by /, this allows prompts to use a different character as directory indicator.

Note: this is only a cosmetic change to prompts, where / is replaced by your choice made here, this has no technical impact on how your OS works.

Bash Builtin

Various options for Bash builtin functions and features.

Setting: cdpath CDPATH

A colon separted list of directories to which’s subdirectories cd can directly change into. For example if ~/Desktop/myfancydir exists and ~/Desktop is in $CDPATH, you can enter this directory from anywhere by issuing cd myfancydir.

Setting: completion_ignore Completion Blacklist

A colon separated list of matches to ignore from completion. For example if ~ is in this list, all backup files like myfile~ will not be shown upon filename completion.

Setting: timeout Set Timeout

Bash can automatically log you out after a given time of inactivity (in secons). 0 to disable (default).

Setting: fcedit Editor for fc

Choose the editor for the fc Bash builtin.

Setting: path Path

A colon separated list of directories containing your systems executable files. If empty the system-wide PATH variable will be used.

Setting: path_wd Include PWD in Path

Wether the current directory (.) is appended to the PATH variable.

Setting: glob_ignore Globbing Blacklist

A colon separated list of matches to ignore from globbing results. For example ls -A includes . and .., but if you add both to this blacklist, ls -A will no longer include them. Use with caution.

Setting: glob_sort Change glob sort

The value of this variable specifies the sort criteria and sort order for the results of pathname expansion. New in Bash 5.3.

Setting: exec_ignore Exec Blacklist

Blacklist of binaries not to be executed. For example if *conf is part of Exec Blacklist, executing autoconf or any other matching binary will be prevented.

Misc. Utilities

bat is a drop in replacement for cat, see https://github.com/sharkdp/bat

Setting: use_bat Use bat instead of cat

This will replace cat with bat, or batcat on Debian.

Setting: bat_theme Choose bat Theme

Set the theme to use for bat, see bat --list-themes for a full list and live preview.

Setting: bat_tabwidth Set bat Tab Width

Set the tab width to use for bat.

Setting: curl_useragent Set UserAgent for cURL

Set the UserAgent used by curl.

Setting: curl_useragent_string

The actual value for setting the curl UserAgent.

Setting: wget_useragent Set UserAgent for wget

Set the UserAgent used by wget.

Setting: wget_useragent_string

The actual value for setting the wget UserAgent.

Setting: less_options Set UserAgent for wget

Set default options used by less.

Setting: less_options_string

The actual value for setting the less options.

Setting: grep_options Set Options for grep

Set default options used by grep.

Setting: grep_options_string

The actual value for setting the grep options.