{ flake.nixosModules.plasma = { config, pkgs, lib, ... }: let cfg = config.hive.plasma; in { options.hive.plasma = { enable = lib.mkEnableOption "Enable Plasma 6 desktop environment"; autologin = lib.mkOption { type = lib.types.nullOr lib.types.str; default = null; description = "The autologin username or null for no autologin."; }; }; config = lib.mkIf cfg.enable { services.displayManager = { autoLogin.enable = cfg.autologin != null; autoLogin.user = cfg.autologin; sddm = { enable = true; wayland.enable = true; }; }; services.desktopManager.plasma6.enable = true; xdg.portal = { enable = true; extraPortals = with pkgs; [ kdePackages.xdg-desktop-portal-kde xdg-desktop-portal-gtk ]; }; }; }; }