An ultra-configurable terminal status bar for tmux users.
I recently made the switch to i3wm, but noticed that I didn't really enjoy the i3-bar. I didn't really want an extra GUI element taking up screen real estate, and I wanted everything to be consolidated into one place. One day, I noticed that a status bar could easily fit inside of a shrunken tmux pane, and thus tbar was born!
-
Time
-
Battery Percentage
-
Power Status
...and more to come! (See Planned Features below)
tbar is gratuitously customizable. If you want, the options are out there to:
- Change the foreground and background colors of each individual piece of your tbar (e.g. widget labels, non-widget labels, widget contents, special widget contents, etc.)
- Change the time widget format (e.g. 24-hour, include AM/PM, put a gap between the time and AM/PM, etc.)
- Change the percent at which your battery widget will change color to signify low power
- Change the specified messages for the power status widget to display for different states
- Change the layout of your tbar with intuitive markup (e.g. spread it over multiple lines, add decorations and extra text, etc.)
- Make sure you have Python 3.x and tmux installed
- Clone this repo to a directory of your choice
- Start tmux in your terminal
- Split the window horizontally (i.e. two terminals on top of one another)
- Shrink the upper terminal as small as you please
- Run
python /your/path/to/tbar.py
in it
-
Open up the included
tbar.conf
in your text editor of choice -
Read the included comments on every line to configure tbar to your heart's desire!
Note:
tbar.conf
is in.ini
format
- Battery Estimated Time (with all of the formatting options of the time widget)
Power Status (e.g. using battery, charging)(Added 11/6/18 #945a816)- Date (with many different date formats)
- Add support for bars at the bottom of the terminal
- Configuration file validation
- More time format configurations (e.g. "Nine twenty, P.M.", HH:MM:SS)
- Windows/MacOS support
- Simplify time formatting logic
Disable newline printing(Fixed 11/3/18 #1651144)Change(Fixed 11/3/18 #74ac868)line1
in config toformat
or something, since it determines all lines