diff --git a/hm/dotfiles/config.nu b/dotfiles/config.nu similarity index 100% rename from hm/dotfiles/config.nu rename to dotfiles/config.nu diff --git a/hm/dotfiles/env.nu b/dotfiles/env.nu similarity index 100% rename from hm/dotfiles/env.nu rename to dotfiles/env.nu diff --git a/hm/dotfiles/foot.ini b/dotfiles/foot.ini similarity index 100% rename from hm/dotfiles/foot.ini rename to dotfiles/foot.ini diff --git a/hm/dotfiles/sway_config b/dotfiles/sway_config similarity index 100% rename from hm/dotfiles/sway_config rename to dotfiles/sway_config diff --git a/hm/dotfiles/wezterm.lua b/dotfiles/wezterm.lua similarity index 88% rename from hm/dotfiles/wezterm.lua rename to dotfiles/wezterm.lua index 8c25842..bf95874 100644 --- a/hm/dotfiles/wezterm.lua +++ b/dotfiles/wezterm.lua @@ -8,7 +8,7 @@ local config = wezterm.config_builder() -- For example, changing the color scheme: config.color_scheme = 'Monokai (base16)' -config.font_size = 11.0 +config.font_size = 12.0 config.tab_bar_at_bottom = true config.use_fancy_tab_bar = false config.hide_tab_bar_if_only_one_tab = true @@ -21,5 +21,7 @@ config.window_padding = { config.term = "wezterm" +-- config.font = wezterm.font "Fairfax Hax HD" + -- and finally, return the configuration to wezterm return config diff --git a/hm/dotfiles/wofi.css b/dotfiles/wofi.css similarity index 100% rename from hm/dotfiles/wofi.css rename to dotfiles/wofi.css diff --git a/flake.lock b/flake.lock index 74db818..6af0130 100644 --- a/flake.lock +++ b/flake.lock @@ -37,11 +37,11 @@ "base16-helix": { "flake": false, "locked": { - "lastModified": 1725860795, - "narHash": "sha256-Z2o8VBPW3I+KKTSfe25kskz0EUj7MpUh8u355Z1nVsU=", + "lastModified": 1736852337, + "narHash": "sha256-esD42YdgLlEh7koBrSqcT7p2fsMctPAcGl/+2sYJa2o=", "owner": "tinted-theming", "repo": "base16-helix", - "rev": "7f795bf75d38e0eea9fed287264067ca187b88a9", + "rev": "03860521c40b0b9c04818f2218d9cc9efc21e7a5", "type": "github" }, "original": { @@ -53,33 +53,34 @@ "base16-vim": { "flake": false, "locked": { - "lastModified": 1731949548, - "narHash": "sha256-XIDexXM66sSh5j/x70e054BnUsviibUShW7XhbDGhYo=", + "lastModified": 1732806396, + "narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=", "owner": "tinted-theming", "repo": "base16-vim", - "rev": "61165b1632409bd55e530f3dbdd4477f011cadc6", + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", "type": "github" }, "original": { "owner": "tinted-theming", "repo": "base16-vim", + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", "type": "github" } }, "chaotic": { "inputs": { + "fenix": "fenix", "flake-schemas": "flake-schemas", "home-manager": "home-manager", "jovian": "jovian", - "nixpkgs": "nixpkgs", - "nixpkgs-small": "nixpkgs-small" + "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1734987419, - "narHash": "sha256-2K4V615Y29QhMUShX9k52l7gXF2erkq9yH9qGRZGKQ0=", + "lastModified": 1739541414, + "narHash": "sha256-F3HAp7k9/ZCvD1642D5Q3jbP35jjOmyBAfTli9yc2oU=", "owner": "chaotic-cx", "repo": "nyx", - "rev": "d61084b851dbf3072f8b40c3870b0f7938ca3f22", + "rev": "946e012ae9ce4d3da5ff51b6e8f7bfbe8864db34", "type": "github" }, "original": { @@ -107,14 +108,68 @@ "type": "github" } }, + "fenix": { + "inputs": { + "nixpkgs": [ + "chaotic", + "nixpkgs" + ], + "rust-analyzer-src": "rust-analyzer-src" + }, + "locked": { + "lastModified": 1739342042, + "narHash": "sha256-oi6joJyRviczLJeN8TEI1XVKVb+E/UCnMTtdIn/6fhg=", + "owner": "nix-community", + "repo": "fenix", + "rev": "2d0149540591393c61dfd29f6883ba712d24e04f", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "fenix", + "type": "github" + } + }, + "firefox-gnome-theme": { + "flake": false, + "locked": { + "lastModified": 1736899990, + "narHash": "sha256-S79Hqn2EtSxU4kp99t8tRschSifWD4p/51++0xNWUxw=", + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "rev": "91ca1f82d717b02ceb03a3f423cbe8082ebbb26d", + "type": "github" + }, + "original": { + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "type": "github" + } + }, "flake-compat": { "flake": false, "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "lastModified": 1717312683, + "narHash": "sha256-FrlieJH50AuvagamEvWMIE6D2OAnERuDboFDYAED/dE=", + "owner": "nix-community", + "repo": "flake-compat", + "rev": "38fd3954cf65ce6faf3d0d45cd26059e059f07ea", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", "owner": "edolstra", "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", "type": "github" }, "original": { @@ -163,11 +218,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1726560853, - "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "owner": "numtide", "repo": "flake-utils", - "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "github" }, "original": { @@ -179,17 +234,17 @@ "freetype2": { "flake": false, "locked": { - "lastModified": 1687587065, - "narHash": "sha256-+Fh+/k+NWL5Ow9sDLtp8Cv/8rLNA1oByQQCIQS/bysY=", - "owner": "wez", - "repo": "freetype2", - "rev": "e4586d960f339cf75e2e0b34aee30a0ed8353c0d", + "lastModified": 1723459814, + "narHash": "sha256-4l90lDtpgm5xlh2m7ifrqNy373DTRTULRkAzicrM93c=", + "owner": "freetype", + "repo": "freetype", + "rev": "42608f77f20749dd6ddc9e0536788eaad70ea4b5", "type": "github" }, "original": { - "owner": "wez", - "repo": "freetype2", - "rev": "e4586d960f339cf75e2e0b34aee30a0ed8353c0d", + "owner": "freetype", + "ref": "VER-2-13-3", + "repo": "freetype", "type": "github" } }, @@ -209,6 +264,54 @@ "type": "github" } }, + "git-hooks": { + "inputs": { + "flake-compat": [ + "stylix", + "flake-compat" + ], + "gitignore": "gitignore", + "nixpkgs": [ + "stylix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1735882644, + "narHash": "sha256-3FZAG+pGt3OElQjesCAWeMkQ7C/nB1oTHLRQ8ceP110=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "a5a961387e75ae44cc20f0a57ae463da5e959656", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "stylix", + "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" + } + }, "gnome-shell": { "flake": false, "locked": { @@ -229,16 +332,16 @@ "harfbuzz": { "flake": false, "locked": { - "lastModified": 1711722720, - "narHash": "sha256-GdxcAPx5QyniSHPAN1ih28AD9JLUPR0ItqW9JEsl3pU=", + "lastModified": 1719502711, + "narHash": "sha256-2ieCf3ftNk851FZBDPVl+7QHWBqD729KiUxUyxi26Yg=", "owner": "harfbuzz", "repo": "harfbuzz", - "rev": "63973005bc07aba599b47fdd4cf788647b601ccd", + "rev": "9c03576c49db6e7207d9bcdfe3abd170a809157f", "type": "github" }, "original": { "owner": "harfbuzz", - "ref": "8.4.0", + "ref": "9.0.0", "repo": "harfbuzz", "type": "github" } @@ -251,11 +354,11 @@ ] }, "locked": { - "lastModified": 1734622215, - "narHash": "sha256-OOfI0XhSJGHblfdNDhfnn8QnZxng63rWk9eeJ2tCbiI=", + "lastModified": 1739381933, + "narHash": "sha256-4gvobxITgcrNGfwsVG5a46QzQCX89btIYw23p0ilbcc=", "owner": "nix-community", "repo": "home-manager", - "rev": "1395379a7a36e40f2a76e7b9936cc52950baa1be", + "rev": "15b59d4191b993ebdfcb1f61b834fced217882ba", "type": "github" }, "original": { @@ -271,11 +374,11 @@ ] }, "locked": { - "lastModified": 1735381016, - "narHash": "sha256-CyCZFhMUkuYbSD6bxB/r43EdmDE7hYeZZPTCv0GudO4=", + "lastModified": 1739676861, + "narHash": "sha256-X86ptHMNVuu1Z9leL0YV2E/oxD2IgPYrYANPcvFYpNo=", "owner": "nix-community", "repo": "home-manager", - "rev": "10e99c43cdf4a0713b4e81d90691d22c6a58bdf2", + "rev": "eb44c1601ed99896525e983bc9b15eb8b4d5879e", "type": "github" }, "original": { @@ -292,11 +395,11 @@ ] }, "locked": { - "lastModified": 1733085484, - "narHash": "sha256-dVmNuUajnU18oHzBQWZm1BQtANCHaqNuxTHZQ+GN0r8=", + "lastModified": 1737630279, + "narHash": "sha256-wJQCxyMRc4P26zDrHmZiRD5bbfcJpqPG3e2djdGG3pk=", "owner": "nix-community", "repo": "home-manager", - "rev": "c1fee8d4a60b89cae12b288ba9dbc608ff298163", + "rev": "0db5c8bfcce78583ebbde0b2abbc95ad93445f7c", "type": "github" }, "original": { @@ -314,11 +417,11 @@ ] }, "locked": { - "lastModified": 1734725857, - "narHash": "sha256-bivlV9l/UjMtTfz/CZaoNJ5RfH2Lre4P9Ds64conoUQ=", + "lastModified": 1739364465, + "narHash": "sha256-LhyeVj5plHO3/3QV7SzOSOnvl0sehOjE4h6LHaiiJqU=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "dbae2fd6adaf34c947d310bec08deac7c4ed265b", + "rev": "3dab95e02b5eeb9aec44a161bbed2b16b3d03aac", "type": "github" }, "original": { @@ -330,17 +433,17 @@ "libpng": { "flake": false, "locked": { - "lastModified": 1549245649, - "narHash": "sha256-1+cRp0Ungme/OGfc9kGJbklYIWAFxk8Il1M+NV4KSgw=", - "owner": "glennrp", + "lastModified": 1726173884, + "narHash": "sha256-gBfHgGaqVYdmhWXoNKZzPyGzyw2rr3zp+DjWmfC41jk=", + "owner": "pnggroup", "repo": "libpng", - "rev": "8439534daa1d3a5705ba92e653eda9251246dd61", + "rev": "f5e92d76973a7a53f517579bc95d61483bf108c0", "type": "github" }, "original": { - "owner": "glennrp", + "owner": "pnggroup", + "ref": "v1.6.44", "repo": "libpng", - "rev": "8439534daa1d3a5705ba92e653eda9251246dd61", "type": "github" } }, @@ -367,13 +470,33 @@ "type": "github" } }, + "nixos-cosmic": { + "inputs": { + "flake-compat": "flake-compat", + "nixpkgs": "nixpkgs_3", + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1739669831, + "narHash": "sha256-3hqUQmzo/RyH51W02RnEBWBdWzma+gUd6MuQ9oAJd/c=", + "owner": "lilyinstarlight", + "repo": "nixos-cosmic", + "rev": "51f16d9cd5ab24afa8b940d0e5c83965c46ef430", + "type": "github" + }, + "original": { + "owner": "lilyinstarlight", + "repo": "nixos-cosmic", + "type": "github" + } + }, "nixpkgs": { "locked": { - "lastModified": 1734649271, - "narHash": "sha256-4EVBRhOjMDuGtMaofAIqzJbg4Ql7Ai0PSeuVZTHjyKQ=", + "lastModified": 1739446958, + "narHash": "sha256-+/bYK3DbPxMIvSL4zArkMX0LQvS7rzBKXnDXLfKyRVc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d70bd19e0a38ad4790d3913bf08fcbfc9eeca507", + "rev": "2ff53fe64443980e139eaa286017f53f88336dd0", "type": "github" }, "original": { @@ -383,18 +506,18 @@ "type": "github" } }, - "nixpkgs-small": { + "nixpkgs-stable": { "locked": { - "lastModified": 1734838250, - "narHash": "sha256-Xi8ST/QiyuYXc3ujnMYOBuRUaMh6p16XWH6BKARa7xQ=", + "lastModified": 1739484910, + "narHash": "sha256-wjWLzdM7PIq4ZAe7k3vyjtgVJn6b0UeodtRFlM/6W5U=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "da8a31d09dd004be34b5c54eda83f9a27b357726", + "rev": "0b73e36b1962620a8ac551a37229dd8662dac5c8", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-unstable-small", + "ref": "nixos-24.11", "repo": "nixpkgs", "type": "github" } @@ -417,15 +540,15 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1735291276, - "narHash": "sha256-NYVcA06+blsLG6wpAbSPTCyLvxD/92Hy4vlY9WxFI1M=", - "owner": "nixos", + "lastModified": 1739446958, + "narHash": "sha256-+/bYK3DbPxMIvSL4zArkMX0LQvS7rzBKXnDXLfKyRVc=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "634fd46801442d760e09493a794c4f15db2d0cbb", + "rev": "2ff53fe64443980e139eaa286017f53f88336dd0", "type": "github" }, "original": { - "owner": "nixos", + "owner": "NixOS", "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" @@ -433,27 +556,27 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1732238832, - "narHash": "sha256-sQxuJm8rHY20xq6Ah+GwIUkF95tWjGRd1X8xF+Pkk38=", + "lastModified": 1736798957, + "narHash": "sha256-qwpCtZhSsSNQtK4xYGzMiyEDhkNzOCz/Vfu4oL2ETsQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8edf06bea5bcbee082df1b7369ff973b91618b8d", + "rev": "9abb87b552b7f55ac8916b6fc9e5cb486656a2f3", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-unstable", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_5": { "locked": { - "lastModified": 1729265718, - "narHash": "sha256-4HQI+6LsO3kpWTYuVGIzhJs1cetFcwT7quWCk/6rqeo=", + "lastModified": 1735821806, + "narHash": "sha256-cuNapx/uQeCgeuhUhdck3JKbgpsml259sjUQnWM7zW8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ccc0c2126893dd20963580b6478d1a10a4512185", + "rev": "d6973081434f88088e5321f83ebafe9a1167c367", "type": "github" }, "original": { @@ -465,11 +588,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1734649271, - "narHash": "sha256-4EVBRhOjMDuGtMaofAIqzJbg4Ql7Ai0PSeuVZTHjyKQ=", + "lastModified": 1735471104, + "narHash": "sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs=", "owner": "nixos", "repo": "nixpkgs", - "rev": "d70bd19e0a38ad4790d3913bf08fcbfc9eeca507", + "rev": "88195a94f390381c6afcdaa933c2f6ff93959cb4", "type": "github" }, "original": { @@ -484,12 +607,33 @@ "chaotic": "chaotic", "drawterm": "drawterm", "home-manager": "home-manager_2", - "nixpkgs": "nixpkgs_3", + "nixos-cosmic": "nixos-cosmic", + "nixpkgs": [ + "nixos-cosmic", + "nixpkgs" + ], "stylix": "stylix", "wezterm": "wezterm", "zen-browser": "zen-browser" } }, + "rust-analyzer-src": { + "flake": false, + "locked": { + "lastModified": 1739305728, + "narHash": "sha256-ZYZ6xYhvWcVvbIazMFEUPPkJFkjIa0tmdUFlbuZfcOM=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "f63e4761a9f73ddfc04a3e198f77e5e8825d0136", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + }, "rust-overlay": { "inputs": { "nixpkgs": [ @@ -498,11 +642,11 @@ ] }, "locked": { - "lastModified": 1729477859, - "narHash": "sha256-r0VyeJxy4O4CgTB/PNtfQft9fPfN1VuGvnZiCxDArvg=", + "lastModified": 1735871325, + "narHash": "sha256-6Ta5E4mhSfCP6LdkzkG2+BciLOCPeLKuYTJ6lOHW+mI=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "ada8266712449c4c0e6ee6fcbc442b3c217c79e1", + "rev": "a599f011db521766cbaf7c2f5874182485554f00", "type": "github" }, "original": { @@ -517,22 +661,26 @@ "base16-fish": "base16-fish", "base16-helix": "base16-helix", "base16-vim": "base16-vim", - "flake-compat": "flake-compat", + "firefox-gnome-theme": "firefox-gnome-theme", + "flake-compat": "flake-compat_2", "flake-utils": "flake-utils", + "git-hooks": "git-hooks", "gnome-shell": "gnome-shell", "home-manager": "home-manager_3", "nixpkgs": "nixpkgs_4", "systems": "systems", "tinted-foot": "tinted-foot", "tinted-kitty": "tinted-kitty", - "tinted-tmux": "tinted-tmux" + "tinted-schemes": "tinted-schemes", + "tinted-tmux": "tinted-tmux", + "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1735253599, - "narHash": "sha256-aKLAUkdeMH2N5gMDNiOC7KghRNy1necLtLa9+zUcj1g=", + "lastModified": 1739375014, + "narHash": "sha256-0fNbvZ1Dod4rDIfwGnC7CzJ3wRFSF1v5AvNCmNkVgXo=", "owner": "danth", "repo": "stylix", - "rev": "963e77a3a4fc2be670d5a9a6cbeb249b8a43808a", + "rev": "e86de61bb8f5f2b6459d0be3e3291ad16db4b777", "type": "github" }, "original": { @@ -605,14 +753,30 @@ "type": "github" } }, + "tinted-schemes": { + "flake": false, + "locked": { + "lastModified": 1737565458, + "narHash": "sha256-y+9cvOA6BLKT0WfebDsyUpUa/YxKow9hTjBp6HpQv68=", + "owner": "tinted-theming", + "repo": "schemes", + "rev": "ae31625ba47aeaa4bf6a98cf11a8d4886f9463d9", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "schemes", + "type": "github" + } + }, "tinted-tmux": { "flake": false, "locked": { - "lastModified": 1729501581, - "narHash": "sha256-1ohEFMC23elnl39kxWnjzH1l2DFWWx4DhFNNYDTYt54=", + "lastModified": 1735737224, + "narHash": "sha256-FO2hRBkZsjlIRqzNHCPc/52yxg11kHGA8MEtSun9RwE=", "owner": "tinted-theming", "repo": "tinted-tmux", - "rev": "f0e7f7974a6441033eb0a172a0342e96722b4f14", + "rev": "aead506a9930c717ebf81cc83a2126e9ca08fa64", "type": "github" }, "original": { @@ -621,6 +785,22 @@ "type": "github" } }, + "tinted-zed": { + "flake": false, + "locked": { + "lastModified": 1725758778, + "narHash": "sha256-8P1b6mJWyYcu36WRlSVbuj575QWIFZALZMTg5ID/sM4=", + "owner": "tinted-theming", + "repo": "base16-zed", + "rev": "122c9e5c0e6f27211361a04fae92df97940eccf9", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-zed", + "type": "github" + } + }, "wezterm": { "inputs": { "flake-utils": "flake-utils_2", @@ -633,11 +813,11 @@ }, "locked": { "dir": "nix", - "lastModified": 1733412933, - "narHash": "sha256-2OPDEgUEh0B6OIcSWtBbkw/zFi8r2VfluLj7FebTaVA=", + "lastModified": 1739478829, + "narHash": "sha256-zUAt4Ak3NHD3KNJ10ibJoP9zqQF5hdPIeP5mlFyU81o=", "owner": "wez", "repo": "wezterm", - "rev": "6f375e29a2c4d70b8b51956edd494693196c6692", + "rev": "ee0c04e735fb94cb5119681f704fb7fa6731e713", "type": "github" }, "original": { @@ -652,11 +832,11 @@ "nixpkgs": "nixpkgs_6" }, "locked": { - "lastModified": 1735092772, - "narHash": "sha256-u9uEmMRE3RR8hwZto4USSDvee7X2FEYeWcSSLf4Jjrs=", + "lastModified": 1739667343, + "narHash": "sha256-fNEz+Yd0t9jXz27qKRMAEBradTwYBeBLOECx+ydG25s=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "cea051b6f908304f4af6484b14a532c729f0cc34", + "rev": "8c7f6ca49f87b4e114f775a4dad956ceb6df4220", "type": "github" }, "original": { @@ -668,16 +848,16 @@ "zlib": { "flake": false, "locked": { - "lastModified": 1484501380, - "narHash": "sha256-j5b6aki1ztrzfCqu8y729sPar8GpyQWIrajdzpJC+ww=", + "lastModified": 1705948357, + "narHash": "sha256-TkPLWSN5QcPlL9D0kc/yhH0/puE9bFND24aj5NVDKYs=", "owner": "madler", "repo": "zlib", - "rev": "cacf7f1d4e3d44d871b605da3b647f07d718623f", + "rev": "51b7f2abdade71cd9bb0e7a373ef2610ec6f9daf", "type": "github" }, "original": { "owner": "madler", - "ref": "v1.2.11", + "ref": "v1.3.1", "repo": "zlib", "type": "github" } diff --git a/flake.nix b/flake.nix index d9717f2..71dfc35 100644 --- a/flake.nix +++ b/flake.nix @@ -3,6 +3,7 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + nixpkgs.follows = "nixos-cosmic/nixpkgs"; home-manager.url = "github:nix-community/home-manager"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable"; @@ -10,6 +11,7 @@ stylix.url = "github:danth/stylix"; wezterm.url = "github:wez/wezterm?dir=nix"; drawterm.url = "github:KSPAtlas/drawterm-flake"; + nixos-cosmic.url = "github:lilyinstarlight/nixos-cosmic"; }; outputs = { self, nixpkgs, home-manager, ... }@inputs: @@ -27,6 +29,12 @@ }; modules = [ + { + nix.settings = { + substituters = [ "https://cosmic.cachix.org/" ]; + trusted-public-keys = [ "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE=" ]; + }; + } ./nixos/hardware-configuration.nix ./nixos/nvidia.nix ./nixos/boot.nix @@ -43,6 +51,7 @@ ./nixos/miscpkgs.nix inputs.chaotic.nixosModules.default inputs.stylix.nixosModules.stylix + inputs.nixos-cosmic.nixosModules.default home-manager.nixosModules.home-manager { home-manager = { useGlobalPkgs = true; diff --git a/hm/ksp.nix b/hm/ksp.nix index fabde4a..8515792 100644 --- a/hm/ksp.nix +++ b/hm/ksp.nix @@ -2,7 +2,6 @@ { - nixpkgs.config.allowUnfree = true; # Home Manager needs a bit of information about you and the paths it should # manage. home.username = "ksp"; @@ -20,8 +19,8 @@ programs = { nushell = { enable = true; - configFile.source = dotfiles/config.nu; - envFile.source = dotfiles/env.nu; + configFile.source = ../dotfiles/config.nu; + envFile.source = ../dotfiles/env.nu; }; carapace.enable = true; carapace.enableNushellIntegration = true; @@ -157,10 +156,10 @@ package = pkgs.kora-icon-theme; }; - qt = { - enable = true; - style.name = "adwaita-dark"; - }; + # qt = { + # enable = true; + # style.name = "adwaita-dark"; + # }; # The home.packages option allows you to install Nix packages into your # environment. @@ -196,13 +195,17 @@ xfce.thunar-archive-plugin qbittorrent imv + prismlauncher zls nixd akkuPackages.scheme-langserver python312Packages.python-lsp-server haskell-language-server + haskellPackages.cabal-gild ghc + racket + vscodium python312Full zig @@ -241,16 +244,16 @@ # org.gradle.console=verbose # org.gradle.daemon.idletimeout=3600000 # ''; - ".config/sway/config".source = dotfiles/sway_config; + ".config/sway/config".source = ../dotfiles/sway_config; ".config/sway/wallpaper.jpg".source = ../assets/wallpaper.jpg; - ".config/wofi/style.css".source = dotfiles/wofi.css; + ".config/wofi/style.css".source = ../dotfiles/wofi.css; # ".config/foot/foot.ini".source = dotfiles/foot.ini; # ".config/foot/theme.ini".source = "${builtins.fetchGit { # url = "https://github.com/tinted-theming/tinted-foot"; # rev = "e558fe47e187093313f19fa6a9eea61940ffbd6b"; # }}/colors/base16-monokai.ini"; ".config/nushell/theme.nu".source = "${pkgs.nu_scripts}/share/nu_scripts/themes/nu-themes/monokai.nu"; - ".wezterm.lua".source = dotfiles/wezterm.lua; + ".wezterm.lua".source = ../dotfiles/wezterm.lua; }; # Yes, an entire derivation for terminfo diff --git a/nixos/boot.nix b/nixos/boot.nix index 80c0c7a..6f7bd21 100644 --- a/nixos/boot.nix +++ b/nixos/boot.nix @@ -1,8 +1,14 @@ { config, lib, pkgs, ... }: { - boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = true; - boot.loader.systemd-boot.configurationLimit = 8; - # boot.kernelPackages = pkgs.linuxPackages_latest; + boot = { + loader.systemd-boot.enable = true; + loader.efi.canTouchEfiVariables = true; + loader.systemd-boot.configurationLimit = 8; + kernelPackages = pkgs.linuxPackages_latest; + kernelParams = [ + "intel_iommu=on" + "iommu=pt" + ]; + }; } diff --git a/nixos/gpupassthrough.nix b/nixos/gpupassthrough.nix new file mode 100644 index 0000000..d3f57b1 --- /dev/null +++ b/nixos/gpupassthrough.nix @@ -0,0 +1,12 @@ +{ config, lib, pkgs, ... }: + +{ + boot.kernelParams = [ + "intel_iommu=on" + "iommu=pt" + ]; + + virtualisation.libvirtd.hooks = { + qemu."gpupassthrough" = ../scripts/qemu-gpupassthrough.nu; + }; +} diff --git a/nixos/gui.nix b/nixos/gui.nix index c500825..d67d5bc 100644 --- a/nixos/gui.nix +++ b/nixos/gui.nix @@ -27,17 +27,21 @@ ]; }; + services.gvfs.enable = true; + + services.desktopManager.cosmic.enable = true; + environment.systemPackages = with pkgs; [ inputs.zen-browser.packages."${system}".default inputs.wezterm.packages."${pkgs.system}".default inputs.drawterm.packages."${pkgs.system}".default ]; - qt = { - enable = true; - platformTheme = "qt5ct"; - style = "kvantum"; - }; + # qt = { + # enable = true; + # platformTheme = "qt5ct"; + # style = lib.mkForce "kvantum"; + # }; # programs.foot = { # enable = true; @@ -65,13 +69,11 @@ }; }; - services.greetd.settings.default_session.command = let - leftmonitor = "DP-1"; - rightmonitor = "HDMI-A-1"; - runcommand = "sh -c \"${lib.getExe pkgs.wlr-randr} --output ${rightmonitor} --on --output ${leftmonitor} --off; exec ${lib.getExe config.programs.regreet.package}\""; - in '' - ${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.cage} ${lib.escapeShellArgs config.programs.regreet.cageArgs} -- ${runcommand} - ''; + # services.greetd.settings.default_session.command = let + # runcommand = "${lib.getExe config.programs.regreet.package}"; + # in '' + # ${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.cage} ${lib.escapeShellArgs config.programs.regreet.cageArgs} -- ${runcommand} + # ''; # services.greetd.settings.default_session.command = "${inputs.chaotic.packages.${pkgs.system}.sway_git}/bin/sway --unsupported-gpu --config ${greetdConfig}"; # environment.etc."greetd/environments".text = '' diff --git a/nixos/nix.nix b/nixos/nix.nix index c51546e..a3553e2 100644 --- a/nixos/nix.nix +++ b/nixos/nix.nix @@ -7,6 +7,8 @@ "flakes" ]; + nix.settings.auto-optimise-store = true; + nix.gc = { persistent = true; dates = "weekly"; @@ -15,8 +17,14 @@ # Cachix for wezterm nix.settings = { - substituters = ["https://wezterm.cachix.org"]; - trusted-public-keys = ["wezterm.cachix.org-1:kAbhjYUC9qvblTE+s7S+kl5XM1zVa4skO+E/1IDWdH0="]; + substituters = [ + "https://wezterm.cachix.org" + "https://cosmic.cachix.org/" + ]; + trusted-public-keys = [ + "wezterm.cachix.org-1:kAbhjYUC9qvblTE+s7S+kl5XM1zVa4skO+E/1IDWdH0=" + "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE=" + ]; }; programs.nix-ld.enable = true; diff --git a/nixos/nvidia.nix b/nixos/nvidia.nix index 6c70440..8b730be 100644 --- a/nixos/nvidia.nix +++ b/nixos/nvidia.nix @@ -41,7 +41,7 @@ nvidiaSettings = true; # Optionally, you may need to select the appropriate driver version for your specific GPU. - package = config.boot.kernelPackages.nvidiaPackages.stable; + package = config.boot.kernelPackages.nvidiaPackages.beta; }; } diff --git a/nixos/stylix.nix b/nixos/stylix.nix index d7cdf1e..266a9ee 100644 --- a/nixos/stylix.nix +++ b/nixos/stylix.nix @@ -5,6 +5,8 @@ enable = true; image = ../assets/wallpaper.jpg; base16Scheme = "${pkgs.base16-schemes}/share/themes/monokai.yaml"; + targets.gtk.enable = false; + fonts = { serif = { package = pkgs.quattrocento; diff --git a/nixos/users.nix b/nixos/users.nix index 4ea19bf..f089e8a 100644 --- a/nixos/users.nix +++ b/nixos/users.nix @@ -3,7 +3,7 @@ { users.users.ksp = { isNormalUser = true; - extraGroups = [ "wheel" "adbusers" ]; # Enable ‘sudo’ for the user. + extraGroups = [ "wheel" "adbusers" "kvm" "libvirt" ]; # Enable ‘sudo’ for the user. shell = pkgs.nushell; }; diff --git a/scripts/qemu-gpupassthrough.nu b/scripts/qemu-gpupassthrough.nu new file mode 100644 index 0000000..e054391 --- /dev/null +++ b/scripts/qemu-gpupassthrough.nu @@ -0,0 +1,63 @@ +#!/usr/bin/env nu + +let passthrough_guests = [ 'bazzite' ] +let display_manager = 'greetd' +let pci_devices = [ + 'pci_0000_01_00_0' # GPU + 'pci_0000_01_00_1' # HDMI audio +] + +def main [ + guest_name: string + hook_name: string + state_name: string + ...misc: string +] { + if $guest_name in $passthrough_guests { + if $hook_name == 'prepare' and $state_name == 'begin' { + # Stop the display manager, we don't want it + systemctl stop $display_manager + + # Unbind the vtconsoles + print 0 o> /sys/class/vtconsole/vtcon0/bind + print 0 o> /sys/class/vtconsole/vtcon1/bind + + # Unbind the EFI framebuffer + print 'efi-framebuffer.0' o> /sys/bus/platform/drivers/efi-framebuffer/unbind + + # Unload NVIDIA drivers + modprobe -r nvidia_drm nvidia_modeset nvidia_uvm nvidia + + # Detach PCI devices + $pci_devices | each {|dev| + virsh nodedev-detach $dev + } + + # Load VFIO + modprobe vfio-pci + } else if $hook_name == 'release' and $state_name == 'end' { + # Reattach PCI devices to host + $pci_devices | each {|dev| + virsh nodedev-reattach $dev + } + + # Unload VFIO + modprobe -r vfio-pci + + # Rebind EFI framebuffer + print 'efi-framebuffer.0' o> /sys/bus/platform/drivers/efi-framebuffer/bind + + # Reload NVIDIA drivers + [ 'nvidia_drm' 'nvidia_modeset' 'nvidia_uvm' 'nvidia' ] | each {|mod| + modprobe $mod + } + + # Rebind the vtconsoles + print 1 o> /sys/class/vtconsole/vtcon0/bind + print 1 o> /sys/class/vtconsole/vtcon1/bind + + # Restart display manager + systemctl start $display_manager + } + } +}