130 lines
3.6 KiB
Nix
130 lines
3.6 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
|
|
let
|
|
# Do not change this value! This tracks when NixOS was installed on your system.
|
|
stateVersion = "24.11";
|
|
|
|
# Set the username for the initial user.
|
|
username = builtins.abort "Please set your username via the 'username' variable in configuration.nix";
|
|
in
|
|
{
|
|
imports = [ ./hardware-configuration.nix ];
|
|
|
|
system.stateVersion = stateVersion;
|
|
|
|
###*** Configure your system below this line. ***###
|
|
# Set your time zone.
|
|
# To see all available timezones, run `timedatectl list-timezones`.
|
|
time.timeZone = "Europe/Amsterdam";
|
|
|
|
# Define your user account(s). If this user doesn't already have a password, don't forget to set one using `passwd`.
|
|
users.users.${username} = {
|
|
isNormalUser = true;
|
|
extraGroups = [ "wheel" ];
|
|
|
|
# Enter any additional packages specific to this user here.
|
|
packages = with pkgs; [ ];
|
|
};
|
|
|
|
# Configure home-manager for your user.
|
|
# For configuration options, see https://nix-community.github.io/home-manager/#using-home-manager
|
|
home-manager.users.${username} = {
|
|
# The state version is required and should stay at the version you originally installed.
|
|
home.stateVersion = stateVersion;
|
|
|
|
programs = {
|
|
# Let home Manager install and manage itself.
|
|
home-manager.enable = true;
|
|
};
|
|
};
|
|
|
|
# Configure the system.
|
|
aux.system = {
|
|
# Enable to allow unfree (e.g. closed source) packages.
|
|
# Some settings may override this (e.g. enabling Nvidia GPU support).
|
|
# https://nixos.org/manual/nixpkgs/stable/#sec-allow-unfree
|
|
allowUnfree = false;
|
|
|
|
# Enable Secure Boot support.
|
|
# IMPORTANT: Read the README before enabling this option!
|
|
bootloader.secureboot.enable = false;
|
|
|
|
# Change the default text editor. Options are "emacs", "nano", or "vim".
|
|
editor = "nano";
|
|
|
|
ui.flatpak = {
|
|
# Enable Flatpak support.
|
|
enable = false;
|
|
|
|
# Define Flatpak packages to install.
|
|
packages = [ ];
|
|
};
|
|
|
|
# Additional system packages to install.
|
|
packages = [ ];
|
|
|
|
# Change how long old generations are kept for.
|
|
retentionPeriod = "30d";
|
|
|
|
# Enable GPU support.
|
|
gpu = {
|
|
# Enable AMD GPU support.
|
|
amd.enable = false;
|
|
|
|
# Enable Intel GPU support.
|
|
intel.enable = false;
|
|
|
|
nvidia = {
|
|
# Enable Nvidia GPU support.
|
|
enable = false;
|
|
|
|
hybrid = {
|
|
# Enables support for hybrid GPUs (e.g. for laptops and systems with integrated GPUs).
|
|
enable = false;
|
|
# Define the bus IDs for your GPUs.
|
|
# For more info on where to find bus IDs, see https://nixos.wiki/wiki/Nvidia#Configuring_Optimus_PRIME:_Bus_ID_Values_.28Mandatory.29
|
|
busIDs = {
|
|
nvidia = "";
|
|
intel = "";
|
|
amd = "";
|
|
};
|
|
|
|
# Enable sync mode for faster performance at the cost of higher battery usage.
|
|
# If sync is disabled, you'll need to run GPU-accelerated applications using 'nvidia-offload <command>'.
|
|
sync = false;
|
|
};
|
|
};
|
|
};
|
|
|
|
ui.desktops = {
|
|
# Enable the Budgie desktop environment.
|
|
# https://buddiesofbudgie.org/
|
|
budgie.enable = false;
|
|
|
|
# Enable the Hyprland desktop environment.
|
|
# https://hyprland.org/
|
|
hyprland.enable = false;
|
|
|
|
# Enable the Gnome desktop environment.
|
|
# https://www.gnome.org/
|
|
gnome.enable = false;
|
|
|
|
# Enable the KDE desktop environment.
|
|
# https://kde.org/
|
|
kde.enable = false;
|
|
|
|
# Enable the XFCE desktop environment.
|
|
# https://xfce.org/
|
|
xfce.enable = false;
|
|
};
|
|
};
|
|
|
|
# Enable printing via CUPS
|
|
services.printing.enable = false;
|
|
}
|