First commit

This commit is contained in:
2026-02-22 17:28:02 +01:00
parent 7a70268785
commit 6bacf1878e
9011 changed files with 114470 additions and 0 deletions
@@ -0,0 +1,11 @@
{ config, pkgs, lib, ... }:
let
moduleName = "nixos-bluetooth";
in
{
hardware.bluetooth.enable = true;
hardware.bluetooth.powerOnBoot = true;
services.blueman.enable = true;
environment.etc."nixlog/loaded.${moduleName}".text = "loaded\n";
}
@@ -0,0 +1,19 @@
{ config, lib, pkgs, ... }:
let
moduleName = "nixos-services";
in
{
programs.hyprland.enable = true;
services.seatd.enable = true;
services.keyd.enable = true;
systemd.defaultUnit = "graphical.target";
services.displayManager.defaultSession = "hyprland";
services.dbus.enable = true;
programs.dconf.enable = true;
security.polkit.enable = true;
nix.settings.experimental-features = [ "nix-command" "flakes" ];
programs.zsh.enable = true;
environment.variables.EDITOR = "nano";
environment.etc."nixlog/loaded.${moduleName}".text = "loaded\n";
}
@@ -0,0 +1,17 @@
{ config, pkgs, lib, ... }:
let
moduleName = "nixos-housekeeping";
in
{
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
nix.settings.auto-optimise-store = true;
environment.etc."nixlog/loaded.${moduleName}".text = "loaded\n";
}
@@ -0,0 +1,10 @@
{ config, pkgs, lib, ... }:
let
moduleName = "nixos-locale";
in
{
time.timeZone = "Europe/Amsterdam";
i18n.defaultLocale = "en_US.UTF-8";
environment.etc."nixlog/loaded.${moduleName}".text = "loaded\n";
}
@@ -0,0 +1,29 @@
{ config, lib, pkgs, ... }:
let
moduleName = "nixos-networking";
in
{
networking.nftables.enable = true;
networking.firewall = {
enable = true;
# Default: no inbound open ports
allowedTCPPorts = [ ];
allowedUDPPorts = [ ];
# Home-only exceptions (nftables syntax)
extraInputRules = ''
# KDE Connect (TCP/UDP 1714-1764) from home LAN
ip saddr 192.168.2.0/24 tcp dport 1714-1764 accept
ip saddr 192.168.2.0/24 udp dport 1714-1764 accept
# mDNS / Avahi for printer discovery (UDP 5353) from home LAN
ip saddr 192.168.2.0/24 udp dport 5353 accept
'';
};
networking.networkmanager.enable = true;
services.openssh.enable = true;
environment.etc."nixlog/loaded.${moduleName}".text = "loaded\n";
}
@@ -0,0 +1,35 @@
{ config, lib, pkgs, ... }:
let
moduleName = "nixos-printers";
in
{
# ---- Printing (CUPS) ----
services.printing = {
enable = true;
# Good general compatibility. Many modern printers work driverless (IPP Everywhere),
# but these help with older models and various formats.
drivers = with pkgs; [
cups-filters
gutenprint
];
};
# ---- Network printer discovery (mDNS / DNS-SD) ----
services.avahi = {
enable = true;
# Resolve .local names + discover services on IPv4
nssmdns4 = true;
# You're controlling firewall rules in firewall.nix
openFirewall = false;
};
# ---- Optional GUI tool to add/manage printers ----
environment.systemPackages = with pkgs; [
system-config-printer
];
# allow admin actions in printer GUI (usually already present on desktop systems)
security.polkit.enable = true;
environment.etc."nixlog/loaded.${moduleName}".text = "loaded\n";
}
@@ -0,0 +1,17 @@
{ config, pkgs, lib, ... }:
let
moduleName = "nixos-sound";
in
{
services.pipewire = {
enable = true;
pulse.enable = true;
alsa.enable = true;
alsa.support32Bit = true;
};
security.rtkit.enable = true;
environment.etc."nixlog/loaded.${moduleName}".text = "loaded\n";
}
+12
View File
@@ -0,0 +1,12 @@
{ config, pkgs, lib, ... }:
let
moduleName = "nixos-usb";
in
{
# Automount USB / removable media integration
services.udisks2.enable = true;
services.gvfs.enable = true;
environment.etc."nixlog/loaded.${moduleName}".text = "loaded\n";
}
@@ -0,0 +1,30 @@
{ config, pkgs, lib, ... }:
let
username = "henrov";
moduleName = "nixos-users";
in
{
# Optional but common: declare defaults for user shells
users.defaultUserShell = pkgs.zsh;
users.users.${username} = {
isNormalUser = true;
# Add your user to groups needed for admin + network + typical desktop input/video access
extraGroups = [
"wheel"
"networkmanager"
"video"
"input"
"audio"
];
# If you want zsh explicitly per-user (instead of defaultUserShell):
# shell = pkgs.zsh;
};
# If you want a simple "proof this module was applied" marker at the *system* level:
# (This creates /etc/nixos-users.loaded)
environment.etc."nixos-users.loaded".text = "loaded\n";
}
+26
View File
@@ -0,0 +1,26 @@
{ config, pkgs, lib, ... }:
let
moduleName = "nixos-xdg";
in
{
# NixOS XDG integration (system-wide)
xdg = {
menus.enable = true;
mime.enable = true;
};
xdg.portal = {
enable = true;
xdgOpenUsePortal = true;
extraPortals = with pkgs; [
# xdg-desktop-portal-hyprland
xdg-desktop-portal-gtk
];
};
environment.etc."xdg/menus/applications.menu".source =
"${pkgs.kdePackages.plasma-workspace}/etc/xdg/menus/plasma-applications.menu";
# NixOS-safe "module executed" marker (creates /etc/nixlog/loaded.nixos-xdg)
environment.etc."nixlog/loaded.${moduleName}".text = "loaded\n";
}