From 1148a2a1a5c9646a4847cb43929dbba5a624e977 Mon Sep 17 00:00:00 2001 From: Ali Rizvi Date: Thu, 4 Jun 2026 13:40:22 -0400 Subject: [PATCH 1/5] feat: bump flake.lock Minor bump to remove the Stylix warning, also removed the compat gtk4 module because Stylix now sets this value for me, making it redundant --- flake.lock | 24 ++++++++++++------------ modules/home-manager/gtk/gtk4/module.nix | 11 ----------- 2 files changed, 12 insertions(+), 23 deletions(-) delete mode 100644 modules/home-manager/gtk/gtk4/module.nix diff --git a/flake.lock b/flake.lock index f850692..af48686 100644 --- a/flake.lock +++ b/flake.lock @@ -209,11 +209,11 @@ ] }, "locked": { - "lastModified": 1780347968, - "narHash": "sha256-I8ibSDQx+E8cgw6k3UxX6Bm7awmGoKSTXc8Gt1Zbpp4=", + "lastModified": 1780593650, + "narHash": "sha256-CHo7k65YTL3HY+WQVedDTupji+LMgNlKCdrtRHZFAK4=", "owner": "nix-community", "repo": "home-manager", - "rev": "d0af9b8bf3b4a1d449be7034bebc9f8f9fd6ee99", + "rev": "447fd9ff62501dae7206dfe180ee89f8de27b7d5", "type": "github" }, "original": { @@ -264,11 +264,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1780296985, - "narHash": "sha256-eFz7gDmf18dlofE6kjIBBBDOfsntQxiLkfjF8ldTB7k=", + "lastModified": 1780382592, + "narHash": "sha256-TvGmK29Dy7KRmMvJT5S2bkQ38JOE1OPbCVC2SqVF/V0=", "owner": "nix-community", "repo": "nixos-facter", - "rev": "8518390032e04a01ccef734ba2d3239786209cbe", + "rev": "b4818ab36bfed831618db10b429ced295af0ea2f", "type": "github" }, "original": { @@ -335,11 +335,11 @@ ] }, "locked": { - "lastModified": 1779766384, - "narHash": "sha256-P7Ohnlq8b8b2fU+Sgkrej7LBTM60LBTkHleLuYzmLmU=", + "lastModified": 1780281641, + "narHash": "sha256-M/+hUKoKbHXpV0xGVfELbN1Ds1aoe3pL5p5/t46YhVo=", "owner": "nix-community", "repo": "NUR", - "rev": "57800b7ab648725ccd33551d01484ee14952ad3f", + "rev": "30f9ae2f04174de63ba8bcf3580ca90843b28a01", "type": "github" }, "original": { @@ -380,11 +380,11 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1780256506, - "narHash": "sha256-wEXN/OoZt9HfsKBL6694p2Y9xRlwfUbdn/M107U8fVU=", + "lastModified": 1780584783, + "narHash": "sha256-b4o1AlQpGgpUfieaNz/3gsSzogjoiczmnlbDj0khImY=", "owner": "nix-community", "repo": "stylix", - "rev": "8ed48a41087feeb66372ff718021a9512fc552b3", + "rev": "6b6b874d082928aa9557e21516d4fe2f2bb305e1", "type": "github" }, "original": { diff --git a/modules/home-manager/gtk/gtk4/module.nix b/modules/home-manager/gtk/gtk4/module.nix deleted file mode 100644 index 241b399..0000000 --- a/modules/home-manager/gtk/gtk4/module.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ - config, - ... -}: -{ - config = { - # Preserve the legacy behaviour of home-manager < 26.05. This requires that - # the theme declared on `config.gtk.theme` is compatible with GTK4. - gtk.gtk4.theme = config.gtk.theme; - }; -} \ No newline at end of file From 6ef639f3a20e698cc7fc7e0c9dfea1cd4b1293d7 Mon Sep 17 00:00:00 2001 From: Ali Rizvi Date: Thu, 4 Jun 2026 13:53:02 -0400 Subject: [PATCH 2/5] feat: drop the legacy `neovimUtils.makeNeovimConfig` Honestly, that was a lot simpler to "fix" then I realized. Thanks Nixpkgs for keeping it easy :) Fixes #76. --- modules/home-manager/my/programs/neovim/package.nix | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/modules/home-manager/my/programs/neovim/package.nix b/modules/home-manager/my/programs/neovim/package.nix index c86e635..8dda9ee 100644 --- a/modules/home-manager/my/programs/neovim/package.nix +++ b/modules/home-manager/my/programs/neovim/package.nix @@ -1,6 +1,5 @@ { lib, - neovimUtils, wrapNeovimUnstable, neovim-unwrapped, @@ -10,7 +9,7 @@ plugins, config, }: -wrapNeovimUnstable neovim-unwrapped (neovimUtils.makeNeovimConfig { +wrapNeovimUnstable neovim-unwrapped { # withPython3 = true; # withNodeJs = false; # withRuby = true; @@ -18,10 +17,9 @@ wrapNeovimUnstable neovim-unwrapped (neovimUtils.makeNeovimConfig { inherit plugins; wrapRc = false; -} // { wrapperArgs = lib.escapeShellArgs [ "--prefix" "PATH" ":" "${lib.makeBinPath bins}" "--add-flags" "-u" "--add-flags" "${config}" ]; -}) \ No newline at end of file +} \ No newline at end of file From d0d148199cccd24213fbb379ececc02d5f29b245 Mon Sep 17 00:00:00 2001 From: Ali Rizvi Date: Thu, 4 Jun 2026 23:41:51 -0400 Subject: [PATCH 3/5] feat: enable default mappings Some of these lovely defaults include using the up and down arrow keys to navigate the completion menu. I added the esc key as a way to get rid of the completion window so that I can move up and down lines normally. This is a pretty nice QOL. --- users/frontear/home/programs/neovim/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/users/frontear/home/programs/neovim/default.nix b/users/frontear/home/programs/neovim/default.nix index d9f5f97..dd36648 100644 --- a/users/frontear/home/programs/neovim/default.nix +++ b/users/frontear/home/programs/neovim/default.nix @@ -90,6 +90,10 @@ end, }, + mapping = cmp.mapping.preset.insert({ + [''] = cmp.mapping.abort(), + }), + sources = cmp.config.sources({ { name = "luasnip" }, { name = "nvim_lsp" }, From e50fbe660069de1b9c8db3c0a9e19c1ac687b7d1 Mon Sep 17 00:00:00 2001 From: Ali Rizvi Date: Sat, 13 Jun 2026 02:56:10 -0400 Subject: [PATCH 4/5] feat: add virt-manager module This sets up the system with the necessary components to make virt-manager work. Unfortunately, there is a pretty severe bug with `dnsmasq` crashing if I am using StevenBlack's blocklist. I hope this bug is fixed soon, until then I will have to disable it. I did try other solutions before coming to this point, but unfortunately they did not work. --- hosts/laptop/configuration.nix | 2 ++ .../nixos/programs/virt-manager/module.nix | 33 +++++++++++++++++++ users/frontear/nixos/default.nix | 9 +++-- 3 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 modules/nixos/programs/virt-manager/module.nix diff --git a/hosts/laptop/configuration.nix b/hosts/laptop/configuration.nix index 3d9b151..d777028 100644 --- a/hosts/laptop/configuration.nix +++ b/hosts/laptop/configuration.nix @@ -16,6 +16,8 @@ hardware.openrazer.enable = true; + programs.virt-manager.enable = true; + services = { # NTP daemon that's more suitable for laptops chrony.enable = true; diff --git a/modules/nixos/programs/virt-manager/module.nix b/modules/nixos/programs/virt-manager/module.nix new file mode 100644 index 0000000..518bb98 --- /dev/null +++ b/modules/nixos/programs/virt-manager/module.nix @@ -0,0 +1,33 @@ +{ + config, + lib, + pkgs, + ... +}: +let + cfg = config.programs.virt-manager; +in { + config = lib.mkIf cfg.enable { + virtualisation.libvirtd = { + enable = true; + + # Enable the ability to share a folder with a guest. + qemu.vhostUserPackages = with pkgs; [ + virtiofsd + ]; + }; + + # Disable stevenblack blocklist, as some of the host entries + # cause erroneus faults in `dnsmasq` due to an upstream bug + # between `dnsmasq` and `glibc`. Replacing long entries and/or + # removing specific entries is insufficient, and recompiling + # `dnsmasq` across all dependents is impossible, so this is the + # best fix. + # + # TODO: remove when the relevant PR is merged. + # + # see: https://github.com/NixOS/nixpkgs/issues/525573 + # see: https://github.com/NixOS/nixpkgs/pull/528905 + networking.stevenblack.enable = lib.mkForce false; + }; +} \ No newline at end of file diff --git a/users/frontear/nixos/default.nix b/users/frontear/nixos/default.nix index 1afd6fb..7a91494 100644 --- a/users/frontear/nixos/default.nix +++ b/users/frontear/nixos/default.nix @@ -3,7 +3,11 @@ lib, ... }: -{ +let + inherit (lib) + optional + ; +in { imports = [ ./per-host.nix ./shell.nix @@ -14,7 +18,8 @@ initialHashedPassword = "$y$j9T$gsXwh6NJa62APePZ.7xR00$lLYi86UgQdN1yjOIgqcegfTKsnqkXI4ufQHWdOTiKr6"; extraGroups = [ "wheel" ] ++ - (lib.optional config.networking.networkmanager.enable "networkmanager"); + (optional config.networking.networkmanager.enable "networkmanager") ++ + (optional config.programs.virt-manager.enable "libvirtd"); }; # Allow my user to control the OpenRazer daemon. From fa2f42b5bfc15a5a22d377a48cd5516ead08d880 Mon Sep 17 00:00:00 2001 From: Ali Rizvi Date: Thu, 18 Jun 2026 18:02:16 -0400 Subject: [PATCH 5/5] feat: update `flake.lock`, remove `dnsmasq` fix from virt-manager module --- flake.lock | 30 +++++++++---------- .../nixos/programs/virt-manager/module.nix | 13 -------- 2 files changed, 15 insertions(+), 28 deletions(-) diff --git a/flake.lock b/flake.lock index af48686..5a6e73d 100644 --- a/flake.lock +++ b/flake.lock @@ -101,11 +101,11 @@ ] }, "locked": { - "lastModified": 1780290312, - "narHash": "sha256-eTAlX0CwgB84Ts3GaBd944A3DRXVMzgA0EqroZBISUo=", + "lastModified": 1781152676, + "narHash": "sha256-RxWs5ND31KzTG7wvMM+PMfUjyNpmIEr999lqNARaM5o=", "owner": "nix-community", "repo": "disko", - "rev": "115e5211780054d8a890b41f0b7734cafad54dfe", + "rev": "ff8702b4de27f72b4c78573dfb89ec74e36abdf1", "type": "github" }, "original": { @@ -209,11 +209,11 @@ ] }, "locked": { - "lastModified": 1780593650, - "narHash": "sha256-CHo7k65YTL3HY+WQVedDTupji+LMgNlKCdrtRHZFAK4=", + "lastModified": 1781810163, + "narHash": "sha256-dk8lIk0UnO8GD3e7e3HM1vSYXpbEDmhy67w7KztfdCg=", "owner": "nix-community", "repo": "home-manager", - "rev": "447fd9ff62501dae7206dfe180ee89f8de27b7d5", + "rev": "c8f0b8ed441c95bfeaf33555e7631044bb09f384", "type": "github" }, "original": { @@ -264,11 +264,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1780382592, - "narHash": "sha256-TvGmK29Dy7KRmMvJT5S2bkQ38JOE1OPbCVC2SqVF/V0=", + "lastModified": 1781680261, + "narHash": "sha256-7GAXGsOV/rTxJ24AD7nbWDILw2Ed7VNkFZgrcCZ+Cpg=", "owner": "nix-community", "repo": "nixos-facter", - "rev": "b4818ab36bfed831618db10b429ced295af0ea2f", + "rev": "a1b46c2aeb223685741871ed1b0ebed17e154b13", "type": "github" }, "original": { @@ -294,11 +294,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1780243769, - "narHash": "sha256-x5UQuRsH3MqI0U9afaXSNqzTPSeZlRLvFAav2Ux1pNw=", + "lastModified": 1781577229, + "narHash": "sha256-lrp67w8AulE9Ks53n27I45ADSzbOCn4H+CNW1Ck8B+8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "331800de5053fcebacf6813adb5db9c9dca22a0c", + "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", "type": "github" }, "original": { @@ -380,11 +380,11 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1780584783, - "narHash": "sha256-b4o1AlQpGgpUfieaNz/3gsSzogjoiczmnlbDj0khImY=", + "lastModified": 1781018772, + "narHash": "sha256-C+cGIUaC6dqfwTbI+BwCd572PbESGA3WYxR1sLTqxkY=", "owner": "nix-community", "repo": "stylix", - "rev": "6b6b874d082928aa9557e21516d4fe2f2bb305e1", + "rev": "a378e4c09031fb15a4d65da88aa628f71fc52f6b", "type": "github" }, "original": { diff --git a/modules/nixos/programs/virt-manager/module.nix b/modules/nixos/programs/virt-manager/module.nix index 518bb98..d33118b 100644 --- a/modules/nixos/programs/virt-manager/module.nix +++ b/modules/nixos/programs/virt-manager/module.nix @@ -16,18 +16,5 @@ in { virtiofsd ]; }; - - # Disable stevenblack blocklist, as some of the host entries - # cause erroneus faults in `dnsmasq` due to an upstream bug - # between `dnsmasq` and `glibc`. Replacing long entries and/or - # removing specific entries is insufficient, and recompiling - # `dnsmasq` across all dependents is impossible, so this is the - # best fix. - # - # TODO: remove when the relevant PR is merged. - # - # see: https://github.com/NixOS/nixpkgs/issues/525573 - # see: https://github.com/NixOS/nixpkgs/pull/528905 - networking.stevenblack.enable = lib.mkForce false; }; } \ No newline at end of file