Flake for my desktop, laptop, and my homelab.
0

Configure Feed

Select the types of activity you want to include in your feed.

remove vm and actually fix overzicht

Adam0 (Jun 1, 2026, 9:53 AM +0200) ba711567 97678839

+2 -176
-1
.gitignore
··· 2 2 .direnv 3 3 .rumdl_cache 4 4 result* 5 - vm.qcow2 6 5 # keep-sorted end
-21
modules/desktop/hyprland/keybinds/window-management.nix
··· 41 41 } 42 42 43 43 { 44 - description = "Reset zoom"; 45 - 46 - keys = ["SUPER" "SHIFT" "mouse_down"]; 47 - lua = "zoom_reset"; 48 - } 49 - 50 - { 51 44 description = "Toggle floating"; 52 45 53 46 keys = ["SUPER" "V"]; ··· 82 75 } 83 76 84 77 { 85 - description = "Zoom in"; 86 - 87 - keys = ["SUPER" "mouse_down"]; 88 - lua = "function() zoom(1.1) end"; 89 - } 90 - 91 - { 92 78 description = "Zoom out"; 93 79 94 80 keys = ["SUPER" "minus"]; 95 81 lua = "function() zoom(0.9) end"; 96 82 97 83 options.repeating = true; 98 - } 99 - 100 - { 101 - description = "Zoom out"; 102 - 103 - keys = ["SUPER" "mouse_up"]; 104 - lua = "function() zoom(0.9) end"; 105 84 } 106 85 # keep-sorted end 107 86 ])
+2 -3
modules/desktop/hyprland/rules.nix
··· 25 25 hyprfocus = "${pkgs.hyprlandPlugins.hyprfocus}/lib/libhyprfocus.so"; 26 26 hyprpicker = getExe pkgs.hyprpicker; 27 27 noctalia-qs = getExe' inputs.noctalia-qs.packages.${pkgs.stdenv.hostPlatform.system}.quickshell ".quickshell-wrapped"; 28 - overzicht = "${escapeRegex quickshell}.*${escapeRegex "${config.programs.overzicht.package}/share/overzicht"}"; 29 - quickshell = getExe pkgs.quickshell; 28 + overzicht = getExe' config.programs.quickshell.package ".quickshell-wrapped"; 30 29 xdg-desktop-portal-hyprland = getExe' osConfig.programs.hyprland.portalPackage ".xdg-desktop-portal-hyprland-wrapped"; 31 30 # keep-sorted end 32 31 in { ··· 70 69 } 71 70 72 71 { 73 - binary = overzicht; 72 + binary = escapeRegex overzicht; 74 73 mode = "allow"; 75 74 type = "screencopy"; 76 75 }
-7
modules/hosts/default.nix
··· 11 11 # keep-sorted start 12 12 mapAttrs 13 13 mkDefault 14 - optionalAttrs 15 14 # keep-sorted end 16 15 ; 17 16 ··· 19 18 # keep-sorted start 20 19 desktop = "x86_64-linux"; 21 20 laptop = "x86_64-linux"; 22 - vm = "x86_64-linux"; 23 21 # keep-sorted end 24 22 }; 25 23 in { 26 - perSystem = {system, ...}: 27 - optionalAttrs (system == hosts.vm) { 28 - packages.vm = self.nixosConfigurations.vm.config.system.build.vm; 29 - }; 30 - 31 24 flake.nixosConfigurations = mapAttrs (name: system: 32 25 self.lib.nixosSystem { 33 26 specialArgs = {
-37
modules/hosts/vm/default.nix
··· 1 - {self, ...}: { 2 - flake.modules.nixos.vm = {vars, ...}: let 3 - inherit (vars) username; 4 - in { 5 - imports = with self.modules.nixos; [ 6 - # Profiles 7 - # keep-sorted start 8 - gaming 9 - personal 10 - # keep-sorted end 11 - ]; 12 - 13 - networking.hostName = "vm"; 14 - 15 - virtualisation.vmVariant.virtualisation.sharedDirectories.sops-nix-key = { 16 - # Provide the host age key at the path sops-nix expects in the guest. 17 - source = "/home/${username}/.config/sops/age"; 18 - target = "/var/lib/sops-nix"; 19 - securityModel = "none"; 20 - }; 21 - 22 - # System version for state compatibility - do not modify. 23 - system.stateVersion = "26.05"; 24 - 25 - # Virtual disk device for disko partitioning. 26 - disko.selectedDisk = "/dev/vda"; 27 - 28 - services = { 29 - timezone = "automatic-timezoned"; 30 - 31 - # keep-sorted start 32 - qemuGuest.enable = true; 33 - spice-vdagentd.enable = true; 34 - # keep-sorted end 35 - }; 36 - }; 37 - }
-20
modules/hosts/vm/hardware.nix
··· 1 - { 2 - flake.modules.nixos.vm = {modulesPath, ...}: { 3 - imports = [(modulesPath + "/profiles/qemu-guest.nix")]; 4 - 5 - # keep-sorted start block=yes newline_separated=yes 6 - # Kernel modules appropriate for generic vms. 7 - boot.initrd.availableKernelModules = [ 8 - # keep-sorted start 9 - "ahci" 10 - "sr_mod" 11 - "virtio_blk" 12 - "virtio_pci" 13 - "xhci_pci" 14 - # keep-sorted end 15 - ]; 16 - 17 - boot.kernelModules = ["kvm-intel"]; 18 - # keep-sorted end 19 - }; 20 - }
-37
modules/hosts/vm/home.nix
··· 1 - { 2 - flake.modules.nixos.vm = { 3 - # keep-sorted start 4 - self, 5 - vars, 6 - # keep-sorted end 7 - ... 8 - }: let 9 - inherit (vars) username; 10 - in { 11 - home-manager.users.${username} = { 12 - imports = with self.modules.homeManager; [ 13 - # Profiles 14 - # keep-sorted start 15 - gaming 16 - personal 17 - # keep-sorted end 18 - ]; 19 - 20 - # keep-sorted start block=yes newline_separated=yes 21 - # Configure the vm display settings. 22 - programs.hylix.monitors = [ 23 - { 24 - output = "Virtual-1"; 25 - mode = "1920x1080@60"; 26 - position = "0x0"; 27 - scale = "1"; 28 - extra.vrr = 0; 29 - } 30 - ]; 31 - 32 - # Browser memory allocation for vm environment. 33 - programs.zen-browser.profiles.default.preferences.commitSpace = 6683; 34 - # keep-sorted end 35 - }; 36 - }; 37 - }
-50
modules/programs/gui/virt-manager.nix
··· 1 - {self, ...}: { 2 - flake.modules.nixos.virt-manager = { 3 - # keep-sorted start 4 - pkgs, 5 - vars, 6 - # keep-sorted end 7 - ... 8 - }: let 9 - inherit (vars) username; 10 - in { 11 - imports = [self.modules.generic.vars]; 12 - 13 - # keep-sorted start block=yes newline_separated=yes 14 - programs.virt-manager.enable = true; 15 - 16 - # Groups for libvirt access. 17 - users.users.${username}.extraGroups = [ 18 - # keep-sorted start 19 - "kvm" 20 - "libvirtd" 21 - # keep-sorted end 22 - ]; 23 - 24 - virtualisation.libvirtd = { 25 - # Configure libvirtd with qemu swtpm. 26 - enable = true; 27 - qemu = { 28 - # Allow the use of emulated tpm. 29 - swtpm.enable = true; 30 - 31 - # Use qemu_kvm package to save disk space. 32 - package = pkgs.qemu_kvm; 33 - }; 34 - 35 - # Keep VMs off at boot. 36 - onBoot = "ignore"; 37 - }; 38 - # keep-sorted end 39 - 40 - # Allow the default libvirt bridge and leave it unmanaged by NetworkManager. 41 - networking = let 42 - interface = ["virbr0"]; 43 - in { 44 - # keep-sorted start 45 - firewall.trustedInterfaces = interface; 46 - networkmanager.unmanaged = interface; 47 - # keep-sorted end 48 - }; 49 - }; 50 - }