Next: First Start, Previous: Installation, Up: Top
This lists user-visible changes, and which releases they occurred between. For more detailed information see the git log.
Each release lists incompatible changes at its top.
BashStyle was released on 1st May 2007, so
version 10.7.4 marks the 15th Anniversary version. I never thought the project would
live on a long time like that.
sufffix: fix wrongly named files, when mime-type leads to non-exact match.
systemkit: adopt freeram, usedram, totalram,
usedram%, freeram%, to top changes.
reload_bash: fix resetting ERR trap.
configure: add /usr/share/gir-1.0 to gir paths to look for.
systemkit: ensure output from cpuload is always 3 digits, ram usage always 5 digits
(filled with leading zeros; for inclusion in prompts).
equinox: adopt to systemkit changes.
HISTFILE_TMP envvar used by customized bashstyle-ng history functions renamed
to BSNG_TMP_HISTFILE to match other bashstyle-ng envvars. Also guard for reload_bash.
BSNG_YEAR envvar from .settings.
bashstyle-rc: prevent error messages on first start
configure: make python version check more robust
gettext: due a bug in eval_gettext strings starting with dashes lead to issues in camelcase, random and randomfile functions, so use old school $'...' syntax as quick fix.
gitkit: fix cloneuser command not working.
history sync: fix terrible bug that could cause complete loss of history when many Bash instance are started at once and trying to access the history file.
bashstyle_history: custom ’history -D’ param now also deletes single commands in history (eg: history -D geany previously only deleted geany some_file, but not geany, now both will be deleted).
colors: add possibility to set colors for GCC messages.
gitkit: add listuser and listorg commands for listing repos from a GitHub user or GitHub organization.
advanced: add possibility to set useragent string for cURL.
advanced: add possibility to set useragent string for wget.
bashstyle_history: custom history -D param now accepts multi-word commands for deletion.
bashstyle_history: new custom history -g param to grep history for simple pattern.
bashstyle: add -l/--log action to view BashStyle-NG log file.
lscd, treecd: fix error messages when cd-ing into empty directory caused by gettext string evalutation.
bat: on some distributions bat is called batcat, support both.
HOME/.bashstyle-ng.log) from UI (About > BashStyle-NG Logfile).
fd-find to suggested packages in Debian GNU/Linux packaging scripts.
GNU Nano settings: fix setting UI colors.
GNU Nano settings: update possible settings for new GNU Nano versions.
const was renamed to constantshow.
poslog was renamed to positionlog.
morespace was replaced with emptyline.
rebindkeypad was removed.
ini handling: fix checking user settings being up-to-date on Bash startup.
make: fix BashStyle-NG .desktop file, manpage and bashstyle-config-helper not being uninstalled.
systemkit: fix systemkit dirsize not working.
systemkit: fix systemkit battery not working with recent acpi versions.
systemkit: fix systemkit internalip not working with recent ifconfig versions.
ls color settings: compat with some embedded terminals (like terminal in Geany IDE).
manpage color settings: compat with some embedded terminals (like terminal in Geany IDE).
GNU Nano settings: support for the following new settings has been added:
linenumbers: whether to show line numbers at start of line.
guidestripe: whether to draw a stripe at given position (0 = disabled) so help avoiding overlong lines.
errorcolor: set color for error messages.
selectedcolor: set color for selected text.
stripecolor: set color for the guidestripe.
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.
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].
bashstyle --enable or bashstyle --disable.
HOME/.bs-ng.ini to HOME/.bashstyle-ng.ini (auto-migrate from old to new name).
/etc/bs-ng_vendor.ini to /etc/bashstyle-ng_vendor.ini.
bs-ng-[ICONNAME].png to bashstyle-ng-[ICONNAME].png.
bs-ng.desktop to bashstyle-ng.desktop.
gitkit cloneuser / gitkit cloneorg, use wget + awk + xe instead of curl + ruby.
gitkit function for remembering SSH password.
eval_gettext for translating Bash Scripts intead of outdated $"" syntax.
gitkit applet: handle the case where TMPDIR is unset.
check function: check if dig is installed before executing check m.
basefile function: fix noext option.
round function: fix output not being visible in all cases.
check: perform various non-standard checks, used like test.
n: check if arg is a valid number (int, float, hex, octal), example: check n 4.4.
i: check if arg is a valid integer, example: check i 4.
f: check if arg is a valid float, example: check f 4,4 or check f 4.4.
h: check if arg is a valid hex, example: check h 301DE8.
o: check if arg is a valid octal, example check o 24.
hc: check if arg is a valid hex color, example check hc FFF or check hc 000000, # may optionally lead.
s: check if arg is a valid string, example check s "How do you do?".
p: check if arg is a special character, example check p ?.
c: check if arg1 contains arg2, example check c "Thanks, I'm fine." "I'm" or check c 1423532 235.
sw: check if arg1 starts with arg2, example check sw Hello H or check sw 12412 124.
ew: check if arg1 ends with arg2, example check ew Goodbye e or check ew 1422412 2412.
b: check if arg is a valid boolean, example check b $myvar. check recognizes the following as boolean value:
true, True, TRUE, 0
false, False, FALSE, 1
bt: check if arg is valid boolean true, example check bt $myvar.
bf: check if arg is valid boolean false, example check bf $myvar.
m: check if arg is a valid mail address, example check m "test@dom.tld". check matches against a regex and uses dig to see if the domain is available, will verbosely inform what’s wrong (in case).
-z for randomfile append filename to command without separating space, for example randomfile geeqie -r File: -- $HOME/Pictures/*.
gitkit applet:
push: first push to upstream, then push tags and at last push to all mirrors found in .git_mirror file.
taga: add tag and push to remote, example: gitkit taga TAG [-m MESSAGE COMMITID].
tagd: remove tag locally and remote, example: gitkit tagd TAG.
tagr: rename a tag (technically removes tag and readds it with new name) locally and remote, example: gitkit tagr OLDNAME NEWNAME, preserves first line of tag annotation and commit pointed to.
tagc: make a tag point to a different commit (technically removes tag and readss it pointing to new commit) locally and remote, example: gitkit tagc TAG COMMITID, preserves first line of tag annotation.
gitkit start an ssh-agent in combination with ssh-add so that the afore mentioned new features (and ordinary git remote commands) don’t require you to type in your password everytime. You can customize whether to use that feature, how long ssh-agent should remember the passwords and what keyfile to use (fallback $HOME/.ssh/id_rsa). The timer is separate in each Bash session. See options Remember SSH Key, Time to remember and SSH RSA Keyfile in the Git section of BashStyle-NG.
empty: you can now specify whether to look for empty files (example: empty f [PATH]), or directories (example: empty d [PATH]) only. Like before if no arg is passed (or arg is a path) it will search for both empty files and directories in given path or in PWD.
nseq function: allow passing the lowest number, aswell as the field separator (example: nseq 0 5 _).
ngroups function: if run as root, allow passing a different user than current (example: ngroups USER).
bashstyle launcher: new switches --ini-get and --ini-set allow getting or setting configuration values from command line.
topdir function.
assign function.
DATADIR/bashstyle-ng/rc/functions to DATADIR/bashstyle-ng/functions.
ruler function.
history not properly working when history sync is active.
history -D COMMAND which deletes all entries of a given command from the history, example:
history -D rm
will delete all occurences of rm from the history. history -D does exact matches, so for example rmdir is not removed from history, if rm is passed as COMMAND.
localvar_inherit, requires Bash version 5.0.
next-screen-line and previous-screen-line, requires Readline version 8.0.
cd or BashStyle-NG lscd or treecd.
history or BashStyle-NG History Sync or History Isolation.
bashstyle -v and About Page now show the release codename, too.
BSNG_SESSION_TIME contains the BashStyle-NG startup time in +%I-%M-%S-%N format.
jpg to jpeg
tar.gz to tgz
tar.bz2 to tbz
-h in addition to --help, minor changes
batchrename: proper verbose output
randomfile if neither -r or
-p are used.
README, TODO, Debian GNU/Linux package description.
systemkit did not accept the given directory
for function for counting files, directories or overall items, instead it always
used PWD. Now it respects a given directory and uses PWD if
none was given.
systemkit result of function for countine files,
directories or overall items were off by 1 in some cases.
randomfile could not handle parameters
passed to the application, e.g.: randomfile geeqie -r -- /home/test/Pictures/*
does now work as intended.
HOME/.randomhistory exists before doing
anything when -f, -l, -L or -i are given.
dd options don’t work.
systemkit:
randomfile,
using -p, --print parameter.
PWD, use like randomfile geeqie --.
2048 game
bashtips function
batch function
hilow game
quickscript function
remount function
wininfo function
xmltagdelete function
systemkit:
apkdump:
sufffix quiet by default, add -v, --verbose switch,
to get verbose output, if desired.
-v, --verbose switch to batchrename, to get verbose
output, if desired.
countvisibleitems work, when PWD is a
symlinked directory.
openhub parameter support more than just github.com
origins (for example gitlab projects are now properly opened in browser, aswell), also
rename openhub parameter into openweb.
topdir function, returns the deepest existing toplevel directory for a
given path, returns 1 if none found at all.
camelcase function, transforms a string (test_string-a b) in
either camelcase (TestStringAB) or word-by-word uppercase (Test String A B).
Equinox and Power User prompt styles now also use the
showuser function instead of bash built-in $ prompt variable.
lscd and treecd changes:
lscd and treecd,
which is of course not supported, so if both were enabled, lscd was used, always. This
is fixed now, as the user interface now only lets enable one or the other, not both.
lscd and treecd strings localizable.
Equinox and 4.4+ Sections
10.0
systemkit bios is called as non-root user a message is printed
accordingly (instead of just exiting without further notice).
openhub feature, when there is more than
one remote.
-p and -P command line args were mixed up.
tree is installed, if not, override the
user’s choice to use treecd instead of cd.
equinox style when terminal
has not enough lines of height to draw all user-requested prompt part.
sed
substitutions (left-over from very (very) early BashStyle-NG versions)
in the clock prompt style.
grep -c instead of grep xx | wc -l.
ayoli prompt style.
equinox prompt style in
the custom-prompt-builder was bugged since the introduction of
lastcommand prompt part.
systemkit --dirsize was broken.
apkdump: grab information about android packages (apk) using
aapt.
sufffix: fixes the suffix for given files.
batchrename: batch renames all files in a directory using the
NNN-NAME.SUFFIX naming scheme, where NNN is the number of the file
inside the directory (filled up with leading zeros if required, eg. 01 or
001) and NAME is given by the user.
-d, --doc command line arg to bashstyle, which opens
the HTML documentation using xdg-open.
-P, --python command line arg
of the bashstyle launcher script.
config-update-helper.
bashstyle-config-helper launcher script.
config-update-helper.
-b, --backup command line arg to bashstyle, which will
backup the user configuration.
-r, --restore command line arg to bashstyle, which will
restore a previously backed up user configuration.
-R, --reset command line arg to bashstyle, which will
reset the user configuration to vendor values (if vendor configuration exists
and is up to date) or factory values.
-u, --update command line arg of bashstyle was not mentioned
in -h, --help message.
bashstyle.1 manpage.
bsng-help to bashstyle-help.
check_opt, instead do a check in each script on it’s own.
custom-prompt-builder.
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
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:
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.
PAGER to be
less, else colorizing manpages might fail, if an other pager is used.
BashStyle-NG in $HOME/.bashrc
from user interface in certain cases.
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.
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).
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 output.
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 terminals.
bell-style readline variable.
completion-ignore-case readline variable.
LS_COLORS set by
BashStyle-NG. This resulted in readline functions using distribution default
LS_COLORS, but bash functions using the user set variable.
lastcommandprintable) by removing all newlines from the string.
treecd options not being honoured.
equinox
prompt, if pwdcut ini value is not set. Fixed output string length calculation
for truncpwd function aswell.
$HOME/.bashstyle.log after startup. Before this fix
only the messages from BashStyle-NG itself were stored, making the debug log
rather useless.
+, - and
/ for lastcommand exit code visualization instead of ✔,
✘ and ⊘, as they won’t display correctly.
extglob shopt by
default. Some bash completion definitions don’t work without (eg: vim’s).
dd when loading bashstyle-rc
more than one time during a single bash session.
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 interface)).
Manual update is possible via bashstyle --update, or bashstyle -u.
If your configuration is up-to-date, nothing will be changed.
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.
PATH variable.
lscd and treecd for different
banner, mkdir and empty labels.
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.
equinox prompt. You can now
enable or disable the following informations:
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.
user_char option. Set this to let showuser display
something else than $ for ordinary users.
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
/usr/bin/autoreconf
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.
Colored Completion Prefix makes the matching prefix of the issued
completion appear in a special color for all matches.
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.
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 10
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 bug.
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.
GtkSwitches instead of GtkRadionButtons for main
switches in the UI.
use lscd instead of cd and
use treecd instead of cd exclude each other.
bs-ng, new: bashstyle
nx-rc, new: bashstyle-rc
bashstyle launcher script.
x-terminal-emulator).
GIT to Git in the UI and other pacles.
BashStyle-NG initialization,
no need to record BashStyle-NGs startup.
WidgetHandler now supports GtkSwitches, GtkButtons and
GtkLabels, Custom Prompt Builders special GtkButtons and
GtkComboBoxes.
unseting a lot of variables which are
of no use after BashStyle-NG initialization.
dbg_msg function, now some of the output strings in
$HOME/.bashstyle.log are more readable.
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
trap from lastcommand
storing [Mingye Wang]
lastexit value storing [Mingye Wang]
also shows version of user, user backup, vendor and factory configuration files (None for vendor and user backup if they don’t exist)
Now there’s an separate option for each (including a color option each)
xmltagdelete --help
2048.bash --help
dd, requires version 8.24 or newer.
bashstyle executable.
Documentation icon (bs-ng-doc) icon in UI, opening the
documenation using xdg-open.
--docdir switch back
--mandir switch
./make build
./make install
./make install
./make readme)
./make news)
./make info)
./make html)
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Next: First Start, Previous: Installation, Up: Top