Add screenshot script
This commit is contained in:
		
							
								
								
									
										40
									
								
								ScreenShot/screengrab
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										40
									
								
								ScreenShot/screengrab
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,40 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
SAVE_DIR="$HOME/Pictures/Screenshots"
 | 
			
		||||
 | 
			
		||||
mkdir -p "$SAVE_DIR"
 | 
			
		||||
 | 
			
		||||
FILENAME="$SAVE_DIR/screenshot_$(date +"%Y-%m-%d_%H-%M-%S").png"
 | 
			
		||||
 | 
			
		||||
capture_full_screen() {
 | 
			
		||||
    grim "$FILENAME"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
capture_selection() {
 | 
			
		||||
    region=$(slurp)
 | 
			
		||||
    grim -g "$region" "$FILENAME"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
capture_window() {
 | 
			
		||||
    window_geometry=$(swaymsg -t get_tree | jq -r '.. | select(.focused?) | .rect | "\(.x),\(.y) \(.width)x\(.height)"')
 | 
			
		||||
    grim -g "$window_geometry" "$FILENAME"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
case "$1" in
 | 
			
		||||
    --full)
 | 
			
		||||
        capture_full_screen
 | 
			
		||||
        ;;
 | 
			
		||||
    --select)
 | 
			
		||||
        capture_selection
 | 
			
		||||
        ;;
 | 
			
		||||
    --window)
 | 
			
		||||
        capture_window
 | 
			
		||||
        ;;
 | 
			
		||||
    *)
 | 
			
		||||
        echo "Invalid option. Usage: screengrab [--full|--select|--window]"
 | 
			
		||||
        exit 1
 | 
			
		||||
        ;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
wl-copy < "$FILENAME" && notify-send "Screengrab" "Screenshot copied to clipboard"
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user