{ pkgs, lib, inputs, ... }: { imports = [ ./hardware-configuration.nix inputs.self.nixosModules.vm-guest inputs.self.nixosModules.desktop inputs.self.nixosModules.zsh ]; vm-guest.enable = true; desktop.enable = true; zsh.enable = true; programs.labwc.enable = true; # labwc stacking compositor with auto-login services.greetd = let labwc-session = pkgs.writeShellScript "labwc-session" '' export XDG_SESSION_TYPE=wayland export XDG_CURRENT_DESKTOP=labwc:wlroots # software renderer for qemu virtio-vga export WLR_RENDERER=pixman export WLR_DRM_NO_ATOMIC=1 exec ${pkgs.labwc}/bin/labwc ''; in { enable = true; settings = { default_session = { command = labwc-session; user = "gorazd"; }; initial_session = { command = labwc-session; user = "gorazd"; }; }; }; users = { groups.gorazd = { gid = 1000; }; users.gorazd = { group = "gorazd"; uid = 1000; isNormalUser = true; home = "/home/gorazd"; createHome = true; password = "sandbox"; extraGroups = [ "wheel" "users" ]; }; }; # 9p mounts for host files fileSystems."/home/gorazd/projects" = { device = "projects"; fsType = "9p"; options = [ "trans=virtio" "version=9p2000.L" "msize=65536" "nofail" ]; }; fileSystems."/mnt/host-claude" = { device = "hostclaude"; fsType = "9p"; options = [ "trans=virtio" "version=9p2000.L" "msize=65536" "nofail" ]; }; fileSystems."/mnt/host-home" = { device = "hosthome"; fsType = "9p"; options = [ "trans=virtio" "version=9p2000.L" "msize=65536" "nofail" "ro" ]; }; # pre-auth claude-code from host config systemd.services.claude-auth = { description = "Copy claude-code credentials from host mount"; after = [ "mnt-host\\x2dclaude.mount" "mnt-host\\x2dhome.mount" ]; requires = [ "mnt-host\\x2dclaude.mount" "mnt-host\\x2dhome.mount" ]; wantedBy = [ "multi-user.target" ]; serviceConfig = { Type = "oneshot"; ExecStart = pkgs.writeShellScript "claude-auth" '' mkdir -p /home/gorazd/.claude cp -a /mnt/host-claude/. /home/gorazd/.claude/ cp /mnt/host-home/.claude.json /home/gorazd/.claude.json || true chown -R gorazd:gorazd /home/gorazd/.claude /home/gorazd/.claude.json ''; }; }; environment.systemPackages = with pkgs; [ claude-code labwc sfwbar foot firefox ]; system.stateVersion = "25.11"; }