adding first steps to cnixlab and some small fixes

This commit is contained in:
2025-03-22 06:03:07 +01:00
parent 488f075f74
commit 55ce423924
25 changed files with 868 additions and 180 deletions

51
hosts/cnixtop/default.nix Normal file
View File

@@ -0,0 +1,51 @@
{
lib,
config,
pkgs,
...
}: let
ifTheyExist = groups: builtins.filter (group: builtins.hasAttr group config.users.groups) groups;
in {
users.users.cnst = {
isNormalUser = true;
shell = pkgs.fish;
extraGroups = ifTheyExist [
"wheel"
"networkmanager"
"audio"
"video"
"git"
"mysql"
"docker"
"libvirtd"
"qemu-libvirtd"
"kvm"
"network"
"gamemode"
"adbusers"
"rtkit"
"users"
"plocate"
"fuse"
];
};
imports = [
./hardware-configuration.nix
./modules.nix
];
networking.hostName = "cnixtop";
environment.variables.FLAKE = "/home/cnst/.nix-config";
programs.hyprland.settings = {
monitor = [
"DP-3,2560x1440@240,0x0,1,transform,0,bitdepth,10"
"DP-4,1920x1080@60,auto,1,transform,3"
];
};
# # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
system.stateVersion = lib.mkDefault "23.11";
}

View File

@@ -0,0 +1,71 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [];
fileSystems."/" = {
device = "/dev/disk/by-uuid/90eafb57-0f89-4c2a-b417-4e0f2fba5f47";
fsType = "btrfs";
options = ["subvol=root"];
};
boot.initrd.luks.devices."enc".device = "/dev/disk/by-uuid/36144799-13f2-4166-9bfe-b29c3df435ab";
fileSystems."/home" = {
device = "/dev/disk/by-uuid/90eafb57-0f89-4c2a-b417-4e0f2fba5f47";
fsType = "btrfs";
options = ["subvol=home"];
};
fileSystems."/nix" = {
device = "/dev/disk/by-uuid/90eafb57-0f89-4c2a-b417-4e0f2fba5f47";
fsType = "btrfs";
options = ["subvol=nix"];
};
fileSystems."/persist" = {
device = "/dev/disk/by-uuid/90eafb57-0f89-4c2a-b417-4e0f2fba5f47";
fsType = "btrfs";
options = ["subvol=persist"];
};
fileSystems."/var/log" = {
device = "/dev/disk/by-uuid/90eafb57-0f89-4c2a-b417-4e0f2fba5f47";
fsType = "btrfs";
options = ["subvol=log"];
neededForBoot = true;
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/1D4A-3121";
fsType = "vfat";
options = ["fmask=0022" "dmask=0022"];
};
swapDevices = [{device = "/dev/disk/by-uuid/91e16a5f-6a1c-4c7d-aa61-5823068fdaf0";}];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.eno1.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp11s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

224
hosts/cnixtop/modules.nix Normal file
View File

@@ -0,0 +1,224 @@
{
nixos = {
boot = {
kernel = {
extraBlacklistedModules = [];
extraKernelParams = [];
hardware = "amd";
variant = "latest";
};
loader = {
default = {
enable = false;
};
lanzaboote = {
enable = true;
};
};
};
hardware = {
bluetooth = {
enable = true;
};
graphics = {
amd = {
enable = true;
packageSet = "standard";
};
nvidia = {
enable = false;
};
};
logitech = {
enable = true;
};
network = {
enable = true;
interfaces = {
"eno1" = {
allowedTCPPorts = [22 80 443];
};
};
};
};
programs = {
android = {
enable = true;
};
anyrun = {
enable = false;
};
beekeeper = {
enable = false;
};
blender = {
enable = false;
hip = {
enable = false;
};
};
corectrl = {
enable = false;
};
fish = {
enable = true;
};
gamemode = {
enable = true;
optimizeGpu = {
enable = true;
};
};
gamescope = {
enable = true;
};
gimp = {
enable = false;
};
gnome = {
enable = false;
};
hyprland = {
enable = true;
};
inkscape = {
enable = false;
};
lutris = {
enable = true;
};
microfetch = {
enable = true;
};
pkgs = {
enable = true;
desktop = {
enable = true;
};
laptop = {
enable = false;
};
dev = {
enable = true;
};
};
mysql-workbench = {
enable = false;
};
nh = {
enable = true;
clean = {
enable = true;
extraArgs = "--keep 3 --keep-since 21d";
};
};
npm = {
enable = false;
};
obsidian = {
enable = true;
};
steam = {
enable = true;
};
thunar = {
enable = true;
};
yubikey = {
enable = true;
};
zsh = {
enable = false;
};
};
services = {
agenix = {
enable = true;
cnixtop = {
enable = true;
};
};
blueman = {
enable = true;
};
dbus = {
enable = true;
};
dconf = {
enable = true;
};
flatpak = {
enable = true;
};
fwupd = {
enable = true;
};
gnome-keyring = {
enable = true;
};
greetd = {
enable = true;
user = "cnst";
};
gvfs = {
enable = true;
};
kanata = {
enable = true;
};
locate = {
enable = true;
};
mullvad = {
enable = true;
};
nix-ld = {
enable = false;
};
openssh = {
enable = true;
};
pcscd = {
enable = true;
};
pipewire = {
enable = true;
};
polkit = {
enable = true;
};
powerd = {
enable = false;
};
samba = {
enable = false;
};
scx = {
enable = true;
scheduler = "scx_lavd";
flags = "--performance";
};
udisks = {
enable = true;
};
zram = {
enable = true;
};
};
system = {
fonts = {
enable = true;
};
locale = {
enable = true;
defaultLocale = "en_US.UTF-8";
extraLocale = "sv_SE.UTF-8";
timeZone = "Europe/Stockholm";
};
xdg = {
enable = true;
xdgOpenUsePortal = true;
};
};
};
}