Move to focusworkspaceoncurrentmonitor (from custom script)

For a long time now, I've been using a custom shell script to handle
focusing to a workspace, which handled (xmonad-like) monitor swapping.

However recently, the option `focusworkspaceoncurrentmonitor` has been
added to Hyprland, which does the exact same. That means the script is
no longer necessary and we can move to the new built-in option.
This commit is contained in:
ItsDrike 2024-06-20 23:30:56 +02:00
parent 7ab53d2654
commit b51d136c0c
Signed by: ItsDrike
GPG key ID: FA2745890B7048C0
6 changed files with 10 additions and 39 deletions

View file

@ -4,8 +4,7 @@
source "./scripts/include" source "./scripts/include"
if [ "$1" = "--switch" ]; then if [ "$1" = "--switch" ]; then
$HOME/.local/bin/scripts/gui/hyprland/swap-workspace "$2" >/dev/null hyprctl dispatch focusworkspaceoncurrentmonitor "$2" >/dev/null
# hyprctl dispatch workspace "$2" >/dev/null
elif [ "$1" = "--loop" ]; then elif [ "$1" = "--loop" ]; then
hyprland_ipc "workspace|createworkspace|destroyworkspace" | ./scripts/workspaces.py "$@" hyprland_ipc "workspace|createworkspace|destroyworkspace" | ./scripts/workspaces.py "$@"
else else

View file

@ -107,15 +107,15 @@
# #
# Switch workspace (swapping to current monitor) # Switch workspace (swapping to current monitor)
# #
"SUPER, 1, exec, hyprland-swap-workspace 1" "SUPER, 1, focusworkspaceoncurrentmonitor, 1"
"SUPER, 2, exec, hyprland-swap-workspace 2" "SUPER, 2, focusworkspaceoncurrentmonitor, 2"
"SUPER, 3, exec, hyprland-swap-workspace 3" "SUPER, 3, focusworkspaceoncurrentmonitor, 3"
"SUPER, 4, exec, hyprland-swap-workspace 4" "SUPER, 4, focusworkspaceoncurrentmonitor, 4"
"SUPER, 5, exec, hyprland-swap-workspace 5" "SUPER, 5, focusworkspaceoncurrentmonitor, 5"
"SUPER, 6, exec, hyprland-swap-workspace 6" "SUPER, 6, focusworkspaceoncurrentmonitor, 6"
"SUPER, 7, exec, hyprland-swap-workspace 7" "SUPER, 7, focusworkspaceoncurrentmonitor, 7"
"SUPER, 8, exec, hyprland-swap-workspace 8" "SUPER, 8, focusworkspaceoncurrentmonitor, 8"
"SUPER, 9, exec, hyprland-swap-workspace 9" "SUPER, 9, focusworkspaceoncurrentmonitor, 9"
# #
# Move window to workspace # Move window to workspace

View file

@ -16,7 +16,6 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
home.packages = [ home.packages = [
hyprPkgs.hyprland-swap-workspace
hyprPkgs.hyprland-move-window hyprPkgs.hyprland-move-window
pkgs.brightnessctl pkgs.brightnessctl
hyprPkgs.brightness hyprPkgs.brightness

View file

@ -3,7 +3,6 @@
... ...
}: let }: let
packages = { packages = {
hyprland-swap-workspace = pkgs.callPackage ./hyprland-swap-workspace {};
hyprland-move-window = pkgs.callPackage ./hyprland-move-window {}; hyprland-move-window = pkgs.callPackage ./hyprland-move-window {};
brightness = pkgs.callPackage ./brightness {}; brightness = pkgs.callPackage ./brightness {};
}; };

View file

@ -1,4 +0,0 @@
{pkgs, ...}:
pkgs.writeShellScriptBin "hyprland-swap-workspace" ''
${builtins.readFile ./hyprland-swap-workspace.sh}
''

View file

@ -1,22 +0,0 @@
#!/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