mirror of
				https://github.com/ItsDrike/dotfiles.git
				synced 2025-11-04 01:16:35 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			22 lines
		
	
	
	
		
			858 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
	
		
			858 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
WORKSPACE="$1"
 | 
						|
 | 
						|
monitors_out="$(hyprctl monitors -j)"
 | 
						|
focused_mon="$(echo "$monitors_out" | jq '.[] | select(.focused==true) | .id')"
 | 
						|
focused_wks="$(echo "$monitors_out" | jq '.[].activeWorkspace.id')"
 | 
						|
 | 
						|
# Workspace is already focused, check on which monitor
 | 
						|
if echo "$focused_wks" | grep "$WORKSPACE" >/dev/null; then
 | 
						|
  mon_id="$(echo "$monitors_out" | jq ".[] | select(.activeWorkspace.id==$WORKSPACE) | .id")"
 | 
						|
 | 
						|
  # If the workspace is focused on the active monitor, don't do anything (we're here).
 | 
						|
  # Otherwise, swap the workspaces.
 | 
						|
  if [ "$mon_id" -ne "$focused_mon" ]; then
 | 
						|
    hyprctl dispatch swapactiveworkspaces "$focused_mon" "$mon_id"
 | 
						|
  fi
 | 
						|
# Switching to an unfocused workspace, always move it to focused monitor
 | 
						|
else
 | 
						|
  hyprctl dispatch moveworkspacetomonitor "$WORKSPACE" "$focused_mon"
 | 
						|
  hyprctl dispatch workspace "$WORKSPACE"
 | 
						|
fi
 |