diff --git a/home/linux/hyprland.nix b/home/linux/hyprland.nix index 0badfa5..d5c8945 100644 --- a/home/linux/hyprland.nix +++ b/home/linux/hyprland.nix @@ -5,6 +5,10 @@ globals, ... }: { + imports = [ + ./swaylock.nix + ]; + home.packages = with pkgs; [ firefox lxappearance @@ -22,19 +26,63 @@ wayland.windowManager.hyprland = { enable = true; - extraConfig = '' - exec = ${pkgs.swaybg}/bin/swaybg -i ${config.stylix.image} -m fill - ''; - settings = { - bind = [ - "SUPER, SPACE, exec, rofi -modes \"ssh,drun,window\" -show drun" + exec = [ + "${pkgs.swaybg}/bin/swaybg -i ${config.stylix.image} -m fill" + ]; + exec-once = [ + "sleep 10 && ${pkgs.swayidle}/bin/swayidle -w timeout 10 'if ${pkgs.busybox}/bin/pgrep ${pkgs.swaylock-effects}/bin/swaylock; then hyprctl dispatch dpms off; fi' resume 'hyprctl dispatch dpms on' before-sleep '${pkgs.swaylock-effects}/bin/swaylock -f'" + # Enables clipboard sync + "${pkgs.wl-clipboard}/bin/wl-paste -p | ${pkgs.wl-clipboard}/bin/wl-copy" + "${pkgs.wl-clipboard}/bin/wl-paste | ${pkgs.wl-clipboard}/bin/wl-copy -p" + "${pkgs.swaynotificationcenter}/bin/swaync" + ]; + + xwayland.force_zero_scaling = true; + + misc = { + disable_hyprland_logo = true; + disable_splash_rendering = true; + force_default_wallpaper = 0; + mouse_move_enables_dpms = true; + key_press_enables_dpms = true; + }; + + "$mod" = "SUPER"; + + bind = let + bright = "${pkgs.brightnessctl}/bin/brightnessctl"; + in [ + "$mod, SPACE, exec, rofi -modes \"ssh,drun,window\" -show drun" "ALT, SPACE, exec, rofi -show window" + ",switch:Apple SMC power/lid events, exec, ${pkgs.swaylock-effects}/bin/swaylock" + ",XF86Sleep, exec, ${pkgs.swaylock-effects}/bin/swaylock" + + "$mod, L, exec, ${pkgs.swaylock-effects}/bin/swaylock" + "SUPER_SHIFT, 4, exec, ${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp -d)\" - | ${pkgs.wl-clipboard}/bin/wl-copy" + + ",F2, exec, ${bright} s \"$(${bright} g | ${pkgs.busybox}/bin/awk '{ print int(($1 + .72) * 1.4) }')\"" + ",F1, exec, ${bright} s \"$(${bright} g | ${pkgs.busybox}/bin/awk '{ print int($1 / 1.4) }')\"" + # workspace switching + "$mod, 1, workspace, 1" + "$mod, 2, workspace, 2" + "$mod, 3, workspace, 3" + "$mod, 4, workspace, 4" + "$mod, 5, workspace, 5" + "$mod, 6, workspace, 6" + "$mod, 7, workspace, 7" + "$mod, 8, workspace, 8" + "$mod, 9, workspace, 9" + "$mod, 0, workspace, 10" + "CONTROL, RETURN, exec, alacritty" "SUPER_SHIFT, C, killactive" + "$mod, F, togglefloating" + "SUPER_SHIFT, F, fullscreen" + "CONTROL, left, movefocus, l" "CONTROL, right, movefocus, r" "CONTROL, up, movefocus, u" @@ -55,10 +103,10 @@ "SHIFT_CONTROL, e, movewindow, u" "SHIFT_CONTROL, n, movewindow, d" - "SUPER, left, resizeactive, -10 0" - "SUPER, right, resizeactive, 10 0" - "SUPER, up, resizeactive, 0 -10" - "SUPER, down, resizeactive, 0 10" + "$mod, left, resizeactive, -10 0" + "$mod, right, resizeactive, 10 0" + "$mod, up, resizeactive, 0 -10" + "$mod, down, resizeactive, 0 10" ]; input = { diff --git a/home/linux/swaylock.nix b/home/linux/swaylock.nix new file mode 100644 index 0000000..e2bdd76 --- /dev/null +++ b/home/linux/swaylock.nix @@ -0,0 +1,27 @@ +{ + config, + lib, + pkgs, + ... +}: { + programs.swaylock = { + enable = true; + package = pkgs.swaylock-effects; + settings = { + fade-in = 0; + + clock = true; + timestr = "%R"; + datestr = "%a, %b %d"; + + effect-blur = "20x6"; + + indicator = true; + indicator-radius = 320; + indicator-thickness = 20; + + ignore-empty-password = true; + disable-caps-lock-text = true; + }; + }; +} diff --git a/nixos/hosts/voyager/default.nix b/nixos/hosts/voyager/default.nix index 9165c84..e2a1e4a 100755 --- a/nixos/hosts/voyager/default.nix +++ b/nixos/hosts/voyager/default.nix @@ -15,6 +15,14 @@ inputs.nixos-apple-silicon.nixosModules.apple-silicon-support ]; + services.logind = { + extraConfig = '' + HandlePowerKey=suspend + HandleLidSwitchDocked=suspend + ''; + lidSwitch = "suspend"; + }; + boot.initrd.availableKernelModules = ["usb_storage" "sdhci_pci"]; fileSystems."/" = { diff --git a/nixos/profiles/hyprland.nix b/nixos/profiles/hyprland.nix index 5e828b6..b48d068 100644 --- a/nixos/profiles/hyprland.nix +++ b/nixos/profiles/hyprland.nix @@ -8,6 +8,8 @@ programs.hyprland.enable = true; programs.hyprland.package = inputs.hyprland.packages.${pkgs.system}.hyprland; + security.pam.services.swaylock.text = "auth include login"; + nix.settings = { substituters = ["https://hyprland.cachix.org"]; trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="];