22 lines
		
	
	
		
			560 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
		
			560 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env bash
 | |
| 
 | |
| # Get available windows
 | |
| windows=$(swaymsg -t get_tree | jq -r 'recurse(.nodes[]?)|recurse(.floating_nodes[]?)|select(.type=="con"),select(.type=="floating_con")|(.id|tostring)+" "+.app_id+": "+.name')
 | |
| 
 | |
| case "$1" in
 | |
|   movehere)
 | |
|     cmd="move workspace current"
 | |
|     prompt="move window here"
 | |
|     ;;
 | |
|   *)
 | |
|     cmd="focus"
 | |
|     prompt="go to window"
 | |
|     ;;
 | |
| esac
 | |
| 
 | |
| # Select window with rofi
 | |
| selected=$(echo "$windows" | wofi --show dmenu -i -p "$prompt" | awk '{print $1}')
 | |
| 
 | |
| # Tell sway to frobnicate said window
 | |
| swaymsg "[con_id=$selected]" $cmd
 |