1 Commits

Author SHA1 Message Date
Armel van Ravels
c66e751738 nix flake update 2026-08-21 09:17:12 +02:00
93 changed files with 515 additions and 747 deletions

18
flake.lock generated
View File

@@ -7,11 +7,11 @@
]
},
"locked": {
"lastModified": 1785119570,
"narHash": "sha256-Rgs2xKnGLFWQscxUaXX07oyZeuMDOHEbqDOsgliLFGM=",
"lastModified": 1787146702,
"narHash": "sha256-YbRcLdU/yK4gWsQg7V8WTKZHfXL33g8+wSFUX3wyevs=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "d4fd24667c8cbef124bb70a20380cab75ec8474d",
"rev": "173b7e8d40fdc8c296a9c99854314f17a3a1704c",
"type": "github"
},
"original": {
@@ -38,11 +38,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1786430034,
"narHash": "sha256-Vux08kA5PICwS2sViCMfwVLAHNoH8TkKAeBo25LjpMI=",
"lastModified": 1787101114,
"narHash": "sha256-gwrPcFf/rDjHPaVflbDZ040ZDmBTRj/7+s8ZmE2SaIM=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "70cc4559b10a6062b05ff1af17e0add065ccaed9",
"rev": "b18a4b905f8d028dc4476412e6d6891728695379",
"type": "github"
},
"original": {
@@ -54,11 +54,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1786348146,
"narHash": "sha256-we5zDEFfn8TgzeWKjKDMIjeQZ59omEPl23NIF+13/ys=",
"lastModified": 1787172299,
"narHash": "sha256-PShzS87awOlE5XWkxUGBd/58/F+AtE2ZMgFffKj4r8s=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d482ef84049d9b7276b83a06e4e4d76983830097",
"rev": "07e1d92cdc0ed416cfa11ff3ca40d17e61cfba7a",
"type": "github"
},
"original": {

View File

@@ -1,3 +1,7 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ config
, lib
, pkgs
@@ -6,24 +10,32 @@
{
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
../../modules/home-manager.nix
../../modules/common.nix
../../modules/users.nix
../../modules/locales.nix
../../modules/services.nix
../../modules/programs.nix
../../modules/docker.nix
../../modules/printing.nix
../../modules/bambu-studio-flatpak.nix
../../modules/arduino-ide.nix
../../modules/devenv.nix
../../modules/vlc.nix
../../modules/btop.nix
../../modules/lazygit.nix
# ../../modules/bitwarden.nix
];
features.modules = {
core.enable = true;
development.enable = true;
hardware.enable = true;
multimedia.enable = true;
system.enable = true;
};
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.loader.systemd-boot.enable = false;
boot.loader = {
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot/efi";
efiSysMountPoint = "/boot/efi"; # ← use the same mount point here.
};
grub = {
efiSupport = true;
@@ -64,5 +76,5 @@
}
];
system.stateVersion = "25.11";
system.stateVersion = "25.11"; # Did you read the comment?
}

View File

@@ -1,19 +1,26 @@
# 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, pkgs, ... }:
{
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
../../modules/common.nix
../../modules/users.nix
../../modules/locales.nix
../../modules/services.nix
../../modules/programs.nix
];
features.modules = {
core.enable = true;
};
# Bootloader.
boot.loader.grub.enable = true;
boot.loader.grub.device = "/dev/vda";
boot.loader.grub.useOSProber = true;
networking.hostName = "frodo";
networking.hostName = "frodo"; # Define your hostname.
system.stateVersion = "25.11";
system.stateVersion = "25.11"; # Did you read the comment?
}

View File

@@ -3,22 +3,37 @@
{
imports = [
./hardware-configuration.nix
../../modules/home-manager.nix
../../modules/common.nix
../../modules/users.nix
../../modules/locales.nix
../../modules/services.nix
../../modules/programs.nix
../../modules/gaming.nix
../../modules/obs-studio.nix
../../modules/garbage-collection.nix
../../modules/printing.nix
../../modules/docker.nix
../../modules/matrix.nix
../../modules/kdenlive.nix
../../modules/audacity.nix
../../modules/ollama.nix
../../modules/wireguard.nix
../../modules/qbittorrent.nix
../../modules/gimp.nix
../../modules/openscad.nix
../../modules/bambu-studio-flatpak.nix
../../modules/arduino-ide.nix
../../modules/bitwarden.nix
../../modules/vlc.nix
../../modules/devenv.nix
../../modules/btop.nix
../../modules/discord.nix
../../modules/lazygit.nix
../../modules/yazi.nix
./mtp-fix.nix
];
features.modules = {
core.enable = true;
ai.enable = true;
desktop.enable = true;
development.enable = true;
gaming.enable = true;
hardware.enable = true;
multimedia.enable = true;
networking.enable = true;
security.enable = true;
system.enable = true;
};
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.loader.systemd-boot.enable = true;
@@ -54,5 +69,5 @@
virtualisation.libvirtd.enable = true;
system.stateVersion = "25.11";
system.stateVersion = "25.11"; # Did you read the comment?
}

View File

@@ -3,13 +3,14 @@
{
imports = [
./hardware-configuration.nix
../../modules/common.nix
../../modules/users.nix
../../modules/locales.nix
../../modules/services.nix
../../modules/programs.nix
../../modules/gaming.nix
];
features.modules = {
core.enable = true;
gaming.enable = true;
};
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
@@ -33,5 +34,5 @@
virtualisation.libvirtd.enable = true;
system.stateVersion = "25.11";
system.stateVersion = "25.11"; # Did you read the comment?
}

View File

@@ -3,20 +3,34 @@
{
imports = [
./hardware-configuration.nix
../../modules/home-manager.nix
../../modules/common.nix
../../modules/users.nix
../../modules/locales.nix
../../modules/services.nix
../../modules/programs.nix
../../modules/garbage-collection.nix
../../modules/printing.nix
../../modules/docker.nix
../../modules/teams-for-linux.nix
../../modules/azure-data-studio.nix
../../modules/filezilla.nix
../../modules/wireguard.nix
../../modules/remmina.nix
../../modules/postman.nix
../../modules/gimp.nix
../../modules/jq.nix
../../modules/enova.nix
../../modules/devenv.nix
../../modules/bitwarden.nix
../../modules/btop.nix
../../modules/vlc.nix
../../modules/lazygit.nix
../../modules/yazi.nix
../../modules/bubblewrap.nix
../../modules/socat.nix
];
features.modules = {
core.enable = true;
desktop.enable = true;
development.enable = true;
hardware.enable = true;
multimedia.enable = true;
networking.enable = true;
security.enable = true;
system.enable = true;
work.enable = true;
};
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.loader.systemd-boot.enable = true;
@@ -78,5 +92,5 @@
"149.210.174.226" = [ "kindertelefoon" ];
};
system.stateVersion = "25.11";
system.stateVersion = "25.11"; # Did you read the comment?
}

View File

@@ -1,6 +0,0 @@
{ lib, ... }: {
imports = lib.mapAttrsToList
(file: _: ./. + "/${file}")
(lib.filterAttrs (file: _: lib.hasSuffix ".nix" file && file != "default.nix")
(builtins.readDir ./.));
}

View File

@@ -1,13 +0,0 @@
{ config, lib, pkgsUnstable, ... }:
let
dirModules = config.features.modules.ai or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.ollama.enable or true)) {
services.ollama = {
enable = true;
package = pkgsUnstable.ollama-cuda;
};
};
}

7
modules/arduino-ide.nix Normal file
View File

@@ -0,0 +1,7 @@
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
arduino-ide
];
}

7
modules/audacity.nix Normal file
View File

@@ -0,0 +1,7 @@
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
audacity
];
}

View File

@@ -0,0 +1,7 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
azuredatastudio
];
}

View File

@@ -0,0 +1,9 @@
{ pkgs, ... }:
{
services.flatpak.update.onActivation = true;
services.flatpak.enable = true;
services.flatpak.packages = [
"com.bambulab.BambuStudio"
];
}

11
modules/bitwarden.nix Normal file
View File

@@ -0,0 +1,11 @@
{ config, pkgs, ... }:
{
nixpkgs.config.permittedInsecurePackages = [
"electron-39.8.10"
];
environment.systemPackages = with pkgs; [
bitwarden-desktop
];
}

7
modules/btop.nix Normal file
View File

@@ -0,0 +1,7 @@
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
btop
];
}

8
modules/bubblewrap.nix Normal file
View File

@@ -0,0 +1,8 @@
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
bubblewrap
];
}

24
modules/common.nix Normal file
View File

@@ -0,0 +1,24 @@
{ config, pkgs, ... }:
{
nixpkgs.config.allowUnfree = true;
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
users.defaultUserShell = pkgs.zsh;
environment.systemPackages = with pkgs; [
chromium
gnumake
jetbrains-toolbox
fastfetch
jq
];
security.rtkit.enable = true;
system.stateVersion = "25.11";
}

View File

@@ -1,29 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.core or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.common.enable or true)) {
nixpkgs.config.allowUnfree = true;
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
users.defaultUserShell = pkgs.zsh;
environment.systemPackages = with pkgs; [
chromium
gnumake
jetbrains-toolbox
fastfetch
jq
];
security.rtkit.enable = true;
system.stateVersion = "25.11";
};
}

View File

@@ -1,6 +0,0 @@
{ lib, ... }: {
imports = lib.mapAttrsToList
(file: _: ./. + "/${file}")
(lib.filterAttrs (file: _: lib.hasSuffix ".nix" file && file != "default.nix")
(builtins.readDir ./.));
}

View File

@@ -1,18 +0,0 @@
{ config, lib, pkgs, pkgsUnstable, ... }:
let
dirModules = config.features.modules.core or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.home-manager.enable or true)) {
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = {
inherit pkgsUnstable;
};
users.avravels = import ../home/home.nix;
};
};
}

View File

@@ -1,23 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.core or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.locales.enable or true)) {
time.timeZone = "Europe/Amsterdam";
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "nl_NL.UTF-8";
LC_IDENTIFICATION = "nl_NL.UTF-8";
LC_MEASUREMENT = "nl_NL.UTF-8";
LC_MONETARY = "nl_NL.UTF-8";
LC_NAME = "nl_NL.UTF-8";
LC_NUMERIC = "nl_NL.UTF-8";
LC_PAPER = "nl_NL.UTF-8";
LC_TELEPHONE = "nl_NL.UTF-8";
LC_TIME = "nl_NL.UTF-8";
};
};
}

View File

@@ -1,17 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.core or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.programs.enable or true)) {
programs = {
zsh.enable = true;
hyprland.enable = true;
hyprland.xwayland.enable = true;
virt-manager.enable = true;
};
};
}

View File

@@ -1,28 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.core or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.services.enable or true)) {
services.openssh.enable = true;
services = {
displayManager.gdm.enable = true;
desktopManager.gnome.enable = true;
xserver = {
enable = true;
xkb.layout = "us";
xkb.variant = "";
};
pulseaudio.enable = false;
pipewire.enable = true;
pipewire.alsa.enable = true;
pipewire.alsa.support32Bit = true;
pipewire.pulse.enable = true;
};
};
}

View File

@@ -1,27 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.core or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.users.enable or true)) {
users.users.avravels = {
initialPassword = "welcome";
isNormalUser = true;
description = "Armel van Ravels";
extraGroups = [
"networkmanager"
"wheel"
"libvirtd"
"dialout"
];
packages = with pkgs; [
home-manager
spotify
proton-vpn
fzf
];
shell = pkgs.zsh;
};
};
}

View File

@@ -1,6 +0,0 @@
{ lib, ... }: {
imports = lib.mapAttrsToList
(file: _: ./. + "/${file}")
(lib.filterAttrs (file: _: lib.hasSuffix ".nix" file && file != "default.nix")
(builtins.readDir ./.));
}

View File

@@ -1,12 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.desktop or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.discord.enable or true)) {
environment.systemPackages = with pkgs; [
discord
];
};
}

View File

@@ -1,12 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.desktop or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.matrix.enable or true)) {
environment.systemPackages = with pkgs; [
element-desktop
];
};
}

View File

@@ -1,12 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.desktop or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.teams-for-linux.enable or true)) {
environment.systemPackages = with pkgs; [
teams-for-linux
];
};
}

View File

@@ -1,12 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.development or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.azure-data-studio.enable or true)) {
environment.systemPackages = with pkgs; [
azuredatastudio
];
};
}

View File

@@ -1,6 +0,0 @@
{ lib, ... }: {
imports = lib.mapAttrsToList
(file: _: ./. + "/${file}")
(lib.filterAttrs (file: _: lib.hasSuffix ".nix" file && file != "default.nix")
(builtins.readDir ./.));
}

View File

@@ -1,17 +0,0 @@
{ config, lib, pkgsUnstable, ... }:
let
dirModules = config.features.modules.development or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.devenv.enable or true)) {
environment.systemPackages = with pkgsUnstable; [
devenv
];
nix.settings.trusted-users = [
"root"
"avravels"
];
};
}

View File

@@ -1,12 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.development or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.docker.enable or true)) {
virtualisation.docker.enable = true;
users.users.avravels.extraGroups = [ "docker" ];
};
}

View File

@@ -1,12 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.development or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.jq.enable or true)) {
environment.systemPackages = with pkgs; [
jq
];
};
}

View File

@@ -1,12 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.development or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.lazygit.enable or true)) {
environment.systemPackages = with pkgs; [
lazygit
];
};
}

View File

@@ -1,12 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.development or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.postman.enable or true)) {
environment.systemPackages = with pkgs; [
postman
];
};
}

12
modules/devenv.nix Normal file
View File

@@ -0,0 +1,12 @@
{ config, pkgsUnstable, ... }:
{
environment.systemPackages = with pkgsUnstable; [
devenv
];
nix.settings.trusted-users = [
"root"
"avravels"
];
}

8
modules/discord.nix Normal file
View File

@@ -0,0 +1,8 @@
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
discord
];
}

7
modules/docker.nix Normal file
View File

@@ -0,0 +1,7 @@
{ config, pkgs, ... }:
{
virtualisation.docker.enable = true;
users.users.avravels.extraGroups = [ "docker" ];
}

15
modules/enova.nix Normal file
View File

@@ -0,0 +1,15 @@
{ pkgs, ... }:
{
services.dnsmasq = {
enable = true;
settings = {
server = [
"1.1.1.1"
"8.8.8.8"
];
address = [ "/.enova.local/127.0.0.1" ];
};
};
}

View File

@@ -1,18 +0,0 @@
{ lib, ... }:
let
modulesDir = ../.;
moduleDirs = builtins.readDir modulesDir;
excludeDirs = [ "home" "features" ];
dirEntries = lib.filterAttrs
(name: type: type == "directory" && !builtins.elem name excludeDirs)
moduleDirs;
in
{
options.features.modules = lib.mkOption {
type = lib.types.attrs;
default = { };
description = "Auto-generated feature module options tree";
};
}

7
modules/filezilla.nix Normal file
View File

@@ -0,0 +1,7 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
filezilla
];
}

19
modules/gaming.nix Normal file
View File

@@ -0,0 +1,19 @@
{ config, pkgs, ... }:
{
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;
package = pkgs.steam.override {
extraEnv = {
MANGOHUD = "1";
WINE_VK_VULKAN_ONLY = "1";
};
};
};
environment.systemPackages = [
pkgs.mangohud
];
}

View File

@@ -1,6 +0,0 @@
{ lib, ... }: {
imports = lib.mapAttrsToList
(file: _: ./. + "/${file}")
(lib.filterAttrs (file: _: lib.hasSuffix ".nix" file && file != "default.nix")
(builtins.readDir ./.));
}

View File

@@ -1,24 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.gaming or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.gaming.enable or true)) {
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;
package = pkgs.steam.override {
extraEnv = {
MANGOHUD = "1";
WINE_VK_VULKAN_ONLY = "1";
};
};
};
environment.systemPackages = [
pkgs.mangohud
];
};
}

View File

@@ -0,0 +1,12 @@
{ config, pkgs, ... }:
{
nix = {
settings.auto-optimise-store = true;
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
};
}

7
modules/gimp.nix Normal file
View File

@@ -0,0 +1,7 @@
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
gimp
];
}

View File

@@ -1,12 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.hardware or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.arduino-ide.enable or true)) {
environment.systemPackages = with pkgs; [
arduino-ide
];
};
}

View File

@@ -1,14 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.hardware or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.bambu-studio-flatpak.enable or true)) {
services.flatpak.update.onActivation = true;
services.flatpak.enable = true;
services.flatpak.packages = [
"com.bambulab.BambuStudio"
];
};
}

View File

@@ -1,6 +0,0 @@
{ lib, ... }: {
imports = lib.mapAttrsToList
(file: _: ./. + "/${file}")
(lib.filterAttrs (file: _: lib.hasSuffix ".nix" file && file != "default.nix")
(builtins.readDir ./.));
}

View File

@@ -1,12 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.hardware or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.openscad.enable or true)) {
environment.systemPackages = with pkgs; [
openscad
];
};
}

View File

@@ -1,47 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.hardware or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.printing.enable or true)) {
environment.systemPackages = with pkgs; [
cnijfilter2
];
services.printing = {
enable = true;
drivers = [ pkgs.cnijfilter2 ];
};
services.avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
};
hardware.printers = {
ensurePrinters = [
{
name = "CanonTS3100";
location = "Home";
deviceUri = "dnssd://Canon%20TS3100%20series._ipp._tcp.local/?uuid=00000000-0000-1000-8000-0018271a7e44";
model = "canonts3100.ppd";
ppdOptions = {
PageSize = "A4";
};
}
];
ensureDefaultPrinter = "CanonTS3100";
};
# for samba
networking.hosts = {
"192.168.68.60" = [
"2C2919000000.local"
"2C2919000000"
];
};
};
}

13
modules/home-manager.nix Normal file
View File

@@ -0,0 +1,13 @@
{ pkgs, pkgsUnstable, ... }:
{
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = {
inherit pkgsUnstable;
};
users.avravels = import home/home.nix;
};
}

7
modules/jq.nix Normal file
View File

@@ -0,0 +1,7 @@
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
jq
];
}

7
modules/kdenlive.nix Normal file
View File

@@ -0,0 +1,7 @@
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
kdePackages.kdenlive
];
}

7
modules/lazygit.nix Normal file
View File

@@ -0,0 +1,7 @@
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
lazygit
];
}

18
modules/locales.nix Normal file
View File

@@ -0,0 +1,18 @@
{ config, pkgs, ... }:
{
time.timeZone = "Europe/Amsterdam";
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "nl_NL.UTF-8";
LC_IDENTIFICATION = "nl_NL.UTF-8";
LC_MEASUREMENT = "nl_NL.UTF-8";
LC_MONETARY = "nl_NL.UTF-8";
LC_NAME = "nl_NL.UTF-8";
LC_NUMERIC = "nl_NL.UTF-8";
LC_PAPER = "nl_NL.UTF-8";
LC_TELEPHONE = "nl_NL.UTF-8";
LC_TIME = "nl_NL.UTF-8";
};
}

7
modules/matrix.nix Normal file
View File

@@ -0,0 +1,7 @@
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
element-desktop
];
}

View File

@@ -1,12 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.multimedia or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.audacity.enable or true)) {
environment.systemPackages = with pkgs; [
audacity
];
};
}

View File

@@ -1,6 +0,0 @@
{ lib, ... }: {
imports = lib.mapAttrsToList
(file: _: ./. + "/${file}")
(lib.filterAttrs (file: _: lib.hasSuffix ".nix" file && file != "default.nix")
(builtins.readDir ./.));
}

View File

@@ -1,12 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.multimedia or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.gimp.enable or true)) {
environment.systemPackages = with pkgs; [
gimp
];
};
}

View File

@@ -1,12 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.multimedia or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.kdenlive.enable or true)) {
environment.systemPackages = with pkgs; [
kdePackages.kdenlive
];
};
}

View File

@@ -1,15 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.multimedia or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.obs-studio.enable or true)) {
programs.obs-studio = {
enable = true;
package = pkgs.obs-studio.override {
cudaSupport = true;
};
};
};
}

View File

@@ -1,12 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.multimedia or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.vlc.enable or true)) {
environment.systemPackages = with pkgs; [
vlc
];
};
}

View File

@@ -1,6 +0,0 @@
{ lib, ... }: {
imports = lib.mapAttrsToList
(file: _: ./. + "/${file}")
(lib.filterAttrs (file: _: lib.hasSuffix ".nix" file && file != "default.nix")
(builtins.readDir ./.));
}

View File

@@ -1,12 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.networking or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.filezilla.enable or true)) {
environment.systemPackages = with pkgs; [
filezilla
];
};
}

View File

@@ -1,12 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.networking or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.qbittorrent.enable or true)) {
environment.systemPackages = with pkgs; [
qbittorrent
];
};
}

View File

@@ -1,12 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.networking or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.remmina.enable or true)) {
environment.systemPackages = with pkgs; [
remmina
];
};
}

View File

@@ -1,12 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.networking or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.socat.enable or true)) {
environment.systemPackages = with pkgs; [
socat
];
};
}

View File

@@ -1,12 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.networking or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.wireguard.enable or true)) {
environment.systemPackages = with pkgs; [
wireguard-tools
];
};
}

10
modules/obs-studio.nix Normal file
View File

@@ -0,0 +1,10 @@
{ config, pkgs, ... }:
{
programs.obs-studio = {
enable = true;
package = pkgs.obs-studio.override {
cudaSupport = true;
};
};
}

8
modules/ollama.nix Normal file
View File

@@ -0,0 +1,8 @@
{ pkgsUnstable, ... }:
{
services.ollama = {
enable = true;
package = pkgsUnstable.ollama-cuda;
};
}

7
modules/openscad.nix Normal file
View File

@@ -0,0 +1,7 @@
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
openscad
];
}

7
modules/postman.nix Normal file
View File

@@ -0,0 +1,7 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
postman
];
}

42
modules/printing.nix Normal file
View File

@@ -0,0 +1,42 @@
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
cnijfilter2
];
services.printing = {
enable = true;
drivers = [ pkgs.cnijfilter2 ];
};
services.avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
};
hardware.printers = {
ensurePrinters = [
{
name = "CanonTS3100";
location = "Home";
deviceUri = "dnssd://Canon%20TS3100%20series._ipp._tcp.local/?uuid=00000000-0000-1000-8000-0018271a7e44";
model = "canonts3100.ppd";
ppdOptions = {
PageSize = "A4";
};
}
];
ensureDefaultPrinter = "CanonTS3100";
};
# for samba
networking.hosts = {
"192.168.68.60" = [
"2C2919000000.local"
"2C2919000000"
];
};
}

12
modules/programs.nix Normal file
View File

@@ -0,0 +1,12 @@
{ config, pkgs, ... }:
{
programs = {
zsh.enable = true;
hyprland.enable = true;
hyprland.xwayland.enable = true;
virt-manager.enable = true;
};
}

7
modules/qbittorrent.nix Normal file
View File

@@ -0,0 +1,7 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
qbittorrent
];
}

7
modules/remmina.nix Normal file
View File

@@ -0,0 +1,7 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
remmina
];
}

View File

@@ -1,16 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.security or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.bitwarden.enable or true)) {
nixpkgs.config.permittedInsecurePackages = [
"electron-39.8.10"
];
environment.systemPackages = with pkgs; [
bitwarden-desktop
];
};
}

View File

@@ -1,6 +0,0 @@
{ lib, ... }: {
imports = lib.mapAttrsToList
(file: _: ./. + "/${file}")
(lib.filterAttrs (file: _: lib.hasSuffix ".nix" file && file != "default.nix")
(builtins.readDir ./.));
}

23
modules/services.nix Normal file
View File

@@ -0,0 +1,23 @@
{ config, pkgs, ... }:
{
services.openssh.enable = true;
services = {
displayManager.gdm.enable = true;
desktopManager.gnome.enable = true;
xserver = {
enable = true;
xkb.layout = "us";
xkb.variant = "";
};
pulseaudio.enable = false;
pipewire.enable = true;
pipewire.alsa.enable = true;
pipewire.alsa.support32Bit = true;
pipewire.pulse.enable = true;
};
}

8
modules/socat.nix Normal file
View File

@@ -0,0 +1,8 @@
{ config, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
socat
];
}

View File

@@ -1,12 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.system or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.btop.enable or true)) {
environment.systemPackages = with pkgs; [
btop
];
};
}

View File

@@ -1,12 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.system or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.bubblewrap.enable or true)) {
environment.systemPackages = with pkgs; [
bubblewrap
];
};
}

View File

@@ -1,6 +0,0 @@
{ lib, ... }: {
imports = lib.mapAttrsToList
(file: _: ./. + "/${file}")
(lib.filterAttrs (file: _: lib.hasSuffix ".nix" file && file != "default.nix")
(builtins.readDir ./.));
}

View File

@@ -1,17 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.system or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.garbage-collection.enable or true)) {
nix = {
settings.auto-optimise-store = true;
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
};
};
}

View File

@@ -1,12 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.system or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.yazi.enable or true)) {
environment.systemPackages = with pkgs; [
yazi
];
};
}

View File

@@ -0,0 +1,7 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
teams-for-linux
];
}

22
modules/users.nix Normal file
View File

@@ -0,0 +1,22 @@
{ config, pkgs, ... }:
{
users.users.avravels = {
initialPassword = "welcome";
isNormalUser = true;
description = "Armel van Ravels";
extraGroups = [
"networkmanager"
"wheel"
"libvirtd"
"dialout"
];
packages = with pkgs; [
home-manager
spotify
proton-vpn
fzf
];
shell = pkgs.zsh;
};
}

7
modules/vlc.nix Normal file
View File

@@ -0,0 +1,7 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
vlc
];
}

7
modules/wireguard.nix Normal file
View File

@@ -0,0 +1,7 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
wireguard-tools
];
}

View File

@@ -1,6 +0,0 @@
{ lib, ... }: {
imports = lib.mapAttrsToList
(file: _: ./. + "/${file}")
(lib.filterAttrs (file: _: lib.hasSuffix ".nix" file && file != "default.nix")
(builtins.readDir ./.));
}

View File

@@ -1,20 +0,0 @@
{ config, lib, pkgs, ... }:
let
dirModules = config.features.modules.work or { };
in
{
config = lib.mkIf ((dirModules.enable or false) && (dirModules.enova.enable or true)) {
services.dnsmasq = {
enable = true;
settings = {
server = [
"1.1.1.1"
"8.8.8.8"
];
address = [ "/.enova.local/127.0.0.1" ];
};
};
};
}

7
modules/yazi.nix Normal file
View File

@@ -0,0 +1,7 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
yazi
];
}

View File

@@ -13,21 +13,6 @@ let
config.allowUnfree = true;
};
moduleNames = [
"ai"
"core"
"desktop"
"development"
"features"
"gaming"
"hardware"
"multimedia"
"networking"
"security"
"system"
"work"
];
mkHost =
name:
nixpkgs.lib.nixosSystem {
@@ -42,7 +27,7 @@ let
nix-flatpak.nixosModules.nix-flatpak
home-manager.nixosModules.home-manager
./hosts/${name}
] ++ (map (mod: ./modules/${mod}) moduleNames);
];
};
in