{ pkgs, lib, ...}: { wayland.windowManager.hyprland = let monitor-switcher = pkgs.writers.writeBashBin "monitor_switcher" /*bash*/ '' MODE=$1 case $MODE in "tv") hyprctl keyword monitor "DP-3, 1920x1080@60, 3840x0, 1" hyprctl keyword monitor "HDMI-A-1, 3840x2160@60, 0x0, 1" notify-send "TV mode" ;; "mirror") hyprctl keyword monitor "HDMI-A-1, 3840x2160@60, 0x0, 1" hyprctl keyword monitor "DP-3, preferred, auto, 1, mirror, HDMI-A-1" notify-send "TV-only mode" ;; "display"|*) hyprctl keyword monitor "HDMI-A-1, disable" hyprctl keyword monitor "DP-3, 3440x1440@165, 0x0, 1" notify-send "Display mode" ;; esac ''; in { settings = { monitor = [ "DP-3, 3440x1440@165, auto-right, 1" # "HDMI-A-1, 3840x2160@60, auto-left, 2" "HDMI-A-1, disabled" ]; bind = [ '', XF86Calculator, exec, ghostty --title=pulsemixer -e pulsemixer'' ''$mainMod, F1, exec, ${lib.getExe monitor-switcher} tv'' ''$mainMod, F2, exec, ${lib.getExe monitor-switcher} mirror'' ''$mainMod, F3, exec, ${lib.getExe monitor-switcher}'' ]; workspace = [ "2, layout:scrolling" "4, layout:monocle" ]; }; }; }