BashStyle-NG 11.1   Recently updated !


utilities-terminalBashStyle-NG is a graphical tool and function chain that lets you do more with GNU Bash


Introduction

BashStyle-NG is a graphical utility and toolchain for changing the look, feel, and behavior of Bash, Readline, Vim, Nano, and Git. It acts as a central hub to add advanced features, configuration and visual enhancements into standard command-line tools, making the terminal environment more user-friendly and powerful.

BashStyle-NG main window

Figure 2.1: BashStyle-NG main menu

The following is a shortened summary of possibilities, see the documentation for more.

Prompt Customization

  • Prompt Styles: Includes 12 pre-defined prompt designs which can be randomized per session or customized.
  • Custom Prompt Builder: A modular prompt builder inside the GUI allows users to create their own custom prompt layouts, or modify the predefined styles.
  • Color Schemes: Full control over text and prompt colors, with optional monochrome modes.

Utility Enhancements

  • Colored Output: Allows colored rendering for traditional manpages, ls, gcc error messages and grep matches.
  • Directory Tracking: Features a custom lscd/treecd command that remembers the last visited directory, auto-restores directory on new session, and prints directory contents immediately after navigating.
  • Git Status Integration: dynamically displays the current Git branch, revision, action, and more straight in the prompt.
  • History: customize how many commands the shell remembers, ignores duplicate entries, and controls how history is written to disk. This includes the options for history isolation – meaning that terminal sessions have no outside visible history. Or the opposite history sync, when active, reloading the prompt (pressing enter), will load any new history created from other sessions.

Configuration Management

  • BashStyle-NG handles it’s own configuration through ConfigObj, all Text and Number settings have two icons. The left icon (back arrow) reverts to previously saved user configuration if a setting was changed in the running BashStyle-NG instance. The right icon (broom/trash) reverts to the factory default setting, which is either BashStyle-NG default setting or a custom vendor configuration, which can be provided by package maintainers.
  • BashStyle-NG additionally has global revert buttons at the top, which act the same way, but for all settings at once, to keep the UI in sync it is restarted after the configuration was reverted to previous saved user state or factory default settings.
 
Equinox prompt style in Konsole

Figure 2.2: Equinox prompt style in Konsole

Git repository access

You can check the latest version via GitLab:

https://gitlab.com/Nanolx/bashstyle-ng

Downloads

Translations

  • Existing Translations [Translator]
    • de (German) [Christopher Roy Bratušek]

Submit Bugs for Feature Requests

Visit https://gitlab.com/Nanolx/bashstyle-ng/issues for reporting bugs.

Please make sure that you got the latest stable version of BashStyle-NG. If you got an Feature Request or a new Idea for BashStyle-NG, don’t hesitate to post it! If you can provide patches, then that’s even better.


 

11.1 (20260626) "Elysium"
=========================

   • General Changes

        − On Startup BashStyle-NG now checks whether the user uses a Gtk
          theme containing ‘adwaita’ in it's name, if so the UI does
          dynamically apply Adwaita over the fallback Gtk4 theme.  This
          does not change any UI elements to Adwaita widgets.

          The purpose is to let the user decide whether to use Adwaita
          theme, default Gtk4 theme or any other Gtk4 theme (like
          Breeze).

          The Adwaita gi is thus only checked for as optional by
          ‘configure’, because it's up to the user whether BashStyle-NG
          loads Adwaita or not.

          Regardless BashStyle-NG checks whether we are running from
          KDE, if so:

             + Force use KDE color scheme, instead of Adwaita color
               scheme

             + Force dark or light mode, following KDE

        − The Documentation was greatly improved, the name for the
          settings were added, addtionally to their visible name in the
          UI and description.  Additionally screenshots are now
          provided.

   • Fixes

        − #288: Setting ‘foldmethod’ for vim was broken

        − #289: Allow setting Bash ‘TMOUT’ to 0 instead of 60 as
          minimum, 0 equals to disabled (regression from 11.0)

        − #290: Setting welcome message wasn't working if the welcome
          message was set to a command, BashStyle-NG now checks whether
          it's set to a command or message and acts accordingly, so
          either way is working

        − #291: Load ‘~/.bashstyle.custom’ earlier, so that when hooking
          into prompts and a color was set via the hook-variable it's
          actually used

        − #292: The ‘deadlink’ utility wasn't working anymore, fixed

        − #293: Keybindings GridView no longer compares lower case
          values, it now compares as-is, allowing C-t aswell als C-T as
          keybinding

        − #294: When Readline shows the edit mode in the prompt,
          multiline prompts would look "broken" as the first line starts
          directly from the left, while the second line start one
          character off as readline prints the edit mode character, this
          applies to almost all prompt styles

        − #295: Numerous fixes for the Power User prompt style, it has
          been heavily outdated, but properly works again

        − #296: Power User prompt uses ‘grep’, but if the user has set
          grep options like ‘-H’ parsing the output was broken, this is
          fixed by calling ‘grep’ directly, discarding any extra options
          or aliases

        − #297: In the Ayoli prompt style the calculation of the
          fillsize was off by two, thus the last two characters of the
          first prompt line were wrapped to the second line, leading the
          second prompt line ending up in the third line, the fillsize
          is now properly calculated

        − #298: The prompt hook ‘DIRKS_2()’ for the Dirks prompt style
          was not properly declared, when the user hasn't set the hook
          themselves, leading to an error message everytime ‘PS1’ was
          called, this is fixed now

        − #299: ‘systemkit dirsize’ would fail if no directory was
          provided, fall back to the current directory

        − #300: Add back root check for ‘make’, this time without
          breaking building Debian packages

        − #301: When the current device is not a laptop or has no
          support for reading battery values from ‘acpi’, then
          ‘systemkit battery’ will now properly output the string ‘|000’
          rather than throwing errors, to prevent prompts from being
          malformed

        − #302: Updated ‘systemkit externalip’ to work again

        − #303: Fix a silly typo preventing BashStyle-NG from showing
          the current position in GNU Nano, if it was enabled by the
          user

   • New Features

        − Until version 11.0 BashStyle-NG saved the configuration when
          closing the application, now every widgets triggers a write,
          when changing or reverting a setting immediately - though the
          configuration is still saved on close

        − Allow setting prompt style to ‘None’, which will prevent
          BashStyle-NG from setting ‘PROMPT_COMMAND’ or ‘PS1’ entirely,
          useful if you want to use it in conjunction with another tool,
          like ‘Liquid Prompt’ or whatever

        − Allow setting a custom character for root user in the prompt,
          this allows to show something different than ‘#’ for root,
          this is done through ‘showuser’

        − ‘Equinox’ prompt style now allows to show information of a git
          repo if the user is inside it's root directory, using ‘gitkit’
          - the prompt then shows another "arm" which displays current
          branch, current revision and current action, if there's not
          enough width, the branch will be cut to retain proper prompt
          layout

        − The ‘xmlpager’ utility now prints the xml header blue,
          comments yellow and attribute values green, tag values still
          red, the rest of the xml remains white

        − The ‘bat’ drop-in replacement for ‘cat’ now ships more themes,
          all of which are now chooseable from BashStyle-NG

        − BashStyle-NG now allows to use use ‘vivid’ for generating
          colorschemes for ‘LS_COLORS’, this will ignore the manual
          setting from BashStyle-NG, except the custom string, this
          string will be appended to ‘vivid’ generated ‘LS_COLORS’, so
          it will be honoured regardless of ‘vivid’ settings

        − ‘systemkit externalip’ defaults to ‘ipv4’, it is now possible
          to pass ‘ipv6’ flag instead, like ‘systemkit externalip ipv6’

        − The Custom Prompt Builder now allows to insert ‘Git’ repo
          information to the prompt by using ‘gitkit’

        − BashStyle-NG now offers two more custom Key Bindings for
          readline, which utilize ‘plocate’, ‘plocate’: for the string
          the cursor currently is at, use ‘plocate’ to search for it and
          ‘plocate-file’, likewise, but explicitely only searches for
          the basename (filename, no directory name)

        − In the Settings for GNU Nano you can enable or disable the
          ‘minibar’, aswell as setting it's colors.

   • Misc.  Changes

        − Add global button to revert to (saved state) user
          configuration, aswell as a button that reverts to factory (or
          vendor) configuration, then BashStyle-NG is restarted; in the
          ‘Configuration’ group a restart button is available now,
          aswell

        − UpdateConfig now checks for obsolete keys in the user
          configuration, and removes them

        − The WidgetHandler now allows GtkEntrys to have a maximum
          number of characters the user can input.

        − The Custom Prompt Builder now uses GtkSourceView instead of
          GtkTextView, when the Gtk theme is dark ‘oblivion’ color
          scheme is used, else ‘tango’

        − ‘systemkit’ now uses ‘awk’ and ‘/proc/meminfo’ to calcuate
          used, free and available RAM or respective percentages, as
          it's much faster than parsing the output from ‘top’

        − Migrate all GtkComboBox to GtkDropDown, make all GtkDropDown
          values translatable

        − New CSS for both pure Gtk4 and Adwaita inverts the
          GtkCheckButtons color in the keybindings ColumnView, when the
          line is highlighted, to prevent them from almost vanishing
          visually

        − Extra custom CSS only active if Adwaita is in use

             + Make the selected entry in a GtkDropDown clearly visible
               when opening the list, for some reason Adwaita does apply
               no highlight to the active entry

             + Prevent Adwaita from making the GtkCheckButtons in the
               keybindings ColumnView comically huge

             + Prevent Adwaita from enlarging CustomIconSpinButton

             + Fancy hover effects for most widgets, which would
               otherwise have almost no visible hover effect

        − The button for enabling verbose BashStyle-NG startup was moved
          from ‘Advanced’ group to ‘Configuration’ group

        − The default setting for ‘globskipdots’ now follows Bash
          default (enabled)

        − Remove vendor configuration from Debian package, just use
          BashStyle-NG's factory config

        − Update german translation