{pkgs, ...}: let workspace-toggle = pkgs.writeShellScriptBin "workspace-toggle" '' #!/usr/bin/env bash target_workspace="$1" # Get current workspace info 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) if [[ $current -lt 0 ]]; then # We're in a special workspace, force switch to target workspace ${pkgs.hyprland}/bin/hyprctl dispatch focusworkspaceoncurrentmonitor "$target_workspace" elif [[ $current -eq $target_workspace ]]; then # We're already on the target workspace, toggle back to previous ${pkgs.hyprland}/bin/hyprctl dispatch workspace previous else # We're on a different normal workspace, switch to target using split:workspace ${pkgs.hyprland}/bin/hyprctl dispatch split:workspace "$target_workspace" fi ''; in { home.packages = [workspace-toggle]; }