2019-10-22 21:33:12 +00:00
|
|
|
dwmbar - A Modular Status Bar for dwm
|
|
|
|
=====================================
|
2019-10-22 22:22:53 +00:00
|
|
|
![Example image](res/example.png)
|
2019-10-22 15:53:31 +00:00
|
|
|
|
2019-10-22 21:33:12 +00:00
|
|
|
dwmbar is a very simple status bar written for dwm.
|
2019-10-22 15:53:31 +00:00
|
|
|
|
2019-10-22 21:33:12 +00:00
|
|
|
# Installation
|
2019-10-22 15:53:31 +00:00
|
|
|
|
2019-10-22 22:35:10 +00:00
|
|
|
## Prerequisites
|
|
|
|
|
|
|
|
While some modules will work without these dependencies, we recommend grabbing
|
|
|
|
the ones you want for specific modules.
|
|
|
|
|
|
|
|
Highly Recommended:
|
|
|
|
* Any patched Nerd Font for icons.
|
|
|
|
|
|
|
|
Optional (By module):
|
2019-10-23 14:33:28 +00:00
|
|
|
|
|
|
|
See [module prerequisites][Module Prerequisites]
|
|
|
|
|
2019-10-22 22:35:10 +00:00
|
|
|
|
2019-10-22 21:33:12 +00:00
|
|
|
## Arch Linux
|
|
|
|
|
2019-11-06 14:32:52 +00:00
|
|
|
There is an [AUR package](https://aur.archlinux.org/packages/dwmbar-git) for
|
2019-10-22 21:33:12 +00:00
|
|
|
dwmbar, which can be installed with your favourite aur helper, or manually.
|
|
|
|
|
|
|
|
Please see the [archwiki
|
|
|
|
page](https://wiki.archlinux.org/index.php/Arch_User_Repository#Installing_packages)
|
2019-10-22 21:36:13 +00:00
|
|
|
for how to manually install AUR packages.
|
2019-10-22 21:33:12 +00:00
|
|
|
|
|
|
|
## Manual Installation
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ git clone https://github.com/thytom/dwmbar
|
|
|
|
$ cd dwmbar
|
2019-10-22 21:36:13 +00:00
|
|
|
$ sudo ./install.sh
|
2019-10-22 21:33:12 +00:00
|
|
|
```
|
|
|
|
# Usage
|
|
|
|
|
|
|
|
dwmbar works by setting the root window name, which dwm displays. It does this
|
|
|
|
by calling the dwmbarrc file in your .config/dwmbar folder.
|
|
|
|
|
|
|
|
Add the line `dwmbar &` to your .xinitrc file to run on startup. You can also
|
|
|
|
run `dwmbar` in terminal for testing purposes.
|
|
|
|
|
|
|
|
# Customisation
|
|
|
|
|
|
|
|
## Configuring the Bar
|
|
|
|
|
|
|
|
Most non-modular configuration is done in `~/.config/dwmbar/dwmbarrc`, a bash
|
|
|
|
script that calls scripts in turn, caching their output and then constructing
|
|
|
|
the bar from that.
|
|
|
|
|
|
|
|
To add a module to the bar, simply include its name in the MODULES variable:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
MODULES="mpd volumebar wifi battery"
|
|
|
|
```
|
|
|
|
|
|
|
|
Modules are displayed left-to-right in the order they are written in `MODULES`.
|
|
|
|
By default, they are delimited by the `SEPARATOR` variable, which you can
|
|
|
|
change.
|
|
|
|
|
|
|
|
We also offer a `PADDING` variable, which contains a string you can include at
|
|
|
|
the start of your bar, on the very right. This can either be padding spaces, to
|
|
|
|
move the bar away from the right edge, or even text. By default, we set
|
|
|
|
`PADDING` to `$USER@$HOSTNAME`. Feel free to change this.
|
|
|
|
|
|
|
|
### About dwmbarrc
|
|
|
|
|
2019-10-22 21:36:13 +00:00
|
|
|
**Because we expect people to modify `dwmbarrc`, we will never update it.
|
|
|
|
dwmbar will automatically create it if it is not there, but once it is there,
|
|
|
|
it must be deleted for another up-to-date version to be given.**
|
2019-10-22 21:33:12 +00:00
|
|
|
|
|
|
|
Interestingly, so long as dwmbarrc prints *something* to stdout, it does not
|
|
|
|
matter what it's written in, or what it does. So if you want to write your own
|
2019-10-22 21:36:13 +00:00
|
|
|
implementation and use that, go nuts.
|
2019-10-22 21:33:12 +00:00
|
|
|
|
|
|
|
## Writing Modules
|
|
|
|
|
|
|
|
Default modules are located within `~/.config/dwmbar/modules`, and custom
|
|
|
|
modules can be placed in `~/.config/dwmbar/modules/custom`. If a default module
|
|
|
|
exists with the same name as a custom module, then the custom module will take
|
|
|
|
precedence.
|
|
|
|
|
|
|
|
**Default modules will possibly be overwritten during updates, so if you want
|
|
|
|
to modify them be sure to make a copy in the custom folder, which will not be
|
|
|
|
touched, and edit it there.**
|
|
|
|
|
|
|
|
Modules can be written in any language, so long as they are executable and
|
|
|
|
print their output to stdout.
|
|
|
|
|
|
|
|
Currently available default modules are:
|
2019-11-06 14:32:52 +00:00
|
|
|
- archupdates - Gets the number of updates available **Arch Linux Only**
|
|
|
|
- backlight - Shows the brightness of the screen
|
|
|
|
- battery - Gets battery percentage
|
|
|
|
- bluetooth - Shows bluetooth status
|
|
|
|
- cpuload - Shows the CPU load in %
|
|
|
|
- date - Shows the calendar date
|
|
|
|
- daypercentage - Shows how far through the day you are, in %
|
|
|
|
- disksize - Shows the disk usage
|
|
|
|
- ethernet - Shows ethernet connection
|
|
|
|
- fanspeed - Shows the rpm of your main fan
|
|
|
|
- hostname - Shows your current user and hostname
|
|
|
|
- internet - Shows whether internet is available (TODO)
|
|
|
|
- kernel - Shows the kernel version
|
|
|
|
- localip - Shows your local IP address
|
|
|
|
- mail - Shows how much mail you have
|
|
|
|
- mpd - Shows MPD status
|
|
|
|
- networkdowntraffic - Gets the download traffic in Kb/s
|
|
|
|
- networkuptraffic - Gets the upload traffic in Kb/s
|
|
|
|
- publicip - Shows your public IP address
|
|
|
|
- ram - Shows RAM usage
|
|
|
|
- redshift - Shows current screen temperature from Redshift
|
|
|
|
- sunmoon - Displays a sun or moon for time of day
|
|
|
|
- temperature - Displays the temperature of the CPU
|
|
|
|
- time - Displays time
|
|
|
|
- todo - Prints the number of todos for the "t" todo manager
|
|
|
|
- tor - Prints if the tor service is enabled
|
|
|
|
- voidupdates - Gets the number of updates available **Void Linux Only**
|
|
|
|
- volumebar - Displays a volume bar
|
|
|
|
- volume - Prints volume in %
|
|
|
|
- weather - Shows weather info
|
|
|
|
- wifi - Shows wifi connection
|
2019-10-22 21:33:12 +00:00
|
|
|
|
2019-10-23 14:33:28 +00:00
|
|
|
## Module Prerequisites
|
|
|
|
|
|
|
|
See Module Dependencies
|
|
|
|
* archupdates
|
|
|
|
- Arch Linux
|
|
|
|
- yay
|
|
|
|
- pacman-contrib
|
|
|
|
* backlight
|
|
|
|
- light
|
|
|
|
* bluetooth
|
|
|
|
- bluez
|
2019-11-06 14:32:52 +00:00
|
|
|
* fanspeed
|
|
|
|
- lmsensors
|
2019-10-23 14:33:28 +00:00
|
|
|
* mail
|
|
|
|
- mutt/neomutt (We recommend [Luke Smith's Mutt-Wizard](https://github.com/LukeSmithxyz/mutt-wizard)) for configuration.
|
|
|
|
* mpd
|
|
|
|
- mpd
|
|
|
|
- mpc
|
2019-11-06 14:32:52 +00:00
|
|
|
* publicip
|
|
|
|
- curl
|
2019-10-23 14:33:28 +00:00
|
|
|
* redshift
|
|
|
|
- redshift
|
|
|
|
* sunmoon
|
|
|
|
- redshift
|
|
|
|
* temperature
|
|
|
|
- lm_sensors
|
|
|
|
* todo
|
|
|
|
- [t todo manager](https://github.com/sjl/t)
|
|
|
|
* tor
|
|
|
|
- tor
|
2019-11-06 14:32:52 +00:00
|
|
|
* voidupdates
|
|
|
|
- xbps package manager
|
2019-10-23 14:33:28 +00:00
|
|
|
* volume
|
|
|
|
- pulseaudio
|
|
|
|
* volumebar
|
|
|
|
- pulseaudio
|
|
|
|
* weather
|
|
|
|
- curl
|
|
|
|
- Internet connection
|
|
|
|
* wifi
|
|
|
|
- Wifi card
|
|
|
|
|
2019-10-22 22:45:54 +00:00
|
|
|
# Feature Wishlist
|
|
|
|
|
|
|
|
* Paralellised Modules
|
|
|
|
- Some modules are slower than others. Have modules set a DELAY variable;
|
|
|
|
if they don't have one, use a default.
|
|
|
|
- Modules are called and bar is updated when a module finishes, but an
|
|
|
|
internal bar clock updates the clock at a specific delay.
|