Files
hydenix/configuration.nix
2025-11-01 10:30:13 +09:00

99 lines
3.7 KiB
Nix

{
inputs,
...
}:
let
# FOLLOW THE BELOW INSTRUCTIONS LINE BY LINE TO SET UP YOUR SYSTEM
# Package configuration - sets up package system with proper overlays
# Most users won't need to modify this section
system = "x86_64-linux";
pkgs = import inputs.nixpkgs {
inherit system;
config.allowUnfree = true;
overlays = [
inputs.hydenix.overlays.default
];
};
in
{
nixpkgs.pkgs = pkgs; # Set pkgs for hydenix globally
imports = [
# hydenix inputs - Required modules, don't modify unless you know what you're doing
inputs.hydenix.inputs.home-manager.nixosModules.home-manager
inputs.hydenix.nixosModules.default
./modules/system # Your custom system modules
./hardware-configuration.nix # Auto-generated hardware config
# Hardware Configuration - Uncomment lines that match your hardware
# Run `lshw -short` or `lspci` to identify your hardware
# GPU Configuration (choose one):
# inputs.nixos-hardware.nixosModules.common-gpu-nvidia # NVIDIA
# inputs.nixos-hardware.nixosModules.common-gpu-amd # AMD
# CPU Configuration (choose one):
# inputs.nixos-hardware.nixosModules.common-cpu-amd # AMD CPUs
# inputs.nixos-hardware.nixosModules.common-cpu-intel # Intel CPUs
# Additional Hardware Modules - Uncomment based on your system type:
# inputs.nixos-hardware.nixosModules.common-hidpi # High-DPI displays
# inputs.nixos-hardware.nixosModules.common-pc-laptop # Laptops
# inputs.nixos-hardware.nixosModules.common-pc-ssd # SSD storage
];
# If enabling NVIDIA, you will be prompted to configure hardware.nvidia
# hardware.nvidia = {
# open = true; # For newer cards, you may want open drivers
# prime = { # For hybrid graphics (laptops), configure PRIME:
# amdBusId = "PCI:0:2:0"; # Run `lspci | grep VGA` to get correct bus IDs
# intelBusId = "PCI:0:2:0"; # if you have intel graphics
# nvidiaBusId = "PCI:1:0:0";
# offload.enable = false; # Or disable PRIME offloading if you don't care
# };
# };
# Home Manager Configuration - manages user-specific configurations (dotfiles, themes, etc.)
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = { inherit inputs; };
# User Configuration - REQUIRED: Change "hydenix" to your actual username
# This must match the username you define in users.users below
users."hydenix" =
{ ... }:
{
imports = [
inputs.hydenix.homeModules.default
./modules/hm # Your custom home-manager modules (configure hydenix.hm here!)
];
};
};
# User Account Setup - REQUIRED: Change "hydenix" to your desired username (must match above)
users.users.hydenix = {
isNormalUser = true;
initialPassword = "hydenix"; # SECURITY: Change this password after first login with `passwd`
extraGroups = [
"wheel"
"networkmanager"
"video"
]; # User groups (determines permissions)
shell = pkgs.zsh; # Default shell (options: pkgs.bash, pkgs.zsh, pkgs.fish)
};
# Hydenix Configuration - Main configuration for the Hydenix desktop environment
hydenix = {
enable = true; # Enable Hydenix modules
# Basic System Settings (REQUIRED):
hostname = "hydenix"; # REQUIRED: Set your computer's network name (change to something unique)
timezone = "America/Vancouver"; # REQUIRED: Set timezone (examples: "America/New_York", "Europe/London", "Asia/Tokyo")
locale = "en_CA.UTF-8"; # REQUIRED: Set locale/language (examples: "en_US.UTF-8", "en_GB.UTF-8", "de_DE.UTF-8")
# For more configuration options, see: ./docs/options.md
};
# System Version - Don't change unless you know what you're doing (helps with system upgrades and compatibility)
system.stateVersion = "25.05";
}