From ae9a80c1f012686c1f65fce7ce76fdd1b77b0b71 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Wed, 23 Sep 2026 21:08:35 +0200 Subject: ... --- accounts/gkleen@skadhi/greetd.nix | 92 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 accounts/gkleen@skadhi/greetd.nix (limited to 'accounts/gkleen@skadhi/greetd.nix') diff --git a/accounts/gkleen@skadhi/greetd.nix b/accounts/gkleen@skadhi/greetd.nix new file mode 100644 index 00000000..1972404c --- /dev/null +++ b/accounts/gkleen@skadhi/greetd.nix @@ -0,0 +1,92 @@ +{ config, pkgs, lib, flakeInputs, ... }: + +let + gkleenConfig = config.home-manager.users."gkleen"; + toIni = lib.generators.toINI { + mkKeyValue = + key: value: + let + value' = if lib.isBool value then lib.boolToString value else toString value; + in + "${lib.escape [ "=" ] key}=${value'}"; + }; + toDconfIni = let + gvariant = import (flakeInputs.home-manager + "/modules/lib/gvariant.nix") { inherit lib; }; + mkIniKeyValue = key: value: "${key}=${toString (gvariant.mkValue value)}"; + in lib.generators.toINI { mkKeyValue = mkIniKeyValue; }; +in { + config = { + services.greetd = { + enable = true; + settings.default_session.command = lib.getExe (pkgs.writeShellApplication { + name = "sway"; + runtimeInputs = [ pkgs.sway pkgs.fontconfig ]; + runtimeEnv = { + XDG_DATA_DIRS = lib.makeSearchPath "share" [ + pkgs.kdePackages.breeze-gtk pkgs.adwaita-icon-theme pkgs.fira + ]; + QT_PLUGIN_PATH = lib.makeSearchPath (pkgs.qt6.qtbase.qtPluginPrefix) [ + pkgs.qt6Packages.qtbase + ]; + QML2_IMPORT_PATH = lib.makeSearchPath (pkgs.qt6.qtbase.qtQmlPrefix) [ + pkgs.qt6Packages.qtbase + ]; + QT_QPA_PLATFORMTHEME = "gtk3"; + XDG_CONFIG_DIR = pkgs.symlinkJoin { + name = "config"; + paths = [ + (pkgs.writeTextDir "gtk-3.0/settings.ini" (toIni { + Settings = { + gtk-font-name = "Fira Sans 10"; + gtk-theme-name = "Breeze-Dark"; + gtk-icon-theme-name = "Adwaita"; + }; + })) + ]; + }; + # XDG_CACHE_HOME = "/var/cache/greetd/greeter"; + # XDG_CONFIG_HOME = "/var/cache/greetd/greeter/config"; + }; + text = '' + exec &>/tmp/sway-$$.log + + unset MANAGERPID SYSTEMD_EXEC_PID + + # ${lib.getExe' pkgs.coreutils "mkdir"} -p ''${XDG_CONFIG_HOME}/dconf + ${lib.getExe pkgs.dconf} load / < ${pkgs.writeText "dconf.ini" (toDconfIni { + "org/gnome/desktop/interface" = { + "color-scheme" = "prefer-dark"; + "font-name" = "Fira Sans 10"; + "gtk-theme" = "Breeze-Dark"; + "icon-theme" = "Adwaita"; + }; + })} + + exec sway --unsupported-gpu --config ${pkgs.writeText "sway-config" '' + exec "${lib.getExe' config.systemd.package "systemctl"} --user import-environment {,WAYLAND_}DISPLAY SWAYSOCK; ${lib.getExe gkleenConfig.programs.quickshell.package} --path ${gkleenConfig.xdg.configFile."quickshell".source}/displaymanager.qml; swaymsg exit" + + input type:keyboard { + xkb_layout "us,us" + xkb_variant "dvp," + xkb_options "compose:caps,grp:win_space_toggle" + } + + output eDP-1 scale 1.5 + ''} + ''; + }); + }; + + # security.pam.services.greetd.fprintAuth = false; + + systemd.services.greetd.serviceConfig = { + ExecStartPre = ''${lib.getExe' pkgs.coreutils "install"} -d -o greeter -g greeter -m 0700 ''${CACHE_DIRECTORY}/greeter''; + # CacheDirectory = "greetd"; + }; + + users.users.greeter = { + home = "/var/lib/greeter"; + createHome = true; + }; + }; +} -- cgit v1.2.3