This repository has no description
3.0 kB
79 lines
1{
2 self,
3 config,
4 pkgs,
5 lib,
6 ...
7}:
8{
9 imports = [
10 ../../configs
11 ../../configs/desktops/sway/default.nix
12 ../../configs/pipewire.nix
13 ../../configs/network-manager.nix
14 self.wrapperModules.workspace-manager
15 ];
16
17 krebs.build.host.name = "atlas";
18 system.stateVersion = "25.05";
19
20 lass.workspace-manager.enable = true;
21
22 nix.settings.trusted-users = [
23 "root"
24 "lass"
25 ];
26
27 # Autostart straight into sway: greetd logs the main user in on boot with no
28 # prompt and execs sway (a login shell so the wrapped sway + session env from
29 # programs.sway are on PATH). default_session with a real user means every
30 # (re)start goes directly into the session — there is no greeter.
31 services.greetd = {
32 enable = true;
33 settings.default_session = {
34 command = "${lib.getExe pkgs.bash} --login -c sway";
35 user = config.users.users.mainUser.name;
36 };
37 };
38
39 # Stateless box: no password/credential is baked into the image, so a screen
40 # lock could never be unlocked (swaylock PAM has nothing to accept). Disable
41 # the desktop's idle auto-lock (swayidle: lock after 120s, suspend-then-
42 # hibernate after 300s) and the lock service itself. The $mod+l / $mod+F11
43 # lock keybinds then start an empty lock.target and harmlessly do nothing.
44 systemd.user.services.swayidle.enable = lib.mkForce false;
45 systemd.user.services.swaylock.enable = lib.mkForce false;
46
47 # Noctalia pops a one-time "Privacy Update" telemetry wizard whenever its
48 # cache (~/.cache/noctalia/shell-state.json) has an empty
49 # changelogState.lastSeenVersion (UpdateService.shouldShowTelemetryWizard,
50 # gated only on that cache — not on any setting). This box is stateless, so
51 # the cache is wiped every boot and the wizard returned on every start.
52 # Seed the cache before noctalia launches with the current version, so it
53 # treats the changelog/telemetry notice as already seen (and, since
54 # lastSeen == currentVersion, the changelog stays closed too).
55 systemd.user.services.noctalia-seed-state = {
56 description = "Seed noctalia changelog cache (suppress telemetry wizard on stateless boots)";
57 partOf = [ "sway-session.target" ];
58 wantedBy = [ "noctalia-shell.service" ];
59 before = [ "noctalia-shell.service" ];
60 serviceConfig = {
61 Type = "oneshot";
62 RemainAfterExit = true;
63 ExecStart = pkgs.writeShellScript "noctalia-seed-state" ''
64 set -eu
65 dir="''${XDG_CACHE_HOME:-$HOME/.cache}/noctalia"
66 f="$dir/shell-state.json"
67 ver="v${pkgs.noctalia-shell.version}"
68 mkdir -p "$dir"
69 if [ -s "$f" ]; then
70 ${pkgs.jq}/bin/jq --arg v "$ver" \
71 '.changelogState.lastSeenVersion = (if (.changelogState.lastSeenVersion // "") == "" then $v else .changelogState.lastSeenVersion end)' \
72 "$f" > "$f.tmp" && mv "$f.tmp" "$f"
73 else
74 ${pkgs.jq}/bin/jq -n --arg v "$ver" '{changelogState:{lastSeenVersion:$v}}' > "$f"
75 fi
76 '';
77 };
78 };
79}