nixpkgs/pkgs/desktops/budgie/budgie-gsettings-overrides/default.nix
Bobby Rong b79ac84d84
nixos/budgie: Use gnome-terminal by default
- Both budgie-desktop-view and cinnamon-desktop defaults to gnome-terminal, there
  are no clear reason why we don't use the defaults here.
  The cinnamon-desktop org.cinnamon.desktop.default-applications.terminal schema
  is used in nemo for default emulator, since we use nemo by default this fixes nemo
  open in terminal entry without introducing another override.
- There are theming issues with Qogir when opening right-click menu in a second tab.
- Transparency is broken when hovering on other windows, showing only the wallpaper.

This also ensures a stable default for budgie-desktop-view, by using only the
executable name and not a nix store path.

ref: https://github.com/BuddiesOfBudgie/budgie-desktop-view/blob/v1.3/data/org.buddiesofbudgie.budgie-desktop-view.gschema.xml#L60
ref: https://github.com/linuxmint/cinnamon-desktop/blob/6.0.0/schemas/org.cinnamon.desktop.default-applications.gschema.xml.in#L46
ref: https://github.com/linuxmint/nemo/blob/6.0.0/src/nemo-view.c#L7193
2024-03-21 22:16:25 +08:00

82 lines
2.2 KiB
Nix

{ lib
, runCommand
, budgie-desktop
, budgie-desktop-view
, glib
, gsettings-desktop-schemas
, gnome
, nixos-artwork
, nixos-background-light ? nixos-artwork.wallpapers.nineish
, nixos-background-dark ? nixos-artwork.wallpapers.nineish-dark-gray
, extraGSettingsOverrides ? ""
, extraGSettingsOverridePackages ? []
}:
let
inherit (lib) concatMapStringsSep;
gsettingsOverrides = ''
[org.gnome.desktop.background:Budgie]
picture-uri="file://${nixos-background-light.gnomeFilePath}"
picture-uri-dark="file://${nixos-background-dark.gnomeFilePath}"
[org.gnome.desktop.screensaver:Budgie]
picture-uri="file://${nixos-background-dark.gnomeFilePath}"
[org.gnome.desktop.interface:Budgie]
gtk-theme="Qogir"
icon-theme="Qogir"
cursor-theme="Qogir"
font-name="Noto Sans 10"
document-font-name="Noto Sans 10"
monospace-font-name="Hack 10"
[org.gnome.desktop.peripherals.touchpad:Budgie]
tap-to-click=true
[org.gnome.desktop.wm.preferences:Budgie]
titlebar-font="Noto Sans Bold 10"
[org.gnome.mutter:Budgie]
edge-tiling=true
[com.solus-project.budgie-menu:Budgie]
use-default-menu-icon=true
[com.solus-project.budgie-panel:Budgie]
dark-theme=false
builtin-theme=false
[com.solus-project.icon-tasklist:Budgie]
pinned-launchers=["nemo.desktop", "firefox.desktop", "vlc.desktop"]
[org.buddiesofbudgie.budgie-desktop-view:Budgie]
show=true
show-active-mounts=true
${extraGSettingsOverrides}
'';
gsettingsOverridePackages = [
budgie-desktop
budgie-desktop-view
gsettings-desktop-schemas
gnome.mutter
] ++ extraGSettingsOverridePackages;
in
runCommand "budgie-gsettings-overrides" { preferLocalBuild = true; } ''
data_dir="$out/share/gsettings-schemas/nixos-gsettings-overrides"
schema_dir="$data_dir/glib-2.0/schemas"
mkdir -p "$schema_dir"
${concatMapStringsSep "\n" (pkg: "cp -rf \"${glib.getSchemaPath pkg}\"/*.xml \"${glib.getSchemaPath pkg}\"/*.gschema.override \"$schema_dir\"") gsettingsOverridePackages}
chmod -R a+w "$data_dir"
cat - > "$schema_dir/zz-nixos-defaults.gschema.override" <<- EOF
${gsettingsOverrides}
EOF
${glib.dev}/bin/glib-compile-schemas --strict "$schema_dir"
''