add(hyprland): workspace-toggle
workspace-toggle force workspace toggle between special and nonspecial; improve user intuitive action.
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
{pkgs, ...}: let
|
||||
workspace-toggle = pkgs.writeShellScriptBin "workspace-toggle" ''
|
||||
#!/usr/bin/env bash
|
||||
target_workspace="$1"
|
||||
|
||||
# Get current workspace info
|
||||
current=$(${pkgs.hyprland}/bin/hyprctl activeworkspace -j | ${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, switch to target workspace using split:workspace
|
||||
${pkgs.hyprland}/bin/hyprctl dispatch split:workspace "$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 workspace, switch to target using split:workspace
|
||||
${pkgs.hyprland}/bin/hyprctl dispatch split:workspace "$target_workspace"
|
||||
fi
|
||||
'';
|
||||
in {
|
||||
home.packages = [workspace-toggle];
|
||||
}
|
||||
Reference in New Issue
Block a user