nixos/configuration.nix

1030 lines
25 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, ... }:
let
BORDER_WIDTH = "2";
BORDER_WIDTH_INT = 2;
CORNER_RADIUS = "10";
CORNER_RADIUS_INT = 10;
# Curves of 2px and 10px radius fits into a curve of 12px radius do border_width+ corner_radius
RECEIVING_CORNER_RADIUS = "15";
GAPS_IN = "10";
GAPS_OUT = "20";
HALF_OF_GAPS_OUT = "10";
WALLPAPER = "$HOME/media/Pictures/wallpapers/forest.jpg";
# Colours
BG = "282828";
BG0_H = "1d2021";
BG0_S = "32302f";
BG0 = "282828";
BG1 = "3c3836";
BG2 = "504945";
BG3 = "665c54";
BG4 = "7c6f64";
DARK_GRAY = "928374";
FG = "ebdbb2";
FG0 = "fbf1c7";
FG1 = "ebdbb2";
FG2 = "d5c4a1";
FG3 = "bdae93";
FG4 = "a89984";
GRAY = "a89984";
DARK_RED = "cc241d";
DARK_GREEN = "98971a";
DARK_YELLOW = "d79921";
DARK_BLUE = "458588";
DARK_PURPLE = "b16286";
DARK_AQUA = "689d6a";
DARK_ORANGE = "d65d0e";
RED = "db4934";
GREEN = "b8bb26";
YELLOW = "dabd2f";
BLUE = "83a598";
PURPLE = "d3869b";
AQUA = "8ec07c";
ORANGE = "fe8019";
in
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
<home-manager/nixos>
];
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
networking.hostName = "nixos"; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Enable networking
networking.networkmanager.enable = true;
# Set your time zone.
time.timeZone = "Europe/London";
# Select internationalisation properties.
i18n.defaultLocale = "en_GB.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_GB.UTF-8";
LC_IDENTIFICATION = "en_GB.UTF-8";
LC_MEASUREMENT = "en_GB.UTF-8";
LC_MONETARY = "en_GB.UTF-8";
LC_NAME = "en_GB.UTF-8";
LC_NUMERIC = "en_GB.UTF-8";
LC_PAPER = "en_GB.UTF-8";
LC_TELEPHONE = "en_GB.UTF-8";
LC_TIME = "en_GB.UTF-8";
};
services.xserver = {
enable = true;
desktopManager = {
xterm.enable = false;
xfce.enable = true;
};
};
services.displayManager.defaultSession = "xfce";
# Configure keymap in X11
services.xserver = {
xkb.layout = "gb";
xkb.variant = "";
};
# Configure console keymap
console.keyMap = "uk";
# Enable CUPS to print documents.
services.printing.enable = true;
# Enable sound with pipewire.
sound.enable = true;
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
# If you want to use JACK applications, uncomment this
#jack.enable = true;
# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
#media-session.enable = true;
};
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
services.gpm.enable = true; # Mouse support in tty
# Enable dconf
programs.dconf.enable = true;
# Define a user account. Don't forget to set a password with passwd.
users.users.deadvey = {
isNormalUser = true;
description = "Dave Smith";
extraGroups = [ "networkmanager" "wheel" ];
};
home-manager.users.deadvey = { pkgs, ... }: {
home.packages = with pkgs; [
thunderbird
gramps
librewolf
libreoffice
gimp
ladybird
keepassxc
nextcloud-client
tor-browser
gruvbox-plus-icons
gruvbox-gtk-theme
#emacsPackages.ement # Element client for emacs
cinny-desktop
crosswords
];
wayland.windowManager.hyprland.enable = true;
home.stateVersion = "24.05";
gtk = {
gtk2 = {
extraConfig = "gtk-application-prefer-dark-theme=0";
};
gtk3 = {
extraConfig = {
gtk-application-prefer-dark-theme=0;
};
};
gtk4 = {
extraConfig = {
gtk-application-prefer-dark-theme=0;
};
};
enable = true;
font.name = "Victor Mono SemiBold 12";
theme = {
name = "gruvbox-gtk-theme";
package = pkgs.gruvbox-gtk-theme;
};
iconTheme = {
name = "gruvbox-plus-icons";
package = pkgs.gruvbox-plus-icons;
};
cursorTheme = {
name = "Adwaita";
package = pkgs.gnome.adwaita-icon-theme;
size = 16;
};
};
services.nextcloud-client = {
enable = true;
startInBackground = true;
};
programs.ncmpcpp = {
enable = true;
};
services.mpd = {
enable = true;
musicDirectory = "~/media/Audio/playlist";
extraConfig = "bind_to_address '127.0.0.1'\n#test";
};
programs.bash = {
enable = true;
shellAliases= {
emacs="emacs -nw";
nixrc="exec $HOME/media/Code/git/nixos/edit-config.sh";
ls="eza -l";
l="lsd";
};
bashrcExtra =
''fastfetch
XDG_SCREENSHOTS_DIR="$HOME/media/Pictures/other/Screenshots"
export XDG_SCREENSHOTS_DIR
PS1="\n\e[0;35m\$?\n\e[1;31m[\e[0;32m\u\e[0;36m@\e[0;31m\h \e[1;36m\w\e[1;31m]\e[0m\n > "'';
};
programs.kitty = {
enable = true;
settings = {
cursor_shape = "underline";
cursor_shape_unfocused = "hollow";
foreground = "#${FG}";
background = "#${BG}";
selection_foreground = "#${BG}";
selection_background = "#${FG}";
color0 = "#${BG1}";
color8 = "#${BG0}";
color1 = "#${RED}";
color9 = "#${DARK_RED}";
color2 = "#${GREEN}";
color10 = "#${DARK_GREEN}";
color3 = "#${YELLOW}";
color11 = "#${DARK_YELLOW}";
color4 = "#${BLUE}";
color12 = "#${DARK_BLUE}";
color5 = "#${PURPLE}";
color13 = "#${DARK_PURPLE}";
color6 = "#${BLUE}";
color14 = "#${DARK_BLUE}";
color7 = "#${FG0}";
color15 = "#${FG1}";
};
};
programs.git = {
enable = true;
userName = "deadvey";
userEmail = "deadvey@deadvey.com";
};
services.emacs = {
enable = true;
defaultEditor = true;
};
programs.fastfetch = {
enable = true;
settings = {
logo = {
source = "nixos_small";
};
display = {
binaryPrefix = "si";
color = "blue";
separator = " ";
};
modules = [
{
type = "datetime";
key = " Date/Time";
format = "{1}-{3}-{11} {14}:{17}:{20}";
}
{
type = "os";
key = " Distro ";
keyColor = "yellow";
}
{
type = "cpu";
key = " PC ";
keyColor = "green";
}
{
type = "gpu";
key = " ";
keyColor = "green";
}
{
type = "memory";
key = " ";
keyColor = "green";
}
"colors"
];
};
};
programs.wofi = {
enable = true;
settings = {
location = "center";
allow_markup = true;
width = 250;
height = 500;
};
style = ''
* {
color: #${FG};
}
window {
border: ${BORDER_WIDTH}px solid #${FG};
background-color: #${BG};
border-radius: ${CORNER_RADIUS};
}
#input {
padding: 4px;
margin: 4px;
padding-left: 20px;
border: none;
color: #${FG};
background-color: #${BG};
outline: none;
border-radius: ${CORNER_RADIUS};
}
#inner-box {
margin: 4px;
border: 10px solid #${BG};
background-color: #${BG};
border-radius: ${CORNER_RADIUS};
}
#outer-box {
margin: 2px;
border: none;
background-color: #${BG};
border-radius: ${CORNER_RADIUS};
}
#scroll {
margin: 0px;
border: none;
border-radius: ${CORNER_RADIUS};
}
#text:selected {
color: #${BG};
margin: 0px 0px;
border: none;
border-radius: ${CORNER_RADIUS};
}
#entry {
margin: 0px 0px;
border: none;
border-radius: ${CORNER_RADIUS};
}
#entry:selected {
margin: 0px 0px;
border: none;
background-color: #${GREEN};
border-radius: ${CORNER_RADIUS};
}
'';
};
services.dunst = {
enable = true;
iconTheme = {
name = "gruvbox-plus-icons";
package = pkgs.gruvbox-plus-icons;
};
settings = {
global = {
width = 300;
height = 300;
corner_radius = "${CORNER_RADIUS}";
offset = "${HALF_OF_GAPS_OUT}x${HALF_OF_GAPS_OUT}";
origin = "bottom-right";
transparency = 0;
font = "Victor Mono SemiBold 12";
};
urgency_low = {
background = "#${GREEN}";
foreground = "#${BG}";
frame_color = "#${DARK_GREEN}";
timout = 3;
};
urgency_normal = {
background = "#${BLUE}";
foreground = "#${BG}";
frame_color = "#${DARK_BLUE}";
timout = 10;
};
urgency_critical = {
background = "#${DARK_RED}";
foreground = "#${FG}";
frame_color = "#${RED}";
timout = 60;
};
};
};
services.hyprpaper = {
enable = true;
settings = {
#ipc = "on";
#splash = false;
#splash_offset = 2.0;
preload =
[ "${WALLPAPER}" ];
wallpaper = [
"HDMI-A-1,${WALLPAPER}"
];
};
};
programs.hyprlock = {
enable = true;
extraConfig = ''
general {
grace = 10
}
background {
path = ${WALLPAPER}
blur_size = 5
blur_passes = 1 # 0 disables blurring
noise = 0.0117
contrast = 1.3000 # Vibrant!!!
brightness = 0.8000
vibrancy = 0.2100
vibrancy_darkness = 0.0
}
input-field {
size = 250, 50
outline_thickness = 3
dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true
outer_color = "#${BG}"
inner_color = "#${FG}"
font_color = "#${BG}"
#fade_on_empty = true
placeholder_text = <i>Password...</i> # Text rendered in the input box when it's empty.
hide_input = false
position = 0, 200
halign = center
valign = bottom
}
# Date
label {
text = cmd[update:18000000] echo "<b> "$(date +'%A, %-d %B %Y')" </b>"
color = "#${FG}"
font_size = 34
font_family = JetBrains Mono Nerd Font 10
position = 0, -150
halign = center
valign = top
}
# Week
label {
text = cmd[update:18000000] echo "<b> "$(date +'Week %U')" </b>"
color = "#${FG}"
font_size = 24
font_family = JetBrains Mono Nerd Font 10
position = 0, -250
halign = center
valign = top
}
# Time
label {
text = cmd[update:1000] echo "<b><big> $(date +"%I:%M:%S %p") </big></b>" # AM/PM
#text = cmd[update:1000] echo "<b><big> $(date +"%H:%M:%S") </big></b>" # 24H
color = "#${FG}"
font_size = 94
font_family = JetBrains Mono Nerd Font 10
position = 0, 0
halign = center
valign = center
}
# User
label {
text = $USER
color = $color12
font_size = 18
font_family = Inter Display Medium
position = 0, 100
halign = center
valign = bottom
}
# uptime
label {
text = cmd[update:60000] echo "<b> "$(uptime -p || $Scripts/UptimeNixOS.sh)" </b>"
color = "#${FG}"
font_size = 24
font_family = JetBrains Mono Nerd Font 10
position = 0, 0
halign = right
valign = bottom
}
# weather edit specific location. Note, this cause a 2-4 seconds delay in locking
label {
text = cmd[update:3600000] [ -f ~/.cache/.weather_cache ] && cat ~/.cache/.weather_cache
color = "#${FG}"
font_size = 24
font_family = JetBrains Mono Nerd Font 10
position = 50, 0
halign = left
valign = bottom
}
# Put a picture of choice here. Default is the current wallpaper
image {
path = $HOME/media/Pictures/other/steampunk.jpg
size = 230
rounding = -1
border_size = 2
border_color = "#${FG}"
rotate = 0
reload_time = -1
position = 0, 300
halign = center
valign = bottom
}
'';
};
wayland.windowManager.hyprland.settings = {
"$mod" = "SUPER";
bind =
[
"$mod, F, exec, librewolf"
"$mod, Q, exec, kitty"
"$mod, Space, exec, fuzzel --background-color=${BG}ff --border-color=${DARK_BLUE}ff --border-width=${BORDER_WIDTH} --match-color=${RED}ff --selection-color=${FG}ff --selection-text-color=${BG}ff --text-color=${FG}ff --width 75 --lines 25 --icon-theme=Gruvbox-Plus-Dark --border-radius=${CORNER_RADIUS}"
"$mod, E, exec, wofi-emoji"
"$mod, W, killactive"
"$mod, M, fullscreen, 1"
"$mod, J, togglesplit,"
"$mod, V, toggleFloating,"
"$mod, U, pseudo,"
"$mod SHIFT, M, fullscreen"
"$mod SHIFT, Q, exit"
"$mod, left, movefocus, l"
"$mod, right, movefocus, r"
"$mod, up, movefocus, u"
"$mod, down, movefocus, d"
"$mod SHIFT, left, movewindow, l"
"$mod SHIFT, right, movewindow, r"
"$mod SHIFT, up, movewindow, u"
"$mod SHIFT, down, movewindow, d"
"$mod, P, exec, grimshot savecopy area"
"$mod CONTROL, left, resizeactive, -20 0"
"$mod CONTROL, right, resizeactive, 20 0"
"$mod CONTROL, up, resizeactive, 0 -20"
"$mod CONTROL, down, resizeactive, 0 20"
"$mod, L, exec, hyprlock"
"$mod, code:67, exec, cmus-remote -Q | grep 'file' | sed 's/file //' | mpv --playlist=- --no-audio --pause"
"$mod, code:68, exec, pactl set-sink-volume @DEFAULT_SINK@ -5%"
"$mod, code:69, exec, pactl set-sink-volume @DEFAULT_SINK@ +5%"
"$mod, code:70, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle"
"$mod, code:71, exec, cmus-remote --pause"
"$mod, code:72, exec, cmus-remote --prev"
"$mod, code:73, exec, cmus-remote --play"
"$mod, code:74, exec, cmus-remote --next"
]
++ (
# workspaces
# binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
builtins.concatLists (builtins.genList (
x: let
ws = let
c = (x + 1) / 10;
in
builtins.toString (x + 1 - (c * 10));
in [
"$mod, ${ws}, workspace, ${toString (x + 1)}"
"$mod SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}"
]
)
10)
);
# Input
input.kb_layout=''gb'';
# General
general.gaps_in=''${GAPS_IN}'';
general.gaps_out=''${GAPS_OUT}'';
general.border_size=''${BORDER_WIDTH}'';
general."col.active_border"=''rgba(${FG}ff)'';
general."col.inactive_border"=''rgba(${DARK_BLUE}ff)'';
# Decoration
decoration.rounding=''${CORNER_RADIUS}'';
};
wayland.windowManager.hyprland.extraConfig = ''
exec-once=hyprpaper
exec-once=waybar
'';
programs.waybar = {
enable = true;
settings = {
whiteCornersTop = {
name = "whiteCornersTop";
mode = "overlay";
layer = "bottom";
position = "top";
height = 1080; # Height of monitor
width = 1920; # Width of monitor
margin-top = 0;
margin-bottom = 0;
modules-left = [];
modules-center = ["custom/empty"];
modules-right = [];
"custom/empty" = {
format = " ";
interval = 1;
};
};
topBar = {
name = "topBar";
layer = "top";
position = "top";
mode = "overlay";
exclusive = "true";
height = 30;
width = 1000;
margin-top = 0;
margin-bottom = 0;
modules-left = ["cpu"];
modules-center = ["clock"];
modules-right = ["memory"];
"clock" = {
format = "{:%d/%m/%Y %I:%M:%S} ";
interval = 1;
format-alt = "{:%A, %B %d, %Y %I:%M:%S} ";
tooltip-format = "<tt><small>{calendar}</small></tt>";
calendar = {
mode = "year";
mode-mon-col = 3;
weeks-pos = "right";
on-scroll = 1;
format = {
months = "<span color='#${FG}'><b>{}</b></span>";
days = "<span color='#${PURPLE}'><b>{}</b></span>";
weeks = "<span color='#${BLUE}'><b>W{}</b></span>";
weekdays = "<span color='#${ORANGE}'><b>{}</b></span>";
today = "<span color='#${GREEN}'><b><u>{}</u></b></span>";
};
};
};
tray = {
spacing = 12;
};
memory = {
interval = 5;
format = " {}%";
};
cpu = {
interval = 5;
format = " {usage:2}%";
tooltip = false;
};
pulseaudio = {
format = "{icon} {volume}%";
format-bluetooth = "{volume}% {icon} {format_source}";
format-bluetooth-muted = " {icon} {format_source}";
format-muted = " {format_source}";
format-source = " {volume}%";
format-source-muted = "";
format-icons = {
headphone = "";
hands-free = "";
headset = "";
phone = "";
portable = "";
car = "";
default = ["" "" ""];
};
on-click = "pavucontrol";
};
};
bottomBar = {
name = "bottomBar";
layer = "top";
position = "bottom";
mode = "overlay";
exclusive = "true";
passthrough = "false";
height = 30;
width = 1000;
margin-top = 0;
margin-bottom = 0;
modules-left = [];
modules-center = ["custom/vol" "custom/prev" "custom/pause" "custom/play" "custom/next"];
modules-right = [];
"custom/play" = {
format = "";
interval = 1;
on-click = "cmus-remote -p";
};
"custom/pause" = {
format = "";
interval = 1;
on-click = "cmus-remote -u";
};
"custom/next" = {
format = "";
interval = 1;
on-click = "cmus-remote -n";
};
"custom/prev" = {
format = "";
interval = 1;
on-click = "cmus-remote -r";
};
"custom/vol" = {
format = " {} ";
interval = 1;
exec = "cmus-remote -Q | grep 'set vol_left' | sed 's/set vol_left //'";
on-scroll-up = "cmus-remote -v +5%";
on-scroll-down = "cmus-remote -v -5%";
};
};
};
style = ''
* {
font-size: 12px;
font-family: Font Awesome, Ubuntu Nerd Font, sans-serif;
font-weight: bold;
min-height: 0;
}
window#waybar.topBar,
window#waybar.bottomBar {
background-color: transparent;
border-radius: 0px;
color: #f8f8f2;
}
#clock.whiteCornersTop
#clock.whiteCornersBottom {
background-color: transparent;
color: transparent;
}
window#waybar.whiteCornersTop {
border: ${BORDER_WIDTH}px solid RGBA(235, 219, 178, 1);
background-color: transparent;
box-shadow: 0px 0px 0px 60px black, 0px 0px 0px 0.5px #ebdbb2;
border-radius: ${RECEIVING_CORNER_RADIUS}px;
margin: 20px;
}
window#waybar.right,
window#waybar.left {
background-color: #${FG};
border-bottom: ${BORDER_WIDTH}px;
}
#workspaces {
background: #${FG};
margin: 5px 3px 5px 5px;
padding: 0px 1px;
border-radius: ${CORNER_RADIUS}px;
border: 0px;
font-style: normal;
color: #${BG};
}
#workspaces button {
padding: 0px 0px;
margin: 4px 3px;
border-radius: ${CORNER_RADIUS}px;
border: 0px;
color: #${BG};
background-color: #${BLUE};
opacity: 0.5;
transition: all 0.3s ease-in-out;
}
#workspaces button.active {
color: #${DARK_BLUE};
background: #${DARK_BLUE};
border-radius: ${CORNER_RADIUS}px;
min-width: 40px;
transition: all 0.3s ease-in-out;
opacity: 1.0;
}
#workspaces button:hover {
color: #${BG};
background: #${BG};
border-radius: ${CORNER_RADIUS}px;
opacity: 1.0;
}
tooltip {
background: #${BG};
border: 1px solid #7aa2f7;
border-radius: 15px;
}
tooltip label {
color: #c0caf5;
}
#window {
color: #${BG};
background: #c0caf5;
border-radius: ${CORNER_RADIUS}px;
margin: 5px;
padding: 2px 10px;
}
#memory {
color: #${BG};
background: #${ORANGE};
border-radius: 0px 0px ${CORNER_RADIUS}px ${CORNER_RADIUS}px;
margin: 0px;
padding: 0px 10px;
border: 2px solid #${FG};
}
#clock {
color: #${BG};
background: #${PURPLE};
border-radius: 0px 0px ${CORNER_RADIUS}px ${CORNER_RADIUS}px;
margin: 0px;
padding: 0px 10px;
border-right: 2px solid #${FG};
border-left: 2px solid #${FG};
border-top: 2px solid #${PURPLE};
border-bottom: 2px solid #${FG};
}
#cpu {
color: #${BG};
background: #${GREEN};
border-radius: 0px 0px ${CORNER_RADIUS}px ${CORNER_RADIUS}px;
margin: 0px;
padding: 0px 10px;
border: 2px solid #${FG};
}
#network {
color: #${BG};
background: #${DARK_YELLOW};
border-radius: ${CORNER_RADIUS}px;
margin: 5px;
padding: 2px 10px;
}
#tray {
color: #${BG};
background: #${BG1};
border-radius: ${CORNER_RADIUS}px;
margin: 5px;
padding: 2px 10px;
}
#pulseaudio {
color: #${BG};
background: #${YELLOW};
border-radius: 0px 0px ${CORNER_RADIUS}px ${CORNER_RADIUS}px;
margin: 0px;
padding: 0px 10px;
border: 2px solid #${FG};
}
#custom-vol {
color: #${BG};
background: #${AQUA};
border-radius: ${CORNER_RADIUS}px 0px 0px 0px;
margin: 0px;
padding: 0px 10px;
border: 2px solid #${FG};
}
#custom-play,
#custom-pause,
#custom-next,
#custom-prev {
color: #${BG};
background: #${AQUA};
border-radius: 0px 0px 0px 0px;
margin: 0px;
padding: 0px 10px;
border: 2px solid #${FG};
}
'';
};
};
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
hyprlock
vim
cmus
wget
emacs
fastfetch
gparted
git
dunst
python3
gcc
htop
hyprland
xorg.xinit
wine
waybar
yazi
xwayland
kitty
lxappearance
fuzzel
wtype
wofi
sway-contrib.grimshot
cron
wofi-emoji
dmenu
w3m
gpm # Mouse support in tty
grim
slurp
wl-clipboard
gtk3
dbus
hyprpaper
dconf
qview
lsd
mpv
killall
zip
ncmpcpp
mpd
pulseaudio
nerdfonts
eza
spotdl
];
fonts.packages = with pkgs; [
noto-fonts
noto-fonts-cjk
noto-fonts-emoji
liberation_ttf
fira-code
fira-code-symbols
mplus-outline-fonts.githubRelease
dina-font
proggyfonts
font-awesome_4
font-awesome
victor-mono
];
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# List services that you want to enable:
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "24.05"; # Did you read the comment?
}