Git Product home page Git Product logo

bashish's Introduction

WELCOME TO BASHISH2
-------------------
Index
-----
1  About Bashish
3  Getting started
4  Changing theme
6  Application themeing
7  Shell Support
8  Terminal Support
8.1 Mac OS X Terminal.app
9  ASCII-art Prompts
10 Uninstalling Bashish
11 Solaris specific notes


About Bashish
-------------
Bashish is a theme enviroment for text terminals. It can change colors, font,
transparency and background image on a per-application basis. Additionally
Bashish supports prompt changing on common shells such as bash, zsh and tcsh.


Getting started
---------------
First, run the 'bashish' command with no arguments:

 $ bashish

it will ask you to confirm modifying some
user configuration files.
Press ENTER and go forth.

Second, restart Bashish.

After the shell has been restarted, the standard theme of bashish is
installed. The colors will default to a black background with grey text and 
ANSI colors with low saturation, your prompt will remain unchanged.

You can now select a theme for each applications and if wanted, one for the
prompt.


Changing theme
--------------
Show installed themes by running the 'bashish list' command:

 $ bashish list

Specify a theme, eg conda:

 $ bashish conda

and with some colors:

 $ bashish conda blue

Application theming
-------------------
Application theming works by placing a launcher with the name of the themed 
command in the search path. The launcher first themes the terminal, 
then runs the command with the same options as given to itself. And finally,
when the command has ended its execution (or suspended), the launcher will 
restore the terminal to the prompt theme.

To the user, this launcher should be totally transparent:
* It does not use the standard input/output/error, thereby the user can
  expect normal functionality when using pipes and redirecting input and
  output.
* It handles multiple files and filenames with spaces correctly.
* It returns the same exit code as the launched command.
* It works even if not connected to a tty (eg. when executed from a GUI)
* It can be suspended and restarted.
* It will never launch itself.

To temporary disable theming for one application, set the BASHISH_DISABLED 
variable, eg:

$ BASHISH_DISABLED=1 joe

to disable theming for all applications in the current tty:

$ BASHISH_DISABLED=1;export BASHISH_DISABLED

in csh run:

% set BASHISH_DISABLED = 1; setenv BASHISH_DISABLED

to re-enable theming run:

$ unset BASHISH_DISABLED

The launcher itself will also disable theming for any of the application
child processes by setting the BASHISH_DISABLED variable.


Modifying defaults and overriding theme parameters
--------------------------------------------------
The files $HOME/.bashish/bt/defaults/theme and
$HOME/.bashish/bt/overrides/theme are well commented and
are the main customization files for Bashish, the former for
fallback values if the theme does not set them, the latter is for 
overriding theme values.


Only set title and prompt
-------------------------
If you prefer Bashish to stay off colors, fonts and additional settings, and
only would like Bashish to change title and prompt on a per-application basis, start
Bashish with the '-t' option (eg. in .bashrc: bashish -t)


Shell support
-------------
Bashish runs independently of the interactive shell in use, thus obscure
shells as 'lsh' and 'osh' can perfectly be used with application themeing.
As creating prompts for all supported shells would be a daunting task,
prompts in general are only avaliable for bash, zsh and tcsh.
Following are the shells which can automaticly start Bashish upon startup:

bourne shell compatible: ash bash dash ksh93 pdksh posh zsh
c-shell compatible: csh tcsh
Friendly Interactive SHell: fish
dos compatible: lsh
Old Enhanced Thompson shell: osh
Plan/9 shell for UNIX: rc

To start Bashish on an unlisted shell, start 'bashish' and insert
$HOME/.bashish/launcher as the first element in your path.

Shells known not to be able to automaticly start Bashish:

the bourne shell: sh
sash shell: sash

notes about osh:
osh does not support prompt changing.

notes about rc:
In order to load Bashish automaticly, rc needs to be started as a login
shell (eg. by using the '-l' switch).

notes about lsh:
Lsh needs to be restarted in order to make it aware of prompt changes.
In order to make theming in pipes work, one must explicity set the TTY
variable to the output of 'tty'.


Terminal support
----------------
Bashish can change theme properties such as colors font and title on the
following terminals:

Gnome-Terminal
XTerm
aterm
rxvt
rxvt-unicode
Linux console
mlterm
SGI xwsh

Other Terminals, which Bashish can only set title and color attribute for:

PuTTY
Cygwin
Terminal (XFCE)
terminal.app (GNUStep)
BeOS Terminal
PowerShell
screen
multi-gnome-terminal
x3270
MacOSX Terminal.app

Terminals that currently only sets title and color attribute but might get
better support in the future:

KDE Konsole
CDE dtterm

Terminals which Bashish can not theme at all:

Most hardware terminals such as DEC vt102
QNX phterm

Mac OS X Terminal.app
---------------------
Mac OS X Terminal.app (tested on Tiger), interprets line drawing characters
as chinese/japanse glyphs, thus, in order for the themes "box" and
"bluesteel" and other themes using line-drawing characters to look good, 
you need to uncheck the "Terminal"->"Window settings"->"Display"
and uncheck "Wide glyphs for Japanese/Chinese/etc."
You will still be able to display Japanese and Chinese glyphs.

ASCII-art prompts
-----------------
To make Bashish display ASCII-art prompts correctly if the locale is not 
UTF-8, additional fonts with DOS codepage (aka "VGA fonts") must be installed:

Eterm, aterm, XTerm:

 - artwiz-aleczepka font pack (en) http://artwizaleczapka.sourceforge.net/
   http://sourceforge.net/project/showfiles.php?group_id=95348

Gnome-terminal, Konsole and other terminals capable of using .TTF fonts:

 - ASCII.ttf (named "New") http://www.apollosoft.de/ASCII/indexen.htm

Furthermore, some terminals needs configuring:

PuTTY

 - PuTTY can be set to DOS codepage mode, in the "PuTTY Configuration", go
   to "Window" -> "Translation".
   In "Recieved data assumed to be in which character set:"-drop-down menu,
   select "CP437" and 
   "Handling of how PuTTY handles line drawing characters"
   to "Use font in OEM mode only"

   Next, select "Window" -> "Apperance", and select either the bitmap font 
   "Terminal" which should have the "OEM/DOS" encoding, or the scalable "ASCII"
   font (below) which should have encoding "Symbol"

Linux console

 - Works out of the Box, however some characters, eg. TAB is not handled
   correctly, eg. gets typed out as a ring. I am not aware of a solution 
   to this, other than: switch to UTF-8, switch theme, or use ls -al and
   live with the behaviour.

If the terminal can not be configured to work in CP437 mode, and/or
the user uses localized characters. Bashish supports two even more
compatible - but not as visually pleasing - modes:

Modify the shell-rc (typicly ~/.bashrc):
and change the value BASHISH_CP=437 to:

BASHISH_CP=dec

which uses the DEC line drawing character set to emulate some of
the CP437 characters.
If "dec" charset puts garbage on the screen, one can make bashish output
regular 7-bit ASCII, by changing the value to:

BASHISH_CP=ascii

Removing Bashish
----------------
Remove user configuration and autoloading of Bashish by running 
'bashish --uninstall'.
To entirely remove Bashish from your system, consult your package manager
manual, or if you installed from source: the INSTALL document in the source package.


Solaris 10 specific notes
-------------------------
You need to add /usr/openwin/bin and /usr/local/bin to your shell specific 
rc-file (~/.bashrc for bash).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.