Features

Technical Documentation and Features


1. Introduction

Declarative Technologies delivers a NixOS 25.05 workstation image with an “it-works-my-way” philosophy; one repo, one stack, minimal tuning knobs. The current build targets single-user desktops and small office servers rather than large fleets; anything outside that scope is aspirational, so it isn’t listed here.

2. System Architecture

LayerWhat You Really UseNotes
Bootsystemd-boot on EFISimple; no GRUB complexity.
Root FSBtrfs on a single partition, mounted via subvolume @Chosen for snapshots & compression; no ZFS present.
Config SourceGit monorepo at /etc/nixoshosts/, sys-modules/, hardware-configuration.nix, etc.
Update Flowswitch.sh script → git pullnix flake updatenixos-rebuild switchRuns on every manual call; throttles flake update to 10 min. No CI, no signing.
NetworkingNetworkManager + optional TailscaleTailscale set to client routing; no exit nodes.
Display StackKDE Plasma (X11) + NVIDIA proprietary drivershardware.graphics.enable, PRIME offload
2.1 Filesystem & Snapshotting
  • Btrfs snapshots are manual only – see scripts/btrfs-subvolume.sh for subvolume creation; there is no automatic timeline, rollback helper, or remote replication.
  • Swap lives on a dedicated swap label partition; nothing fancy.
2.2 Monorepo Layout

/etc/nixos
├── hosts/ # host-specific configs
├── sys-modules/ # 50-ish reusable .nix modules
├── scripts/ # helper bash scripts (switch, hostname, btrfs, etc.)
└── hardware-configuration.nix

Everything (including flake.lock) is committed so rebuilds are deterministic; you don’t regenerate the lock on the fly.

3. Software Stack

CategoryEnabled Modules / PackagesComment
Desktopplasma.nix, papirus-theme.nix, fonts.nixKDE with Papirus icons.
BrowsersFirefox, ChromeChrome pulls pkgs.google-chrome.
Office / MailLibreOffice, OnlyOffice, Evolution, Thunderbird, Birdtray
Dev Toolingnixvim, github-desktop, nixpkgs-fmt, morphNixVim is byte-compiled Lua; Gruvbox theme; LazyGit keybind.
MediaVLC
VirtualisationVirtualBox + extension packFor Windows VMs if you must.
CommsSignal Desktop, Teams, TeamViewer, ProtonMail BridgeTeams + TeamViewer are optional but on by default.
Networking & VPNTailscale, ProtonVPNProtonVPN module wires in the CLI; no kill-switch rules.
Misc UtilitiesHtop, GParted, Baobab, Remotemouse, SSHFS, windows-rebootLast one allows password-less reboot into the Windows bootloader entry.

4. Security Posture

Firewall: On – all ports blocked, unless you want them opened.

Bluetooth: Enabled and left discoverable; no additional hardening.

Sudo: Extra rule for users to call the Windows-reboot command with NOPASSWD.

Unfree Drivers: nixpkgs.config.allowUnfree = true to pull NVIDIA; no automatic driver updates.

5. Update & Maintenance Workflow

graph TD
A[Run switch.sh] –> B[ssh-agent loads read-only key]
B –> C[git fetch && reset –hard origin/main]
C –> D[Optional nix flake update]
D –> E[nixos-rebuild switch]
E –> F[Reboot if needed]

Trigger: Manual; no cron or timer.

Downtime: One reboot max; can be skipped if only user-space packages change.

Rollback: Standard NixOS boot-loader entry; no wrapper script yet.

6. Current Limitations & Roadmap

Scroll to Top