|
|
@@ -4,17 +4,18 @@
|
|
|
|
target_workspace="$1"
|
|
|
|
target_workspace="$1"
|
|
|
|
|
|
|
|
|
|
|
|
# Get current workspace info
|
|
|
|
# Get current workspace info
|
|
|
|
current=$(${pkgs.hyprland}/bin/hyprctl activeworkspace -j | ${pkgs.jq}/bin/jq -r '.id')
|
|
|
|
current_info=$(${pkgs.hyprland}/bin/hyprctl activeworkspace -j)
|
|
|
|
|
|
|
|
current=$(echo "$current_info" | ${pkgs.jq}/bin/jq -r '.id')
|
|
|
|
|
|
|
|
|
|
|
|
# Check if we're in a special workspace (negative ID)
|
|
|
|
# Check if we're in a special workspace (negative ID)
|
|
|
|
if [[ $current -lt 0 ]]; then
|
|
|
|
if [[ $current -lt 0 ]]; then
|
|
|
|
# We're in a special workspace, switch to target workspace using split:workspace
|
|
|
|
# We're in a special workspace, force switch to target workspace
|
|
|
|
${pkgs.hyprland}/bin/hyprctl dispatch split:workspace "$target_workspace"
|
|
|
|
${pkgs.hyprland}/bin/hyprctl dispatch focusworkspaceoncurrentmonitor "$target_workspace"
|
|
|
|
elif [[ $current -eq $target_workspace ]]; then
|
|
|
|
elif [[ $current -eq $target_workspace ]]; then
|
|
|
|
# We're already on the target workspace, toggle back to previous
|
|
|
|
# We're already on the target workspace, toggle back to previous
|
|
|
|
${pkgs.hyprland}/bin/hyprctl dispatch workspace previous
|
|
|
|
${pkgs.hyprland}/bin/hyprctl dispatch workspace previous
|
|
|
|
else
|
|
|
|
else
|
|
|
|
# We're on a different workspace, switch to target using split:workspace
|
|
|
|
# We're on a different normal workspace, switch to target using split:workspace
|
|
|
|
${pkgs.hyprland}/bin/hyprctl dispatch split:workspace "$target_workspace"
|
|
|
|
${pkgs.hyprland}/bin/hyprctl dispatch split:workspace "$target_workspace"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
'';
|
|
|
|
'';
|
|
|
|