diff --git a/flake.lock b/flake.lock index a257522a..a46f2c96 100644 --- a/flake.lock +++ b/flake.lock @@ -28,11 +28,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1757840226, - "narHash": "sha256-Bxacqw2208XnOsOeDFLg0XqZ8b48jenepwS2OshA7D4=", + "lastModified": 1758121794, + "narHash": "sha256-IlnFA/a9Clgbt+FuavIKWtauhtH4Fo/rGJIjJDDeYRs=", "owner": "anyrun-org", "repo": "anyrun", - "rev": "b21edf8db8bf914774c8beb29f2161f1acb0ea9b", + "rev": "c787318f590102b68fbd2e5b02ea47e96f4ecb62", "type": "github" }, "original": { @@ -83,11 +83,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1757789833, - "narHash": "sha256-cpYiHtQ9ROyutuFEkqDNkc3sOVayEeNHAtCVQI5reoc=", + "lastModified": 1758033778, + "narHash": "sha256-oQH2wLOWLFHXT3NE+gcsFOX+Pq40bKjlOH1xw0wcmT8=", "owner": "chaotic-cx", "repo": "nyx", - "rev": "5a088eb3f84aeea80b2d240e25c4f72a0fbdea4e", + "rev": "b3efa297b9c6a9e55a44f3b6905d55f80738704f", "type": "github" }, "original": { @@ -142,11 +142,11 @@ "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1757831996, - "narHash": "sha256-vLvo3VmGXA+mvra90asjpZTdjElDOZB62xuQP31pO2s=", + "lastModified": 1758177713, + "narHash": "sha256-4Mesi0sOxCzrwnFHeAhL/vv1K1Wcwsl4D9duQ7ndYS8=", "owner": "nix-community", "repo": "fenix", - "rev": "7b679aa06678433ff15df49c9fc50671fc4fc4cc", + "rev": "60316bdc00603b483992560baa14841e42e58a7b", "type": "github" }, "original": { @@ -384,11 +384,11 @@ ] }, "locked": { - "lastModified": 1757588530, - "narHash": "sha256-tJ7A8mID3ct69n9WCvZ3PzIIl3rXTdptn/lZmqSS95U=", + "lastModified": 1758108966, + "narHash": "sha256-ytw7ROXaWZ7OfwHrQ9xvjpUWeGVm86pwnEd1QhzawIo=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "b084b2c2b6bc23e83bbfe583b03664eb0b18c411", + "rev": "54df955a695a84cd47d4a43e08e1feaf90b1fd9b", "type": "github" }, "original": { @@ -464,11 +464,11 @@ }, "hardware": { "locked": { - "lastModified": 1757891025, - "narHash": "sha256-NfiTk59huy/YK9H4W4wVwRYyiP2u86QqROM5KK4f5F4=", + "lastModified": 1757943327, + "narHash": "sha256-w6cDExPBqbq7fTLo4dZ1ozDGeq3yV6dSN4n/sAaS6OM=", "owner": "nixos", "repo": "nixos-hardware", - "rev": "4c38a024fa32e61db2be8573e5282b15d9733a79", + "rev": "67a709cfe5d0643dafd798b0b613ed579de8be05", "type": "github" }, "original": { @@ -483,11 +483,11 @@ "rust-overlay": "rust-overlay_2" }, "locked": { - "lastModified": 1757891477, - "narHash": "sha256-xNZXCWqmJ1XOYbNYGKgp6o5sWcayyLWrSE3b7wzEA7k=", + "lastModified": 1758204752, + "narHash": "sha256-tgblfdzdM3XAzYHHvA9GX9SR2P8NG2IzewmfnRmTUxg=", "owner": "helix-editor", "repo": "helix", - "rev": "1f020b1d724fdbd1c8542c9654f2cb78c4f147b6", + "rev": "0ae37dc52ba715100893c327414bcb1a1924a4c3", "type": "github" }, "original": { @@ -503,11 +503,11 @@ ] }, "locked": { - "lastModified": 1757910558, - "narHash": "sha256-qD2UBG+JfmIE50OmjumOQZ73LKUacxO7uq2hxkna0rA=", + "lastModified": 1758207369, + "narHash": "sha256-BG7GlXo5moXtrFSCqnkIb1Q00szOZXTj5Dx7NmWgves=", "owner": "nix-community", "repo": "home-manager", - "rev": "5e06d0f1844bd150e7813368b06f32b03c816a0d", + "rev": "b5698ed57db7ee7da5e93df2e6bbada91c88f3ce", "type": "github" }, "original": { @@ -545,11 +545,11 @@ ] }, "locked": { - "lastModified": 1757698511, - "narHash": "sha256-UqHHGydF/q3jfYXCpvYLA0TWtvByOp1NwOKCUjhYmPs=", + "lastModified": 1757920978, + "narHash": "sha256-Mv16aegXLulgyDunijP6SPFJNm8lSXb2w3Q0X+vZ9TY=", "owner": "nix-community", "repo": "home-manager", - "rev": "a3fcc92180c7462082cd849498369591dfb20855", + "rev": "11cc5449c50e0e5b785be3dfcb88245232633eb8", "type": "github" }, "original": { @@ -696,11 +696,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1757811161, - "narHash": "sha256-laCB71qgn9Eht7bH1nobIzEiR5r7WRHAB7XHHxLTiLQ=", + "lastModified": 1758198304, + "narHash": "sha256-UbPAu5MRqAaDT3/seC64GyVjUDsFhGaNZFMPtuE0RI4=", "owner": "hyprwm", "repo": "hyprland", - "rev": "559024c3314e4b1180b10b80fce4e9f20bad14c8", + "rev": "059ec60e9f32e4d7a21c0bc15b010bcb30a1303b", "type": "github" }, "original": { @@ -717,11 +717,11 @@ ] }, "locked": { - "lastModified": 1757889285, - "narHash": "sha256-IUDbY2sjfa+ySyI+BEw61QANuzCYXGIdCrbkULLAr1s=", + "lastModified": 1758055182, + "narHash": "sha256-0TCggLT5bUMpJYoA8+EXs8Qu+D9sTVe6eOmsNetH8OI=", "owner": "hyprwm", "repo": "contrib", - "rev": "bc9dbdebbebeb8eb75115a865f74c8acc3ec2424", + "rev": "9e73a0e753251fbc6e987bd13324886dc6ca8f9a", "type": "github" }, "original": { @@ -899,11 +899,11 @@ ] }, "locked": { - "lastModified": 1757520666, - "narHash": "sha256-jYV+vPzfii7HSr3RSHMMP8msjvljsfOQd6JWpKjgLuw=", + "lastModified": 1758124489, + "narHash": "sha256-YiVF/8Me3vVKJBEgGpQhn0HF09EWfXZGaWLzAaJBrO4=", "owner": "hyprwm", "repo": "hyprlock", - "rev": "450ae1e5f09fa95c970fb370c037e60d3b4783f2", + "rev": "7f769fa993cb492982d7bf25676c68ddbcc0268e", "type": "github" }, "original": { @@ -1145,11 +1145,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1757870947, - "narHash": "sha256-0N8w6SB6a68kWioFmlr+KfwfG44KVjPjJIBSQKNdNhE=", + "lastModified": 1758186479, + "narHash": "sha256-UdC6KXSnt1QfEigiP6TtS3R9TIqPEFJegPoTcjhC4SY=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "8e9b1a571399104e42d8fa5de6c28c63bff0c16a", + "rev": "b399b939d7b980b52cbd739a7d44f07017c8572e", "type": "github" }, "original": { @@ -1178,11 +1178,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1757832020, - "narHash": "sha256-SCdus7r4IS8l3jzF8mcMFMlDvACTdmDCcsPnGUEqll0=", + "lastModified": 1758183971, + "narHash": "sha256-rZpQqXa9LIwWulScUEHMqtcJqlidx5OfEfEr/iVC+AM=", "owner": "YaLTeR", "repo": "niri", - "rev": "e6a8ad38479eb179dc7301755316f993e3e872ea", + "rev": "d9648e6bde1d2fc4a568dec93ba65c11073192a3", "type": "github" }, "original": { @@ -1270,11 +1270,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1757810152, - "narHash": "sha256-Vp9K5ol6h0J90jG7Rm4RWZsCB3x7v5VPx588TQ1dkfs=", + "lastModified": 1758070117, + "narHash": "sha256-uLwwHFCZnT1c3N3biVe/0hCkag2GSrf9+M56+Okf+WY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9a094440e02a699be5c57453a092a8baf569bdad", + "rev": "e9b7f2ff62b35f711568b1f0866243c7c302028d", "type": "github" }, "original": { @@ -1318,11 +1318,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1757598577, - "narHash": "sha256-+PccWxBVh1cFy2sDWHlpSBG+OP0b6o/DE2EzCxsB0ns=", + "lastModified": 1758029758, + "narHash": "sha256-fKqsvznISxVSBo6aaiGGXMRiBG4IIuV3sSySxx80pcQ=", "owner": "PedroHLC", "repo": "nixpkgs", - "rev": "7bbfafff0e9f1c9a0d10ca4d4c26aaa49a13d893", + "rev": "4eb5897225c3d7e78a0b9d1542197ee7c8d270a5", "type": "github" }, "original": { @@ -1398,11 +1398,11 @@ }, "nixpkgs_8": { "locked": { - "lastModified": 1757745802, - "narHash": "sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820=", + "lastModified": 1758035966, + "narHash": "sha256-qqIJ3yxPiB0ZQTT9//nFGQYn8X/PBoJbofA7hRKZnmE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c23193b943c6c689d70ee98ce3128239ed9e32d1", + "rev": "8d4ddb19d03c65a36ad8d189d001dc32ffb0306b", "type": "github" }, "original": { @@ -1414,11 +1414,11 @@ }, "nixpkgs_9": { "locked": { - "lastModified": 1757745802, - "narHash": "sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820=", + "lastModified": 1758035966, + "narHash": "sha256-qqIJ3yxPiB0ZQTT9//nFGQYn8X/PBoJbofA7hRKZnmE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c23193b943c6c689d70ee98ce3128239ed9e32d1", + "rev": "8d4ddb19d03c65a36ad8d189d001dc32ffb0306b", "type": "github" }, "original": { @@ -1437,11 +1437,11 @@ "systems": "systems_4" }, "locked": { - "lastModified": 1757773905, - "narHash": "sha256-lM1K3cJsPQyiSGI3rE/F7u02fA/JYBsinMN49IQCY1s=", + "lastModified": 1757955071, + "narHash": "sha256-owSpkt551cIqDDk5iHesdEus9REFeOIY3rY4C5ZPm/Y=", "owner": "notashelf", "repo": "nvf", - "rev": "7e74ee604a7c18dda21e6a809720ad37ab5bae43", + "rev": "1bd9fc116420db4c1156819d61df5d5312e1bbea", "type": "github" }, "original": { @@ -1553,11 +1553,11 @@ ] }, "locked": { - "lastModified": 1757730403, - "narHash": "sha256-Jxl4OZRVsXs8JxEHUVQn3oPu6zcqFyGGKaFrlNgbzp0=", + "lastModified": 1757930296, + "narHash": "sha256-Z9u5VszKs8rfEvg2AsFucWEjl7wMtAln9l1b78cfBh4=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "3232f7f8bd07849fc6f4ae77fe695e0abb2eba2c", + "rev": "09442765a05c2ca617c20ed68d9613da92a2d96b", "type": "github" }, "original": { @@ -1705,11 +1705,11 @@ ] }, "locked": { - "lastModified": 1756662192, - "narHash": "sha256-F1oFfV51AE259I85av+MAia221XwMHCOtZCMcZLK2Jk=", + "lastModified": 1758206697, + "narHash": "sha256-/DbPkh6PZOgfueCbs3uzlk4ASU2nPPsiVWhpMCNkAd0=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "1aabc6c05ccbcbf4a635fb7a90400e44282f61c4", + "rev": "128222dc911b8e2e18939537bed1762b7f3a04aa", "type": "github" }, "original": { diff --git a/hosts/kima/hardware-configuration.nix b/hosts/kima/hardware-configuration.nix index 2e03dbce..ac04f7cb 100644 --- a/hosts/kima/hardware-configuration.nix +++ b/hosts/kima/hardware-configuration.nix @@ -21,8 +21,9 @@ "usbhid" "sd_mod" ]; - boot.initrd.kernelModules = [ "amdgpu" ]; + boot.initrd.kernelModules = [ ]; boot.kernelModules = [ + "amdgpu" "kvm-amd" "i2c-dev" ]; diff --git a/hosts/kima/modules.nix b/hosts/kima/modules.nix index 9f04a42d..ad14d777 100644 --- a/hosts/kima/modules.nix +++ b/hosts/kima/modules.nix @@ -4,7 +4,7 @@ kernel = { variant = "latest"; hardware = [ "amd" ]; - extraKernelParams = [ "amdgpu.dcdebugmask=0x10" ]; + extraKernelParams = [ ]; }; loader = { default = { @@ -171,8 +171,8 @@ kanata = { enable = true; }; - libvirtd = { - enable = true; + virtualisation = { + enable = false; }; locate = { enable = true; diff --git a/modules/default.nix b/modules/default.nix index 5c7c8f4d..f504ca4c 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -97,7 +97,7 @@ ./nixos/services/greetd ./nixos/services/gvfs ./nixos/services/kanata - ./nixos/services/libvirtd + ./nixos/services/virtualisation ./nixos/services/locate ./nixos/services/mullvad ./nixos/services/mullvad-netns diff --git a/modules/home/programs/waybar/config/config.jsonc b/modules/home/programs/waybar/config/config.jsonc index ad7e9c95..4c23a702 100644 --- a/modules/home/programs/waybar/config/config.jsonc +++ b/modules/home/programs/waybar/config/config.jsonc @@ -1,5 +1,11 @@ [ { + "height": 25, + "layer": "top", + "output": [ + "DP-3", + "eDP-1" + ], "modules-left": [ "group/system" ], @@ -9,13 +15,12 @@ "modules-right": [ "custom/progress", "custom/systemd", - "group/tray", "pulseaudio", "backlight", "battery", - "date", - "clock", - "custom/dunst" + "group/tray", + "custom/dunst", + "clock" ], "backlight": { "format": "{icon} {percent}%", @@ -42,18 +47,9 @@ "clock": { "interval": 60, "format": "{:%H:%M}", - // "on-click": "calcurse-toggle.sh", - // "on-click-right": "calsync.sh", "rotate": 0, "tooltip": false }, - // "date": { - // "format": " {%a, %d %b}", - // "on-click": "calcurse-toggle.sh", - // "on-click-right": "calsync.sh", - // "rotate": 0, - // "tooltip": false - // }, "cpu": { "format": " {usage}%", "states": { @@ -125,16 +121,13 @@ ], "orientation": "inherit" }, - "height": 25, "hyprland/workspaces": { "active-only": false, "all-outputs": false, "format": "{icon}", "format-icons": { "urgent": "", - "active": "", "visible": "", - "default": "", "empty": "" }, "on-click": "activate", @@ -148,14 +141,11 @@ "niri/workspaces": { "format": "{icon}", "format-icons": { - // Named workspaces - // (you need to configure them in niri) "browser": "", "discord": "", "chat": "", - // Icons by state - "active": "", - "default": "" + "active": "", + "default": "" } }, "memory": { @@ -173,10 +163,6 @@ "interval": 2, "tooltip-format": "{ifname}: {ipaddr}/{cidr}\n {bandwidthDownBits}\n {bandwidthUpBits}" }, - "output": [ - "DP-3", - "eDP-1" - ], "pulseaudio": { "format": "{icon} {volume}% {format_source}", "format-bluetooth": "{icon} {volume}% {format_source}", diff --git a/modules/home/programs/waybar/config/style.css b/modules/home/programs/waybar/config/style.css index ecbb92ae..00a8c5ac 100644 --- a/modules/home/programs/waybar/config/style.css +++ b/modules/home/programs/waybar/config/style.css @@ -2,14 +2,25 @@ all: unset; border: none; border-radius: 0; - font-family: "DepartureMono Nerd Font", "Font Awesome 6 Free Solid"; - font-size: 14px; + font-family: + "DepartureMono Nerd Font", "Input Sans Compressed", + "Font Awesome 6 Free Solid"; + font-size: 15px; min-height: 0; } window#waybar { color: #fbf1c7; - background-color: rgba(43, 45, 50, 0.6); + background-color: rgba(43, 45, 50, 0.5); +} + +tooltip { + background: rgba(50, 50, 50, 0.9); + border: 1px solid rgba(100, 114, 125, 0.6); +} +tooltip label { + color: #fbf1c7; + font-family: "Input Sans Compressed"; } #workspaces button { @@ -23,14 +34,10 @@ window#waybar { #workspaces button:hover { color: #ebdbb2; - animation: ws_active 0s ease-in-out 1; - transition: all 0.2s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #workspaces button.active { color: #fbf1c7; - animation: ws_active 0s ease-in-out 1; - transition: all 0.2s cubic-bezier(0.55, -0.68, 0.48, 1.682); } #custom-logo { @@ -87,13 +94,14 @@ window#waybar { #memory, #backlight, #battery, -#date, -#clock { +#date { padding: 0 3px; margin: 0 3px; } #clock { + padding: 0px 3px; + margin: 0px 6px 0px 0px; font-family: "DepartureMono Nerd Font"; } @@ -132,12 +140,17 @@ window#waybar { } #tray menu * { - background-color: rgba(50, 48, 47, 0.9); + background: rgba(50, 50, 50, 0.9); + color: #fbf1c7; font-family: "Input Sans Compressed"; padding: 2px 2px; } -#tray menu menuitem:hover { +#tray menu { + border: 1px solid rgba(100, 114, 125, 0.6); +} + +#tray menu item:hover { color: #4c7a5d; } diff --git a/modules/nixos/services/libvirtd/default.nix b/modules/nixos/services/virtualisation/default.nix similarity index 72% rename from modules/nixos/services/libvirtd/default.nix rename to modules/nixos/services/virtualisation/default.nix index 4118f847..22728645 100644 --- a/modules/nixos/services/libvirtd/default.nix +++ b/modules/nixos/services/virtualisation/default.nix @@ -6,12 +6,15 @@ }: let inherit (lib) mkIf mkEnableOption; - cfg = config.nixos.services.libvirtd; + cfg = config.nixos.services.virtualisation; in { options = { - nixos.services.libvirtd.enable = mkEnableOption "Enables libvirtd"; + nixos.services.virtualisation.enable = mkEnableOption "Enables virtualisation"; }; + imports = [ + ./vfio.nix + ]; config = mkIf cfg.enable { networking.firewall.trustedInterfaces = [ "virbr0" ]; @@ -21,7 +24,6 @@ in ]; virtualisation = { - kvmgt.enable = true; spiceUSBRedirection.enable = true; libvirtd = { enable = true; @@ -34,5 +36,6 @@ in }; }; }; + nixos.services.virtualisation.vfio.enable = true; }; } diff --git a/modules/nixos/services/virtualisation/vfio.nix b/modules/nixos/services/virtualisation/vfio.nix new file mode 100644 index 00000000..fec91b2d --- /dev/null +++ b/modules/nixos/services/virtualisation/vfio.nix @@ -0,0 +1,41 @@ +{ lib, config, ... }: +let + gpuIDs = [ + "1002:13c0" + "1002:1640" + ]; + + vfioIds = "vfio-pci.ids=" + lib.concatStringsSep "," gpuIDs; + baseBootKernelParams = config.boot.kernelParams or [ ]; + cfg = config.nixos.services.virtualisation.vfio; +in +{ + options = { + nixos.services.virtualisation.vfio.enable = + lib.mkEnableOption "Enable VFIO passthrough for the iGPU"; + }; + + config = lib.mkIf cfg.enable { + boot = { + initrd.kernelModules = [ + "vfio_pci" + "vfio" + "vfio_iommu_type1" + ]; + + kernelParams = [ + "amd_iommu=on" + "iommu=pt" + ] + ++ [ vfioIds ]; + }; + + specialisation.vfio.configuration = { + system.nixos.tags = [ "vfio" ]; + boot = { + kernelParams = baseBootKernelParams ++ [ vfioIds ]; + blacklistedKernelModules = [ "amdgpu:0f:00.0" ]; + }; + }; + }; +} diff --git a/nix/default.nix b/nix/default.nix index 7eb10af2..19c3a830 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -22,16 +22,7 @@ flakeInputs = lib.filterAttrs (_: v: lib.isType "flake" v) inputs; in { - package = pkgs.lix.overrideAttrs (old: { - patches = (old.patches or [ ]) ++ [ - (pkgs.fetchpatch2 { - name = "lix-lowdown-1.4.0.patch"; - url = "https://git.lix.systems/lix-project/lix/commit/858de5f47a1bfd33835ec97794ece339a88490f1.patch"; - hash = "sha256-FfLO2dFSWV1qwcupIg8dYEhCHir2XX6/Hs89eLwd+SY="; - }) - ]; - }); - + package = pkgs.lix; # pin the registry to avoid downloading and evaling a new nixpkgs version every time registry = lib.mapAttrs (_: v: { flake = v; }) flakeInputs;