pinwheel: Assigning workspaces statically worked better in hyprland
Doing it dynamically didn't work as expected. Workspaces showed up on monitors they were not assigned to, and extra workspaced (11 ?) existed
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs, lib, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
home-manager.users.alex = {
|
home-manager.users.alex = {
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
@@ -13,6 +13,17 @@
|
|||||||
|
|
||||||
env = GDK_DPI_SCALE,1.5
|
env = GDK_DPI_SCALE,1.5
|
||||||
env = XCURSOR_SIZE,64
|
env = XCURSOR_SIZE,64
|
||||||
|
|
||||||
|
workspace = 1, monitor:HDMI-A-1
|
||||||
|
workspace = 2, monitor:HDMI-A-1
|
||||||
|
workspace = 3, monitor:HDMI-A-1
|
||||||
|
workspace = 4, monitor:HDMI-A-1
|
||||||
|
workspace = 5, monitor:HDMI-A-1
|
||||||
|
workspace = 6, monitor:eDP-1
|
||||||
|
workspace = 7, monitor:eDP-1
|
||||||
|
workspace = 8, monitor:eDP-1
|
||||||
|
workspace = 9, monitor:eDP-1
|
||||||
|
workspace = 10, monitor:eDP-1
|
||||||
'';
|
'';
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
@@ -136,18 +147,7 @@
|
|||||||
pkgs.libnotify
|
pkgs.libnotify
|
||||||
];
|
];
|
||||||
|
|
||||||
script = let
|
script = ''
|
||||||
wsRangeForMonitor = monitor: first: last:
|
|
||||||
if last < first
|
|
||||||
then throw "'first' has to be less than or equal to 'last'"
|
|
||||||
else
|
|
||||||
builtins.genList (n: "keyword workspace ${builtins.toString (first + n)}, monitor:${monitor}") (last - first + 1);
|
|
||||||
|
|
||||||
external = wsRangeForMonitor "HDMI-A-1" 1 5;
|
|
||||||
internal = wsRangeForMonitor "eDPI-1" 6 10;
|
|
||||||
onlyInternal = wsRangeForMonitor "eDPI-1" 1 10;
|
|
||||||
in
|
|
||||||
''
|
|
||||||
update() {
|
update() {
|
||||||
HDMI_STATUS=$(cat /sys/class/drm/card0-HDMI-A-1/status)
|
HDMI_STATUS=$(cat /sys/class/drm/card0-HDMI-A-1/status)
|
||||||
|
|
||||||
@@ -168,12 +168,10 @@
|
|||||||
INTERNAL_POS_Y=$HDMI_HEIGHT
|
INTERNAL_POS_Y=$HDMI_HEIGHT
|
||||||
|
|
||||||
hyprctl keyword monitor eDP-1,$INTERNAL_WIDTH"x"$INTERNAL_HEIGHT,$INTERNAL_POS_X"x"$INTERNAL_POS_Y,1
|
hyprctl keyword monitor eDP-1,$INTERNAL_WIDTH"x"$INTERNAL_HEIGHT,$INTERNAL_POS_X"x"$INTERNAL_POS_Y,1
|
||||||
hyprctl --batch "${lib.strings.concatStringsSep ";" (external ++ internal)}"
|
|
||||||
else
|
else
|
||||||
notify-send "Using only laptop monitor"
|
notify-send "Using only laptop monitor"
|
||||||
|
|
||||||
hyprctl --batch "keyword monitor HDMI-A,disable; keyword monitor eDP-1,$INTERNAL_WIDTH"x"$INTERNAL_HEIGHT,0x0,1"
|
hyprctl --batch "keyword monitor HDMI-A,disable; keyword monitor eDP-1,$INTERNAL_WIDTH"x"$INTERNAL_HEIGHT,0x0,1"
|
||||||
hyprctl --batch "${lib.strings.concatStringsSep ";" onlyInternal}"
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user