Files
nixos-dots/configuration.nix
2026-01-06 19:56:41 +00:00

206 lines
5.5 KiB
Nix
Executable File

# Edit this configuration file to define what should be installed on
# your system. Help is available in configuration.nix(5) and via `nixos-help`.
{
config,
pkgs,
lib,
inputs,
window_manager,
systemName,
...
}:
{
imports = [
./hardware-configuration.nix
./system/boot.nix
./system/network.nix
./system/inputMethods.nix
./system/hardware.nix
./system/fonts.nix
inputs.home-manager.nixosModules.home-manager
inputs.jovian.nixosModules.default
#inputs.niri.nixosModules.niri
];
##############################################################################
# Nix settings
##############################################################################
nix.settings = {
experimental-features = [
"nix-command"
"flakes"
];
build-dir = "/nix/var/nix/builds";
auto-optimise-store = true;
};
##############################################################################
# Users
##############################################################################
programs.zsh.enable = true;
users = {
users = {
root = {
openssh = {
authorizedKeys = {
keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDwjTCq2GXRuqVXf1CeyntkOIFYNu0+tW1lurW8PNtK1 zastian00@gmail.com"
];
};
};
};
mrfluffy = {
isNormalUser = true;
shell = pkgs.zsh;
createHome = true;
extraGroups = [
"wheel"
"networkmanager"
"video"
"render"
"docker"
"libvirt"
"input"
"seat"
"dialout"
];
packages = with pkgs; [ ];
};
work = {
isNormalUser = true;
shell = pkgs.zsh;
createHome = true;
extraGroups = [
"wheel"
"networkmanager"
"video"
"render"
"docker"
"libvirt"
"input"
"seat"
"dialout"
];
packages = with pkgs; [ ];
};
game = {
isNormalUser = true;
description = "Dedicated gaming user (auto-login in Steam specialisation)";
shell = pkgs.bash;
createHome = true;
password = ""; # no password
extraGroups = [
"wheel"
"video"
"render"
"input"
"seat"
"networkmanager"
"dialout"
];
home = "/home/game";
};
};
groups.libvirtd.members = [
"mrfluffy"
"work"
];
};
##############################################################################
# Home-Manager
##############################################################################
home-manager = {
extraSpecialArgs = { inherit inputs window_manager systemName; };
users = {
mrfluffy = import ./home/mrfluffy.nix;
work = import ./home/work.nix;
game = import ./home/game.nix;
};
};
##############################################################################
# Environment
##############################################################################
environment = {
sessionVariables = {
ZDOTDIR = "$HOME/.config/zsh";
};
pathsToLink = [ "/share/zsh" ];
variables = {
# VAAPI and VDPAU config for accelerated video.
# See https://wiki.archlinux.org/index.php/Hardware_video_acceleration
VDPAU_DRIVER = "radeonsi";
LIBVA_DRIVER_NAME = "radeonsi";
# AMD_VULKAN_ICD = "RADV";
# VK_ICD_FILENAMES = "/run/opengl-driver/share/vulkan/icd.d/radeon_icd.x86_64.json";
# XDG_CURRENT_DESKTOP = "hyprland";
#QT_QPA_PLATFORMTHEME = "gtk3";
#QT_QPA_PLATFORMTHEME_QT6 = "gtk3";
};
systemPackages = with pkgs; [
vim
wget
neovim
];
};
##############################################################################
# Nixpkgs policy
##############################################################################
nixpkgs.config = {
allowUnfree = true;
permittedInsecurePackages = [ ];
};
##############################################################################
# decky
##############################################################################
nixpkgs.overlays = [
inputs.jovian.overlays.default
];
jovian.decky-loader = {
enable = true;
user = "game"; # Run as your gaming user
stateDir = "/home/game/.local/share/decky"; # Store plugins/data in user's home (adjust if preferred)
# Optional: Add extra packages if needed for specific plugins
# extraPackages = with pkgs; [ some-package ];
# extraPythonPackages = ps: with ps; [ some-python-package ];
};
##############################################################################
# State version
##############################################################################
system.stateVersion = "24.11"; # Did you read the comment?
specialisation = {
"01-steam" = {
configuration = {
imports = [
./system/specialisation/steam.nix
];
};
};
"00-main-system" = {
configuration = {
#boot.loader.systemd-boot.sortKey = lib.mkDefault "00000000000-main";
##############################################################################
# Imports
##############################################################################
imports = [
./system/services.nix
./system/nixOSPkgs.nix
./system/specialisation/main-system.nix
#inputs.niri.nixosModules.niri
];
};
};
};
}