refactored

for 26.05
This commit is contained in:
alsaiduq-lab 2026-03-02 03:38:24 -07:00
parent e92d8e6616
commit 075cb86d40
34 changed files with 435 additions and 345 deletions

13
.sops.yaml Normal file
View file

@ -0,0 +1,13 @@
# This example uses YAML anchors which allows reuse of multiple keys
# without having to repeat yourself.
# Also see https://github.com/Mic92/dotfiles/blob/d6114726d859df36ccaa32891c4963ae5717ef7f/nixos/.sops.yaml
# for a more complex example.
keys:
- &nixos age1rqnmhrrauup2wdhwsahq2ewk39ea9mwhuut2hzpmjfsnhdrxndcsajgj6a
- &cobray age195uflh4prg2ysxghpe4h4fvzngc3flheh2yk558fnfrys9c82uvq8xyala
creation_rules:
- path_regex: secrets/.*\.yaml$
key_groups:
- age:
- *nixos
- *cobray

288
flake.lock generated
View file

@ -9,11 +9,11 @@
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay"
}, },
"locked": { "locked": {
"lastModified": 1771092149, "lastModified": 1771538495,
"narHash": "sha256-Jj6qRlvPaiHjuZEVZtYNVfjCu7giTt/bV5i9idnPjKI=", "narHash": "sha256-PlLTkajHZgLpPfjKUEMvMQ99x8Z49bkXFfnZk8AReHk=",
"owner": "alsaiduq-lab", "owner": "alsaiduq-lab",
"repo": "aagl-gtk-on-nix", "repo": "aagl-gtk-on-nix",
"rev": "28101854925bb285bc56b87a31270618ca668307", "rev": "8d4c5041497b3555cee00ef5ef0d544be155a499",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -42,11 +42,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1770895474, "lastModified": 1772292445,
"narHash": "sha256-JBcrq1Y0uw87VZdYsByVbv+GBuT6ECaCNb9txLX9UuU=", "narHash": "sha256-4F1Q7U313TKUDDovCC96m/Za4wZcJ3yqtu4eSrj8lk8=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "aquamarine", "repo": "aquamarine",
"rev": "a494d50d32b5567956b558437ceaa58a380712f7", "rev": "1dbbba659c1cef0b0202ce92cadfe13bae550e8f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -65,11 +65,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1771213702, "lastModified": 1772416445,
"narHash": "sha256-7YPUGEXIA+Q3eiJ2upROkcFKb68j9rb8SPtw47Vkrx0=", "narHash": "sha256-qv9AlJjfmOjuBEP6y5lggRIxAFVZt2OXQ72TNPwzWis=",
"owner": "AvengeMedia", "owner": "AvengeMedia",
"repo": "DankMaterialShell", "repo": "DankMaterialShell",
"rev": "f2a6d2c7dae29971af76df9d80e1877e7d55a0f9", "rev": "7d1519f546c7e2ef976ff38c34df880ab6ff1745",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -85,11 +85,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1769524058, "lastModified": 1772420042,
"narHash": "sha256-zygdD6X1PcVNR2PsyK4ptzrVEiAdbMqLos7utrMDEWE=", "narHash": "sha256-naZz40TUFMa0E0CutvwWsSPhgD5JldyTUDEgP9ADpfU=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "71a3fc97d80881e91710fe721f1158d3b96ae14d", "rev": "5af7af10f14706e4095bd6bc0d9373eb097283c6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -103,11 +103,11 @@
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1770872764, "lastModified": 1771242501,
"narHash": "sha256-n9/S8Y1HY6wr8hYGyq7ySuJB2KdF2kyWho+ofBLfvmA=", "narHash": "sha256-7azh4I/Qxz9e3liYmslBptv/wcCZfs2mjbLueKgz6PE=",
"owner": "Momoyaan", "owner": "Momoyaan",
"repo": "dwproton-flake", "repo": "dwproton-flake",
"rev": "dd410d71c5ea1baa0ffff2686676d20d1f671893", "rev": "4455649c5773abfc22244b36b5c542282dc76112",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -116,25 +116,6 @@
"type": "github" "type": "github"
} }
}, },
"firefly-cursor": {
"inputs": {
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1771119009,
"narHash": "sha256-dWfcwxWfF+q40666co8VUeuqhCBpcEKrtYe/ZdIzJSg=",
"ref": "firefly",
"rev": "804ae4ec793bc59dbf37f52d32db779e747cd18c",
"revCount": 3,
"type": "git",
"url": "ssh://git@github.com/alsaiduq-lab/animated-cursors"
},
"original": {
"ref": "firefly",
"type": "git",
"url": "ssh://git@github.com/alsaiduq-lab/animated-cursors"
}
},
"flake-compat": { "flake-compat": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -184,6 +165,22 @@
} }
}, },
"flake-compat_4": { "flake-compat_4": {
"flake": false,
"locked": {
"lastModified": 1767039857,
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "NixOS",
"repo": "flake-compat",
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_5": {
"locked": { "locked": {
"lastModified": 1733328505, "lastModified": 1733328505,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
@ -251,6 +248,25 @@
"type": "github" "type": "github"
} }
}, },
"furina-cursor": {
"inputs": {
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1771115382,
"narHash": "sha256-LE2Fq4tXMOEZ+zQY6dU0njD7ZeU8Clua9OqfH+0M6hM=",
"ref": "furina",
"rev": "6e60176f3347639331a186b2506c339c2f09c442",
"revCount": 2,
"type": "git",
"url": "ssh://git@github.com/alsaiduq-lab/animated-cursors"
},
"original": {
"ref": "furina",
"type": "git",
"url": "ssh://git@github.com/alsaiduq-lab/animated-cursors"
}
},
"ghostty": { "ghostty": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat_2",
@ -261,11 +277,11 @@
"zon2nix": "zon2nix" "zon2nix": "zon2nix"
}, },
"locked": { "locked": {
"lastModified": 1771211114, "lastModified": 1772416792,
"narHash": "sha256-yEgMiTWtTZadYdyaQVnERCNQwcsj9c66YxgzqZdfc+E=", "narHash": "sha256-kXf8sCiVpAcnJZSj3RMEiewULk8IiYNFGS2qb/pzDnY=",
"owner": "ghostty-org", "owner": "ghostty-org",
"repo": "ghostty", "repo": "ghostty",
"rev": "32e319ec71801e6ee7d957e6713cbdba5afe8b12", "rev": "ca31828c9387e2743f2b41d0405e2ed80590cd7f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -274,6 +290,29 @@
"type": "github" "type": "github"
} }
}, },
"git-hooks": {
"inputs": {
"flake-compat": "flake-compat_4",
"gitignore": "gitignore_2",
"nixpkgs": [
"nix-gaming",
"nixpkgs"
]
},
"locked": {
"lastModified": 1770726378,
"narHash": "sha256-kck+vIbGOaM/dHea7aTBxdFYpeUl/jHOy5W3eyRvVx8=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "5eaaedde414f6eb1aea8b8525c466dc37bba95ae",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": { "gitignore": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -296,17 +335,39 @@
"type": "github" "type": "github"
} }
}, },
"gitignore_2": {
"inputs": {
"nixpkgs": [
"nix-gaming",
"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"
}
},
"grim-hyprland": { "grim-hyprland": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_5", "nixpkgs": "nixpkgs_5",
"systems": "systems_2" "systems": "systems_2"
}, },
"locked": { "locked": {
"lastModified": 1741705247, "lastModified": 1771981415,
"narHash": "sha256-4m2QFT8mY6CM3YSebMJhd/kJWaRxTYOS/nvAs2TaIQs=", "narHash": "sha256-0g6aB72RlQL5tT67iAJ1rXUS1Pj+mojwVHenuUncjWQ=",
"owner": "eriedaberrie", "owner": "eriedaberrie",
"repo": "grim-hyprland", "repo": "grim-hyprland",
"rev": "4a3d6f5b87b01e92c404b9393b79057b85f58c60", "rev": "3032a7d7dac860091a4e7db561b4b83f321a3da3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -343,16 +404,15 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1770260404, "lastModified": 1772380461,
"narHash": "sha256-3iVX1+7YUIt23hBx1WZsUllhbmP2EnXrV8tCRbLxHc8=", "narHash": "sha256-O3ukj3Bb3V0Tiy/4LUfLlBpWypJ9P0JeUgsKl2nmZZY=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "0d782ee42c86b196acff08acfbf41bb7d13eed5b", "rev": "f140aa04d7d14f8a50ab27f3691b5766b17ae961",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "release-25.11",
"repo": "home-manager", "repo": "home-manager",
"type": "github" "type": "github"
} }
@ -432,11 +492,11 @@
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1771177803, "lastModified": 1772402112,
"narHash": "sha256-6I5oJItQ5187J6gELPqLZDRbcjcxfQGnVUu5AcKQ0Gc=", "narHash": "sha256-VJnMww74ShrxwPshDXAFq7lx7Kg/Cf8Qw5PRSze47EE=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "Hyprland", "repo": "Hyprland",
"rev": "6716b8a0e32b1adf68cd158ea38acec73f3fc22e", "rev": "5c370c3333aa6648c014a550c8b64f7f90c3f777",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -548,11 +608,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1767983607, "lastModified": 1771866172,
"narHash": "sha256-8C2co8NYfR4oMOUEsPROOJ9JHrv9/ktbJJ6X1WsTbXc=", "narHash": "sha256-fYFoXhQLrm1rD8vSFKQBOEX4OGCuJdLt1amKfHd5GAw=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprlang", "repo": "hyprlang",
"rev": "d4037379e6057246b408bbcf796cf3e9838af5b2", "rev": "0b219224910e7642eb0ed49f0db5ec3d008e3e41",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -625,11 +685,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1770139857, "lastModified": 1771271487,
"narHash": "sha256-bCqxcXjavgz5KBJ/1CBLqnagMMf9JvU1m9HmYVASKoc=", "narHash": "sha256-41gEiUS0Pyw3L/ge1l8MXn61cK14VAhgWB/JV8s/oNI=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprutils", "repo": "hyprutils",
"rev": "9038eec033843c289b06b83557a381a2648d8fa5", "rev": "340a792e3b3d482c4ae5f66d27a9096bdee6d76d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -679,11 +739,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1770203293, "lastModified": 1771606233,
"narHash": "sha256-PR/KER+yiHabFC/h1Wjb+9fR2Uy0lWM3Qld7jPVaWkk=", "narHash": "sha256-F3PLUqQ/TwgR70U+UeOqJnihJZ2EuunzojYC4g5xHr0=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprwire", "repo": "hyprwire",
"rev": "37bc90eed02b0c8b5a77a0b00867baf3005cfb98", "rev": "06c7f1f8c4194786c8400653c4efc49dc14c0f3a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -714,14 +774,15 @@
"nix-gaming": { "nix-gaming": {
"inputs": { "inputs": {
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"git-hooks": "git-hooks",
"nixpkgs": "nixpkgs_8" "nixpkgs": "nixpkgs_8"
}, },
"locked": { "locked": {
"lastModified": 1771123156, "lastModified": 1772403236,
"narHash": "sha256-Px1IFFTw3zdP8RNram2g41EvUTjIZRDLCgZyXgpBty0=", "narHash": "sha256-CJBJgjqln/3rk2CoWG+kVpv6h3C3REUzqfxxxejjgZI=",
"owner": "fufexan", "owner": "fufexan",
"repo": "nix-gaming", "repo": "nix-gaming",
"rev": "0c4bf3ac4eaf5b693e5d7ae75f3caba8fcf15d8f", "rev": "fc0cdc63784e700c17373df683ba09c90a771d5c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -737,11 +798,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1771130777, "lastModified": 1772341813,
"narHash": "sha256-UIKOwG0D9XVIJfNWg6+gENAvQP+7LO46eO0Jpe+ItJ0=", "narHash": "sha256-/PQ0ubBCMj/MVCWEI/XMStn55a8dIKsvztj4ZVLvUrQ=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-index-database", "repo": "nix-index-database",
"rev": "efec7aaad8d43f8e5194df46a007456093c40f88", "rev": "a2051ff239ce2e8a0148fa7a152903d9a78e854f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -752,11 +813,11 @@
}, },
"nix-monitor": { "nix-monitor": {
"locked": { "locked": {
"lastModified": 1766244099, "lastModified": 1771568669,
"narHash": "sha256-PotQG3LnS8LsOnsHtyS5MFBw0qbRvr3886+3nzxL6R4=", "narHash": "sha256-lTbQ13lQ3ZPNkdnFmxAMGf1Gjx//80lDDlcJR8msREI=",
"owner": "antonjah", "owner": "antonjah",
"repo": "nix-monitor", "repo": "nix-monitor",
"rev": "bd941a0e71b8f7763b45c22281a44ff554f82666", "rev": "ef3db9d5a525ddf41355e8c456b40d56480a6626",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -767,16 +828,16 @@
}, },
"nixcord": { "nixcord": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_4", "flake-compat": "flake-compat_5",
"flake-parts": "flake-parts_2", "flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_9" "nixpkgs": "nixpkgs_9"
}, },
"locked": { "locked": {
"lastModified": 1770971055, "lastModified": 1772266502,
"narHash": "sha256-XYFbDiNsfUKduV0DgV8UYSRey9t9vz/A4ppmzwBW+vQ=", "narHash": "sha256-HBO3W1ooO9UwmxwwwFflnbCrAVHhaxpB8YnxFGPvOsY=",
"owner": "kaylorben", "owner": "kaylorben",
"repo": "nixcord", "repo": "nixcord",
"rev": "77e0320dd37093da79e4f146659c66bb7ae692cc", "rev": "e805e50f0cc8b9f2d950dc81cd9ee1c986899eaf",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -833,16 +894,15 @@
}, },
"nixpkgs_10": { "nixpkgs_10": {
"locked": { "locked": {
"lastModified": 1771043024, "lastModified": 1772421411,
"narHash": "sha256-O1XDr7EWbRp+kHrNNgLWgIrB0/US5wvw9K6RERWAj6I=", "narHash": "sha256-SmTHHUvIZs1wrtkMjRyaWS0ZC1qK27eUYsiQ2nJfkjQ=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "3aadb7ca9eac2891d52a9dec199d9580a6e2bf44", "rev": "8c6807c58221e89e8d472498253071f58caa44b6",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-25.11",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
@ -881,11 +941,11 @@
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1771043024, "lastModified": 1772047000,
"narHash": "sha256-O1XDr7EWbRp+kHrNNgLWgIrB0/US5wvw9K6RERWAj6I=", "narHash": "sha256-7DaQVv4R97cii/Qdfy4tmDZMB2xxtyIvNGSwXBBhSmo=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "3aadb7ca9eac2891d52a9dec199d9580a6e2bf44", "rev": "1267bb4920d0fc06ea916734c11b0bf004bbe17e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -926,11 +986,11 @@
}, },
"nixpkgs_6": { "nixpkgs_6": {
"locked": { "locked": {
"lastModified": 1770841267, "lastModified": 1772198003,
"narHash": "sha256-9xejG0KoqsoKEGp2kVbXRlEYtFFcDTHjidiuX8hGO44=", "narHash": "sha256-I45esRSssFtJ8p/gLHUZ1OUaaTaVLluNkABkk6arQwE=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "ec7c70d12ce2fc37cb92aff673dcdca89d187bae", "rev": "dd9b079222d43e1943b6ebd802f04fd959dc8e61",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -958,11 +1018,11 @@
}, },
"nixpkgs_8": { "nixpkgs_8": {
"locked": { "locked": {
"lastModified": 1770843696, "lastModified": 1772173633,
"narHash": "sha256-LovWTGDwXhkfCOmbgLVA10bvsi/P8eDDpRudgk68HA8=", "narHash": "sha256-MOH58F4AIbCkh6qlQcwMycyk5SWvsqnS/TCfnqDlpj4=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "2343bbb58f99267223bc2aac4fc9ea301a155a16", "rev": "c0f3d81a7ddbc2b1332be0d8481a672b4f6004d6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1004,26 +1064,6 @@
"type": "github" "type": "github"
} }
}, },
"pinix": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1755156568,
"narHash": "sha256-fuLOLww23Y+aDu2a4zKYfnP+ufN4azTvWtr6P1rTOj8=",
"owner": "remi-dupre",
"repo": "pinix",
"rev": "94b12321b32e8b4788d6e3ae91f514ef0285e6bc",
"type": "github"
},
"original": {
"owner": "remi-dupre",
"repo": "pinix",
"type": "github"
}
},
"pre-commit-hooks": { "pre-commit-hooks": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_3", "flake-compat": "flake-compat_3",
@ -1034,11 +1074,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1770726378, "lastModified": 1772024342,
"narHash": "sha256-kck+vIbGOaM/dHea7aTBxdFYpeUl/jHOy5W3eyRvVx8=", "narHash": "sha256-+eXlIc4/7dE6EcPs9a2DaSY3fTA9AE526hGqkNID3Wg=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "5eaaedde414f6eb1aea8b8525c466dc37bba95ae", "rev": "6e34e97ed9788b17796ee43ccdbaf871a5c2b476",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1072,11 +1112,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1770693276, "lastModified": 1771926182,
"narHash": "sha256-ngXnN5YXu+f45+QGYNN/VEBMQmcBCYGRCqwaK8cxY1s=", "narHash": "sha256-QbXuSLhiSxOq6ydBL3+KGe1aiYWBW+e3J6qjJZaRMq0=",
"ref": "refs/heads/master", "ref": "refs/heads/master",
"rev": "dacfa9de829ac7cb173825f593236bf2c21f637e", "rev": "cddb4f061bab495f4473ca5f2c571b6c710efef7",
"revCount": 735, "revCount": 744,
"type": "git", "type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell" "url": "https://git.outfoxxed.me/outfoxxed/quickshell"
}, },
@ -1091,7 +1131,7 @@
"dankMaterialShell": "dankMaterialShell", "dankMaterialShell": "dankMaterialShell",
"disko": "disko", "disko": "disko",
"dw-proton": "dw-proton", "dw-proton": "dw-proton",
"firefly-cursor": "firefly-cursor", "furina-cursor": "furina-cursor",
"ghostty": "ghostty", "ghostty": "ghostty",
"grim-hyprland": "grim-hyprland", "grim-hyprland": "grim-hyprland",
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
@ -1104,9 +1144,9 @@
"nixcord": "nixcord", "nixcord": "nixcord",
"nixpkgs": "nixpkgs_10", "nixpkgs": "nixpkgs_10",
"nvim-dots": "nvim-dots", "nvim-dots": "nvim-dots",
"pinix": "pinix",
"proton-cachyos": "proton-cachyos", "proton-cachyos": "proton-cachyos",
"quickshell": "quickshell", "quickshell": "quickshell",
"sops-nix": "sops-nix",
"unstable": "unstable" "unstable": "unstable"
} }
}, },
@ -1128,6 +1168,26 @@
"type": "github" "type": "github"
} }
}, },
"sops-nix": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1772401007,
"narHash": "sha256-YHykQg0h9hrlZGpMcywnaFzQ1Kn/5YNCCOSaaAl6z7Q=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "d8be5ea4cd3bc363492ab5bc6e874ccdc5465fe4",
"type": "github"
},
"original": {
"owner": "Mic92",
"repo": "sops-nix",
"type": "github"
}
},
"systems": { "systems": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
@ -1175,11 +1235,11 @@
}, },
"unstable": { "unstable": {
"locked": { "locked": {
"lastModified": 1771147098, "lastModified": 1772173633,
"narHash": "sha256-jpfPdBjKO232s5NueoNEvvVzpndiUzPLNYcH4/Ov0gY=", "narHash": "sha256-MOH58F4AIbCkh6qlQcwMycyk5SWvsqnS/TCfnqDlpj4=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "e3cb16bccd9facebae3ba29c6a76a4cc1b73462a", "rev": "c0f3d81a7ddbc2b1332be0d8481a672b4f6004d6",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -2,10 +2,10 @@
description = "NixOS configuration (hyprland) for Cobray"; description = "NixOS configuration (hyprland) for Cobray";
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11"; nixpkgs.url = "github:NixOS/nixpkgs";
home-manager = { home-manager = {
url = "github:nix-community/home-manager/release-25.11"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
@ -30,11 +30,6 @@
url = "github:NixOS/nixpkgs/nixpkgs-unstable"; url = "github:NixOS/nixpkgs/nixpkgs-unstable";
}; };
pinix = {
url = "github:remi-dupre/pinix";
inputs.nixpkgs.follows = "nixpkgs";
};
quickshell = { quickshell = {
url = "git+https://git.outfoxxed.me/outfoxxed/quickshell"; url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@ -56,8 +51,8 @@
flake = false; flake = false;
}; };
firefly-cursor = { furina-cursor = {
url = "git+ssh://git@github.com/alsaiduq-lab/animated-cursors?ref=firefly"; url = "git+ssh://git@github.com/alsaiduq-lab/animated-cursors?ref=furina";
}; };
ghostty = { ghostty = {
@ -91,10 +86,10 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
# TODO: sops-nix = { sops-nix = {
# url = "github:Mic92/sops-nix"; url = "github:Mic92/sops-nix";
# inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
# }; };
hyprland = { hyprland = {
url = "github:hyprwm/Hyprland"; url = "github:hyprwm/Hyprland";
@ -108,14 +103,13 @@
nix-gaming, nix-gaming,
unstable, unstable,
ghostty, ghostty,
firefly-cursor, furina-cursor,
dankMaterialShell, dankMaterialShell,
pinix,
disko, disko,
nix-index-database, nix-index-database,
aagl, aagl,
dw-proton, dw-proton,
#sops-nix, sops-nix,
... ...
} @ inputs: let } @ inputs: let
system = "x86_64-linux"; system = "x86_64-linux";
@ -161,14 +155,11 @@
(final: prev: { (final: prev: {
quickshell = inputs.quickshell.packages.${system}.default.withModules [final.qt6Packages.qtwebsockets]; quickshell = inputs.quickshell.packages.${system}.default.withModules [final.qt6Packages.qtwebsockets];
ghostty = inputs.ghostty.packages.${system}.default; ghostty = inputs.ghostty.packages.${system}.default;
firefly-cursor = inputs.firefly-cursor.packages.${system}.default; furina-cursor = inputs.furina-cursor.packages.${system}.default;
grim-hyprland = inputs.grim-hyprland.packages.${system}.default; grim-hyprland = inputs.grim-hyprland.packages.${system}.default;
dms-shell = inputs.dankMaterialShell.packages.${system}.default; dms-shell = inputs.dankMaterialShell.packages.${system}.default;
pinix = inputs.pinix.packages.${system}.default;
wine-tkg = inputs.nix-gaming.packages.${system}.wine-tkg;
proton-cachyos = inputs.proton-cachyos.packages.${system}.proton-cachyos; proton-cachyos = inputs.proton-cachyos.packages.${system}.proton-cachyos;
desktop-gremlin = inputs.linux-desktop-gremlin.packages.${system}.default; desktop-gremlin = inputs.linux-desktop-gremlin.packages.${system}.default;
ipc-bridge = inputs.nix-gaming.packages.${system}.wine-discord-ipc-bridge;
dgop = unstablePkgs.dgop; dgop = unstablePkgs.dgop;
hyprland = inputs.hyprland.packages.${system}.default; hyprland = inputs.hyprland.packages.${system}.default;
dw-proton = inputs.dw-proton.packages.${system}.default; dw-proton = inputs.dw-proton.packages.${system}.default;
@ -235,7 +226,6 @@
(final: prev: { (final: prev: {
clear-sans = prev.clear-sans.clear-sans; clear-sans = prev.clear-sans.clear-sans;
binary-font = prev.binary-font.binary-clock-font; binary-font = prev.binary-font.binary-clock-font;
pinix = inputs.pinix.packages.${system}.default;
}) })
]; ];
}; };

View file

@ -8,33 +8,11 @@
... ...
}: { }: {
home.activation.HyprlandDots = lib.hm.dag.entryAfter ["linkGeneration"] '' home.activation.HyprlandDots = lib.hm.dag.entryAfter ["linkGeneration"] ''
set -euo pipefail ${pkgs.rsync}/bin/rsync -rlD --ignore-existing "${hyprlanddots}/fish/" "${config.xdg.configHome}/fish/"
umask 022 ${pkgs.rsync}/bin/rsync -rlD --ignore-existing "${hyprlanddots}/hypr/" "${config.xdg.configHome}/hypr/"
repo=${lib.escapeShellArg hyprlanddots} ${pkgs.rsync}/bin/rsync -rlD --ignore-existing "${hyprlanddots}/cava/" "${config.xdg.configHome}/cava/"
nvimrepo=${lib.escapeShellArg nvimDots} ${pkgs.rsync}/bin/rsync -rlD --ignore-existing "${nvimDots}/" "${config.xdg.configHome}/nvim/"
dmsConfig="${dankMaterialShell}/etc/xdg/quickshell/dms" ${pkgs.rsync}/bin/rsync -rlD --ignore-existing "${dankMaterialShell}/etc/xdg/quickshell/dms/" "${config.xdg.configHome}/quickshell/"
mkdir -p "${config.xdg.configHome}" ${pkgs.rsync}/bin/rsync -rlD --ignore-existing "${hyprlanddots}/starship.toml" "${config.xdg.configHome}/starship.toml"
copy_dir() {
src="$1"; dest="$2"; skip="''${3:-true}"
[ -d "$src" ] || return 0
[ "$skip" = "true" ] && [ -e "$dest" ] && return 0
mkdir -p "$dest"
if [ -x ${pkgs.rsync}/bin/rsync ]; then
${pkgs.rsync}/bin/rsync -rlD \
--chmod=Du=rwx,Dgo=rx,Fu=rw,Fgo=r \
-- "$src"/ "$dest"/
else
cp -R -P --no-preserve=mode,ownership,timestamps -- "$src"/. "$dest"/
fi
chmod -R u+rwX "$dest"
}
copy_dir "$repo/fish" "${config.xdg.configHome}/fish"
copy_dir "$repo/hypr" "${config.xdg.configHome}/hypr"
copy_dir "$repo/cava" "${config.xdg.configHome}/cava"
copy_dir "$nvimrepo" "${config.xdg.configHome}/nvim"
copy_dir "$dmsConfig" "${config.xdg.configHome}/quickshell" "false"
if [ -f "$repo/starship.toml" ] && [ ! -e "${config.xdg.configHome}/starship.toml" ]; then
install -Dm0644 "$repo/starship.toml" "${config.xdg.configHome}/starship.toml"
fi
''; '';
} }

View file

@ -5,7 +5,11 @@
}: { }: {
programs.nixcord = { programs.nixcord = {
enable = true; enable = true;
discord.enable = true; discord = {
enable = true;
branch = "canary";
autoscroll.enable = true;
};
config = { config = {
autoUpdateNotification = true; autoUpdateNotification = true;
notifyAboutUpdates = true; notifyAboutUpdates = true;
@ -32,12 +36,6 @@
anonymiseFileNames = { anonymiseFileNames = {
enable = true; enable = true;
}; };
autoZipper = {
enable = true;
};
betterInvites = {
enable = true;
};
biggerStreamPreview = { biggerStreamPreview = {
enable = true; enable = true;
}; };
@ -65,6 +63,15 @@
sendTimestamps = { sendTimestamps = {
enable = true; enable = true;
}; };
youtubeAdblock = {
enable = true;
};
summaries = {
enable = true;
};
translate = {
enable = true;
};
}; };
}; };
}; };

View file

@ -1,9 +1,6 @@
{pkgs, ...}: { {pkgs, ...}: {
home.packages = with pkgs; [ home.packages = with pkgs; [
desmume desmume
# ryujinx
retroarch
waydroid
rpcs3 rpcs3
input-remapper input-remapper
]; ];

View file

@ -1,6 +1,5 @@
{pkgs, ...}: { {pkgs, ...}: {
home.packages = with pkgs; [ home.packages = with pkgs; [
ffmpeg ffmpeg
gpu-screen-recorder
]; ];
} }

View file

@ -1,7 +1,6 @@
{pkgs, ...}: { {pkgs, ...}: {
home.packages = with pkgs; [ home.packages = with pkgs; [
fish fish
nix-your-shell
fzf fzf
ripgrep ripgrep
bat bat
@ -9,7 +8,7 @@
ugrep ugrep
yazi yazi
chafa chafa
btop (btop.override {cudaSupport = true;})
fastfetch fastfetch
]; ];
} }

View file

@ -12,11 +12,11 @@
]; ];
programs.git = { programs.git = {
enable = true; enable = true;
includes = [ lfs.enable = true;
{path = "${config.home.homeDirectory}/nix/.secrets/.gitconfig";}
];
settings = { settings = {
credential.helper = "store --file=${config.home.homeDirectory}/nix/.secrets/.git-credentials"; credential.helper = "store --file=/run/secrets/git/credentials";
user.name = "alsaiduq-lab";
user.email = "riiidge.racer@gmail.com";
init.defaultBranch = "master"; init.defaultBranch = "master";
push.autoSetupRemote = true; push.autoSetupRemote = true;
pull.rebase = true; pull.rebase = true;

View file

@ -31,12 +31,12 @@
rebuildCommand = [ rebuildCommand = [
"bash" "bash"
"-c" "-c"
"cd ~/nix && nix flake update && sudo pixos-rebuild switch --flake ~/nix 2>&1" "cd ~/nix && nix flake update && nix run nixpkgs#nh -- os boot ~/nix 2>&1"
]; ];
gcCommand = [ gcCommand = [
"bash" "bash"
"-c" "-c"
"sudo pix-collect-garbage -d 2>&1" "nix run nixpkgs#nh -- clean all 2>&1"
]; ];
generationsCommand = ["bash" "-c" "sudo nix-env --list-generations --profile /nix/var/nix/profiles/system | wc -l"]; generationsCommand = ["bash" "-c" "sudo nix-env --list-generations --profile /nix/var/nix/profiles/system | wc -l"];
updateInterval = 1800; updateInterval = 1800;

View file

@ -1,9 +1,3 @@
{pkgs, ...}: { {pkgs, ...}: {
home.packages = [pkgs.thorium]; home.packages = with pkgs; [thorium];
xdg.dataFile = {
"icons/hicolor" = {
source = "${pkgs.thorium}/share/icons/hicolor";
recursive = true;
};
};
} }

View file

@ -3,26 +3,15 @@
# and in the NixOS manual (accessible by running 'nixos-help'). # and in the NixOS manual (accessible by running 'nixos-help').
{...}: { {...}: {
imports = [ imports = [
# Include the results of the hardware scan.
../settings.nix ../settings.nix
# Include the results of the hardware scan.
./hardware-configuration.nix ./hardware-configuration.nix
./system-packages.nix ./system-packages.nix
]; ];
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 30d";
};
nix.settings = {
warn-dirty = false;
};
# I swear I hate nix sometimes # I swear I hate nix sometimes
nixpkgs.config.permittedInsecurePackages = [ #nixpkgs.config.permittedInsecurePackages = [
"mbedtls-2.28.10" # "mbedtls-2.28.10"
]; #];
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions

View file

@ -1,8 +1,8 @@
{ {
programs = { programs = {
anime-game-launcher.enable = true; anime-game-launcher.enable = true;
anime-games-launcher.enable = true; #anime-games-launcher.enable = true;
honkers-railway-launcher.enable = true; #honkers-railway-launcher.enable = true;
honkers-launcher.enable = true; honkers-launcher.enable = true;
# wavey-launcher.enable = true; # wavey-launcher.enable = true;
sleepy-launcher.enable = true; sleepy-launcher.enable = true;

View file

@ -10,7 +10,8 @@
}; };
tmp.cleanOnBoot = true; tmp.cleanOnBoot = true;
kernelPackages = pkgs.linuxPackages_latest; kernelPackages = pkgs.linuxPackages_latest;
#kernelPackages = pkgs.linuxPackages_6_18; #50 series nvidia drivers are kinda a mess; use 6.12 if there's any issues
#kernelPackages = pkgs.linuxPackages_6_12;
consoleLogLevel = 3; consoleLogLevel = 3;
initrd.verbose = false; initrd.verbose = false;
kernelParams = [ kernelParams = [
@ -19,6 +20,8 @@
"boot.shell_on_fail" "boot.shell_on_fail"
"udev.log_priority=3" "udev.log_priority=3"
"rd.systemd.show_status=auto" "rd.systemd.show_status=auto"
"nvidia_drm.modeset=1"
"nvidia_drm.fbdev=1"
]; ];
# cpu specific optimizations # cpu specific optimizations
kernel.sysctl = { kernel.sysctl = {
@ -27,6 +30,9 @@
}; };
}; };
# been annoying as of late
systemd.oomd.enable = false;
# some people really like putting #/bin/sh or #/bin/bash # some people really like putting #/bin/sh or #/bin/bash
system.activationScripts.binbash = { system.activationScripts.binbash = {
deps = []; deps = [];

View file

@ -10,29 +10,15 @@
BROWSER = config.theme.Browser; BROWSER = config.theme.Browser;
XCURSOR_THEME = config.theme.cursorName; XCURSOR_THEME = config.theme.cursorName;
XCURSOR_SIZE = toString config.theme.cursorSize; XCURSOR_SIZE = toString config.theme.cursorSize;
GTK_THEME = "${config.theme.gtkTheme}:${config.theme.gtkThemeMode}";
QT_QPA_PLATFORMTHEME = config.theme.qtTheme; QT_QPA_PLATFORMTHEME = config.theme.qtTheme;
QT_STYLE_OVERRIDE = config.theme.qtOverride; QT_STYLE_OVERRIDE = config.theme.qtOverride;
XDG_SESSION_TYPE = "wayland";
XDG_CURRENT_DESKTOP = "Hyprland";
XDG_SESSION_DESKTOP = "Hyprland";
GDK_BACKEND = "wayland,x11";
QT_QPA_PLATFORM = "wayland;xcb";
SDL_VIDEODRIVER = "wayland";
MOZ_ENABLE_WAYLAND = "1";
NIXOS_OZONE_WL = "1";
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
GBM_BACKEND = "nvidia-drm";
LIBVA_DRIVER_NAME = "nvidia";
CC = "${pkgs.gcc}/bin/gcc"; CC = "${pkgs.gcc}/bin/gcc";
LIBCLANG_PATH = "${pkgs.llvmPackages.libclang.lib}/lib"; LIBCLANG_PATH = "${pkgs.llvmPackages.libclang.lib}/lib";
LUA_PATH = "${pkgs.luajit}/share/lua/${pkgs.luajit.luaversion}/?.lua;${pkgs.luajit}/share/lua/${pkgs.luajit.luaversion}/?/init.lua;;";
LUA_CPATH = "${pkgs.luajit}/lib/lua/${pkgs.luajit.luaversion}/?.so;;";
};
LUA_PATH = "${pkgs.luajit}/share/lua/5.1/?.lua;${pkgs.luajit}/share/lua/5.1/?/init.lua;;"; environment.sessionVariables = {
LUA_CPATH = "${pkgs.luajit}/lib/lua/5.1/?.so;;";
PKG_CONFIG_PATH = lib.makeSearchPath "lib/pkgconfig" [ PKG_CONFIG_PATH = lib.makeSearchPath "lib/pkgconfig" [
pkgs.portaudio pkgs.portaudio
pkgs.alsa-lib pkgs.alsa-lib
@ -50,9 +36,6 @@
pkgs.libxkbcommon pkgs.libxkbcommon
pkgs.glib pkgs.glib
]; ];
CUDA_HOME = pkgs.cudatoolkit;
CPATH = "${pkgs.cudatoolkit}/include";
}; };
environment.pathsToLink = [ environment.pathsToLink = [

View file

@ -21,6 +21,15 @@
fontconfig = { fontconfig = {
enable = true; enable = true;
antialias = true;
hinting = {
enable = true;
style = "full";
};
subpixel = {
rgba = "rgb";
lcdfilter = "default";
};
defaultFonts = { defaultFonts = {
monospace = ["0xProto Nerd Font" "Noto Sans Mono CJK JP"]; monospace = ["0xProto Nerd Font" "Noto Sans Mono CJK JP"];
sansSerif = ["Clear Sans" "Noto Sans CJK JP"]; sansSerif = ["Clear Sans" "Noto Sans CJK JP"];

View file

@ -1,43 +1,33 @@
{pkgs, ...}: { {pkgs, ...}: {
services.xserver.enable = false; services.xserver.enable = false;
programs.gpu-screen-recorder.enable = true;
programs.hyprland = { programs.hyprland = {
enable = true; enable = true;
xwayland.enable = true; xwayland.enable = true;
}; };
xdg.portal = {
enable = true;
extraPortals = with pkgs; [
xdg-desktop-portal-hyprland
xdg-desktop-portal-gtk
];
config = {
Hyprland.default = ["hyprland" "gtk"];
};
};
services.gnome.gnome-keyring.enable = true; services.gnome.gnome-keyring.enable = true;
security.pam.services.greetd.enableGnomeKeyring = true; security.pam.services.greetd.enableGnomeKeyring = true;
security.polkit.enable = true;
services.accounts-daemon.enable = true; services.accounts-daemon.enable = true;
systemd.user.targets.graphical-session = {
unitConfig = { environment.variables = {
RefuseManualStart = false; XDG_SESSION_TYPE = "wayland";
StopWhenUnneeded = false; XDG_CURRENT_DESKTOP = "Hyprland";
}; XDG_SESSION_DESKTOP = "Hyprland";
wantedBy = ["default.target"]; GDK_BACKEND = "wayland,x11";
QT_QPA_PLATFORM = "wayland;xcb";
SDL_VIDEODRIVER = "wayland";
MOZ_ENABLE_WAYLAND = "1";
NIXOS_OZONE_WL = "1";
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
(writeShellScriptBin "hyprpolkitagent" '' hyprpolkitagent
exec ${hyprpolkitagent}/libexec/hyprpolkitagent "$@"
'')
qt5.qtwayland qt5.qtwayland
qt6.qtwayland qt6.qtwayland
candy-icons candy-icons
firefly-cursor furina-cursor
tokyonight-gtk-theme tokyonight-gtk-theme
hyprlock hyprlock
wlogout wlogout
@ -61,5 +51,6 @@
brightnessctl brightnessctl
xwayland-satellite xwayland-satellite
hyprshade hyprshade
kdePackages.kdeconnect-kde
]; ];
} }

View file

@ -1,5 +0,0 @@
{
programs.nix-ld = {
enable = true;
};
}

View file

@ -4,7 +4,6 @@
unzip unzip
jq jq
wrk wrk
cachix
gcc15 gcc15
gnumake gnumake
cmake cmake
@ -16,15 +15,13 @@
automake automake
libtool libtool
nasm nasm
nix-prefetch-git
icu icu
argc argc
clang clang
openssl openssl
pinix
cairo cairo
cabextract cabextract
xdg-utils xdg-utils
nix-search cacert
]; ];
} }

View file

@ -9,6 +9,7 @@
httpie httpie
socat socat
posting posting
mtr
]; ];
networking = { networking = {
@ -27,8 +28,6 @@
}; };
}; };
services.openssh.enable = true;
# Disable NetworkManager-wait-online to fix boot hang # Disable NetworkManager-wait-online to fix boot hang
systemd.services."NetworkManager-wait-online".enable = false; systemd.services."NetworkManager-wait-online".enable = false;
} }

View file

@ -1,21 +1,26 @@
{ {
config, config,
lib, lib,
pkgs,
... ...
}: { }: {
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
programs.nix-index.enable = true; programs.nix-index.enable = true;
programs.command-not-found.enable = false; programs.command-not-found.enable = false;
zramSwap.enable = true; zramSwap.enable = true;
environment.systemPackages = with pkgs; [
systemd.services.nix-daemon.serviceConfig.MemoryMax = "28G"; cachix
nix-prefetch-git
nix-search
nix-your-shell
];
nix.settings = { nix.settings = {
auto-optimise-store = true; auto-optimise-store = true;
max-jobs = 4; max-jobs = "auto";
cores = 4; cores = 0;
experimental-features = ["nix-command" "flakes"]; experimental-features = ["nix-command" "flakes"];
warn-dirty = false;
use-xdg-base-directories = true;
substituters = substituters =
[ [
"https://cache.nixos.org" "https://cache.nixos.org"
@ -41,4 +46,9 @@
"ezkea.cachix.org-1:ioBmUbJTZIKsHmWWXPe1FSFbeVe+afhfgqgTSNd34eI=" "ezkea.cachix.org-1:ioBmUbJTZIKsHmWWXPe1FSFbeVe+afhfgqgTSNd34eI="
]; ];
}; };
nix.gc = {
automatic = true;
dates = "daily";
options = "--delete-older-than 7d";
};
} }

View file

@ -1,18 +1,9 @@
{ {pkgs, ...}: {
config, environment.systemPackages = with pkgs; [
pkgs, nodejs_24
lib, nodePackages.npm
... yarn
}: { bun
options.npm.enable = lib.mkEnableOption "npm setup"; nodePackages.typescript
];
config = lib.mkIf config.npm.enable {
environment.systemPackages = with pkgs; [
nodejs_24
nodePackages.npm
yarn
bun
nodePackages.typescript
];
};
} }

View file

@ -11,29 +11,10 @@
powerManagement.enable = false; powerManagement.enable = false;
nvidiaSettings = true; nvidiaSettings = true;
nvidiaPersistenced = true; nvidiaPersistenced = true;
package = let
base = config.boot.kernelPackages.nvidiaPackages.mkDriver {
version = "590.48.01";
sha256_64bit = "sha256-ueL4BpN4FDHMh/TNKRCeEz3Oy1ClDWto1LO/LWlr1ok=";
openSha256 = "sha256-hECHfguzwduEfPo5pCDjWE/MjtRDhINVr4b1awFdP44=";
settingsSha256 = "sha256-4SfCWp3swUp+x+4cuIZ7SA5H7/NoizqgPJ6S9fm90fA=";
persistencedSha256 = "sha256-wsNeuw7IaY6Qc/i/AzT/4N82lPjkwfrhxidKWUtcwW8=";
};
cachyosPatch = pkgs.fetchpatch {
url = "https://raw.githubusercontent.com/CachyOS/CachyOS-PKGBUILDS/master/nvidia/nvidia-utils/kernel-6.19.patch";
sha256 = "sha256-YuJjSUXE6jYSuZySYGnWSNG5sfVei7vvxDcHx3K+IN4=";
};
in
base
// {
open = base.open.overrideAttrs (old: {
patches = (old.patches or []) ++ [cachyosPatch];
});
};
}; };
hardware.nvidia-container-toolkit.enable = true;
hardware.graphics = { hardware.graphics = {
enable = true; enable = true;
enable32Bit = true; enable32Bit = true;
@ -50,6 +31,14 @@
]; ];
}; };
environment.variables = {
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
GBM_BACKEND = "nvidia-drm";
LIBVA_DRIVER_NAME = "nvidia";
CUDA_HOME = "${pkgs.cudaPackages.cudatoolkit}";
CPATH = "${pkgs.cudaPackages.cudatoolkit}/include";
};
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
mesa-demos mesa-demos
vulkan-tools vulkan-tools

View file

@ -1,6 +1,6 @@
{pkgs, ...}: { {pkgs, ...}: {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
(python312.withPackages (ps: (python313.withPackages (ps:
with ps; [ with ps; [
requests requests
ipython ipython

View file

@ -1,11 +1,9 @@
{pkgs, ...}: let {pkgs, ...}: {
rustToolchain = pkgs.symlinkJoin {
name = "rust-toolchain";
paths = with pkgs; [rustc cargo rustfmt clippy];
};
in {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
rustToolchain rustc
cargo
rustfmt
clippy
rust-analyzer rust-analyzer
cargo-edit cargo-edit
cargo-watch cargo-watch

40
hosts/modules/sops.nix Normal file
View file

@ -0,0 +1,40 @@
{
inputs,
config,
lib,
...
}: let
apiKeys = [
"api/openai"
"api/deepseek"
"api/anthropic"
"api/openrouter"
"api/xai"
"api/perplexity"
"api/replicate"
"api/brave"
"api/firecrawl"
"api/deepl"
"api/gelbooru_id"
"api/gelbooru_api"
"api/fireworks"
"cachix/token"
];
in {
imports = [inputs.sops-nix.nixosModules.sops];
sops = {
defaultSopsFile = ../../secrets/secrets.yaml;
defaultSopsFormat = "yaml";
age.sshKeyPaths = ["/etc/ssh/ssh_host_ed25519_key"];
secrets =
lib.genAttrs apiKeys (_: {owner = "cobray";})
// {
"cachix/token" = {};
"git/credentials" = {
owner = "cobray";
mode = "0600";
};
};
};
}

10
hosts/modules/ssh.nix Normal file
View file

@ -0,0 +1,10 @@
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
sshfs
];
services.openssh.enable = true;
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
}

View file

@ -40,12 +40,10 @@
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
lutris lutris
wine-tkg
winetricks winetricks
mangohud mangohud
libstrangle libstrangle
gamescope-wsi gamescope-wsi
ipc-bridge
umu-launcher umu-launcher
]; ];
} }

View file

@ -15,8 +15,6 @@
enable = true; enable = true;
wheelNeedsPassword = true; wheelNeedsPassword = true;
extraConfig = '' extraConfig = ''
${config.theme.user} ALL=(ALL) NOPASSWD: /run/current-system/sw/bin/pixos-rebuild
${config.theme.user} ALL=(ALL) NOPASSWD: /run/current-system/sw/bin/pix-collect-garbage
${config.theme.user} ALL=(ALL) NOPASSWD: /run/current-system/sw/bin/nix-env ${config.theme.user} ALL=(ALL) NOPASSWD: /run/current-system/sw/bin/nix-env
''; '';
}; };

View file

@ -22,11 +22,10 @@
./modules/python.nix ./modules/python.nix
./modules/npm.nix ./modules/npm.nix
./modules/tailscale.nix ./modules/tailscale.nix
./modules/ld.nix
./modules/ollama.nix ./modules/ollama.nix
./modules/cups.nix ./modules/cups.nix
./modules/rust.nix ./modules/rust.nix
./modules/core.nix ./modules/misc.nix
./modules/libs.nix ./modules/libs.nix
./modules/rgb.nix ./modules/rgb.nix
./modules/hyprland.nix ./modules/hyprland.nix
@ -38,16 +37,7 @@
./modules/go.nix ./modules/go.nix
./modules/flatpak.nix ./modules/flatpak.nix
./modules/aagl.nix ./modules/aagl.nix
inputs.nix-gaming.nixosModules.pipewireLowLatency ./modules/ssh.nix
./modules/sops.nix
]; ];
npm.enable = true;
services.udisks2.enable = true;
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
programs.mtr.enable = true;
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
} }

View file

@ -1,11 +1,22 @@
# might just rename to just discord-rpc?
{ {
pkgs, pkgs,
lib, lib,
}: }:
pkgs.rpcs3.overrideAttrs (oldAttrs: { pkgs.rpcs3.overrideAttrs (oldAttrs: {
cmakeFlags = cmakeFlags =
(oldAttrs.cmakeFlags or []) oldAttrs.cmakeFlags
++ [ ++ [
"-DUSE_DISCORD_RPC=ON" "-DUSE_DISCORD_RPC=ON"
]; ];
buildInputs = oldAttrs.buildInputs ++ [pkgs.pipewire.jack];
preConfigure = ''
mkdir -p 3rdparty/discord-rpc/discord-rpc
cp -r ${pkgs.fetchFromGitHub {
owner = "Vestrel";
repo = "discord-rpc";
rev = "master";
hash = "sha256-+fxpMmCOhv6GBSDqS2xc3KSw4UFIVgHkWbVz5b/KiBg=";
}}/* 3rdparty/discord-rpc/discord-rpc/
'';
}) })

View file

@ -5,18 +5,17 @@
autoPatchelfHook, autoPatchelfHook,
makeWrapper, makeWrapper,
dpkg, dpkg,
gnutar,
xdg-utils, xdg-utils,
hicolor-icon-theme, hicolor-icon-theme,
nss, nss,
nspr, nspr,
glib, glib,
gtk3, gtk3,
at-spi2-atk,
at-spi2-core, at-spi2-core,
dbus, dbus,
libdrm, libdrm,
mesa, mesa,
libgbm,
libGL, libGL,
libX11, libX11,
libXext, libXext,
@ -50,26 +49,33 @@
pipewire, pipewire,
gnome-settings-daemon, gnome-settings-daemon,
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: {
pname = "thorium-browser"; pname = "thorium-browser";
version = "138.0.7204.300"; version = "138.0.7204.303";
src = fetchurl { src = fetchurl {
url = "https://github.com/Alex313031/Thorium/releases/download/M${version}/thorium-browser_${version}_AVX2.deb"; url = "https://github.com/Alex313031/Thorium/releases/download/M${finalAttrs.version}/thorium-browser_${finalAttrs.version}_AVX2.deb";
sha256 = "sha256-aQrQGacmrdz9jD4YE/F4XIM1TNrsKcTWbwyTI4+Mf5k="; hash = "sha256-3wVaXIqwsEN/EmX2mS3g1ZrEnricqhRY57lY2WmEepg=";
}; };
nativeBuildInputs = [autoPatchelfHook makeWrapper dpkg gnutar]; strictDeps = true;
nativeBuildInputs = [
autoPatchelfHook
makeWrapper
dpkg
];
buildInputs = [ buildInputs = [
nss nss
nspr nspr
glib glib
gtk3 gtk3
at-spi2-atk
at-spi2-core at-spi2-core
dbus dbus
libdrm libdrm
mesa mesa
libgbm
libGL libGL
libX11 libX11
libXext libXext
@ -105,8 +111,9 @@ stdenv.mkDerivation rec {
propagatedBuildInputs = [hicolor-icon-theme]; propagatedBuildInputs = [hicolor-icon-theme];
unpackPhase = '' unpackPhase = ''
ar x "$src" runHook preUnpack
tar --no-same-owner --no-same-permissions -xf data.tar.* dpkg-deb --fsys-tarfile "$src" | tar --no-same-owner --no-same-permissions -xf -
runHook postUnpack
''; '';
installPhase = '' installPhase = ''
@ -134,7 +141,7 @@ stdenv.mkDerivation rec {
wrapProgram $out/bin/thorium \ wrapProgram $out/bin/thorium \
--prefix PATH : ${lib.makeBinPath [xdg-utils gnome-settings-daemon]} \ --prefix PATH : ${lib.makeBinPath [xdg-utils gnome-settings-daemon]} \
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH:$out/share" \ --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH:$out/share" \
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath buildInputs} \ --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath finalAttrs.buildInputs} \
--add-flags "--enable-features=VaapiVideoDecoder,VaapiVideoEncoder,UseOzonePlatform" \ --add-flags "--enable-features=VaapiVideoDecoder,VaapiVideoEncoder,UseOzonePlatform" \
--add-flags "--ozone-platform-hint=auto" \ --add-flags "--ozone-platform-hint=auto" \
--set-default CHROME_VERSION_EXTRA "Thorium AVX2" --set-default CHROME_VERSION_EXTRA "Thorium AVX2"
@ -148,4 +155,4 @@ stdenv.mkDerivation rec {
maintainers = ["Cobray"]; maintainers = ["Cobray"];
mainProgram = "thorium"; mainProgram = "thorium";
}; };
} })

42
secrets/secrets.yaml Normal file
View file

@ -0,0 +1,42 @@
cachix:
token: ENC[AES256_GCM,data:I/P8tDKWj8SjWyjb4yEImsCR7SJvVmycoEMdTUeCjZniuX9F5lnSkz3X3sAEMtWDxl6zBKP4B7AUsaLw3cjvC0bAkYOBfgDT7ga43nghqzYNrKsS96hDEkRsoxfVhtgMMiePYUvdeIVfT+VdgeM75VNET/WpGtTCu15XmSj1ZU6sjuKL+GRxrkxVAkpOXVyuCg==,iv:9XkPDrOthgewFfBVUO6s6W/mrcAnh2VgTXgxzEvHKwk=,tag:txY3Vayt7/F2r4fLVzElmA==,type:str]
git:
credentials: ENC[AES256_GCM,data:E1stUKoFsUCZTrxEXf68iQQFDtQbTu1rqVUJcOh6C8r3hOOByycD/SI+l6UKCGqeLZbxJ8XlWK+ZqOYABx4D/nycRlYsC+AA2i5n3XZkwnQZMJXPcKuJxZsHrQ7NIBzOlL+4NnJh3flEhZB9q7QJJ0KmkRsmrtI3h8fNTfipTDVdiYL7/QXqNSvwxb1+7g==,iv:q5yVK+UGMhrNhLImLffqY7o2nG2E991di7vgKarPPjk=,tag:CYRwRGrZUbPmityaYHzPnA==,type:str]
api:
openai: ENC[AES256_GCM,data:N1gxGwwxkWZi0Zyh3j3ERvB46KB53pZbxYn1CAAN7xxI8H1F6xet/o0A964K/fw+0A52pKLUlUp6g6qN8E8rfdI8lRAk584w1vEeP3xORf8/zLg9xd17Zk221I1LDX4GPyF5mQV9LqJHnXMKyL4BAiWemCxbwg5URThcvUY6mdno6imeGLiGfgBH1UQKeapch7a+58iejkWrmPcystzT7Q9wigY=,iv:aXYTdRH5ZXQ3rGsNkRNQm/6NRfT3CN/VAuJZi/LH5ZE=,tag:p1jI/htGTmUzElSeo0f6aw==,type:str]
deepseek: ENC[AES256_GCM,data:KYBtSBghIY2vsVRQGoKMJ87tLNtupjzeeEFa0vusl2pBvkI=,iv:gNtWrOd02svLHz38gQDGbAYzXW/tX42qaRjkyiObLLw=,tag:x+5FDRB8m0A9192pQ/5D9g==,type:str]
anthropic: ENC[AES256_GCM,data:W0ZgiDDon/JsyriQf60TTSBlAm7ug6yjHf9lOZK4kKyd1kBrdyUAq7SANLugEEdrVqF9ggZnD97xa5QBu34tb0YeYYD70q2T+4aW4rjYbuuB0P+orRJl4s05JaCNYxrMv875xZHCCvgqoOg7,iv:u+G8Bpa0sTl28OLY8cZGhIMn/G0IJPGkfv6ipJvzn9w=,tag:4KWwye9jYpWMSreLWhoAKQ==,type:str]
openrouter: ENC[AES256_GCM,data:tOwVIsjNmadb23Ac19Qa2DDXEnupMqLZZucqw6I995fv7POb6dmxqAW5YXpLEQBrQRMAez88GXQ1l0mkpTFs9+DxjYgBqy7Cow==,iv:mJbUIPuuwGPqM1psUaPa+GfE+asm7LREm5rnKODKleM=,tag:FMswJUy9HQ69ZPZ6Gt5/zA==,type:str]
xai: ENC[AES256_GCM,data:vjzFJu/V50iBU4I8Bn1dx7Ml6WwhSmhUSp1mzYv67ZbgS12xysMxyOzr4duVFBRDZjE4eSYJ8odVmTuc88Oeoxb9L7KeFB5ukh7wvlT7dxzh+ou0,iv:6ZBKx7BWtQeSD2z8aTXeA/etkVg+qEsIXn/a/7SG+OI=,tag:LuYD1GCmP1WoMwdslLGZLQ==,type:str]
perplexity: ENC[AES256_GCM,data:3SwE/9NPwgeTF/jgPz0GqlSVoEsSTWp8yf2/E2PY/vSiju6yB3pJXV/OUO4K4MsG8TAJRxA=,iv:SgCs3hMgam12K3Xp+XLTPPjZ/PSVvuAcWbXlOyobWeQ=,tag:urR8CDVFaju79xGqBWN0Hw==,type:str]
replicate: ENC[AES256_GCM,data:65wLfrsKwcM5p5BNPBZh2UP01c2pRJn72SIxv2mKuqXMO3gVou5vzw==,iv:Wy2H4Gctiq+e71ZgiH+Q3dhWaY9Piy9zT7oVqUBfN2A=,tag:skih98XwaOQmeztP7A0yyA==,type:str]
brave: ENC[AES256_GCM,data:0SnCIkVBFihmhkTnTQEKdu1cj0Zza08MI49b6URN/g==,iv:FT8MfBNFVMZTpFDeAwHh3+ZAEH0YT275C3ODHGgSIQg=,tag:/Xtw6OYsyZU7andJMGEo4w==,type:str]
firecrawl: ENC[AES256_GCM,data:8B3MOXeB9859dQ2JemRuI8OJkxFF/QH4eHZBB6FBUNa0vOs=,iv:38ZVGZjLsimdfKESvasVKWiM5W2lkvoLeEbp2kZbk44=,tag:7RBXDFnoL631JHUay926sg==,type:str]
deepl: ENC[AES256_GCM,data:CpGvSwoxB2gdBLF+v0PnsTyImEBbAN6tTVSdSV5/CgbFA0mr51Af,iv:0oz6UHww2qcJwgKyV+qTWuglNIOZ7AJerAYx3UNFQ/I=,tag:5JBZbVJBGEu24gL6pfd8Ew==,type:str]
gelbooru_id: ENC[AES256_GCM,data:0gj0qgZtnA==,iv:dzZ1IAuWHGNVA81zp8T02PqzWhWfpLpst4C6TdNpmkk=,tag:l21arJ8GgrG6O3aF22T6TQ==,type:str]
gelbooru_api: ENC[AES256_GCM,data:kwBGD6RWUenMWWqtfxzGzQIsvsSwnw6T6x9awlMeJsI4WTt9UavqTSnHOILMrE5wgQ4tk57FUTm1hBDi6MJTlr+Paai86HLUDhfto1IYsZ+qZFMLdgXXcpOKWQMS7ICdE/7PmhihEGDlgzYFeu+nKVjCeE7IbAc/Aecli1HLgrA=,iv:GWMH1fkL7cpPwrlISw2Ne0lEQkFVPeyF1YMzIYhpGlQ=,tag:c8Bn2QZmI8+eEYhdkc7pNw==,type:str]
fireworks: ENC[AES256_GCM,data:zt8rj2I82/b+7lq5BN53jjGiH66BZ/N5cspdcWHzzo9jkMMiN2gXf/i2Ejeo2+dW,iv:/ApuoZ7DcYFb1OByqnwsPFxlV/XCf93JwNe/2jm+jQ8=,tag:xN0rE+E3hMbTLXeY0mLl3A==,type:str]
sops:
age:
- recipient: age1rqnmhrrauup2wdhwsahq2ewk39ea9mwhuut2hzpmjfsnhdrxndcsajgj6a
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtUVF5QzJtUG5xWjhxL3JO
dHV0Yjl6eUR0M1FsWS9tOCtKUkhYenVCbUNVCmd0enpVdGZuYnNySE1CVTBzcnZ0
ckVxSEk4VDRvTzN6SS9IWExtKzlqYkUKLS0tIC9FT1BVdWpISVIySEdwUGMzU21H
aEpXN3BCY2Qxb2I5eUpIUitkaGJxU1kKBWHVxyj529sPs/V4S8TXYeiHU10EphXR
8H5MCUFywwqDFD6xG3kzthx8yn+sNqsmeoU0rqlDEIQJhBmJLnjeUg==
-----END AGE ENCRYPTED FILE-----
- recipient: age195uflh4prg2ysxghpe4h4fvzngc3flheh2yk558fnfrys9c82uvq8xyala
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVSkoyVDlmdjliaDhYWnNC
c2pUZjBxMjZKaW40Z2t1aUNRelFmRGlVa3pJCkxRaU5jKytBWk0xbFVLOEJ5a0lw
aHR1N1h6dzd6Z3czWjR1ZFh5aFY4RG8KLS0tIEJGSkdhV1RyRE1rbVAwajlvLzBi
MWloN252SnJPYitMYUN5eTZtbUtTbHMK1wBkjyg/dHbm6Pf9mDh91Ve0m9ZyRvcR
LgEeeWTq6bs8LeslSlv6KNzvEPdNPbhUC0UX1AwYw1Re3/VuXxPHnA==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2026-03-02T09:33:38Z"
mac: ENC[AES256_GCM,data:WVkx/nJk6BYzJJHORoQl+W4oRiE2g+Hqqt2CQDn4aFEBDKBCL/Zt7YJQzm8fjN6MLv8gQNSoTc3glX230i7PyTGwcIVE1R5AJn1y2lZxBcM4BM0p1DqsKRJa7nN98m/77BlXQa8goHc9AxjHMqB5ifsoUj5tElw2issoNZNFbhM=,iv:IBTVnekRrWpYfe7Xen9KulmvQxwUt8uj8chZDW0SysA=,tag:tz2Im6VYiQQ3JzsKLjwWNg==,type:str]
unencrypted_suffix: _unencrypted
version: 3.12.1

View file

@ -8,7 +8,7 @@ with lib; {
}; };
cursorName = mkOption { cursorName = mkOption {
type = types.str; type = types.str;
default = "Firefly-Animated-Cursor"; default = "Furina-Animated-Cursor";
}; };
cursorSize = mkOption { cursorSize = mkOption {
type = types.int; type = types.int;