Shared Modules
This directory contains modules that are shared between NixOS and Darwin systems. These modules provide common functionality, configuration options, and utilities that work across both platforms.
Structure
The shared module is organized into several subdirectories:
- config/ - Core configuration options for operating system detection, user settings, and system-wide options
- development/ - Development tools and configurations shared across platforms
- home-manager/ - Home Manager configuration and integration
- utils/ - Command-line utilities and tools
- system.nix - System-wide configuration including Nix settings, fonts, and environment variables
Key Features
Cross-Platform Compatibility
The shared modules automatically detect the operating system (Linux/Darwin) and adjust configurations accordingly through the dc-tec.isLinux
and dc-tec.isDarwin
options.
User Configuration
Centralized user configuration including:
- User identity (name, email, GPG keys)
- Home directory management
- Shell and editor preferences
- Platform-specific user settings
System Configuration
Common system settings that apply to both NixOS and Darwin:
- Nix configuration with flakes and experimental features
- Font management
- Time zone settings
- Environment variables
Development Environment
Shared development tools and configurations that work consistently across platforms.
Utility Applications
A curated set of command-line utilities and applications configured with sensible defaults.
Usage
The shared module is automatically imported by both NixOS and Darwin configurations through the sharedModules
list in the flake.nix file.
Configuration options are available under the dc-tec
namespace and can be customized in machine-specific configurations.