54 lines
		
	
	
	
		
			725 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
	
		
			725 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/usr/bin/env zsh
 | 
						|
 | 
						|
source $bspwm_config_dir/common
 | 
						|
 | 
						|
status::date() {
 | 
						|
	while true; do
 | 
						|
		printf 'date::%%{T2}%s%%{T}\n' "$(date '+%a %d %H:%M:%S')"
 | 
						|
		sleep 1
 | 
						|
	done
 | 
						|
}
 | 
						|
 | 
						|
status::updates() {
 | 
						|
	declare pkgs
 | 
						|
 | 
						|
	while true; do
 | 
						|
		pkgs=( $(pacman -Qqu) )
 | 
						|
		pkgs_n=${#pkgs[@]}
 | 
						|
 | 
						|
		if (( pkgs_n )); then
 | 
						|
			printf 'updates::[ Updates: %s ]\n' "${#pkgs[@]}"
 | 
						|
		else
 | 
						|
			printf 'updates::[ No updates ]\n'
 | 
						|
		fi
 | 
						|
 | 
						|
		sleep 5
 | 
						|
	done
 | 
						|
}
 | 
						|
 | 
						|
cleanup() {
 | 
						|
	eval "kill ${${jobstates##*:*:}%=*}"
 | 
						|
}
 | 
						|
 | 
						|
rexec() {
 | 
						|
	eval "kill ${${jobstates##*:*:}%=*}"
 | 
						|
	exec "$0"
 | 
						|
}
 | 
						|
 | 
						|
main() {
 | 
						|
	declare msg date
 | 
						|
	typeset -a modules
 | 
						|
 | 
						|
	trap cleanup EXIT TERM INT
 | 
						|
	trap rexec HUP
 | 
						|
 | 
						|
	modules=( date )
 | 
						|
 | 
						|
	for i in "${modules[@]}"; do
 | 
						|
		"status::${i}" > "$panel_fifo" &
 | 
						|
	done
 | 
						|
 | 
						|
	wait
 | 
						|
}
 | 
						|
 | 
						|
main
 |