From 38f69c47e35316235993c337d4263f0761bd4cae Mon Sep 17 00:00:00 2001 From: alejandro-angulo Date: Fri, 13 Feb 2026 20:12:46 -0800 Subject: [PATCH] Add clamshell config --- .../home/windowManagers/hyprland/default.nix | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/modules/home/windowManagers/hyprland/default.nix b/modules/home/windowManagers/hyprland/default.nix index 8ddf626..89256f8 100644 --- a/modules/home/windowManagers/hyprland/default.nix +++ b/modules/home/windowManagers/hyprland/default.nix @@ -24,6 +24,18 @@ let emoji_picker = "${pkgs.bemoji}/bin/bemoji -t"; terminal = "${pkgs.kitty}/bin/kitty"; + internal_display_settings = "eDP-1,preferred,auto,1.6"; + clamshell_script = pkgs.writeShellScriptBin "clamshell" '' + if ${pkgs.hyprland}/bin/hyprctl monitors | ${pkgs.ripgrep}/bin/rg -q '\sDP-'; then + echo "Detected external monitor..." + if [[ "$1" == "open" ]]; then + ${pkgs.hyprland}/bin/hyprctl keyword monitor ${internal_display_settings} + else + ${pkgs.hyprland}/bin/hyprctl keyword monitor "eDP-1,disable" + fi + fi + ''; + generate_grim_command = target: '' exec mkdir -p ~/screenshots \ && ${pkgs.grim}/bin/grim -g "$(${pkgs.slurp}/bin/slurp)" \ @@ -171,6 +183,9 @@ in "$mod, d, exec, ${emoji_picker}" "$mod, z, exec, hyprctl reload" + # Move workspace across monitors + "$mod, semicolon, movecurrentworkspacetomonitor, +1" + # Focus "$mod, ${left}, movefocus, l" "$mod, ${down}, movefocus, d" @@ -238,6 +253,8 @@ in ", XF86AudioPlay, exec, ${pkgs.playerctl}/bin/playerctl play-pause" ", XF86MonBrightnessDown, exec, ${pkgs.light}/bin/light -U 5" ", XF86MonBrightnessUp, exec, ${pkgs.light}/bin/light -A 5" + ", switch:off:Lid Switch, exec, ${clamshell_script}/bin/clamshell open" + ", switch:on:Lid Switch, exec, ${clamshell_script}/bin/clamshell close" ]; }; };