85 lines
No EOL
2.2 KiB
Nix
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";
|
|
};
|
|
};
|
|
};
|
|
} |