about summary refs log tree commit diff
path: root/pkgs/desktops
diff options
context:
space:
mode:
authorBobby Rong <rjl931189261@126.com>2024-01-29 21:58:15 +0800
committerGitHub <noreply@github.com>2024-01-29 21:58:15 +0800
commit850bac2305d157280e56255f760297c37321f2a1 (patch)
treeedcb677b251000b25c1b75aa0ca1aa0423b203c1 /pkgs/desktops
parent86ea3132184f991d2f652c560871f3a854729b54 (diff)
parent6b5dd0640b58ec457291573acffce19bd1211656 (diff)
Merge pull request #284633 from FedericoSchonborn/budgie-desktop-10.9
Budgie Desktop 10.9
Diffstat (limited to 'pkgs/desktops')
-rw-r--r--pkgs/desktops/budgie/budgie-desktop/default.nix9
-rw-r--r--pkgs/desktops/budgie/budgie-session/default.nix101
-rw-r--r--pkgs/desktops/budgie/budgie-session/fix-paths.patch35
-rw-r--r--pkgs/desktops/budgie/default.nix1
-rw-r--r--pkgs/desktops/gnome/core/gnome-session/default.nix3
-rw-r--r--pkgs/desktops/xfce/core/libxfce4windowing/default.nix18
-rw-r--r--pkgs/desktops/xfce/default.nix2
7 files changed, 162 insertions, 7 deletions
diff --git a/pkgs/desktops/budgie/budgie-desktop/default.nix b/pkgs/desktops/budgie/budgie-desktop/default.nix
index 04263c99a74f6..585625226d861 100644
--- a/pkgs/desktops/budgie/budgie-desktop/default.nix
+++ b/pkgs/desktops/budgie/budgie-desktop/default.nix
@@ -8,7 +8,6 @@
 , glib
 , gnome
 , gnome-desktop
-, gnome-menus
 , graphene
 , gst_all_1
 , gtk-doc
@@ -32,19 +31,20 @@
 , sassc
 , upower
 , vala
+, xfce
 , wrapGAppsHook
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "budgie-desktop";
-  version = "10.8.2";
+  version = "10.9";
 
   src = fetchFromGitHub {
     owner = "BuddiesOfBudgie";
     repo = "budgie-desktop";
     rev = "v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-K5XUYcFjDJCHhjb/UTO206+UT6lI2P7X1v3SqlYbwPM=";
+    hash = "sha256-yyuLBzTDEQH7rBOWTYBvS+3x2mlbF34f7U7oOUO8BeA=";
   };
 
   patches = [
@@ -68,8 +68,6 @@ stdenv.mkDerivation (finalAttrs: {
     budgie-screensaver
     glib
     gnome-desktop
-    gnome-menus
-    gnome.gnome-bluetooth_1_0
     gnome.gnome-settings-daemon
     gnome.mutter
     gnome.zenity
@@ -89,6 +87,7 @@ stdenv.mkDerivation (finalAttrs: {
     polkit
     sassc
     upower
+    xfce.libxfce4windowing
   ] ++ (with gst_all_1; [
     gstreamer
     gst-plugins-base
diff --git a/pkgs/desktops/budgie/budgie-session/default.nix b/pkgs/desktops/budgie/budgie-session/default.nix
new file mode 100644
index 0000000000000..70b49080cb68f
--- /dev/null
+++ b/pkgs/desktops/budgie/budgie-session/default.nix
@@ -0,0 +1,101 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, substituteAll
+, meson
+, ninja
+, pkg-config
+, gnome
+, glib
+, gtk3
+, gsettings-desktop-schemas
+, gnome-desktop
+, dbus
+, json-glib
+, libICE
+, xmlto
+, docbook_xsl
+, docbook_xml_dtd_412
+, python3
+, libxslt
+, gettext
+, makeWrapper
+, systemd
+, xorg
+, libepoxy
+, bash
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "budgie-session";
+  version = "0.9.1";
+
+  src = fetchFromGitHub {
+    owner = "BuddiesOfBudgie";
+    repo = "budgie-session";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-mz+Yh3NK2Tag+MWVofFFXYYXspxhmYBD6YCiuATpZSI=";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      gsettings = "${glib.bin}/bin/gsettings";
+      dbusLaunch = "${dbus.lib}/bin/dbus-launch";
+      bash = "${bash}/bin/bash";
+    })
+  ];
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    gettext
+    makeWrapper
+    xmlto
+    libxslt
+    docbook_xsl
+    docbook_xml_dtd_412
+    python3
+    dbus # for DTD
+  ];
+
+  buildInputs = [
+    glib
+    gtk3
+    libICE
+    gnome-desktop
+    json-glib
+    xorg.xtrans
+    gnome.adwaita-icon-theme
+    gnome.gnome-settings-daemon
+    gsettings-desktop-schemas
+    systemd
+    libepoxy
+  ];
+
+  postPatch = ''
+    chmod +x meson_post_install.py # patchShebangs requires executable file
+    patchShebangs meson_post_install.py
+  '';
+
+  # `bin/budgie-session` will reset the environment when run in wayland, we
+  # therefor wrap `libexec/budgie-session-binary` instead which is the actual
+  # binary needing wrapping
+  preFixup = ''
+    wrapProgram "$out/libexec/budgie-session-binary" \
+      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
+      --suffix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \
+      --suffix XDG_CONFIG_DIRS : "${gnome.gnome-settings-daemon}/etc/xdg"
+  '';
+
+  separateDebugInfo = true;
+
+  meta = {
+    description = "Session manager for Budgie";
+    homepage = "https://github.com/BuddiesOfBudgie/budgie-session";
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [federicoschonborn];
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/pkgs/desktops/budgie/budgie-session/fix-paths.patch b/pkgs/desktops/budgie/budgie-session/fix-paths.patch
new file mode 100644
index 0000000000000..1c011d26b5492
--- /dev/null
+++ b/pkgs/desktops/budgie/budgie-session/fix-paths.patch
@@ -0,0 +1,35 @@
+diff --git a/gnome-session/budgie-session.in b/gnome-session/budgie-session.in
+index 8a91e061..3e2ef031 100755
+--- a/gnome-session/budgie-session.in
++++ b/gnome-session/budgie-session.in
+@@ -7,13 +7,15 @@ if [ "x$XDG_SESSION_TYPE" = "xwayland" ] &&
+    ! (echo "$SHELL" | grep -q "false") &&
+    ! (echo "$SHELL" | grep -q "nologin"); then
+   if [ "$1" != '-l' ]; then
+-    exec bash -c "exec -l '$SHELL' -c '$0 -l $*'"
++    # Make sure the shell actually sets up the environment.
++    unset __NIXOS_SET_ENVIRONMENT_DONE
++    exec @bash@ -c "exec -l '$SHELL' -c '$0 -l $*'"
+   else
+     shift
+   fi
+ fi
+ 
+-SETTING=$(G_MESSAGES_DEBUG='' gsettings get org.gnome.system.locale region)
++SETTING=$(G_MESSAGES_DEBUG='' @gsettings@ get org.gnome.system.locale region)
+ REGION=${SETTING#\'}
+ REGION=${REGION%\'}
+ 
+diff --git a/gnome-session/main.c b/gnome-session/main.c
+index 327c7c7f..301ec7ee 100644
+--- a/gnome-session/main.c
++++ b/gnome-session/main.c
+@@ -219,7 +219,7 @@ require_dbus_session (int      argc,
+         }
+         new_argv[i + 2] = NULL;
+         
+-        if (!execvp ("dbus-launch", new_argv)) {
++        if (!execvp ("@dbusLaunch@", new_argv)) {
+                 g_set_error (error, 
+                              G_SPAWN_ERROR,
+                              G_SPAWN_ERROR_FAILED,
diff --git a/pkgs/desktops/budgie/default.nix b/pkgs/desktops/budgie/default.nix
index 73eca39420235..031ec9cd51a01 100644
--- a/pkgs/desktops/budgie/default.nix
+++ b/pkgs/desktops/budgie/default.nix
@@ -8,5 +8,6 @@ lib.makeScope pkgs.newScope (self: with self; {
   budgie-desktop-with-plugins = callPackage ./budgie-desktop/wrapper.nix { };
   budgie-gsettings-overrides = callPackage ./budgie-gsettings-overrides { };
   budgie-screensaver = callPackage ./budgie-screensaver { };
+  budgie-session = callPackage ./budgie-session { };
   magpie = callPackage ./magpie { };
 })
diff --git a/pkgs/desktops/gnome/core/gnome-session/default.nix b/pkgs/desktops/gnome/core/gnome-session/default.nix
index dc0cade8d4101..710829a5068e4 100644
--- a/pkgs/desktops/gnome/core/gnome-session/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-session/default.nix
@@ -25,7 +25,6 @@
 , libepoxy
 , bash
 , gnome-session-ctl
-, gnomeShellSupport ? true
 }:
 
 stdenv.mkDerivation rec {
@@ -114,7 +113,7 @@ stdenv.mkDerivation rec {
     wrapProgram "$out/libexec/gnome-session-binary" \
       --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
       --suffix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \
-      ${lib.optionalString gnomeShellSupport "--suffix XDG_DATA_DIRS : \"${gnome.gnome-shell}/share\""} \
+      --suffix XDG_DATA_DIRS : "${gnome.gnome-shell}/share" \
       --suffix XDG_CONFIG_DIRS : "${gnome.gnome-settings-daemon}/etc/xdg"
   '';
 
diff --git a/pkgs/desktops/xfce/core/libxfce4windowing/default.nix b/pkgs/desktops/xfce/core/libxfce4windowing/default.nix
new file mode 100644
index 0000000000000..6395497fccdae
--- /dev/null
+++ b/pkgs/desktops/xfce/core/libxfce4windowing/default.nix
@@ -0,0 +1,18 @@
+{ lib, mkXfceDerivation, gobject-introspection, glib, gtk3, libwnck, wayland }:
+
+mkXfceDerivation {
+  category = "xfce";
+  pname = "libxfce4windowing";
+  version = "4.19.2";
+
+  sha256 = "sha256-mXxxyfwZB/AJFVVGFAAXLqC5p7pZAeqmhljQym55hyM=";
+
+  nativeBuildInputs = [ gobject-introspection ];
+  buildInputs = [ glib gtk3 libwnck wayland ];
+
+  meta = {
+    description = "Windowing concept abstraction library for X11 and Wayland";
+    license = lib.licenses.lgpl21Plus;
+    maintainers = with lib; [ maintainers.federicoschonborn ] ++ teams.xfce.members;
+  };
+}
diff --git a/pkgs/desktops/xfce/default.nix b/pkgs/desktops/xfce/default.nix
index 94ca82b4388bb..f0c53a4c38922 100644
--- a/pkgs/desktops/xfce/default.nix
+++ b/pkgs/desktops/xfce/default.nix
@@ -32,6 +32,8 @@ makeScopeWithSplicing' {
 
       libxfce4util = callPackage ./core/libxfce4util { };
 
+      libxfce4windowing = callPackage ./core/libxfce4windowing { };
+
       thunar = callPackage ./core/thunar {
         thunarPlugins = [ ];
       };