From 11bbb2a99fb6a8741522830d8d3e9c2d90d4e5d5 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Thu, 23 Jan 2025 14:37:58 +0100 Subject: ... --- accounts/gkleen@sif/default.nix | 5 ++++ accounts/gkleen@sif/niri/default.nix | 33 +++++++++++++++++++++++++-- accounts/gkleen@sif/niri/mako.nix | 1 + accounts/gkleen@sif/systemd.nix | 30 ++++++++++++++++++------ flake.lock | 12 +++++----- hosts/sif/default.nix | 34 ++-------------------------- hosts/sif/greetd/.gitattributes | 1 + hosts/sif/greetd/default.nix | 44 ++++++++++++++++++++++++++++++++++++ hosts/sif/greetd/wallpaper.png | 3 +++ hosts/sif/mail/default.nix | 2 +- 10 files changed, 117 insertions(+), 48 deletions(-) create mode 100644 hosts/sif/greetd/.gitattributes create mode 100644 hosts/sif/greetd/default.nix create mode 100644 hosts/sif/greetd/wallpaper.png diff --git a/accounts/gkleen@sif/default.nix b/accounts/gkleen@sif/default.nix index 10180eca..7f4879f4 100644 --- a/accounts/gkleen@sif/default.nix +++ b/accounts/gkleen@sif/default.nix @@ -427,6 +427,7 @@ in { pynitrokey gtklock wlrctl remmina openscad spice-record libguestfs-with-appliance nerd-fonts.fira-mono nerd-fonts.symbols-only nerd-fonts.fira-code powerline-fonts + swtpm ]; file = { @@ -492,6 +493,10 @@ in { }; }; "emacs/init.el".source = ./emacs.el; + "systemd/user/xdg-desktop-portal.service.d/after-graphical-session.conf".text = '' + [Unit] + After=graphical-session.target + ''; }; xdg.dataFile = { diff --git a/accounts/gkleen@sif/niri/default.nix b/accounts/gkleen@sif/niri/default.nix index 165eb5fa..71870aa4 100644 --- a/accounts/gkleen@sif/niri/default.nix +++ b/accounts/gkleen@sif/niri/default.nix @@ -200,6 +200,8 @@ in { DISPLAY = ":0"; }; + debug.render-drm-device = "/dev/dri/by-path/pci-0000:00:02.0-render"; + layout = { gaps = 8; struts = { left = 0; right = 0; top = 0; bottom = 0; }; @@ -239,6 +241,14 @@ in { cursor.hide-when-typing = true; + input = { + touchpad.enable = false; + trackball = { + scroll-method = "on-button-down"; + scroll-button = 278; + }; + }; + workspaces = { "001" = { name = "pwctl"; open-on-output = "eDP-1"; }; "002" = { name = "kpxc"; open-on-output = "eDP-1"; }; @@ -250,6 +260,7 @@ in { # "104".name = "read"; # "105".name = "mon"; "110".name = "vid"; + "120".name = "bmr"; }; window-rules = [ @@ -356,6 +367,22 @@ in { # ]; # open-on-workspace = "mon"; # } + { + matches = [ { app-id = "^pdfpc$"; } ]; + default-column-width.proportion = 1.; + } + { + matches = [ { app-id = "^pdfpc$"; title = "^pdfpc - presentation"; } ]; + open-on-workspace = "bmr"; + open-fullscreen = true; + } + { + matches = [ + { app-id = "^Gimp-"; title = "^Quit GIMP$"; } + { app-id = "^org\.kde\.polkit-kde-authentication-agent-1$"; } + ]; + open-floating = true; + } ]; layer-rules = [ { matches = [ @@ -414,12 +441,14 @@ in { fi [[ -n "$QALC_RES" ]] || exit 1 EXISTING=false - set +e + set +o pipefail grep -Fxrl "$QALC_RES" "$RESULTS_DIR" | xargs -r touch [[ ''${PIPESTATUS[0]} -eq 0 ]] && EXISTING=true - set -e + set -o pipefail if [[ $QALC_RET -eq 0 ]] && ! $EXISTING; then + set +o pipefail RES_FILE="$RESULTS_DIR"/$(date -uIs).$(tr -Cd 'a-zA-Z0-9' "$RES_FILE" <<<"$QALC_RES" fi [[ "$QALC_RES" =~ .*\ =\ (.*) ]] && QALC_RES="''${BASH_REMATCH[1]}" diff --git a/accounts/gkleen@sif/niri/mako.nix b/accounts/gkleen@sif/niri/mako.nix index 8abf14d8..901ed022 100644 --- a/accounts/gkleen@sif/niri/mako.nix +++ b/accounts/gkleen@sif/niri/mako.nix @@ -13,6 +13,7 @@ extraConfig = '' outer-margin=1 max-history=100 + max-icon-size=48 [grouped] format=(%g) %s\n%b diff --git a/accounts/gkleen@sif/systemd.nix b/accounts/gkleen@sif/systemd.nix index 34f52172..bce2f4cd 100644 --- a/accounts/gkleen@sif/systemd.nix +++ b/accounts/gkleen@sif/systemd.nix @@ -123,7 +123,8 @@ in { }; emacs = { Unit = { - After = ["graphical-session-pre.target"]; + After = [ "graphical-session.target" ]; + BindsTo = [ "graphical-session.target" ]; }; }; keepassxc = { @@ -135,8 +136,8 @@ in { Environment = [ "QT_QPA_PLATFORM=wayland" ]; }; Unit = { - Requires = ["graphical-session-pre.target"]; - After = ["graphical-session-pre.target"]; + After = [ "graphical-session.target" ]; + BindsTo = [ "graphical-session.target" ]; }; }; mpris-proxy = { @@ -184,8 +185,8 @@ in { WantedBy = ["graphical-session.target"]; }; Unit = { - Requires = ["graphical-session-pre.target"]; - After = ["graphical-session-pre.target"]; + After = [ "graphical-session.target" ]; + PartOf = [ "graphical-session.target" ]; }; Service = { ExecStart = lib.getExe pkgs.psi-notify; @@ -198,6 +199,7 @@ in { gtklock = { Unit = { Requisite = ["graphical-session.target"]; + After = [ "graphical-session.target" ]; PartOf = ["graphical-session.target"]; }; Service = { @@ -304,8 +306,8 @@ in { WantedBy = ["graphical-session.target"]; }; Unit = { - BindsTo = ["graphical-session-pre.target"]; - After = ["graphical-session-pre.target"]; + After = [ "graphical-session.target" ]; + PartOf = [ "graphical-session.target" ]; }; Service = { ExecStart = lib.getExe cfg.programs.wpaperd.package; @@ -314,6 +316,17 @@ in { RestartSec = "2s"; }; }; + xembed-sni-proxy = { + Unit = { + BindsTo = ["xwayland-satellite.service"]; + After = ["xwayland-satellite.service"]; + }; + }; + poweralertd = { + Unit = { + After = ["graphical-session.target"]; + }; + }; } // listToAttrs (map ({host, port}: nameValuePair "proxy-to-autossh-socks@${toString port}" { Unit = { Requires = ["autossh-socks@${host}:${toString (port + 1)}.service" "proxy-to-autossh-socks@${toString port}.socket"]; @@ -364,6 +377,9 @@ in { }; tray = { Unit = { + PartOf = [ "graphical-session.target" ]; + Requires = [ "waybar.service" ]; + After = [ "graphical-session.target" "waybar.service" ]; Wants = ["blueman-applet.service" "udiskie.service" "network-manager-applet.service"]; }; }; diff --git a/flake.lock b/flake.lock index ce7e59e4..1697d69e 100644 --- a/flake.lock +++ b/flake.lock @@ -397,11 +397,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1736855225, - "narHash": "sha256-2+ayH/0B37BLPJy4thO1titHIrVCoDdCtdnl0CyV8kc=", + "lastModified": 1737627930, + "narHash": "sha256-oaAatwNVaX36xmI2AKIVu2oG07XJmHq2T+Y66hEprd8=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "b013bedcff63b5cdbb9cd9841ac339361fc5cfcc", + "rev": "f79aa307f4bc0bfbabee404e6354fd2a1edfcb01", "type": "github" }, "original": { @@ -630,11 +630,11 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1736684107, - "narHash": "sha256-vH5mXxEvZeoGNkqKoCluhTGfoeXCZ1seYhC2pbMN0sg=", + "lastModified": 1737569578, + "narHash": "sha256-6qY0pk2QmUtBT9Mywdvif0i/CLVgpCjMUn6g9vB+f3M=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "635e887b48521e912a516625eee7df6cf0eba9c1", + "rev": "47addd76727f42d351590c905d9d1905ca895b82", "type": "github" }, "original": { diff --git a/hosts/sif/default.nix b/hosts/sif/default.nix index 655b2e9c..7db46c67 100644 --- a/hosts/sif/default.nix +++ b/hosts/sif/default.nix @@ -12,7 +12,7 @@ let in { imports = with flake.nixosModules.systemProfiles; [ ./hw.nix - ./mail ./libvirt + ./mail ./libvirt ./greetd tmpfs-root bcachefs initrd-all-crypto-modules default-locale openssh rebuild-machines niri-unstable networkmanager flakeInputs.nixos-hardware.nixosModules.lenovo-thinkpad-p1 flakeInputs.impermanence.nixosModules.impermanence @@ -470,39 +470,8 @@ in { exportConfiguration = true; }; libinput.enable = true; - - greetd = { - enable = true; - # settings.default_session.command = let - # cfg = config.programs.regreet; - # in pkgs.writeShellScript "greeter" '' - # modprobe -r nvidia_drm - - # exec ${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.cage} ${lib.escapeShellArgs cfg.cageArgs} -- ${lib.getExe cfg.package} - # ''; - }; }; - programs.regreet = { - enable = true; - theme = { - package = pkgs.equilux-theme; - name = "Equilux-compact"; - }; - iconTheme = { - package = pkgs.paper-icon-theme; - name = "Paper-Mono-Dark"; - }; - font = { - package = pkgs.fira; - name = "Fira Sans"; - # size = 6; - }; - cageArgs = [ "-s" "-m" "last" ]; - settings = { - GTK.application_prefer_dark_theme = true; - }; - }; programs.niri.enable = true; systemd.tmpfiles.settings = { @@ -702,6 +671,7 @@ in { services.dbus.packages = with pkgs; [ dbus dconf + xdg-desktop-portal-gtk ]; services.udisks2.enable = true; diff --git a/hosts/sif/greetd/.gitattributes b/hosts/sif/greetd/.gitattributes new file mode 100644 index 00000000..3e1848c2 --- /dev/null +++ b/hosts/sif/greetd/.gitattributes @@ -0,0 +1 @@ +wallpaper.png filter=lfs diff=lfs merge=lfs -text diff --git a/hosts/sif/greetd/default.nix b/hosts/sif/greetd/default.nix new file mode 100644 index 00000000..f609fc05 --- /dev/null +++ b/hosts/sif/greetd/default.nix @@ -0,0 +1,44 @@ +{ pkgs, ... }: +{ + config = { + services.greetd = { + enable = true; + # settings.default_session.command = let + # cfg = config.programs.regreet; + # in pkgs.writeShellScript "greeter" '' + # modprobe -r nvidia_drm + + # exec ${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.cage} ${lib.escapeShellArgs cfg.cageArgs} -- ${lib.getExe cfg.package} + # ''; + }; + programs.regreet = { + enable = true; + theme = { + package = pkgs.equilux-theme; + name = "Equilux-compact"; + }; + iconTheme = { + package = pkgs.paper-icon-theme; + name = "Paper-Mono-Dark"; + }; + font = { + package = pkgs.fira; + name = "Fira Sans"; + # size = 6; + }; + cageArgs = [ "-s" "-m" "last" ]; + settings = { + GTK.application_prefer_dark_theme = true; + widget.clock.format = "%F %H:%M:%S%:z"; + background = { + path = pkgs.runCommand "wallpaper.png" { + buildInputs = with pkgs; [ imagemagick ]; + } '' + magick ${./wallpaper.png} -filter Gaussian -resize 6.25% -define filter:sigma=2.5 -resize 1600% "$out" + ''; + fit = "Cover"; + }; + }; + }; + }; +} diff --git a/hosts/sif/greetd/wallpaper.png b/hosts/sif/greetd/wallpaper.png new file mode 100644 index 00000000..f6f6c818 --- /dev/null +++ b/hosts/sif/greetd/wallpaper.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe030fabe1a9adcfc0742e794abe9b595831c1b1b9653f3f9794901297413ffa +size 6073128 diff --git a/hosts/sif/mail/default.nix b/hosts/sif/mail/default.nix index f36cd599..8d6cd705 100644 --- a/hosts/sif/mail/default.nix +++ b/hosts/sif/mail/default.nix @@ -1,4 +1,4 @@ -{ config, pkgs, ... }: +{ config, lib, pkgs, ... }: { services.postfix = { enable = true; -- cgit v1.2.3