diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..25721ab --- /dev/null +++ b/flake.lock @@ -0,0 +1,742 @@ +{ + "nodes": { + "aagl": { + "inputs": { + "flake-compat": "flake-compat", + "nixpkgs": "nixpkgs", + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1774186997, + "narHash": "sha256-hyNVlhAqmwcBPl7XRkxbGcMt1BfCOdvuEfBDUf0k8Oo=", + "owner": "ezKEa", + "repo": "aagl-gtk-on-nix", + "rev": "546e95f7ec74892a31f883a10b1723c35f2c2edd", + "type": "github" + }, + "original": { + "owner": "ezKEa", + "repo": "aagl-gtk-on-nix", + "type": "github" + } + }, + "cachyos-kernel": { + "flake": false, + "locked": { + "lastModified": 1776183001, + "narHash": "sha256-lvLKB5dTqjO1S/YonS9ZyWemEjO6QXtN4D76rYEYy4s=", + "owner": "CachyOS", + "repo": "linux-cachyos", + "rev": "4224303b6d7a50dd1cc3ffa78864050cc9536eec", + "type": "github" + }, + "original": { + "owner": "CachyOS", + "repo": "linux-cachyos", + "type": "github" + } + }, + "cachyos-kernel-patches": { + "flake": false, + "locked": { + "lastModified": 1776355454, + "narHash": "sha256-b9Hc0sTxjEzDbphzS9yQqxVha/7bsPIs2cQQQvaG45E=", + "owner": "CachyOS", + "repo": "kernel-patches", + "rev": "b5e029226df5cc30c103651072d49a7af2878202", + "type": "github" + }, + "original": { + "owner": "CachyOS", + "repo": "kernel-patches", + "type": "github" + } + }, + "dms": { + "inputs": { + "flake-compat": "flake-compat_2", + "nixpkgs": "nixpkgs_3", + "quickshell": "quickshell" + }, + "locked": { + "lastModified": 1776476539, + "narHash": "sha256-4019TOLn63jzPZdWT5SoKQZezxZxXzHKcFamK3Oh1Io=", + "owner": "AvengeMedia", + "repo": "DankMaterialShell", + "rev": "4c2c1937662b3973071ce3d3cac34436ee822e32", + "type": "github" + }, + "original": { + "owner": "AvengeMedia", + "repo": "DankMaterialShell", + "type": "github" + } + }, + "dms-plugin-registry": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1776475494, + "narHash": "sha256-dVhxEzfB0McRmlZkJaDJVKEW5R5In2Vd295x7ZG5xO4=", + "owner": "AvengeMedia", + "repo": "dms-plugin-registry", + "rev": "1728c7227d9b157e5d41501319def3c43959646d", + "type": "github" + }, + "original": { + "owner": "AvengeMedia", + "repo": "dms-plugin-registry", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1767039857, + "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_2": { + "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_3": { + "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-parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1775087534, + "narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1776562531, + "narHash": "sha256-Lh5Ns9DI67E+lSMOCGK0S+mFPy0mz0yOGiJTUXiR9JI=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "5b56ad02dc643808b8af6d5f3ff179e2ce9593f4", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_2": { + "inputs": { + "nixpkgs": [ + "zen-browser", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1776184304, + "narHash": "sha256-No6QGBmIv5ChiwKCcbkxjdEQ/RO2ZS1gD7SFy6EZ7rc=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "3c7524c68348ef79ce48308e0978611a050089b2", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "niri": { + "inputs": { + "niri-stable": "niri-stable", + "niri-unstable": "niri-unstable", + "nixpkgs": "nixpkgs_4", + "nixpkgs-stable": "nixpkgs-stable", + "xwayland-satellite-stable": "xwayland-satellite-stable", + "xwayland-satellite-unstable": "xwayland-satellite-unstable" + }, + "locked": { + "lastModified": 1776602954, + "narHash": "sha256-C41nazGNIM/58ISKaIirq8/z1sDgS6CVJnWBwAzhaGQ=", + "owner": "sodiboo", + "repo": "niri-flake", + "rev": "c175f415488243723dc1a5514b286abbea6f93c1", + "type": "github" + }, + "original": { + "owner": "sodiboo", + "repo": "niri-flake", + "type": "github" + } + }, + "niri-stable": { + "flake": false, + "locked": { + "lastModified": 1756556321, + "narHash": "sha256-RLD89dfjN0RVO86C/Mot0T7aduCygPGaYbog566F0Qo=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "01be0e65f4eb91a9cd624ac0b76aaeab765c7294", + "type": "github" + }, + "original": { + "owner": "YaLTeR", + "ref": "v25.08", + "repo": "niri", + "type": "github" + } + }, + "niri-unstable": { + "flake": false, + "locked": { + "lastModified": 1776598536, + "narHash": "sha256-7Bbp0fDBJMDRpKfdHelMXbhY51bdCa5+Qn/+XONaOwk=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "68bb942d2146cd2c8af69c0f16db18396b4388fe", + "type": "github" + }, + "original": { + "owner": "YaLTeR", + "repo": "niri", + "type": "github" + } + }, + "nix-cachyos-kernel": { + "inputs": { + "cachyos-kernel": "cachyos-kernel", + "cachyos-kernel-patches": "cachyos-kernel-patches", + "flake-compat": "flake-compat_3", + "flake-parts": "flake-parts", + "nixpkgs": "nixpkgs_5" + }, + "locked": { + "lastModified": 1776535646, + "narHash": "sha256-ynXxDJ66ZgN7NlXuMxH9aIMnmiX4Q4ZhdEDie9Klnfc=", + "owner": "xddxdd", + "repo": "nix-cachyos-kernel", + "rev": "c5b2b559d888644417de5eb3939548854fa4d837", + "type": "github" + }, + "original": { + "owner": "xddxdd", + "repo": "nix-cachyos-kernel", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1770841267, + "narHash": "sha256-9xejG0KoqsoKEGp2kVbXRlEYtFFcDTHjidiuX8hGO44=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "ec7c70d12ce2fc37cb92aff673dcdca89d187bae", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1774748309, + "narHash": "sha256-+U7gF3qxzwD5TZuANzZPeJTZRHS29OFQgkQ2kiTJBIQ=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "333c4e0545a6da976206c74db8773a1645b5870a", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, + "nixpkgs-master": { + "locked": { + "lastModified": 1776616485, + "narHash": "sha256-n+j1THgYwvcKhB5G29+mpcb9NJMM1wDMVavnn0zRCsA=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "e8ac1bbff8b912dcf00b8fd347e62e581095c9bb", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1776434932, + "narHash": "sha256-gyqXNMgk3sh+ogY5svd2eNLJ6oEwzbAeaoBrrxD0lKk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c7f47036d3df2add644c46d712d14262b7d86c0c", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-25.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_2": { + "locked": { + "lastModified": 1776434932, + "narHash": "sha256-gyqXNMgk3sh+ogY5svd2eNLJ6oEwzbAeaoBrrxD0lKk=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "c7f47036d3df2add644c46d712d14262b7d86c0c", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-25.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "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_3": { + "locked": { + "lastModified": 1776169885, + "narHash": "sha256-l/iNYDZ4bGOAFQY2q8y5OAfBBtrDAaPuRQqWaFHVRXM=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "4bd9165a9165d7b5e33ae57f3eecbcb28fb231c9", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1776169885, + "narHash": "sha256-l/iNYDZ4bGOAFQY2q8y5OAfBBtrDAaPuRQqWaFHVRXM=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "4bd9165a9165d7b5e33ae57f3eecbcb28fb231c9", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { + "locked": { + "lastModified": 1776475594, + "narHash": "sha256-mxLieVl5lqjd+QUvgHbvpVrvb9d8zox7m+MiRO6FHu8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9a3a5b8400951b3497d2ef8f239f8451175cf3a1", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable-small", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_6": { + "locked": { + "lastModified": 1776329215, + "narHash": "sha256-a8BYi3mzoJ/AcJP8UldOx8emoPRLeWqALZWu4ZvjPXw=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "b86751bc4085f48661017fa226dee99fab6c651b", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_7": { + "locked": { + "lastModified": 1776169885, + "narHash": "sha256-l/iNYDZ4bGOAFQY2q8y5OAfBBtrDAaPuRQqWaFHVRXM=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "4bd9165a9165d7b5e33ae57f3eecbcb28fb231c9", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "noctalia": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "noctalia-qs": "noctalia-qs" + }, + "locked": { + "lastModified": 1776606976, + "narHash": "sha256-SeNsAS55P7QsPh0MsxRqKwN2sS2DDPCh7AR7YsRoNwo=", + "owner": "noctalia-dev", + "repo": "noctalia-shell", + "rev": "d9531258d9a1dadb7c1feca1c94b69e0097fbb06", + "type": "github" + }, + "original": { + "owner": "noctalia-dev", + "repo": "noctalia-shell", + "type": "github" + } + }, + "noctalia-qs": { + "inputs": { + "nixpkgs": [ + "noctalia", + "nixpkgs" + ], + "systems": "systems", + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1775957204, + "narHash": "sha256-d4CVRtAty2GzDYXx4xYQmR+nlOjjKovyprQfZhgLckU=", + "owner": "noctalia-dev", + "repo": "noctalia-qs", + "rev": "68e82fe34c68ee839a9c37e3466820e266af0c86", + "type": "github" + }, + "original": { + "owner": "noctalia-dev", + "repo": "noctalia-qs", + "type": "github" + } + }, + "preload-ng": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs_7" + }, + "locked": { + "lastModified": 1768356181, + "narHash": "sha256-lYx273nqNC1EslejL/yvf+ZJK+yApeUckibbpTyzxoM=", + "owner": "miguel-b-p", + "repo": "preload-ng", + "rev": "b2274bfa70f86c649ba4bddd5fd21c82ffccebe3", + "type": "github" + }, + "original": { + "owner": "miguel-b-p", + "repo": "preload-ng", + "type": "github" + } + }, + "quickshell": { + "inputs": { + "nixpkgs": [ + "dms", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1766725085, + "narHash": "sha256-O2aMFdDUYJazFrlwL7aSIHbUSEm3ADVZjmf41uBJfHs=", + "ref": "refs/heads/master", + "rev": "41828c4180fb921df7992a5405f5ff05d2ac2fff", + "revCount": 715, + "type": "git", + "url": "https://git.outfoxxed.me/quickshell/quickshell" + }, + "original": { + "rev": "41828c4180fb921df7992a5405f5ff05d2ac2fff", + "type": "git", + "url": "https://git.outfoxxed.me/quickshell/quickshell" + } + }, + "quickshell_2": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1776589301, + "narHash": "sha256-3g+BPNYwKrjOtBaQi1cLBEtLKtDLZAS01gFd6/ybtlE=", + "ref": "refs/heads/master", + "rev": "9a54119893bdd30fec628063322bc726f96afc1f", + "revCount": 803, + "type": "git", + "url": "https://git.outfoxxed.me/outfoxxed/quickshell" + }, + "original": { + "type": "git", + "url": "https://git.outfoxxed.me/outfoxxed/quickshell" + } + }, + "root": { + "inputs": { + "aagl": "aagl", + "dms": "dms", + "dms-plugin-registry": "dms-plugin-registry", + "home-manager": "home-manager", + "niri": "niri", + "nix-cachyos-kernel": "nix-cachyos-kernel", + "nixpkgs": "nixpkgs_6", + "nixpkgs-master": "nixpkgs-master", + "nixpkgs-stable": "nixpkgs-stable_2", + "noctalia": "noctalia", + "preload-ng": "preload-ng", + "quickshell": "quickshell_2", + "shiru": "shiru", + "zen-browser": "zen-browser" + } + }, + "rust-overlay": { + "inputs": { + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1770952264, + "narHash": "sha256-CjymNrJZWBtpavyuTkfPVPaZkwzIzGaf0E/3WgcwM14=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "ec6a3d5cdf14bb5a1dd03652bd3f6351004d2188", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "shiru": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1774927919, + "narHash": "sha256-QRUCdfC6/pRhOo1wqd1mhHep6PvJQXBMTw4IskIEAF8=", + "owner": "darkguibrine", + "repo": "shiru-nix", + "rev": "2cd2c57f3cc97a33136090cf7a0721fee4ba5e36", + "type": "github" + }, + "original": { + "owner": "darkguibrine", + "repo": "shiru-nix", + "type": "github" + } + }, + "systems": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "noctalia", + "noctalia-qs", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1775636079, + "narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "790751ff7fd3801feeaf96d7dc416a8d581265ba", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, + "xwayland-satellite-stable": { + "flake": false, + "locked": { + "lastModified": 1755491097, + "narHash": "sha256-m+9tUfsmBeF2Gn4HWa6vSITZ4Gz1eA1F5Kh62B0N4oE=", + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "rev": "388d291e82ffbc73be18169d39470f340707edaa", + "type": "github" + }, + "original": { + "owner": "Supreeeme", + "ref": "v0.7", + "repo": "xwayland-satellite", + "type": "github" + } + }, + "xwayland-satellite-unstable": { + "flake": false, + "locked": { + "lastModified": 1773622265, + "narHash": "sha256-wToKwH7IgWdGLMSIWksEDs4eumR6UbbsuPQ42r0oTXQ=", + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "rev": "a879e5e0896a326adc79c474bf457b8b99011027", + "type": "github" + }, + "original": { + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "type": "github" + } + }, + "zen-browser": { + "inputs": { + "home-manager": "home-manager_2", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1776616911, + "narHash": "sha256-k12p9yCvP6owKzpb9KHZAzPQA0FZGGnmvjcxlrFNIug=", + "owner": "0xc000022070", + "repo": "zen-browser-flake", + "rev": "46f4f5d45de271f685d8fb64944ccbbdfbbf5dab", + "type": "github" + }, + "original": { + "owner": "0xc000022070", + "repo": "zen-browser-flake", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..645b7f1 --- /dev/null +++ b/flake.nix @@ -0,0 +1,97 @@ +{ + description = "A very basic flake"; + inputs = { + #nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; + nixpkgs.url = "github:nixos/nixpkgs?ref=nixpkgs-unstable"; + nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-25.11"; + nixpkgs-master.url = "github:nixos/nixpkgs"; + preload-ng.url = "github:miguel-b-p/preload-ng"; + #chaotic.url = "github:lonerOrz/nyx-loner"; + nix-cachyos-kernel.url = "github:xddxdd/nix-cachyos-kernel"; + aagl.url = "github:ezKEa/aagl-gtk-on-nix"; + home-manager = { + url = "github:nix-community/home-manager/"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + zen-browser = { + url = "github:0xc000022070/zen-browser-flake"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + shiru = { + url = "github:darkguibrine/shiru-nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + noctalia = { + url = "github:noctalia-dev/noctalia-shell"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + dms.url = "github:AvengeMedia/DankMaterialShell"; + niri.url = "github:sodiboo/niri-flake"; + dms-plugin-registry = { + url = "github:AvengeMedia/dms-plugin-registry"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + quickshell = { + url = "git+https://git.outfoxxed.me/outfoxxed/quickshell"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + outputs = + { + self, + nixpkgs, + nixpkgs-stable, + nixpkgs-master, + home-manager, + zen-browser, + shiru, + preload-ng, + nix-cachyos-kernel, + aagl, + noctalia, + niri, + ... + }@inputs: + { + ## Pc + nixosConfigurations = { + "Alfa" = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = { inherit inputs; }; + modules = [ + ./hosts/Alfa/configuration.nix + ./mods/nixos/nixos.ni + preload-ng.nixosModules.default + #niri.nixosModules.niri + #sops-nix.nixosModules.sops + { services.preload-ng.enable = true; } + #chaotic.nixosModules.default + { + imports = [ aagl.nixosModules.default ]; + nix.settings = aagl.nixConfig; + programs.anime-game-launcher.enable = true; + programs.sleepy-launcher.enable = true; + } + ]; + }; + }; + + ## VPS + nixosConfigurations.darkgui-vps = nixpkgs.lib.nixosSystem { + system = "aarch64-linux"; + specialArgs = { inherit inputs; }; + modules = [ + #./configuration.nix + ]; + }; + + ## home manager + homeConfigurations."gui@Alfa" = home-manager.lib.homeManagerConfiguration { + pkgs = nixpkgs.legacyPackages.x86_64-linux; + modules = [ + ./hosts/Alfa/home.nix + ./mods/home/home.nix + ]; + }; + }; +} diff --git a/hosts/Alfa/conf/GM/DE/cosmic.nix b/hosts/Alfa/conf/GM/DE/cosmic.nix new file mode 100644 index 0000000..f1a927c --- /dev/null +++ b/hosts/Alfa/conf/GM/DE/cosmic.nix @@ -0,0 +1,46 @@ +{ + config, + lib, + inputs, + pkgs, + ... +}: +{ + + services = { + displayManager.cosmic-greeter.enable = true; + desktopManager.cosmic.enable = true; + desktopManager.cosmic.xwayland.enable = true; + desktopManager.cosmic.showExcludedPkgsWarning = false; + system76-scheduler.enable = true; + }; + + environment.sessionVariables.COSMIC_DATA_CONTROL_ENABLED = 1; + environment.systemPackages = with pkgs; [ + gnome-disk-utility + ]; + environment.cosmic.excludePackages = with pkgs; [ + cosmic-files + cosmic-term + cosmic-player + cosmic-screenshot + ]; + programs.kdeconnect = { + enable = true; + }; + + xdg.portal = { + enable = true; + extraPortals = [ pkgs.xdg-desktop-portal-cosmic ]; + config.common.default = "*"; + }; + + programs.firefox.preferences = { + # disable libadwaita theming for Firefox + "widget.gtk.libadwaita-colors.enabled" = false; + }; + + imports = [ + ./thunar.nix + ]; +} diff --git a/hosts/Alfa/conf/GM/DE/gnome.nix b/hosts/Alfa/conf/GM/DE/gnome.nix new file mode 100644 index 0000000..7d3fc68 --- /dev/null +++ b/hosts/Alfa/conf/GM/DE/gnome.nix @@ -0,0 +1,56 @@ +{ + config, + lib, + inputs, + pkgs, + ... +}: +{ + + services = { + displayManager.gdm.enable = true; + desktopManager.gnome.enable = true; + # Para desabilitar a instalação do conjunto de aplicativos do GNOME e ficar apenas com o shell do GNOME. + gnome.core-apps.enable = false; + gnome.core-developer-tools.enable = false; + gnome.games.enable = false; + udev.packages = [ pkgs.gnome-settings-daemon ]; + }; + + environment.systemPackages = with pkgs; [ + gnomeExtensions.blur-my-shell + gnomeExtensions.dash-to-dock + gnomeExtensions.just-perfection + gnomeExtensions.arc-menu + gnomeExtensions.appindicator + gnomeExtensions.valent + gnomeExtensions.forge + gnomeExtensions.clipboard-indicator + gnomeExtensions.media-controls + gnomeExtensions.sound-output-device-chooser + gnomeExtensions.quick-settings-audio-panel + xdg-desktop-portal-gnome + valent + gnome-tweaks + gnome-shell + gnome-extension-manager + refine + alacarte + dconf + ]; + environment.gnome.excludePackages = with pkgs; [ + gnome-tour + gnome-user-docs + ]; + + qt = { + enable = true; + platformTheme = "gnome"; + style = "adwaita-dark"; + }; + + programs.kdeconnect = { + enable = true; + package = pkgs.valent; + }; +} diff --git a/hosts/Alfa/conf/GM/DE/impde.nix b/hosts/Alfa/conf/GM/DE/impde.nix new file mode 100644 index 0000000..95e1f89 --- /dev/null +++ b/hosts/Alfa/conf/GM/DE/impde.nix @@ -0,0 +1,18 @@ +{ + config, + lib, + inputs, + pkgs, + ... +}: +{ + + imports = [ + #./cosmic.nix + #./gnome.nix + #./kde.nix + ./niri/niri.nix + + ]; + +} diff --git a/hosts/Alfa/conf/GM/DE/kde.nix b/hosts/Alfa/conf/GM/DE/kde.nix new file mode 100644 index 0000000..0f68456 --- /dev/null +++ b/hosts/Alfa/conf/GM/DE/kde.nix @@ -0,0 +1,43 @@ +{ + config, + lib, + inputs, + pkgs, + ... +}: +{ + + ## Ativar ambiente gráfico KDE Plasma 6 e gerenciador de login + services = { + desktopManager.plasma6.enable = true; + }; + services.displayManager.plasma-login-manager = { + enable = true; + }; + + programs.kdeconnect.enable = true; + + environment.systemPackages = with pkgs; [ + kdePackages.partitionmanager + kdePackages.filelight + kdePackages.qtmultimedia + kdePackages.kcalc + kdePackages.sddm-kcm + kdePackages.wallpaper-engine-plugin + kdePackages.krdp + kdePackages.accounts-qt + ]; + + environment.plasma6.excludePackages = with pkgs.kdePackages; [ + plasma-browser-integration + # konsole + elisa + ]; + + xdg.portal = { + enable = true; + extraPortals = [ pkgs.kdePackages.xdg-desktop-portal-kde ]; + config.common.default = "*"; + }; + +} diff --git a/hosts/Alfa/conf/GM/DE/niri/dms.nix b/hosts/Alfa/conf/GM/DE/niri/dms.nix new file mode 100644 index 0000000..8ee3829 --- /dev/null +++ b/hosts/Alfa/conf/GM/DE/niri/dms.nix @@ -0,0 +1,41 @@ +{ + config, + lib, + inputs, + pkgs, + ... +}: +{ + + programs.dms-shell = { + enable = true; + package = inputs.dms.packages.${pkgs.stdenv.hostPlatform.system}.default; + #quickshell.package = inputs.quickshell.packages.${pkgs.stdenv.hostPlatform.system}.quickshell; + + systemd = { + enable = true; # Systemd service for auto-start + restartIfChanged = true; # Auto-restart dms.service when dms-shell changes + }; + + plugins = { + dankBitwarden.enable = true; + dankKDEConnect.enable = true; + linuxWallpaperEngine.enable = true; + nvidiaGpuMonitor.enable = true; + }; + + # Core features + enableSystemMonitoring = true; # System monitoring widgets (dgop) + enableVPN = true; # VPN management widget + enableDynamicTheming = true; # Wallpaper-based theming (matugen) + enableAudioWavelength = true; # Audio visualizer (cava) + enableCalendarEvents = false; # Calendar integration (khal) + }; + + imports = [ + inputs.dms.nixosModules.dank-material-shell + inputs.dms-plugin-registry.modules.default + inputs.dms.nixosModules.greeter + ]; + +} diff --git a/hosts/Alfa/conf/GM/DE/niri/niri.nix b/hosts/Alfa/conf/GM/DE/niri/niri.nix new file mode 100644 index 0000000..6592262 --- /dev/null +++ b/hosts/Alfa/conf/GM/DE/niri/niri.nix @@ -0,0 +1,88 @@ +{ + config, + lib, + inputs, + pkgs, + ... +}: +{ + + nixpkgs.overlays = [ inputs.niri.overlays.niri ]; + programs.niri = { + enable = true; + package = pkgs.niri-unstable; + }; + + imports = [ + ./thunar.nix + ./dms.nix + #./noctalia.nix + ]; + + services.dbus.enable = true; + security.polkit.enable = true; + systemd.user.services.niri-flake-polkit.enable = false; + programs.xwayland.enable = true; + programs.kdeconnect.enable = true; + + services = { + greetd = + let + session = { + #command = "${pkgs.hyprland}/bin/Hyprland"; + command = "${pkgs.niri}/bin/niri-session"; + user = "gui"; + }; + in + { + enable = true; + settings = { + terminal.vt = 1; + default_session = session; + initial_session = session; + }; + }; + }; + + environment.systemPackages = with pkgs; [ + dgop + ]; + + #systemd.user.services.polkit-gnome-authentication-agent-1 = { + #description = "polkit-gnome-authentication-agent-1"; + #wantedBy = [ "graphical-session.target" ]; + #after = [ "graphical-session.target" ]; + #serviceConfig = { + # Type = "simple"; + # ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"; + # Restart = "on-failure"; + # RestartSec = 1; + # TimeoutStopSec = 10; + #}; + #}; + + #xdg.portal = { + # enable = true; + # config = { + # niri."org.freedesktop.impl.portal.FileChooser" = "gtk"; + # niri.default = "gnome"; + # common.default = "gnome"; + # obs.default = "gnome"; + # }; + # extraPortals = with pkgs; [ + # xdg-desktop-portal-gnome + # xdg-desktop-portal-gtk + # ]; + #}; + + #xdg.portal = { + # enable = true; + # extraPortals = [ + # pkgs.xdg-desktop-portal-gnome + # pkgs.xdg-desktop-portal-gtk + # pkgs.xdg-desktop-portal-wlr + # ]; + # config.common.default = "*1"; + #}; + +} diff --git a/hosts/Alfa/conf/GM/DE/niri/noctalia.nix b/hosts/Alfa/conf/GM/DE/niri/noctalia.nix new file mode 100644 index 0000000..5d86b9c --- /dev/null +++ b/hosts/Alfa/conf/GM/DE/niri/noctalia.nix @@ -0,0 +1,13 @@ +{ pkgs, inputs, ... }: +{ + environment.systemPackages = with pkgs; [ + inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.default + ]; + + nix.settings = { + extra-substituters = [ "https://noctalia.cachix.org" ]; + extra-trusted-public-keys = [ + "noctalia.cachix.org-1:pCOR47nnMEo5thcxNDtzWpOxNFQsBRglJzxWPp3dkU4=" + ]; + }; +} diff --git a/hosts/Alfa/conf/GM/DE/niri/thunar.nix b/hosts/Alfa/conf/GM/DE/niri/thunar.nix new file mode 100644 index 0000000..ad4cee9 --- /dev/null +++ b/hosts/Alfa/conf/GM/DE/niri/thunar.nix @@ -0,0 +1,27 @@ +{ + config, + lib, + inputs, + pkgs, + ... +}: +{ + + programs.xfconf.enable = true; + + programs.thunar = { + enable = true; + + plugins = with pkgs; [ + thunar-archive-plugin + thunar-vcs-plugin + thunar-volman + ]; + }; + + services = { + gvfs.enable = true; + tumbler.enable = true; + }; + +} diff --git a/hosts/Alfa/conf/GM/Pkgs/imp_pkgs.nix b/hosts/Alfa/conf/GM/Pkgs/imp_pkgs.nix new file mode 100644 index 0000000..46815f6 --- /dev/null +++ b/hosts/Alfa/conf/GM/Pkgs/imp_pkgs.nix @@ -0,0 +1,14 @@ +{ + config, + lib, + inputs, + pkgs, + ... +}: +{ + + imports = [ + ./pkgsconfig.nix + ./pkgs.nix + ]; +} diff --git a/hosts/Alfa/conf/GM/Pkgs/pkgs.nix b/hosts/Alfa/conf/GM/Pkgs/pkgs.nix new file mode 100644 index 0000000..64869cd --- /dev/null +++ b/hosts/Alfa/conf/GM/Pkgs/pkgs.nix @@ -0,0 +1,74 @@ +{ + config, + lib, + inputs, + pkgs, + ... +}: +{ + + ## Permitir pacotes não-livres + nixpkgs.config.allowUnfree = true; + + environment.systemPackages = with pkgs; [ + ## Aplicativos sociais + bitwarden-desktop + sunshine + tailscale + + ## inputs + inputs.zen-browser.packages.${stdenv.hostPlatform.system}.default + inputs.shiru.packages.${pkgs.stdenv.hostPlatform.system}.default + + ## Utilitários do sistema e dev tools + nh + home-manager + vulkan-tools + vulkan-loader + vulkan-utility-libraries + gcc + ethtool + efibootmgr + docker-compose + distroshelf + distrobox + freerdp + dmidecode + i2c-tools + gitFull + kdePackages.partitionmanager + usbutils + openrgb + winetricks + #wineWowPackages.staging + wine + haguichi + logmein-hamachi + zerotierone + kdePackages.ark + loupe + lazygit + gnumake + onlyoffice-desktopeditors + adwaita-qt + adwaita-qt6 + winboat + xwayland-satellite + linux-wallpaperengine + #kdePackages.polkit-qt-1 + kdePackages.krdp + cloudflared + + ## inputs stable + #inputs.nixpkgs-stable.legacyPackages.${pkgs.stdenv.hostPlatform.system} + ]; + + programs.gpu-screen-recorder.enable = true; + services.logmein-hamachi.enable = true; + programs.haguichi.enable = true; + + nixpkgs.config.permittedInsecurePackages = [ + "electron-38.8.4" + ]; + +} diff --git a/hosts/Alfa/conf/GM/Pkgs/pkgsconfig.nix b/hosts/Alfa/conf/GM/Pkgs/pkgsconfig.nix new file mode 100644 index 0000000..ac66a16 --- /dev/null +++ b/hosts/Alfa/conf/GM/Pkgs/pkgsconfig.nix @@ -0,0 +1,74 @@ +{ + config, + lib, + inputs, + pkgs, + ... +}: +{ + + ## configuraçao da steam + programs = { + steam = { + enable = true; + remotePlay.openFirewall = true; + dedicatedServer.openFirewall = true; + localNetworkGameTransfers.openFirewall = true; + }; + gamescope.enable = true; + gamemode.enable = true; + }; + + ## Configuraçoes do obs + + #programs.obs-studio = { + # enable = true; + # #optional Nvidia hardware acceleration + # package = ( + # pkgs.obs-studio.override { + # cudaSupport = true; + # } + # ); + # plugins = with pkgs.obs-studio-plugins; [ + # wlrobs + # obs-pipewire-audio-capture + # obs-gstreamer + # obs-vkcapture + # ]; + # #enableVirtualCamera = true; + #}; + + ## Configuraçoes do LACT + environment.systemPackages = with pkgs; [ lact ]; + systemd.services.lact = { + description = "GPU Control Daemon"; + after = [ "multi-user.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + ExecStart = "${pkgs.lact}/bin/lact daemon"; + }; + enable = true; + }; + + ## Fontes + fonts.fontDir.enable = true; + fonts.fontconfig.enable = true; + fonts.packages = with pkgs; [ + nerd-fonts.jetbrains-mono + nerd-fonts.ubuntu-mono + nerd-fonts.ubuntu-sans + nerd-fonts.dejavu-sans-mono + nerd-fonts.fira-code + nerd-fonts.overpass + noto-fonts + liberation_ttf + dejavu_fonts + ]; + + ## OpenRGB + services.hardware.openrgb = { + enable = true; + motherboard = "amd"; + package = pkgs.openrgb-with-all-plugins; # enable all plugins + }; +} diff --git a/hosts/Alfa/conf/GM/configs/cfsystem.nix b/hosts/Alfa/conf/GM/configs/cfsystem.nix new file mode 100644 index 0000000..bac4c4a --- /dev/null +++ b/hosts/Alfa/conf/GM/configs/cfsystem.nix @@ -0,0 +1,79 @@ +{ + config, + lib, + inputs, + pkgs, + ... +}: +{ + + ## Configuração da internet + networking = { + networkmanager.enable = true; + interfaces.enp9s0.wakeOnLan.enable = true; + firewall.allowedTCPPorts = [ 22 ]; + firewall.allowedUDPPorts = [ + ]; + }; + ## Ativar Bluetooth + hardware.bluetooth.enable = true; + + ## Configuração de áudio + services = { + pulseaudio.enable = false; + pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + #jack.enable = true; # Descomente se usar aplicações JACK + }; + }; + security.rtkit.enable = true; + + ## Configuraçao de idioma + + ## Definir fuso horário + time.timeZone = "America/Bahia"; + + ## Configurações de idioma e localidade + i18n = { + defaultLocale = "pt_BR.UTF-8"; + extraLocaleSettings = { + LC_ADDRESS = "pt_BR.UTF-8"; + LC_IDENTIFICATION = "pt_BR.UTF-8"; + LC_MEASUREMENT = "pt_BR.UTF-8"; + LC_MONETARY = "pt_BR.UTF-8"; + LC_NAME = "pt_BR.UTF-8"; + LC_NUMERIC = "pt_BR.UTF-8"; + LC_PAPER = "pt_BR.UTF-8"; + LC_TELEPHONE = "pt_BR.UTF-8"; + LC_TIME = "pt_BR.UTF-8"; + }; + }; + + ## Configurar layout do teclado no X11 e console + services.xserver.xkb = { + layout = "br"; + variant = ""; + }; + console.keyMap = "br-abnt2"; + + ## Alias do fish + programs.fish.shellAliases = { + # upd = "sudo nix flake update --flake /etc/nixos && sudo nixos-rebuild switch --flake path:/etc/nixos#Alfa"; + upd = "nh home switch -a -u && nh os switch -a"; + gitupdate = "git add . && git commit && git push origin main"; + }; + + ## Config do fish + programs.fish.enable = true; + programs.bash = { + interactiveShellInit = '' + if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]] + then + shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION="" + exec ${pkgs.fish}/bin/fish $LOGIN_OPTION + fi ''; + }; +} diff --git a/hosts/Alfa/conf/GM/configs/imp.nix b/hosts/Alfa/conf/GM/configs/imp.nix new file mode 100644 index 0000000..701828c --- /dev/null +++ b/hosts/Alfa/conf/GM/configs/imp.nix @@ -0,0 +1,18 @@ +{ + config, + lib, + inputs, + pkgs, + ... +}: +{ + + imports = [ + ./cfsystem.nix + ./nixhelper.nix + ./nvidia.nix + ./patchs.nix + ./self-host.nix + ./kernel.nix + ]; +} diff --git a/hosts/Alfa/conf/GM/configs/kernel.nix b/hosts/Alfa/conf/GM/configs/kernel.nix new file mode 100644 index 0000000..c2e2a76 --- /dev/null +++ b/hosts/Alfa/conf/GM/configs/kernel.nix @@ -0,0 +1,25 @@ +{ + config, + lib, + inputs, + pkgs, + ... +}: +{ + + boot.kernelPackages = + let + customKernel = + inputs.nix-cachyos-kernel.legacyPackages.x86_64-linux.linuxPackages-cachyos-latest.kernel.override + { + processorOpt = "native"; + + lto = "thin"; + + scheduler = "bore"; + + }; + in + pkgs.linuxPackagesFor customKernel; + +} diff --git a/hosts/Alfa/conf/GM/configs/nixhelper.nix b/hosts/Alfa/conf/GM/configs/nixhelper.nix new file mode 100644 index 0000000..218dfa6 --- /dev/null +++ b/hosts/Alfa/conf/GM/configs/nixhelper.nix @@ -0,0 +1,62 @@ +{ + config, + lib, + inputs, + pkgs, + ... +}: +{ + + programs = { + ## nix-ld + nix-ld = { + enable = true; + libraries = with pkgs; [ ]; + }; + ## nh + nh = { + enable = true; + clean.enable = true; + clean.extraArgs = "--keep-since 8d --keep 7"; + flake = "/etc/nixos"; # sets NH_OS_FLAKE variable for you + }; + ## appimage + appimage = { + enable = true; + binfmt = true; + }; + ## Cache + ccache.enable = true; + ccache.cacheDir = "/var/cache/ccache"; + }; + + nix = { + settings = { + cores = 0; + max-jobs = "auto"; + auto-optimise-store = true; + extra-sandbox-paths = [ "/var/cache/ccache" ]; + }; + + ## Lix + package = pkgs.lixPackageSets.latest.lix; + + ## ativaçao do flakes + settings.experimental-features = [ + "nix-command" + "flakes" + ]; + nixPath = lib.mapAttrsToList (key: _: "${key}=flake:${key}") config.nix.registry; + registry = lib.mapAttrs (_: value: { flake = value; }) ( + lib.filterAttrs (_: value: lib.isType "flake" value) inputs + ); + settings.flake-registry = ""; + }; + + services = { + flatpak = { + enable = true; + }; + }; + +} diff --git a/hosts/Alfa/conf/GM/configs/nvidia.nix b/hosts/Alfa/conf/GM/configs/nvidia.nix new file mode 100644 index 0000000..93da9c6 --- /dev/null +++ b/hosts/Alfa/conf/GM/configs/nvidia.nix @@ -0,0 +1,34 @@ +{ + config, + lib, + inputs, + pkgs, + ... +}: +{ + + ## Driver da nvidia proprietario + + services.xserver.videoDrivers = [ "nvidia" ]; + hardware = { + graphics.enable = true; + nvidia.open = false; # # Se sua placa for pascal pra cima troque isso para true + nvidia.package = config.boot.kernelPackages.nvidiaPackages.legacy_580; + }; + + ## Teste sobre o nvk nao recomendo usar + + #services.xserver.videoDrivers = [ "nouveau" ]; + #hardware.graphics = { + # enable = true; + # extraPackages = with pkgs; [ + # mesa + # ]; + #}; + + #hardware.enableRedistributableFirmware = true; + #environment.variables = { + # MESA_VK_DRIVER_OVERRIDE = "nvk"; + # VK_ICD_FILENAMES = "/run/opengl-driver/share/vulkan/icd.d/nouveau_icd.x86_64.json"; + #}; +} diff --git a/hosts/Alfa/conf/GM/configs/patchs.nix b/hosts/Alfa/conf/GM/configs/patchs.nix new file mode 100644 index 0000000..4838fb5 --- /dev/null +++ b/hosts/Alfa/conf/GM/configs/patchs.nix @@ -0,0 +1,114 @@ +{ + config, + lib, + inputs, + pkgs, + ... +}: +{ + + ## Variaveis de ambiente contendo o aumento de cache para placas da nvidia + environment.variables = { + __GL_SHADER_DISK_CACHE_SIZE = "12000000000"; + VK_LAYER_PATH = "${pkgs.vulkan-validation-layers}/share/vulkan/explicit_layer.d"; + }; + + ## Configuraçoes de boot para otimzar o kernel e alguns patchs para nvidia + boot = { + modprobeConfig.enable = true; + kernelModules = [ "tcp_bbr" ]; + extraModprobeConfig = "options nvidia NVreg_UsePageAttributeTable=1 \ + NVreg_InitializeSystemMemoryAllocations=0 \ + NVreg_DynamicPowerManagement=0x02"; + kernel.sysctl = { + "kernel.split_lock_mitigate" = 0; + "kernel.nmi_watchdog" = 0; + "net.core.netdev_max_backlog" = 4096; + "fs.file-max" = 2097152; + "net.ipv4.tcp_congestion_control" = "bbr"; + }; + }; + + services = { + + earlyoom = { + enable = true; + freeSwapThreshold = 2; + freeMemThreshold = 2; + extraArgs = [ + "-g" + "--avoid" + "'^(X|plasma.*|konsole|kwin|wayland|gnome.*)$'" + ]; + }; + + ## Otimizaçao do Udev para placas de Video da Nvidia + udev = { + enable = true; + extraRules = '' + # Enable runtime PM for NVIDIA VGA/3D controller devices on driver bind + ACTION=="add|bind", SUBSYSTEM=="pci", DRIVERS=="nvidia", \ + ATTR{vendor}=="0x10de", ATTR{class}=="0x03[0-9]*", \ + TEST=="power/control", ATTR{power/control}="auto" + + # Disable runtime PM for NVIDIA VGA/3D controller devices on driver unbind + ACTION=="remove|unbind", SUBSYSTEM=="pci", DRIVERS=="nvidia", \ + ATTR{vendor}=="0x10de", ATTR{class}=="0x03[0-9]*", \ + TEST=="power/control", ATTR{power/control}="on" + + # enable udev xiaomi + SUBSYSTEM=="usb", ATTR{idVendor}=="2717", MODE="0666", GROUP="plugdev" + ''; + }; + + preload-ng = { + enable = true; + settings = { + cycle = 15; + memTotal = -5; + memFree = 70; + memCached = 10; + memBuffers = 50; + minSize = 1000000; + processes = 60; + sortStrategy = 0; + autoSave = 1800; + mapPrefix = "/nix/store/;/run/current-system/;!/"; + exePrefix = "/nix/store/;/run/current-system/;!/"; + }; + }; + }; + + systemd.services.set-min-free-mem = { + description = "Set vm.min_free_kbytes dynamically"; + wantedBy = [ "multi-user.target" ]; + after = [ "local-fs.target" ]; + serviceConfig = { + User = "root"; + RemainAfterExit = true; + }; + script = '' + TOTAL_MEM=$(${pkgs.gawk}/bin/awk '/MemTotal/ {printf "%.0f", $2 * 0.01}' /proc/meminfo) + if [ -z "$TOTAL_MEM" ] || [ "$TOTAL_MEM" -eq 0 ]; then + echo "Failed to calculate memory size" >&2 + exit 1 + fi + ${pkgs.sysctl}/bin/sysctl -w vm.min_free_kbytes=$TOTAL_MEM + ''; + }; + + ## sistema de compressao compressao brtfs + fileSystems = { + "/" = { + options = [ "compress=zstd:3" ]; + }; + }; + + ## confiuraçao da zram + zramSwap = { + enable = true; + memoryPercent = 40; + algorithm = "zstd"; + }; + +} diff --git a/hosts/Alfa/conf/GM/configs/self-host.nix b/hosts/Alfa/conf/GM/configs/self-host.nix new file mode 100644 index 0000000..1a03566 --- /dev/null +++ b/hosts/Alfa/conf/GM/configs/self-host.nix @@ -0,0 +1,71 @@ +{ + config, + lib, + inputs, + pkgs, + ... +}: +{ + + ## tailscale + services.tailscale = { + enable = true; + extraUpFlags = [ + "--exit-node-allow-lan-access=true" + "--ssh" + "--accept-dns=true" + ]; + }; + networking.nftables.enable = true; + networking.firewall = { + enable = true; + allowedTCPPorts = [ + 47984 + 47989 + 48910 + ]; + allowedUDPPortRanges = [ + { + from = 47998; + to = 48000; + } + { + from = 48002; + to = 48010; + } + ]; + trustedInterfaces = [ "tailscale0" ]; + allowedUDPPorts = [ config.services.tailscale.port ]; + }; + + ## Configuraçao de Docker + + boot.kernel.sysctl = { + "net.ipv4.ip_unprivileged_port_start" = 53; + "net.ipv6.conf.all.forwarding" = true; + }; + + users.users.gui.extraGroups = [ "docker" ]; + users.groups.docker.gid = 131; + virtualisation.docker = { + enable = true; + + #rootless = { + # enable = true; + # setSocketVariable = true; + #}; + }; + + services.openssh = { + enable = true; + }; + + services.sunshine = { + enable = true; + autoStart = true; + capSysAdmin = true; + openFirewall = true; + + }; + +} diff --git a/hosts/Alfa/conf/GM/imp.nix b/hosts/Alfa/conf/GM/imp.nix new file mode 100644 index 0000000..dcf9c4b --- /dev/null +++ b/hosts/Alfa/conf/GM/imp.nix @@ -0,0 +1,8 @@ +{ config, lib, inputs, pkgs, ... }: { + + imports = [ + ./configs/imp.nix + ./DE/impde.nix + ./Pkgs/imp_pkgs.nix + ]; +} diff --git a/hosts/Alfa/conf/HM/configs/cfhome.nix b/hosts/Alfa/conf/HM/configs/cfhome.nix new file mode 100644 index 0000000..ce12d04 --- /dev/null +++ b/hosts/Alfa/conf/HM/configs/cfhome.nix @@ -0,0 +1,49 @@ +{ + config, + lib, + inputs, + pkgs, + ... +}: +{ + + ## starship + programs.starship = { + enable = true; + settings = lib.importTOML "${config.programs.starship.package}/share/starship/presets/nerd-font-symbols.toml"; + enableFishIntegration = true; + }; + + ## Configuraçao Git + programs.git.settings = { + enable = true; + user.email = "darkgui@protonmail.com"; + user.name = "DarkGui"; + credential.helper = "store"; + }; + + ## Pacotes extras + fonts.fontconfig.enable = true; + home.packages = with pkgs; [ + + ## Fish + fishPlugins.done + fishPlugins.fzf-fish + fishPlugins.forgit + fishPlugins.hydro + fzf + fishPlugins.grc + grc + + ## Fontes + nerd-fonts.jetbrains-mono + nerd-fonts.ubuntu-mono + nerd-fonts.ubuntu-sans + nerd-fonts.dejavu-sans-mono + nerd-fonts.fira-code + nerd-fonts.overpass + noto-fonts + liberation_ttf + dejavu_fonts + ]; +} diff --git a/hosts/Alfa/conf/HM/imp.nix b/hosts/Alfa/conf/HM/imp.nix new file mode 100644 index 0000000..bd14104 --- /dev/null +++ b/hosts/Alfa/conf/HM/imp.nix @@ -0,0 +1,14 @@ +{ + config, + lib, + inputs, + pkgs, + ... +}: +{ + + imports = [ + ./configs/cfhome.nix + ./pkgs/pkgs.nix + ]; +} diff --git a/hosts/Alfa/conf/HM/pkgs/pkgs.nix b/hosts/Alfa/conf/HM/pkgs/pkgs.nix new file mode 100644 index 0000000..bbe72ae --- /dev/null +++ b/hosts/Alfa/conf/HM/pkgs/pkgs.nix @@ -0,0 +1,75 @@ +{ + config, + lib, + inputs, + pkgs, + ... +}: +{ + ## pacotes home-manager + home.packages = with pkgs; [ + + ## aplicativos sociais + telegram-desktop + pear-desktop + teams-for-linux + #(discord.override {withVencord = true;}) + (discord.override { withEquicord = true; }) + jellyfin-desktop + + ## Jogos + lutris + faugus-launcher + heroic + prismlauncher + steam + adwsteamgtk + ryubing + xclicker + #mangojuice + goverlay + mangohud + protonplus + hydralauncher + lsfg-vk + lsfg-vk-ui + android-tools + zed-editor + nil + nixd + + ## Utilitários do sistema e dev tools + fastfetch + flameshot + #handbrake + easyeffects + qbittorrent + cpu-x + git + btop-cuda + vscodium + flatpak + wget + kitty + vlc + tree + python314 + unrar + droidcam + motrix + mission-center + nodejs + lxappearance + nwg-look + #rustdesk + anydesk + libargon2 + openssl_oqs + icu + + ## Dev + godot + + ]; + +} diff --git a/hosts/Alfa/configuration.nix b/hosts/Alfa/configuration.nix new file mode 100644 index 0000000..10b4a3e --- /dev/null +++ b/hosts/Alfa/configuration.nix @@ -0,0 +1,71 @@ +{ + config, + lib, + inputs, + pkgs, + ... +}: +{ + imports = [ + # Importa a configuração de hardware detectada + ./hardware-configuration.nix + ./conf/GM/imp.nix + ]; + + ## Configuração do bootloader + boot = { + #kernelPackages = pkgs.linuxPackages_latest; + #kernelPackages = pkgs.linuxPackages_cachyos; + #kernelPackages = inputs.nix-cachyos-kernel.legacyPackages.x86_64-linux.linuxPackages-cachyos-latest-lto-x86_64-v3; + loader.systemd-boot.enable = true; + loader.efi.canTouchEfiVariables = true; + loader.systemd-boot.configurationLimit = 10; + }; + + networking.hostName = "Alfa"; # Defina o nome da sua máquina + + services = { + xserver.enable = false; # Ativar sistema gráfico X11 + printing.enable = false; + }; + + ## Definição do usuário normal + users.users.gui = { + isNormalUser = true; + description = "Gui"; + extraGroups = [ + "networkmanager" + "wheel" + ]; + packages = with pkgs; [ ]; + }; + + ## sudo-rs + security = { + sudo.enable = false; + sudo-rs = { + enable = true; + execWheelOnly = true; + wheelNeedsPassword = true; + }; + }; + + system.stateVersion = "25.11"; # versao do nix + + networking = { + networkmanager.enable = true; + interfaces.enp9s0.wakeOnLan.enable = true; + firewall.allowedTCPPorts = [ ]; + firewall.allowedUDPPorts = [ + ]; + }; + services = { + displayManager.autoLogin.enable = true; + displayManager.autoLogin.user = "gui"; + }; + + nix.settings.experimental-features = [ + "nix-command" + "flakes" + ]; +} diff --git a/hosts/Alfa/hardware-configuration.nix b/hosts/Alfa/hardware-configuration.nix new file mode 100644 index 0000000..4186cdc --- /dev/null +++ b/hosts/Alfa/hardware-configuration.nix @@ -0,0 +1,53 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ + config, + lib, + pkgs, + modulesPath, + ... +}: + +{ + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ + "xhci_pci" + "ahci" + "nvme" + "usb_storage" + "usbhid" + "sd_mod" + ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = { + device = "/dev/disk/by-uuid/adaa7917-2996-4cf5-9664-4832b1fc200b"; + fsType = "btrfs"; + options = [ "subvol=@" ]; + }; + + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/C5F0-5261"; + fsType = "vfat"; + options = [ + "fmask=0077" + "dmask=0077" + ]; + }; + + fileSystems."/home" = { + device = "/dev/disk/by-uuid/f82f33f6-2446-47b7-a612-e3ef776919bd"; + fsType = "xfs"; + }; + + swapDevices = [ ]; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/hosts/Alfa/home.nix b/hosts/Alfa/home.nix new file mode 100644 index 0000000..0086ad8 --- /dev/null +++ b/hosts/Alfa/home.nix @@ -0,0 +1,61 @@ +{ + pkgs, + config, + lib, + ... +}: +{ + + imports = [ + ./conf/HM/imp.nix + ]; + + home = { + username = "gui"; + homeDirectory = "/home/gui"; + stateVersion = "25.11"; + }; + + programs = { + home-manager.enable = true; + fish.enable = true; + }; + + nixpkgs.config.allowUnfree = true; + + mods = { + kitty.enable = true; + flakePath = "/self"; + }; + + gtk = { + enable = true; + theme = { + name = "Adwaita-dark"; + package = pkgs.gnome-themes-extra; + }; + cursorTheme = { + name = "Adwaita"; + # package = pkgs.Adwaita-awcursors; + }; + gtk3.extraConfig = { + gtk-application-prefer-dark-theme = 1; + "gtk-cursor-theme-name" = "Adwaita"; + }; + gtk4.extraConfig = { + gtk-application-prefer-dark-theme = 1; + Settings = "gtk-cursor-theme-name=Adwaita"; + }; + }; + + qt = { + enable = true; + style = { + name = "adwaita-dark"; + }; + }; + + xdg.configFile."gtk-3.0/settings.ini".force = true; + xdg.configFile."gtk-4.0/settings.ini".force = true; + +} diff --git a/mods/home/home.nix b/mods/home/home.nix new file mode 100644 index 0000000..d9dab90 --- /dev/null +++ b/mods/home/home.nix @@ -0,0 +1,14 @@ +{ lib, ... }: +{ + imports = [ + ./kitty/kitty.nix + ]; + + options.mods = { + flakePath = lib.mkOption { + type = lib.types.str; + default = lib.mkError "Option 'mods.flakePath' must be explicitly set."; + description = "The absolute path of this flake. Must be explicitly set."; + }; + }; +} diff --git a/mods/home/kitty/kitty.conf b/mods/home/kitty/kitty.conf new file mode 100644 index 0000000..edc0224 --- /dev/null +++ b/mods/home/kitty/kitty.conf @@ -0,0 +1,69 @@ +include ./theme.conf + +wayland_enable_ime no + +font_size 10 +underline_exclusion 0 + +cursor_shape beam +cursor_blink_interval 0.3 +cursor_trail 3 +cursor_trail_decay 0.1 0.4 + +scrollback_lines 5000 +scrollback_pager_history_size 100 + +show_hyperlink_targets yes + +repaint_delay 15 + +tab_bar_edge top +tab_bar_style powerline +tab_powerline_style slanted +tab_bar_align left +tab_bar_min_tabs 1 +active_tab_font_style normal + +enabled_layouts fat:bias=60,stack +window_margin_width 2.5 +window_border_width 1 +draw_minimal_borders no + +background_opacity 0.9 + +allow_remote_control yes + +map alt+f5 load_config_file +map alt+minus resize_window narrower +map alt+underline resize_window shorter +map ctrl+alt+minus change_font_size all -0.5 +map alt+equal resize_window wider +map alt+plus resize_window taller +map ctrl+alt+equal change_font_size all +0.5 +map alt+q close_window_with_confirmation ignore-shell +map alt+shift+q close_tab +map alt+r set_window_title +map alt+shift+r set_tab_title +map alt+u scroll_line_up +map alt+shift+u scroll_to_prompt -1 +map alt+p previous_tab +map alt+shift+p detach_window tab-left +map alt+d scroll_line_down +map alt+shift+d scroll_to_prompt 1 +map alt+h neighboring_window left +map alt+shift+h move_window left +map alt+j neighboring_window bottom +map alt+shift+j move_window bottom +map alt+k neighboring_window top +map alt+shift+k move_window top +map alt+l neighboring_window right +map alt+shift+l move_window right +map alt+z toggle_layout stack +map ctrl+c copy_or_interrupt +map ctrl+v paste_from_clipboard +map alt+n next_tab +map alt+shift+n detach_window tab-right +map alt+t new_window +map alt+shift+t new_tab + +# TODO: detach window to tab-left, and if tab-left doesn't exist create it diff --git a/mods/home/kitty/kitty.nix b/mods/home/kitty/kitty.nix new file mode 100644 index 0000000..d64d6bc --- /dev/null +++ b/mods/home/kitty/kitty.nix @@ -0,0 +1,20 @@ +{ + config, + lib, + ... +}: +{ + options.mods.kitty = { + enable = lib.mkEnableOption "kitty"; + }; + + config = lib.mkIf config.mods.kitty.enable { + programs.kitty = { + enable = true; + extraConfig = '' + include ${config.mods.flakePath}/mods/home/kitty/kitty.conf + ''; + settings.clear_all_shortcuts = "yes"; + }; + }; +} diff --git a/mods/home/kitty/theme.conf b/mods/home/kitty/theme.conf new file mode 100644 index 0000000..d8c94a8 --- /dev/null +++ b/mods/home/kitty/theme.conf @@ -0,0 +1,37 @@ +cursor #f4dbe2 +cursor_text_color background + +url_color #eec6e9 +url_style dotted + +active_border_color #f4dbe2 +inactive_border_color #121622 +bell_border_color #efd286 + +active_tab_foreground #f4dbe2 +active_tab_background #121622 +inactive_tab_foreground #aeb8d4 +inactive_tab_background #060810 + +foreground #ced4e6 +background #060810 +transparent_background_colors #121622 #1c2232 #272d41 #313950 #46516f +selection_foreground none +selection_background #46516f +color0 #121622 +color1 #ea8f80 +color2 #6ac27f +color3 #c7a84d +color4 #92a8eb +color5 #db8ad4 +color6 #52bcce +color7 #aeb8d4 +color8 #7683a8 +color9 #f5b3a7 +color10 #7ae092 +color11 #e5c25f +color12 #b3c4f5 +color13 #eaafe4 +color14 #6bd8ea +color15 #ced4e6 + diff --git a/mods/nixos/nixos.nix b/mods/nixos/nixos.nix new file mode 100644 index 0000000..5224064 --- /dev/null +++ b/mods/nixos/nixos.nix @@ -0,0 +1,15 @@ +{ lib, ... }: +{ + imports = [ + ./fhs.nix + ./nh.nix + ]; + + options.mods = { + flakePath = lib.mkOption { + type = lib.types.str; + default = lib.mkError "Option 'mods.flakePath' must be explicitly set."; + description = "The absolute path of this flake. Must be explicitly set."; + }; + }; +}