
BashStyle-NG
Source (link to git-repo or to original if based on someone elses unmodified work):
=== 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)
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
Ratings & Comments
18 Comments
How to uninstall BashStyle-NG compiled from source?
simply: make uninstall
I had already tried. Output is: No rule to make target 'uninstall'
? are you in the source directory? ... you may try ./make remove aswell.
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
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 :-)
? Normall BS-NG detects the prefix on-the-fly... what happens when you run this manually?: pkg-config --variable=prefix bashstyle-ng
I donot really know what this is but it is definitely something awesome..... Rated up..
: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)
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.
Hmm. I've sent you a PM. I don't have that problems.
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
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 ]
You need to either logout or kill the gconfd-2 (via killall gconfd-2)
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 ]
Very useful. One thing: The 5th alias don't work.
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
Thank you. :)