BashStyle-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:
ChangeLog:
10.7 (20190910) "Kaffee Filtrino" ================================= * Important Information - Starting with this release Python 3.0.0 or newer is required to run BashStyle-NG. * Bug Fixes - #257 'GNU Nano' settings: fix setting UI colors. - #258 'GNU Nano' settings: update possible settings for new 'GNU Nano' versions. x 'const' was renamed to 'constantshow'. x 'poslog' was renamed to 'positionlog'. x 'morespace' was replaced with 'emptyline'. x 'rebindkeypad' was removed. - #259 'ini handling': fix checking user settings being up-to-date on Bash startup. - #260 'make': fix BashStyle-NG .desktop file, manpage and 'bashstyle-config-helper' not being uninstalled. - #261 'systemkit': fix 'systemkit dirsize' not working. - #262 'systemkit': fix 'systemkit battery' not working with recent 'acpi' versions. - #263 'systemkit': fix 'systemkit internalip' not working with recent 'ifconfig' versions. - #264 'ls color' settings: compat with some embedded terminals (like terminal in Geany IDE). - #265 'manpage color' settings: compat with some embedded terminals (like terminal in Geany IDE). * New Features - 'GNU Nano' settings: support for the following new settings has been added: x 'linenumbers': whether to show line numbers at start of line. x 'guidestripe': whether to draw a stripe at given position (0 = disabled) so help avoiding overlong lines. x 'errorcolor': set color for error messages. x 'selectedcolor': set color for selected text. x 'stripecolor': set color for the guidestripe. x 'numbercolor': set color for numbers. - 'GNU Nano' settings: allow bright variants for foreground colors. - 'GNU Nano' settings: change default value for 'nohelp' to 'False', so commands are shown unless user wants to hide them. - 'list' applet: call 'ls -A' instead of 'ls -a' if hidden files should be included. - New Settings allowing to use 'bat' instead of 'cat', also allow setting default theme for 'bat' and tab width. - 'check' new flag 'P': check if a program exists, and print a message if not, example 'check P [program-to-check] [program-that-requests]'. * Misc. Changes - Allow enabling/disabling BashStyle-NG from terminal via 'bashstyle --enable' or 'bashstyle --disable'. - Rename user configuration from 'HOME/.bs-ng.ini' to 'HOME/.bashstyle-ng.ini' (auto-migrate from old to new name). - Rename vendor configuration from '/etc/bs-ng_vendor.ini' to '/etc/bashstyle-ng_vendor.ini'. - Rename all icons from 'bs-ng-[ICONNAME].png' to 'bashstyle-ng-[ICONNAME].png'. - Rename .desktop file from 'bs-ng.desktop' to 'bashstyle-ng.desktop'. - Simplify 'gitkit cloneuser' / 'gitkit cloneorg', use 'wget' + 'awk' + 'xe' instead of 'curl' + 'ruby'. - Improved 'gitkit' function for remembering SSH password. - Various internal improvements; Restructure resource files; Check for optional dependencies explicitely in all functions. - Improve Debian packaging scripts. - Configure 4.5.0: various internal changes and improvements; complete list of checks. - Make 2.0.0: various internal changes and improvements. - Made most included functions translatable. - Use 'eval_gettext' for translating Bash Scripts intead of outdated '$""' syntax. - Update german translation.