39 Commits

Author SHA1 Message Date
a3ef9fa59e changes to hardware config 2026-02-19 02:44:23 +00:00
f2ee981953 modifying thancred to match updated flake config 2026-02-16 20:39:20 -05:00
eb666f6a01 Merge remote-tracking branch 'origin' into thancred 2026-02-16 20:34:09 -05:00
b8db103e08 Merge pull request 'Standalone Home Manager configuration' (#6) from hm-standalone-config into master
Reviewed-on: #6
2026-02-16 19:24:07 -06:00
08adc255d6 darwin changes 2026-02-16 19:59:35 -05:00
c81ca5ee4c works on cloud 2026-02-16 19:33:25 -05:00
9cfe456cb9 Merge remote-tracking branch 'origin' into hm-standalone-config 2026-02-16 19:19:04 -05:00
ad7f01e41e commit 2026-02-15 19:10:58 -05:00
c452ebff3c real commit this time 2026-02-15 19:05:42 -05:00
a1e71488d8 Revert "modified gaming apps"
This reverts commit 67fda15ca9.
2026-02-15 18:52:30 -05:00
45c8f7ec27 Revert "added hardware config"
This reverts commit 769ab6f72d.
2026-02-15 18:51:41 -05:00
67fda15ca9 modified gaming apps 2026-02-15 18:31:15 -05:00
769ab6f72d added hardware config 2026-02-15 22:49:56 +00:00
1769e583d8 created vs vm 2026-02-14 19:21:25 -05:00
2592a1cd72 update flake 2026-02-14 18:30:51 -05:00
1f9ff31234 added vintage story flake 2026-01-28 08:25:51 -05:00
be6cab1ab2 added sched_ext scx_bpfland scheduler 2026-01-24 22:33:48 -05:00
7f0fdbc6bb more hardware virtualization stuff being added in 2026-01-05 15:46:13 -05:00
e3b134e48a added swaytreesave flake, fixed manual import, fixed infinite recursion 2025-12-30 21:48:46 -05:00
0fa26e2840 flake update 2025-12-28 22:17:23 -05:00
adcd58dce9 Merge pull request 'Nixpkgs 25.11' (#5) from 25.11-move into master
Reviewed-on: #5
2025-12-18 16:36:17 -06:00
45ca395962 modified modules for nixos to build correctly 2025-12-16 17:59:40 -05:00
923cebd9c9 modified inputs to move over to 25.11 release 2025-12-16 15:35:47 -05:00
98ce7410c2 update flake 2025-12-14 18:15:48 -05:00
b7f65a6eeb modified hardware virt 2025-12-14 17:53:10 -05:00
70691c16e5 enabled nix-ld, related libraries 2025-12-13 17:22:38 -05:00
c81b48a0ee readme updates 2025-12-08 21:52:52 -05:00
75f08c16bc added adwaita fonts 2025-12-08 21:52:46 -05:00
14a0160309 added mangohud, vkbasalt as options to enable to apps/gaming module 2025-11-10 08:09:33 -05:00
43654c2946 added helvum to packages installed 2025-11-10 08:08:31 -05:00
8dd4513997 added zathura package 2025-11-08 17:26:05 -05:00
1d95ffb81a tweaked aagl a bit 2025-11-08 17:25:58 -05:00
c53db46ca7 Merge pull request 'AAGL' (#4) from anime-game-launcher into master
Reviewed-on: #4
2025-11-08 15:12:54 -06:00
c546e6242b Merge branch 'master' into anime-game-launcher 2025-11-08 15:12:38 -06:00
05bb811e42 added every launcher that aagl has to offer
added a todo comment that mentions the in-development unified launcher
2025-11-08 16:17:38 -05:00
7615d1a1d5 added browser extension 2025-11-06 22:17:54 -05:00
9eea820f3b updated browser extensions 2025-11-03 20:59:55 -05:00
6024b77535 added aagl flake, implemeneted into gaming apps module 2025-11-02 10:25:27 -05:00
257fab9832 flake update 2025-11-01 18:46:26 -04:00
23 changed files with 540 additions and 167 deletions

267
flake.lock generated
View File

@@ -1,5 +1,27 @@
{ {
"nodes": { "nodes": {
"aagl": {
"inputs": {
"flake-compat": "flake-compat",
"nixpkgs": [
"nixpkgs"
],
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1771170334,
"narHash": "sha256-tCgoCWORfNHaRXTh2QS44LwxlV8q28jVvjN5ioMicv8=",
"owner": "ezKEa",
"repo": "aagl-gtk-on-nix",
"rev": "821b4f92c2c0981ea5b571b03403df87d2b2e2ae",
"type": "github"
},
"original": {
"owner": "ezKEa",
"repo": "aagl-gtk-on-nix",
"type": "github"
}
},
"darwin": { "darwin": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -24,11 +46,11 @@
"flake-compat": { "flake-compat": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1761588595, "lastModified": 1767039857,
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -37,80 +59,46 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils": { "flake-schemas": {
"inputs": {
"systems": "systems"
},
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1761577921,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "narHash": "sha256-eK3/xbUOrxp9fFlei09XNjqcdiHXxndzrTXp7jFpOk8=",
"owner": "numtide", "rev": "47849c7625e223d36766968cc6dc23ba0e135922",
"repo": "flake-utils", "revCount": 107,
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "tarball",
"type": "github" "url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.2.0/019a4a84-544d-7c59-b26d-e334e320c932/source.tar.gz"
}, },
"original": { "original": {
"owner": "numtide", "type": "tarball",
"repo": "flake-utils", "url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%2A"
"type": "github"
} }
}, },
"ghostty": { "flake-schemas_2": {
"inputs": {
"flake-compat": "flake-compat",
"flake-utils": "flake-utils",
"home-manager": "home-manager",
"nixpkgs": "nixpkgs",
"zig": "zig",
"zon2nix": "zon2nix"
},
"locked": { "locked": {
"lastModified": 1769985646, "lastModified": 1761577921,
"narHash": "sha256-ubfC9fLfdQ0xpQuFmGQCYIRyEEmOzXd+ya5rShM217k=", "narHash": "sha256-eK3/xbUOrxp9fFlei09XNjqcdiHXxndzrTXp7jFpOk8=",
"owner": "ghostty-org", "rev": "47849c7625e223d36766968cc6dc23ba0e135922",
"repo": "ghostty", "revCount": 107,
"rev": "769fff5dfb322594c0dc7a379ee70897a7db773f", "type": "tarball",
"type": "github" "url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.2.0/019a4a84-544d-7c59-b26d-e334e320c932/source.tar.gz"
}, },
"original": { "original": {
"owner": "ghostty-org", "type": "tarball",
"repo": "ghostty", "url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%2A"
"type": "github"
} }
}, },
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"ghostty",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1768068402, "lastModified": 1770260404,
"narHash": "sha256-bAXnnJZKJiF7Xr6eNW6+PhBf1lg2P1aFUO9+xgWkXfA=", "narHash": "sha256-3iVX1+7YUIt23hBx1WZsUllhbmP2EnXrV8tCRbLxHc8=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "8bc5473b6bc2b6e1529a9c4040411e1199c43b4c", "rev": "0d782ee42c86b196acff08acfbf41bb7d13eed5b",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_2": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1769580047,
"narHash": "sha256-tNqCP/+2+peAXXQ2V8RwsBkenlfWMERb+Uy6xmevyhM=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "366d78c2856de6ab3411c15c1cb4fb4c2bf5c826",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -138,24 +126,27 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1768032153, "lastModified": 1744536153,
"narHash": "sha256-zvxtwlM8ZlulmZKyYCQAPpkm5dngSEnnHjmjV7Teloc=", "narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
"rev": "3146c6aa9995e7351a398e17470e15305e6e18ff", "owner": "NixOS",
"type": "tarball", "repo": "nixpkgs",
"url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.05pre925418.3146c6aa9995/nixexprs.tar.xz" "rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11",
"type": "github"
}, },
"original": { "original": {
"type": "tarball", "owner": "NixOS",
"url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz" "ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
} }
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1769900590, "lastModified": 1771043024,
"narHash": "sha256-I7Lmgj3owOTBGuauy9FL6qdpeK2umDoe07lM4V+PnyA=", "narHash": "sha256-O1XDr7EWbRp+kHrNNgLWgIrB0/US5wvw9K6RERWAj6I=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "41e216c0ca66c83b12ab7a98cc326b5db01db646", "rev": "3aadb7ca9eac2891d52a9dec199d9580a6e2bf44",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -181,26 +172,74 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_4": {
"locked": {
"lastModified": 1766201043,
"narHash": "sha256-eplAP+rorKKd0gNjV3rA6+0WMzb1X1i16F5m5pASnjA=",
"rev": "b3aad468604d3e488d627c0b43984eb60e75e782",
"revCount": 904049,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2511.904049%2Brev-b3aad468604d3e488d627c0b43984eb60e75e782/019b3f6c-8b33-7edb-b858-9979590f270b/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/NixOS/nixpkgs/%2A"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1769089682,
"narHash": "sha256-9yA/LIuAVQq0lXelrZPjLuLVuZdm03p8tfmHhnDIkms=",
"rev": "078d69f03934859a181e81ba987c2bb033eebfc5",
"revCount": 906333,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2511.906333%2Brev-078d69f03934859a181e81ba987c2bb033eebfc5/019bebf2-031c-7119-8fdc-ce9d29d005fa/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/NixOS/nixpkgs/%2A"
}
},
"root": { "root": {
"inputs": { "inputs": {
"aagl": "aagl",
"darwin": "darwin", "darwin": "darwin",
"ghostty": "ghostty", "home-manager": "home-manager",
"home-manager": "home-manager_2",
"nix-flatpak": "nix-flatpak", "nix-flatpak": "nix-flatpak",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_2",
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay_2",
"swaytreesave": "swaytreesave",
"vintage-story": "vintage-story"
} }
}, },
"rust-overlay": { "rust-overlay": {
"inputs": {
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1770952264,
"narHash": "sha256-CjymNrJZWBtpavyuTkfPVPaZkwzIzGaf0E/3WgcwM14=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "ec6a3d5cdf14bb5a1dd03652bd3f6351004d2188",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"rust-overlay_2": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_3"
}, },
"locked": { "locked": {
"lastModified": 1769915446, "lastModified": 1771211437,
"narHash": "sha256-f1F/umtX3ZD7fF9DHSloVHc0mnAT0ry0YK2jI/6E0aI=", "narHash": "sha256-lcNK438i4DGtyA+bPXXyVLHVmJjYpVKmpux9WASa3ro=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "bc00300f010275e46feb3c3974df6587ff7b7808", "rev": "c62195b3d6e1bb11e0c2fb2a494117d3b55d410f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -209,70 +248,42 @@
"type": "github" "type": "github"
} }
}, },
"systems": { "swaytreesave": {
"inputs": {
"flake-schemas": "flake-schemas",
"nixpkgs": "nixpkgs_4"
},
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1767148467,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-W0O7SWq8ucokt4ctEAEvRvNoSM/oF7fBfb2kTN+lwTs=",
"owner": "nix-systems", "ref": "refs/heads/master",
"repo": "default", "rev": "0f4bb9bb450b28aa4f29d5eb2062deac6c26687a",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "revCount": 4,
"type": "github" "type": "git",
"url": "https://scm.wyattjmiller.com/wymiller/swaytreesave-nix.git"
}, },
"original": { "original": {
"owner": "nix-systems", "type": "git",
"repo": "default", "url": "https://scm.wyattjmiller.com/wymiller/swaytreesave-nix.git"
"type": "github"
} }
}, },
"zig": { "vintage-story": {
"inputs": { "inputs": {
"flake-compat": [ "flake-schemas": "flake-schemas_2",
"ghostty", "nixpkgs": "nixpkgs_5"
"flake-compat"
],
"flake-utils": [
"ghostty",
"flake-utils"
],
"nixpkgs": [
"ghostty",
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1763295135, "lastModified": 1769397199,
"narHash": "sha256-sGv/NHCmEnJivguGwB5w8LRmVqr1P72OjS+NzcJsssE=", "narHash": "sha256-MSajncUGZtlpl88rqFdj42eGGyWnk2jw84VbK3AgUBA=",
"owner": "mitchellh", "ref": "refs/heads/master",
"repo": "zig-overlay", "rev": "4d2313c50933645040a0d12556016fc2916bfa65",
"rev": "64f8b42cfc615b2cf99144adf2b7728c7847c72a", "revCount": 1,
"type": "github" "type": "git",
"url": "https://scm.wyattjmiller.com/wymiller/vintage-story-nix.git"
}, },
"original": { "original": {
"owner": "mitchellh", "type": "git",
"repo": "zig-overlay", "url": "https://scm.wyattjmiller.com/wymiller/vintage-story-nix.git"
"type": "github"
}
},
"zon2nix": {
"inputs": {
"nixpkgs": [
"ghostty",
"nixpkgs"
]
},
"locked": {
"lastModified": 1768231828,
"narHash": "sha256-wL/8Iij4T2OLkhHcc4NieOjf7YeJffaUYbCiCqKv/+0=",
"owner": "jcollie",
"repo": "zon2nix",
"rev": "c28e93f3ba133d4c1b1d65224e2eebede61fd071",
"type": "github"
},
"original": {
"owner": "jcollie",
"repo": "zon2nix",
"rev": "c28e93f3ba133d4c1b1d65224e2eebede61fd071",
"type": "github"
} }
} }
}, },

View File

@@ -11,8 +11,15 @@
url = "github:lnl7/nix-darwin/nix-darwin-25.11"; url = "github:lnl7/nix-darwin/nix-darwin-25.11";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
ghostty.url = "github:ghostty-org/ghostty";
rust-overlay.url = "github:oxalica/rust-overlay"; rust-overlay.url = "github:oxalica/rust-overlay";
aagl = {
url = "github:ezKEa/aagl-gtk-on-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
# My personal flakes
swaytreesave.url = "git+https://scm.wyattjmiller.com/wymiller/swaytreesave-nix.git";
vintage-story.url = "git+https://scm.wyattjmiller.com/wymiller/vintage-story-nix.git";
}; };
outputs = inputs @ { outputs = inputs @ {
@@ -22,17 +29,21 @@
darwin, darwin,
home-manager, home-manager,
rust-overlay, rust-overlay,
aagl,
swaytreesave,
vintage-story,
... ...
}: let }: let
userName = "wyatt"; userName = "wyatt";
userEmail = "wyatt@wyattjmiller.com"; userEmail = "wyatt@wyattjmiller.com";
extraSpecialArgs = { extraSpecialArgs = {
inherit userName userEmail; inherit userName userEmail swaytreesave;
}; };
myOverlays = { ... }: { myOverlays = { ... }: {
nixpkgs.overlays = [ nixpkgs.overlays = [
rust-overlay.overlays.default rust-overlay.overlays.default
aagl.overlays.default
self.common.overlays self.common.overlays
]; ];
}; };
@@ -72,7 +83,7 @@
nixosConfigurations."cloud" = nixpkgs.lib.nixosSystem { nixosConfigurations."cloud" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
specialArgs = { specialArgs = {
inherit userName userEmail; inherit userName userEmail aagl vintage-story;
hostname = "cloud"; hostname = "cloud";
role = "workstation"; role = "workstation";
}; };
@@ -151,6 +162,31 @@
# ]; # ];
}; };
nixosConfigurations."thancred" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit userName userEmail vintage-story;
hostname = "thancred";
role = "server";
};
modules = [
myOverlays
./modules/common
./modules/machine/thancred
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = extraSpecialArgs // { isNixOS = true; role = "server"; };
home-manager.backupFileExtension = "bak";
home-manager.users.${userName}.imports = [
./home
];
}
];
};
# generic non-NixOS Linux machine # generic non-NixOS Linux machine
homeConfigurations."generic" = let homeConfigurations."generic" = let
hostname = builtins.getEnv "HOSTNAME"; hostname = builtins.getEnv "HOSTNAME";

View File

@@ -41,14 +41,37 @@
id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; id = "cjpalhdlnbpafiamejdnhcphjbkeiagm";
sha256 = "sha256:0pdh1v0vx1d5vnl1zh7nbk6j1fh4k4hhwp1ljs203icn306lahsn"; sha256 = "sha256:0pdh1v0vx1d5vnl1zh7nbk6j1fh4k4hhwp1ljs203icn306lahsn";
# sha256 = lib.fakeSha256; # sha256 = lib.fakeSha256;
version = "1.64.0"; version = "1.67.0";
}) })
(createChromiumExtension { (createChromiumExtension {
# bitwarden # bitwarden
id = "nngceckbapebfimnlniiiahkandclblb"; id = "nngceckbapebfimnlniiiahkandclblb";
sha256 = "sha256:0jxk3cqmgd5qj8hnw7s0k5s4bfrcmr0w0rckp3x0bmng07azw4gi"; sha256 = "sha256:0jxk3cqmgd5qj8hnw7s0k5s4bfrcmr0w0rckp3x0bmng07azw4gi";
# sha256 = lib.fakeSha256; version = "2025.10.0";
version = "2025.5.0"; })
(createChromiumExtension {
# react dev tools
id = "fmkadmapgofadopljbjfkapdkoienihi";
sha256 = "sha256:01vy0x7hdkj4g3m2l4kw5rwldhhpkcxmd2miy5rj2dzxdnbchw2z";
version = "7.0.1";
})
(createChromiumExtension {
# wappalyzer
id = "gppongmhjkpfnbhagpmjfkannfbllamg";
sha256 = "sha256:1mi1wpm714r8yp0zh0yg6kccnld36rj4xb8j4y0c18y9176vc6wx";
version = "6.10.86";
})
(createChromiumExtension {
# obsidian web clipper
id = "cnjifjpddelmedmihgijeibhnjfabmlf";
sha256 = "sha256:0bp6g63g9hk2xbq054lpf5hzwmn73jzh3hswyjfp9r7yqj83mzgy";
version = "0.12.0";
})
(createChromiumExtension {
# dark reader
id = "eimadpbcbfnmbkopoojfekhnkhdbieeh";
sha256 = "sha256:06a9dz589i1da519kivzp7bljksl2xxsd151y7ww0hx28jd1694b";
version = "4.9.113";
}) })
]; ];
}; };

View File

@@ -1,11 +1,12 @@
{ lib { lib
, pkgs , pkgs
, userName , userName
, swaytreesave
, isNixOS ? true , isNixOS ? true
, ... , ...
}: }: let
let # Have a file sturcture that holds all the configuration files that can't be configured by Nix
# TODO: Have a file structure that holds all the configuration files that can't be configured by Nix (or I haven't found the time to do so) # or maybe I'm too lazy to do anything about it? I dunno
dirs = { dirs = {
defaults = ../defaults; defaults = ../defaults;
}; };

View File

@@ -1,4 +1,8 @@
{dirs, ...}: { {...}: let
dirs = {
defaults = ../defaults;
};
in {
programs.neovim = { programs.neovim = {
enable = true; enable = true;
defaultEditor = true; defaultEditor = true;

Binary file not shown.

View File

@@ -31,7 +31,6 @@
fzf fzf
aria2 aria2
gnupg gnupg
inetutils
# misc # misc
file file

View File

@@ -3,14 +3,5 @@ lib.mkIf pkgs.stdenv.isLinux {
home.packages = with pkgs; [ home.packages = with pkgs; [
imv imv
xdg-utils xdg-utils
] ++ lib.optionals isNixOS [
betterdiscordctl
vesktop
xfce.thunar
pavucontrol
godot
aseprite
gpu-screen-recorder
gpu-screen-recorder-gtk
]; ];
} }

View File

@@ -1,6 +1,7 @@
{ {
lib, lib,
pkgs, pkgs,
swaytreesave,
... ...
}: let }: let
dirs = { dirs = {
@@ -15,6 +16,12 @@
hash = "sha256-ZDFbI69ECsUTjbhlw2kHRufZbQMu+FQSMmncCJ5pagg="; hash = "sha256-ZDFbI69ECsUTjbhlw2kHRufZbQMu+FQSMmncCJ5pagg=";
}; };
in { in {
imports = [
swaytreesave.homeManagerModules.default
];
programs.swaytreesave.enable = if pkgs.stdenv.isLinux then true else false;
wayland.windowManager.sway = { wayland.windowManager.sway = {
enable = pkgs.stdenv.isLinux; enable = pkgs.stdenv.isLinux;
extraOptions = []; # Extra arguments to pass into sway. If sway goes haywire, we might need something in here extraOptions = []; # Extra arguments to pass into sway. If sway goes haywire, we might need something in here
@@ -148,4 +155,5 @@ in {
enable = pkgs.stdenv.isLinux; enable = pkgs.stdenv.isLinux;
systemd.enable = true; systemd.enable = true;
}; };
} }

View File

@@ -2,10 +2,16 @@
config, config,
lib, lib,
pkgs, pkgs,
aagl,
vintage-story,
... ...
}: let }: let
cfg = config.gaming; cfg = config.gaming;
in { in {
imports = [
aagl.nixosModules.default
];
options.gaming = { options.gaming = {
steam = { steam = {
enable = lib.mkEnableOption "Steam gaming platform"; enable = lib.mkEnableOption "Steam gaming platform";
@@ -62,6 +68,14 @@ in {
}; };
}; };
vkbasalt = {
enable = lib.mkEnableOption "vkBasalt/ReShade/GShade post processing shaders";
};
mangohud = {
enable = lib.mkEnableOption "OpenGL/Vulkan overlay tool shown in games presenting FPS, CPU/GPU/memory utilization, load, etc.";
};
lutris = { lutris = {
enable = lib.mkEnableOption "Lutris game manager and launcher"; enable = lib.mkEnableOption "Lutris game manager and launcher";
package = lib.mkOption { package = lib.mkOption {
@@ -108,9 +122,38 @@ in {
ffxiv = { ffxiv = {
enable = lib.mkEnableOption "Final Fantasy XIV and it's accompanied (unofficial) launcher"; enable = lib.mkEnableOption "Final Fantasy XIV and it's accompanied (unofficial) launcher";
}; };
# TODO: when aagl gets it's unified launcher all finished/in a stable state, transition to that launcher
aagl = {
anime-game-launcher = {
enable = lib.mkEnableOption "Genshin Impact launcher (legacy)";
}; };
config = { honkers-railway-launcher = {
enable = lib.mkEnableOption "Honkai: Star Rail launcher";
};
honkers-launcher = {
enable = lib.mkEnableOption "Honkai: Impact 3rd launcher";
};
wavey-launcher = {
enable = lib.mkEnableOption "Wuthering Waves launcher";
};
sleepy-launcher = {
enable = lib.mkEnableOption "Zenless Zone Zero (ZZZ) launcher";
};
};
vintage-story = {
enable = lib.mkEnableOption "Vintage Story client and server";
};
};
config = let
agl = cfg.aagl;
in {
programs.steam = lib.mkIf cfg.steam.enable { programs.steam = lib.mkIf cfg.steam.enable {
enable = true; enable = true;
remotePlay.openFirewall = cfg.steam.firewall.remotePlay; remotePlay.openFirewall = cfg.steam.firewall.remotePlay;
@@ -139,6 +182,26 @@ in {
]; ];
}; };
programs.anime-game-launcher = lib.mkIf agl.anime-game-launcher.enable {
enable = true;
};
programs.honkers-railway-launcher = lib.mkIf agl.honkers-railway-launcher.enable {
enable = true;
};
programs.honkers-launcher = lib.mkIf agl.honkers-launcher.enable {
enable = true;
};
programs.wavey-launcher = lib.mkIf agl.wavey-launcher.enable {
enable = true;
};
programs.sleepy-launcher = lib.mkIf agl.sleepy-launcher.enable {
enable = true;
};
environment.systemPackages = environment.systemPackages =
(lib.optionals cfg.lutris.enable ( (lib.optionals cfg.lutris.enable (
[cfg.lutris.package] ++ [cfg.lutris.package] ++
@@ -154,6 +217,20 @@ in {
cfg.lutris.extraPackages cfg.lutris.extraPackages
)) ++ )) ++
(lib.optionals cfg.minecraft.enable [pkgs.prismlauncher]) ++ (lib.optionals cfg.minecraft.enable [pkgs.prismlauncher]) ++
(lib.optionals cfg.ffxiv.enable [pkgs.xivlauncher]); (lib.optionals cfg.ffxiv.enable [pkgs.xivlauncher pkgs.fflogs]) ++
(lib.optionals cfg.vintage-story.enable [vintage-story.packages.${pkgs.system}.default]) ++
(lib.optionals cfg.vkbasalt.enable [pkgs.vkbasalt pkgs.vkbasalt-cli]) ++
(lib.optionals cfg.mangohud.enable [pkgs.mangohud]) ++
(lib.optionals (cfg.vkbasalt.enable || cfg.mangohud.enable) [pkgs.goverlay pkgs.mesa-demos pkgs.vulkan-tools]);
nix.settings = let
inherit agl;
in (lib.mkIf
(agl.anime-game-launcher.enable || agl.honkers-railway-laucher.enable || agl.honkers-launcher.enable || agl.wavey-launcher.enable || agl.sleepy-launcher.enable)
{
substituters = [ "https://ezkea.cachix.org" ];
trusted-public-keys = [ "ezkea.cachix.org-1:ioBmUbJTZIKsHmWWXPe1FSFbeVe+afhfgqgTSNd34eI=" ];
}
);
}; };
} }

View File

@@ -7,3 +7,11 @@ Licensed by the Mozilla Public License v2
## Synopsis ## Synopsis
This is the directory that holds shared configuration files amongst computers that I own. They are called by the root `flake.nix` file. This is the directory that holds shared configuration files amongst computers that I own. They are called by the root `flake.nix` file.
Here's a quick synopsis of each file:
- core: Sane Nix options that I set for myself
- environment: Core packages and environment variables to be set and installed
- fonts: Fonts and icons that are to be installed
- overlays: Customized packages tailored to my needs
- users: Users to be set on my system

View File

@@ -13,7 +13,6 @@
systemd systemd
lshw lshw
dmidecode dmidecode
nix-ld
]) ++ ]) ++
lib.optionals pkgs.stdenv.isDarwin (with pkgs; [ lib.optionals pkgs.stdenv.isDarwin (with pkgs; [
# nothing here, yet ;) # nothing here, yet ;)

View File

@@ -6,10 +6,14 @@
fonts.packages = with pkgs; fonts.packages = with pkgs;
[ [
noto-fonts noto-fonts
noto-fonts-emoji noto-fonts-color-emoji
liberation_ttf liberation_ttf
noto-fonts-cjk-sans noto-fonts-cjk-sans
monaspace monaspace
] ]
++ builtins.filter lib.attrsets.isDerivation (builtins.attrValues pkgs.nerd-fonts); ++ builtins.filter lib.attrsets.isDerivation (builtins.attrValues pkgs.nerd-fonts);
environment.systemPackages = with pkgs; [
adwaita-icon-theme
];
} }

62
modules/common/linker.nix Normal file
View File

@@ -0,0 +1,62 @@
{ pkgs, ... }: {
programs.nix-ld = {
enable = true;
libraries = with pkgs;
[
acl
attr
bzip2
dbus
expat
fontconfig
freetype
fuse3
icu
libnotify
libsodium
libssh
libunwind
libusb1
libuuid
nspr
nss
stdenv.cc.cc
util-linux
zlib
zstd
pipewire
cups
libxkbcommon
pango
mesa
libdrm
libglvnd
libpulseaudio
atk
cairo
alsa-lib
at-spi2-atk
at-spi2-core
gdk-pixbuf
glib
gtk3
libGL
libappindicator-gtk3
vulkan-loader
xorg.libX11
xorg.libXScrnSaver
xorg.libXcomposite
xorg.libXcursor
xorg.libXdamage
xorg.libXext
xorg.libXfixes
xorg.libXi
xorg.libXrandr
xorg.libXrender
xorg.libXtst
xorg.libxcb
xorg.libxkbfile
xorg.libxshmfence
];
};
}

View File

@@ -40,7 +40,6 @@ in {
config = mkIf cfg.enable (mkMerge [ config = mkIf cfg.enable (mkMerge [
{ {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
glxinfo
vulkan-tools vulkan-tools
mesa-demos mesa-demos
]; ];
@@ -62,9 +61,9 @@ in {
(mkIf (cfg.gpuVendor == "amd") { (mkIf (cfg.gpuVendor == "amd") {
services.xserver.videoDrivers = ["amdgpu"]; services.xserver.videoDrivers = ["amdgpu"];
hardware.graphics.extraPackages = with pkgs; [ # hardware.graphics.extraPackages = with pkgs; [
amdvlk # amdvlk
]; # ];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
radeontop radeontop
]; ];

View File

@@ -12,4 +12,4 @@ These are named after Final Fantasy VII characters.
### Servers/Network Infrastructure ### Servers/Network Infrastructure
These are named after Final Fantasy summons. These are named after Final Fantasy summons. There is some infrastructure missing here like my routers and switches that I also name after summons.

View File

@@ -1,8 +1,8 @@
{ {
config,
lib, lib,
pkgs, pkgs,
userName, userName,
aagl,
... ...
}: let }: let
flatpakPackages = [ flatpakPackages = [
@@ -18,7 +18,7 @@
in { in {
imports = [ imports = [
(import ../../apps/flatpak.nix { (import ../../apps/flatpak.nix {
inherit lib pkgs flatpakPackages userName; inherit lib pkgs flatpakPackages userName aagl;
}) })
../../apps/gaming.nix ../../apps/gaming.nix
../../apps/appimage.nix ../../apps/appimage.nix
@@ -89,8 +89,10 @@ in {
localNetworkGameTransfers = true; localNetworkGameTransfers = true;
}; };
}; };
vkbasalt.enable = true;
gamemode.enable = true; gamemode.enable = true;
gamescope.enable = true; gamescope.enable = true;
mangohud.enable = true;
lutris = { lutris = {
enable = true; enable = true;
wine = { wine = {
@@ -100,14 +102,12 @@ in {
compatibility = { compatibility = {
protonSupport = true; protonSupport = true;
}; };
extraPackages = with pkgs; [
gamemode
mangohud
];
}; };
ffxiv.enable = true; ffxiv.enable = true;
minecraft.enable = true; minecraft.enable = true;
aagl.anime-game-launcher.enable = true;
vintage-story.enable = true;
}; };
# Power management (see ../../pwrMgmt/default.nix) # Power management (see ../../pwrMgmt/default.nix)
@@ -151,7 +151,7 @@ in {
}; };
# Add username to groups "wheel" and "video" - more may be added here later # Add username to groups "wheel" and "video" - more may be added here later
users.users.${userName}.extraGroups = ["wheel" "video" "gamemode" "podman" "network"]; users.users.${userName}.extraGroups = ["wheel" "video" "gamemode" "podman" "network" "libvirtd"];
services = { services = {
# Enable OpenSSH # Enable OpenSSH
@@ -191,5 +191,23 @@ in {
}; };
}; };
# sched_ext userspace CPU scheduling stuff - idk
services.scx = {
enable = true;
scheduler = "scx_bpfland";
};
programs.obs-studio = {
enable = true;
plugins = with pkgs.obs-studio-plugins; [
wlrobs
obs-backgroundremoval
obs-pipewire-audio-capture
obs-vaapi #optional AMD hardware acceleration
obs-gstreamer
obs-vkcapture
];
};
system.stateVersion = "24.11"; system.stateVersion = "24.11";
} }

View File

@@ -2,5 +2,6 @@
imports = [ imports = [
./configuration.nix ./configuration.nix
./hardware-configuration.nix ./hardware-configuration.nix
../../common/linker.nix
]; ];
} }

View File

@@ -0,0 +1,83 @@
{
pkgs,
userName,
vintage-story,
...
}: {
imports = [
../../pwrMgmt
../../networking/core.nix
../../virtualization/podman.nix
];
# Enable flakes for NixOS
nix.settings.experimental-features = ["nix-command" "flakes"];
# Custom kernel/boot stuff
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# Set your timezone
time.timeZone = "America/Detroit";
# Enable OpenSSH
services.openssh.enable = true;
# Enable keyring
services.gnome.gnome-keyring.enable = true;
# Enable GnuPG
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
# Enable SUID wrappers (some programs need them)
programs.mtr.enable = true;
# Enable Polkit
security.polkit.enable = true;
# Power management (see ../../pwrMgmt/default.nix)
pwrMgmt = {
enable = true;
cpuFreqGovernor = "performance";
powertop.enable = false;
};
network = {
firewall = {
enable = true;
tcpPorts = {
allowedPorts = [ 42420 ];
};
udpPorts = {
allowedPorts = [ 42420 ];
};
};
networkManager.enable = true;
};
environment.systemPackages = [
vintage-story.packages.${pkgs.system}.default
];
# Podman module (see ../../virtualization/podman.nix)
# podman = {
# enable = true;
# extraPackages = with pkgs; [
# docker-credential-helpers
# toolbox
# cosign
# crane
# podman-tui
# podman-desktop
# ];
# };
# Add username to groups "wheel" and "video" - more may be added here later
users.users.${userName}.extraGroups = ["wheel" "podman" "network"];
system.stateVersion = "24.11";
}

View File

@@ -0,0 +1,6 @@
{ ... }: {
imports = [
./configuration.nix
./hardware-configuration.nix
];
}

View File

@@ -0,0 +1,32 @@
# 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, ... }:
{
imports =
[ (modulesPath + "/profiles/qemu-guest.nix")
];
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "virtio_scsi" "sr_mod" "virtio_blk" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/e2e621c1-0090-472a-99d9-61c6a87bd068";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/663E-15C0";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/60104b1a-4285-4dd1-be5e-3c3dee24515a"; }
];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
}

View File

@@ -1,6 +1,11 @@
{...}: { # TODO: refactor into module
{ pkgs, ...}: {
services.pipewire = { services.pipewire = {
enable = true; enable = true;
pulse.enable = true; pulse.enable = true;
}; };
environment.systemPackages = with pkgs; [
helvum
];
} }

View File

@@ -1,4 +1,10 @@
{...}: { { pkgs, ... }: {
virtualisation.libvirtd.enable = true; virtualisation.libvirtd.enable = true;
programs.virt-manager.enable = true; programs.virt-manager.enable = true;
services.qemuGuest.enable = true;
services.spice-vdagentd.enable = true;
environment.systemPackages = with pkgs; [
qemu
quickemu
];
} }