mirror of
https://github.com/ItsDrike/nixdots
synced 2024-12-25 18:54:34 +00:00
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:
parent
7ab53d2654
commit
b51d136c0c
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 {};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
{pkgs, ...}:
|
|
||||||
pkgs.writeShellScriptBin "hyprland-swap-workspace" ''
|
|
||||||
${builtins.readFile ./hyprland-swap-workspace.sh}
|
|
||||||
''
|
|
|
@ -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
|
|
Loading…
Reference in a new issue