{ config, libs, pkgs, ... }: { # install Plasma Desktop services.xserver.enable = true; # TODO figure out how to use without X11 services.xserver.xkb.layout = "de"; services.desktopManager.plasma6.enable = true; services.displayManager.sddm.wayland.enable = true; # remove clutter environment.plasma6.excludePackages = [ pkgs.kdePackages.discover pkgs.kdePackages.elisa ]; # Enable sound. services.pipewire = { enable = true; pulse.enable = true; }; system.fsPackages = [ pkgs.bindfs ]; fileSystems = let mkRoSymBind = path: { device = path; fsType = "fuse.bindfs"; options = [ "ro" "resolve-symlinks" "x-gvfs-hide" ]; }; fontsPkgs = config.fonts.packages; x11Fonts = pkgs.runCommand "X11-fonts" { preferLocalBuild = true; nativeBuildInputs = with pkgs; [ gzip mkfontscale mkfontdir ]; } ('' mkdir -p "$out/share/fonts" font_regexp='.*\.\(ttf\|ttc\|otb\|otf\|pcf\|pfa\|pfb\|bdf\)\(\.gz\)?' '' + (builtins.concatStringsSep "\n" (builtins.map (pkg: '' find ${toString pkg} -regex "$font_regexp" \ -exec ln -sf -t "$out/share/fonts" '{}' \; '') fontsPkgs )) + '' cd "$out/share/fonts" mkfontscale mkfontdir cat $(find ${pkgs.font-alias}/ -name fonts.alias) >fonts.alias ''); aggregatedIcons = pkgs.buildEnv { name = "system-icons"; paths = fontsPkgs; pathsToLink = [ "/share/icons" ]; }; in { "/usr/share/icons" = mkRoSymBind (aggregatedIcons + "/share/icons"); "/usr/share/fonts" = mkRoSymBind (x11Fonts + "/share/fonts"); }; }