All checks were successful
Check / eval (push) Successful in 4m23s
One-shot user unit fires a dismissible "You're set" notification on the first graphical session (SUPER+M / SUPER+T / SUPER+? + Network + Doctor), then writes settings.firstBootShown into the flake checkout. Skips the live ISO hostname (hosts/live.nix keeps its own toast). Toggle: nomarchy.firstBootWelcome.enable. checks.first-boot covers the gate. Verified: V2 — flake check --no-build; checks.first-boot green; local shim smoke; downstream-template-home ships the unit.
38 lines
1.5 KiB
Nix
38 lines
1.5 KiB
Nix
# First-session welcome toast (nomarchy.firstBootWelcome) — one dismissible
|
|
# "you're set" notification pointing at SUPER+M / SUPER+T / SUPER+? and
|
|
# Network, then writes settings.firstBootShown into the flake checkout
|
|
# (GOALS: no state outside the checkout). Live ISO keeps its own toast
|
|
# (hosts/live.nix); the script self-skips on hostname nomarchy-live.
|
|
{ config, lib, pkgs, ... }:
|
|
|
|
{
|
|
config = lib.mkIf config.nomarchy.firstBootWelcome.enable {
|
|
systemd.user.services.nomarchy-first-boot = {
|
|
Unit = {
|
|
Description = "Nomarchy first-session welcome toast";
|
|
PartOf = [ "graphical-session.target" ];
|
|
# After the session (and preferably the notification daemon) is up.
|
|
After = [ "graphical-session.target" "graphical-session-pre.target" ];
|
|
};
|
|
Service = {
|
|
Type = "oneshot";
|
|
# PATH: real notify-send + theme-sync; VM check shims both via PATH.
|
|
# NOMARCHY_PATH matches home.sessionVariables so the marker lands
|
|
# in the user's flake checkout.
|
|
Environment = [
|
|
"PATH=${lib.makeBinPath [
|
|
pkgs.libnotify
|
|
pkgs.nomarchy-theme-sync
|
|
pkgs.coreutils
|
|
]}"
|
|
"NOMARCHY_PATH=%h/.nomarchy"
|
|
];
|
|
# Brief settle so swaync is accepting toasts (live ISO uses sleep 3).
|
|
ExecStartPre = "${pkgs.coreutils}/bin/sleep 2";
|
|
ExecStart = "${pkgs.nomarchy-first-boot}/bin/nomarchy-first-boot";
|
|
};
|
|
Install.WantedBy = [ "graphical-session.target" ];
|
|
};
|
|
};
|
|
}
|