re-split direcories #1

Merged
vinzenz merged 28 commits from modules into main 2025-09-15 19:44:30 +02:00
15 changed files with 275 additions and 280 deletions
Showing only changes of commit 8fc672bfcf - Show all commits

103
flake.nix
View file

@ -63,23 +63,66 @@
}:
let
devices = {
vinzenz-lpt2 = "x86_64-linux";
vinzenz-pc2 = "x86_64-linux";
ronja-pc = "x86_64-linux";
hetzner-vpn2 = "aarch64-linux";
forgejo-runner-1 = "aarch64-linux";
vinzenz-lpt2 = {
system = "x86_64-linux";
additional-modules = [
self.nixosModules.user-vinzenz
self.nixosModules.gnome
self.nixosModules.wine-gaming
self.nixosModules.steam
self.nixosModules.printing
self.nixosModules.podman
self.nixosModules.vinzenz-desktop-settings
self.nixosModules.intel-graphics
];
home-manager-users = {
inherit (self.homeConfigurations) vinzenz;
};
};
vinzenz-pc2 = {
system = "x86_64-linux";
additional-modules = [
self.nixosModules.user-vinzenz
self.nixosModules.user-ronja
self.nixosModules.gnome
self.nixosModules.wine-gaming
self.nixosModules.steam
self.nixosModules.printing
self.nixosModules.podman
self.nixosModules.vinzenz-desktop-settings
self.nixosModules.amd-graphics
];
home-manager-users = {
inherit (self.homeConfigurations) vinzenz ronja;
};
};
ronja-pc = {
system = "x86_64-linux";
additional-modules = [
self.nixosModules.user-ronja
self.nixosModules.gnome
self.nixosModules.steam
self.nixosModules.wine-gaming
self.nixosModules.vinzenz-desktop-settings
];
home-manager-users = {
inherit (self.homeConfigurations) ronja;
};
};
hetzner-vpn2 = {
system = "aarch64-linux";
};
forgejo-runner-1 = {
system = "aarch64-linux";
additional-modules = [ self.nixosModules.podman ];
};
};
homeDevices = [
"vinzenz-lpt2"
"vinzenz-pc2"
"ronja-pc"
];
lib = nixpkgs.lib;
forDevice = f: lib.mapAttrs f devices;
supported-systems = [
"x86_64-linux"
"aarch64-linux"
];
forDevice = f: lib.mapAttrs (device: value: f (value // { inherit device; })) devices;
supported-systems = lib.attrsets.mapAttrsToList (k: v: v.system) devices;
forAllSystems =
f:
lib.genAttrs supported-systems (
@ -101,20 +144,21 @@
};
nixosConfigurations = forDevice (
device: system:
{
device,
system,
home-manager-users ? { },
additional-modules ? [ ],
}:
let
commonSpecialArgs = {
specialArgs = {
inherit device;
vinzenzHomeModules = self.homeModules;
vinzenzLib = self.lib;
};
in
nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = commonSpecialArgs // {
vinzenzNixosModules = self.nixosModules;
vinzenzHomeConfigurations = self.homeConfigurations;
};
inherit system specialArgs;
modules = [
{
networking.hostName = device;
@ -134,6 +178,7 @@
nix.settings.experimental-features = [
"nix-command"
"flakes"
"repl-flake"
];
documentation = {
@ -144,6 +189,7 @@
./nixosConfigurations/${device}
self.nixosModules.default
self.nixosModules.lix-is-nix
self.nixosModules.globalinstalls
self.nixosModules.autoupdate
@ -155,10 +201,10 @@
zerforschen-plus.nixosModules.default
]
++ (nixpkgs.lib.optionals (builtins.elem device homeDevices) [
++ (nixpkgs.lib.optionals (home-manager-users != { }) [
{
home-manager = {
extraSpecialArgs = commonSpecialArgs;
extraSpecialArgs = specialArgs;
useGlobalPkgs = true;
useUserPackages = true;
};
@ -174,6 +220,8 @@
self.homeModules.nano
self.homeModules.gnome-extensions
];
home-manager.users = home-manager-users;
}
self.nixosModules.pkgs-unstable
@ -190,7 +238,8 @@
home-manager.nixosModules.home-manager
servicepoint-simulator.nixosModules.default
servicepoint-cli.nixosModules.default
]);
])
++ additional-modules;
}
);
@ -214,6 +263,10 @@
pkgs-vscode-extensions = {
nixpkgs.overlays = [ nix-vscode-extensions.overlays.default ];
};
# required modules to use other modules, should not do anything on their own
default = {
imports = [ self.nixosModules.allowed-unfree-list ];
};
};
homeModules = self.lib.importDir ./homeModules;

View file

@ -1,60 +0,0 @@
{ config, pkgs, ... }:
{
config = {
home.packages = with pkgs; [
## Apps
telegram-desktop
kdiff3
];
programs = {
home-manager.enable = true;
zsh = {
history = {
size = 10000;
path = "${config.xdg.dataHome}/zsh/history";
expireDuplicatesFirst = true;
};
oh-my-zsh = {
enable = true;
theme = "agnoster";
plugins = [
"git"
"sudo"
"systemadmin"
];
};
shellAliases = {
myos-update = ''echo "Enter sudo password" && sudo nixos-rebuild boot --flake git+https://git.berlin.ccc.de/vinzenz/nixos-configuration.git --show-trace --log-format internal-json -v |& ${pkgs.nix-output-monitor}/bin/nom --json'';
myos-apply = ''echo "Enter sudo password" && sudo nixos-rebuild switch --flake .# --show-trace --log-format internal-json -v |& ${pkgs.nix-output-monitor}/bin/nom --json'';
};
};
git = {
userName = "Ronja Spiegelberg";
userEmail = "ronja.spiegelberg@gmail.com";
extraConfig = {
pull.ff = "only";
merge.tool = "kdiff3";
};
};
chromium = {
enable = true;
extensions = [
{
# ublock origin
id = "cjpalhdlnbpafiamejdnhcphjbkeiagm";
}
{
id = "dcpihecpambacapedldabdbpakmachpb";
updateUrl = "https://raw.githubusercontent.com/iamadamdev/bypass-paywalls-chrome/master/updates.xml";
}
];
};
};
};
}

View file

@ -1,25 +1,61 @@
{ pkgs, ... }:
{ config, pkgs, ... }:
{
imports = [ ./vscode.nix ];
config = {
# Define user account
users.users.ronja = {
isNormalUser = true;
name = "ronja";
description = "Ronja";
home = "/home/ronja";
extraGroups = [
"networkmanager"
"wheel"
"games"
"podman"
"openvscode-server"
];
shell = pkgs.zsh;
};
home-manager.users.ronja.imports = [
./configuration.nix
./vscode.nix
home.packages = with pkgs; [
## Apps
telegram-desktop
kdiff3
];
programs = {
home-manager.enable = true;
zsh = {
history = {
size = 10000;
path = "${config.xdg.dataHome}/zsh/history";
expireDuplicatesFirst = true;
};
oh-my-zsh = {
enable = true;
theme = "agnoster";
plugins = [
"git"
"sudo"
"systemadmin"
];
};
shellAliases = {
myos-update = ''echo "Enter sudo password" && sudo nixos-rebuild boot --flake git+https://git.berlin.ccc.de/vinzenz/nixos-configuration.git --show-trace --log-format internal-json -v |& ${pkgs.nix-output-monitor}/bin/nom --json'';
myos-apply = ''echo "Enter sudo password" && sudo nixos-rebuild switch --flake .# --show-trace --log-format internal-json -v |& ${pkgs.nix-output-monitor}/bin/nom --json'';
};
};
git = {
userName = "Ronja Spiegelberg";
userEmail = "ronja.spiegelberg@gmail.com";
extraConfig = {
pull.ff = "only";
merge.tool = "kdiff3";
};
};
chromium = {
enable = true;
extensions = [
{
# ublock origin
id = "cjpalhdlnbpafiamejdnhcphjbkeiagm";
}
{
id = "dcpihecpambacapedldabdbpakmachpb";
updateUrl = "https://raw.githubusercontent.com/iamadamdev/bypass-paywalls-chrome/master/updates.xml";
}
];
};
};
};
}

View file

@ -1,51 +1,15 @@
{ pkgs, ... }:
{
config = {
users.users.vinzenz = {
isNormalUser = true;
name = "vinzenz";
description = "Vinzenz";
home = "/home/vinzenz";
extraGroups = [
"networkmanager"
"wheel"
"games"
"dialout"
"podman"
"nginx"
"adbusers"
"kvm"
"input"
"video"
];
shell = pkgs.zsh;
autoSubUidGidRange = true;
};
nix.settings.trusted-users = [ "vinzenz" ];
home-manager.users.vinzenz.imports = [
./configuration.nix
./editorconfig.nix
./fuzzel.nix
./git.nix
./gnome.nix
#./niri.nix
./ssh.nix
./swaylock.nix
./vscode.nix
./waybar.nix
./zsh.nix
];
allowedUnfreePackages = [
"rider"
"pycharm-professional"
"jetbrains-toolbox"
"anydesk"
"vscode-extension-ms-dotnettools-csharp"
];
};
imports = [
./configuration.nix
./editorconfig.nix
./fuzzel.nix
./git.nix
./gnome.nix
#./niri.nix
./ssh.nix
./swaylock.nix
./vscode.nix
./waybar.nix
./zsh.nix
];
}

View file

@ -1,10 +1,7 @@
{ vinzenzNixosModules, ... }:
{
imports = [
./configuration.nix
./hardware.nix
vinzenzNixosModules.podman
./forgejo-runner.nix
];
}

View file

@ -1,14 +1,6 @@
{ vinzenzNixosModules, vinzenzHomeConfigurations, ... }:
{
imports = [
./configuration.nix
./hardware.nix
vinzenzNixosModules.gnome
vinzenzNixosModules.steam
vinzenzNixosModules.wine-gaming
vinzenzNixosModules.vinzenz-desktop-settings
vinzenzHomeConfigurations.ronja
];
}

View file

@ -1,17 +1,6 @@
{ vinzenzNixosModules, vinzenzHomeConfigurations, ... }:
{
imports = [
./configuration.nix
./hardware.nix
vinzenzNixosModules.gnome
vinzenzNixosModules.wine-gaming
vinzenzNixosModules.steam
vinzenzNixosModules.printing
vinzenzNixosModules.podman
vinzenzNixosModules.vinzenz-desktop-settings
vinzenzHomeConfigurations.vinzenz
vinzenzHomeConfigurations.ronja
];
}

View file

@ -1,64 +1,56 @@
{ pkgs, lib, ... }:
{
vinzenzNixosModules,
pkgs,
lib,
...
}:
{
imports = [ vinzenzNixosModules.intel-graphics ];
config = {
# intel cpu
boot.kernelModules = [
"kvm-intel"
"xe"
];
# intel cpu
boot.kernelModules = [
"kvm-intel"
"xe"
];
networking = {
networkmanager.enable = true;
useDHCP = lib.mkDefault true;
};
networking = {
networkmanager.enable = true;
useDHCP = lib.mkDefault true;
};
boot = {
kernelPackages = pkgs.linuxPackages_zen;
boot = {
kernelPackages = pkgs.linuxPackages_zen;
supportedFilesystems = [ "btrfs" ];
initrd = {
supportedFilesystems = [ "btrfs" ];
initrd = {
supportedFilesystems = [ "btrfs" ];
availableKernelModules = [
"xhci_pci"
"thunderbolt"
"nvme"
];
luks.devices = {
"luks-2c654ff2-3c42-48d3-a1e3-9545679afaa3" = {
device = "/dev/disk/by-uuid/2c654ff2-3c42-48d3-a1e3-9545679afaa3";
};
availableKernelModules = [
"xhci_pci"
"thunderbolt"
"nvme"
];
luks.devices = {
"luks-2c654ff2-3c42-48d3-a1e3-9545679afaa3" = {
device = "/dev/disk/by-uuid/2c654ff2-3c42-48d3-a1e3-9545679afaa3";
};
};
};
};
fileSystems = {
"/" = {
device = "/dev/disk/by-uuid/e4dad0c8-26a1-45e9-bbd9-48565eb6574e";
fsType = "btrfs";
options = [ "subvol=@" ];
};
"/boot" = {
device = "/dev/disk/by-uuid/E2B7-2BC1";
fsType = "vfat";
};
fileSystems = {
"/" = {
device = "/dev/disk/by-uuid/e4dad0c8-26a1-45e9-bbd9-48565eb6574e";
fsType = "btrfs";
options = [ "subvol=@" ];
};
swapDevices = [
{
device = "/var/lib/swapfile";
size = 32 * 1024;
}
];
services.thermald.enable = true;
services.hardware.bolt.enable = true; # thunderbolt security
hardware.bluetooth.enable = true;
"/boot" = {
device = "/dev/disk/by-uuid/E2B7-2BC1";
fsType = "vfat";
};
};
swapDevices = [
{
device = "/var/lib/swapfile";
size = 32 * 1024;
}
];
services.thermald.enable = true;
services.hardware.bolt.enable = true; # thunderbolt security
hardware.bluetooth.enable = true;
}

View file

@ -1,19 +1,8 @@
{ vinzenzNixosModules, vinzenzHomeConfigurations, ... }:
{
imports = [
./configuration.nix
./hardware.nix
./vscode-server.nix
./hass.nix
vinzenzNixosModules.gnome
vinzenzNixosModules.wine-gaming
vinzenzNixosModules.steam
vinzenzNixosModules.printing
vinzenzNixosModules.podman
vinzenzNixosModules.vinzenz-desktop-settings
vinzenzHomeConfigurations.vinzenz
vinzenzHomeConfigurations.ronja
];
}

View file

@ -1,38 +1,30 @@
{ pkgs, lib, ... }:
{
vinzenzNixosModules,
pkgs,
lib,
...
}:
{
imports = [ vinzenzNixosModules.amd-graphics ];
config = {
# amd cpu
boot.kernelModules = [ "kvm-amd" ];
# amd cpu
boot.kernelModules = [ "kvm-amd" ];
boot = {
initrd.availableKernelModules = [
"nvme"
"xhci_pci"
"ahci"
"usbhid"
"sd_mod"
]; # "usb_storage"
kernelPackages = pkgs.linuxPackages_zen;
supportedFilesystems = [ "btrfs" ];
initrd.supportedFilesystems = [ "btrfs" ];
loader.efi.efiSysMountPoint = "/boot";
};
fileSystems = import ./fstab.nix;
swapDevices = [ ];
networking = {
networkmanager.enable = true;
useDHCP = lib.mkDefault true;
interfaces.eno1.wakeOnLan.enable = true;
};
hardware.bluetooth.enable = true;
boot = {
initrd.availableKernelModules = [
"nvme"
"xhci_pci"
"ahci"
"usbhid"
"sd_mod"
]; # "usb_storage"
kernelPackages = pkgs.linuxPackages_zen;
supportedFilesystems = [ "btrfs" ];
initrd.supportedFilesystems = [ "btrfs" ];
loader.efi.efiSysMountPoint = "/boot";
};
fileSystems = import ./fstab.nix;
swapDevices = [ ];
networking = {
networkmanager.enable = true;
useDHCP = lib.mkDefault true;
interfaces.eno1.wakeOnLan.enable = true;
};
hardware.bluetooth.enable = true;
}

View file

@ -9,7 +9,9 @@
config = {
nixpkgs.config = {
# https://github.com/NixOS/nixpkgs/issues/197325#issuecomment-1579420085
allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) config.allowedUnfreePackages;
allowUnfreePredicate = lib.mkDefault (
pkg: builtins.elem (lib.getName pkg) config.allowedUnfreePackages
);
};
};
}

View file

@ -1,7 +1,5 @@
{ pkgs, vinzenzNixosModules, ... }:
{ pkgs, ... }:
{
imports = [ vinzenzNixosModules.allowed-unfree-list ];
config = {
hardware.graphics = {
extraPackages = with pkgs; [

View file

@ -1,7 +1,4 @@
{ vinzenzNixosModules, ... }:
{
imports = [ vinzenzNixosModules.allowed-unfree-list ];
hardware.steam-hardware.enable = true;
programs = {

View file

@ -0,0 +1,19 @@
{ pkgs, ... }:
{
users.users.ronja = {
isNormalUser = true;
name = "ronja";
description = "Ronja";
home = "/home/ronja";
extraGroups = [
"networkmanager"
"wheel"
"games"
"podman"
"openvscode-server"
];
shell = pkgs.zsh;
};
nix.settings.trusted-users = [ "ronja" ];
}

View file

@ -0,0 +1,35 @@
{ pkgs, ... }:
{
users.users.vinzenz = {
isNormalUser = true;
name = "vinzenz";
description = "Vinzenz";
home = "/home/vinzenz";
extraGroups = [
"networkmanager"
"wheel"
"games"
"dialout"
"podman"
"nginx"
"adbusers"
"kvm"
"input"
"video"
];
shell = pkgs.zsh;
autoSubUidGidRange = true;
};
nix.settings.trusted-users = [ "vinzenz" ];
allowedUnfreePackages = [
"rider"
"pycharm-professional"
"jetbrains-toolbox"
"anydesk"
"vscode-extension-ms-dotnettools-csharp"
];
}