Compare commits

...
46 Commits
Author SHA1 Message Date
k3t a00258ed3d disable redundant features 2026-09-03 08:28:03 +00:00
k3t 1eb528fdc7 oops 2026-09-03 07:52:55 +00:00
k3t 900a830660 add nvidia support 2026-09-03 07:52:07 +00:00
k3t 4e32f3c193 flake update 2026-08-27 18:20:33 -06:00
k3t 8f32d561f5 flake update 2026-08-23 15:08:14 -06:00
k3t e766d73c6d e 2026-08-09 14:05:20 -06:00
k3t 550b91fd59 disable nftables again 2026-08-09 14:02:28 -06:00
k3t 9d5b87e036 e 2026-08-09 13:01:49 -06:00
k3t 7b729d68aa e 2026-08-09 12:53:34 -06:00
k3t 71b94afced e 2026-08-09 12:52:44 -06:00
k3t af7fee8ea7 e 2026-08-09 12:50:41 -06:00
k3t b8594b37b5 enable ios support on tbb 2026-08-09 12:50:13 -06:00
k3t f39b398e8a add ios support 2026-08-09 12:48:45 -06:00
k3t b00cadd7a3 update waydroid.nix & firewall.nix 2026-08-08 14:23:43 +00:00
k3t 3572ef72af update waydroid.nix 2026-08-08 14:14:57 +00:00
k3t ea41bef16c oops 2026-08-08 02:31:49 -06:00
k3t addef281d7 remove adb from waydroid 2026-08-08 02:30:45 -06:00
k3t 4f8df6192f oops 2026-08-08 02:30:13 -06:00
k3t bcddfd1443 allow timezone to be overrideable 2026-08-08 02:29:43 -06:00
k3t 2f5bcb3029 oops 2026-08-08 02:27:10 -06:00
k3t d8dffd131f add geoclue and waydroid 2026-08-08 02:26:34 -06:00
k3t d2123f4e8d modify synergy.nix 2026-08-08 01:39:01 -06:00
k3t 2ab6b4a932 add synergy 2026-08-08 01:34:14 -06:00
k3t 9753013fa9 oops 2026-08-08 01:26:49 -06:00
k3t fc5fb9af0e many performance optimizations 2026-08-08 01:25:08 -06:00
k3t 91ea0a10cf reenable lact & enable iio on thinkpad 2026-08-08 00:45:39 -06:00
k3t 7e300df6fa update hardware-configuration.nix 2026-08-06 23:56:57 -06:00
k3t 24e58fc71d flake update 2026-08-06 23:53:17 -06:00
k3t e5c52d516a rename T14 to ThinkPad 2026-08-06 23:50:08 -06:00
k3t 682f49d002 disable 32bit mesa 2026-08-02 03:37:29 -06:00
k3t 0df48f3021 enable mesa 2026-08-02 03:36:32 -06:00
k3t 6a41a274cf enable plasma6 on nixcloud 2026-08-02 03:25:39 -06:00
k3t 49d3f8bb5b add packages to tbb for certain repacks to function 2026-08-01 23:53:46 -06:00
k3t 89980b6244 re-enable vmware on theblackbox 2026-08-01 23:52:22 -06:00
k3t bf094a3e08 add gomuks 2026-07-28 16:47:24 -06:00
k3t b052afabc1 [mautrix.nix] change ig port, add mautrix-signal 2026-07-28 13:20:40 -06:00
k3t 62e3df59bf add mautrix-meta instagram container 2026-07-28 13:07:48 -06:00
k3t 8bf6c4fcc0 ENABLE the setting that was just added 😭 2026-07-28 11:39:37 -06:00
k3t 86e84cad1b reconfigure nginx for mautrix-discord 2026-07-28 11:37:07 -06:00
k3t 36952f5bae forgot to plan ahead, too latenow 2026-07-28 11:20:59 -06:00
k3t 7f59ae2652 bind continuwuity to 0.0.0.0 2026-07-28 11:15:22 -06:00
k3t a386bd81c3 modify mautrix.nix 2026-07-28 11:13:15 -06:00
k3t f0294a80ce change blocky port to fix podman, fix a few container files 2026-07-28 10:03:28 -06:00
k3t 6d6b690218 oops 2026-07-28 09:50:44 -06:00
k3t cc8b2636db modify mautrix.nix 2026-07-28 09:49:40 -06:00
k3t acc6970571 move podman config to more suitable location 2026-07-28 09:49:34 -06:00
23 changed files with 386 additions and 481 deletions
Generated
+22 -22
View File
@@ -37,11 +37,11 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1785239295,
"narHash": "sha256-aYFoftXjm7Df7CAoR0XoMQjJ9rTZ/l9d1jr9EqD7sHM=",
"lastModified": 1788229478,
"narHash": "sha256-G0F2rFORVcFkEvVdE/qWQTnYekIc77YP5/vRF9nZlxU=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "42bb40f7aaab63a107b64a20c4a4ade6550758d0",
"rev": "1dc2d1f720ab17fc7981e087346bf54b26d284b1",
"type": "github"
},
"original": {
@@ -97,11 +97,11 @@
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1785210256,
"narHash": "sha256-8yI7hhBzUVprMDUecN5SkstELX80Mv8xAmk1CAneRaI=",
"lastModified": 1788146779,
"narHash": "sha256-DPpSweCi/XNpD7r2mrL83gaN0/UsQIF6ihb2HY2G2Jc=",
"owner": "cynicsketch",
"repo": "nix-mineral",
"rev": "c5a5196fc1415806be79c1e78abdfdaa5c13a2ab",
"rev": "9e05f8a852c7ca53e797379deef275b608d47ef4",
"type": "github"
},
"original": {
@@ -115,11 +115,11 @@
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1785232496,
"narHash": "sha256-65EQYIRRpTdpH8lUiB6Mvo5uBkG60aBIzAJuALfx+O0=",
"lastModified": 1788044418,
"narHash": "sha256-cmOd3iGoE140M2GidgQMQbyxHZ4dT7C0QZq2+CrXQyA=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "2e790b0a6be8ec2b76174ac0931b8ff11919ec98",
"rev": "dc3f0cfde2050172abf6c3cdb684f735c15a57c5",
"type": "github"
},
"original": {
@@ -131,11 +131,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1783604885,
"narHash": "sha256-tzMgSkV7kljEkqIjlgV6F+n+xD+/a35Db8bs7a4BFAo=",
"lastModified": 1787209939,
"narHash": "sha256-WvvHR4kSQLAbtouMC/ruZ5UpLwlUcY3K4FAllMN+yGk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "767b0d3ec98a143ad9ed7dfc0d5553510ac27133",
"rev": "391b592eb44808b3bd0cb80bb71b63a5a118b8bb",
"type": "github"
},
"original": {
@@ -207,11 +207,11 @@
},
"nixpkgs_5": {
"locked": {
"lastModified": 1785090369,
"narHash": "sha256-m0pDuRJG7EDo9ri+4Ksu83VsI+PlxNC9lNBfydejce4=",
"lastModified": 1788179007,
"narHash": "sha256-hn1oU2rue2SYK8dAr8+WNZWtbsz1S2W5mnHlSEuh3bo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "624af665418d3c65d544145b4d34ad696439570e",
"rev": "34ab99075ac4f7e40cf037eef32cb1c360bb85e9",
"type": "github"
},
"original": {
@@ -223,11 +223,11 @@
},
"nixpkgs_6": {
"locked": {
"lastModified": 1784796856,
"narHash": "sha256-vwxWgF+Gj276WznzGb1LxGsK/39HaQwgQXiU3EkC844=",
"rev": "e2587caef70cea85dd97d7daab492899902dbf5d",
"lastModified": 1787900134,
"narHash": "sha256-5GWj0FI2uOwKNpXkmpWrSFDe1rCaNBCUQ8d+HDtFQPI=",
"rev": "83199d0d373dd3ac2b9a1996b1d0263f76ab7a4c",
"type": "tarball",
"url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1040357.e2587caef70c/nixexprs.tar.xz"
"url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1063296.83199d0d373d/nixexprs.tar.xz"
},
"original": {
"type": "tarball",
@@ -250,11 +250,11 @@
"systems": "systems"
},
"locked": {
"lastModified": 1785048222,
"narHash": "sha256-LjFVfwxensz76SjnvofF1Jsw+xTLd8Qp31W0J6nh2XI=",
"lastModified": 1788083617,
"narHash": "sha256-aXMDRUxm/9se+vgKViKdDcClk1k3qA3sUwT0kAYo3Fg=",
"owner": "Gerg-L",
"repo": "spicetify-nix",
"rev": "17e524f330c282d31c32dfe076222d4a12277886",
"rev": "bf4ed54253a61c8324a5b461638c42db77c0b980",
"type": "github"
},
"original": {
+22 -116
View File
@@ -70,9 +70,11 @@
./modules/gui/apps/steam.nix
./modules/gui/fonts.nix
./modules/gui/services/flatpak.nix
./modules/gui/services/geoclue.nix
./modules/gui/services/kdeconnect.nix
./modules/gui/services/kwallet.nix
./modules/gui/services/xdg.nix
./modules/gui/services/waydroid.nix
./modules/net/services/avahi.nix
./modules/net/services/fail2ban.nix
@@ -91,18 +93,19 @@
./modules/sys/hw/boot.nix
./modules/sys/hw/libinput.nix
./modules/sys/hw/cpu/amd64.nix
./modules/sys/hw/gpu/amd.nix
./modules/sys/hw/gpu/nvidia.nix
./modules/sys/hw/gpu/vmware.nix
./modules/sys/hw/input/keyboard.nix
./modules/sys/hw/input/tablet.nix
./modules/sys/hw/input/xbox.nix
./modules/sys/hw/misc/ios.nix
./modules/sys/nix.nix
./modules/sys/perf.nix
./modules/sys/pkgs.nix
./modules/sys/rc/openssh.nix
./modules/sys/rc/sunshine.nix
./modules/sys/rc/x2goserver.nix
./modules/sys/rc/synergy.nix
./modules/sys/rgb.nix
./modules/sys/security.nix
@@ -112,6 +115,8 @@
./modules/sys/time.nix
./modules/sys/users/k3t.nix
./modules/sys/vm.nix
./hosts/TheBlackBox/configuration.nix
spicetify-nix.nixosModules.spicetify
home-manager.nixosModules.home-manager
@@ -122,117 +127,6 @@
}
];
"NixNAS" = mkHost "x86_64-linux" [
./modules/net/services/avahi.nix
./modules/net/services/fail2ban.nix
./modules/net/services/networkmanager.nix
./modules/net/services/tailscale.nix
./modules/sys/compat.nix
./modules/sys/firewall.nix
./modules/sys/fs/btrfs.nix
./modules/sys/fs/mounts/efi.nix
./modules/sys/fs/mounts/root-btrfs.nix
./modules/sys/fs/mounts/swap.nix
./modules/sys/hw/boot.nix
./modules/sys/hw/hyperv.nix
./modules/sys/nix.nix
./modules/sys/perf.nix
./modules/sys/pkgs.nix
./modules/sys/rc/openssh.nix
./modules/sys/security.nix
./modules/sys/shell.nix
./modules/sys/stateversion.nix
./modules/sys/sysctl.nix
./modules/sys/time.nix
./modules/sys/users/k3t.nix
./hosts/NixNAS/configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.k3t = ./home/server.nix;
}
];
"NixServe" = mkHost "x86_64-linux" [
./modules/net/services/avahi.nix
./modules/net/services/fail2ban.nix
./modules/net/services/networkmanager.nix
./modules/net/services/tailscale.nix
./modules/sys/compat.nix
./modules/sys/firewall.nix
./modules/sys/fs/btrfs.nix
./modules/sys/fs/mounts/efi.nix
./modules/sys/fs/mounts/root-btrfs.nix
./modules/sys/fs/mounts/swap.nix
./modules/sys/hw/boot.nix
./modules/sys/hw/hyperv.nix
./modules/sys/nix.nix
./modules/sys/perf.nix
./modules/sys/pkgs.nix
./modules/sys/rc/openssh.nix
./modules/sys/security.nix
./modules/sys/shell.nix
./modules/sys/stateversion.nix
./modules/sys/sysctl.nix
./modules/sys/time.nix
./modules/sys/users/k3t.nix
./hosts/NixServe/configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.k3t = ./home/server.nix;
}
];
"NixGame" = mkHost "x86_64-linux" [
./modules/net/services/avahi.nix
./modules/net/services/fail2ban.nix
./modules/net/services/networkmanager.nix
./modules/net/services/tailscale.nix
./modules/sys/compat.nix
./modules/sys/firewall.nix
./modules/sys/fs/btrfs.nix
./modules/sys/fs/mounts/efi.nix
./modules/sys/fs/mounts/root-btrfs.nix
./modules/sys/fs/mounts/swap.nix
./modules/sys/hw/boot.nix
./modules/sys/hw/hyperv.nix
./modules/sys/nix.nix
./modules/sys/perf.nix
./modules/sys/pkgs.nix
./modules/sys/rc/openssh.nix
./modules/sys/security.nix
./modules/sys/shell.nix
./modules/sys/stateversion.nix
./modules/sys/sysctl.nix
./modules/sys/time.nix
./modules/sys/users/k3t.nix
./hosts/NixGame/configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.k3t = ./home/server.nix;
}
];
"IdeaPad" = mkHost "x86_64-linux" [
./modules/audio/base.nix
./modules/audio/zeroconf.nix
@@ -244,6 +138,7 @@
./modules/gui/apps/firefox.nix
./modules/gui/fonts.nix
./modules/gui/services/flatpak.nix
./modules/gui/services/geoclue.nix
./modules/gui/services/kdeconnect.nix
./modules/gui/services/kwallet.nix
./modules/gui/services/xdg.nix
@@ -315,6 +210,7 @@
./modules/sys/perf.nix
./modules/sys/pkgs.nix
./modules/sys/rc/openssh.nix
./modules/sys/rc/synergy.nix
./modules/sys/rc/sunshine.nix
./modules/sys/rgb.nix
./modules/sys/security.nix
@@ -333,7 +229,7 @@
home-manager.users.k3t = ./home/desktop.nix;
}
];
"T14" = mkHost "x86_64-linux" [
"ThinkPad" = mkHost "x86_64-linux" [
./modules/audio/base.nix
./modules/audio/zeroconf.nix
@@ -348,9 +244,11 @@
./modules/gui/apps/steam.nix
./modules/gui/fonts.nix
./modules/gui/services/flatpak.nix
./modules/gui/services/geoclue.nix
./modules/gui/services/kdeconnect.nix
./modules/gui/services/kwallet.nix
./modules/gui/services/xdg.nix
./modules/gui/services/waydroid.nix
./modules/net/services/avahi.nix
./modules/net/services/fail2ban.nix
@@ -360,14 +258,22 @@
./modules/sys/compat.nix
./modules/sys/firewall.nix
./modules/sys/fs/btrfs.nix
./modules/sys/fs/mounts/efi.nix
./modules/sys/fs/mounts/btrfs/tbb-btrfs.nix
./modules/sys/fs/mounts/swap.nix
./modules/sys/hw/boot.nix
./modules/sys/hw/cpu/amd64.nix
./modules/sys/hw/gpu/amd.nix
./modules/sys/hw/cpu/intel.nix
./modules/sys/hw/gpu/intel.nix
./modules/sys/hw/misc/ios.nix
./modules/sys/nix.nix
./modules/sys/perf.nix
./modules/sys/pkgs.nix
./modules/sys/rc/openssh.nix
./modules/sys/rc/synergy.nix
./modules/sys/rc/sunshine.nix
./modules/sys/rgb.nix
./modules/sys/security.nix
+18 -10
View File
@@ -4,12 +4,12 @@
{ config, pkgs, ... }:
let
amdgpu-kernel-module = pkgs.callPackage ./amdgpu-kernel-module.nix {
#let
# amdgpu-kernel-module = pkgs.callPackage ./amdgpu-kernel-module.nix {
# Make sure the module targets the same kernel as your system is using.
kernel = config.boot.kernelPackages.kernel;
};
in
# kernel = config.boot.kernelPackages.kernel;
# };
#in
{
imports =
@@ -20,11 +20,14 @@ in
networking.hostName = "TheBlackBox";
# Linux and VR... nightmare below
boot.extraModulePackages = [
(amdgpu-kernel-module.overrideAttrs (_: {
patches = [ ./amdgpu-cap_sys_nice_begone.patch ];
}))
];
#boot.extraModulePackages = [
# (amdgpu-kernel-module.overrideAttrs (_: {
# patches = [ ./amdgpu-cap_sys_nice_begone.patch ];
# }))
#];
# Synergy
#services.synergy.server.enable = true;
services.wivrn = {
enable = true;
@@ -64,6 +67,11 @@ in
users.users.k3t = {
packages = with pkgs; [
virt-viewer
fuse-overlayfs
fuse3
psmisc
dwarfs
wineWow64Packages.staging
];
};
}
+1 -1
View File
@@ -10,7 +10,7 @@
./hardware-configuration.nix
];
networking.hostName = "T14"; # Define your hostname.
networking.hostName = "ThinkPad"; # Define your hostname.
users.users.k3t = {
packages = with pkgs; [
+2 -19
View File
@@ -8,28 +8,11 @@
[ (modulesPath + "/installer/scan/not-detected.nix")
];
fileSystems."/" =
{ device = "/dev/disk/by-label/NixOS";
fsType = "btrfs";
options = [ "subvol=@" ];
};
fileSystems."/home" =
{ device = "/dev/disk/by-label/NixOS";
fsType = "btrfs";
options = [ "subvol=@home" ];
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/E0C2-A3A3";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
#swapDevices =
# [ { device = "/dev/disk/by-uuid/fe32f9af-3382-4505-90e3-aaf1c41bf5d4"; }
# ];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
hardware.sensor.iio.enable = true;
}
+23 -3
View File
@@ -14,6 +14,20 @@
networking.hostName = "nixcloud"; # Define your hostname.
# podman
virtualisation.podman = {
enable = true;
autoPrune.enable = true;
dockerCompat = true; # optional; lets you use `docker` CLI
};
virtualisation.oci-containers.backend = "podman";
# Enable container name DNS for all Podman networks.
networking.firewall.interfaces = let
matchAll = if !config.networking.nftables.enable then "podman+" else "podman*";
in {
"${matchAll}".allowedUDPPorts = [ 53 ];
};
# Define a user account. Don't forget to set a password with passwd.
users.users = {
@@ -37,9 +51,15 @@
# List packages installed in system profile.
# You can use https://search.nixos.org/ to find more packages (and options).
#environment.systemPackages = with pkgs; [
# wget
#];
environment.systemPackages = with pkgs; [
waypipe
];
# enable mesa
hardware.graphics.enable = true;
# desktop in the sky
services.desktopManager.plasma6.enable = true;
# Open ports in the firewall.
+1 -1
View File
@@ -12,7 +12,7 @@
prefetching = true;
};
ports = {
dns = 53;
dns = 5353;
tls = 853;
http = 4000;
};
@@ -0,0 +1,22 @@
{
virtualisation.oci-containers.containers = {
"matrix-gomuks" = {
image = "dock.mau.dev/gomuks/gomuks";
volumes = [
"/var/lib/gomuks:/data:rw"
];
ports = [
"127.0.0.1:29325:29325/tcp"
];
log-driver = "journald";
};
};
services.nginx.virtualHosts."gomuks.k3t.dev" = {
enableACME = true;
forceSSL = true;
locations."/" = {
proxyPass = "http://127.0.0.1:29325";
proxyWebsockets = true;
};
};
}
@@ -6,7 +6,7 @@
enable = true;
};
global = {
address = [ "127.0.0.1" ];
address = [ "0.0.0.0" ];
server_name = "k3t.dev";
trusted_servers = [
"matrix.org"
+93 -223
View File
@@ -3,232 +3,102 @@
{ pkgs, lib, config, ... }:
{
# Runtime
virtualisation.podman = {
enable = true;
autoPrune.enable = true;
dockerCompat = true;
};
# Enable container name DNS for all Podman networks.
# Containers
virtualisation.oci-containers.containers = {
"matrix-mautrix-bluesky" = {
image = "dock.mau.dev/mautrix/bluesky:latest";
volumes = [
"/var/lib/mautrix/bluesky:/data:rw"
];
ports = [
"127.0.0.1:29340:29340/tcp"
];
log-driver = "journald";
};
"matrix-mautrix-discord" = {
image = "dock.mau.dev/mautrix/discord:latest";
volumes = [
"/var/lib/mautrix/discord:/data:rw"
];
ports = [
"127.0.0.1:29334:29334/tcp"
];
log-driver = "journald";
};
"matrix-mautrix-linkedin" = {
image = "dock.mau.dev/mautrix/linkedin:latest";
volumes = [
"/var/lib/mautrix/linkedin:/data:rw"
];
ports = [
"127.0.0.1:29341:29341/tcp"
];
log-driver = "journald";
};
"matrix-mautrix-meta" = {
image = "dock.mau.dev/mautrix/meta:latest";
volumes = [
"/var/lib/mautrix/meta:/data:rw"
];
ports = [
"127.0.0.1:29319:29319/tcp"
];
log-driver = "journald";
};
"matrix-mautrix-instagram" = {
image = "dock.mau.dev/mautrix/meta:ig-latest";
volumes = [
"/var/lib/mautrix/instagram:/data:rw"
];
ports = [
"127.0.0.1:29330:29330/tcp"
];
log-driver = "journald";
};
"matrix-mautrix-signal" = {
image = "dock.mau.dev/mautrix/signal:latest";
volumes = [
"/var/lib/mautrix/signal:/data:rw"
];
ports = [
"127.0.0.1:29328:29328/tcp"
];
log-driver = "journald";
};
"matrix-mautrix-twitter" = {
image = "dock.mau.dev/mautrix/twitter:latest";
volumes = [
"/var/lib/mautrix/twitter:/data:rw"
];
ports = [
"127.0.0.1:29327:29327/tcp"
];
log-driver = "journald";
};
"matrix-mautrix-whatsapp" = {
image = "dock.mau.dev/mautrix/whatsapp:latest";
volumes = [
"/var/lib/mautrix/whatsapp:/data:rw"
];
ports = [
"127.0.0.1:29318:29318/tcp"
];
log-driver = "journald";
};
};
services.nginx.virtualHosts."discord-media-mxc.k3t.dev" = {
enableACME = true;
forceSSL = true;
locations."/" = {
proxyPass = "http://127.0.0.1:29334";
proxyWebsockets = true;
};
};
# Allow podman containers to access continuwuity
networking.firewall.interfaces = let
matchAll = if !config.networking.nftables.enable then "podman+" else "podman*";
in {
"${matchAll}".allowedUDPPorts = [ 53 ];
};
virtualisation.oci-containers.backend = "podman";
# Containers
virtualisation.oci-containers.containers."matrix-mautrix-bluesky" = {
image = "dock.mau.dev/mautrix/bluesky:latest";
volumes = [
"/var/lib/mautrix/bluesky:/data:rw"
];
ports = [
"127.0.0.4:29340:29340/tcp"
];
log-driver = "journald";
extraOptions = [
"--network-alias=mautrix-bluesky"
"--network=matrix_default"
];
};
systemd.services."podman-matrix-mautrix-bluesky" = {
serviceConfig = {
Restart = lib.mkOverride 90 "always";
};
after = [
"podman-network-matrix_default.service"
];
requires = [
"podman-network-matrix_default.service"
];
partOf = [
"podman-compose-matrix-root.target"
];
wantedBy = [
"podman-compose-matrix-root.target"
];
};
virtualisation.oci-containers.containers."matrix-mautrix-discord" = {
image = "dock.mau.dev/mautrix/discord:latest";
volumes = [
"/var/lib/mautrix/discord:/data:rw"
];
ports = [
"127.0.0.4:29334:29334/tcp"
];
log-driver = "journald";
extraOptions = [
"--network-alias=mautrix-discord"
"--network=matrix_default"
];
};
systemd.services."podman-matrix-mautrix-discord" = {
serviceConfig = {
Restart = lib.mkOverride 90 "always";
};
after = [
"podman-network-matrix_default.service"
];
requires = [
"podman-network-matrix_default.service"
];
partOf = [
"podman-compose-matrix-root.target"
];
wantedBy = [
"podman-compose-matrix-root.target"
];
};
virtualisation.oci-containers.containers."matrix-mautrix-linkedin" = {
image = "dock.mau.dev/mautrix/linkedin:latest";
volumes = [
"/var/lib/mautrix/linkedin:/data:rw"
];
ports = [
"127.0.0.4:29341:29341/tcp"
];
log-driver = "journald";
extraOptions = [
"--network-alias=mautrix-linkedin"
"--network=matrix_default"
];
};
systemd.services."podman-matrix-mautrix-linkedin" = {
serviceConfig = {
Restart = lib.mkOverride 90 "always";
};
after = [
"podman-network-matrix_default.service"
];
requires = [
"podman-network-matrix_default.service"
];
partOf = [
"podman-compose-matrix-root.target"
];
wantedBy = [
"podman-compose-matrix-root.target"
];
};
virtualisation.oci-containers.containers."matrix-mautrix-meta" = {
image = "dock.mau.dev/mautrix/meta:latest";
volumes = [
"/var/lib/mautrix/meta:/data:rw"
];
ports = [
"127.0.0.4:29319:29319/tcp"
];
log-driver = "journald";
extraOptions = [
"--network-alias=mautrix-meta"
"--network=matrix_default"
];
};
systemd.services."podman-matrix-mautrix-meta" = {
serviceConfig = {
Restart = lib.mkOverride 90 "always";
};
after = [
"podman-network-matrix_default.service"
];
requires = [
"podman-network-matrix_default.service"
];
partOf = [
"podman-compose-matrix-root.target"
];
wantedBy = [
"podman-compose-matrix-root.target"
];
};
virtualisation.oci-containers.containers."matrix-mautrix-twitter" = {
image = "dock.mau.dev/mautrix/twitter:latest";
volumes = [
"/var/lib/mautrix/twitter:/data:rw"
];
ports = [
"127.0.0.4:29327:29327/tcp"
];
log-driver = "journald";
extraOptions = [
"--network-alias=mautrix-twitter"
"--network=matrix_default"
];
};
systemd.services."podman-matrix-mautrix-twitter" = {
serviceConfig = {
Restart = lib.mkOverride 90 "always";
};
after = [
"podman-network-matrix_default.service"
];
requires = [
"podman-network-matrix_default.service"
];
partOf = [
"podman-compose-matrix-root.target"
];
wantedBy = [
"podman-compose-matrix-root.target"
];
};
virtualisation.oci-containers.containers."matrix-mautrix-whatsapp" = {
image = "dock.mau.dev/mautrix/whatsapp:latest";
volumes = [
"/var/lib/mautrix/whatsapp:/data:rw"
];
ports = [
"127.0.0.4:29318:29318/tcp"
];
log-driver = "journald";
extraOptions = [
"--network-alias=mautrix-whatsapp"
"--network=matrix_default"
];
};
systemd.services."podman-matrix-mautrix-whatsapp" = {
serviceConfig = {
Restart = lib.mkOverride 90 "always";
};
after = [
"podman-network-matrix_default.service"
];
requires = [
"podman-network-matrix_default.service"
];
partOf = [
"podman-compose-matrix-root.target"
];
wantedBy = [
"podman-compose-matrix-root.target"
];
};
# Networks
systemd.services."podman-network-matrix_default" = {
path = [ pkgs.podman ];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
ExecStop = "podman network rm -f matrix_default";
};
script = ''
podman network inspect matrix_default || podman network create matrix_default
'';
partOf = [ "podman-compose-matrix-root.target" ];
wantedBy = [ "podman-compose-matrix-root.target" ];
};
# Root service
# When started, this will automatically create all resources and start
# the containers. When stopped, this will teardown all resources.
systemd.targets."podman-compose-matrix-root" = {
unitConfig = {
Description = "Root target generated by compose2nix.";
};
wantedBy = [ "multi-user.target" ];
"${matchAll}".allowedTCPPorts = [ 6167 ];
};
}
+16 -37
View File
@@ -1,41 +1,20 @@
{ config, pkgs, ... }:
{ config, pkgs, lib, ... }:
{
virtualisation.podman = {
enable = true;
autoPrune.enable = true;
dockerCompat = true; # optional; lets you use `docker` CLI
virtualisation.oci-containers.containers."minecraft-server" = {
image = "ghcr.io/graalvm/graalvm-community:25";
volumes = [
"/var/lib/minecraft:/data:rw"
];
ports = [
"25565:25565/tcp"
"24454:24454/udp"
];
extraOptions = [
"--tty"
"--interactive"
];
entrypoint = "/data/run.sh";
log-driver = "journald";
};
systemd.services.minecraft-container = {
description = "Minecraft Server Container (GraalVM JVM 25)";
after = [ "network-online.target" ];
wants = [ "network-online.target" ];
serviceConfig = {
ExecStart = ''
${pkgs.podman}/bin/podman run \
--rm \
--name minecraft-server \
-v /var/lib/minecraft:/data \
-p 25565:25565 \
-p 24454:24454/udp \
ghcr.io/graalvm/graalvm-community:25 \
/data/run.sh
'';
ExecStop = "${pkgs.podman}/bin/podman stop minecraft-server";
Restart = "always";
RestartSec = "10s";
};
# Ensure the directory exists
preStart = ''
mkdir -p /var/lib/minecraft
'';
wantedBy = [ "multi-user.target" ];
};
# Give Podman permission to access persistent storage
systemd.tmpfiles.rules = [
"d /var/lib/minecraft 0755 root root"
];
}
+6
View File
@@ -0,0 +1,6 @@
{
services = {
localtimed.enable = true;
geoclue2.enable = true;
};
}
+9
View File
@@ -0,0 +1,9 @@
{pkgs, ...}:
{
virtualisation.waydroid = {
enable = true;
package = pkgs.waydroid-nftables;
};
environment.systemPackages = [ pkgs.wl-clipboard ];
}
+15 -10
View File
@@ -1,13 +1,18 @@
{
networking.firewall = {
enable = true;
allowedTCPPorts = [ 4713 ];
#allowedUDPPorts = [ 80 443 ];
allowedTCPPortRanges = [
{ from = 8000; to = 9000; }
];
allowedUDPPortRanges = [
{ from = 8000; to = 9000; }
];
networking = {
nftables = {
enable = false;
};
firewall = {
enable = true;
allowedTCPPorts = [ 4713 ];
#allowedUDPPorts = [ 80 443 ];
allowedTCPPortRanges = [
{ from = 8000; to = 9000; }
];
allowedUDPPortRanges = [
{ from = 8000; to = 9000; }
];
};
};
}
+16 -5
View File
@@ -1,9 +1,20 @@
{ pkgs, ... }:
{
hardware.cpu.amd.updateMicrocode = true;
boot.kernelPackages = pkgs.linuxPackages_xanmod_latest;
boot.binfmt.preferStaticEmulators = true;
boot.binfmt.emulatedSystems = [ "aarch64-linux" "x86_64-windows" ];
boot.kernelModules = [ "kvm-amd" ];
hardware.cpu.amd = {
ryzen-smu.enable = true;
updateMicrocode = true;
};
boot = {
binfmt = {
preferStaticEmulators = true;
emulatedSystems = [ "aarch64-linux" "x86_64-windows" ];
};
kernelModules = [ "kvm-amd" ];
kernelPackages = pkgs.linuxPackages_xanmod_latest;
};
programs = {
ryzen-monitor-ng.enable = true;
corectrl.enable = true;
};
}
+12 -4
View File
@@ -2,8 +2,16 @@
{
hardware.cpu.intel.updateMicrocode = true;
boot.kernelPackages = pkgs.linuxPackages_xanmod_latest;
boot.binfmt.preferStaticEmulators = true;
boot.binfmt.emulatedSystems = [ "aarch64-linux" "x86_64-windows" ];
boot.kernelModules = [ "kvm-intel" ];
boot = {
binfmt = {
preferStaticEmulators = true;
emulatedSystems = [ "aarch64-linux" "x86_64-windows" ];
};
kernelModules = [ "kvm-intel" ];
kernelPackages = pkgs.linuxPackages_xanmod_latest;
};
services = {
thermald.enable = true;
throttled.enable = true;
};
}
+2 -1
View File
@@ -1,11 +1,12 @@
{ pkgs, ... }:
{
#services.lact.enable = true;
services.lact.enable = true;
nixpkgs.config.rocmSupport = true;
hardware = {
amdgpu = {
overdrive.enable = true;
opencl.enable = true;
initrd.enable = true;
zluda.enable = true;
+18 -14
View File
@@ -2,20 +2,24 @@
{
boot.kernelParams = [ "i915.enable_guc=3" ];
# Graphics
hardware.enableRedistributableFirmware = true;
hardware.graphics = {
enable = true;
enable32Bit = true;
extraPackages = with pkgs; [
# Required for modern Intel GPUs (Xe iGPU and ARC)
intel-media-driver # VA-API (iHD) userspace
vpl-gpu-rt # oneVPL (QSV) runtime
hardware = {
enableRedistributableFirmware = true;
intel-gpu-tools.enable = true;
graphics = {
enable = true;
enable32Bit = true;
extraPackages = with pkgs; [
# Required for modern Intel GPUs (Xe iGPU and ARC)
intel-media-driver # VA-API (iHD) userspace
vpl-gpu-rt # oneVPL (QSV) runtime
# Optional (compute / tooling):
intel-compute-runtime # OpenCL (NEO) + Level Zero for Arc/Xe
# NOTE: 'intel-ocl' also exists as a legacy package; not recommended for Arc/Xe.
libvdpau-va-gl # Only if you must run VDPAU-only apps
vkbasalt
];
# Optional (compute / tooling):
intel-compute-runtime # OpenCL (NEO) + Level Zero for Arc/Xe
# NOTE: 'intel-ocl' also exists as a legacy package; not recommended for Arc/Xe.
libvdpau-va-gl # Only if you must run VDPAU-only apps
vkbasalt
];
};
};
virtualisation.kvmgt.enable = true;
}
+22
View File
@@ -0,0 +1,22 @@
{ pkgs, ... }:
{
nixpkgs.config.rocmSupport = true;
hardware = {
enableRedistributableFirmware = true;
graphics = {
enable = true;
enable32Bit = true;
extraPackages = with pkgs; [
vkbasalt
mangohud
lsfg-vk
];
};
nvidia = {
open = true;
modesetting.enable = true;
};
};
services.xserver.videoDrivers = [ "nvidia" ];
}
+12
View File
@@ -0,0 +1,12 @@
{pkgs, ...}:
{
services.usbmuxd = {
enable = true;
package = pkgs.usbmuxd2;
};
environment.systemPackages = with pkgs; [
libimobiledevice
ifuse # optional, to mount using 'ifuse'
];
}
+36 -7
View File
@@ -8,17 +8,46 @@
};
};
services.fstrim.enable = true;
services.system76-scheduler.enable = true;
#services.thermald.enable = true;
services.system76-scheduler = {
enable = true;
settings = {
processScheduler = {
foregroundBoost = {
#background = {
# ioClass = "idle";
#};
foreground = {
ioClass = "realtime";
class = "fifo";
};
};
pipewireBoost.profile = {
ioClass = "realtime";
class = "fifo";
};
};
};
};
services.power-profiles-daemon.enable = true;
systemd.coredump.enable = false;
systemd.coredump = { # https://discourse.nixos.org/t/how-to-completely-disable-coredump/77335/11
enable = true;
settings.Coredump = {
Storage = "none";
ProcessSizeMax = "0";
};
};
zramSwap = {
enable = true;
algorithm = "zstd";
memoryPercent = 90;
};
services.udev.extraRules = ''
ACTION=="add|change", KERNEL=="nvme[0-9]*", ATTR{queue/scheduler}="kyber"
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="kyber"
'';
hardware.block.scheduler = {
"mmcblk[0-9]*" = "bfq";
"nvme[0-9]*" = "kyber";
"sd[a-z]" = "kyber";
};
services.scx = {
enable = true;
scheduler = "scx_cake";
};
}
+9
View File
@@ -0,0 +1,9 @@
{
services.synergy = {
client = {
#enable = true;
serverAddress = "theblackbox";
};
#server.enable = true;
};
}
+2 -1
View File
@@ -1,3 +1,4 @@
{lib, ...}:
{
# NTP configuration - NIST atomic clocks
services.timesyncd = {
@@ -14,7 +15,7 @@
"0.pool.ntp.org"
];
};
time.timeZone = "America/Denver";
time.timeZone = lib.mkDefault "America/Denver";
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";