{ config, pkgs, lib, ... }: let user = "tzlil"; users.users.greeter.packages = [pkgs.sway]; greet = "${pkgs.greetd.wlgreet}/bin/wlgreet"; sway-kiosk = command: "env WLR_RENDERER=pixman ${pkgs.sway}/bin/sway --unsupported-gpu --config ${pkgs.writeText "kiosk.config" '' output * bg #000000 solid_color exec "${command}; ${pkgs.sway}/bin/swaymsg exit" ''}"; in { options.greeter.initialSession = lib.mkOption { type = lib.types.str; default = "sh -c ${pkgs.sway}/bin/sway"; }; config = { environment.etc."greetd/environments".text = "sway\n" + "$SHELL -l\n"; services.greetd = { enable = true; settings = { default_session = { inherit user; command = sway-kiosk "${greet} -l &>/dev/null"; }; initial_session = { inherit user; command = config.greeter.initialSession; }; }; }; }; }