Legacy shipped only Thunar (and a stray nautilus extension, mid-migration). This pairs a keyboard-driven TUI flagship that fits the distro's identity with the GUI half for point-and-click + the "open folder" handler. yazi (modules/home/yazi.nix, nomarchy.yazi.enable, SUPER+E, `y` shell wrapper cd's on exit): themed from theme-state.json (mgr/mode/status mapped from the palette; merges over yazi's defaults so it tracks the theme) with a curated, correctly-wired plugin set — full-border, git (setup + prepend_fetchers), smart-enter (l/Enter), chmod (cm), mount (M), compress (caa), mediainfo (audio/subtitle only — images/videos keep native thumbnails), glow (markdown previews). Preview/tooling deps: ffmpegthumbnailer, poppler-utils, p7zip, jq, fd, ripgrep, fzf, chafa, mediainfo, glow. Thunar (modules/nixos/file-manager.nix, nomarchy.system.fileManager.enable): GTK file manager (Stylix-themed) + archive/volman/media-tags plugins + gvfs/tumbler/udisks2 backends + thumbnailers + exo. udisks2 also backs yazi's mount plugin. Verified: flake check green, HM generation builds (yazi TOML/init.lua render, all 8 plugins resolve), every package present in the live ISO closure (offline install draws from it — no source-build leak). Not verified: yazi's runtime preview/plugin behaviour needs a real session (TUI; can't drive in CI here). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
56 lines
2.3 KiB
Nix
56 lines
2.3 KiB
Nix
# System-level `nomarchy.system.*` options.
|
|
#
|
|
# Deliberately small: only things a downstream user plausibly disagrees
|
|
# with get a toggle. Everything else in the system module is set with
|
|
# lib.mkDefault, so plain NixOS options override it natively.
|
|
{ lib, ... }:
|
|
|
|
{
|
|
options.nomarchy.system = {
|
|
greeter.enable = lib.mkEnableOption "the greetd/tuigreet login screen" // { default = true; };
|
|
|
|
greeter.autoLogin = lib.mkOption {
|
|
type = lib.types.nullOr lib.types.str;
|
|
default = null;
|
|
example = "ada";
|
|
description = ''
|
|
Log this user straight into Hyprland on boot (greetd
|
|
initial_session); logging out lands on the normal greeter.
|
|
The installer sets it on LUKS-encrypted machines — the disk
|
|
passphrase already gates access, a second prompt is ceremony.
|
|
'';
|
|
};
|
|
|
|
plymouth.enable = lib.mkEnableOption ''
|
|
the Nomarchy Plymouth boot splash (logo + progress + LUKS prompt),
|
|
background-tinted from theme-state.json via nomarchy.system.stateFile.
|
|
Recolors on system rebuilds — theme switches don't touch the initrd'' // { default = true; };
|
|
|
|
stateFile = lib.mkOption {
|
|
type = lib.types.nullOr lib.types.path;
|
|
default = null;
|
|
example = lib.literalExpression "./theme-state.json";
|
|
description = ''
|
|
theme-state.json for the system-side consumers (currently the
|
|
Plymouth splash background). lib.mkFlake wires it automatically
|
|
from your flake; null falls back to the Tokyo Night base color.
|
|
'';
|
|
};
|
|
|
|
fileManager.enable = lib.mkEnableOption ''
|
|
the Thunar GUI file manager + backend services (gvfs/tumbler/udisks2)
|
|
for point-and-click file management and the "open folder" handler.
|
|
The keyboard-driven TUI flagship (yazi) is the nomarchy.yazi.* home
|
|
option'' // { default = true; };
|
|
|
|
audio.enable = lib.mkEnableOption "the Pipewire audio stack" // { default = true; };
|
|
bluetooth.enable = lib.mkEnableOption "Bluetooth support with blueman" // { default = true; };
|
|
|
|
snapper.enable = lib.mkEnableOption ''
|
|
hourly/daily BTRFS timeline snapshots of / via snapper, plus the
|
|
`nixos-rebuild-snap` pre-rebuild-snapshot helper. No-op unless the
|
|
root filesystem is BTRFS with a /.snapshots subvolume (the installer
|
|
creates one)'';
|
|
};
|
|
}
|