feat: various things, particularly vr

This commit is contained in:
Kat Inskip 2025-11-11 22:28:30 -08:00
parent e9b291078d
commit 7e70c182e5
Signed by: kat
GPG key ID: 465E64DECEA8CF0F
24 changed files with 337 additions and 65 deletions

173
flake.lock generated
View file

@ -546,12 +546,66 @@
"type": "github" "type": "github"
} }
}, },
"git-hooks": { "fzfdapter": {
"inputs": { "inputs": {
"flake-compat": [ "flake-compat": [
"flake-compat" "flake-compat"
], ],
"flake-utils": [
"flake-utils"
],
"git-hooks": "git-hooks",
"nixpkgs": [
"nixpkgs"
],
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1761767036,
"narHash": "sha256-XUUOPtlDEhWIF02Dg4XCg1S8IUy1dUmskyJIzTfzahM=",
"owner": "kittywitch",
"repo": "fzfdapter",
"rev": "17aab3c2d7f4c8ab3a858859873d3eca5cecb981",
"type": "github"
},
"original": {
"owner": "kittywitch",
"repo": "fzfdapter",
"type": "github"
}
},
"git-hooks": {
"inputs": {
"flake-compat": [
"fzfdapter",
"flake-compat"
],
"gitignore": "gitignore", "gitignore": "gitignore",
"nixpkgs": [
"fzfdapter",
"nixpkgs"
]
},
"locked": {
"lastModified": 1760663237,
"narHash": "sha256-BflA6U4AM1bzuRMR8QqzPXqh8sWVCNDzOdsxXEguJIc=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "ca5b894d3e3e151ffc1db040b6ce4dcc75d31c37",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"git-hooks_2": {
"inputs": {
"flake-compat": [
"flake-compat"
],
"gitignore": "gitignore_2",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ]
@ -573,6 +627,7 @@
"gitignore": { "gitignore": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"fzfdapter",
"git-hooks", "git-hooks",
"nixpkgs" "nixpkgs"
] ]
@ -592,6 +647,27 @@
} }
}, },
"gitignore_2": { "gitignore_2": {
"inputs": {
"nixpkgs": [
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"gitignore_3": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"lanzaboote", "lanzaboote",
@ -853,11 +929,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1760272637, "lastModified": 1762128458,
"narHash": "sha256-NYHwgjCNOsAOJUj0QlKALca6gEo5Y926MYDwv4RviNo=", "narHash": "sha256-3HzJXCdXVNP+FxIeXRYit/fkNoDw7h2P47898Szokto=",
"owner": "kittywitch", "owner": "kittywitch",
"repo": "mewtris", "repo": "mewtris",
"rev": "76c605f892f9f170da36834e53a2272f7a2788e8", "rev": "22e623f0a1689e98f0d3217c23c22b59aabf6bf1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1361,6 +1437,22 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_5": {
"locked": {
"lastModified": 1762482733,
"narHash": "sha256-g/da4FzvckvbiZT075Sb1/YDNDr+tGQgh4N8i5ceYMg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e1ebeec86b771e9d387dd02d82ffdc77ac753abc",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"noctalia": { "noctalia": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -1447,11 +1539,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1759921619, "lastModified": 1762200885,
"narHash": "sha256-pPV5sLXlEAGwyyj51B5RCXhySYvKocf79I+ug1dKPXI=", "narHash": "sha256-IPrbvJWU+Gwgg6RBFHW1pgBTZi2uDzgBvEZm3phAId0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "7100dfe6826fffc198a21b96244fa24bedd8ad97", "rev": "0fbd67c5f81aa452afad41ed95f0e6d161f339cc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1466,7 +1558,7 @@
"lanzaboote", "lanzaboote",
"flake-compat" "flake-compat"
], ],
"gitignore": "gitignore_2", "gitignore": "gitignore_3",
"nixpkgs": [ "nixpkgs": [
"lanzaboote", "lanzaboote",
"nixpkgs" "nixpkgs"
@ -1552,7 +1644,8 @@
"flake-utils": "flake-utils_2", "flake-utils": "flake-utils_2",
"flake-utils-plus": "flake-utils-plus", "flake-utils-plus": "flake-utils-plus",
"flakelib": "flakelib", "flakelib": "flakelib",
"git-hooks": "git-hooks", "fzfdapter": "fzfdapter",
"git-hooks": "git-hooks_2",
"home-manager": "home-manager", "home-manager": "home-manager",
"ida-pro-overlay": "ida-pro-overlay", "ida-pro-overlay": "ida-pro-overlay",
"infrastructure": "infrastructure", "infrastructure": "infrastructure",
@ -1583,6 +1676,8 @@
"rbw-bitw": "rbw-bitw", "rbw-bitw": "rbw-bitw",
"rust": "rust", "rust": "rust",
"rust-overlay": "rust-overlay", "rust-overlay": "rust-overlay",
"slimevr-wrangler": "slimevr-wrangler",
"slimevr-wrangler-src": "slimevr-wrangler-src",
"snowfall-lib": "snowfall-lib", "snowfall-lib": "snowfall-lib",
"solaar": "solaar", "solaar": "solaar",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
@ -1591,7 +1686,7 @@
"stylix": "stylix", "stylix": "stylix",
"systems": "systems_3", "systems": "systems_3",
"tree": "tree", "tree": "tree",
"treefmt-nix": "treefmt-nix", "treefmt-nix": "treefmt-nix_2",
"ucodenix": "ucodenix", "ucodenix": "ucodenix",
"wezterm": "wezterm" "wezterm": "wezterm"
} }
@ -1653,6 +1748,43 @@
"type": "github" "type": "github"
} }
}, },
"slimevr-wrangler": {
"inputs": {
"nixpkgs": "nixpkgs_5",
"slimevr-wrangler-src": [
"slimevr-wrangler-src"
]
},
"locked": {
"lastModified": 1762856885,
"narHash": "sha256-mY6JvpcNdcY9QveTQQX4WeEWWRXTd07RA/N8MntNPqA=",
"owner": "kittywitch",
"repo": "slimevr-wrangler-flake",
"rev": "b9a45731a1039f59c38ee88b096001ab1b99f2dc",
"type": "github"
},
"original": {
"owner": "kittywitch",
"repo": "slimevr-wrangler-flake",
"type": "github"
}
},
"slimevr-wrangler-src": {
"flake": false,
"locked": {
"lastModified": 1739406050,
"narHash": "sha256-WAawquYowpv5kWYI295vy3mQX/45aVC0ntqnsmr8CTw=",
"owner": "kittywitch",
"repo": "slimevr-wrangler",
"rev": "208f90768505c1c9e7bb670df27568df7a251e54",
"type": "github"
},
"original": {
"owner": "kittywitch",
"repo": "slimevr-wrangler",
"type": "github"
}
},
"snowfall-lib": { "snowfall-lib": {
"inputs": { "inputs": {
"flake-compat": [ "flake-compat": [
@ -2011,6 +2143,27 @@
} }
}, },
"treefmt-nix": { "treefmt-nix": {
"inputs": {
"nixpkgs": [
"fzfdapter",
"nixpkgs"
]
},
"locked": {
"lastModified": 1761311587,
"narHash": "sha256-Msq86cR5SjozQGCnC6H8C+0cD4rnx91BPltZ9KK613Y=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "2eddae033e4e74bf581c2d1dfa101f9033dbd2dc",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"treefmt-nix_2": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"

View file

@ -81,7 +81,7 @@
empty.url = "github:input-output-hk/empty-flake"; empty.url = "github:input-output-hk/empty-flake";
# self-explanatory # self-explanatory
nixpkgs = { nixpkgs = {
follows = "chaotic/nixpkgs"; follows = "chaotic/nixpkgs"; # TODO: replace follows
#url = "github:nixos/nixpkgs/nixos-unstable"; #url = "github:nixos/nixpkgs/nixos-unstable";
#inputs.nixpkgs.follows = "chaotic/nixpkgs"; #inputs.nixpkgs.follows = "chaotic/nixpkgs";
}; };
@ -267,6 +267,14 @@
flake-compat.follows = "flake-compat"; flake-compat.follows = "flake-compat";
}; };
}; };
fzfdapter = {
url = "github:kittywitch/fzfdapter";
inputs = {
nixpkgs.follows = "nixpkgs";
flake-utils.follows = "flake-utils";
flake-compat.follows = "flake-compat";
};
};
# file structure -> attrset # file structure -> attrset
tree = { tree = {
url = "github:kittywitch/tree"; url = "github:kittywitch/tree";
@ -345,6 +353,17 @@
flake-parts.follows = "flake-parts"; flake-parts.follows = "flake-parts";
}; };
}; };
slimevr-wrangler-src = {
url = "github:kittywitch/slimevr-wrangler";
flake = false;
};
slimevr-wrangler = {
url = "github:kittywitch/slimevr-wrangler-flake";
inputs = {
#nixpkgs.follows = "nixpkgs";
slimevr-wrangler-src.follows = "slimevr-wrangler-src";
};
};
}; };
outputs = inputs: import ./outputs.nix {inherit inputs;}; outputs = inputs: import ./outputs.nix {inherit inputs;};
} }

View file

@ -37,8 +37,8 @@ in {
"Mod+Return".action = sh ''${getExe config.programs.alacritty.package}''; "Mod+Return".action = sh ''${getExe config.programs.alacritty.package}'';
"Mod+T".action.toggle-window-floating = {}; "Mod+T".action.toggle-window-floating = {};
#"Mod+D".action = sh ''${getExe config.programs.fuzzel.package} -D no -T "${getExe config.programs.alacritty.package} --command"''; #"Mod+D".action = sh ''${getExe config.programs.fuzzel.package} -D no -T "${getExe config.programs.alacritty.package} --command"'';
"Mod+D".action = sh ''${noctalia} launcher toggle''; #"Mod+D".action = sh ''${noctalia} launcher toggle'';
"Mod+Shift+D".action = sh ''${noctalia} launcher clipboard''; #"Mod+Shift+D".action = sh ''${noctalia} launcher clipboard'';
#"Mod+Escape".action = sh ''${getExe config.programs.wlogout.package} -p layer-shell''; #"Mod+Escape".action = sh ''${getExe config.programs.wlogout.package} -p layer-shell'';
"Mod+Escape".action = sh ''${noctalia} controlCenter toggle''; "Mod+Escape".action = sh ''${noctalia} controlCenter toggle'';
"Mod+Shift+Escape".action = sh ''${noctalia} sessionMenu toggle''; "Mod+Shift+Escape".action = sh ''${noctalia} sessionMenu toggle'';

View file

@ -0,0 +1,50 @@
{
config,
lib,
pkgs,
inputs,
...
}: let
inherit (lib.meta) getExe getExe';
inherit (inputs.fzfdapter.packages.${pkgs.system}) fzfdapter;
terminal_exec = args: "${getExe pkgs.alacritty}${
if args != ""
then " ${args} "
else " "
}-e";
in {
home.packages = [
fzfdapter
pkgs.skim
];
xdg.configFile."fzfdapter/config.toml".source = (pkgs.formats.toml {}).generate "fzfdapter-config" {
terminal_exec = terminal_exec "";
fuzzy_exec = "${getExe' pkgs.skim "sk"} --layout=reverse-list";
};
# TODO: `niri msg focused-output` to handle resolution(s)
programs.niri.settings = let
sh = config.lib.niri.actions.spawn "sh" "-c";
in {
binds = {
"Mod+D".action = sh "${terminal_exec "-T fzfdapter --option 'font.size=18' --class fzfdapter"} ${getExe fzfdapter} --mode all";
};
window-rules = [
{
matches = [
{
app-id = "^fzfdapter$";
title = "fzfdapter";
}
];
max-height = 1000;
max-width = 750;
min-height = 1000;
min-width = 750;
open-focused = true;
open-floating = true;
}
];
};
}

View file

@ -196,8 +196,8 @@ in {
preferredPlayer = ""; preferredPlayer = "";
}; };
ui = { ui = {
fontDefault = "CozetteCrossedSevenVector"; fontDefault = "Atkinson Hyperlegible Next";
fontFixed = "CozetteCrossedSevenVector"; fontFixed = "Atkinson Hyperlegible Mono";
fontDefaultScale = 1; fontDefaultScale = 1;
fontFixedScale = 1; fontFixedScale = 1;
monitorsScaling = [ monitorsScaling = [

View file

@ -25,16 +25,16 @@
polarity = "dark"; polarity = "dark";
fonts = { fonts = {
sansSerif = { sansSerif = {
name = "CozetteCrossedSevenVector"; name = "Atkinson Hyperlegible Next";
package = pkgs.cozette; package = pkgs.atkinson-hyperlegible-next;
}; };
serif = { serif = {
name = "Libre Baskerville"; name = "Libre Baskerville";
package = pkgs.libre-baskerville; package = pkgs.libre-baskerville;
}; };
monospace = { monospace = {
name = "CozetteCrossedSevenVector"; name = "Atkinson Hyperlegible Mono";
package = pkgs.cozette; package = pkgs.atkinson-hyperlegible-mono;
}; };
}; };
autoEnable = true; autoEnable = true;

View file

@ -39,7 +39,6 @@
clearurls clearurls
df-youtube df-youtube
old-reddit-redirect old-reddit-redirect
privacy-badger
reddit-enhancement-suite reddit-enhancement-suite
refined-github refined-github
stylus stylus

View file

@ -41,6 +41,6 @@ in {
}; };
home.packages = with pkgs; [ home.packages = with pkgs; [
yt-dlp # Watch videos from multiple sources without having to use a browser for it yt-dlp # Watch videos from multiple sources without having to use a browser for it
ytcc # Subscriptions manager and RSS feed exporter for YouTube ytcc # Subscriptions manager and RSS feed exporter for YouTube # TODO: Broken: 2025-10-28
]; ];
} }

View file

@ -1,6 +1,8 @@
{pkgs, ...}: { {pkgs, ...}: {
fonts = { fonts = {
packages = with pkgs; [ packages = with pkgs; [
atkinson-hyperlegible-next
atkinson-hyperlegible-mono
twitter-color-emoji twitter-color-emoji
cozette cozette
monaspace monaspace

View file

@ -1,5 +1,6 @@
{pkgs, ...}: { {pkgs, ...}: {
environment.systemPackages = [ environment.systemPackages = [
pkgs.magic-wormhole pkgs.magic-wormhole
pkgs.ntfy-sh
]; ];
} }

View file

@ -1,5 +1,6 @@
ssh-notify: ENC[AES256_GCM,data:Dyuw8cxipVPKOI7/OYiK7OyyrDrIbqp8YxyLfAbY/YJZ8xVOqv1hyrrqhRYWQo+jUi9BRA==,iv:lKUdpiWBvKr5qpo5Z/Ky2SwKk5fDGAysbbDTYrjV+m4=,tag:JwbJXiA/e3qAUsLFLatUxg==,type:str] ssh-notify: ENC[AES256_GCM,data:Dyuw8cxipVPKOI7/OYiK7OyyrDrIbqp8YxyLfAbY/YJZ8xVOqv1hyrrqhRYWQo+jUi9BRA==,iv:lKUdpiWBvKr5qpo5Z/Ky2SwKk5fDGAysbbDTYrjV+m4=,tag:JwbJXiA/e3qAUsLFLatUxg==,type:str]
tailscale-key: ENC[AES256_GCM,data:FK237Or4qtZGon9tevPh4q568+IUSWxfuG8s2ZNLXWgoa76GoyO+qwCmvXiVibRH1Ljo/LXoNQjb2pYV7w==,iv:UZv+EnlRDOWh86sOFh7ZNryPz1r55u+Dbr/dDL/USjo=,tag:B8DJwPXR/50ARbfyfxPtcw==,type:str] tailscale-key: ENC[AES256_GCM,data:FK237Or4qtZGon9tevPh4q568+IUSWxfuG8s2ZNLXWgoa76GoyO+qwCmvXiVibRH1Ljo/LXoNQjb2pYV7w==,iv:UZv+EnlRDOWh86sOFh7ZNryPz1r55u+Dbr/dDL/USjo=,tag:B8DJwPXR/50ARbfyfxPtcw==,type:str]
notify-token: ENC[AES256_GCM,data:Cb6ssSkclOoqlxTvTjbbzqfJHpw6oRGZfq3csIZQoi5bqxRulF6sjFehP+zzJJP7,iv:/pG5UvuFB/eWgulmjbZtEPB2R/HVmTcwr+DuSNmhePk=,tag:8PBAgt0wPX0n539W2JV5EA==,type:str]
sops: sops:
shamir_threshold: 1 shamir_threshold: 1
age: age:
@ -84,8 +85,8 @@ sops:
RGova3pLS2VpRzB2VWhIcnRISlVUS3cKGyKpvwd5wr1melbtgbXAoo2qRYhWoJ8x RGova3pLS2VpRzB2VWhIcnRISlVUS3cKGyKpvwd5wr1melbtgbXAoo2qRYhWoJ8x
ZCn/vismSmoM+OR/JVXpDiSHGfvxWBEnLj41yV82wsT1hSqigXjdUw== ZCn/vismSmoM+OR/JVXpDiSHGfvxWBEnLj41yV82wsT1hSqigXjdUw==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2025-10-13T19:36:20Z" lastmodified: "2025-10-28T11:05:18Z"
mac: ENC[AES256_GCM,data:FZwCV9hd3lZfN9qXzGHPmUcRfpZhaFoZZYECIrMPdqfxQG87THS53rk1Iy0It/+G1S68I5aNR0ednVCEUO/x/T+Is3a5F+RSqIwvH4ndMKmjlFhb4Uh8cp9txJyabnuRexx08OXEC/Dz0ad7VbcmG8KCo56MJm2wbbPaBEgeY04=,iv:i/CCqPJCKOsKBkmAOo/6/zjM82LL7+YDb/v95HpISfE=,tag:hgmnmb4+PIOjSKp1STjgtg==,type:str] mac: ENC[AES256_GCM,data:OGYjjVtNUxiGIwYPc5S6eEhAAEhqZC7oWo0lH+egfpojlpFkaswoj2LhvNoehfUGuedw5hed+B3vXuKT5Cs7m+9cQWCF4wneDDikUB+j+H9L1Nfzpni/b1/xfo0sQN7p48mqRKKz3a79hefGcAbx3ntrBK2Na9aSxzS70bMuKBg=,iv:impbp557hKM5dUPvYTVtaUZ/uy7+p6tNPDewfzc195o=,tag:HfxGX6QSkdr5UMWvcL1N/w==,type:str]
pgp: pgp:
- created_at: "2025-06-27T20:11:08Z" - created_at: "2025-06-27T20:11:08Z"
enc: |- enc: |-

View file

@ -26,16 +26,16 @@
polarity = "dark"; polarity = "dark";
fonts = { fonts = {
sansSerif = { sansSerif = {
name = "CozetteCrossedSevenVector"; name = "Atkinson Hyperlegible Next";
package = pkgs.cozette; package = pkgs.atkinson-hyperlegible-next;
}; };
serif = { serif = {
name = "Libre Baskerville"; name = "Libre Baskerville";
package = pkgs.libre-baskerville; package = pkgs.libre-baskerville;
}; };
monospace = { monospace = {
name = "CozetteCrossedSevenVector"; name = "Atkinson Hyperlegible Mono";
package = pkgs.cozette; package = pkgs.atkinson-hyperlegible-mono;
}; };
}; };
autoEnable = true; autoEnable = true;

View file

@ -1,7 +1,18 @@
{pkgs, ...}: { {
pkgs,
inputs,
...
}: {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
gsettings-desktop-schemas gsettings-desktop-schemas
slimevr
slimevr-server
inputs.slimevr-wrangler.packages.${pkgs.system}.slimevr-wrangler
]; ];
networking.firewall = {
allowedUDPPorts = [6969 8266 35903];
allowedTCPPorts = [21110];
};
programs.adb.enable = true; programs.adb.enable = true;
users.users.kat.extraGroups = ["adbusers"]; users.users.kat.extraGroups = ["adbusers"];
services.udev.extraRules = '' services.udev.extraRules = ''

View file

@ -1,14 +1,15 @@
{pkgs, ...}: { {
pkgs,
inputs,
...
}: {
programs.steam = { programs.steam = {
enable = true; enable = true;
package = pkgs.steam.override {
extraProfile = ''
unset TZ
'';
};
remotePlay.openFirewall = true; remotePlay.openFirewall = true;
platformOptimizations.enable = true; platformOptimizations.enable = true;
extraCompatPackages = [ extraCompatPackages = [
inputs.chaotic.packages.${pkgs.system}.proton-cachyos_x86_64_v3
inputs.chaotic.packages.${pkgs.system}.proton-ge-custom
]; ];
}; };
} }

View file

@ -1,8 +1,27 @@
{pkgs, ...}: { {
pkgs,
lib,
...
}: {
services.wivrn = { services.wivrn = {
enable = true; enable = true;
openFirewall = true; openFirewall = true;
package = pkgs.wivrn.override {cudaSupport = true;}; package = pkgs.wivrn.overrideAttrs (old: rec {
cudaSupport = true;
version = "84e5203be3019278925ac03708567f2982360f8a";
src = pkgs.fetchFromGitHub {
owner = "notpeelz";
repo = "WiVRn";
rev = version;
# This will throw an error when evaluating and give you the correct hash - put that here
hash = "sha256-2s3j6vRtIRf6x+lQPobcuT1vzlCh1lMA54EUiCnxoFI=";
};
cmakeFlags =
old.cmakeFlags
++ [
(lib.cmakeBool "WIVRN_FEATURE_SOLARXR" true)
];
});
defaultRuntime = true; defaultRuntime = true;
config = { config = {
enable = true; enable = true;

View file

@ -27,17 +27,8 @@ in {
]; ];
runnerEnvironments = { runnerEnvironments = {
common = { common = {
# inherit WINEDEBUG;
PROTON_LOG = builtins.toString 1; PROTON_LOG = builtins.toString 1;
WINEDEBUG = concatStringsSep "," [
"+warn"
"+timestamp"
"+pid"
"+tid"
"+seh"
"+debugstr"
#"+module"
"trace:-module"
];
WINEUSERSANDBOX = builtins.toString 1; WINEUSERSANDBOX = builtins.toString 1;
}; };
dxvk = { dxvk = {
@ -85,6 +76,7 @@ in {
protonCommon = { protonCommon = {
runner = "proton"; runner = "proton";
variant = "PROTON_GE"; variant = "PROTON_GE";
enableGamemode = true;
environments = [ environments = [
"common" "common"
"proton" "proton"
@ -169,7 +161,10 @@ in {
gw1 = mkMerge [ gw1 = mkMerge [
protonCommon protonCommon
#wineCommon
rec { rec {
#variant = mkForce "PROTON_CACHYOS";
#variant = mkForce "PROTON_GE";
long_name = "Guild Wars 1"; long_name = "Guild Wars 1";
prefixFolder = gameStorage + "/guild-wars"; prefixFolder = gameStorage + "/guild-wars";
gameFolder = prefixFolder + "/drive_c/Program Files/Guild Wars"; gameFolder = prefixFolder + "/drive_c/Program Files/Guild Wars";
@ -256,6 +251,9 @@ in {
driversi686Linux.mesa driversi686Linux.mesa
]; ];
}; };
programs.gamemode = {
enable = true;
};
programs.gamescope = { programs.gamescope = {
enable = true; enable = true;
package = pkgs.gamescope; package = pkgs.gamescope;
@ -275,6 +273,7 @@ in {
}; };
pfxes = [ pfxes = [
"Games/VNs/drive_c/windows" "Games/VNs/drive_c/windows"
"Games/guild-wars/drive_c/windows"
]; ];
arches = { arches = {
"x32" = "system32"; "x32" = "system32";

View file

@ -7,7 +7,7 @@
waylandFrontend = true; waylandFrontend = true;
addons = with pkgs; [ addons = with pkgs; [
fcitx5-anthy fcitx5-anthy
fcitx5-gtk fcitx5-gtk # TODO: Broken: 2025-10-28
]; ];
}; };
}; };

View file

@ -1,4 +1,16 @@
{pkgs, ...}: { {pkgs, ...}: let
bitrate_int = 48 * 1000;
bitrate = toString bitrate_int;
ll_quant_int = 512;
ll_quant = toString ll_quant_int;
ml_quant_int = 1024;
ml_quant = toString hl_quant_int;
hl_quant_int = 2048;
hl_quant = toString hl_quant_int;
minQuant = "${ll_quant}/${bitrate}";
midQuant = "${ml_quant}/${bitrate}";
maxQuant = "${hl_quant}/${bitrate}";
in {
environment.systemPackages = with pkgs; [pulsemixer pwvucontrol easyeffects]; environment.systemPackages = with pkgs; [pulsemixer pwvucontrol easyeffects];
services = { services = {
@ -12,10 +24,10 @@
extraConfig = { extraConfig = {
pipewire."92-low-latency" = { pipewire."92-low-latency" = {
"context.properties" = { "context.properties" = {
"default.clock.rate" = 48000; "default.clock.rate" = bitrate_int;
"default.clock.quantum" = 256; "default.clock.quantum" = ml_quant_int;
"default.clock.min-quantum" = 256; "default.clock.min-quantum" = ll_quant_int;
"default.clock.max-quantum" = 256; "default.clock.max-quantum" = hl_quant_int;
}; };
}; };
pipewire-pulse = { pipewire-pulse = {
@ -25,7 +37,7 @@
matches = [{"application.process.binary" = "Discord";}]; matches = [{"application.process.binary" = "Discord";}];
actions = { actions = {
update-props = { update-props = {
"pulse.min.quantum" = "1024/48000"; "pulse.min.quantum" = midQuant;
}; };
}; };
} }
@ -39,14 +51,14 @@
} }
]; ];
"pulse.properties" = { "pulse.properties" = {
"pulse.min.req" = "512/48000"; "pulse.min.req" = minQuant;
"pulse.default.req" = "512/48000"; "pulse.default.req" = midQuant;
"pulse.max.req" = "512/48000"; "pulse.max.req" = maxQuant;
"pulse.min.quantum" = "512/48000"; "pulse.min.quantum" = minQuant;
"pulse.max.quantum" = "512/48000"; "pulse.max.quantum" = maxQuant;
}; };
"stream.properties" = { "stream.properties" = {
"node.latency" = "256/48000"; "node.latency" = minQuant;
"resample.quality" = 1; "resample.quality" = 1;
}; };
}; };

View file

@ -1,4 +1,4 @@
{pkgs, ...}: { {pkgs, ...}: {
boot.zfs.package = pkgs.zfs_cachyos; boot.zfs.package = pkgs.zfs_cachyos;
boot.kernelPackages = pkgs.linuxPackages_cachyos-lto; boot.kernelPackages = pkgs.linuxPackages_cachyos;
} }

View file

@ -1,7 +1,7 @@
{pkgs, ...}: { {pkgs, ...}: {
services.scx = { services.scx = {
enable = true; enable = true;
package = pkgs.scx_git.full; package = pkgs.scx.full;
scheduler = "scx_lavd"; scheduler = "scx_bpfland";
}; };
} }

View file

@ -1,5 +1,5 @@
{pkgs, ...}: { {pkgs, ...}: {
environment.systemPackages = with pkgs; [bluez5-experimental]; environment.systemPackages = with pkgs; [bluez5-experimental bluetuith];
services.pipewire.wireplumber.configPackages = [ services.pipewire.wireplumber.configPackages = [
(pkgs.writeTextDir "share/wireplumber/wireplumber.conf.d/10-bluez.conf" '' (pkgs.writeTextDir "share/wireplumber/wireplumber.conf.d/10-bluez.conf" ''
@ -18,6 +18,8 @@
settings = { settings = {
General = { General = {
Enable = "Source,Sink,Media,Socket"; Enable = "Source,Sink,Media,Socket";
Experimental = true;
KernelExperimental = true;
}; };
}; };
}; };

View file

@ -19,7 +19,8 @@
enable = true; enable = true;
packageOverrides = {treefmt = formatting.formatter.${system};}; packageOverrides = {treefmt = formatting.formatter.${system};};
}; };
flake-checker.enable = true; # TODO: remove when cmake 4 changes aren't FUCKED
#flake-checker.enable = true;
ripsecrets.enable = true; ripsecrets.enable = true;
pre-commit-hook-ensure-sops.enable = true; pre-commit-hook-ensure-sops.enable = true;
}; };

View file

@ -10,8 +10,10 @@ in
inherit system overlays; inherit system overlays;
config = { config = {
allowUnfree = true; allowUnfree = true;
android_sdk.accept_license = true;
permittedInsecurePackages = [ permittedInsecurePackages = [
"olm-3.2.16" "olm-3.2.16"
"mbedtls-2.28.10"
]; ];
}; };
}; };

View file

@ -1,3 +1,3 @@
#!/usr/bin/env bash #!/usr/bin/env bash
adb reverse tcp:9757 tcp:9757 adb reverse tcp:9757 tcp:9757
adb shell am start -a android.intent.action.VIEW -d "wivrn+tcp://localhost" org.meumeu.wivrn adb shell am start -a android.intent.action.VIEW -d "wivrn+tcp://localhost" org.meumeu.wivrn.github.testing