Commit graph

129 commits

Author SHA1 Message Date
randogoth
9f28569fef shell-init: record the first command of every shell in atuin
bash-preexec arms its DEBUG trap from __bp_interactive_mode at the end of
PROMPT_COMMAND, but its lazy installer runs mid-way through the first prompt
because zoxide and ghostty append their hooks after it. Those hooks disarm the
trap again, so the first interactive command of every session never reached
preexec and atuin silently dropped it.

Arm from PS0 instead, which is expanded once per interactive command before the
DEBUG trap and is therefore independent of PROMPT_COMMAND ordering.

Also guard the script against running twice: it is installed as both
loginShellInit and interactiveShellInit, and /etc/profile sources /etc/bashrc,
which registered starship's precmd/preexec hooks twice in every login shell.
2026-08-28 16:06:09 +03:00
randogoth
3f29ad6cec remove lowercase agents.md (superseded by AGENTS.md)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-28 12:48:25 +03:00
randogoth
228fe626b5 gitignore: ignore .claude/ (local assistant config)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-28 12:48:25 +03:00
randogoth
d1321cf7ca docs: nixos-26.05 in adopt examples, document impermanence
Bump the wrapper-flake nixpkgs channel in the adopt/laptop examples to
nixos-26.05, and add the "Impermanence (optional)" section covering the
/persist subvolume, the required "nixos" fs label, and the default
persistence set.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-28 12:38:06 +03:00
randogoth
17cce973fc impermanence: port btrfs rollback to systemd-stage-1 initrd
nixos-26.05 asserts against boot.initrd.postDeviceCommands under the
systemd stage-1 initrd. Move the root-subvolume rollback into an initrd
systemd oneshot (ordered after the labelled device, before sysroot.mount).
Same rollback logic; awk swapped for cut since coreutils' cut is in the
systemd initrd but awk is not.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-28 12:14:53 +03:00
randogoth
72941092d2 26.05: source Lix from nixpkgs, fix disko btrfs label
nixos-26.05 removed lix_2_93, which the lix-module release-2.93 branch
hard-pins via lixFromNixpkgs (no 2.94 module release exists yet). Drop
the lix-module input and set nix.package = pkgs.lix, which is Lix 2.94.2
on 26.05 — so we stay on Lix, just sourced from nixpkgs.

Also: newer disko dropped the btrfs `label` option; pass -L nixos via
extraArgs instead so the impermanence rollback still finds the "nixos"
label.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-28 12:11:17 +03:00
randogoth
2f9293f698 flake: track nixos-26.05 (nixos-25.11 is EOL)
nixos-25.11 reached end-of-life (frozen upstream at b6018f8), so
`nix flake update` no longer pulls system package updates. Move the
default nixpkgs channel to the current stable release, nixos-26.05.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-28 12:04:46 +03:00
randogoth
86b5c2422e just: parameterize update recipe (system/home/both)
`just update system` re-locks + rebuilds the NixOS system flake,
`just update home` re-locks + switches the Home Manager flake, and
`just update` with no arg does both (system first). Previously update
only touched the system flake, leaving the Home Manager side stale.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-28 11:23:26 +03:00
randogoth
be7ecfc0ea desktop: replace Thunar with Nautilus, add File Roller
Thunar didn't integrate cleanly with the GNOME session. Drop the
XFCE file-manager module (thunar/xfconf/exo/tumbler) and restore
Nautilus as the native file manager: un-exclude nautilus, point the
dash favorite at org.gnome.Nautilus.desktop, remove the Thunar
desktop override, and keep gvfs (moved into gnome.nix) for mounting,
trash, and network shares. Add file-roller for archive-manager
integration in Nautilus.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 16:15:20 +02:00
randogoth
1565c4cb5c networking: loose reverse-path filtering for tailscale exit nodes
Strict RPF (NixOS default) drops the encrypted return traffic of an active
exit node: table 52's 'default dev tailscale0' makes the reverse-path lookup
for packets arriving on the physical interface resolve to tailscale0, so they
are dropped before Tailscale decrypts them (rx stays 0). Loose RPF still blocks
spoofed/unroutable sources but removes the interface-match requirement, as
recommended by Tailscale/NixOS for exit nodes and subnet routers.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 19:30:08 +02:00
randogoth
b7bb444f3d fix(shell): let bash-preexec install last so atuin preexec fires
Eagerly calling __bp_install at source time made bash-preexec install
before starship/atuin/zoxide/ghostty modified PROMPT_COMMAND, so their
hooks landed after __bp_interactive_mode. bash-preexec then never marked
typed commands as interactive and skipped preexec_functions, so atuin's
__atuin_preexec never fired and history stopped recording
(ATUIN_PREEXEC_BACKEND stuck at "<shlvl>:none").

Remove the eager __bp_install and the manual PROMPT_COMMAND/array wiring
for starship, atuin and zoxide; each tool registers with bash-preexec
itself, and deferred install on the first prompt keeps
__bp_interactive_mode last (verified against bash-preexec 0.6.0).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 16:13:30 +03:00
randogoth
4c6a0d4b28 fixed config 2026-02-17 07:53:25 +02:00
randogoth
0014de7d62 config fix 2026-02-17 07:38:29 +02:00
randogoth
22b3678464 appimage support 2026-02-17 07:37:02 +02:00
randogoth
cd9198ee46 flatpak: wait for network-online before managed install 2026-02-14 17:45:42 +02:00
randogoth
72e00c28e1 impermanence: persist NetworkManager system connections 2026-02-14 17:37:25 +02:00
randogoth
a6ad0f3ad9 impermanence: drop /etc/cups persistence 2026-02-14 17:31:43 +02:00
randogoth
dc04bcf008 fix impermanence rollback and add persistent paths 2026-02-14 17:28:34 +02:00
randogoth
60b0b4e88e NUR integration 2026-02-12 07:39:10 +02:00
randogoth
a69ade9f8b nix-ld 2026-02-11 11:43:28 +02:00
randogoth
c1e0c65cf0 better manage recipe 2026-02-11 11:02:43 +02:00
randogoth
018a036601 renamed files, boot splash 2026-02-11 09:30:19 +02:00
randogoth
bd9bbd152b status tray 2026-02-10 22:23:41 +02:00
randogoth
ac83f87c02 impernanence optional 2026-02-10 09:34:51 +02:00
randogoth
99d9f457d3 rootless podman 2026-02-10 09:25:23 +02:00
randogoth
1795a4a275 impermanence 2026-02-10 09:25:12 +02:00
randogoth
9205ec2d23 fix 2026-02-10 08:34:43 +02:00
randogoth
816dd2b076 fix 2026-02-10 08:32:23 +02:00
randogoth
569ee67806 uppercase 2026-02-10 08:28:11 +02:00
randogoth
de1431d175 tailscale 2026-02-10 08:27:59 +02:00
randogoth
9b787bc3bd latest kernel 2026-02-10 08:13:46 +02:00
randogoth
f1dd8542eb syntax error fix 2026-02-10 07:51:35 +02:00
randogoth
ab0257fd6e pipewire 2026-02-10 07:42:16 +02:00
randogoth
7486210605 bazaar search 2026-02-09 22:52:39 +02:00
randogoth
b0d8925248 software center removed, bazaar nixpkg 2026-02-09 22:49:26 +02:00
randogoth
fd5649b672 gnome: show minimize/maximize buttons 2026-02-09 22:41:17 +02:00
randogoth
51a3efc940 ptyxis as thunar terminal 2026-02-09 21:51:26 +02:00
randogoth
8df97b9dee gtk file chooser 2026-02-09 21:40:30 +02:00
randogoth
9de49aef25 set default portal to gnome 2026-02-09 21:34:16 +02:00
randogoth
fe46738484 portal fix 2026-02-09 21:12:05 +02:00
randogoth
715a087d67 removed fingerprint sensor 2026-02-09 20:45:08 +02:00
randogoth
f173501bab fix 2026-02-09 20:40:33 +02:00
randogoth
6e834ed5a3 fingerprint sensors 2026-02-09 20:38:05 +02:00
randogoth
7a1a5d36e6 Merge branch 'main' of ssh://codeberg.org/randogoth/nanuqsaurus 2026-02-09 20:16:44 +02:00
randogoth
078c90c462 hm fixes 2026-02-09 20:15:44 +02:00
randogoth
2273c9f09a saner homefile 2026-02-09 18:39:59 +01:00
randogoth
f03ae10ccb removed forced timezone 2026-02-09 18:39:21 +01:00
randogoth
c754230d3f no clobber 2026-02-05 10:20:49 +02:00
randogoth
6978685fd0 fix 2026-02-05 10:17:02 +02:00
randogoth
2a5cdbf8e9 fixed global justfile 2026-02-05 10:13:27 +02:00