adding first steps to cnixlab and some small fixes
This commit is contained in:
51
hosts/cnixtop/default.nix
Normal file
51
hosts/cnixtop/default.nix
Normal 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";
|
||||
}
|
||||
71
hosts/cnixtop/hardware-configuration.nix
Normal file
71
hosts/cnixtop/hardware-configuration.nix
Normal 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
224
hosts/cnixtop/modules.nix
Normal 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;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -23,15 +23,15 @@
|
||||
# get these into the module system
|
||||
specialArgs = {inherit inputs self userConfig systemConfig hostConfig cnstConfig toothpickConfig umodPath smodPath;};
|
||||
in {
|
||||
cnix = nixosSystem {
|
||||
cnixtop = nixosSystem {
|
||||
inherit specialArgs;
|
||||
|
||||
modules = [
|
||||
./cnix
|
||||
./cnixtop
|
||||
"${self}/nix"
|
||||
{
|
||||
home-manager = {
|
||||
users.cnst.imports = homeImports."cnst@cnix";
|
||||
users.cnst.imports = homeImports."cnst@cnixtop";
|
||||
extraSpecialArgs = specialArgs;
|
||||
};
|
||||
}
|
||||
@@ -41,22 +41,6 @@
|
||||
inputs.agenix.nixosModules.default
|
||||
];
|
||||
};
|
||||
toothpc = nixosSystem {
|
||||
inherit specialArgs;
|
||||
modules = [
|
||||
./toothpc
|
||||
"${self}/nix"
|
||||
{
|
||||
home-manager = {
|
||||
users.toothpick.imports = homeImports."toothpick@toothpc";
|
||||
extraSpecialArgs = specialArgs;
|
||||
};
|
||||
}
|
||||
self.nixosModules.nixos
|
||||
inputs.chaotic.nixosModules.default
|
||||
inputs.agenix.nixosModules.default
|
||||
];
|
||||
};
|
||||
cnixpad = nixosSystem {
|
||||
inherit specialArgs;
|
||||
modules = [
|
||||
@@ -73,5 +57,37 @@
|
||||
inputs.agenix.nixosModules.default
|
||||
];
|
||||
};
|
||||
cnixlab = nixosSystem {
|
||||
inherit specialArgs;
|
||||
modules = [
|
||||
./cnixlab
|
||||
"${self}/nix"
|
||||
{
|
||||
home-manager = {
|
||||
users.cnst.imports = homeImports."adamin@cnixlab";
|
||||
extraSpecialArgs = specialArgs;
|
||||
};
|
||||
}
|
||||
self.nixosModules.nixos
|
||||
inputs.chaotic.nixosModules.default
|
||||
inputs.agenix.nixosModules.default
|
||||
];
|
||||
};
|
||||
toothpc = nixosSystem {
|
||||
inherit specialArgs;
|
||||
modules = [
|
||||
./toothpc
|
||||
"${self}/nix"
|
||||
{
|
||||
home-manager = {
|
||||
users.toothpick.imports = homeImports."toothpick@toothpc";
|
||||
extraSpecialArgs = specialArgs;
|
||||
};
|
||||
}
|
||||
self.nixosModules.nixos
|
||||
inputs.chaotic.nixosModules.default
|
||||
inputs.agenix.nixosModules.default
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user