This commit is contained in:
Faris 2026-06-03 20:40:10 +01:00
commit b918a86ecf
8 changed files with 166 additions and 238 deletions

View File

@ -78,6 +78,7 @@
wget
zsh
bc
android-tools
# media
yt-dlp

View File

@ -12,14 +12,15 @@
qt.platformTheme = "gnome";
#hyprland
services.displayManager.gdm.enable = true; # use sddm until gnome 50 due to https://github.com/systemd/systemd/issues/39259
services.displayManager.sddm.enable = true; # use sddm until gnome 50 due to https://github.com/systemd/systemd/issues/39259
services.displayManager.sddm.wayland.enable = true;
hardware.bluetooth.enable = true;
hardware.bluetooth.powerOnBoot = true;
services.libinput.enable = true; # hyprland and trackpad
# Enable CUPS to print documents.
services.printing.enable = true; # x86 only
services.printing.enable = true;
services.avahi = {
enable = true;
nssmdns4 = true;
@ -41,17 +42,15 @@
# "--config=/mnt/services/emulators/retroarch/retroarch.cfg"
#];
#x86 only
#services.ollama = {
# enable = true;
# acceleration = "cuda";
# openFirewall = true;
# host = "0.0.0.0";
# # Optional: preload models, see https://ollama.com/library
# loadModels = [ "gemma4" ];
# package = pkgs.unstable.ollama;
services.ollama = {
enable = true;
openFirewall = true;
host = "0.0.0.0";
# Optional: preload models, see https://ollama.com/library
loadModels = [ "gemma4" ];
package = pkgs.ollama-cuda;
#};
};
programs.chromium = {
enable = true;
@ -183,7 +182,6 @@
#services.hardware.openrgb.package = pkgs.openrgb-with-all-plugins;
programs = {
adb.enable = true;
localsend = {
enable = true;
@ -194,11 +192,10 @@
# enable = true;
#};
#gamescope = {
# enable = true;
# capSysNice = true;
#};
gamescope = {
enable = true;
#capSysNice = true;
};
#steam = { #x86 only
# enable = true;
# gamescopeSession.enable = true;
@ -244,13 +241,13 @@
[ "${automount_opts},credentials=/etc/nixos/smb-credentials,uid=1000,gid=1000" ];
};
programs.virt-manager.enable = true;
users.groups.libvirtd.members = [ "admin" ];
virtualisation.libvirtd = {
enable = true;
qemu.swtpm.enable = true;
};
virtualisation.spiceUSBRedirection.enable = true;
#programs.virt-manager.enable = true;
#users.groups.libvirtd.members = [ "admin" ];
#virtualisation.libvirtd = {
# enable = true;
# qemu.swtpm.enable = true;
#};
#virtualisation.spiceUSBRedirection.enable = true;
imports = [ inputs.nix-flatpak.nixosModules.nix-flatpak ];

24
flake.lock generated
View File

@ -61,16 +61,16 @@
]
},
"locked": {
"lastModified": 1775425411,
"narHash": "sha256-KY6HsebJHEe5nHOWP7ur09mb0drGxYSzE3rQxy62rJo=",
"lastModified": 1779726825,
"narHash": "sha256-RUkMrREjKDQrA+dA9+xZviGAxM5W1aVdyOr/bSYpHrE=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "0d02ec1d0a05f88ef9e74b516842900c41f0f2fe",
"rev": "b179bde238977f7d4454fc770b1a727eaf55111c",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-25.11",
"ref": "release-26.05",
"repo": "home-manager",
"type": "github"
}
@ -122,16 +122,16 @@
]
},
"locked": {
"lastModified": 1772129556,
"narHash": "sha256-Utk0zd8STPsUJPyjabhzPc5BpPodLTXrwkpXBHYnpeg=",
"lastModified": 1779036909,
"narHash": "sha256-zXcwYQGCT6pzinK+1dBB2ekTVtfxGZAapb3Evdcu4fY=",
"owner": "nix-darwin",
"repo": "nix-darwin",
"rev": "ebec37af18215214173c98cf6356d0aca24a2585",
"rev": "56c666e108467d87d13508936aade6d567f2a501",
"type": "github"
},
"original": {
"owner": "nix-darwin",
"ref": "nix-darwin-25.11",
"ref": "nix-darwin-26.05",
"repo": "nix-darwin",
"type": "github"
}
@ -201,16 +201,16 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1777428379,
"narHash": "sha256-ypxFOeDz+CqADEQNL72haqGjvZQdBR5Vc7pyx2JDttI=",
"lastModified": 1780203844,
"narHash": "sha256-K5sT4jTpGs15ADhviMKNBH38REpPf5Q6mM1+N6cArVE=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "755f5aa91337890c432639c60b6064bb7fe67769",
"rev": "b51242d7d43689db2f3be91bd05d5b24fbb469c4",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-25.11",
"ref": "nixos-26.05",
"repo": "nixpkgs",
"type": "github"
}

View File

@ -2,14 +2,14 @@
description = "A very basic flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable";
nixos-hardware.url = "github:nixos/nixos-hardware/master";
home-manager.url = "github:nix-community/home-manager/release-25.11";
home-manager.url = "github:nix-community/home-manager/release-26.05";
home-manager-unstable.url = "github:nix-community/home-manager/master";
home-manager-unstable.inputs.nixpkgs.follows = "nixpkgs-unstable";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
nix-darwin.url = "github:nix-darwin/nix-darwin/nix-darwin-25.11";
nix-darwin.url = "github:nix-darwin/nix-darwin/nix-darwin-26.05";
nix-darwin.inputs.nixpkgs.follows = "nixpkgs";
lazyvim.url = "github:pfassina/lazyvim-nix";
nix-flatpak.url = "github:gmodena/nix-flatpak";
@ -77,6 +77,11 @@
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = {
inherit lazyvim;
inherit inputs;
hostname = "nixos-server";
};
home-manager.users.admin = {
imports = [
./home/common.nix

View File

@ -1089,8 +1089,8 @@ in
group = {
"col.border_active" = "rgb(4385be)";
"col.border_inactive" = "rgb(403e3c)";
"col.border_locked_active" = -1;
"col.border_locked_inactive" = -1;
#"col.border_locked_active" = -1;
#"col.border_locked_inactive" = -1;
groupbar = {
font_size = 12;
@ -1138,11 +1138,11 @@ in
};
layerrule = [
"blur, notifications"
"ignorezero, notifications"
#"blur, notifications"
#"ignorezero, notifications"
# turn off anim for rofi
"noanim, rofi"
# turn off anim for walker
#"noanim, rofi"
]; # add blur to notifications
@ -1181,7 +1181,7 @@ in
# See https://wiki.hypr.land/Configuring/Dwindle-Layout/ for more
dwindle = {
pseudotile = true; # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
#pseudo = true; # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true; # You probably want this
force_split = 2; # Always split on the right
};
@ -1270,8 +1270,8 @@ in
"$mainMod, space, exec, $menu"
#"$mainMod, P, pseudo," # dwindle
"$mainMod, T, togglesplit," # dwindle
#"$mainMod SHIFT, L, exec, hyprlock& systemctl suspend" #idk
#"$mainMod, T, togglesplit," # dwindle
"$mainMod SHIFT, F, workspaceopt, allfloat"
#"$mainMod SHIFT, H, exec, for i in {1..10}; do dunstctl history-pop; done; sleep 5 && dunstctl close-all" # show last 10 notifications for 5 seconds
"$mainMod, G, togglegroup,"
@ -1366,76 +1366,84 @@ in
# See https://wiki.hypr.land/Configuring/Window-Rules/ for more
# See https://wiki.hypr.land/Configuring/Workspace-Rules/ for workspace rules
windowrule = [
# Example windowrule
# "float,class:^(kitty)$,title:^(kitty)$"
# Ignore maximize requests from apps. You'll probably like this.
"suppressevent maximize, class:.*"
#windowrule = [
# # Example windowrule
# # "float,class:^(kitty)$,title:^(kitty)$"
# # Ignore maximize requests from apps. You'll probably like this.
# "suppressevent maximize, class:.*"
# Fix some dragging issues with XWayland
"nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0"
# # Fix some dragging issues with XWayland
# "nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0"
# make tuis accessed from waybar float in center
"tag +floating-window, title:(bluetui|impala|wiremix|Signal.*|.*WebCord.*|Weather|Calendar)"
"tag +floating-window, title:^(Open.*Files?|Open [F|f]older.*|Save.*Files?|Save.*As|Save|All Files|.*wants to [open|save].*|[C|c]hoose.*)"
"tag +floating-window, class:(org.gnome.NautilusPreviewer)"
"float, class:(org.gnome.Calculator)"
# # make tuis accessed from waybar float in center
# "tag +floating-window, title:(bluetui|impala|wiremix|Signal.*|.*WebCord.*|Weather|Calendar)"
# "tag +floating-window, title:^(Open.*Files?|Open [F|f]older.*|Save.*Files?|Save.*As|Save|All Files|.*wants to [open|save].*|[C|c]hoose.*)"
# "tag +floating-window, class:(org.gnome.NautilusPreviewer)"
# "float, class:(org.gnome.Calculator)"
# fix scrolling speed in chromium based apps
"tag +chromium-based, class:(chrom.*|brave-browser|signal|WebCord|obsidian|electron)"
"scrolltouchpad 0.15, tag:chromium-based"
# # fix scrolling speed in chromium based apps
# "tag +chromium-based, class:(chrom.*|brave-browser|signal|WebCord|obsidian|electron)"
# "scrolltouchpad 0.15, tag:chromium-based"
# send games to specific workspace
"workspace name:games silent, class:$games"
"noanim, class:$games"
"noblur, class:$games"
"noshadow, class:$games"
"noborder, class:$games"
"rounding 0, class:$games"
"fullscreen, class:$games"
"immediate, class:$games"
# # send games to specific workspace
# "workspace name:games silent, class:$games"
# "noanim, class:$games"
# "noblur, class:$games"
# "noshadow, class:$games"
# "noborder, class:$games"
# "rounding 0, class:$games"
# "fullscreen, class:$games"
# "immediate, class:$games"
# pip
"tag +pip, title:(Picture.?in.?[Pp]icture)"
"tag -default-opacity, tag:pip"
"float, tag:pip"
"pin, tag:pip"
"size 600 338, tag:pip"
"keepaspectratio, tag:pip"
"bordersize 0, tag:pip"
"opacity 1 1, tag:pip"
"move (monitor_w-window_w-40) (monitor_h*0.04), tag:pip"
# # pip
# "tag +pip, title:(Picture.?in.?[Pp]icture)"
# "tag -default-opacity, tag:pip"
# "float, tag:pip"
# "pin, tag:pip"
# "size 600 338, tag:pip"
# "keepaspectratio, tag:pip"
# "bordersize 0, tag:pip"
# "opacity 1 1, tag:pip"
# "move (monitor_w-window_w-40) (monitor_h*0.04), tag:pip"
# steam
"float, class:^(steam)$"
"center, class:^(steam)$, title:^(Steam)$"
"tag -default-opacity, class:^(steam.*)$"
"opacity 1 1, class:^(steam.*)$"
"size 1100 700, class:^(steam)$, title:^(Steam)$"
"size 460 800, class:^(steam)$, title:^(Friends List)$"
"idleinhibit fullscreen, class:^(steam)$"
# # steam
# "float, class:^(steam)$"
# "center, class:^(steam)$, title:^(Steam)$"
# "tag -default-opacity, class:^(steam.*)$"
# "opacity 1 1, class:^(steam.*)$"
# "size 1100 700, class:^(steam)$, title:^(Steam)$"
# "size 460 800, class:^(steam)$, title:^(Friends List)$"
# "idleinhibit fullscreen, class:^(steam)$"
# bitwarden
"noscreenshare, class:^(Bitwarden)$"
"tag +floating-window, class:^(Bitwarden)$"
# # bitwarden
# "noscreenshare, class:^(Bitwarden)$"
# "tag +floating-window, class:^(Bitwarden)$"
# Bitwarden Chrome Extension
"noscreenshare, class:^(brave-nngceckbapebfimnlniiiahkandclblb-Default)$"
"tag +floating-window, class:^(brave-nngceckbapebfimnlniiiahkandclblb-Default)$"
# # Bitwarden Chrome Extension
# "noscreenshare, class:^(brave-nngceckbapebfimnlniiiahkandclblb-Default)$"
# "tag +floating-window, class:^(brave-nngceckbapebfimnlniiiahkandclblb-Default)$"
# floating tag
"float, tag:floating-window"
"center, tag:floating-window"
"size 875 600, tag:floating-window"
# # floating tag
# "float, tag:floating-window"
# "center, tag:floating-window"
# "size 875 600, tag:floating-window"
];
# # floating tag
# "float, tag:floating-window"
# "center, tag:floating-window"
# "size 875 600, tag:floating-window"
"$games" =
"^(steam_app_.*|lutris_game_class|minigalaxy|playnite_game_class|gamescope|chiaki|moonlight|com\.moonlight_stream\.Moonlight|.*[Ww]ine.*)$";
workspace = [
"name:1,monitor:DP-2"
"name:games,monitor:DP-2"
"name:4,monitor:HDMI-A-1"
];
# # hyprbar
# "plugin:hyprbars:nobar, tag:^(?!floating-window$).*$"
#];
#"$games" =
# "^(steam_app_.*|lutris_game_class|minigalaxy|playnite_game_class|gamescope|chiaki|moonlight|com\.moonlight_stream\.Moonlight|.*[Ww]ine.*)$";
#workspace = [
# "name:1,monitor:DP-2"
# "name:games,monitor:DP-2"
# "name:4,monitor:HDMI-A-1"
#];
};
};

View File

@ -520,65 +520,6 @@
};
};
jellyseerr = {
image = "ghcr.io/fallenbagel/jellyseerr";
autoStart = true;
autoUpdate = "registry";
network = "internal_net";
environmentFile = [
"/pool/services/secrets/default"
];
volumes = [
"/pool/services/podman/jellyseerr:/app/config"
];
extraConfig = {
Service = {
TimeoutStartSec = 900;
};
};
};
# joplin = {
# image = "docker.io/joplin/server:latest";
# autoStart = true;
# autoUpdate = "registry";
# network = "internal_net";
# environmentFile = [
# "/pool/services/secrets/default"
# "/pool/services/secrets/joplin"
# ];
# ports = [
# "22300:22300"
# ];
# extraConfig = {
# Service = {
# TimeoutStartSec = 900;
# };
# };
# };
#
# joplin-db = {
# image = "docker.io/postgres:15";
# autoStart = true;
# autoUpdate = "registry";
# network = "internal_net";
# environmentFile = [
# "/pool/services/secrets/default"
# "/pool/services/secrets/joplin"
# ];
# volumes = [
# "/pool/services/podman/joplin-db:/var/lib/postgresql/data"
# ];
# ports = [
# "5432:5432"
# ];
# extraConfig = {
# Service = {
# TimeoutStartSec = 900;
# };
# };
# };
kiwix = {
image = "ghcr.io/kiwix/kiwix-serve:latest";
autoStart = true;
@ -931,7 +872,7 @@
"/pool/services/podman/paperless-ngx/data:/usr/src/paperless/data"
"/pool/services/podman/paperless-ngx/media:/usr/src/paperless/media"
"/pool/services/podman/paperless-ngx/export:/usr/src/paperless/export"
"/pool/data/scans:/usr/src/paperless/consume"
"/pool/services/scans:/usr/src/paperless/consume"
];
extraConfig = {
Service = {
@ -1079,6 +1020,24 @@
};
};
seerr = {
image = "ghcr.io/seerr-team/seerr:latest";
autoStart = true;
autoUpdate = "registry";
network = "internal_net";
environmentFile = [
"/pool/services/secrets/default"
];
volumes = [
"/pool/services/podman/seerr:/app/config"
];
extraConfig = {
Service = {
TimeoutStartSec = 900;
};
};
};
searxng = {
image = "docker.io/searxng/searxng:latest";
autoStart = true;
@ -1180,24 +1139,6 @@
};
};
tinyauth = {
image = "ghcr.io/steveiliop56/tinyauth:v5";
autoStart = true;
autoUpdate = "registry";
network = "internal_net";
environmentFile = [
"/pool/services/secrets/default"
"/pool/services/secrets/tinyauth"
];
volumes = [
"/pool/services/podman/tinyauth/:/data"
];
extraConfig = {
Service = {
TimeoutStartSec = 900;
};
};
};
tubearchivist = {
image = "docker.io/bbilly1/tubearchivist";

View File

@ -1,58 +1,35 @@
# 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,
...
}:
{ config, lib, pkgs, modulesPath, ... }:
{
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [
"xhci_pci"
"ahci"
"nvme"
"usbhid"
"usb_storage"
"sd_mod"
"nvidia-uvm"
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" = {
device = "/dev/disk/by-uuid/bd28421d-7ec4-4b23-964d-c07a6f351e1f";
fileSystems."/" =
{ device = "/dev/disk/by-uuid/c4d42c06-25fa-45cb-9341-76bb895140fb";
fsType = "ext4";
};
boot.initrd.luks.devices."luks-e3a81f8e-3ae9-494b-a329-a6f860b10e34".device =
"/dev/disk/by-uuid/e3a81f8e-3ae9-494b-a329-a6f860b10e34";
boot.initrd.luks.devices."luks-4b9e90fd-5bb4-4647-89b1-0d42d5f05a1e".device = "/dev/disk/by-uuid/4b9e90fd-5bb4-4647-89b1-0d42d5f05a1e";
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/D47C-5FCE";
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/81A0-0593";
fsType = "vfat";
options = [
"fmask=0077"
"dmask=0077"
];
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices = [
{ device = "/dev/disk/by-uuid/be22d9db-283a-4dd9-93d5-1006e392724b"; }
swapDevices =
[ { device = "/dev/disk/by-uuid/e0f10fbd-4f23-4f71-87bf-04a672ae3170"; }
];
fileSystems."/run/media/admin/08cabc7a-9a6e-4c21-8a07-6663af77b705" = {
device = "/dev/disk/by-uuid/08cabc7a-9a6e-4c21-8a07-6663af77b705";
fsType = "ext4";
};
# 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

View File

@ -19,8 +19,7 @@
};
boot = {
initrd.luks.devices."luks-cbf20b12-90f7-4fbb-95d3-1320eece4d89".device =
"/dev/disk/by-uuid/cbf20b12-90f7-4fbb-95d3-1320eece4d89";
initrd.luks.devices."luks-d5e2e9e2-9ffb-4e4c-9728-61209ac4dc2c".device = "/dev/disk/by-uuid/d5e2e9e2-9ffb-4e4c-9728-61209ac4dc2c";
kernelParams = [
"nvidia_drm.modeset=1"
"nvidia_drm.fbdev=1"
@ -31,16 +30,16 @@
networking = {
hostName = "nixos-desktop";
interfaces.enp42s0 = {
wakeOnLan.enable = true;
ipv4.addresses = [
{
address = "192.168.30.40";
prefixLength = 24;
}
];
};
defaultGateway = "192.168.30.1";
# interfaces.enp42s0 = {
# wakeOnLan.enable = true;
# ipv4.addresses = [
# {
# address = "192.168.30.40";
# prefixLength = 24;
# }
# ];
# };
# defaultGateway = "192.168.30.1";
nameservers = [
"192.168.0.1"
"1.1.1.1"