{ lib, config, pkgs, inputs, system, ... }: let astal = inputs.self.packages.${system}; inherit (lib) mkIf; cfg = config.apps; in { config = mkIf cfg.astal { default.appLauncher = lib.mkDefault "astal-launcher"; home-manager.users.${config.user} = { home.packages = [ astal.astal.shell astal.astal.launcher ]; systemd.user.services.astal = { Install = { WantedBy = [config.default.session "tray.target"]; }; Unit = { ConditionEnvironment = "WAYLAND_DISPLAY"; Description = "astal"; After = [config.default.session]; PartOf = [config.default.session "tray.target"]; }; Service = { ExecStart = "${astal.astal.shell}/bin/astal-shell"; Restart = "always"; RestartSec = "10"; }; }; }; }; }