43
									
								
								homedir/.config/bspwm/bin/bspstate
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										43
									
								
								homedir/.config/bspwm/bin/bspstate
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,43 @@ | ||||
| #!/usr/bin/bash | ||||
|  | ||||
| ensure_dir() { | ||||
| 	declare d | ||||
|  | ||||
| 	for d in "$@"; do | ||||
| 		if ! [[ -d "$d" ]]; then | ||||
| 			if ! mkdir -p "$d"; then | ||||
| 				return $? | ||||
| 			fi | ||||
| 		fi | ||||
| 	done | ||||
|  | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| # Set XDG_RUNTIME_DIR | ||||
| if ! [[ "$XDG_RUNTIME_DIR" ]]; then | ||||
| 	XDG_RUNTIME_DIR="/run/user/$UID" | ||||
| fi | ||||
|  | ||||
| # Define some workdirs | ||||
| bspwm_rundir="$XDG_RUNTIME_DIR/bspwm" | ||||
| bspwm_statedir="$bspwm_rundir/state" | ||||
|  | ||||
| # Ensure the workdirs exist | ||||
| ensure_dir "$bspwm_rundir" "$bspwm_statedir" || exit $? | ||||
|  | ||||
| case "$1" in | ||||
| 	(save) | ||||
| 		# Save state | ||||
| 		bspc query -T > "$bspwm_statedir/tree" | ||||
| 		bspc query -H > "$bspwm_statedir/hist" | ||||
| 		bspc query -S > "$bspwm_statedir/stack" | ||||
| 	;; | ||||
|  | ||||
| 	(restore) | ||||
| 		# Restore state, if any | ||||
| 		[[ -f "$bspwm_statedir/tree" ]] && bspc restore -T "$bspwm_statedir/tree" | ||||
| 		[[ -f "$bspwm_statedir/hist" ]] && bspc restore -H "$bspwm_statedir/hist" | ||||
| 		[[ -f "$bspwm_statedir/stack" ]] && bspc restore -S "$bspwm_statedir/stack" | ||||
| 	;; | ||||
| esac | ||||
		Reference in New Issue
	
	Block a user