diff --git a/flake.lock b/flake.lock index cb52454..c5b1b1e 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,27 @@ { "nodes": { + "aagl": { + "inputs": { + "flake-compat": "flake-compat", + "nixpkgs": [ + "nixpkgs" + ], + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1767520119, + "narHash": "sha256-+OmNQLA9Fv5WBaxYHlPghS9XmnYWDaLt+AatCGhG+hc=", + "owner": "ezKEa", + "repo": "aagl-gtk-on-nix", + "rev": "5720d3282844b6b23b26dfac075a5f1f58ea8844", + "type": "github" + }, + "original": { + "owner": "ezKEa", + "repo": "aagl-gtk-on-nix", + "type": "github" + } + }, "darwin": { "inputs": { "nixpkgs": [ @@ -37,6 +59,50 @@ "type": "github" } }, + "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1761588595, + "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-schemas": { + "locked": { + "lastModified": 1761577921, + "narHash": "sha256-eK3/xbUOrxp9fFlei09XNjqcdiHXxndzrTXp7jFpOk8=", + "rev": "47849c7625e223d36766968cc6dc23ba0e135922", + "revCount": 107, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.2.0/019a4a84-544d-7c59-b26d-e334e320c932/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%2A" + } + }, + "flake-schemas_2": { + "locked": { + "lastModified": 1761577921, + "narHash": "sha256-eK3/xbUOrxp9fFlei09XNjqcdiHXxndzrTXp7jFpOk8=", + "rev": "47849c7625e223d36766968cc6dc23ba0e135922", + "revCount": 107, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.2.0/019a4a84-544d-7c59-b26d-e334e320c932/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%2A" + } + }, "flake-utils": { "inputs": { "systems": "systems" @@ -57,10 +123,14 @@ }, "ghostty": { "inputs": { - "flake-compat": "flake-compat", + "flake-compat": "flake-compat_2", "flake-utils": "flake-utils", "home-manager": "home-manager", +<<<<<<< HEAD "nixpkgs": "nixpkgs", +======= + "nixpkgs": "nixpkgs_2", +>>>>>>> origin "zig": "zig", "zon2nix": "zon2nix" }, @@ -138,6 +208,25 @@ }, "nixpkgs": { "locked": { +<<<<<<< HEAD +======= + "lastModified": 1744536153, + "narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { +>>>>>>> origin "lastModified": 1768032153, "narHash": "sha256-zvxtwlM8ZlulmZKyYCQAPpkm5dngSEnnHjmjV7Teloc=", "rev": "3146c6aa9995e7351a398e17470e15305e6e18ff", @@ -149,6 +238,7 @@ "url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz" } }, +<<<<<<< HEAD "nixpkgs_2": { "locked": { "lastModified": 1769900590, @@ -167,6 +257,26 @@ }, "nixpkgs_3": { "locked": { +======= + "nixpkgs_3": { + "locked": { + "lastModified": 1769900590, + "narHash": "sha256-I7Lmgj3owOTBGuauy9FL6qdpeK2umDoe07lM4V+PnyA=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "41e216c0ca66c83b12ab7a98cc326b5db01db646", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-25.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { +>>>>>>> origin "lastModified": 1744536153, "narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=", "owner": "NixOS", @@ -181,18 +291,55 @@ "type": "github" } }, + "nixpkgs_5": { + "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_6": { + "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": { "inputs": { + "aagl": "aagl", "darwin": "darwin", "ghostty": "ghostty", "home-manager": "home-manager_2", "nix-flatpak": "nix-flatpak", +<<<<<<< HEAD "nixpkgs": "nixpkgs_2", "rust-overlay": "rust-overlay" +======= + "nixpkgs": "nixpkgs_3", + "rust-overlay": "rust-overlay_2", + "swaytreesave": "swaytreesave", + "vintage-story": "vintage-story" +>>>>>>> origin } }, "rust-overlay": { "inputs": { +<<<<<<< HEAD "nixpkgs": "nixpkgs_3" }, "locked": { @@ -201,6 +348,34 @@ "owner": "oxalica", "repo": "rust-overlay", "rev": "bc00300f010275e46feb3c3974df6587ff7b7808", +======= + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1764470739, + "narHash": "sha256-sa9f81B1dWO16QtgDTWHX8DQbiHKzHndpaunY5EQtwE=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "3bfa664055e1a09c6aedab5533c5fc8d6ca5741a", +>>>>>>> origin + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "rust-overlay_2": { + "inputs": { + "nixpkgs": "nixpkgs_4" + }, + "locked": { + "lastModified": 1769915446, + "narHash": "sha256-f1F/umtX3ZD7fF9DHSloVHc0mnAT0ry0YK2jI/6E0aI=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "bc00300f010275e46feb3c3974df6587ff7b7808", "type": "github" }, "original": { @@ -209,6 +384,25 @@ "type": "github" } }, + "swaytreesave": { + "inputs": { + "flake-schemas": "flake-schemas", + "nixpkgs": "nixpkgs_5" + }, + "locked": { + "lastModified": 1767148467, + "narHash": "sha256-W0O7SWq8ucokt4ctEAEvRvNoSM/oF7fBfb2kTN+lwTs=", + "ref": "refs/heads/master", + "rev": "0f4bb9bb450b28aa4f29d5eb2062deac6c26687a", + "revCount": 4, + "type": "git", + "url": "https://scm.wyattjmiller.com/wymiller/swaytreesave-nix.git" + }, + "original": { + "type": "git", + "url": "https://scm.wyattjmiller.com/wymiller/swaytreesave-nix.git" + } + }, "systems": { "locked": { "lastModified": 1681028828, @@ -224,6 +418,25 @@ "type": "github" } }, + "vintage-story": { + "inputs": { + "flake-schemas": "flake-schemas_2", + "nixpkgs": "nixpkgs_6" + }, + "locked": { + "lastModified": 1769397199, + "narHash": "sha256-MSajncUGZtlpl88rqFdj42eGGyWnk2jw84VbK3AgUBA=", + "ref": "refs/heads/master", + "rev": "4d2313c50933645040a0d12556016fc2916bfa65", + "revCount": 1, + "type": "git", + "url": "https://scm.wyattjmiller.com/wymiller/vintage-story-nix.git" + }, + "original": { + "type": "git", + "url": "https://scm.wyattjmiller.com/wymiller/vintage-story-nix.git" + } + }, "zig": { "inputs": { "flake-compat": [ diff --git a/flake.nix b/flake.nix index 9ffd512..7790b47 100644 --- a/flake.nix +++ b/flake.nix @@ -13,6 +13,14 @@ }; ghostty.url = "github:ghostty-org/ghostty"; 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 @ { @@ -22,17 +30,25 @@ darwin, home-manager, rust-overlay, + aagl, + swaytreesave, + vintage-story, ... }: let userName = "wyatt"; userEmail = "wyatt@wyattjmiller.com"; extraSpecialArgs = { +<<<<<<< HEAD inherit userName userEmail; +======= + inherit userName userEmail ghostty swaytreesave; +>>>>>>> origin }; myOverlays = { ... }: { nixpkgs.overlays = [ rust-overlay.overlays.default + aagl.overlays.default self.common.overlays ]; }; @@ -72,7 +88,11 @@ nixosConfigurations."cloud" = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { +<<<<<<< HEAD inherit userName userEmail; +======= + inherit userName userEmail ghostty aagl vintage-story; +>>>>>>> origin hostname = "cloud"; role = "workstation"; }; diff --git a/home/browser.nix b/home/browser.nix index 956ead3..ab8f101 100644 --- a/home/browser.nix +++ b/home/browser.nix @@ -41,14 +41,37 @@ id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; sha256 = "sha256:0pdh1v0vx1d5vnl1zh7nbk6j1fh4k4hhwp1ljs203icn306lahsn"; # sha256 = lib.fakeSha256; - version = "1.64.0"; + version = "1.67.0"; }) (createChromiumExtension { # bitwarden id = "nngceckbapebfimnlniiiahkandclblb"; sha256 = "sha256:0jxk3cqmgd5qj8hnw7s0k5s4bfrcmr0w0rckp3x0bmng07azw4gi"; - # sha256 = lib.fakeSha256; - version = "2025.5.0"; + version = "2025.10.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"; }) ]; }; diff --git a/home/default.nix b/home/default.nix index 6176523..22636b3 100644 --- a/home/default.nix +++ b/home/default.nix @@ -1,11 +1,12 @@ { lib , pkgs , userName +, swaytreesave , isNixOS ? true , ... -}: -let - # 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) +}: let + # Have a file sturcture that holds all the configuration files that can't be configured by Nix + # or maybe I'm too lazy to do anything about it? I dunno dirs = { defaults = ../defaults; }; diff --git a/home/neovim.nix b/home/neovim.nix index 0efa653..eebfd50 100644 --- a/home/neovim.nix +++ b/home/neovim.nix @@ -1,4 +1,8 @@ -{dirs, ...}: { +{...}: let + dirs = { + defaults = ../defaults; + }; +in { programs.neovim = { enable = true; defaultEditor = true; diff --git a/home/packages/linux.nix b/home/packages/linux.nix index c56a6c9..602b446 100644 --- a/home/packages/linux.nix +++ b/home/packages/linux.nix @@ -10,6 +10,7 @@ lib.mkIf pkgs.stdenv.isLinux { pavucontrol godot aseprite + zathura gpu-screen-recorder gpu-screen-recorder-gtk ]; diff --git a/home/sway.nix b/home/sway.nix index 8e81b1d..7827aa8 100644 --- a/home/sway.nix +++ b/home/sway.nix @@ -1,6 +1,7 @@ { lib, pkgs, + swaytreesave, ... }: let dirs = { @@ -15,6 +16,12 @@ hash = "sha256-ZDFbI69ECsUTjbhlw2kHRufZbQMu+FQSMmncCJ5pagg="; }; in { + imports = [ + swaytreesave.homeManagerModules.default + ]; + + programs.swaytreesave.enable = if pkgs.stdenv.isLinux then true else false; + wayland.windowManager.sway = { enable = pkgs.stdenv.isLinux; 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; systemd.enable = true; }; + } diff --git a/modules/apps/gaming.nix b/modules/apps/gaming.nix index 534b4e5..e1a2c3f 100644 --- a/modules/apps/gaming.nix +++ b/modules/apps/gaming.nix @@ -1,11 +1,17 @@ -{ +{ config, lib, pkgs, + aagl, + vintage-story, ... }: let cfg = config.gaming; in { + imports = [ + aagl.nixosModules.default + ]; + options.gaming = { steam = { 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 = { enable = lib.mkEnableOption "Lutris game manager and launcher"; package = lib.mkOption { @@ -108,9 +122,38 @@ in { ffxiv = { 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)"; + }; + + 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 = { + config = let + agl = cfg.aagl; + in { programs.steam = lib.mkIf cfg.steam.enable { enable = true; 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 = (lib.optionals cfg.lutris.enable ( [cfg.lutris.package] ++ @@ -154,6 +217,20 @@ in { cfg.lutris.extraPackages )) ++ (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=" ]; + } + ); }; } diff --git a/modules/common/README.md b/modules/common/README.md index 42bc1c6..d72723a 100644 --- a/modules/common/README.md +++ b/modules/common/README.md @@ -7,3 +7,11 @@ Licensed by the Mozilla Public License v2 ## Synopsis 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 diff --git a/modules/common/environment.nix b/modules/common/environment.nix index 2c7c8b9..e72b0c3 100644 --- a/modules/common/environment.nix +++ b/modules/common/environment.nix @@ -13,7 +13,6 @@ systemd lshw dmidecode - nix-ld ]) ++ lib.optionals pkgs.stdenv.isDarwin (with pkgs; [ # nothing here, yet ;) diff --git a/modules/common/fonts.nix b/modules/common/fonts.nix index 965ba13..3e2f7b5 100644 --- a/modules/common/fonts.nix +++ b/modules/common/fonts.nix @@ -6,10 +6,14 @@ fonts.packages = with pkgs; [ noto-fonts - noto-fonts-emoji + noto-fonts-color-emoji liberation_ttf noto-fonts-cjk-sans monaspace ] ++ builtins.filter lib.attrsets.isDerivation (builtins.attrValues pkgs.nerd-fonts); + + environment.systemPackages = with pkgs; [ + adwaita-icon-theme + ]; } diff --git a/modules/common/linker.nix b/modules/common/linker.nix new file mode 100644 index 0000000..c5cf36b --- /dev/null +++ b/modules/common/linker.nix @@ -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 + ]; + }; +} diff --git a/modules/graphics/default.nix b/modules/graphics/default.nix index 1fa0335..47fc13f 100644 --- a/modules/graphics/default.nix +++ b/modules/graphics/default.nix @@ -40,7 +40,6 @@ in { config = mkIf cfg.enable (mkMerge [ { environment.systemPackages = with pkgs; [ - glxinfo vulkan-tools mesa-demos ]; @@ -62,9 +61,9 @@ in { (mkIf (cfg.gpuVendor == "amd") { services.xserver.videoDrivers = ["amdgpu"]; - hardware.graphics.extraPackages = with pkgs; [ - amdvlk - ]; + # hardware.graphics.extraPackages = with pkgs; [ + # amdvlk + # ]; environment.systemPackages = with pkgs; [ radeontop ]; diff --git a/modules/machine/README.md b/modules/machine/README.md index 66b8967..216232e 100644 --- a/modules/machine/README.md +++ b/modules/machine/README.md @@ -12,4 +12,4 @@ These are named after Final Fantasy VII characters. ### 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. diff --git a/modules/machine/cloud/configuration.nix b/modules/machine/cloud/configuration.nix index b76bbcc..4e296b9 100644 --- a/modules/machine/cloud/configuration.nix +++ b/modules/machine/cloud/configuration.nix @@ -1,8 +1,8 @@ { - config, lib, pkgs, userName, + aagl, ... }: let flatpakPackages = [ @@ -18,7 +18,7 @@ in { imports = [ (import ../../apps/flatpak.nix { - inherit lib pkgs flatpakPackages userName; + inherit lib pkgs flatpakPackages userName aagl; }) ../../apps/gaming.nix ../../apps/appimage.nix @@ -89,8 +89,10 @@ in { localNetworkGameTransfers = true; }; }; + vkbasalt.enable = true; gamemode.enable = true; gamescope.enable = true; + mangohud.enable = true; lutris = { enable = true; wine = { @@ -100,14 +102,12 @@ in { compatibility = { protonSupport = true; }; - extraPackages = with pkgs; [ - gamemode - mangohud - ]; }; ffxiv.enable = true; minecraft.enable = true; + aagl.anime-game-launcher.enable = true; + vintage-story.enable = true; }; # Power management (see ../../pwrMgmt/default.nix) @@ -151,7 +151,7 @@ in { }; # 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 = { # 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"; } diff --git a/modules/machine/cloud/default.nix b/modules/machine/cloud/default.nix index 187a110..90be192 100644 --- a/modules/machine/cloud/default.nix +++ b/modules/machine/cloud/default.nix @@ -2,5 +2,6 @@ imports = [ ./configuration.nix ./hardware-configuration.nix + ../../common/linker.nix ]; } diff --git a/modules/sound/pipewire.nix b/modules/sound/pipewire.nix index 56e3063..c08c5b3 100644 --- a/modules/sound/pipewire.nix +++ b/modules/sound/pipewire.nix @@ -1,6 +1,11 @@ -{...}: { +# TODO: refactor into module +{ pkgs, ...}: { services.pipewire = { enable = true; pulse.enable = true; }; + + environment.systemPackages = with pkgs; [ + helvum + ]; } diff --git a/modules/virtualization/hardware.nix b/modules/virtualization/hardware.nix index 37f8b42..92e1ba4 100644 --- a/modules/virtualization/hardware.nix +++ b/modules/virtualization/hardware.nix @@ -1,4 +1,10 @@ -{...}: { +{ pkgs, ... }: { virtualisation.libvirtd.enable = true; programs.virt-manager.enable = true; + services.qemuGuest.enable = true; + services.spice-vdagentd.enable = true; + environment.systemPackages = with pkgs; [ + qemu + quickemu + ]; }