59 lines
1.6 KiB
Nix
59 lines
1.6 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}: let
|
|
sleep = "${pkgs.coreutils}/bin/sleep";
|
|
systemctl = "${pkgs.systemd}/bin/systemctl";
|
|
inherit (lib) mkIf mkEnableOption mkForce mkDefault;
|
|
cfg = config.nixfiles.sessions.plasma;
|
|
in {
|
|
# imports = [
|
|
# ./desktop-common.nix
|
|
# ];
|
|
|
|
options.nixfiles.sessions.plasma = {
|
|
enable = mkEnableOption "KDE Plasma session";
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
nixfiles.programs.greetd.enable = lib.mkDefault true;
|
|
nixfiles.programs.greetd.settings.command = lib.mkDefault ["${pkgs.kdePackages.plasma-workspace}/libexec/plasma-dbus-run-session-if-needed" "startplasma-wayland"];
|
|
|
|
services.xserver.enable = true;
|
|
services.desktopManager.plasma6.enable = true;
|
|
services.displayManager.defaultSession = "plasma";
|
|
programs.kdeconnect.enable = mkDefault true;
|
|
nixfiles.meta.wayland = true;
|
|
|
|
xdg.portal.extraPortals = [
|
|
pkgs.xdg-desktop-portal-gtk
|
|
];
|
|
systemd.user = {
|
|
services.restart-xdg-desktop-portal-kde = {
|
|
enable = true;
|
|
description = "hack to fix xdg-desktop-portal on kde";
|
|
wantedBy = ["graphical-session.target"];
|
|
after = ["plasma-core.target" "xdg-desktop-portal.service"];
|
|
requisite = ["plasma-core.target"];
|
|
|
|
serviceConfig = {
|
|
ExecStart = [
|
|
"${sleep} 5"
|
|
"${systemctl} --user restart xdg-desktop-portal.service"
|
|
];
|
|
Type = "oneshot";
|
|
RemainAfterExit = "yes";
|
|
};
|
|
};
|
|
};
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
# this fixes tiny file dialogs for Minecraft
|
|
kdePackages.kdialog
|
|
kdePackages.yakuake
|
|
];
|
|
};
|
|
}
|