add zelden

This commit is contained in:
Noa Aarts 2025-03-29 22:24:38 +01:00
parent c76fbd2cba
commit 76ff67f99b
Signed by: noa
GPG key ID: 1850932741EFF672
6 changed files with 249 additions and 261 deletions

View file

@ -10,12 +10,11 @@
displays ? [ ],
# is there any extra specific config necessary (like nvidia on lambdaOS)
extraConfig ? { },
# inputs of this flake
local_inputs,
}:
{
config,
pkgs,
inputs,
lib,
...
}:
@ -76,8 +75,8 @@ in
]
# FLURRY AND TSUNAMI :3 (I made these)
++ lib.optionals enableFlut [
local_inputs.flurry.packages.${system}.default
local_inputs.tsunami.packages.${system}.default
inputs.flurry.packages.${system}.default
inputs.tsunami.packages.${system}.default
]
# and ofc the things that are only logical with graphics
++ lib.optionals enableGraphical [
@ -148,8 +147,8 @@ in
configFile = lib.mkIf enableGraphical {
"niri/config.kdl".source = import ../../packages/niri-config/default.nix {
inherit pkgs displays;
inputs = local_inputs;
self-pkgs = local_inputs.self.packages.${pkgs.system};
inputs = inputs;
self-pkgs = inputs.self.packages.${pkgs.system};
};
};
};
@ -298,8 +297,8 @@ in
let
display-shader = pkgs.substituteAll {
src = ../../modules/automapaper/display-with_vars.glsl;
background = local_inputs.nix-colors.lib.conversions.hexToGLSLVec "0a000a";
foreground = local_inputs.nix-colors.lib.conversions.hexToGLSLVec "192291";
background = inputs.nix-colors.lib.conversions.hexToGLSLVec "0a000a";
foreground = inputs.nix-colors.lib.conversions.hexToGLSLVec "192291";
};
state-shader = ../../modules/automapaper/state-game_of_life.glsl;
init-shader = ../../modules/automapaper/init.glsl;
@ -336,7 +335,7 @@ in
Service = {
ExecStart = "${
local_inputs.automapaper.packages.${pkgs.system}.automapaper
inputs.automapaper.packages.${pkgs.system}.automapaper
}/bin/automapaper -C ${display_config}/config.toml";
Restart = "on-failure";
RestartSec = 15;

38
flake.lock generated
View file

@ -147,11 +147,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1743160145,
"narHash": "sha256-9DYlhUx9YS2JNkZzUJvVk/qt0n4W+pJtd29od0olwmg=",
"lastModified": 1743246566,
"narHash": "sha256-arEFUDLjADYIZ7T6PZX1yLOnfMoZ1ByebtmPuvV98+s=",
"owner": "lilyinstarlight",
"repo": "nixos-cosmic",
"rev": "977ebffd4a29f341139e2a80a7b1a9938fdfc2ba",
"rev": "c709db4b95e58f410978bb49c87cb74214d03e78",
"type": "github"
},
"original": {
@ -712,11 +712,11 @@
]
},
"locked": {
"lastModified": 1743136572,
"narHash": "sha256-uwaVrKgi6g1TUq56247j6QvvFtYHloCkjCrEpGBvV54=",
"lastModified": 1743267068,
"narHash": "sha256-G7866vbO5jgqMcYJzgbxej40O6mBGQMGt6gM0himjoA=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "1efd2503172016a6742c87b47b43ca2c8145607d",
"rev": "b431496538b0e294fbe44a1441b24ae8195c63f0",
"type": "github"
},
"original": {
@ -804,11 +804,11 @@
"pre-commit-hooks": "pre-commit-hooks"
},
"locked": {
"lastModified": 1743192532,
"narHash": "sha256-7KjHia6J1/DlH5qVirINMwsR6NiCXAXZYAc+4QyInT0=",
"lastModified": 1743274305,
"narHash": "sha256-gsPA3AAGi3pucRpzJbhWWyyOBv2/2OjAjU/SlcSE8Vc=",
"ref": "refs/heads/main",
"rev": "a6adaab2bcb87ce5f71ad6c78dd6c03c920f159a",
"revCount": 17744,
"rev": "d169c092fc28838a253be136d17fe7de1292c728",
"revCount": 17746,
"type": "git",
"url": "https://git.lix.systems/lix-project/lix.git"
},
@ -872,11 +872,11 @@
"rust-overlay": "rust-overlay_3"
},
"locked": {
"lastModified": 1743236791,
"narHash": "sha256-wY/szwIWE8qq4cXrDK6cV/dq+h2RNVDXu1Wk2oOgRIk=",
"lastModified": 1743260207,
"narHash": "sha256-AtizkeSqu7AeMe/JjN8CjENfTKgMGifDW0U2z+S0ygA=",
"owner": "YaLTeR",
"repo": "niri",
"rev": "d639eb0032a1022f4c76b40646cc7e501e568f35",
"rev": "b2c34e7fe94a12a65083ac73759672427ea2ccbf",
"type": "github"
},
"original": {
@ -1150,11 +1150,11 @@
},
"nixpkgs_8": {
"locked": {
"lastModified": 1743237023,
"narHash": "sha256-vkcV94jtyepUy5b0+eG5MUHIHV18gA/tv7RDOQ1ySkY=",
"lastModified": 1743283310,
"narHash": "sha256-wbYZwu9QFkxYHokRDKRiXcvReAhMdRGDyZKgoAFZm6w=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "badbebc62173249c628f2ea3f2e26199c425e886",
"rev": "9e83f2a9f76d8fd69f2b1b1173820d297875d0ae",
"type": "github"
},
"original": {
@ -1258,11 +1258,11 @@
]
},
"locked": {
"lastModified": 1743129211,
"narHash": "sha256-gE8t+U9miTwm2NYWS9dFY8H1/QB4ifaFDq1KdV9KEqo=",
"lastModified": 1743215516,
"narHash": "sha256-52qbrkG65U1hyrQWltgHTgH4nm0SJL+9TWv2UDCEPNI=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "f93da1d26ba9963f34f94a6872b67a7939699543",
"rev": "524463199fdee49338006b049bc376b965a2cfed",
"type": "github"
},
"original": {

View file

@ -131,40 +131,19 @@
./hosts/muos/configuration.nix
];
};
zelden = nixpkgs.lib.nixosSystem {
specialArgs = {
inherit inputs;
};
modules = [
inputs.home-manager.nixosModules.default
./hosts/zelden/configuration.nix
];
};
};
nixosModules = {
automapaper = ./modules/automapaper;
};
homeManagerModules = {
"noa@zelden" =
let
pkgs = nixpkgs.legacyPackages.x86_64-linux;
in
(import ./common/home {
enableGraphical = true;
enableFlut = false;
enableGames = false;
displays = [
{
name = "DP-6";
horizontal = 3840;
vertical = 1200;
horizontal-offset = 0;
vertical-offset = 0;
refresh-rate = 100;
scale = "1";
}
];
local_inputs = inputs;
extraConfig = {
programs.btop.package = pkgs.btop.overrideAttrs (oldAttrs: {
cmakeFlags = (oldAttrs.cmakeFlags or [ ]) ++ [
"-DBTOP_GPU=ON"
];
});
};
});
};
packages = import ./packages { inherit nixpkgs; };
};
}

View file

@ -1,230 +1,153 @@
# 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,
lib,
pkgs,
inputs,
nix-colors,
...
}:
{
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
../../modules/games/steam.nix
../../modules/plasma
imports = [ ./hardware-configuration.nix ];
../../common
../../common/configuration.nix
./rescue.nix
./restic.nix
];
age.identityPaths = [ "${config.users.users.noa.home}/.ssh/id_ed25519" ];
hardware.nvidia = {
modesetting.enable = true;
powerManagement = {
boot.loader = {
systemd-boot.enable = false;
efi.canTouchEfiVariables = true;
grub = {
enable = true;
efiSupport = true;
useOSProber = true;
device = "nodev";
};
open = true;
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.beta;
};
nixpkgs.config = {
nvidia.acceptLicense = true;
cudaSupport = true;
};
networking = {
hostName = "zelden"; # Define your hostname.
firewall.allowedTCPPorts = [
];
firewall.allowedUDPPorts = [
];
};
users = {
defaultUserShell = pkgs.zsh;
users = {
wim = {
isNormalUser = true;
description = "Wim";
extraGroups = [
"networkmanager"
"wheel"
"docker"
"wireshark"
"dialout"
];
hashedPassword = "$6$rounds=512400$Zip3xoK2zcoR4qEL$N13YTHO5tpWfx2nKb1sye.ZPwfoRtMQ5f3YrMZqKzzoFoSSHHJ.l5ulCEa9HygFxZmBtPnwlseFEtl8ERnwF50";
openssh.authorizedKeys.keys = [ ];
};
hardware = {
enableRedistributableFirmware = true;
graphics.enable = true;
nvidia = {
modesetting.enable = true;
powerManagement.enable = true;
open = true;
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.stable;
};
};
home-manager = {
extraSpecialArgs = {
inherit inputs nix-colors;
};
users = {
"wim" = (import ../../common/home) {
enableGraphical = true;
enableFlut = false;
enableGames = true;
displays = [
{
# TODO: find display name and resolution
name = "DP-3";
horizontal = 2560;
vertical = 1440;
horizontal-offset = 2560;
vertical-offset = 0;
refresh-rate = 360;
scale = "1";
}
];
extraConfig = {
programs.btop.package = pkgs.btop.overrideAttrs (oldAttrs: {
cmakeFlags = (oldAttrs.cmakeFlags or [ ]) ++ [
"-DBTOP_GPU=ON"
];
});
};
};
"noa" = (import ../../common/home) {
enableGraphical = true;
enableFlut = false;
enableGames = true;
displays = [
{
# TODO: find display name and resolution
name = "DP-3";
horizontal = 2560;
vertical = 1440;
horizontal-offset = 2560;
vertical-offset = 0;
refresh-rate = 360;
scale = "1";
}
];
extraConfig = {
programs.btop.package = pkgs.btop.overrideAttrs (oldAttrs: {
cmakeFlags = (oldAttrs.cmakeFlags or [ ]) ++ [
"-DBTOP_GPU=ON"
];
});
};
};
"root" = import ./root.nix;
};
};
modules = {
plasma.enable = false;
};
boot.kernelModules = [
"nvidia_uvm"
];
services = {
postgresql = {
enable = false;
ensureDatabases = [ "noa" ];
ensureUsers = [
{
name = "noa";
ensureDBOwnership = true;
"noa" = (
import ./common/home {
enableGraphical = true;
enableFlut = false;
enableGames = false;
displays = [
{
name = "DP-6";
horizontal = 3840;
vertical = 1200;
horizontal-offset = 0;
vertical-offset = 0;
refresh-rate = 100;
scale = "1";
}
];
local_inputs = inputs;
extraConfig = {
programs.btop.package = pkgs.btop.overrideAttrs (oldAttrs: {
cmakeFlags = (oldAttrs.cmakeFlags or [ ]) ++ [
"-DBTOP_GPU=ON"
];
});
};
}
];
};
ollama = {
enable = true;
acceleration = "cuda";
openFirewall = true;
};
fail2ban.enable = true;
hardware = {
openrgb = {
enable = true;
};
);
"wim" = (import ./wim.nix);
};
};
systemd = {
user.services.polkit-gnome-authentication-agent-1 = {
description = "polkit-gnome-authentication-agent-1";
wantedBy = [ "graphical-session.target" ];
wants = [ "graphical-session.target" ];
after = [ "graphical-session.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
timers."update-from-flake" = {
wantedBy = [ "timers.target" ];
timerConfig = {
OnCalendar = "*-*-* 05:00:00";
Persistent = true;
};
};
services = {
"update-from-flake" = {
path = with pkgs; [
nixos-rebuild
git
];
script = ''
nixos-rebuild boot --flake github:itepastra/nixconf#nuOS
shutdown -r +5 "System will reboot in 5 minutes"
'';
serviceConfig = {
Type = "oneshot";
User = "root";
};
wants = [
"network-online.target"
];
after = [
"network-online.target"
];
restartIfChanged = false;
};
};
};
# List packages installed in system profile. To search by name, run:
# $ nix-env -qaP | grep wget
environment.systemPackages = with pkgs; [
pciutils
file
gnumake
gcc
cudatoolkit
];
services.xserver.videoDrivers = [ "nvidia" ];
systemd.services.nvidia-control-devices = {
wantedBy = [ "multi-user.target" ];
serviceConfig.ExecStart = "${pkgs.linuxPackages.nvidia_x11.bin}/bin/nvidia-smi";
networking = {
hostName = "zelden";
firewall.allowedTCPPorts = [ ];
firewall.allowedUDPPorts = [ ];
};
nixpkgs.config.allowUnfree = true;
# 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 = "23.11"; # Did you read the comment?
programs = {
gnupg.agent = {
enable = true;
enableSSHSupport = true;
pinentryPackage = pkgs.pinentry-qt;
};
niri = {
enable = true;
package = inputs.niri.packages.${pkgs.system}.niri;
};
zsh.enable = true;
};
services = {
desktopManager.plasma6.enable = true;
displayManager.sddm = {
enable = true;
wayland.enable = true;
};
xserver.videoDrivers = [ "nvidia" ];
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
jack.enable = true;
};
thermald.enable = true;
};
security = {
rtkit.enable = true;
polkit.enable = true;
sudo.execWheelOnly = true;
};
system = {
switch.enableNg = true;
rebuild.enableNg = true;
stateVersion = "25.05";
};
users.users = {
wim = {
isNormalUser = true;
description = "Wim";
extraGroups = [
"wheel"
];
};
noa = {
isNormalUser = true;
description = "Noa Aarts";
extraGroups = [
"networkmanager"
"wheel"
"docker"
"wireshark"
"dialout"
];
hashedPassword = "$6$rounds=512400$Zip3xoK2zcoR4qEL$N13YTHO5tpWfx2nKb1sye.ZPwfoRtMQ5f3YrMZqKzzoFoSSHHJ.l5ulCEa9HygFxZmBtPnwlseFEtl8ERnwF50";
openssh.authorizedKeys.keys = (import ../../common/ssh-keys.nix);
};
};
virtualisation.docker = {
enable = true;
package = pkgs.docker_27;
rootless = {
enable = true;
setSocketVariable = true;
};
};
}

View file

@ -0,0 +1,35 @@
{
config,
lib,
modulesPath,
...
}:
{
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot = {
initrd.availableKernelModules = [
"nvme"
"xhci_pci"
"ahci"
"usb_storage"
"usbhid"
"sd_mon"
];
initrd.kernelModules = [ ];
kernelModules = [ "kvm-amd" ];
extraModulePackages = [ ];
};
fileSystems."/" = {
device = "/dev/disk/by-uuid/421f2811-e8eb-4a8e-8f09-a5e11b71fdcd";
fsType = "ext4";
};
networking.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

52
hosts/zelden/wim.nix Normal file
View file

@ -0,0 +1,52 @@
{
pkgs,
...
}:
{
home = {
homeDirectory = "/home/wim";
packages = with pkgs; [
# Add programs you want installed here if they don't have a `programs` entry
firefox
mtr
];
preferXdgDirectories = true;
stateVersion = "23.11";
username = "wim";
};
xdg = {
enable = true;
portal = {
enable = true;
extraPortals = [ pkgs.kdePackages.xdg-desktop-portal-kde ];
config.common.default = "*";
};
userDirs = {
enable = true;
createDirectories = true;
};
};
nixpkgs.config.allowUnfree = true;
programs = {
home-manager.enable = true;
man.enable = true;
ssh = {
enable = true;
compression = true;
# you can add matchBlocks from the ssh config here to your liking
matchBlocks = {
# "github" = {
# host = "github.com";
# hostname = "github.com";
# identityFile = "~/.ssh/id_rsa_yubikey.pub";
# identitiesOnly = true;
# port = 22;
# user = "git";
# };
};
};
};
}