dwmbar/README.md

165 lines
4.9 KiB
Markdown
Raw Permalink Normal View History

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
2021-10-21 12:28:01 +00:00
See [module prerequisites](#module-prerequisites).
2019-10-23 14:33:28 +00:00
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.
## Writing Modules
2019-11-06 16:47:25 +00:00
Default modules are located within `/usr/share/dwmbar/modules`, and custom
2019-10-22 21:33:12 +00:00
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
2019-11-06 14:53:33 +00:00
- lm_sensors
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.