From ee4bbcf26b2e532ef02324daff9cce94440aa1bc Mon Sep 17 00:00:00 2001 From: Semere Meharena Mebrahtom Date: Sun, 19 Jul 2026 12:10:00 +0200 Subject: [PATCH] screen and power mgmt --- hosts/nabro/dwl-config.h | 3 ++ modules/desktop.nix | 60 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) diff --git a/hosts/nabro/dwl-config.h b/hosts/nabro/dwl-config.h index 2095e99..58ff990 100644 --- a/hosts/nabro/dwl-config.h +++ b/hosts/nabro/dwl-config.h @@ -125,6 +125,7 @@ static const char *voldown[] = { "pamixer", "-d", "5", NULL }; static const char *volmute[] = { "pamixer", "-t", NULL }; static const char *brightup[] = { "brightnessctl", "set", "10%+", NULL }; static const char *brightdown[] = { "brightnessctl", "set", "10%-", NULL }; +static const char *lockcmd[] = { "swaylock", NULL }; const Key keys[] = { /* Note that Shift changes certain key codes: 2 -> at, etc. */ @@ -135,10 +136,12 @@ const Key keys[] = { { 0, XF86XK_MonBrightnessUp, spawn, {.v = brightup} }, { 0, XF86XK_MonBrightnessDown, spawn, {.v = brightdown} }, + { 0, XKB_KEY_Print, spawn, SHCMD("grim -g \"$(slurp)\" - | wl-copy") }, { MODKEY, XKB_KEY_p, spawn, {.v = menucmd} }, { MODKEY, XKB_KEY_w, spawn, {.v = browsercmd} }, { MODKEY, XKB_KEY_Return, spawn, {.v = termcmd} }, + { MODKEY|WLR_MODIFIER_SHIFT, XKB_KEY_l, spawn, {.v = lockcmd} }, { MODKEY, XKB_KEY_j, focusstack, {.i = +1} }, { MODKEY, XKB_KEY_k, focusstack, {.i = -1} }, { MODKEY, XKB_KEY_i, incnmaster, {.i = +1} }, diff --git a/modules/desktop.nix b/modules/desktop.nix index 9566fe1..ba4811f 100644 --- a/modules/desktop.nix +++ b/modules/desktop.nix @@ -34,6 +34,7 @@ in hardware.graphics.enable = true; security.polkit.enable = true; + security.pam.services.swaylock = {}; environment.systemPackages = with pkgs; [ pamixer @@ -44,6 +45,9 @@ in foot firefox tor-browser + grim + slurp + wlopm ]; home-manager.users."${userVars.username}" = { @@ -55,6 +59,62 @@ in }; }; }; + + programs.swaylock = { + enable = true; + package = pkgs.swaylock-effects; + settings = { + clock = true; + indicator = true; + screenshots = true; + effect-blur = "7x5"; + effect-vignette = "0.5:0.5"; + ring-color = "b085f5"; + key-hl-color = "5e35b1"; + line-color = "00000000"; + inside-color = "00000088"; + separator-color = "00000000"; + fade-in = 0.2; + }; + }; + + services.swayidle = { + enable = true; + events = { + before-sleep = "${pkgs.swaylock-effects}/bin/swaylock -f"; + lock = "${pkgs.swaylock-effects}/bin/swaylock -f"; + }; + timeouts = [ + { timeout = 300; command = "${pkgs.swaylock-effects}/bin/swaylock -f"; } + { timeout = 600; command = "${pkgs.wlopm}/bin/wlopm --off '*'"; resumeCommand = "${pkgs.wlopm}/bin/wlopm --on '*'"; } + ]; + }; + + services.wlsunset = { + enable = true; + latitude = "52.5"; + longitude = "13.4"; + temperature = { + day = 6500; + night = 4000; + }; + }; + + services.fnott = { + enable = true; + settings = { + main = { + font = "JetBrainsMono Nerd Font:size=11"; + background = "1a1a24e0"; + border-color = "b085f5ff"; + border-size = 2; + padding-vertical = 12; + padding-horizontal = 16; + summary-color = "ffffffff"; + body-color = "e0e0e0ff"; + }; + }; + }; }; }; }