diff options
Diffstat (limited to 'nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix')
-rw-r--r-- | nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix | 72 |
1 files changed, 46 insertions, 26 deletions
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix index 7b0657bcd80b..58acdd12147e 100644 --- a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix +++ b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix @@ -10,9 +10,12 @@ , onboard , at-spi2-core , elementary-default-settings -, writeShellScriptBin , elementary-settings-daemon , runtimeShell +, writeText +, meson +, ninja +, git }: let @@ -33,26 +36,32 @@ let #!${runtimeShell} elementary_default_settings="${elementary-default-settings}" - dock_items="$elementary_default_settings/share/elementary/config/plank/dock1/launchers"/* + dock_items="$elementary_default_settings/etc/skel/.config/plank/dock1/launchers"/* if [ ! -d "$HOME/.config/plank/dock1" ]; then echo "Instantiating default Plank Dockitems..." - mkdir -p $HOME/.config/plank/dock1/launchers - cp -r --no-preserve=mode,ownership $dock_items $HOME/.config/plank/dock1/launchers/ + mkdir -p "$HOME/.config/plank/dock1/launchers" + cp -r --no-preserve=mode,ownership $dock_items "$HOME/.config/plank/dock1/launchers/" else echo "Plank Dockitems already instantiated" fi ''; - dockitemAutostart = substituteAll { - src = ./default-elementary-dockitems.desktop; - script = dockitems-script; - }; + dockitemAutostart = writeText "default-elementary-dockitems.desktop" '' + [Desktop Entry] + Type=Application + Name=Instantiate Default elementary dockitems + Exec=${dockitems-script} + StartupNotify=false + NoDisplay=true + OnlyShowIn=Pantheon; + X-GNOME-Autostart-Phase=EarlyInitialization + ''; - 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 + executable = writeScript "pantheon" '' + export XDG_CONFIG_DIRS=${elementary-settings-daemon}/etc/xdg:${elementary-default-settings}/etc:$XDG_CONFIG_DIRS + export XDG_DATA_DIRS=@out@/share:$XDG_DATA_DIRS exec ${gnome-session}/bin/gnome-session --session=pantheon "$@" ''; @@ -71,17 +80,23 @@ stdenv.mkDerivation rec { sha256 = "1vrjm7bklkfv0dyafm312v4hxzy6lb7p1ny4ijkn48kr719gc71k"; }; - passthru = { - updateScript = pantheon.updateScript { - inherit repoName; - attrPath = pname; - }; - }; + postPatch = '' + ${git}/bin/git apply --verbose ${./meson.patch} + ''; - dontBuild = true; - dontConfigure = true; + nativeBuildInputs = [ + meson + ninja + ]; - installPhase = '' + mesonFlags = [ + "-Ddefaults-list=false" + "-Dpatched-gsd-autostarts=false" + "-Dpatched-ubuntu-autostarts=false" + "-Dfallback-session=GNOME" + ]; + + postInstall = '' mkdir -p $out/share/applications cp -av ${./pantheon-mimeapps.list} $out/share/applications/pantheon-mimeapps.list @@ -92,16 +107,14 @@ stdenv.mkDerivation rec { cp "${dockitemAutostart}" $out/etc/xdg/autostart/default-elementary-dockitems.desktop - mkdir -p $out/share/gnome-session/sessions - cp -av gnome-session/pantheon.session $out/share/gnome-session/sessions - - mkdir -p $out/share/xsessions - cp -av xsessions/pantheon.desktop $out/share/xsessions + mkdir -p $out/libexec + substitute ${executable} $out/libexec/pantheon --subst-var out + chmod +x $out/libexec/pantheon ''; postFixup = '' substituteInPlace $out/share/xsessions/pantheon.desktop \ - --replace "gnome-session --session=pantheon" "${executable}/bin/pantheon" \ + --replace "gnome-session --session=pantheon" "$out/libexec/pantheon" \ --replace "wingpanel" "${wingpanel}/bin/wingpanel" for f in $out/etc/xdg/autostart/*; do mv "$f" "''${f%.desktop}-pantheon.desktop"; done @@ -113,6 +126,13 @@ stdenv.mkDerivation rec { done ''; + passthru = { + updateScript = pantheon.updateScript { + attrPath = "pantheon.${pname}"; + }; + providedSessions = [ "pantheon" ]; + }; + meta = with stdenv.lib; { description = "Session settings for elementary"; homepage = https://github.com/elementary/session-settings; |