Skip to main content
User application modules provide declarative configuration for common desktop applications. All modules are opt-in and can be enabled individually.

Enabling User Applications

The top-level userapps.enable option enables profile-sync-daemon for browser optimization:
This enables:
  • Profile Sync Daemon (psd) - Syncs browser profiles to tmpfs for improved performance
  • Resync interval: 10 minutes

Browsers

Multiple browsers can be installed simultaneously. Priority values determine which becomes the default.

Available Browsers

LibreWolf

Privacy-focused Firefox fork with pre-configured privacy settings.Priority: 10 (highest by default)

Firefox

Mozilla Firefox with FF-ULTIMA theme and privacy extensions.Priority: 20

Floorp

Japanese Firefox-based browser with unique features.Priority: 30

Google Chrome

Google’s browser (binary distribution).Priority: 100 (lowest, fallback)

Common Options

boolean
default:"false"
Enable the browser.
int
Priority for becoming the default browser. Lower values win.

Firefox-based Browsers

LibreWolf, Firefox, and Floorp share common configuration:

Search Engines

All Firefox-based browsers include custom search engines:
  • DuckDuckGo (default) - Privacy-focused search
  • Nix Packages (@np) - Search NixOS packages
  • Nix Options (@no) - Search NixOS options
  • NixOS Wiki (@nw) - Search the NixOS wiki
Google and Bing are hidden by default.

Extensions

Pre-installed extensions:
  • uBlock Origin - Ad and tracker blocking
  • Privacy Badger - Intelligent tracker blocking
  • Bitwarden - Password manager integration

Theme

Firefox-based browsers use the FF-ULTIMA theme for a modern, minimalist interface.

Example Configuration

Chrome Configuration

Chrome has a special default behavior:
This ensures at least one browser is always available.

Communication

Communication applications for messaging and collaboration.

Discord

boolean
default:"false"
Enable Discord client (Vesktop).
Uses Vesktop - A Discord client with Vencord pre-installed for enhanced features and customization.

Development Tools

Comprehensive development environment configuration.

Enabling Development Tools

boolean
default:"false"
Enable development tools and configure environment.
This enables:
  • npm with local bin directory in PATH (~/.npm/bin)
  • uv - Fast Python package installer and resolver

Text Editors

Editor modules support priority-based defaults for EDITOR and VISUAL environment variables.

Neovim

boolean
default:"false"
Enable Neovim editor.
int
default:"20"
Priority for being the default editor.
attrset
default:"{}"
Neovim configuration settings passed to nvf.
Neovim is configured using the nvf (NeoVim Flake) framework, which provides a type-safe, modular configuration system. Example from homes/soriphoono:

VSCode / VSCodium

boolean
default:"false"
Enable VSCode/VSCodium editor.
package
default:"pkgs.vscodium"
The VSCode package to use.
string
default:"codium.desktop"
The desktop file name for XDG integration.
int
default:"30"
Priority for being the default editor. Lower priority than terminal editors by default.

AI Agents

AI agent configuration modules for LLM integration.
Located in modules/home/userapps/development/agents/:
  • mcp-servers.nix - Model Context Protocol server management
  • skills.nix - Agent skill definitions
  • clients/gemini.nix - Google Gemini API client

Development Categories

The development module structure includes:

Example Configuration


Data Fortress

Security and cloud storage applications.

Bitwarden

boolean
default:"false"
Enable Bitwarden desktop client.
Installs the official Bitwarden desktop application for password management.

Nextcloud

boolean
default:"false"
Enable Nextcloud sync client.
Installs the Nextcloud desktop client for file synchronization.

Example


Office Suite

Productivity applications (configured in modules/home/userapps/office/).

Default Applications

Control XDG MIME type associations.
boolean
default:"false"
Enable setting default applications via Nix configuration.
When enabled, modules can set XDG MIME type defaults based on priority values. This affects:
  • Default web browser for HTTP/HTTPS links
  • Default text editor for plain text and code files
  • Other file type associations
Disable this if you prefer to manage default applications through your desktop environment.

Complete Example

A comprehensive user applications configuration: