BashStyle-NG 9.3 11 comments

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

BashStyle-NG is a graphical tool and toolchain for changing the behaviour and look’n’feel of Bash, Readline, Vim, Nano and GIT.

Possibilities include:

  • Bash
    • 12 fancy pre-defined prompt styles
    • colors are customizable
    • random text color possible
    • random prompt style for each session possible
    • create your own prompt using UI
    • customizing pre-defined ones possible
    • alternatively monochrome prompts instead of colored
    • colored manpages (without using most)
    • colored output from ls and grep (matches)
    •  colors are customizable
    • rembering last visited directory (and restore upon new session)
    • customize bash history settings
    • lscd: customized variant of cd, showing content of directory after cd, can create directories that don’t exist, passing of customized ls parameters possible
    • un/setting shopts (shell options) for Bash 4.3 / 4.0-4.2 / 3.2+
    • customizable completion blacklist, timeout, welcome message and more
  • GIT
    • set GIT user name
    • set GIT mail address
    • set GIT editor for commit messages
    • set GIT colored output
  • Readline
    • un/set completion
    • un/set case sensitivity
    • un/set horizontal completion
    • un/set mark filetypes and folders
    • un/set include hidden files incompletion
    • customize almost 30 keybindings
  • VIM
    • un/set remember last position
    • un/set syntax highlighting
    • un/set auto indention
    • un/set case sensitive search
    • un/set incremental search
    • un/set display line numbers
    • un/set highlight current line/column
    • set dark or bright background
    • set line-wrap and tab-length
    • set color scheme
    • enable ruler/set ruler format
  • Nano
    • un/set search history
    • un/set syntax highlighting
    • un/set auto indention
    • un/set case sensitive search
    • fix backspace and numblock assignment
  • Extras
    • several extra functions for daily use
    • systemkit: show various system information, including cpu, system load, used/free/total ram and more
    • gitkit: various companion functions for GIT, like exporting the repo (like ‘svn export’), creating tar.gz/tar.bz2/tar.xz/.zip archives from repo, getting active branch/action/revision/revno from repo (for PS1)
    • math conversion functions: convasc, convbin, convdec, convhex, convoct, convtemp. Convert between ascii, binary, decimal, hexadecimal, octal or temperature units
    • random: create random strings (for example passwords) of various types
    • scripts for working with files: map (run a command on given files, for non-batch commands), batch (batch-perform actions on files), basefile (extract extension, filename with/without extension or filepath from full filename, similar to basename), randomfile (perform action on a random file, also has history, multiple executions support and more)
    • and several more (see /usr/share/bashstyle-ng/rc/functions/ for all)

=== Installation ===

Installation of BashStyle-NG is straight-forward. Configure and Make are Bash scripts aswell, so no other tools needed for build. For a full list of options see:

  • ./configure –help
  • ./make –help

1)    Check dependencies:    ./configure
2)    Build translations:    ./make build
3)    Install BashStyle-NG:    sudo ./make install

Alternatively you can build a package for Debian-based distributions via

1)    apt-get install fakeroot dpkg-dev
2)    dpkg-buildpackage -rfakeroot

If there are missing dependencies either Configure or dpkg-buildpackage will
tell you. Optional dependencies are marked as recommended for Debian packages.

=== Program Icons ===

BashStyle-NG uses Oxygen icons by default (supplied), but if the icons exist in your currently active GTK+ icon theme aswell, they will be used instead.

  • 32×32 pixel icons:
    • bs-ng Application logo
    • bs-ng-advanced Icon for ‘Advanced’ category in UI
    • bs-ng-alias Icon for ‘Alias’ category in UI
    • bs-ng-doc Icon for ‘Documentation’ in UI
    • bs-ng-custom Icon for ‘Custom Prompt Builder’ in UI
    • bs-ng-git Icon for ‘GIT’ category in UI
    • bs-ng-info Icon for ‘About Dialog’ in UI
    • bs-ng-keys Icon for ‘Keybindings Setter’ in UI
    • bs-ng-ls Icon for ‘LS Colors’ category in UI
    • bs-ng-nano Icon for ‘Nano Configuration’ in UI
    • bs-ng-readline Icon for ‘Readline Configuration’ in UI
    • bs-ng-shopts Icon for ‘Shell Options Configuration’ in UI
    • bs-ng-style Icon for ‘Style’ category in UI
    • bs-ng-toolbox Icon for ‘Custom Prompt Builder Toolbox’ in UI
    • bs-ng-vim Icon for ‘VIM Configuration’ in UI

=== GIT Access ===

You can get the latest in-development version by running:

git clone git://

=== Translations ===

  • Current Translations:
    • de (German) (Christopher Roy Bratusek)
  • New Translations:
    • Visit and apply for a team or request the creation of a new one.

=== Bugs ===


before reporting bugs please make sure that you got the latest version of BashStyle-NG.

=== Features Requests ===

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

License: GNU GPL v3

git file-roller deb


9.3 "Trick or Treat"

   * Notes
        - This release renamed the 'nx-rc' to 'bashstyle-rc', that
          means, you'll have to re-enable 'BashStyle-NG' in your
          '$HOME/.bashrc'.  Upon first start 'BashStyle-NG' will offer
          you to do so, on it's own.

          Additional notes for Git repo users:
             x This also applies to users that have used version 9.3
               prior to commit 4e621c.

             x Any references to 'nx-rc' will be auto-removed when
               re-enabling from UI, as of commit 2ff6c0, if you
               transisted before that commit, be sure to remove 'nx-rc'
               references from your '$HOME/.bashrc' manually.

   * Bug Fixes
        - #204 (debian vendor config): fixed error in Debian vendor
          configuration, preventing BashStyle-NG UI from startup.

        - #205 (ui): fixed buttons for saving, restoring, deleting and
          reverting user configuration in UI not working.

        - #206 (manpage colors): enforce environment variable 'PAGER' to
          be 'less', else colorizing manpages might fail, if an other
          pager is used.

        - #207 (trap): fix recording exit code of last command if it's
          not 0.

        - #208 (startup): fix enabling 'BashStyle-NG' in '$HOME/.bashrc'
          from user interface in certain cases.

        - #209 (startup): add file check when enabling 'BashStyle-NG' in
          '$HOME/.bashrc', so that 'Bash' does not run into errors on
          startup when 'BashStyle-NG' was uninstalled, but the startup
          entry still exists.

          Aswell as when it was installed to a different prefix, without
          having adjusted the startup entry in '$HOME/.bashrc'.

        - #210 (configuration): when 'ini_version' of '$HOME/.bs-ng.ini'
          is bigger than 'app_ini_version', the configuration is reset
          to either vendor or factory default configuration.  When doing
          so the configuration was not reloaded by the user interface
          (which could potentially lead to a crash).

        - #211 (colorshell): new option 'Dark Terminal Background'
          allows user to set whether the terminal background is dark or
          bright.  This option is used for colorshell to prevent the
          font color being black on dark terminals, respectively white
          on bright terminals in order to avoid barely readable text

          This option also applies to all other terminal dependant color
          settings in 'BashStyle-NG', where 'white' will be 'black' on
          bright terminals, respectively 'black' will be 'white' on dark

        - #212 (readline): fixed setting 'bell-style' readline variable.

        - #213 (readline): fixed setting 'completion-ignore-case'
          readline variable.

        - #214 (ls colors): fixed readline not inheriting 'LS_COLORS'
          set by 'BashStyle-NG'.  This resulted in readline functions
          using distribution default 'LS_COLORS', but bash functions
          using the user set variable.

        - #215 (lastcommand): fixed last command recording to generate
          ugly results for bash prompts ('lastcommandprintable') by
          removing all newlines from the string.

        - #216 (treecd): fixed user set 'treecd' options not being

        - #217 (lscd, treecd, grep): force switch to monochrome output
          when user has disabled colorful prompts.

        - #218 (equinox, truncpwd): fixed prompt length calculation for
          'equinox' prompt, if 'pwdcut' ini value is not set.  Fixed
          output string length calculation for 'truncpwd' function

        - #219 (debug log): the debug log now properly stores all
          messages, run commands and their (error) output in
          '$HOME/.bashstyle.log' after startup.  Before this fix only
          the messages from 'BashStyle-NG' itself were stored, making
          the debug log rather useless.

        - #220 (ini_set): fixed setting ini values from shell.

        - #221 (equinox): when on linux console let display '+', '-' and
          '/' for 'lastcommand' exit code visualization instead of '✔',
          '✘' and '⊘', as they won't display correctly.

        - #222 (custom prompt builder): fixed a few bugs in the
          pre-definied prompt definitions for the custom prompt builder.

        - #223 (keybindings): fixed that keybindings were always
          changed, even if user disabled that feature from UI.

        - #224 (factory ini, debian vendor ini): enable 'extglob' shopt
          by default.  Some bash completion definitions don't work
          without (eg: vim's).

        - #225 (dd): fixed no longer working 'dd' when loading
          'bashstyle-rc' more than one time during a single bash

   * New Features
        - Previously updating the user configuration to a new version
          was only possible by invoking the 'BashStyle-NG' user
          interface.  Now the user configuration is auto-updated from
          'bashstyle-rc' upon shell start up aswell (if needed, vendor
          configuration is considered if up-to-date, else factory
          configuration will be used (same behaviour as from user

          Manual update is possible via 'bashstyle --update', or
          'bashstyle -u'.  If your configuration is up-to-date, nothing
          will be changed.

        - New Termcap/Manpage coloring function.  'BashStyle-NG' now
          allows you to choose the different colors for manpages from
          the User Interface, rather than only giving you a handful of
          pre-defined color schemes.

        - Added option to include the current directory to the 'PATH'

        - Added coloring options for 'lscd' and 'treecd' for different
          'banner', 'mkdir' and 'empty' labels.

        - Added options for letting user choose what to use for
          'lastcommand' exit code visualization.  'return_good', which
          is '✔'/'+' by default 'return-bad', which is '✘'/'-' by
          default and 'return_other', which is '⊘'/'/' by default.  This
          is currently only used in 'equinox' prompt.

        - Ability to choose what to display in 'equinox' prompt.  You
          can now enable or disable the following informations:
             x system load
             x cpu load
             x ram usage (pro tip: enabling this will dramatically
               increase the time required to draw the prompt)
             x last command (and exit code)
             x process count
             x uptime

        - Added 'showuser' function.  Prompt function to either show '$'
          for normal users, a custom-set symbol.  Always displays '#'
          for root.  If colors are enabled color for normal-users will
          be 'color_user' and red for root.

        - Added 'user_char' option.  Set this to let 'showuser' display
          something else than '$' for ordinary users.

        - New Bash 4.4 features support:
             + 'EXECIGNORE' a colon-separated list of commands to ignore
               from completion.  Only matched if the *complete* filename
               matches.  For example if you want to exclude


               from command completion, you need to add something like

               '/usr/bin/autreconf' or '*/autoreconf'

               to 'EXECIGNORE'.

             + 'PS0' prompt and color setting.  A new prompt which is
               displayed after completion was done and before the
               completed command is executed.

        - New Readline 7.0 features support:
             + added Readline 7.0 master switch (enable to make use of
               the following).

             + 'Colored Completion Prefix' makes the matching prefix of
               the issued completion appear in a special color for all

             + 'Enable Bracketed Paste' makes Bash handle multi-line
               pasted code like single-line, preventing erroneous
               completion or execution.

             + 'Vi Command Mode String' is an indicator printed before
               the last line of 'PS1' when Bash is in vi command mode.

             + 'Vi Insert Mode String' is an indicator printed before
               the last line of 'PS1' when Bash is in vi insert mode.

             + 'Emacs Mode String' is an indicator printed before the
               last line of 'PS1' when Bash is in emacs mode.

   * Updated / Improved Features
        - 'history syncronization' improved history syncronization
          erasedups, ignoredups, ignorespace and ignoreboth
          implementation.  Made it more robust in case multiple Bash
          sessions start up simultaneously (should throw a lot less to
          no more errors).

        - 'random' function's '--numericalrange', '-r' param previously
          only allowed setting the 'highest' value of random range,
          starting from zero.  Now it's possible to set the 'lowest'
          value optionally, aswell.  Both syntaxes are supported:

          'random -r 10' will give you a random number between 0 and 10
          'random -r 5 10' will give you a random number between 5 and

        - 'colors' added support for both 'grey' and 'white' in all
          color settings.  Note: depending on your terminal's color
          settings you might not see a difference here, that's not a

        - 'colorshell' does no longer pollute 'PS1...4' variables.  It
          does now store 'PS1...4' once per session to 'OLDPS1...4' and
          appends it's randomly choosen text color to the it.

        - 'equinox' prompt now shows '⊘' in yellow when exiting 'git
          log' using 'q' key, instead of '✘' in red.  Exiting 'git log'
          results in return code 141, but it's not an actual error, thus
          the new state was added.

   * UI changes
        - Use 'GtkSwitch'es instead of 'GtkRadionButton's for main
          switches in the UI.

        - Make the radio buttons 'use lscd instead of cd' and 'use
          treecd instead of cd' exclude each other.

   * Configure

        - 4.3.8
             + code review.
             + make build dependencies a separate dependency group.

   * Misc.  Changes

        - Translation Domain changes:
             x old: 'bs-ng', new: 'bashstyle'

             x old: 'nx-rc', new: 'bashstyle-rc'

        - Improvements to 'bashstyle' launcher script.

        - Minor improvements to the Custom Prompt Builder UI.

        - Added option to launch Terminal Emulator from UI (uses

        - Since a few versions the code for setting colors has been
          changed, so we no longer need a monochrome version of each
          prompt style, avoiding lots of (mostly) duplicated code.

        - Standardize shebangs in python scripts (and remove
          corresponding lintian override).

        - Updated german translation.

        - Don't mark setting's name and a few others as translatable

        - Changed string 'GIT' to 'Git' in the UI and other pacles.

        - Move last command recording to the end of 'BashStyle-NG'
          initialization, no need to record 'BashStyle-NG's startup.

        - 'WidgetHandler' now supports 'GtkSwitch'es, 'GtkButton's and
          'GtkLabel's, Custom Prompt Builders special 'GtkButton's and

        - Less environment pollution by 'unset'ing a lot of variables
          which are of no use after 'BashStyle-NG' initialization.

        - Simplified color setup mechanism for non/echoable prompt part

        - Minor fix for 'dbg_msg' function, now some of the output
          strings in '$HOME/.bashstyle.log' are more readable.

        - Minor coding style changes / improvements.

Leave a comment

Your email address will not be published. Required fields are marked *

11 thoughts on “BashStyle-NG 9.3

  • ichbinder

    I installed the deb packet on mint but when will start bashstyle they tell me they need configobj.

    workaround was:
    sudo aptitude install python-configobj


  • Pingback: BashStyle-NG: Αλλάξτε δυνατότητες και συμπεριφορά στους editors (Readline-Vim-Nano)

  • Pingback: BashStyle-NG: Παραμετροποιήστε και κάντε περισσότερα στο τερματικό/κονσόλα

  • DeL00M

    Hello! Can’t install on ubuntu 14.04 cause of it have installed python 3.4 and bashstyle need <3.4
    Any suggestion?

  • Ruan Paes

    Can I use the BashStyle in Slackware 14.1 64?
    If yes, how I do this? How can I compile it?

    Sorry for my English.

    • Nano Post author

      I don’t see, why you couldn’t. There’s nothing to compile, just to check dependencies and build translations. It’s simple as:


      if it complains about missing dependencies you will need to install them.

      ./make build
      sudo ./make install (su -c ‘./make install’)

      That’s it. In case of bugs in Slackware support, try again with the lastet version in the git repository. If the issue persists, you can file a bug report at