NixOS is more complicated than you think but OpenCode fixed it

grigio1 pts0 comments

NixOS is more complicated than you think but opencode fixed it

Overview<br>A deep dive into an advanced, minimal NixOS setup using LabWC (Wayland compositor) + Noctalia Shell V5 (from Cachix, not the official NixOS repo), assisted by opencode with the DeepSeek V4 Flash model for AI-guided configuration.<br>The result? A desktop that boots at 743 MB RAM with only 48 active tasks .<br>Key Highlights<br>๐Ÿ”น Ultra-lightweight<br>743 MB RAM usage on boot<br>48 tasks active โ€” no bloat from full DEs like GNOME or KDE<br>๐Ÿ”น LabWC + Noctalia V5<br>LabWC provides a minimal Wayland session; many desktop services (dbus, polkit, clipman, etc.) must be manually configured<br>Noctalia Shell V5 sourced via Cachix (not yet in nixpkgs)<br>Color schemes sync between Nocttalia and LabWC via noctalia-labwc-sync<br>๐Ÿ”น AI-Assisted Config<br>opencode + DeepSeek V4 Flash used to write and debug NixOS configs<br>AGENTS.md drives system updates and automation<br>Sudoers configured for passwordless sudo (opencode convenience)<br>๐Ÿ”น Custom Patches<br>Snapshot (webcam app) patched to work on NixOS โ€” needed a custom build with a library fix, despite being in nixpkgs<br>Several environment variables manually set (session type, compose key, Telegram fix) since LabWC/greetd don't handle them all<br>๐Ÿ”น No Home-Manager<br>User configs kept in ~/.config/ for portability across distros<br>A rebuild hook symlinks dotfiles into /etc/nixos/ (like GNU Stow)<br>๐Ÿ”น Hybrid Package Management<br>Nix packages via environment.systemPackages<br>npm-installed apps like opencode2 coexist alongside Nix-managed ones<br>Some programs (e.g., OBS Studio) enabled via programs.obs-studio.enable rather than packages list<br>Notable Services & Tools

Service/Tool<br>Purpose

greetd<br>Login manager (alternative to GDM/SDDM)

vox-type (Vulkan)<br>Speech-to-text, Italian primary

podman + podman-compose<br>Container management

cockpit + cockpit-podman<br>Web admin UI

kshi<br>Display resolution & multi-monitor

clipman<br>Persistent clipboard

satty<br>Screenshots

scrcpy<br>Android screen mirror via USB

smartmontools<br>SSD health analysis

LocalSend<br>LAN file sharing (port 53317)

KDE Connect<br>Device integration

Traefik<br>Reverse proxy (podman container)

NixOS Config Structure<br>/etc/nixos/<br>โ”œโ”€โ”€ flake.nix โ†’ loads configuration.nix + Nocttalia V5<br>โ”œโ”€โ”€ configuration.nix โ†’ main config (long, modular)<br>โ”œโ”€โ”€ hardware-configuration.nix<br>โ””โ”€โ”€ *symlinks โ†’ ~/dotfiles/ (managed via rebuild hook)<br>Lessons & Gotchas<br>LabWC is not a full DE โ€” you must manually wire up dbus, polkit, clipboard, environment variables, etc.<br>greetd doesn't fully manage session env vars โ€” some must be hardcoded in config<br>Snapshot needs a patch on NixOS even if available in repos<br>Nix sometimes misidentifies apps โ€” file associations can be tricky<br>4 GB+ RAM recommended for nixos-rebuild โ€” a swap file helps on low-RAM machines<br>AMD microcode + Bluetooth disabled at boot (but installed) โ€” fine-grained control<br>Final Thought<br>"Some configurations are very complicated โ€” but it is worth exploring this path."<br>The trade-off is clear: more complexity upfront for a lean, reproducible, extremely lightweight system. opencode + AI bridging the gap makes it practical.

"Fork it. Or just walk away." โ€“ Il creatore di Linux risponde ai critici dell'IA

Luglio 2026 โ€“ Linus Torvalds ha chiuso la discussione una volta per tutte. In un thread sulla Linux Kernel Mailing List (LKML) datato 15 luglio 2026, il creatore e maintainer capo del kernel

1. What Is Kimi K3?

Kimi K3 is the latest flagship model from Moonshot AI (Beijing), released July 16, 2026. It is a Mixture-of-Experts model with 2.8 trillion total parameters and about 32 billion active per token (16 out of 896 experts). It supports 1 million tokens of context

TL;DR: GNOME Snapshot segfaults (SIGSEGV 139) when the camera portal<br>returns a PipeWire file descriptor. The portal steals the connection's fd,<br>disconnects the client, and hands the dup to Snapshot โ€” which then tries to<br>re-register on a dead connection. The fix is a 50-line LD_PRELOAD shim

Powered by Ghost

nixos labwc opencode config noctalia configuration

Related Articles