Home Manager modules
🏠 darkone.home.advanced.network-folder
Section titled “🏠 darkone.home.advanced.network-folder”“Local network” folder of the app grid: nix-admin on the admin host.
🏠 darkone.home.advanced
Section titled “🏠 darkone.home.advanced”Home profile for advanced users (computer scientists, developers, admins).
- enable
boolEnable advanced user features - enableTools
boolVarious tools for advanced users - enablePhoneTools
boolSmartphone tools (scrcpy) - enableAdmin
boolEnable administrator features (network, os tools) - enableNixAdmin
boolEnable nix administration features - enableDnfDeveloper
boolEnable all tools for DNF Codev Developer - enableDeveloper
boolEnable tools for developer - enableVscode
boolVS Code. Opt-in: ~0.3 GiB to download, Zed is the default editor - enableSlidev
boolSlidev presentations (slidev-cli, plus its VS Code extension whenenableVscode). Opt-in: ~0.4 GiB to download - enableEssentials
boolFrequently used tools - enableVaultwardenSsh
boolSSH agent backed by the user’s Vaultwarden vault (rbw). Do not enable on a host reached withssh -A: the local agent would mask the forwarded one
darkone.home.advanced = { enable = false; enableTools = false; enablePhoneTools = false; enableAdmin = false; enableNixAdmin = false; enableDnfDeveloper = false; enableDeveloper = true; enableVscode = false; enableSlidev = false; enableEssentials = true; enableVaultwardenSsh = false;};🏠 darkone.home.ai-space
Section titled “🏠 darkone.home.ai-space”Agent tools of an AI space in a member’s home: Claude Code, Codex, OpenCode, MCP, skills.
Everything comes from the space (darkone.host.ai-space of the host), so
OpenClaw and every member share the same MCP servers and skills. On by
default in the space-member home; off on any other host.
- MCP: HM
programs.mcp, integrated into Claude Code, Codex and OpenCode; - skills:
~/.claude/skills,~/.codex/skills,~/.config/opencode/skills; - logins: once per member,
claude(/login),codex login --device-auth,opencode auth login; ~/projects: the space’s shared projects (projectsDir).
- enable
boolAgent tools of the AI space (Claude Code, Codex, OpenCode, MCP, skills)
darkone.home.ai-space.enable = false;🏠 darkone.home.ai
Section titled “🏠 darkone.home.ai”AI coding tools and supporting utilities.
- enable
boolEnable AI tools and supporting utilities - enableClaude
boolClaude Code CLI - enableOpenCode
boolOpenCode terminal AI agent - enableCodex
boolOpenAI Codex CLI - enableAntigravity
boolGoogle Antigravity CLI - enableAider
boolAider AI pair programming - enableGoose
boolGoose AI coding agent (Block Inc.) - preferLocal
boolPrefer local models than cloud ones
darkone.home.ai = { enable = false; enableClaude = false; enableOpenCode = false; enableCodex = false; enableAntigravity = false; enableAider = false; enableGoose = false; preferLocal = false;};🏠 darkone.home.audio
Section titled “🏠 darkone.home.audio”Audio tools and effects.
Installs the MP3 encoder (lame) and, with GNOME, an audio player
(vlc), then layers editors and effects (audacity, easyeffects) when
enableTools is set. Real-time noise reduction (noisetorch) is
intentionally disabled because it requires PulseAudio.
- enable
boolAudio tools - enableTools
boolAudio tools / editors (audacity, easyeffects)
darkone.home.audio = { enable = false; enableTools = false;};🏠 darkone.home.education
Section titled “🏠 darkone.home.education”Several graphical education packages.
- enable
boolEducation software collection - enableBaby
boolEducation software for babies (<=6 yo) - enableChild
boolEducation software for children (6-12 yo) - enableStudent
boolEducation software for teenagers and adults (>=12 yo) - enableMath
boolMath tools and apps - enableMusic
boolMusic tools and apps - enableScience
boolScientific tools and apps - enableDraw
boolDraw tools and apps - enableLang
boolLang tools and apps - enableMisc
boolMisc tools and apps (general, training…) - enableComputer
boolComputing tools and apps (klavaro, etc.) - excludePackages
listOf packageSoftware of the enabled themes not to install, matched by name.
darkone.home.education = { enable = false; enableBaby = false; enableChild = false; enableStudent = false; enableMath = true; enableMusic = true; enableScience = true; enableDraw = true; enableLang = true; enableMisc = true; enableComputer = true; excludePackages = [ ];};🏠 darkone.home.games
Section titled “🏠 darkone.home.games”Several graphical game packages.
- enable
boolEnable games - enableBaby
boolGames for babies (<=6 yo) - enableChild
boolGames for children (6-12 yo) - enableTeenager
boolGames for teenagers and adults (>=12 yo) - enable3D
boolMore 3D Games - enableCli
boolCli Games - enableStk
boolSuperTuxKart (only) - enableMore
boolMore (secondary) games in each categories - excludePackages
listOf packageGames of the enabled categories not to install, matched by name.
darkone.home.games = { enable = false; enableBaby = false; enableChild = false; enableTeenager = false; enable3D = false; enableCli = false; enableStk = false; enableMore = false; excludePackages = [ ];};🏠 darkone.home.gnome.hidden-apps
Section titled “🏠 darkone.home.gnome.hidden-apps”Launchers hidden from the app grid, gathered from gnome.nix and umi.nix.
- hiddenEntries
listOf strDesktop file ids hidden from the app grid:gnome.hiddenApps,umi.hiddenAppsof a UMI host
darkone.home.gnome.hidden-apps.hiddenEntries = [ ];🏠 darkone.home.gnome
Section titled “🏠 darkone.home.gnome”Gnome tweaks for home-manager.
Hides launchers: the bare xterm, Qt5/Qt6 settings and NixOS manual for
every profile, scrcpy and scrcpy-console when installed, Extensions for
non-technical profiles, and (hideTechnicalIcons) Settings, Printers and
File Roller for beginner / child profiles. hiddenApps (default: vim, btop,
htop) hides more, entries still launchable by id (gnome/hidden-apps.nix,
shared with the UMI module).
keepKeyring opts the user out of the login keyring reset that follows an
admin password change (read by the NixOS gnome module).
- enable
boolEnable gnome settings for home manager - hideTechnicalIcons
boolHide some icons for beginners / children / babies - keepKeyring
boolKeep the login keyring when the admin changes the session password (keyring with a password of its own) - hiddenApps
listOf strDesktop entries hidden from the app grid, still launchable by id
darkone.home.gnome = { enable = false; hideTechnicalIcons = false; keepKeyring = false; hiddenApps = [ ];};🏠 darkone.home.imagery
Section titled “🏠 darkone.home.imagery”Image processing software.
Always installs the editor (gimp); the viewer (geeqie) is one of the
office essentials. Then layers tooling by audience: enableBeginner adds
pinta, enablePro adds inkscape/krita/yed, enable3D (with
enablePro) adds blender, enableCAD adds freecad, and enableCli
adds imagemagick/jhead.
- enable
boolImagery creation - enablePro
boolAdditional image processing software for professionals - enableBeginner
boolAdditional image processing software for beginners - enable3D
bool3D softwares - enableCAD
boolCAD softwares - enableCli
boolCLI tools (imagemagick, jhead…)
darkone.home.imagery = { enable = false; enablePro = false; enableBeginner = false; enable3D = false; enableCAD = false; enableCli = false;};🏠 darkone.home.mime
Section titled “🏠 darkone.home.mime”Default applications (xdg.mimeApps) for documents, images, audio, video.
Each MIME type lists desktop entries by preference, the first installed one wins: Papers (PDF), Geeqie (images), Celluloid (video), Audacious (audio), GNOME Text Editor (plain text), Zed (Markdown).
TODO: per-profile choices (beginner: GNOME apps, advanced: Zed, vim, VS Code), shell scripts in Zed, AsciiDoc in GNOME Text Editor.
- enable
boolEnable DNF default applications update
darkone.home.mime.enable = false;🏠 darkone.home.music
Section titled “🏠 darkone.home.music”Graphical music and sound creation apps.
Categorised by audience: enablePro (ardour, reaper, renoise,
rosegarden), enableCreator (decibels, hydrogen), enableScore
(musescore, muse-sounds-manager), enableFun (mixxx, mousai),
enableCli (mpg123, cmus, lilypond), enableEasy (gnome-music vs.
audacious, GNOME only), enableMpd (MPD daemon, ncmpcpp, mpd-mpris), and
enableDev (lilypond).
- enable
boolMusic creation home module - enablePro
boolHard tools for professionals (rose, ardour…) - enableFun
boolFun audio tools (mixxx…) - enableCli
boolCommand line audio tools (mpg123, cmus, moc…) - enableDev
boolAudio software for developers (lilypond…) - enableMpd
boolMPD daemon and players (mpd, ncmpcpp…) - enableEasy
boolEasy tools instead of efficient (gnome-music vs audacious…) - enableScore
boolScore softwares (musescore…) - enableCreator
boolCreation tools for beginners (lmms, hydrogen…)
darkone.home.music = { enable = false; enablePro = false; enableFun = false; enableCli = false; enableDev = false; enableMpd = false; enableEasy = false; enableScore = false; enableCreator = false;};🏠 darkone.home.office.browsers
Section titled “🏠 darkone.home.office.browsers”DNF office: Firefox ESR, LibreWolf and Chromium. Doc: ../office.nix header.
🏠 darkone.home.office.cartable-fantastique
Section titled “🏠 darkone.home.office.cartable-fantastique”DNF office: Cartable Fantastique toolbar in LibreOffice. Doc: ../office.nix header.
🏠 darkone.home.office.matrix
Section titled “🏠 darkone.home.office.matrix”DNF office: Matrix desktop clients (Element, Fractal). Doc: ../office.nix header.
🏠 darkone.home.office.nextcloud
Section titled “🏠 darkone.home.office.nextcloud”DNF office: Nextcloud client and GNOME Online Accounts. Doc: ../office.nix header.
- webdavLogin
packagenextcloud-webdav-loginhelper, installed by the office package list.
darkone.home.office.nextcloud.webdavLogin = nextcloudWebdavLogin;🏠 darkone.home.office.pandoc
Section titled “🏠 darkone.home.office.pandoc”DNF office: md2pdf and the pandoc toolchain. Doc: ../office.nix header.
- md2pdf
packagemd2pdfcommand, installed by the office package list.
darkone.home.office.pandoc.md2pdf = md2pdf;🏠 darkone.home.office
Section titled “🏠 darkone.home.office”Office desktop: browsers, office suite, communication, cloud and PDF tools.
Packages are gated by audience flags (enableEssentials, enableOffice,
enableTools, enableCommunication…). Sub-modules (office/):
browsers.nix: Firefox ESR (LibreWolf, Chromium) with shared policies: zone homepage and locale, tracking protection, Bitwarden pinned when the network runs Vaultwarden.cartable-fantastique.nix: Cartable Fantastique toolbar in LibreOffice (cartableFantastique, default for thechildprofile).matrix.nix: Element Desktop as soon as the network runs Matrix, pre-configured (Kanidm SSO); Fractal withenableCommunication.nextcloud.nix: desktop client bound to the network instance, andnextcloud-webdav-loginfor GNOME Online Accounts.pandoc.nix:md2pdfand the pandoc defaults (enablePandoc).
-
enable
boolDefault useful packages -
enableMore
boolMore alternative packages -
enableUnsafeFeatures
boolFeatures for advanced non-child users -
enableUBlock
boolEnable ublock plugin -
enableTools
boolLittle (gnome) tools (iotas, dialect, etc.) -
enableProductivity
boolProductivity apps (obsidian, time mgm, projects, etc.) -
enableCommunication
boolCommunication tools -
enableOffice
boolOffice packages (libreoffice, hunspell, fonts…) -
enableFirefox
boolEnable firefox -
enableLibreWolf
boolEnable LibreWolf (firefox alternative) -
enableChromium
boolEnable chromium -
enableBrave
boolEnable Brave Browser -
enableEmail
boolEmail management packages (thunderbird) -
enableSecurity
boolSecurity tools (keepass) -
enableCalendarContacts
boolCalendar, contacts, tasks and related apps -
enablePandoc
boolMarkdown to PDF toolchain: pandoc, typst, Gentium and DejaVu fonts, and themd2pdfcommand (Gentium body, A4, the zone’s language).Fenêtre de terminal md2pdf notes.md # A4, 10pt -> notes.pdfmd2pdf --big notes.md # A4, 12ptmd2pdf --tablet notes.md # A6, 9pt (11pt with --big), zoomed on a tabletmd2pdf -e context notes.md # ConTeXt engine (enablePandocContext)The engine is typst. It renders the raw TeX usual in notes (
\pagebreak,\placecontent,\centerline…) and reports any other. Table columns fit their content, unless the separator dashes differ in length (|--|--------|): the widths then follow them. A barepandoc notes.md -o notes.pdfuses the same engine, language and fonts. Under GNOME, the three layouts are also offered on right click in Nautilus (Scripts menu). -
enablePandocContext
boolConTeXt as an alternative PDF engine,md2pdf -e context(~900 MiB, needs enablePandoc) -
pandocAuthor
nullOr strCreator written into PDFs bymd2pdf.nulltakes the account’s full name. -
enableEssentials
boolEssential tools -
hunspellLang
strHunspell dictionary 🡕 -
cartableFantastique
nullOr ( enum [ "primaire" "college" "adaptateur" ] )Edition of the Cartable Fantastique 🡕 toolbar installed in LibreOffice, for pupils with dyspraxia or other DYS disorders.nullinstalls nothing.primaire: Lire, Écrire, Mathématiques and Tableau bars.college: adds languages, chemistry, electricity, equation editor.adaptateur: adds tools for the adult adapting school material.
Installed per account, in its LibreOffice profile, at Home Manager activation. Needs
enableOffice. Text-to-speech goes throughspd-say(speech-dispatcher, on by default on NixOS desktops). -
enableElementAutoStart
boolAuto-start Element Desktop (hidden) on login when the network runs Matrix -
enableFractalAutoStart
boolAuto-start Fractal on login, withenableCommunication(opt-in: no background mode, its window opens) -
nextcloud.enable
boolInstall the Nextcloud desktop client, pre-bound to the network instance -
nextcloud.server
nullOr strNextcloud instance the client binds to.nullpicks the one declared on the network (this zone first). Set it to target a local or external instance instead. -
nextcloud.enableAutoStart
boolStart the Nextcloud client in the background on login -
nextcloud.enableWebdav
boolShipnextcloud-webdav-login, a one-shot helper that authenticates through the browser (Kanidm SSO) and registers the result as a GNOME Online Account: files over WebDAV in the file manager, plus calendar and contacts in Evolution. Needed because Nextcloud refuses to create an app password from its web UI for an OIDC user.The helper also prints the app password, so any other WebDAV client can be pointed at the same account.
Ignored when
darkone.home.office.nextcloud.enableis off. -
nextcloud.syncDir
nullOr strLocal folder pre-filled in the setup wizard, relative to$HOME. -
shared
rawOffice values shared with theoffice/sub-modules.
darkone.home.office = { enable = false; enableMore = false; enableUnsafeFeatures = false; enableUBlock = false; enableTools = false; enableProductivity = false; enableCommunication = false; enableOffice = false; enableFirefox = false; enableLibreWolf = false; enableChromium = false; enableBrave = false; enableEmail = false; enableSecurity = false; enableCalendarContacts = false; enablePandoc = false; enablePandocContext = false; pandocAuthor = "Jane Doe"; enableEssentials = true; hunspellLang = "en-us"; cartableFantastique = "primaire"; enableElementAutoStart = true; enableFractalAutoStart = false; nextcloud.enable = detectedNextcloud != null; nextcloud.server = "https://cloud.example.com"; nextcloud.enableAutoStart = true; nextcloud.enableWebdav = true; nextcloud.syncDir = "Nextcloud"; shared = { inherit lang country hasHomepage homeUrl hasMatrix hasVaultwarden nextcloudUrl hasNextcloud hasNextcloudWebdav ; };};🏠 darkone.home.umi.stk-mouse
Section titled “🏠 darkone.home.umi.stk-mouse”DNF UMI: SuperTuxKart driven by the mouse alone (enableStkWithMouse). Doc: ../umi.nix header.
🏠 darkone.home.umi
Section titled “🏠 darkone.home.umi”Unified Multimodal Input (UMI)
Touchscreen + voice + gaze (Talon autostart + Onboard).
- enable
boolUMI multimodal input configuration (Talon + Onboard) - enableTalonAutostart
boolStart Talon on session login, once the panel tray is up (talon must be in PATH). - communityScripts
nullOr packagetalonhub/community tree deployed to ~/.talon/user/community. - enableSpeech
boolTalon speech recognition at start. Off by default: put to sleep at each Talon start, stray words must not trigger commands - enableDwell
booldwell click: clicking by resting the pointer. Off by default — it is only usable with an eye tracker, and with a mouse it fires on whatever the pointer was left over (the a11y menu toggling zoom or the on-screen keyboard, typically) - dwellTime
floatDwell click delay in seconds. - enableTrackerAuto
boolEye tracker plugged in: Talon gaze mouse control and hover click on; unplugged: hover click off (Cinnamon session). Takes overenableDwellin Cinnamon. - gazeFilterSpeed
nullOr numbers.positiveTalon Control Mouse per-eye gaze filter coefficient, withenableTrackerAuto: higher reacts faster and smooths less. Default: Talon’s own, the head refines the last millimetres;nullkeeps Talon’s whatever its version. - cursorFilterSpeed
nullOr numbers.positiveTalon Control Mouse cursor filter coefficient, withenableTrackerAuto: higher reacts faster, overshoots more.nullkeeps Talon’s own (2.0). - headSpeed
nullOr numbers.positiveTalon Head Control sensitivity, withenableTrackerAutoandenableHeadControl: above 1 a slight head movement moves the cursor, below 1 ample, poorly controlled movements are dampened.nullkeeps Talon’s own (1). - enableGazeControl
boolTalon Gaze Control, withenableTrackerAuto: the cursor follows the gaze. - enableHeadControl
boolTalon Head Control, withenableTrackerAuto: head movements refine the cursor placed by the gaze (headSpeed). Off for an unsteady head, which drags the cursor away from the gaze. - enableHeadJump
boolTalon Head Jump, withenableTrackerAuto: a head movement brings the cursor to the gaze - enableMouseJump
boolTalon Mouse Jump, withenableTrackerAuto: moving a real mouse towards the gaze brings the cursor there. Off by default, it yanks a helper’s pointer - enableGazeFocus
boolTalon Gaze Focus (experimental), withenableTrackerAuto: the window looked at gets the focus - panelHeight
ints.between 40 96Cinnamon panel height in pixels, its icons follow (gaze targets). - textScaling
floatText scaling factor of the Cinnamon session (buttons grow with their labels). - enablePanel
boolCinnamon panel managed by DNF: launchers and open windows set apart, hover click controls (click types, pause zone), accessibility menu, keyboard toggle; no Bluetooth icon nor corner bar. Rewritten at every activation. - enableMaximize
boolApplication windows open maximized (Cinnamon extension), the panel stays in reach. Dialogs, Onboard and fixed-size windows keep their size. - panelLaunchers
listOf strPanel launchers (desktop file ids), withenablePanel. - menuFavorites
listOf strCinnamon menu favorites (desktop file ids), rewritten at every activation.dnf-umi-calibrate.desktop, withenableTrackerAuto, starts the eye tracker calibration. - enableRofiMenu
boolFull-screen application grid (rofi), UMI host only: pages of big tiles turned by edge buttons, one click launches, settings panels left out. Opened by the first panel launcher (withenablePanel). - rofiGridResolution
submoduleApplication grid page, in tiles, withenableRofiMenu. The default 6 × 4 fits 96 px icons on a 1600×900 screen; fewer tiles grow wider.- columns
ints.between 1 12Tiles per row. - rows
ints.between 1 8Tile rows per page.
- columns
- hiddenApps
listOf strApplications hidden from the grid and the Cinnamon menu (desktop file ids), UMI host only. Launches by id and file associations still work. - enableStkWithMouse
boolSuperTuxKart driven by the mouse alone, UMI host only: the stick (or mouse moves) accelerates, brakes and steers, left click drifts, double click fires, right click uses nitro. Installs the game, its launcher runs the converter
darkone.home.umi = { enable = false; enableTalonAutostart = true; communityScripts = null; enableSpeech = false; enableDwell = false; dwellTime = 1.6; enableTrackerAuto = true; gazeFilterSpeed = 1.0; cursorFilterSpeed = 4.0; headSpeed = 0.3; enableGazeControl = true; enableHeadControl = true; enableHeadJump = false; enableMouseJump = false; enableGazeFocus = false; panelHeight = 64; textScaling = 1.5; enablePanel = true; enableMaximize = true; panelLaunchers = [ ]; menuFavorites = [ ]; enableRofiMenu = true; rofiGridResolution.columns = 6; rofiGridResolution.rows = 4; hiddenApps = [ ]; enableStkWithMouse = false;};🏠 darkone.home.video
Section titled “🏠 darkone.home.video”Video tools and applications.
Always installs the default player (celluloid, GTK4/libadwaita front-end
over mpv) and gates the rest by audience: enableTools (ffmpeg, mlt, vlc,
video-trimmer, parabolic), enableEditing (kdenlive, shotcut),
enableCreator (OBS Studio with obs-backgroundremoval, obs-vkcapture,
etc.), enableUnfree (davinci-resolve) and enableAlternative (mpv).
- enable
boolVideo creation and tools home module - enableTools
boolVideo tools for professionals - enableEditing
boolVideo editing tools (kdenlive…) - enableCreator
boolVideo creator tools (obs…) - enableUnfree
boolUnfree video apps (davinci…) - enableAlternative
boolAlternative video apps (mpv…)
darkone.home.video = { enable = false; enableTools = false; enableEditing = false; enableCreator = false; enableUnfree = false; enableAlternative = false;};