- Current Functions
- Installation
- Configuration
- Reccomendations
- Usage
- Customizing
- Contributing
- Acknowledgements
Displays the current master volume of ALSA
[🔉 55%]
Dependencies: alsa-utils
Displays the current master volume of PulseAudio
[🔉 55%]
Dependencies: pamixer
Displays battery level and status
[🔋 100% full]
Displays the status of countdown
[⏳ 00:10:00]
Dependencies: countdown.sh
Displays upcoming alarms from alarm
[⏰ 22:30:00]
Dependencies: alarm.sh
Displays the current keyboard layout
[⌨ gb]
Dependencies: xorg-setxkbmap
Displays information regarding memory, CPU temperature, and storage
[🖥 MEM 1.3Gi/15Gi CPU 45C STO 2.3G/200G: 2%]
Displays current cmus status, artist, track, position, duration, and shuffle
[▶ The Unicorns - Tuff Ghost 0:43/2:56 🔀]
Dependencies: cmus
Displays current mpc status, artist, track, position, duration, and shuffle
[▶ The Unicorns - Tuff Ghost 0:43/2:56 🔀]
Dependencies: mpc
Displays current Spotify status, artist, track, and duration
Either the official Spotify client or spotifyd can be used. Unfortunately, only spotifyd can provide track position and shuffle status
[▶ The Unicorns - Tuff Ghost 0:43/2:56 🔀]
Dependencies: spotify/spotifyd, playerctl
Displays the current date and time
[🕰 Mon 06-05-19 21:31:58]
Displays the current number of emails in an inbox
[📫 2]
Displays the current weather provided by wttr.in
Please remember wttr.in has a limited number of requests, so this module may occasionally not be able to recieve weather information when experiencing high traffic.
[☀ +20°C]
Displays the current network connection, private IP, and public IP using NetworkManager
[🌐 enp7s0: 192.168.0.1/24 | 185.199.109.153]
Dependencies: NetworkManager, curl
Displays the current network connection and private IP using wpa_cli
[襤 My-Wifi 192.168.0.3]
Dependencies: wpa_cli
Displays the current VPN connections with OpenVPN or Wireguard
[🔒 Sweden - Stockholm]
Dependencies: NetworkManager, NetworkManager-openvpn (for OpenVPN connections)
Displays the next appointment from calcurse
[💡 18/04/19 19:00 20:00 Upload dwm_ccurse]
Dependencies: calcurse
Displays the current status of a torrent with transmission-remote
[⏬ archlinux-2019.06.01... | 92% 1min ⬆3.4 ⬇1.5]
Dependencies: transmission-remote
Displays the current backlight level with xbacklight
[☀ 80]
Dependencies: xbacklight
Shows network information IP, SSID, WLan strength (if connected to WLan) using connman.
[🌐 192.169.189.12 HomeNetworkName 53%]
Dependencies: connman
Displays the average system load
[⏱ 0.14 0.17 0.18]
Displays how much power is being produced from your solar panels
[💡 3.012 W ]
Displays the current rate of your currency in comparison to the USD provided by rate.sx
[💡 1.225 ]
Dependencies: curl
- Clone and enter the repository:
$ git clone https://github.com/joestandring/dwm-bar
$ cd dwm-bar
- Install Dependencies from dep/YourDisto.txt
- For Arch Linux
$ sudo pacman -S $(dep/arch.txt)
- For Fedora Linux
$ sudo dnf install $(dep/fedora.txt)
⚠️ There are no dnf packages for spotyfyd, pamixer and cmus. If you want to utilise these packages, please install them manually as shown in the corresponding gihub repos.
- Make the script executable
$ chmod +x dwm_bar.sh
dwm-bar supports the extrabar patch for dwm. This allows the user to add a second status bar at the bottom of the screen. To add the second bar:
- Patch dwm with the the extrabar plugin
- Comment out the line
xsetroot -name "$upperbar"
indwm_bar.sh
- Uncomment the line
xsetroot -name "$upperbar;$lowerbar"
indwm_bar.sh
- Append functions underneath
upperbar=""
andlowerbar=""
. For example:
# Append results of each func one by one to the upperbar string
upperbar=""
upperbar="$upperbar$(dwm_myupperfunction)"
# Append results of each func one by one to the lowerbar string
lowerbar=""
lowerbar="$lowerbar$(dwm_mylowerfunction)"
To make the most out of Unicode support, consider using a font that includes many Unicode characters. For example:
While not always necessary, it's a good idea to specify these fonts in your dwm config.
Simply run the script and dwm should display your bar:
$ ./dwm_bar.sh
Most likely, you will need to change some values for functions to get them to work - these are outlined with a comment for functions where this is likely the case. If you would like your bar to be displayed when X starts, add this to your .xinitrc file before launching dwm. For example, if the script is located in /home/$USER/dwm-bar/:
# Statusbar
/home/$USER/dwm-bar/dwm_bar.sh &
# Start dwm
exec dwm
dwm-bar is completely modular, meaning you can mix and match functions to your heart's content. It's functions are located in the bar-functions/ subdirectory and included in dwm_bar.sh If you want to make your own function, for example, dwm_myfunction.sh, you should create it in the bar-functions/ subdirectory before including it in dwm_bar.sh and adding it to the xsetroot command:
# Import the modules
. "$DIR/bar-functions/dwm_myfucntion"
while true
do
xsetroot -name "$(dwm_myfunction)"
sleep 1
done
You can also decide to use Unicode or plaintext identifiers for functions by altering the $IDENTIFIER
value. For example, set to "unicode"
, dwm_mail
will display:
[📫 0]
Whereas, if it is not set it will display:
[MAIL 0]
See CONTRIBUTING.md before contributing.
Code for some functions was modified from: