btw i use nix
1#!/usr/bin/env bash
2
3INFOS=()
4
5DATE=`date "+%a %Y-%m-%d %I:%M:%S%p"`
6
7add_info() {
8 local SCRIPT_NAME=$1
9 local INFO="`$(dirname "$0")/../lib/${SCRIPT_NAME}.sh`"
10 if [ "$INFO" != "" ]; then
11 INFOS+=("$INFO")
12 fi
13}
14
15TIMEOUT=10000
16
17if [ "$#" -eq 0 ] || ([ "$#" -eq 2 ] && ([[ "$1" = "-t" ]] || [[ "$1" = "--timeout" ]])) ; then
18 INFOS+=("$DATE")
19 add_info "workspace"
20 add_info "mail"
21 add_info "idle"
22 add_info "disk"
23 add_info "cpu"
24 add_info "temperature"
25 add_info "load_average"
26 add_info "memory"
27 add_info "network"
28 add_info "backlight"
29 add_info "pulse"
30 add_info "player"
31 add_info "battery"
32else
33 while (( "$#" )); do
34 case "$1" in
35 -t|--timeout)
36 TIMEOUT=$2
37 shift 2
38 ;;
39 *)
40 case "$1" in
41 date) INFOS+=("$DATE") ;;
42 workspace) add_info "workspace" ;;
43 mail) add_info "mail" ;;
44 idle) add_info "idle" ;;
45 disk) add_info "disk" ;;
46 cpu) add_info "cpu" ;;
47 temperature) add_info "temperature" ;;
48 load_average) add_info "load_average" ;;
49 memory) add_info "memory" ;;
50 network) add_info "network" ;;
51 backlight) add_info "backlight" ;;
52 pulse) add_info "pulse" ;;
53 player) add_info "player" ;;
54 battery) add_info "battery" ;;
55 *) echo "Warning: Unknown argument '$1'";;
56 esac
57 shift
58 ;;
59 esac
60 done
61fi
62
63IFS=$'\n'; echo "${INFOS[*]}"
64
65ID_FILE="${XDG_CACHE_DIR:-"$HOME/.cache"}/st_id"
66ID="$(cat $ID_FILE)"
67REPLACE_ARG=""
68if [ ! -z $ID ]; then
69 REPLACE="-r"
70fi
71
72dunstify -t $TIMEOUT -u low "Status" -p $REPLACE $ID "`IFS=$'\n'; echo "${INFOS[*]}"`" > $ID_FILE