about summary refs log tree commit diff
path: root/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2019-10-08 11:56:52 +0200
committerFrederik Rietdijk <fridh@fridh.nl>2019-10-08 11:56:52 +0200
commita0c34f54cc61dc20ae1ec91766b9efad102f5b36 (patch)
tree96aeb2b4fb3aeff9ecc8c52d173c3b8d57a0ce59 /pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
parent0913e30c859f0071d0f0529c309d4256713acc41 (diff)
parent60b2fe660e2bcb605650173b7b0a59a47bc6a7e5 (diff)
downloadnixlib-a0c34f54cc61dc20ae1ec91766b9efad102f5b36.tar
nixlib-a0c34f54cc61dc20ae1ec91766b9efad102f5b36.tar.gz
nixlib-a0c34f54cc61dc20ae1ec91766b9efad102f5b36.tar.bz2
nixlib-a0c34f54cc61dc20ae1ec91766b9efad102f5b36.tar.lz
nixlib-a0c34f54cc61dc20ae1ec91766b9efad102f5b36.tar.xz
nixlib-a0c34f54cc61dc20ae1ec91766b9efad102f5b36.tar.zst
nixlib-a0c34f54cc61dc20ae1ec91766b9efad102f5b36.zip
Merge master into staging-next
Diffstat (limited to 'pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix')
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix61
1 files changed, 39 insertions, 22 deletions
diff --git a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
index 69a1efa3e9e9..ab7333212a05 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
@@ -12,6 +12,10 @@
 , elementary-default-settings
 , elementary-settings-daemon
 , runtimeShell
+, writeText
+, meson
+, ninja
+, git
 }:
 
 let
@@ -32,22 +36,28 @@ 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 = writeScript "pantheon" ''
     export XDG_CONFIG_DIRS=${elementary-settings-daemon}/etc/xdg:${elementary-default-settings}/etc:$XDG_CONFIG_DIRS
@@ -70,17 +80,23 @@ stdenv.mkDerivation rec {
     sha256 = "1vrjm7bklkfv0dyafm312v4hxzy6lb7p1ny4ijkn48kr719gc71k";
   };
 
-  passthru = {
-    updateScript = pantheon.updateScript {
-      inherit repoName;
-      attrPath = pname;
-    };
-  };
+  postPatch = ''
+    ${git}/bin/git apply --verbose ${./meson.patch}
+  '';
+
+  nativeBuildInputs = [
+    meson
+    ninja
+  ];
 
-  dontBuild = true;
-  dontConfigure = true;
+  mesonFlags = [
+    "-Ddefaults-list=false"
+    "-Dpatched-gsd-autostarts=false"
+    "-Dpatched-ubuntu-autostarts=false"
+    "-Dfallback-session=GNOME"
+  ];
 
-  installPhase = ''
+  postInstall = ''
     mkdir -p $out/share/applications
     cp -av ${./pantheon-mimeapps.list} $out/share/applications/pantheon-mimeapps.list
 
@@ -91,15 +107,9 @@ 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/libexec
     substitute ${executable} $out/libexec/pantheon --subst-var out
     chmod +x $out/libexec/pantheon
-
-    mkdir -p $out/share/xsessions
-    cp -av xsessions/pantheon.desktop $out/share/xsessions
   '';
 
   postFixup = ''
@@ -116,6 +126,13 @@ stdenv.mkDerivation rec {
     done
   '';
 
+  passthru = {
+    updateScript = pantheon.updateScript {
+      inherit repoName;
+      attrPath = pname;
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "Session settings for elementary";
     homepage = https://github.com/elementary/session-settings;