Merge pull request #216737 from FedericoSchonborn/budgie
Budgie Desktop
This commit is contained in:
commit
28031f7579
13 changed files with 895 additions and 2 deletions
|
@ -47,6 +47,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
||||||
|
|
||||||
- [stevenblack-blocklist](https://github.com/StevenBlack/hosts), A unified hosts file with base extensions for blocking unwanted websites. Available as [networking.stevenblack](options.html#opt-networking.stevenblack.enable).
|
- [stevenblack-blocklist](https://github.com/StevenBlack/hosts), A unified hosts file with base extensions for blocking unwanted websites. Available as [networking.stevenblack](options.html#opt-networking.stevenblack.enable).
|
||||||
|
|
||||||
|
- [Budgie Desktop](https://github.com/BuddiesOfBudgie/budgie-desktop), a familiar, modern desktop environment. Availabe as [services.xserver.desktopManager.budgie](options.html#opt-services.xserver.desktopManager.budgie).
|
||||||
|
|
||||||
- [imaginary](https://github.com/h2non/imaginary), a microservice for high-level image processing that Nextcloud can use to generate previews. Available as [services.imaginary](#opt-services.imaginary.enable).
|
- [imaginary](https://github.com/h2non/imaginary), a microservice for high-level image processing that Nextcloud can use to generate previews. Available as [services.imaginary](#opt-services.imaginary.enable).
|
||||||
|
|
||||||
- [opensearch](https://opensearch.org), a search server alternative to Elasticsearch. Available as [services.opensearch](options.html#opt-services.opensearch.enable).
|
- [opensearch](https://opensearch.org), a search server alternative to Elasticsearch. Available as [services.opensearch](options.html#opt-services.opensearch.enable).
|
||||||
|
|
201
nixos/modules/services/x11/desktop-managers/budgie.nix
Normal file
201
nixos/modules/services/x11/desktop-managers/budgie.nix
Normal file
|
@ -0,0 +1,201 @@
|
||||||
|
{ lib, pkgs, config, utils, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (lib) concatMapStrings literalExpression mdDoc mkDefault mkEnableOption mkIf mkOption types;
|
||||||
|
|
||||||
|
cfg = config.services.xserver.desktopManager.budgie;
|
||||||
|
|
||||||
|
nixos-background-light = pkgs.nixos-artwork.wallpapers.nineish;
|
||||||
|
nixos-background-dark = pkgs.nixos-artwork.wallpapers.nineish-dark-gray;
|
||||||
|
|
||||||
|
nixos-gsettings-overrides = pkgs.budgie.budgie-gsettings-overrides.override {
|
||||||
|
inherit (cfg) extraGSettingsOverrides extraGSettingsOverridePackages;
|
||||||
|
inherit nixos-background-dark nixos-background-light;
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
services.xserver.desktopManager.budgie = {
|
||||||
|
enable = mkEnableOption (mdDoc "Budgie desktop");
|
||||||
|
|
||||||
|
sessionPath = mkOption {
|
||||||
|
description = mdDoc "Additional list of packages to be added to the session search path. Useful for GSettings-conditional autostart.";
|
||||||
|
type = with types; listOf package;
|
||||||
|
example = literalExpression "[ pkgs.budgie.budgie-desktop-view ]";
|
||||||
|
default = [];
|
||||||
|
};
|
||||||
|
|
||||||
|
extraGSettingsOverrides = mkOption {
|
||||||
|
description = mdDoc "Additional GSettings overrides.";
|
||||||
|
type = types.lines;
|
||||||
|
default = "";
|
||||||
|
};
|
||||||
|
|
||||||
|
extraGSettingsOverridePackages = mkOption {
|
||||||
|
description = mdDoc "List of packages for which GSettings are overridden.";
|
||||||
|
type = with types; listOf path;
|
||||||
|
default = [];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.budgie.excludePackages = mkOption {
|
||||||
|
description = mdDoc "Which packages Budgie should exclude from the default environment.";
|
||||||
|
type = with types; listOf package;
|
||||||
|
default = [];
|
||||||
|
example = literalExpression "[ pkgs.mate-terminal ]";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
services.xserver.displayManager.sessionPackages = with pkgs; [
|
||||||
|
budgie.budgie-desktop
|
||||||
|
];
|
||||||
|
|
||||||
|
services.xserver.displayManager.lightdm.greeters.slick = {
|
||||||
|
enable = mkDefault true;
|
||||||
|
theme = mkDefault { name = "Qogir"; package = pkgs.qogir-theme; };
|
||||||
|
iconTheme = mkDefault { name = "Qogir"; package = pkgs.qogir-icon-theme; };
|
||||||
|
cursorTheme = mkDefault { name = "Qogir"; package = pkgs.qogir-icon-theme; };
|
||||||
|
};
|
||||||
|
|
||||||
|
services.xserver.desktopManager.budgie.sessionPath = [ pkgs.budgie.budgie-desktop-view ];
|
||||||
|
|
||||||
|
environment.extraInit = ''
|
||||||
|
${concatMapStrings (p: ''
|
||||||
|
if [ -d "${p}/share/gsettings-schemas/${p.name}" ]; then
|
||||||
|
export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}${p}/share/gsettings-schemas/${p.name}
|
||||||
|
fi
|
||||||
|
if [ -d "${p}/lib/girepository-1.0" ]; then
|
||||||
|
export GI_TYPELIB_PATH=$GI_TYPELIB_PATH''${GI_TYPELIB_PATH:+:}${p}/lib/girepository-1.0
|
||||||
|
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${p}/lib
|
||||||
|
fi
|
||||||
|
'') cfg.sessionPath}
|
||||||
|
'';
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs;
|
||||||
|
[
|
||||||
|
# Budgie Desktop.
|
||||||
|
budgie.budgie-backgrounds
|
||||||
|
budgie.budgie-control-center
|
||||||
|
budgie.budgie-desktop
|
||||||
|
budgie.budgie-desktop-view
|
||||||
|
budgie.budgie-screensaver
|
||||||
|
|
||||||
|
# Required by the Budgie Desktop session.
|
||||||
|
(gnome.gnome-session.override {gnomeShellSupport = false;})
|
||||||
|
|
||||||
|
# Required by Budgie Menu.
|
||||||
|
gnome-menus
|
||||||
|
|
||||||
|
# Provides `gsettings`.
|
||||||
|
glib
|
||||||
|
|
||||||
|
# Update user directories.
|
||||||
|
xdg-user-dirs
|
||||||
|
]
|
||||||
|
++ (utils.removePackagesByName [
|
||||||
|
cinnamon.nemo
|
||||||
|
mate.eom
|
||||||
|
mate.pluma
|
||||||
|
mate.atril
|
||||||
|
mate.engrampa
|
||||||
|
mate.mate-calc
|
||||||
|
mate.mate-terminal
|
||||||
|
mate.mate-system-monitor
|
||||||
|
vlc
|
||||||
|
|
||||||
|
# Desktop themes.
|
||||||
|
qogir-theme
|
||||||
|
qogir-icon-theme
|
||||||
|
|
||||||
|
# Default settings.
|
||||||
|
nixos-gsettings-overrides
|
||||||
|
] config.environment.budgie.excludePackages)
|
||||||
|
++ cfg.sessionPath;
|
||||||
|
|
||||||
|
# Fonts.
|
||||||
|
fonts.fonts = mkDefault [
|
||||||
|
pkgs.noto-fonts
|
||||||
|
pkgs.hack-font
|
||||||
|
];
|
||||||
|
fonts.fontconfig.defaultFonts = {
|
||||||
|
sansSerif = mkDefault ["Noto Sans"];
|
||||||
|
monospace = mkDefault ["Hack"];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Qt application style.
|
||||||
|
qt = {
|
||||||
|
enable = mkDefault true;
|
||||||
|
style = mkDefault "gtk2";
|
||||||
|
platformTheme = mkDefault "gtk2";
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.pathsToLink = [
|
||||||
|
"/share" # TODO: https://github.com/NixOS/nixpkgs/issues/47173
|
||||||
|
];
|
||||||
|
|
||||||
|
# GSettings overrides.
|
||||||
|
environment.sessionVariables.NIX_GSETTINGS_OVERRIDES_DIR = "${nixos-gsettings-overrides}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas";
|
||||||
|
|
||||||
|
# Required by Budgie Desktop.
|
||||||
|
services.xserver.updateDbusEnvironment = true;
|
||||||
|
programs.dconf.enable = true;
|
||||||
|
|
||||||
|
# Required by Budgie Screensaver.
|
||||||
|
security.pam.services.budgie-screensaver = {};
|
||||||
|
|
||||||
|
# Required by Budgie's Polkit Dialog.
|
||||||
|
security.polkit.enable = mkDefault true;
|
||||||
|
|
||||||
|
# Required by Budgie Panel plugins and/or Budgie Control Center panels.
|
||||||
|
networking.networkmanager.enable = mkDefault true; # for BCC's Network panel.
|
||||||
|
programs.nm-applet.enable = config.networking.networkmanager.enable; # Budgie has no Network applet.
|
||||||
|
programs.nm-applet.indicator = false; # Budgie doesn't support AppIndicators.
|
||||||
|
|
||||||
|
hardware.bluetooth.enable = mkDefault true; # for Budgie's Status Indicator and BCC's Bluetooth panel.
|
||||||
|
hardware.pulseaudio.enable = mkDefault true; # for Budgie's Status Indicator and BCC's Sound panel.
|
||||||
|
|
||||||
|
xdg.portal.enable = mkDefault true; # for BCC's Applications panel.
|
||||||
|
xdg.portal.extraPortals = with pkgs; [
|
||||||
|
xdg-desktop-portal-gtk # provides a XDG Portals implementation.
|
||||||
|
];
|
||||||
|
|
||||||
|
services.geoclue2.enable = mkDefault true; # for BCC's Privacy > Location Services panel.
|
||||||
|
services.upower.enable = config.powerManagement.enable; # for Budgie's Status Indicator and BCC's Power panel.
|
||||||
|
services.xserver.libinput.enable = mkDefault true; # for BCC's Mouse panel.
|
||||||
|
services.colord.enable = mkDefault true; # for BCC's Color panel.
|
||||||
|
services.gnome.at-spi2-core.enable = mkDefault true; # for BCC's A11y panel.
|
||||||
|
services.accounts-daemon.enable = mkDefault true; # for BCC's Users panel.
|
||||||
|
services.fprintd.enable = mkDefault true; # for BCC's Users panel.
|
||||||
|
services.udisks2.enable = mkDefault true; # for BCC's Details panel.
|
||||||
|
|
||||||
|
# For BCC's Online Accounts panel.
|
||||||
|
services.gnome.gnome-online-accounts.enable = mkDefault true;
|
||||||
|
services.gnome.gnome-online-miners.enable = true;
|
||||||
|
|
||||||
|
# For BCC's Printers panel.
|
||||||
|
services.printing.enable = mkDefault true;
|
||||||
|
services.system-config-printer.enable = config.services.printing.enable;
|
||||||
|
|
||||||
|
# For BCC's Sharing panel.
|
||||||
|
services.dleyna-renderer.enable = mkDefault true;
|
||||||
|
services.dleyna-server.enable = mkDefault true;
|
||||||
|
services.gnome.gnome-user-share.enable = mkDefault true;
|
||||||
|
services.gnome.rygel.enable = mkDefault true;
|
||||||
|
|
||||||
|
# Other default services.
|
||||||
|
services.gnome.evolution-data-server.enable = mkDefault true;
|
||||||
|
services.gnome.glib-networking.enable = mkDefault true;
|
||||||
|
services.gnome.gnome-keyring.enable = mkDefault true;
|
||||||
|
services.gnome.gnome-settings-daemon.enable = mkDefault true;
|
||||||
|
services.gvfs.enable = mkDefault true;
|
||||||
|
|
||||||
|
# Register packages for DBus.
|
||||||
|
services.dbus.packages = with pkgs; [
|
||||||
|
budgie.budgie-control-center
|
||||||
|
];
|
||||||
|
|
||||||
|
# Shell integration for MATE Terminal.
|
||||||
|
programs.bash.vteIntegration = true;
|
||||||
|
programs.zsh.vteIntegration = true;
|
||||||
|
};
|
||||||
|
}
|
|
@ -21,7 +21,7 @@ in
|
||||||
./none.nix ./xterm.nix ./phosh.nix ./xfce.nix ./plasma5.nix ./lumina.nix
|
./none.nix ./xterm.nix ./phosh.nix ./xfce.nix ./plasma5.nix ./lumina.nix
|
||||||
./lxqt.nix ./enlightenment.nix ./gnome.nix ./retroarch.nix ./kodi.nix
|
./lxqt.nix ./enlightenment.nix ./gnome.nix ./retroarch.nix ./kodi.nix
|
||||||
./mate.nix ./pantheon.nix ./surf-display.nix ./cde.nix
|
./mate.nix ./pantheon.nix ./surf-display.nix ./cde.nix
|
||||||
./cinnamon.nix
|
./cinnamon.nix ./budgie.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
|
|
|
@ -112,6 +112,7 @@ in {
|
||||||
btrbk-doas = handleTest ./btrbk-doas.nix {};
|
btrbk-doas = handleTest ./btrbk-doas.nix {};
|
||||||
btrbk-no-timer = handleTest ./btrbk-no-timer.nix {};
|
btrbk-no-timer = handleTest ./btrbk-no-timer.nix {};
|
||||||
btrbk-section-order = handleTest ./btrbk-section-order.nix {};
|
btrbk-section-order = handleTest ./btrbk-section-order.nix {};
|
||||||
|
budgie = handleTest ./budgie.nix {};
|
||||||
buildbot = handleTest ./buildbot.nix {};
|
buildbot = handleTest ./buildbot.nix {};
|
||||||
buildkite-agents = handleTest ./buildkite-agents.nix {};
|
buildkite-agents = handleTest ./buildkite-agents.nix {};
|
||||||
caddy = handleTest ./caddy.nix {};
|
caddy = handleTest ./caddy.nix {};
|
||||||
|
|
51
nixos/tests/budgie.nix
Normal file
51
nixos/tests/budgie.nix
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
import ./make-test-python.nix ({ pkgs, lib, ... }: {
|
||||||
|
name = "budgie";
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
maintainers = [ maintainers.federicoschonborn ];
|
||||||
|
};
|
||||||
|
|
||||||
|
nodes.machine = { ... }: {
|
||||||
|
imports = [
|
||||||
|
./common/user-account.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
services.xserver.enable = true;
|
||||||
|
|
||||||
|
services.xserver.displayManager = {
|
||||||
|
lightdm.enable = true;
|
||||||
|
autoLogin = {
|
||||||
|
enable = true;
|
||||||
|
user = "alice";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.xserver.desktopManager.budgie.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript = { nodes, ... }:
|
||||||
|
let
|
||||||
|
user = nodes.machine.users.users.alice;
|
||||||
|
in
|
||||||
|
''
|
||||||
|
with subtest("Wait for login"):
|
||||||
|
machine.wait_for_x()
|
||||||
|
machine.wait_for_file("${user.home}/.Xauthority")
|
||||||
|
machine.succeed("xauth merge ${user.home}/.Xauthority")
|
||||||
|
|
||||||
|
with subtest("Check that logging in has given the user ownership of devices"):
|
||||||
|
machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}")
|
||||||
|
|
||||||
|
with subtest("Check if Budgie session components actually start"):
|
||||||
|
machine.wait_until_succeeds("pgrep budgie-daemon")
|
||||||
|
machine.wait_for_window("budgie-daemon")
|
||||||
|
machine.wait_until_succeeds("pgrep budgie-panel")
|
||||||
|
machine.wait_for_window("budgie-panel")
|
||||||
|
|
||||||
|
with subtest("Open MATE terminal"):
|
||||||
|
machine.succeed("su - ${user.name} -c 'DISPLAY=:0 mate-terminal >&2 &'")
|
||||||
|
machine.wait_for_window("Terminal")
|
||||||
|
machine.sleep(20)
|
||||||
|
machine.screenshot("screen")
|
||||||
|
'';
|
||||||
|
})
|
40
pkgs/desktops/budgie/budgie-backgrounds/default.nix
Normal file
40
pkgs/desktops/budgie/budgie-backgrounds/default.nix
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
{ lib
|
||||||
|
, stdenv
|
||||||
|
, fetchFromGitHub
|
||||||
|
, imagemagick
|
||||||
|
, jhead
|
||||||
|
, meson
|
||||||
|
, ninja
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "budgie-backgrounds";
|
||||||
|
version = "0.1";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "BuddiesOfBudgie";
|
||||||
|
repo = "budgie-backgrounds";
|
||||||
|
rev = "v${version}";
|
||||||
|
hash = "sha256-pDFd+WvWOPgDoSffmX9mzjDQbhePsJV1wGqmPDcnOlw=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
imagemagick
|
||||||
|
jhead
|
||||||
|
meson
|
||||||
|
ninja
|
||||||
|
];
|
||||||
|
|
||||||
|
preConfigure = ''
|
||||||
|
chmod +x ./scripts/optimizeImage.sh
|
||||||
|
patchShebangs ./scripts/optimizeImage.sh
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "The default background set for the Budgie Desktop";
|
||||||
|
homepage = "https://github.com/BuddiesOfBudgie/budgie-backgrounds";
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = [ maintainers.federicoschonborn ];
|
||||||
|
license = licenses.cc0;
|
||||||
|
};
|
||||||
|
}
|
175
pkgs/desktops/budgie/budgie-control-center/default.nix
Normal file
175
pkgs/desktops/budgie/budgie-control-center/default.nix
Normal file
|
@ -0,0 +1,175 @@
|
||||||
|
{ lib
|
||||||
|
, stdenv
|
||||||
|
, fetchFromGitHub
|
||||||
|
, substituteAll
|
||||||
|
, accountsservice
|
||||||
|
, budgie-desktop
|
||||||
|
, clutter
|
||||||
|
, clutter-gtk
|
||||||
|
, colord
|
||||||
|
, colord-gtk
|
||||||
|
, cups
|
||||||
|
, docbook-xsl-nons
|
||||||
|
, fontconfig
|
||||||
|
, gcr
|
||||||
|
, gdk-pixbuf
|
||||||
|
, gettext
|
||||||
|
, glib
|
||||||
|
, glib-networking
|
||||||
|
, glibc
|
||||||
|
, gnome
|
||||||
|
, gnome-desktop
|
||||||
|
, gnome-online-accounts
|
||||||
|
, gsettings-desktop-schemas
|
||||||
|
, gsound
|
||||||
|
, gtk3
|
||||||
|
, ibus
|
||||||
|
, libcanberra-gtk3
|
||||||
|
, libepoxy
|
||||||
|
, libgnomekbd
|
||||||
|
, libgtop
|
||||||
|
, libgudev
|
||||||
|
, libhandy
|
||||||
|
, libkrb5
|
||||||
|
, libnma
|
||||||
|
, libpulseaudio
|
||||||
|
, libpwquality
|
||||||
|
, librsvg
|
||||||
|
, libsecret
|
||||||
|
, libwacom
|
||||||
|
, libxml2
|
||||||
|
, libxslt
|
||||||
|
, meson
|
||||||
|
, modemmanager
|
||||||
|
, networkmanager
|
||||||
|
, networkmanagerapplet
|
||||||
|
, ninja
|
||||||
|
, pkg-config
|
||||||
|
, polkit
|
||||||
|
, samba
|
||||||
|
, shadow
|
||||||
|
, shared-mime-info
|
||||||
|
, tzdata
|
||||||
|
, udisks2
|
||||||
|
, upower
|
||||||
|
, webp-pixbuf-loader
|
||||||
|
, wrapGAppsHook
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "budgie-control-center";
|
||||||
|
version = "1.2.0";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "BuddiesOfBudgie";
|
||||||
|
repo = pname;
|
||||||
|
rev = "v${version}";
|
||||||
|
fetchSubmodules = true;
|
||||||
|
sha256 = "sha256-z9apestNLEUKzrCMNo0BNAWeyE6FsUCAzcHIom8LcUs=";
|
||||||
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
(substituteAll {
|
||||||
|
src = ./paths.patch;
|
||||||
|
budgie_desktop = budgie-desktop;
|
||||||
|
gcm = gnome.gnome-color-manager;
|
||||||
|
inherit cups glibc libgnomekbd shadow;
|
||||||
|
inherit networkmanagerapplet tzdata;
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
docbook-xsl-nons
|
||||||
|
gettext
|
||||||
|
libxslt
|
||||||
|
meson
|
||||||
|
ninja
|
||||||
|
pkg-config
|
||||||
|
shared-mime-info
|
||||||
|
wrapGAppsHook
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
accountsservice
|
||||||
|
clutter
|
||||||
|
clutter-gtk
|
||||||
|
colord
|
||||||
|
colord-gtk
|
||||||
|
fontconfig
|
||||||
|
gcr
|
||||||
|
gdk-pixbuf
|
||||||
|
glib
|
||||||
|
glib-networking
|
||||||
|
gnome-desktop
|
||||||
|
gnome-online-accounts
|
||||||
|
gnome.adwaita-icon-theme
|
||||||
|
gnome.cheese
|
||||||
|
gnome.gnome-bluetooth_1_0
|
||||||
|
gnome.gnome-remote-desktop
|
||||||
|
gnome.gnome-settings-daemon
|
||||||
|
gnome.gnome-user-share
|
||||||
|
gnome.mutter
|
||||||
|
gsettings-desktop-schemas
|
||||||
|
gsound
|
||||||
|
gtk3
|
||||||
|
ibus
|
||||||
|
libcanberra-gtk3
|
||||||
|
libepoxy
|
||||||
|
libgtop
|
||||||
|
libgudev
|
||||||
|
libhandy
|
||||||
|
libkrb5
|
||||||
|
libnma
|
||||||
|
libpulseaudio
|
||||||
|
libpwquality
|
||||||
|
librsvg
|
||||||
|
libsecret
|
||||||
|
libwacom
|
||||||
|
libxml2
|
||||||
|
modemmanager
|
||||||
|
networkmanager
|
||||||
|
polkit
|
||||||
|
samba
|
||||||
|
udisks2
|
||||||
|
upower
|
||||||
|
];
|
||||||
|
|
||||||
|
preConfigure = ''
|
||||||
|
# For ITS rules
|
||||||
|
addToSearchPath "XDG_DATA_DIRS" "${polkit.out}/share"
|
||||||
|
'';
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
# Pull in WebP support for gnome-backgrounds.
|
||||||
|
# In postInstall to run before gappsWrapperArgsHook.
|
||||||
|
export GDK_PIXBUF_MODULE_FILE="${gnome._gdkPixbufCacheBuilder_DO_NOT_USE {
|
||||||
|
extraLoaders = [
|
||||||
|
librsvg
|
||||||
|
webp-pixbuf-loader
|
||||||
|
];
|
||||||
|
}}"
|
||||||
|
'';
|
||||||
|
|
||||||
|
preFixup = ''
|
||||||
|
gappsWrapperArgs+=(
|
||||||
|
# Sound theme
|
||||||
|
--prefix XDG_DATA_DIRS : "${budgie-desktop}/share"
|
||||||
|
# Thumbnailers (for setting user profile pictures)
|
||||||
|
--prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share"
|
||||||
|
--prefix XDG_DATA_DIRS : "${librsvg}/share"
|
||||||
|
# WM keyboard shortcuts
|
||||||
|
--prefix XDG_DATA_DIRS : "${gnome.mutter}/share"
|
||||||
|
)
|
||||||
|
'';
|
||||||
|
|
||||||
|
separateDebugInfo = true;
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "A fork of GNOME Control Center for the Budgie 10 Series";
|
||||||
|
homepage = "https://github.com/BuddiesOfBudgie/budgie-control-center";
|
||||||
|
mainProgram = "budgie-control-center";
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = [ maintainers.federicoschonborn ];
|
||||||
|
license = licenses.gpl2Plus;
|
||||||
|
};
|
||||||
|
}
|
185
pkgs/desktops/budgie/budgie-control-center/paths.patch
Normal file
185
pkgs/desktops/budgie/budgie-control-center/paths.patch
Normal file
|
@ -0,0 +1,185 @@
|
||||||
|
diff --git a/panels/color/cc-color-panel.c b/panels/color/cc-color-panel.c
|
||||||
|
index a2f90b093..7801b4a5e 100644
|
||||||
|
--- a/panels/color/cc-color-panel.c
|
||||||
|
+++ b/panels/color/cc-color-panel.c
|
||||||
|
@@ -587,7 +587,7 @@ gcm_prefs_calibrate_cb (CcColorPanel *prefs)
|
||||||
|
|
||||||
|
/* run with modal set */
|
||||||
|
argv = g_ptr_array_new_with_free_func (g_free);
|
||||||
|
- g_ptr_array_add (argv, g_strdup ("gcm-calibrate"));
|
||||||
|
+ g_ptr_array_add (argv, g_build_filename ("@gcm@", "bin", "gcm-calibrate", NULL));
|
||||||
|
g_ptr_array_add (argv, g_strdup ("--device"));
|
||||||
|
g_ptr_array_add (argv, g_strdup (cd_device_get_id (prefs->current_device)));
|
||||||
|
g_ptr_array_add (argv, g_strdup ("--parent-window"));
|
||||||
|
@@ -940,7 +940,7 @@ gcm_prefs_profile_view (CcColorPanel *prefs, CdProfile *profile)
|
||||||
|
|
||||||
|
/* open up gcm-viewer as a info pane */
|
||||||
|
argv = g_ptr_array_new_with_free_func (g_free);
|
||||||
|
- g_ptr_array_add (argv, g_strdup ("gcm-viewer"));
|
||||||
|
+ g_ptr_array_add (argv, g_build_filename ("@gcm@", "bin", "gcm-viewer", NULL));
|
||||||
|
g_ptr_array_add (argv, g_strdup ("--profile"));
|
||||||
|
g_ptr_array_add (argv, g_strdup (cd_profile_get_id (profile)));
|
||||||
|
g_ptr_array_add (argv, g_strdup ("--parent-window"));
|
||||||
|
@@ -1186,15 +1186,12 @@ gcm_prefs_device_clicked (CcColorPanel *prefs, CdDevice *device)
|
||||||
|
static void
|
||||||
|
gcm_prefs_profile_clicked (CcColorPanel *prefs, CdProfile *profile, CdDevice *device)
|
||||||
|
{
|
||||||
|
- g_autofree gchar *s = NULL;
|
||||||
|
-
|
||||||
|
/* get profile */
|
||||||
|
g_debug ("selected profile = %s",
|
||||||
|
cd_profile_get_filename (profile));
|
||||||
|
|
||||||
|
/* allow getting profile info */
|
||||||
|
- if (cd_profile_get_filename (profile) != NULL &&
|
||||||
|
- (s = g_find_program_in_path ("gcm-viewer")) != NULL)
|
||||||
|
+ if (cd_profile_get_filename (profile) != NULL)
|
||||||
|
gtk_widget_set_sensitive (prefs->toolbutton_profile_view, TRUE);
|
||||||
|
else
|
||||||
|
gtk_widget_set_sensitive (prefs->toolbutton_profile_view, FALSE);
|
||||||
|
diff --git a/panels/datetime/tz.h b/panels/datetime/tz.h
|
||||||
|
index b6b7ab9d0..31f268e91 100644
|
||||||
|
--- a/panels/datetime/tz.h
|
||||||
|
+++ b/panels/datetime/tz.h
|
||||||
|
@@ -4,7 +4,7 @@
|
||||||
|
* Copyright (C) 2000-2001 Ximian, Inc.
|
||||||
|
*
|
||||||
|
* Authors: Hans Petter Jansson <hpj@ximian.com>
|
||||||
|
- *
|
||||||
|
+ *
|
||||||
|
* Largely based on Michael Fulbright's work on Anaconda.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
@@ -27,11 +27,7 @@
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
-#ifndef __sun
|
||||||
|
-# define TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab"
|
||||||
|
-#else
|
||||||
|
-# define TZ_DATA_FILE "/usr/share/lib/zoneinfo/tab/zone_sun.tab"
|
||||||
|
-#endif
|
||||||
|
+#define TZ_DATA_FILE "@tzdata@/share/zoneinfo/zone.tab"
|
||||||
|
|
||||||
|
typedef struct _TzDB TzDB;
|
||||||
|
typedef struct _TzLocation TzLocation;
|
||||||
|
diff --git a/panels/info-overview/cc-info-overview-panel.c b/panels/info-overview/cc-info-overview-panel.c
|
||||||
|
index 25cda02d3..db664bc56 100644
|
||||||
|
--- a/panels/info-overview/cc-info-overview-panel.c
|
||||||
|
+++ b/panels/info-overview/cc-info-overview-panel.c
|
||||||
|
@@ -156,7 +156,7 @@ load_budgie_version (char **version)
|
||||||
|
gsize length;
|
||||||
|
g_autoptr(VersionData) data = NULL;
|
||||||
|
|
||||||
|
- if (!g_file_get_contents (DATADIR "/budgie/budgie-version.xml",
|
||||||
|
+ if (!g_file_get_contents ("@budgie_desktop@/share/budgie/budgie-version.xml",
|
||||||
|
&contents,
|
||||||
|
&length,
|
||||||
|
&error))
|
||||||
|
diff --git a/panels/keyboard/cc-input-list-box.c b/panels/keyboard/cc-input-list-box.c
|
||||||
|
index 191207490..37e0fddc2 100644
|
||||||
|
--- a/panels/keyboard/cc-input-list-box.c
|
||||||
|
+++ b/panels/keyboard/cc-input-list-box.c
|
||||||
|
@@ -62,7 +62,7 @@ struct _CcInputListBox {
|
||||||
|
};
|
||||||
|
|
||||||
|
G_DEFINE_TYPE (CcInputListBox, cc_input_list_box, GTK_TYPE_LIST_BOX)
|
||||||
|
-
|
||||||
|
+
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
CcInputListBox *panel;
|
||||||
|
@@ -223,10 +223,10 @@ row_layout_cb (CcInputListBox *self,
|
||||||
|
layout_variant = cc_input_source_get_layout_variant (source);
|
||||||
|
|
||||||
|
if (layout_variant && layout_variant[0])
|
||||||
|
- commandline = g_strdup_printf ("gkbd-keyboard-display -l \"%s\t%s\"",
|
||||||
|
+ commandline = g_strdup_printf ("@libgnomekbd@/bin/gkbd-keyboard-display -l \"%s\t%s\"",
|
||||||
|
layout, layout_variant);
|
||||||
|
else
|
||||||
|
- commandline = g_strdup_printf ("gkbd-keyboard-display -l %s",
|
||||||
|
+ commandline = g_strdup_printf ("@libgnomekbd@/bin/gkbd-keyboard-display -l %s",
|
||||||
|
layout);
|
||||||
|
|
||||||
|
g_spawn_command_line_async (commandline, NULL);
|
||||||
|
diff --git a/panels/network/connection-editor/net-connection-editor.c b/panels/network/connection-editor/net-connection-editor.c
|
||||||
|
index 505b8ee25..62e94009f 100644
|
||||||
|
--- a/panels/network/connection-editor/net-connection-editor.c
|
||||||
|
+++ b/panels/network/connection-editor/net-connection-editor.c
|
||||||
|
@@ -267,9 +267,9 @@ net_connection_editor_do_fallback (NetConnectionEditor *self, const gchar *type)
|
||||||
|
g_autoptr(GError) error = NULL;
|
||||||
|
|
||||||
|
if (self->is_new_connection) {
|
||||||
|
- cmdline = g_strdup_printf ("nm-connection-editor --type='%s' --create", type);
|
||||||
|
+ cmdline = g_strdup_printf ("@networkmanagerapplet@/bin/nm-connection-editor --type='%s' --create", type);
|
||||||
|
} else {
|
||||||
|
- cmdline = g_strdup_printf ("nm-connection-editor --edit='%s'",
|
||||||
|
+ cmdline = g_strdup_printf ("@networkmanagerapplet@/bin/nm-connection-editor --edit='%s'",
|
||||||
|
nm_connection_get_uuid (self->connection));
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/panels/network/net-device-bluetooth.c b/panels/network/net-device-bluetooth.c
|
||||||
|
index 372c0c4f8..464f4b6a0 100644
|
||||||
|
--- a/panels/network/net-device-bluetooth.c
|
||||||
|
+++ b/panels/network/net-device-bluetooth.c
|
||||||
|
@@ -141,7 +141,7 @@ options_button_clicked_cb (NetDeviceBluetooth *self)
|
||||||
|
|
||||||
|
connection = net_device_get_find_connection (self->client, self->device);
|
||||||
|
uuid = nm_connection_get_uuid (connection);
|
||||||
|
- cmdline = g_strdup_printf ("nm-connection-editor --edit %s", uuid);
|
||||||
|
+ cmdline = g_strdup_printf ("@networkmanagerapplet@/bin/nm-connection-editor --edit %s", uuid);
|
||||||
|
g_debug ("Launching '%s'\n", cmdline);
|
||||||
|
if (!g_spawn_command_line_async (cmdline, &error))
|
||||||
|
g_warning ("Failed to launch nm-connection-editor: %s", error->message);
|
||||||
|
diff --git a/panels/network/net-device-mobile.c b/panels/network/net-device-mobile.c
|
||||||
|
index f50fd5d07..c6f6f776e 100644
|
||||||
|
--- a/panels/network/net-device-mobile.c
|
||||||
|
+++ b/panels/network/net-device-mobile.c
|
||||||
|
@@ -522,7 +522,7 @@ options_button_clicked_cb (NetDeviceMobile *self)
|
||||||
|
|
||||||
|
connection = net_device_get_find_connection (self->client, self->device);
|
||||||
|
uuid = nm_connection_get_uuid (connection);
|
||||||
|
- cmdline = g_strdup_printf ("nm-connection-editor --edit %s", uuid);
|
||||||
|
+ cmdline = g_strdup_printf ("@networkmanagerapplet@/bin/nm-connection-editor --edit %s", uuid);
|
||||||
|
g_debug ("Launching '%s'\n", cmdline);
|
||||||
|
if (!g_spawn_command_line_async (cmdline, &error))
|
||||||
|
g_warning ("Failed to launch nm-connection-editor: %s", error->message);
|
||||||
|
diff --git a/panels/printers/pp-host.c b/panels/printers/pp-host.c
|
||||||
|
index a31a606e3..ed5133d29 100644
|
||||||
|
--- a/panels/printers/pp-host.c
|
||||||
|
+++ b/panels/printers/pp-host.c
|
||||||
|
@@ -256,7 +256,7 @@ _pp_host_get_snmp_devices_thread (GTask *task,
|
||||||
|
devices = g_ptr_array_new_with_free_func (g_object_unref);
|
||||||
|
|
||||||
|
argv = g_new0 (gchar *, 3);
|
||||||
|
- argv[0] = g_strdup ("/usr/lib/cups/backend/snmp");
|
||||||
|
+ argv[0] = g_strdup ("@cups@/lib/cups/backend/snmp");
|
||||||
|
argv[1] = g_strdup (priv->hostname);
|
||||||
|
|
||||||
|
/* Use SNMP to get printer's informations */
|
||||||
|
diff --git a/panels/user-accounts/run-passwd.c b/panels/user-accounts/run-passwd.c
|
||||||
|
index 86f53d4fc..0b052856f 100644
|
||||||
|
--- a/panels/user-accounts/run-passwd.c
|
||||||
|
+++ b/panels/user-accounts/run-passwd.c
|
||||||
|
@@ -150,7 +150,7 @@ spawn_passwd (PasswdHandler *passwd_handler, GError **error)
|
||||||
|
gchar **envp;
|
||||||
|
gint my_stdin, my_stdout, my_stderr;
|
||||||
|
|
||||||
|
- argv[0] = "/usr/bin/passwd"; /* Is it safe to rely on a hard-coded path? */
|
||||||
|
+ argv[0] = "/run/wrappers/bin/passwd"; /* Is it safe to rely on a hard-coded path? */
|
||||||
|
argv[1] = NULL;
|
||||||
|
|
||||||
|
envp = g_get_environ ();
|
||||||
|
diff --git a/panels/user-accounts/user-utils.c b/panels/user-accounts/user-utils.c
|
||||||
|
index 0de83479e..628e35247 100644
|
||||||
|
--- a/panels/user-accounts/user-utils.c
|
||||||
|
+++ b/panels/user-accounts/user-utils.c
|
||||||
|
@@ -497,7 +497,7 @@ is_valid_username_async (const gchar *username,
|
||||||
|
* future, so it would be nice to have some official way for this
|
||||||
|
* instead of relying on the current "--login" implementation.
|
||||||
|
*/
|
||||||
|
- argv[0] = "/usr/sbin/usermod";
|
||||||
|
+ argv[0] = "@shadow@/bin/usermod";
|
||||||
|
argv[1] = "--login";
|
||||||
|
argv[2] = data->username;
|
||||||
|
argv[3] = "--";
|
53
pkgs/desktops/budgie/budgie-desktop-view/default.nix
Normal file
53
pkgs/desktops/budgie/budgie-desktop-view/default.nix
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
{ lib
|
||||||
|
, stdenv
|
||||||
|
, fetchFromGitHub
|
||||||
|
, desktop-file-utils
|
||||||
|
, glib
|
||||||
|
, gtk3
|
||||||
|
, intltool
|
||||||
|
, meson
|
||||||
|
, ninja
|
||||||
|
, pkg-config
|
||||||
|
, vala
|
||||||
|
, wrapGAppsHook
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "budgie-desktop-view";
|
||||||
|
version = "1.2.1";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "BuddiesOfBudgie";
|
||||||
|
repo = pname;
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "sha256-USsySJuDov2oe9UXyzACBAyYIRLKSXOMXdia8Ix/8TE=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
desktop-file-utils
|
||||||
|
intltool
|
||||||
|
meson
|
||||||
|
ninja
|
||||||
|
pkg-config
|
||||||
|
vala
|
||||||
|
wrapGAppsHook
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
glib
|
||||||
|
gtk3
|
||||||
|
];
|
||||||
|
|
||||||
|
preInstall = ''
|
||||||
|
substituteInPlace ../scripts/mesonPostInstall.sh --replace "update-desktop-database -q" "update-desktop-database $out/share/applications"
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "The official Budgie desktop icons application/implementation";
|
||||||
|
homepage = "https://github.com/BuddiesOfBudgie/budgie-desktop-view";
|
||||||
|
mainProgram = "org.buddiesofbudgie.budgie-desktop-view";
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = [ maintainers.federicoschonborn ];
|
||||||
|
license = licenses.asl20;
|
||||||
|
};
|
||||||
|
}
|
101
pkgs/desktops/budgie/budgie-desktop/default.nix
Normal file
101
pkgs/desktops/budgie/budgie-desktop/default.nix
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
{ lib
|
||||||
|
, stdenv
|
||||||
|
, fetchFromGitHub
|
||||||
|
, accountsservice
|
||||||
|
, alsa-lib
|
||||||
|
, budgie-screensaver
|
||||||
|
, docbook-xsl-nons
|
||||||
|
, glib
|
||||||
|
, gnome
|
||||||
|
, gnome-desktop
|
||||||
|
, gnome-menus
|
||||||
|
, graphene
|
||||||
|
, gst_all_1
|
||||||
|
, gtk-doc
|
||||||
|
, gtk3
|
||||||
|
, ibus
|
||||||
|
, intltool
|
||||||
|
, libcanberra-gtk3
|
||||||
|
, libgee
|
||||||
|
, libGL
|
||||||
|
, libnotify
|
||||||
|
, libpeas
|
||||||
|
, libpulseaudio
|
||||||
|
, libuuid
|
||||||
|
, libwnck
|
||||||
|
, mesa
|
||||||
|
, meson
|
||||||
|
, ninja
|
||||||
|
, pkg-config
|
||||||
|
, polkit
|
||||||
|
, sassc
|
||||||
|
, upower
|
||||||
|
, vala
|
||||||
|
, wrapGAppsHook
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "budgie-desktop";
|
||||||
|
version = "10.7.1";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "BuddiesOfBudgie";
|
||||||
|
repo = pname;
|
||||||
|
rev = "v${version}";
|
||||||
|
fetchSubmodules = true;
|
||||||
|
sha256 = "sha256-ww65J9plixbxFza6xCfaz1WYtT9giKkLVH1XYxH41+0=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
docbook-xsl-nons
|
||||||
|
gtk-doc
|
||||||
|
intltool
|
||||||
|
meson
|
||||||
|
ninja
|
||||||
|
pkg-config
|
||||||
|
vala
|
||||||
|
wrapGAppsHook
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
accountsservice
|
||||||
|
alsa-lib
|
||||||
|
budgie-screensaver
|
||||||
|
glib
|
||||||
|
gnome-desktop
|
||||||
|
gnome-menus
|
||||||
|
gnome.gnome-bluetooth_1_0
|
||||||
|
gnome.gnome-settings-daemon
|
||||||
|
gnome.mutter
|
||||||
|
graphene
|
||||||
|
gtk3
|
||||||
|
ibus
|
||||||
|
libcanberra-gtk3
|
||||||
|
libgee
|
||||||
|
libGL
|
||||||
|
libnotify
|
||||||
|
libpeas
|
||||||
|
libpulseaudio
|
||||||
|
libuuid
|
||||||
|
libwnck
|
||||||
|
mesa
|
||||||
|
polkit
|
||||||
|
sassc
|
||||||
|
upower
|
||||||
|
] ++ (with gst_all_1; [
|
||||||
|
gstreamer
|
||||||
|
gst-plugins-base
|
||||||
|
]);
|
||||||
|
|
||||||
|
passthru.providedSessions = [
|
||||||
|
"budgie-desktop"
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "A feature-rich, modern desktop designed to keep out the way of the user";
|
||||||
|
homepage = "https://github.com/BuddiesOfBudgie/budgie-desktop";
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = [ maintainers.federicoschonborn ];
|
||||||
|
license = with licenses; [ gpl2Plus lgpl21Plus cc-by-sa-30];
|
||||||
|
};
|
||||||
|
}
|
78
pkgs/desktops/budgie/budgie-gsettings-overrides/default.nix
Normal file
78
pkgs/desktops/budgie/budgie-gsettings-overrides/default.nix
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
{ lib
|
||||||
|
, runCommand
|
||||||
|
, budgie-desktop
|
||||||
|
, budgie-desktop-view
|
||||||
|
, glib
|
||||||
|
, gnome
|
||||||
|
, gsettings-desktop-schemas
|
||||||
|
, mate
|
||||||
|
, 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"
|
||||||
|
enable-hot-corners=true
|
||||||
|
|
||||||
|
[org.gnome.desktop.wm.preferences:Budgie]
|
||||||
|
titlebar-font="Noto Sans Bold 10"
|
||||||
|
|
||||||
|
[org.gnome.mutter:Budgie]
|
||||||
|
workspaces-only-on-primary=true
|
||||||
|
|
||||||
|
[com.solus-project.budgie-panel:Budgie]
|
||||||
|
dark-theme=false
|
||||||
|
builtin-theme=false
|
||||||
|
|
||||||
|
[com.solus-project.icon-tasklist:Budgie]
|
||||||
|
pinned-launchers=["nemo.desktop", "vlc.desktop", "mate-terminal.desktop"]
|
||||||
|
|
||||||
|
[org.buddiesofbudgie.budgie-desktop-view:Budgie]
|
||||||
|
show=true
|
||||||
|
click-policy="double"
|
||||||
|
terminal="${mate.mate-terminal}/bin/mate-terminal"
|
||||||
|
|
||||||
|
${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"
|
||||||
|
''
|
|
@ -1,5 +1,10 @@
|
||||||
{ lib, pkgs }:
|
{ lib, pkgs }:
|
||||||
|
|
||||||
lib.makeScope pkgs.newScope (self: with self; {
|
lib.makeScope pkgs.newScope (self: with self; {
|
||||||
|
budgie-backgrounds = callPackage ./budgie-backgrounds { };
|
||||||
|
budgie-control-center = callPackage ./budgie-control-center { };
|
||||||
|
budgie-desktop = callPackage ./budgie-desktop { };
|
||||||
|
budgie-desktop-view = callPackage ./budgie-desktop-view { };
|
||||||
|
budgie-gsettings-overrides = callPackage ./budgie-gsettings-overrides { };
|
||||||
budgie-screensaver = callPackage ./budgie-screensaver { };
|
budgie-screensaver = callPackage ./budgie-screensaver { };
|
||||||
})
|
})
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
, libepoxy
|
, libepoxy
|
||||||
, bash
|
, bash
|
||||||
, gnome-session-ctl
|
, gnome-session-ctl
|
||||||
|
, gnomeShellSupport ? true
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
|
@ -113,7 +114,7 @@ stdenv.mkDerivation rec {
|
||||||
wrapProgram "$out/libexec/gnome-session-binary" \
|
wrapProgram "$out/libexec/gnome-session-binary" \
|
||||||
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
|
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
|
||||||
--suffix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \
|
--suffix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \
|
||||||
--suffix XDG_DATA_DIRS : "${gnome.gnome-shell}/share"\
|
${lib.optionalString gnomeShellSupport "--suffix XDG_DATA_DIRS : \"${gnome.gnome-shell}/share\""} \
|
||||||
--suffix XDG_CONFIG_DIRS : "${gnome.gnome-settings-daemon}/etc/xdg"
|
--suffix XDG_CONFIG_DIRS : "${gnome.gnome-settings-daemon}/etc/xdg"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue