aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFiles
* Added CLAUDE.mdGravatar Tom van der Lee2026-09-241
|
* Archive add-gnome-extension-manager, sync desktop-applications specGravatar Tom van der Lee2026-09-245
| | | | | Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HngxrvqEzq8oBEBDtrYJyB
* Add GNOME Extension Manager on GNOME-enabled NixOS hostsGravatar Tom van der Lee2026-09-245
| | | | | | | | | pkgs.gnome-extension-manager joins gnome-tweaks in the osConfig-gated list added in the prior change, so it's provisioned only where GNOME is actually enabled rather than on any Linux system. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HngxrvqEzq8oBEBDtrYJyB
* Archive add-ghostty-gnome-tweaks-dark-mode, sync specsGravatar Tom van der Lee2026-09-248
| | | | | | | | | | Ghostty, the GNOME Tweaks gating requirement, and the GNOME dark-mode default were already implemented and committed; this syncs the delta specs into openspec/specs/desktop-applications and openspec/specs/gnome-desktop and moves the change to archive/. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HngxrvqEzq8oBEBDtrYJyB
* Add Ghostty, GNOME Tweaks, and a GNOME dark-mode defaultGravatar Tom van der Lee2026-09-248
| | | | | | | | | | | | | | Ghostty joins the cross-platform desktop app list (Linux-only in nixpkgs today, filtered out on darwin by the existing availableOn check). GNOME Tweaks is gated on osConfig.services.desktopManager.gnome.enable rather than plain isLinux, since modules/home/desktop-apps.nix is also consumed by the standalone, non-NixOS tom@linux home-manager profile, which has no GNOME involved. Every NixOS host now also gets a dconf default of org/gnome/desktop/interface color-scheme=prefer-dark, left unlocked so GNOME Settings can still switch back to light mode. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HngxrvqEzq8oBEBDtrYJyB
* Archive fix-discord-unfree-allowlistGravatar Tom van der Lee2026-09-213
| | | | Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* Fix Discord unfree-allowlist entry to match actual derivation nameGravatar Tom van der Lee2026-09-214
| | | | | | | | | | nixpkgs checks the unfree license against the inner discord-unwrapped derivation, not the top-level discord wrapper, so the existing "discord" allowlist entry never matched and any real build including Discord failed with an unfree-license error. Add "discord-unwrapped" alongside it. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* Add Firefox and Bitwarden to the shared desktop-applications profileGravatar Tom van der Lee2026-09-217
| | | | | | | | | | Tom wanted a browser and password manager provisioned declaratively: Firefox and the Bitwarden desktop client join the existing GUI app list, and bitwarden-cli joins the developer CLI tools. All three are free-licensed in current nixpkgs, so no unfree-allowlist change is needed. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* Archive add-claude-code-slack-spotify-discord-teams, sync ↵Gravatar Tom van der Lee2026-09-216
| | | | | | desktop-applications spec Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* Add Slack, Discord, Spotify, teams-for-linux, and Claude CodeGravatar Tom van der Lee2026-09-2111
| | | | | | | | | | Provisions these via home-manager, scoping unfree-package access to exactly these packages and skipping any that aren't available for the current system/architecture (e.g. aarch64-linux lacks Discord/Spotify builds) instead of failing evaluation. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BBSd4VBfoKHjE1HR3P8kmn
* Archive completed changes, sync editor-environment and shell-login-bootstrap ↵Gravatar Tom van der Lee2026-09-2115
| | | | | | | | | | | | specs fix-deprecation-warnings, fix-neovim-plugin-loading, and add-bash-profile-bootstrap all had every task complete; archived all three. Synced the editor-environment and shell-login-bootstrap delta specs into main specs (fix-deprecation-warnings had no delta specs). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BBSd4VBfoKHjE1HR3P8kmn
* Mark fix-mason-installer-deps tasks done, sync specs, archive changeGravatar Tom van der Lee2026-09-215
| | | | | | | | | Manual verification (nix flake check, home-manager switch, Mason reinstall) confirmed on a Nix-capable host. Synced the new editor-toolchain capability into main specs and archived the change. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BBSd4VBfoKHjE1HR3P8kmn
* Provision nodejs/python3/unzip for mason.nvim installersGravatar Tom van der Lee2026-09-215
| | | | | | | | | mason.nvim (externally-managed Neovim dotfiles config) was failing to install several LSP servers and tools because npm, python3, and unzip weren't on PATH in the Home Manager profile. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BBSd4VBfoKHjE1HR3P8kmn
* Fix Nix evaluation deprecation warningsGravatar Tom van der Lee2026-09-216
| | | | | | | | | | | Replace deprecated pkgs.stdenv.isDarwin/isLinux with pkgs.stdenv.hostPlatform.isDarwin/.isLinux, and explicitly pin programs.neovim.withRuby/withPython3 = true so the legacy default doesn't silently change if home.stateVersion is ever bumped. Pure deprecation fixes, no behavior change. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BBSd4VBfoKHjE1HR3P8kmn
* Fix Neovim plugins never loading via sideloadInitLuaGravatar Tom van der Lee2026-09-218
| | | | | | | | | | | | | home-manager's programs.neovim module always writes a non-empty ~/.config/nvim/init.lua, which permanently conflicts with Stow linking the dotfiles-owned lazy.nvim config to that same path - Stow skips the package and plugins never load. Setting sideloadInitLua = true frees that path for the dotfiles config to own exclusively. Also provisions a C compiler and tree-sitter (moved from dev-tools.nix) so natively- built plugins can compile on every platform. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BBSd4VBfoKHjE1HR3P8kmn
* Add always-on ~/.bash_profile bootstrap for login shellsGravatar Tom van der Lee2026-09-218
| | | | | | | | | | NixOS and most other Linux distros don't ship a ~/.bash_profile that sources ~/.bashrc, so login shells miss the user's bash config. Adds a home-manager activation script that creates one only when absent, on every platform, without ever touching a pre-existing .bash_profile. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BBSd4VBfoKHjE1HR3P8kmn
* Archive filter-dotfiles-by-platform and add-gnome-desktopGravatar Tom van der Lee2026-09-1812
| | | | | | | | | Sync main specs with both completed changes: dotfiles-management gains the platform-exclude requirement, and gnome-desktop becomes a new main spec. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BBSd4VBfoKHjE1HR3P8kmn
* Mark add-gnome-desktop nix flake check task completeGravatar Tom van der Lee2026-09-181
| | | | | | | | | | Verified on a real NixOS VM after pushing: nix flake check passes, confirming the services.displayManager.*/services.desktopManager.* option paths and the dotfiles.nix platform-exclude changes both evaluate correctly. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BBSd4VBfoKHjE1HR3P8kmn
* Enable GNOME desktop by default on every NixOS hostGravatar Tom van der Lee2026-09-183
| | | | | | | | | | | Add GDM+GNOME, NetworkManager, PipeWire audio, and CUPS+Avahi printing to modules/nixos/common.nix, applied unconditionally to every NixOS host built from this flake, per add-gnome-desktop. nix flake check remains unverified: Nix isn't installed on this machine and no live NixOS host exists yet to boot-test against. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BBSd4VBfoKHjE1HR3P8kmn
* Skip platform-irrelevant dotfiles packages during stowGravatar Tom van der Lee2026-09-186
| | | | | | | | | | iterm2 was being stowed on Linux and herbstluftwm/xorg on Darwin. Add a built-in Darwin/Linux exclude default plus an excludePackages override option in modules/home/dotfiles.nix, superseding the earlier "accept harmless unused symlinks" decision. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BBSd4VBfoKHjE1HR3P8kmn
* Archive fix-ssh-authorized-keys-spec, sync developer-environment specGravatar Tom van der Lee2026-09-185
| | | | | | | | Closes the spec/implementation drift: the SSH requirement now states that an authorized key must be provisioned, matching the live fix already running on floep. Archived despite design.md never being created -- deliberately skipped per its own conditional trigger rules, confirmed before proceeding.
* Remove archive-as-task from fix-ssh-authorized-keys-spec tasks.mdGravatar Tom van der Lee2026-09-181
| | | | | Archiving is inherent to the OpenSpec process, always available once tasks are complete -- it should never appear as a checkbox task item.
* Propose fixing the SSH authorized-key spec driftGravatar Tom van der Lee2026-09-184
| | | | | | | | | Planning artifacts only. The developer-environment capability's SSH requirement never stated that an authorized key must be provisioned -- the real gap that locked out the floep host after its first rebuild. The code fix already shipped; this change brings the spec in line with it. design.md skipped (none of its trigger conditions apply to a documentation-only correction).
* Archive four completed changes, sync main specsGravatar Tom van der Lee2026-09-1823
| | | | | | | | | | | add-nix-flake-bootstrap, add-host-bootstrap-script, add-dotfiles-stow-bootstrap, and add-developer-environment all had every task complete (verified via a real nix flake check and a real NixOS host build). Archived in dependency order so the two changes sharing the nix-flake-bootstrap capability merged additively. Main specs now exist for the first time: nix-flake-bootstrap (10 requirements), dotfiles-management (4), developer-environment (4). add-gnome-desktop remains active (not yet implemented).
* Remove unused authorized SSH key (SHA256:Si2Y/8xh...)Gravatar Tom van der Lee2026-09-181
|
* Record the SSH lockout correction in add-developer-environment tasksGravatar Tom van der Lee2026-09-181
|
* Provision authorized SSH key for tom, fixing the lockoutGravatar Tom van der Lee2026-09-181
| | | | | | | | services.openssh.settings.PasswordAuthentication = false was enabled with no authorized key ever provisioned for the tom user, locking out all SSH access on the first real host (floep). Adds the public keys from https://github.com/tomvanderlee.keys as static literals -- a one-time fetch, not a build-time network dependency, to stay pure.
* Fix invalid home-manager.useUserHomeDirectory option in mkNixosGravatar Tom van der Lee2026-09-182
| | | | | | | | home-manager.useUserHomeDirectory was never a real option -- a mistake that slipped through because this file was never actually evaluated until a live nixos-rebuild switch surfaced it today. Corrected to useUserPackages, the standard option that pairs with useGlobalPkgs for NixOS+home-manager integration (also what Nix's own error suggested).
* Commit flake.lockGravatar Tom van der Lee2026-09-181
| | | | | | | | Pins nixpkgs (nixos-unstable) and home-manager to the revisions resolved by the first successful nix flake check, run on a Linux machine since Nix still isn't installed on this Mac. Without this committed, every future check/build would silently re-resolve input versions instead of using pinned ones.
* Fix nix flake check warnings; record first successful checkGravatar Tom van der Lee2026-09-185
| | | | | | | | Rename nixfmt-rfc-style to its current canonical name nixfmt, and add meta.description to the bootstrap-host app to clear its warning. Records the first successful `nix flake check` run (on a Linux machine with Nix, since this Mac still doesn't have it) across all four implemented changes so far — no errors, only these now-fixed warnings.
* Propose GNOME desktop for NixOS hostsGravatar Tom van der Lee2026-09-175
| | | | | | | Planning artifacts only (proposal, spec, design, tasks) — GDM+GNOME, NetworkManager, PipeWire, and CUPS+Avahi printing, applied unconditionally to every NixOS host via modules/nixos/common.nix. Not yet implemented.
* Add most-used dev tools, sshd/firewall, bash+liquidprompt shellGravatar Tom van der Lee2026-09-1710
| | | | | | | | | | modules/home/dev-tools.nix provisions the developer's evidenced most- used CLI/client tooling (gh, tmux, htop, yq-go, tree-sitter, docker, docker-compose, kubectl, awscli2). modules/home/shell.nix drops zsh/ starship/direnv in favor of bash + liquidprompt, both left entirely to the user's own dotfiles for config since home-manager can't own ~/.bashrc without conflicting with it. modules/nixos/common.nix adds sshd (key-only auth) and a firewall baseline for future NixOS hosts.
* Add automatic dotfiles clone + stowGravatar Tom van der Lee2026-09-1712
| | | | | | | | | | modules/home/dotfiles.nix clones ~/dotfiles on activation (only if not already present) and stows every top-level package directory into $HOME, independently per package so one conflict doesn't block the rest. Removes home-manager's own git config management in favor of letting the stowed ~/dotfiles/git/.gitconfig own it, and adds homeConfigurations."tom@darwin" so the feature is usable on this Mac. users/tom.nix now points home.dotfiles.repoUrl at the real repo.
* Add scripted host bootstrapping with directory-driven discoveryGravatar Tom van der Lee2026-09-1710
| | | | | | | | | | nixosConfigurations now auto-discovers hosts/<name>/ directories instead of a hand-maintained attrset, and scripts/bootstrap-host.sh (exposed as `nix run .#bootstrap-host`) scaffolds a new host from the template. The script always requires an explicit --root for hardware-configuration.nix so a live-installer run can never read the live ISO's own /etc/nixos by accident. Also records the belated task-11.1 checkbox update for the prior change's already-committed state.
* Add cross-platform Nix flake bootstrapGravatar Tom van der Lee2026-09-1735
Adds a flake providing shared modules for NixOS and standalone home-manager, a copyable NixOS host template, and the OpenSpec tooling/change scaffolding used to plan this work.