Finishing the four remaining "opt-in services" candidates — but two of
them aren't service-shaped, so the package-vs-toggle principle applies:
- Nextcloud client → a bare tray app; already in the app-suite menu,
not a service.
- WireGuard → NetworkManager (on distro-wide) imports .conf
tunnels natively, so there's no daemon to "just
enable". Only the wg/wg-quick CLI is missing →
wireguard-tools added to the app-suite menu.
The two that ARE config-backed become nomarchy.services.* toggles:
- openrgb → services.hardware.openrgb (daemon + device udev rules).
- restic → a small scaffolded surface (repository / passwordFile /
paths) over services.restic.backups: daily timer, 7/4/6
retention, --exclude-caches, repo auto-init. Asserts that
repository + passwordFile are set when enabled. passwordFile
is typed `str`, not `path`, so a flake-relative secret can't
be copied into the world-readable store.
README option table and ROADMAP (services now "Seventeen shipped";
cloud-sync / networking / backup / devices areas updated) + the downstream
system.nix examples. Both branches eval-verified; the restic assertions
confirmed firing when repo/password are unset.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
141 lines
5.7 KiB
Nix
141 lines
5.7 KiB
Nix
# Your user environment. The Nomarchy desktop (Hyprland, Waybar,
|
|
# Ghostty, theming engine, Stylix) comes from homeModules.nomarchy;
|
|
# tune it via the nomarchy.* options, add your own packages and
|
|
# programs below.
|
|
{ pkgs, ... }:
|
|
|
|
{
|
|
# ── Overrides (the desktop is on by default; tweak or opt out) ──────
|
|
# nomarchy.terminal = "kitty"; # swap the default terminal
|
|
# nomarchy.waybar.enable = false; # bring your own bar
|
|
# nomarchy.stylix.enable = false; # opt out of GTK/Qt theming
|
|
# nomarchy.keyboard.layout = "de"; # session keyboard (set the matching
|
|
# # services.xserver.xkb.layout in
|
|
# # system.nix too; the console + LUKS
|
|
# # prompt follow it automatically)
|
|
|
|
# ── Opt-in features — uncomment and tweak to enable ─────────────────
|
|
# nomarchy.nightlight = { # scheduled blue-light filter (hyprsunset)
|
|
# enable = true;
|
|
# temperature = 4000; # night warmth in K — lower is warmer
|
|
# sunset = "20:00";
|
|
# sunrise = "07:00";
|
|
# };
|
|
#
|
|
# nomarchy.monitors = [ # declarative per-output layout, hotplug-applied
|
|
# { name = "eDP-1"; position = "0x0"; }
|
|
# { name = "HDMI-A-1"; position = "auto-right"; }
|
|
# ]; # names from `hyprctl devices`
|
|
#
|
|
# nomarchy.keyboard.devices = { # a specific keyboard's own layout
|
|
# "keychron-keychron-k2" = { layout = "de"; };
|
|
# };
|
|
#
|
|
# nomarchy.keyboard.layouts = [ "de" "fr" ]; # rofi-prompt for a layout when a
|
|
# # new keyboard connects + remember it
|
|
|
|
# ── Application suite ───────────────────────────────────────────────
|
|
# A starter complete-workstation set, installed for your user — yours to
|
|
# curate. Delete a line to slim the machine; uncomment a suggestion (or
|
|
# add your own) to extend it. The desktop itself — terminal, editor
|
|
# keybinds, theming — comes from the modules; these are the heavier
|
|
# standalone apps the distro doesn't impose by default.
|
|
#
|
|
# Apps that need system setup beyond a package (Steam's 32-bit stack,
|
|
# a daemon, group membership, a kernel module) are NOT here — they're
|
|
# opt-in service toggles in system.nix instead (nomarchy.services.* —
|
|
# steam, libvirt, obs, docker, gamemode, kdeconnect, adb, wireshark,
|
|
# ollama, printing).
|
|
home.packages = with pkgs; [
|
|
libreoffice-fresh # office suite (documents, sheets, slides)
|
|
vscode # code editor (unfree; allowUnfree is on)
|
|
gimp # raster image editor
|
|
inkscape # vector graphics
|
|
mpv # media player
|
|
amberol # music player (local library; streaming → spotify below)
|
|
|
|
# ── More apps — uncomment to add ─────────────────────────────────
|
|
# Web browsers
|
|
# firefox
|
|
# chromium
|
|
# ungoogled-chromium
|
|
# brave # (unfree)
|
|
# google-chrome # (unfree)
|
|
|
|
# Communication
|
|
# signal-desktop
|
|
# telegram-desktop
|
|
# element-desktop # Matrix
|
|
# vesktop # Discord (themeable client)
|
|
# slack # (unfree)
|
|
# zoom-us # (unfree)
|
|
# teams-for-linux # community client (no official Linux app)
|
|
# thunderbird # email
|
|
|
|
# Office & documents
|
|
# onlyoffice-desktopeditors # stronger MS-Office fidelity
|
|
# kdePackages.okular # PDF viewer
|
|
# xournalpp # PDF annotation
|
|
# pdfarranger
|
|
# calibre # ebook library
|
|
# texliveFull # full LaTeX toolchain — multi-GB (texliveMedium is lighter)
|
|
|
|
# Notes / research
|
|
# logseq
|
|
# obsidian # (unfree)
|
|
# joplin-desktop
|
|
# anki-bin # flashcards
|
|
# zotero # reference manager
|
|
|
|
# Code & data
|
|
# zed-editor
|
|
# lazygit
|
|
# dbeaver-bin # database GUI
|
|
# bruno # API client
|
|
# distrobox # containerized dev shells
|
|
|
|
# Graphics & design
|
|
# krita # digital painting
|
|
# blender # 3D
|
|
# darktable # RAW photo
|
|
|
|
# Audio / video
|
|
# audacity
|
|
# shotcut # video editor
|
|
# kdePackages.kdenlive # video editor (pulls in KDE libs)
|
|
# handbrake # transcoder
|
|
|
|
# Media
|
|
# vlc
|
|
# spotify # (unfree)
|
|
# newsflash # RSS reader
|
|
|
|
# Gaming (Steam + GameMode are service toggles in system.nix)
|
|
# lutris
|
|
# heroic # Epic/GOG launcher
|
|
# bottles # Wine prefixes
|
|
# prismlauncher # Minecraft
|
|
# protonup-qt # Proton-GE manager
|
|
# mangohud # in-game overlay
|
|
|
|
# Files, sync & torrents
|
|
# nextcloud-client
|
|
# localsend # AirDrop-like transfer
|
|
# qbittorrent
|
|
|
|
# Security
|
|
# keepassxc
|
|
# bitwarden-desktop
|
|
|
|
# System
|
|
# gnome-disk-utility
|
|
# gparted
|
|
# baobab # disk usage
|
|
# wireguard-tools # WireGuard CLI (NetworkManager imports .conf tunnels natively)
|
|
|
|
# Local AI (Ollama is a service toggle in system.nix)
|
|
# lmstudio # (unfree; large closure)
|
|
# alpaca # GTK Ollama UI
|
|
];
|
|
}
|