-
-
Save worldofpeace/35928f34bf9ec980da93e636c9e1a9c1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/nixos/modules/services/x11/desktop-managers/elementary.nix b/nixos/modules/services/x11/desktop-managers/elementary.nix | |
index 4fa3bd1edfd..1f6938da56d 100644 | |
--- a/nixos/modules/services/x11/desktop-managers/elementary.nix | |
+++ b/nixos/modules/services/x11/desktop-managers/elementary.nix | |
@@ -34,8 +34,6 @@ in | |
''; | |
apply = list: list ++ | |
[ | |
- pkgs.elementary.elementary-dpms-helper | |
- pkgs.elementary.elementary-settings-daemon # TODO: I shouldn't need to do this | |
pkgs.elementary.pantheon-agent-geoclue2 | |
]; | |
}; | |
@@ -139,9 +137,6 @@ in | |
# Override GSettings schemas | |
environment.variables.NIX_GSETTINGS_OVERRIDES_DIR = "${nixos-gsettings-desktop-schemas}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas"; | |
- # So gnome-session can find the pantheon session, this also sets the default mimeapps | |
- environment.variables.XDG_DATA_DIRS = [ "${pkgs.elementary.elementary-session-settings}/share" ]; | |
- | |
environment.variables.GNOME_SESSION_DEBUG = optionalString cfg.debug "1"; | |
environment.variables.GIO_EXTRA_MODULES = [ | |
diff --git a/pkgs/desktops/elementary/apps/switchboard-plugs/power/default.nix b/pkgs/desktops/elementary/apps/switchboard-plugs/power/default.nix | |
index f8aa942573f..b0791769659 100644 | |
--- a/pkgs/desktops/elementary/apps/switchboard-plugs/power/default.nix | |
+++ b/pkgs/desktops/elementary/apps/switchboard-plugs/power/default.nix | |
@@ -1,5 +1,5 @@ | |
{ stdenv, fetchFromGitHub, elementary, substituteAll, meson, ninja, pkgconfig, vala, libgee | |
-, elementary-dpms-helper, makeWrapper, granite, gtk3, dbus, polkit, switchboard, gobject-introspection }: | |
+, elementary-dpms-helper, elementary-settings-daemon, makeWrapper, granite, gtk3, dbus, polkit, switchboard, gobject-introspection }: | |
stdenv.mkDerivation rec { | |
pname = "switchboard-plug-power"; | |
@@ -38,10 +38,16 @@ stdenv.mkDerivation rec { | |
patches = [ | |
(substituteAll { | |
src = ./dpms-helper-exec.patch; | |
- inherit elementary-dpms-helper; | |
+ elementary_dpms_helper = "${elementary-dpms-helper}"; | |
}) | |
+ ./hardcode-gsettings.patch | |
]; | |
+ postPatch = '' | |
+ substituteInPlace src/MainView.vala --subst-var-by DPMS_HELPER_GSETTINGS_PATH ${elementary-dpms-helper}/share/gsettings-schemas/${elementary-dpms-helper.name}/glib-2.0/schemas | |
+ substituteInPlace src/MainView.vala --subst-var-by GSD_GSETTINGS_PATH ${elementary-settings-daemon}/share/gsettings-schemas/${elementary-settings-daemon.name}/glib-2.0/schemas | |
+ ''; | |
+ | |
PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard"; | |
PKG_CONFIG_DBUS_1_SYSTEM_BUS_SERVICES_DIR = "share/dbus-1/system-services"; | |
PKG_CONFIG_DBUS_1_SYSCONFDIR = "etc"; | |
diff --git a/pkgs/desktops/elementary/apps/switchboard-plugs/power/dpms-helper-exec.patch b/pkgs/desktops/elementary/apps/switchboard-plugs/power/dpms-helper-exec.patch | |
index 67c327f81f4..335d3f29626 100644 | |
--- a/pkgs/desktops/elementary/apps/switchboard-plugs/power/dpms-helper-exec.patch | |
+++ b/pkgs/desktops/elementary/apps/switchboard-plugs/power/dpms-helper-exec.patch | |
@@ -7,7 +7,7 @@ index 1654e68..175f220 100644 | |
private static void run_dpms_helper () { | |
try { | |
- string[] argv = { "io.elementary.dpms-helper" }; | |
-+ string[] argv = { "@elementary-dpms-helper@/bin/io.elementary.dpms-helper" }; | |
++ string[] argv = { "@elementary_dpms_helper@/bin/io.elementary.dpms-helper" }; | |
Process.spawn_async (null, argv, Environ.get (), | |
SpawnFlags.SEARCH_PATH | SpawnFlags.STDERR_TO_DEV_NULL | SpawnFlags.STDOUT_TO_DEV_NULL, | |
null, null); | |
diff --git a/pkgs/desktops/elementary/apps/switchboard-plugs/power/hardcode-gsettings.patch b/pkgs/desktops/elementary/apps/switchboard-plugs/power/hardcode-gsettings.patch | |
new file mode 100644 | |
index 00000000000..caacdad6eda | |
--- /dev/null | |
+++ b/pkgs/desktops/elementary/apps/switchboard-plugs/power/hardcode-gsettings.patch | |
@@ -0,0 +1,20 @@ | |
+diff --git a/src/MainView.vala b/src/MainView.vala | |
+index 1654e68..ad8fed9 100644 | |
+--- a/src/MainView.vala | |
++++ b/src/MainView.vala | |
+@@ -46,8 +46,13 @@ public class Power.MainView : Gtk.Grid { | |
+ | |
+ var label_size = new Gtk.SizeGroup (Gtk.SizeGroupMode.HORIZONTAL); | |
+ | |
+- settings = new GLib.Settings ("org.gnome.settings-daemon.plugins.power"); | |
+- elementary_dpms_settings = new GLib.Settings ("io.elementary.dpms"); | |
++ SettingsSchemaSource gsd_sss = new SettingsSchemaSource.from_directory ("@GSD_GSETTINGS_PATH@", null, true); | |
++ SettingsSchema gsd_schema = gsd_sss.lookup ("org.gnome.settings-daemon.plugins.power", false); | |
++ settings = new GLib.Settings.full (gsd_schema, null, null); | |
++ | |
++ SettingsSchemaSource dpms_sss = new SettingsSchemaSource.from_directory ("@DPMS_HELPER_GSETTINGS_PATH@", null, true); | |
++ SettingsSchema elementary_dpms_schema = dpms_sss.lookup ("io.elementary.dpms", false); | |
++ elementary_dpms_settings = new GLib.Settings.full (elementary_dpms_schema, null, null); | |
+ | |
+ battery = new Battery (); | |
+ power_supply = new PowerSupply (); | |
diff --git a/pkgs/desktops/elementary/desktop/elementary-session-settings/default.nix b/pkgs/desktops/elementary/desktop/elementary-session-settings/default.nix | |
index d3bc4a60a23..b1a531dbeb1 100644 | |
--- a/pkgs/desktops/elementary/desktop/elementary-session-settings/default.nix | |
+++ b/pkgs/desktops/elementary/desktop/elementary-session-settings/default.nix | |
@@ -1,4 +1,4 @@ | |
-{ stdenv, fetchFromGitHub, substituteAll, writeScript, elementary, gnome-keyring, gnome-session, wingpanel, orca, at-spi2-core, elementary-default-settings }: | |
+{ stdenv, fetchFromGitHub, substituteAll, writeScript, elementary, gnome-keyring, gnome-session, wingpanel, orca, at-spi2-core, elementary-default-settings, writeTextFile, writeShellScriptBin, elementary-settings-daemon }: | |
let | |
@@ -35,6 +35,12 @@ let | |
script = "${dockitems-script}"; | |
}; | |
+ executable = writeShellScriptBin "pantheon" '' | |
+ export XDG_CONFIG_DIRS=${elementary-settings-daemon}/etc/xdg:$XDG_CONFIG_DIRS | |
+ export XDG_DATA_DIRS=${placeholder "out"}/share:$XDG_DATA_DIRS | |
+ exec ${gnome-session}/bin/gnome-session --session=pantheon "$@" | |
+ ''; | |
+ | |
in | |
stdenv.mkDerivation rec { | |
@@ -79,7 +85,7 @@ stdenv.mkDerivation rec { | |
postFixup = '' | |
substituteInPlace $out/share/xsessions/pantheon.desktop \ | |
- --replace "gnome-session" "${gnome-session}/bin/gnome-session" \ | |
+ --replace "gnome-session --session=pantheon" "${executable}/bin/pantheon" \ | |
--replace "wingpanel" "${wingpanel}/bin/wingpanel" | |
for f in $out/etc/xdg/autostart/*; do mv "$f" "''${f%.desktop}-pantheon.desktop"; done | |
diff --git a/pkgs/desktops/elementary/services/elementary-dpms-helper/default.nix b/pkgs/desktops/elementary/services/elementary-dpms-helper/default.nix | |
index cc8b888a0b8..7d871000358 100644 | |
--- a/pkgs/desktops/elementary/services/elementary-dpms-helper/default.nix | |
+++ b/pkgs/desktops/elementary/services/elementary-dpms-helper/default.nix | |
@@ -1,4 +1,4 @@ | |
-{ stdenv, fetchFromGitHub, elementary, makeWrapper, lib, meson, ninja, desktop-file-utils, glib, coreutils }: | |
+{ stdenv, fetchFromGitHub, elementary, makeWrapper, lib, meson, ninja, desktop-file-utils, glib, coreutils, elementary-settings-daemon, wrapGAppsHook }: | |
stdenv.mkDerivation rec { | |
pname = "dpms-helper"; | |
@@ -22,18 +22,24 @@ stdenv.mkDerivation rec { | |
nativeBuildInputs = [ | |
desktop-file-utils | |
- glib | |
makeWrapper | |
meson | |
ninja | |
+ wrapGAppsHook | |
+ ]; | |
+ | |
+ buildInputs = [ | |
+ elementary-settings-daemon | |
+ glib | |
]; | |
+ preFixup = '' | |
+ gappsWrapperArgs+=(--prefix PATH : "${stdenv.lib.makeBinPath [ glib.dev coreutils ]}") | |
+ ''; | |
+ | |
postFixup = '' | |
substituteInPlace $out/etc/xdg/autostart/io.elementary.dpms-helper.desktop \ | |
--replace "Exec=io.elementary.dpms-helper" "Exec=$out/bin/io.elementary.dpms-helper" | |
- | |
- wrapProgram $out/bin/io.elementary.dpms-helper \ | |
- --prefix PATH ":" "${lib.makeBinPath [ glib.dev coreutils ]}" | |
''; | |
# See: https://github.com/elementary/dpms-helper/pull/10 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment