BashStyle-NG
Utilities
Score 72%
Description:

BashStyle-NG

=== Introduction ===

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)
Last changelog:

9 years ago

Overview of changes in v9.1 "Dial T for TNT"

=== Bug Fixes ===

* #187 (vim-rc):
set softtabstop instead of shiftwidth for setting tab length
* #188 (keybindings-rc):
some of the keybindings set from UI didn't take effect
* #189 (colorshell):
option colorshell_reset did not work
* #190 (bashstyle.sh/nx-rc):
improve start-up mechanism, so that PS1 definied in ${HOME}/.bashrc
does not override PS1 set by BashStyle-NG

=== Widgets ===

* added CellRendererClickablePixbuf from Tryton (http://www.tryton.org/),
with minor updates to be GTK+3 compatible

=== User Interface ===

* majorly revised the Custom Prompt Builder (both UI and Code):
- unified functions in python code where possible
- removed "Place in (...)" buttons
- only one "Empty", "Undo" and "Redo" button each for both TextViews
(it is now auto-detected which one of both is the currently active one)
- use monospaced font in the input fields
- add scrollbars to the Custom Prompt Builder (prevents window from getting
immensively huge when inserting large prompts like Equinox)
- add "Reset" button: reset to last saved user configuration
- add "Factory" button: reset to vendor or factory configuration
- when inserting functions or variables into PROMPT_COMMAND or PS1 the output
will be modified so that it conforms with where it's been added, example:
- ${eusercolor} for PROMPT_COMMAND and ${usercolor} for ${PS1} or
- $(systemkit usedram%) for PROMPT_COMMAND and \$(systemkit usedram%) for PS1

* restructure prompt color settings
++ before: two combined combo boxes (not optimal from usability view)
++ after : a separate combo box for each color setting

* re-arrange some settings in 'Advanced' category. Rename 'Extra' sub-section
into 'BashStyle-NG', 'Misc' sub-section into 'Bash Builtin'.

* remove AboutDialog-Window and make it a custom tab page instead

* re-align widget groups for the better looks
* show what category the user is currently in, in the header
* added missing revert-to-default icons for PWD Length Spinbutton
* show icon on the "Back", "Empty", "Undo" and "Redo" buttons again
* major restructuring and updating of widgets in all categories
* minor string changes

=== General ===

* add trap_add function. It allows adding multiple commands to a trap one after
another by grabbing the previous trapped functions and re-building the trap
(by Richard Hansen https://stackoverflow.com/a/7287873)

* record executed command and it's exist status. This will be available using
${lastcommand} (full length), ${lastcommandprintable} (truncated to max. 25
characters or filled with spaces to reach 25 characters, for prompts) and
${lastexit} variables. This is not recorded for:
- completion
- trap
- PROMPT_COMMAND

for not overriding the useful info with useless, aswell as for:

- echo ${lastcommand}
- echo ${lastcommandprintable}
- echo ${lastexit}

so users are able to grab the values in all cases. Add all three to the
Custom Prompt Builder.

* rename lscd_mkdir config into customcd_mkdir and make it apply for both lscd
and treecd
* add treecd_opts config (similar to lscd_opts)
* improve treecd (make it internally work like lscd)
* make colorshell a trap rather than embedding it in PROMPT_COMMAND
* remove PRE_PROMPT_COMMAND

=== Styles ===

* Renamed "Clock Advanced" Prompt to "Equinox" (the name change is handled
internally, the config updated automatically, no user interaction required)
* re-bind RETURN to C-l\C-j when Equinox is the active style. The Style is now
properly re-drawn after command execution (no more overlapping "arms")
* include ${lastexit} and ${lastcommand} as follows in Equinox:
( ✔: some command )─┤ -- for a successfully executed command
( ✘: some command )─┤ -- for a non-successfully executed command
* simplify Equinox code a little bit
* don't draw arms in Equinox if the terminal height is less than 16 lines

=== Bash Settings ===

* add GLOBIGNORE: everything to ignore from globbing. Default value: empty.
++ if you set it to ".:.." issueing '$ ls .*' will not include '.' and '..'

* add History Sync: sync history between simultaneously running sessions.
++ commands from other sessions become available to 'history' immediately,
++ to bash after reloading prompt ([ENTER])

* add dotglob: include hidden files (with leading dot) by default during
pathname expansion
* add extglob: enable extending globbing with regular expression like
extensions (see: http://mywiki.wooledge.org/glob#extglob)
* add nocaseglob: ignore case during globbing
* add nocasematch: case insensitive matching for 'case' and '[[' commands

=== Keybindings ===

* add 'Revert' column: revert setting to last saved user value
* add 'Default' column: revert setting to vendor or factory default
* removed 'Reset Keybindings' button (no longer needed with clickable Pixbuf)
* add 'None' column: allow keybindings without modificator (only useful for
keys like TAB for example to bind menu-complete to it)

* removed Advanced > Tab Rotation, added menu-complete to Keybindings instead.
- if you want to re-enable this feature set menu-complete in Keybindings to TAB
with no modificator checked

* new standard keybindings:
++ menu-complete-backward (default: Ctrl-Tab)
++ backward-kill-line (default: Alt-k)

* new custom keybindings:
++ rerun-root (rerun last command as root, default: Alt-r)
++ list-keys (list all bound command and their keybindings, default: Alt-p)

* made TreeViewColumn headers translatable

=== Readline ===

* New Readline options:
- colored-stats: if visible-stats is true, color them using LS_COLORS
- skip-completed-text: when completing, don't duplicate text after cursor.
example: if you have type: '$ sh' and then do completion
'$ /bin/b[TAB]sh' it will end up '$ /bin/bash' when this
setting is On, '$ /bin/bashsh' when this setting is Off

=== Vim ===

* New color schemes provided:
- Molokai
- Vivi Chalk
- Meta 5
- Woju
- Lightning
- Paper Color
- Solarized

* New Vim options:
- expandtabs: convert a [TAB] into [SPACE]s
- wildmenu: show possible command completions above vim command line and
cycle through using [TAB], very similar to Bash/Readline
- foldenable: enable folding of large code blocks
- foldlevelstart: at what level of code to start folding (0 for immediate
folding, 99 for no folding)
- foldestmax: maximum level of nested foldings
- foldmethod: method to determine when to fold either indet (default),
marker, manual, expression, syntax or diff

=== Nano ===

* New Nano options:
- enable_mouse: enable full mouse support (copy, select ...)
- no_wrap: disable wrapping of long lines
- log_position: remember position in file when exiting and restore when
opening the file again
- tab_size: column-width of [TAB]s
- tab_to_spaces: convert a [TAB] into [SPACE]s
- set_uicolors: master option to enable the following options
- function_color_fg: text color for function descriptions
- function_color_bg: background color for function descriptions
- key_color_fg: text color for key bindings in help
- key_color_bg: background color for key bindings in help
- status_color_fg: text color for status messages
- status_color_bg: background color for status messages
- title_color_fg: text color for titlebar
- title_color_bg: background color for titlebar

=== LS Colors ===

* code simplification
* set ls-color for '*' (fallback) first
* add ls-color options for:
- symbolic links
- sockets
- pipes
- block devices
- character devices

=== Make 1.0.4 ===

- less verbose upon 'install'
- less verbose upon 'clean'
- tweaked output colors
- fixed message output for 'check_root_message'
- moved some messages from function into messages module
- minor tweaks

=== Translations ===

* updated German translation

socialinux

3 years ago

How to uninstall BashStyle-NG
compiled from source?

Report

Chrispy

3 years ago

simply: make uninstall

Report

socialinux

3 years ago

I had already tried.
Output is:
No rule to make target 'uninstall'

Report

Chrispy

3 years ago

? are you in the source directory? ... you may try

./make remove

aswell.

Report

bretzel

6 years ago

glib.GError: Failed to open file '/share/bashstyle-ng/ui/bashstyle7.ui

uh... there is no `/share` shouldn't be `/usr/share/...` ????



./configure ( even with --prefix=/usr )



and btw the file/subdir is actually correctly in `/usr/`share/...`

thanks

Report

bretzel

6 years ago

Digged a bit and just added ugly hack simple '/usr/[.....' on line 157 in bs-ng py file...

thus 'PREFIX' is empty
( Fedora 14 x64 in VMWare )


thanks again :-)

Report

Chrispy

6 years ago

? Normall BS-NG detects the prefix on-the-fly... what happens when you run this manually?:

pkg-config --variable=prefix bashstyle-ng

Report

moeenn

7 years ago

I donot really know what this is but it is definitely something awesome.....

Rated up..

Report

Chrispy

7 years ago

:D

It's a set of functions and stuff, to modify your bash, you can se a "pimped" bash prompt in the screenshot. Besides it also contains a graphical setup tool.

You can read the docs for more infos (documentation/index.html in the tarball)

Report

PhotonX

9 years ago

Hey,

a nice tool! But I get the following error on terminal start:

bash: None: command not found
/usr/bin/truncpwd: line 35: [: None: integer expression expected

The second line appears again on each command.

Also I get NonehomeNonephoton instead of /home/photon in some styles.

Also strangely the color settings don't change the font color (it's always black) but the background color.

Report

Chrispy

9 years ago

Hmm. I've sent you a PM.

I don't have that problems.

Report

Chrispy

9 years ago

Issue is solved. A really rare bug. [perhaps a broken pipe upon installation?]

For anyone who also has the "luck" to have that problem:

sudo make uninstall or dpkg --purge bashstyle-ng [depending on how you installed it]

rm -rf $HOME/.gconf/apps/bashstyle

re-install and you're done

Report

radzi

9 years ago

i try to set it...but i guess i miss a few-->

No value set for `/apps/bashstyle/font_color' [ 08:15:44 ]
No value set for `/apps/bashstyle/readline/scroll_h'
No value set for `/apps/bashstyle/readline/hidden'
No value set for `/apps/bashstyle/readline/editing_mode'
[ reez @ alexenderreez : /home/reez ]

Report

Chrispy

9 years ago

You need to either logout or kill the gconfd-2 (via killall gconfd-2)

Report

radzi

9 years ago

igot this error..

No value set for `/apps/bashstyle/font_color' [ 08:06:37 ]
No value set for `/apps/bashstyle/readline/bellstyle'
No value set for `/apps/bashstyle/readline/bellstyle'
No value set for `/apps/bashstyle/readline/bellstyle'
No value set for `/apps/bashstyle/readline/scroll_h'
No value set for `/apps/bashstyle/readline/hidden'
No value set for `/apps/bashstyle/readline/editing_mode'
bash: alias: ../cd ../: not found
No value set for `/apps/bashstyle/tmout'
[ reez @ alexenderreez : /home/reez ]

Report

spktkpkt

9 years ago

Very useful.

One thing: The 5th alias don't work.

Report

Chrispy

9 years ago

Thanks. I've found the issue, here's a temporary fix:

sed -e 's/\"alias/alias\ \"/g' -i /usr/share/bashstyle-ng/system/nx-rc

Report

spktkpkt

9 years ago

Thank you. :)

Report

9 years ago

Overview of changes in v9.1 "Dial T for TNT"

=== Bug Fixes ===

* #187 (vim-rc):
set softtabstop instead of shiftwidth for setting tab length
* #188 (keybindings-rc):
some of the keybindings set from UI didn't take effect
* #189 (colorshell):
option colorshell_reset did not work
* #190 (bashstyle.sh/nx-rc):
improve start-up mechanism, so that PS1 definied in ${HOME}/.bashrc
does not override PS1 set by BashStyle-NG

=== Widgets ===

* added CellRendererClickablePixbuf from Tryton (http://www.tryton.org/),
with minor updates to be GTK+3 compatible

=== User Interface ===

* majorly revised the Custom Prompt Builder (both UI and Code):
- unified functions in python code where possible
- removed "Place in (...)" buttons
- only one "Empty", "Undo" and "Redo" button each for both TextViews
(it is now auto-detected which one of both is the currently active one)
- use monospaced font in the input fields
- add scrollbars to the Custom Prompt Builder (prevents window from getting
immensively huge when inserting large prompts like Equinox)
- add "Reset" button: reset to last saved user configuration
- add "Factory" button: reset to vendor or factory configuration
- when inserting functions or variables into PROMPT_COMMAND or PS1 the output
will be modified so that it conforms with where it's been added, example:
- ${eusercolor} for PROMPT_COMMAND and ${usercolor} for ${PS1} or
- $(systemkit usedram%) for PROMPT_COMMAND and \$(systemkit usedram%) for PS1

* restructure prompt color settings
++ before: two combined combo boxes (not optimal from usability view)
++ after : a separate combo box for each color setting

* re-arrange some settings in 'Advanced' category. Rename 'Extra' sub-section
into 'BashStyle-NG', 'Misc' sub-section into 'Bash Builtin'.

* remove AboutDialog-Window and make it a custom tab page instead

* re-align widget groups for the better looks
* show what category the user is currently in, in the header
* added missing revert-to-default icons for PWD Length Spinbutton
* show icon on the "Back", "Empty", "Undo" and "Redo" buttons again
* major restructuring and updating of widgets in all categories
* minor string changes

=== General ===

* add trap_add function. It allows adding multiple commands to a trap one after
another by grabbing the previous trapped functions and re-building the trap
(by Richard Hansen https://stackoverflow.com/a/7287873)

* record executed command and it's exist status. This will be available using
${lastcommand} (full length), ${lastcommandprintable} (truncated to max. 25
characters or filled with spaces to reach 25 characters, for prompts) and
${lastexit} variables. This is not recorded for:
- completion
- trap
- PROMPT_COMMAND

for not overriding the useful info with useless, aswell as for:

- echo ${lastcommand}
- echo ${lastcommandprintable}
- echo ${lastexit}

so users are able to grab the values in all cases. Add all three to the
Custom Prompt Builder.

* rename lscd_mkdir config into customcd_mkdir and make it apply for both lscd
and treecd
* add treecd_opts config (similar to lscd_opts)
* improve treecd (make it internally work like lscd)
* make colorshell a trap rather than embedding it in PROMPT_COMMAND
* remove PRE_PROMPT_COMMAND

=== Styles ===

* Renamed "Clock Advanced" Prompt to "Equinox" (the name change is handled
internally, the config updated automatically, no user interaction required)
* re-bind RETURN to C-l\C-j when Equinox is the active style. The Style is now
properly re-drawn after command execution (no more overlapping "arms")
* include ${lastexit} and ${lastcommand} as follows in Equinox:
( ✔: some command )─┤ -- for a successfully executed command
( ✘: some command )─┤ -- for a non-successfully executed command
* simplify Equinox code a little bit
* don't draw arms in Equinox if the terminal height is less than 16 lines

=== Bash Settings ===

* add GLOBIGNORE: everything to ignore from globbing. Default value: empty.
++ if you set it to ".:.." issueing '$ ls .*' will not include '.' and '..'

* add History Sync: sync history between simultaneously running sessions.
++ commands from other sessions become available to 'history' immediately,
++ to bash after reloading prompt ([ENTER])

* add dotglob: include hidden files (with leading dot) by default during
pathname expansion
* add extglob: enable extending globbing with regular expression like
extensions (see: http://mywiki.wooledge.org/glob#extglob)
* add nocaseglob: ignore case during globbing
* add nocasematch: case insensitive matching for 'case' and '[[' commands

=== Keybindings ===

* add 'Revert' column: revert setting to last saved user value
* add 'Default' column: revert setting to vendor or factory default
* removed 'Reset Keybindings' button (no longer needed with clickable Pixbuf)
* add 'None' column: allow keybindings without modificator (only useful for
keys like TAB for example to bind menu-complete to it)

* removed Advanced > Tab Rotation, added menu-complete to Keybindings instead.
- if you want to re-enable this feature set menu-complete in Keybindings to TAB
with no modificator checked

* new standard keybindings:
++ menu-complete-backward (default: Ctrl-Tab)
++ backward-kill-line (default: Alt-k)

* new custom keybindings:
++ rerun-root (rerun last command as root, default: Alt-r)
++ list-keys (list all bound command and their keybindings, default: Alt-p)

* made TreeViewColumn headers translatable

=== Readline ===

* New Readline options:
- colored-stats: if visible-stats is true, color them using LS_COLORS
- skip-completed-text: when completing, don't duplicate text after cursor.
example: if you have type: '$ sh' and then do completion
'$ /bin/b[TAB]sh' it will end up '$ /bin/bash' when this
setting is On, '$ /bin/bashsh' when this setting is Off

=== Vim ===

* New color schemes provided:
- Molokai
- Vivi Chalk
- Meta 5
- Woju
- Lightning
- Paper Color
- Solarized

* New Vim options:
- expandtabs: convert a [TAB] into [SPACE]s
- wildmenu: show possible command completions above vim command line and
cycle through using [TAB], very similar to Bash/Readline
- foldenable: enable folding of large code blocks
- foldlevelstart: at what level of code to start folding (0 for immediate
folding, 99 for no folding)
- foldestmax: maximum level of nested foldings
- foldmethod: method to determine when to fold either indet (default),
marker, manual, expression, syntax or diff

=== Nano ===

* New Nano options:
- enable_mouse: enable full mouse support (copy, select ...)
- no_wrap: disable wrapping of long lines
- log_position: remember position in file when exiting and restore when
opening the file again
- tab_size: column-width of [TAB]s
- tab_to_spaces: convert a [TAB] into [SPACE]s
- set_uicolors: master option to enable the following options
- function_color_fg: text color for function descriptions
- function_color_bg: background color for function descriptions
- key_color_fg: text color for key bindings in help
- key_color_bg: background color for key bindings in help
- status_color_fg: text color for status messages
- status_color_bg: background color for status messages
- title_color_fg: text color for titlebar
- title_color_bg: background color for titlebar

=== LS Colors ===

* code simplification
* set ls-color for '*' (fallback) first
* add ls-color options for:
- symbolic links
- sockets
- pipes
- block devices
- character devices

=== Make 1.0.4 ===

- less verbose upon 'install'
- less verbose upon 'clean'
- tweaked output colors
- fixed message output for 'check_root_message'
- moved some messages from function into messages module
- minor tweaks

=== Translations ===

* updated German translation

File (click to download) Version Description Filetype Packagetype License Downloads Date Filesize OCS-Install DL
Details
version
9.1
updated Sep 27 2015
added Feb 05 2008
downloads today
0
page views today 1