dwm-bar for archlinux
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
ostrov 5ce00b4667 Adds a Dependecy Listing Feature. 3 years ago
.github Create FUNDING.yml 4 years ago
bar-functions Parallelize non-local processes 3 years ago
dep Adds a Dependecy Listing Feature. 3 years ago
CONTRIBUTING.md Adds a Dependecy Listing Feature. 3 years ago
LICENSE Initial commit 5 years ago
README.md Adds a Dependecy Listing Feature. 3 years ago
dwm_bar.sh Enables Lower Bar and Upper Bar Edditing 3 years ago
sshot.png Added screenshot 5 years ago

README.md

dwm-bar

A modular statusbar for dwm screenshot ko-fi

Table of Contents

dwm_alsa

Displays the current master volume of ALSA

[🔉 55%]

Dependencies: alsa-utils

dwm_pulse

Displays the current master volume of PulseAudio

[🔉 55%]

Dependencies: pamixer

dwm_battery

Displays battery level and status

[🔋 100% full]

dwm_countdown

Displays the status of countdown

[⏳ 00:10:00]

Dependencies: countdown.sh

dwm_alarm

Displays upcoming alarms from alarm

[⏰ 22:30:00]

Dependencies: alarm.sh

dwm_keyboard

Displays the current keyboard layout

[⌨ gb]

Dependencies: xorg-setxkbmap

dwm_resources

Displays information regarding memory, CPU temperature, and storage

[🖥 MEM 1.3Gi/15Gi CPU 45C STO 2.3G/200G: 2%]

dwm_cmus

Displays current cmus status, artist, track, position, duration, and shuffle

[▶ The Unicorns - Tuff Ghost 0:43/2:56 🔀]

Dependencies: cmus

dwm_mpc

Displays current mpc status, artist, track, position, duration, and shuffle

[▶ The Unicorns - Tuff Ghost 0:43/2:56 🔀]

Dependencies: mpc

dwm_spotify

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

dwm_date

Displays the current date and time

[🕰 Mon 06-05-19 21:31:58]

dwm_mail

Displays the current number of emails in an inbox

[📫 2]

dwm_weather

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]

dwm_networkmanager

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

dwm_wpa

Displays the current network connection and private IP using wpa_cli

[襤 My-Wifi 192.168.0.3]

Dependencies: wpa_cli

dwm_vpn

Displays the current VPN connections with OpenVPN or Wireguard

[🔒 Sweden - Stockholm]

Dependencies: NetworkManager, NetworkManager-openvpn (for OpenVPN connections)

dwm_ccurse

Displays the next appointment from calcurse

[💡 18/04/19 19:00 20:00 Upload dwm_ccurse]

Dependencies: calcurse

dwm_transmission

Displays the current status of a torrent with transmission-remote

[⏬ archlinux-2019.06.01... | 92% 1min ⬆3.4 ⬇1.5]

Dependencies: transmission-remote

dwm_backlight

Displays the current backlight level with xbacklight

[☀ 80]

Dependencies: xbacklight

dwm_connman

Shows network information IP, SSID, WLan strength (if connected to WLan) using connman.

[🌐 192.169.189.12 HomeNetworkName 53%]

Dependencies: connman

dwm_loadavg

Displays the average system load

[⏱ 0.14 0.17 0.18]

dwm_solar_panel

Displays how much power is being produced from your solar panels

[💡 3.012 W ]

dwm_currency

Displays the current rate of your currency in comparison to the USD provided by rate.sx

[💡 1.225 ]

Dependencies: curl

Installation

  1. Clone and enter the repository:
$ git clone https://github.com/joestandring/dwm-bar
$ cd dwm-bar
  1. Install Dependencies from dep/YourDisto.txt
  • For Arch Linux
$ sudo pacman -S $(dep/arch.txt)

⚠️ Currently, only arch linux supports this feature. Dependency Lists for other Distributions are to be aded in future.

  1. Make the script executable
$ chmod +x dwm_bar.sh

Configuration

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:

  1. Patch dwm with the the extrabar plugin
  2. Comment out the line xsetroot -name "$upperbar" in dwm_bar.sh
  3. Uncomment the line xsetroot -name "$upperbar;$lowerbar" in dwm_bar.sh
  4. Append functions underneath upperbar="" and lowerbar="". 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)"

Recommendations

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.

Quick Start

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

Customizing

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]

Contributing

See CONTRIBUTING.md before contributing.

Acknowledgements

Code for some functions was modified from: