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

View file

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

View file

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

View file

@ -3,7 +3,6 @@
...
}: let
packages = {
hyprland-swap-workspace = pkgs.callPackage ./hyprland-swap-workspace {};
hyprland-move-window = pkgs.callPackage ./hyprland-move-window {};
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