diff options
Diffstat (limited to 'accounts/gkleen@skadhi/greetd.nix')
| -rw-r--r-- | accounts/gkleen@skadhi/greetd.nix | 92 |
1 files changed, 92 insertions, 0 deletions
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 @@ | |||
| 1 | { config, pkgs, lib, flakeInputs, ... }: | ||
| 2 | |||
| 3 | let | ||
| 4 | gkleenConfig = config.home-manager.users."gkleen"; | ||
| 5 | toIni = lib.generators.toINI { | ||
| 6 | mkKeyValue = | ||
| 7 | key: value: | ||
| 8 | let | ||
| 9 | value' = if lib.isBool value then lib.boolToString value else toString value; | ||
| 10 | in | ||
| 11 | "${lib.escape [ "=" ] key}=${value'}"; | ||
| 12 | }; | ||
| 13 | toDconfIni = let | ||
| 14 | gvariant = import (flakeInputs.home-manager + "/modules/lib/gvariant.nix") { inherit lib; }; | ||
| 15 | mkIniKeyValue = key: value: "${key}=${toString (gvariant.mkValue value)}"; | ||
| 16 | in lib.generators.toINI { mkKeyValue = mkIniKeyValue; }; | ||
| 17 | in { | ||
| 18 | config = { | ||
| 19 | services.greetd = { | ||
| 20 | enable = true; | ||
| 21 | settings.default_session.command = lib.getExe (pkgs.writeShellApplication { | ||
| 22 | name = "sway"; | ||
| 23 | runtimeInputs = [ pkgs.sway pkgs.fontconfig ]; | ||
| 24 | runtimeEnv = { | ||
| 25 | XDG_DATA_DIRS = lib.makeSearchPath "share" [ | ||
| 26 | pkgs.kdePackages.breeze-gtk pkgs.adwaita-icon-theme pkgs.fira | ||
| 27 | ]; | ||
| 28 | QT_PLUGIN_PATH = lib.makeSearchPath (pkgs.qt6.qtbase.qtPluginPrefix) [ | ||
| 29 | pkgs.qt6Packages.qtbase | ||
| 30 | ]; | ||
| 31 | QML2_IMPORT_PATH = lib.makeSearchPath (pkgs.qt6.qtbase.qtQmlPrefix) [ | ||
| 32 | pkgs.qt6Packages.qtbase | ||
| 33 | ]; | ||
| 34 | QT_QPA_PLATFORMTHEME = "gtk3"; | ||
| 35 | XDG_CONFIG_DIR = pkgs.symlinkJoin { | ||
| 36 | name = "config"; | ||
| 37 | paths = [ | ||
| 38 | (pkgs.writeTextDir "gtk-3.0/settings.ini" (toIni { | ||
| 39 | Settings = { | ||
| 40 | gtk-font-name = "Fira Sans 10"; | ||
| 41 | gtk-theme-name = "Breeze-Dark"; | ||
| 42 | gtk-icon-theme-name = "Adwaita"; | ||
| 43 | }; | ||
| 44 | })) | ||
| 45 | ]; | ||
| 46 | }; | ||
| 47 | # XDG_CACHE_HOME = "/var/cache/greetd/greeter"; | ||
| 48 | # XDG_CONFIG_HOME = "/var/cache/greetd/greeter/config"; | ||
| 49 | }; | ||
| 50 | text = '' | ||
| 51 | exec &>/tmp/sway-$$.log | ||
| 52 | |||
| 53 | unset MANAGERPID SYSTEMD_EXEC_PID | ||
| 54 | |||
| 55 | # ${lib.getExe' pkgs.coreutils "mkdir"} -p ''${XDG_CONFIG_HOME}/dconf | ||
| 56 | ${lib.getExe pkgs.dconf} load / < ${pkgs.writeText "dconf.ini" (toDconfIni { | ||
| 57 | "org/gnome/desktop/interface" = { | ||
| 58 | "color-scheme" = "prefer-dark"; | ||
| 59 | "font-name" = "Fira Sans 10"; | ||
| 60 | "gtk-theme" = "Breeze-Dark"; | ||
| 61 | "icon-theme" = "Adwaita"; | ||
| 62 | }; | ||
| 63 | })} | ||
| 64 | |||
| 65 | exec sway --unsupported-gpu --config ${pkgs.writeText "sway-config" '' | ||
| 66 | 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" | ||
| 67 | |||
| 68 | input type:keyboard { | ||
| 69 | xkb_layout "us,us" | ||
| 70 | xkb_variant "dvp," | ||
| 71 | xkb_options "compose:caps,grp:win_space_toggle" | ||
| 72 | } | ||
| 73 | |||
| 74 | output eDP-1 scale 1.5 | ||
| 75 | ''} | ||
| 76 | ''; | ||
| 77 | }); | ||
| 78 | }; | ||
| 79 | |||
| 80 | # security.pam.services.greetd.fprintAuth = false; | ||
| 81 | |||
| 82 | systemd.services.greetd.serviceConfig = { | ||
| 83 | ExecStartPre = ''${lib.getExe' pkgs.coreutils "install"} -d -o greeter -g greeter -m 0700 ''${CACHE_DIRECTORY}/greeter''; | ||
| 84 | # CacheDirectory = "greetd"; | ||
| 85 | }; | ||
| 86 | |||
| 87 | users.users.greeter = { | ||
| 88 | home = "/var/lib/greeter"; | ||
| 89 | createHome = true; | ||
| 90 | }; | ||
| 91 | }; | ||
| 92 | } | ||
