Files
NixosConfig/plasma.nix

66 lines
1.7 KiB
Nix

{ 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");
};
}