54 lines
		
	
	
	
		
			665 B
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			54 lines
		
	
	
	
		
			665 B
		
	
	
	
		
			Text
		
	
	
	
	
	
| 
								 | 
							
								#!/usr/bin/env bash
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								source "$HOME/.config/bspwm/common"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								status::date() {
							 | 
						||
| 
								 | 
							
									while true; do
							 | 
						||
| 
								 | 
							
										printf 'date::%%{T2}%s%%{T}\n' "$(date '+%a %d %H:%M')"
							 | 
						||
| 
								 | 
							
										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() {
							 | 
						||
| 
								 | 
							
									kill $(jobs -p)
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								rexec() {
							 | 
						||
| 
								 | 
							
									kill $(jobs -p)
							 | 
						||
| 
								 | 
							
									exec "$0"
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								main() {
							 | 
						||
| 
								 | 
							
									declare msg date
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									trap cleanup EXIT TERM INT
							 | 
						||
| 
								 | 
							
									trap rexec HUP
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									modules=( date )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									for i in "${modules[@]}"; do
							 | 
						||
| 
								 | 
							
										"status::${i}" > "$panel_fifo" &
							 | 
						||
| 
								 | 
							
									done
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									wait
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								main
							 |