Configuration Modules
This directory contains the core configuration modules that define system-wide options and settings shared between NixOS and Darwin.
Modules
os.nix
Defines operating system detection and system-wide configuration options.
Key Options:
dc-tec.isLinux- Read-only boolean indicating if the system is Linuxdc-tec.isDarwin- Read-only boolean indicating if the system is Darwin/macOSdc-tec.font- Default system font (automatically set based on platform)dc-tec.colorScheme.flavor- Catppuccin color scheme flavor (default: "macchiato")dc-tec.colorScheme.accent- Catppuccin accent color (default: "peach")dc-tec.stateVersion- System state version for compatibilitydc-tec.timeZone- System timezone (default: "Europe/Amsterdam")dc-tec.persistence.*- Impermanence/persistence configuration options
Features:
- Automatic platform detection
- Font selection based on operating system
- Persistence configuration for NixOS systems
- Color scheme management
user.nix
Manages user account configuration and settings.
Key Options:
dc-tec.user.name- Primary username (default: "roelc")dc-tec.user.fullName- User's full name (default: "Roel de Cort")dc-tec.user.email- Primary email addressdc-tec.user.workEmail- Work email addressdc-tec.user.gpgKey- User's GPG key IDdc-tec.user.homeDirectory- Home directory path (auto-configured)dc-tec.user.shell- Default shell (default: "zsh")dc-tec.user.editor- Default editor (default: "nvim")
Features:
- Cross-platform user account creation
- Automatic home directory detection
- Platform-specific user configuration
- Group management
- Password file integration with SOPS
Platform Compatibility
The configuration modules handle differences between NixOS and Darwin automatically:
- Linux: Creates normal user accounts with groups, password files, and system journal access
- Darwin: Uses Darwin-specific user management
- Shared: Common settings like home directory, shell, and editor work on both platforms