Improve screenshot tool for wayland
This commit is contained in:
		
							parent
							
								
									018c576357
								
							
						
					
					
						commit
						fdefb7037b
					
				
					 1 changed files with 46 additions and 13 deletions
				
			
		|  | @ -1,29 +1,62 @@ | |||
| #!/usr/bin/env sh | ||||
| 
 | ||||
| tool="grim" | ||||
| 
 | ||||
| rclone_remote="s3-serguzim-me:public/screenshots" | ||||
| screenshot_host="https://s3.serguzim.me/public/screenshots" | ||||
| path="/tmp/screenshot.webp" | ||||
| screenshot_path="/tmp/screenshot.webp" | ||||
| file="$(date '+%F_%H-%M-%S').webp" | ||||
| 
 | ||||
| clip_image() | ||||
| { | ||||
|     xclip -t image/png "$1" -selection clipboard | ||||
| 	if [ -n "$WAYLAND_DISPLAY" ] | ||||
| 	then | ||||
| 		wc-copy -t image/png < "$screenshot_path" | ||||
| 	else | ||||
| 		xclip -t image/png "$screenshot_path" -selection clipboard | ||||
| 	fi | ||||
| } | ||||
| 
 | ||||
| upload_image() | ||||
| { | ||||
| 	# to have link available in clipboard manager | ||||
|     printf '%s' "$screenshot_host/$file" | xclip -selection clipboard | ||||
|     printf '%s' "$screenshot_host/$file" | xclip -selection primary | ||||
|     rclone copyto "$1" "$rclone_remote/$file" | ||||
| 	if [ -n "$WAYLAND_DISPLAY" ] | ||||
| 	then | ||||
| 		wl-copy "$screenshot_host/$file" | ||||
| 		wl-copy -p "$screenshot_host/$file" | ||||
| 	else | ||||
| 		printf '%s' "$screenshot_host/$file" | xclip -selection clipboard | ||||
| 		printf '%s' "$screenshot_host/$file" | xclip -selection primary | ||||
| 	fi | ||||
| 
 | ||||
|     rclone copyto "$screenshot_path" "$rclone_remote/$file" | ||||
|     notify-send -a "Screenshot" "Uploaded screenshot to s3" | ||||
| } | ||||
| 
 | ||||
| call_screenshot_tool() { | ||||
| 	case $tool in | ||||
| 		flameshot) | ||||
| 			result=$(flameshot gui -r | tee $screenshot_path | wc -c) ;; | ||||
| 		grim) | ||||
| 			result=$(grim -g "$(slurp)" - | tee $screenshot_path | wc -c) ;; | ||||
| 		*) | ||||
| 			echo "Unknown screenshot tool: $tool" | ||||
| 			return 1 ;; | ||||
| 	esac | ||||
| 
 | ||||
| 	if [ "$result" -gt 0 ] | ||||
| 	then | ||||
| 		return 0 | ||||
| 	else | ||||
| 		return 1 | ||||
| 	fi | ||||
| } | ||||
| 
 | ||||
| main_no_upload() | ||||
| { | ||||
|     if [ "$(flameshot gui -r | tee $path | wc -c)" -gt 0 ] | ||||
| 	if call_screenshot_tool | ||||
|     then | ||||
|         clip_image $path | ||||
|         clip_image $screenshot_path | ||||
|     fi | ||||
| } | ||||
| 
 | ||||
|  | @ -31,14 +64,14 @@ main() | |||
| { | ||||
|     if [ -n "$1" ] && [ -e "$1" ] | ||||
|     then | ||||
|         convert "$1" "$path" | ||||
|         upload_image "$path" | ||||
|         clip_image "$path" | ||||
|         convert "$1" "$screenshot_path" | ||||
|         upload_image | ||||
|         clip_image | ||||
|     else | ||||
|         if [ "$(flameshot gui -r | tee $path | wc -c)" -gt 0 ] | ||||
| 		if call_screenshot_tool | ||||
|         then | ||||
|             upload_image "$path" | ||||
|             clip_image "$path" | ||||
|             upload_image | ||||
|             clip_image | ||||
|         fi | ||||
|     fi | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue