config/packages/nixpak/modules/gui-base.nix
2022-07-31 15:17:59 +02:00

85 lines
No EOL
2.2 KiB
Nix

{ config, lib, pkgs, ... }:
let
locales = pkgs.glibcLocales.override {
allLocales = true;
};
fonts = with pkgs; [
cantarell-fonts
dejavu_fonts
liberation_ttf
gyre-fonts
source-sans
source-code-pro
];
fontCache = pkgs.makeFontsCache {
inherit (pkgs) fontconfig;
fontDirectories = fonts;
};
fontConfigFile = pkgs.writeTextDir "etc/fonts/conf.d/00-nixpak-fonts.conf" ''
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'urn:fontconfig:fonts.dtd'>
<fontconfig>
<!-- Font directories -->
${lib.concatStringsSep "\n" (map (font: "<dir>${font}</dir>") fonts)}
${lib.optionalString (pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform) ''
<!-- Pre-generated font caches -->
<cachedir>${fontCache}</cachedir>
''}
</fontconfig>
'';
fc = pkgs.buildEnv {
name = "nixpak-font-env";
paths = [
fontConfigFile
pkgs.fontconfig.out
];
pathsToLink = "/etc/fonts";
};
in
{
config = {
dbus.policies = {
"${config.flatpak.appId}" = "own";
"org.freedesktop.DBus" = "talk";
"org.gtk.vfs.*" = "talk";
"org.gtk.vfs" = "talk";
"ca.desrt.dconf" = "talk";
"org.freedesktop.portal.*" = "talk";
"org.a11y.Bus" = "talk";
};
gpu.enable = lib.mkDefault true;
gpu.provider = "bundle";
bubblewrap = {
network = lib.mkDefault false;
bind.rw = [
"$HOME/.cache/fontconfig"
"$HOME/.cache/mesa_shader_cache"
"$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY"
"$XDG_RUNTIME_DIR/at-spi/bus"
"$XDG_RUNTIME_DIR/gvfsd"
"$XDG_RUNTIME_DIR/pulse"
];
bind.ro = [
[ "${fc}/etc/fonts" "/etc/fonts" ]
"$XDG_RUNTIME_DIR/doc"
"$HOME/.config/gtk-2.0"
"$HOME/.config/gtk-3.0"
"$HOME/.config/gtk-4.0"
];
env = {
XDG_DATA_DIRS = lib.makeSearchPath "share" [
pkgs.gnome.adwaita-icon-theme
pkgs.shared-mime-info
];
XCURSOR_PATH = lib.concatStringsSep ":" [
"${pkgs.gnome.adwaita-icon-theme}/share/icons"
"${pkgs.gnome.adwaita-icon-theme}/share/pixmaps"
];
LOCALE_ARCHIVE = "${locales}/lib/locale/locale-archive";
};
};
};
}