22 lines
		
	
	
		
			565 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
		
			565 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/usr/bin/env bash
 | |
| set -eo pipefail
 | |
| 
 | |
| mkdir -p /tmp/lockscreen || true
 | |
| 
 | |
| monitor_lines=$(hyprctl monitors -j | jq -r '.[] | select (.name | contains ("DP")) | [.name, .description]| @tsv')
 | |
| 
 | |
| while IFS= read -r m; do
 | |
|     name=$(echo "$m" | awk -F $'\t' '{print $1}')
 | |
|     sum=$(echo "$m" | awk -F $'\t' '{printf $2}' | sha256sum | awk '{print substr($1,1,8)}')
 | |
| 
 | |
|     grim -o "$name" "/tmp/lockscreen/$sum.png" || true
 | |
| done <<< "$monitor_lines"
 | |
| 
 | |
| # Only lock if not already running
 | |
| if [ -z "$(pgrep hyprlock)" ] 
 | |
| then 
 | |
|     exec hyprlock
 | |
| else
 | |
|     echo "Already locked"
 | |
| fi 
 |