From 03df47b6f54dad896ef73160ee36e6c3843e55da Mon Sep 17 00:00:00 2001 From: ShatteredMINT Date: Wed, 18 Mar 2026 08:46:11 +0100 Subject: [PATCH] fix fonts for flatpaks --- plasma.nix | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/plasma.nix b/plasma.nix index ec449ce..6c0100b 100644 --- a/plasma.nix +++ b/plasma.nix @@ -20,4 +20,48 @@ 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 + xorg.mkfontscale + xorg.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.xorg.fontalias}/ -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"); + }; }