diff options
| author | Nathan Reiner <nathan@reinerweb.ch> | 2022-05-07 20:57:28 +0200 |
|---|---|---|
| committer | Nathan Reiner <nathan@reinerweb.ch> | 2022-05-07 20:57:28 +0200 |
| commit | d98a3cae654f30318e92f0bd19298d8fbfc37bef (patch) | |
| tree | aeb0b14a0754cd8411a52e8108d5e7b8c7ed3bff | |
| parent | 45e4db99d709cf278415e681c98a0204a9c8ca9e (diff) | |
execute scripts instead of hardcoded
| -rw-r--r-- | README.md | 35 | ||||
| -rwxr-xr-x | status | 28 |
2 files changed, 56 insertions, 7 deletions
@@ -1,3 +1,38 @@ # status This is a status script for dwm + +## Modules + +Each module of your statusbar is a scripts that is located under `~/.local/share/status/` + +Each script will be executed in alphanumeric order, so if you want to have +a specific order in which your bar is displayed use numbers as prefix +of your scripts like this: + +``` +~/.local/share/status: + 00_battery + 01_volume + 02_clock + ... +``` + +## Usage + +To start the status daemon use the `-d` flag. +If you want that the statusbar updates a *unit*, for example *01_volume* when +the volume buttons are pressed, just just execute `status -u 01_volume` to +update the unit. + +## Config + +In the config under `~/.config/status/config` you can set the following +variables: + +- CMDFIFO: Where to place the FIFO which is the communication layer between + the daemon and the update requests. (default: ~/.cache/status) +- BINDIR: Where your unit files are stored (default: ~/.local/share/status/) +- AUTOREFRESH: After how many seconds the statusbar should autorefresh (default: 60) + +The config is just sourced into the script so just use *POSIX-Shell* Syntax in it. @@ -1,27 +1,41 @@ #!/bin/sh CMDFIFO=~/.cache/status +BINDIR=~/.local/share/status +AUTOREFRESH=60 -clockupdate() { +if [ -f "~/.config/status/config" ]; then + source ~/.config/status/config +fi + +mkdir -p $BINDIR + +autorefresh() { while (true); do - echo update clock > $CMDFIFO - sleep 60 + sleep $AUTOREFRESH + echo autoupdate > $CMDFIFO + done +} + +exec_bins() { + for bin in $BINDIR/*; do + $bin done } daemon() { [ ! -p "$CMDFIFO" ] && mkfifo $CMDFIFO - clockupdate & - status() { xsetroot -name " $(cat) " } + autorefresh & + cmd="" while (true); do - echo "$(volume)|$(clock)" | column -t -s '|' | status + exec_bins | sed -zE 's/\n/|/g' | column -t -s '|' | status cmd=$(cat $CMDFIFO) done @@ -37,6 +51,6 @@ help() { case "$1" in -d) daemon;; - -u) echo "$2" > $CMDFIFO;; + -u) echo "update $2" > $CMDFIFO;; -h) help;; esac |