BashStyle-NG 11.0.1   Recently updated !


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
    • 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), 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://github.com/Nanolx/bashstyle-ng.git

=== Translations ===

  • Current Translations:
    • de (German) (Christopher Roy Bratusek)
  • New Translations:
    • Visit https://www.transifex.com/projects/p/bs-ng/ and apply for a team or request the creation of a new one.

=== Bugs ===

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

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
Downloads:

git file-roller deb

ChangeLog:

 

11.0.1 (20260613) "Welkin Moon"
===============================

   • Fixes

        − #286: Remove no longer required loading of ‘undobuffer’ python
          module, as it is no longer shipped with BashStyle-NG

        − #287: Fix the wrong signal being connected to
          CustomIconSpinbutton, causing a changed value not to be
          written to configuration

11.0 (20260611) "Welkin Moon"
=============================

   • General Changes

        − Migrate UI from GTK+3 to GTK+4

        − Toggling any master switch will enable or disable all widgets
          controlled by that specific master setting

        − When a duplicate keybinding is set, both are marked red and
          the second instance will return to it's previous,
          non-duplicate value after two seconds

   • Fixes

        − #281: colored help messages created by ‘bashstyle-help’ work
          again

        − #282: remove root check from ‘make’, as it broke creating a
          Debian package

        − #283: when several bash sessions would be created
          simultaneously and closed before BashStyle-NG hasn't completed
          setup, it may have happend that incomplete temporary
          configuration files were left, which would prevent new files
          from being created (BashStyle-NG checks on startup whether
          such file exists and skips creating a new configuration file
          for vim, nano or readline, as it assumes an other BashStyle-NG
          instanace is doing so) Now BashStyle-NG hooks into the EXIT
          trap of Bash and attempts to remove those temporary files

        − #284: ‘lscd’ and ‘treecd’ would not return an error code, when
          the directory cd'ed into doesn't exist (if creating directory
          is disabled), or if directory cd'ed into couldn't be created
          (if creating directory is enabled), in both cases they now
          return 1

        − #285: ‘remember_command’ the function that would record the
          previous command and it's return status in the ‘DEBUG’ and
          ‘ERR’ traps wasn't properly working, as soon as a command
          failed the following was shown as failed aswell, caused by an
          early abort in the function, this has been fixed - as of now
          this is by default only used in the ‘Equinox’ prompt style

   • New Features

        − Add support for ‘GLOBSORT’ added in Bash version 5.3

        − Add support for ‘search-ignore-case’ added in Readline 8.2

        − Add support for ‘rl-clear-display’ added in Readline 8.3

        − When the ‘git’ signing key is set to ‘yubikey’, then ‘gitkit
          push’ will not automatically ‘ssh-add’ any key, instead it
          will try the push and if a Yubikey is plugged in, you can
          enter it's PIN, if no yubikey is plugged in, you'll be asked
          for password

        − The ‘gitkit’ functions ‘listuser’, ‘listorg’, ‘cloneuser’,
          ‘cloneorg’ now support both Github and Gitlab, and are now
          prefixed by gh or gl, eg.: ‘ghlistuser’ or ‘gllistuser’.  Also
          short commands have been added, eg.: ‘ghlu’ for ‘ghlistuser’
          or ‘gllu’ for ‘gllistuser’, at last the clone commands will
          ask you whether to user https or ssh (default)

        − The ‘gitkit’ function ‘export’ will export to
          ‘../_export’ by default, if no export path was
          provided

        − The ‘gitkit’ function ‘push’ now also recognizes a
          ‘.gitkit_mirror’ file, when not in the root of the git
          repository

   • Misc.  Changes

        − Always print a small startup message

        − Use modern ‘f-strings’ instead of ‘%s’ in python Code

        − In Configuration UI create custom vimrc or inputrc if it
          doesn't exist, instead of throwing an error

        − Several UI tweaks, also remove separated subgroups for several
          settings, like Readline 7.x is anything but recent anymore.

        − The custom undobuffer module is no longer required, thus
          removed

        − The UI uses some CSS to achieve the following:

             + Hover-effects for the icons in the main menu

             + A striped look for GtkGridView (keybindings settings)

             + Make all GtkEntry and GtkTextView have the some hover
               effect as most other Gtk Widgets have

             + 90 degrees rotated labels for subgroup names

        − GTK+4 does no longer support a GtkSpinButton to have a
          primary-icon and secondary-icon like GtkEntry.  This release
          ships a CustomIconSpinButton which is a composite widget,
          basically a GtkBox with two GtkImages and a GtkSpinButton,
          creating the desired result, fully functional Note:
          CustomIconSpinButton() was created AI assisted

        − The WidgetHandler now has a function to replace widgets from
          the UI XML by widgets created from code (in order to retain
          layout without having to bother) Note: ReplaceWidget() was
          created AI assisted