about summary refs log tree commit diff
path: root/pkgs/desktops
diff options
context:
space:
mode:
authorBobby Rong <rjl931189261@126.com>2023-04-26 11:11:24 +0800
committerGitHub <noreply@github.com>2023-04-26 11:11:24 +0800
commitd9293111a90237a75717525413f8101f91708cf4 (patch)
treea7393a3252bd387983a57506508cf58e111447e1 /pkgs/desktops
parent304b0c534d5902612409630b1fde59c07de893b9 (diff)
parent45d0a21ce60a3a7b9a80a514b17496bd40d01a96 (diff)
downloadnixlib-d9293111a90237a75717525413f8101f91708cf4.tar
nixlib-d9293111a90237a75717525413f8101f91708cf4.tar.gz
nixlib-d9293111a90237a75717525413f8101f91708cf4.tar.bz2
nixlib-d9293111a90237a75717525413f8101f91708cf4.tar.lz
nixlib-d9293111a90237a75717525413f8101f91708cf4.tar.xz
nixlib-d9293111a90237a75717525413f8101f91708cf4.tar.zst
nixlib-d9293111a90237a75717525413f8101f91708cf4.zip
Merge pull request #227526 from FedericoSchonborn/more-budgie
budgie: add plugin support, update default settings
Diffstat (limited to 'pkgs/desktops')
-rw-r--r--pkgs/desktops/budgie/budgie-analogue-clock-applet/default.nix44
-rw-r--r--pkgs/desktops/budgie/budgie-desktop/default.nix4
-rw-r--r--pkgs/desktops/budgie/budgie-desktop/plugins.patch66
-rw-r--r--pkgs/desktops/budgie/budgie-desktop/wrapper.nix53
-rw-r--r--pkgs/desktops/budgie/budgie-gsettings-overrides/default.nix9
-rw-r--r--pkgs/desktops/budgie/default.nix2
6 files changed, 173 insertions, 5 deletions
diff --git a/pkgs/desktops/budgie/budgie-analogue-clock-applet/default.nix b/pkgs/desktops/budgie/budgie-analogue-clock-applet/default.nix
new file mode 100644
index 000000000000..798992886b9b
--- /dev/null
+++ b/pkgs/desktops/budgie/budgie-analogue-clock-applet/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkg-config
+, vala
+, budgie-desktop
+, gtk3
+, libpeas
+}:
+
+stdenv.mkDerivation rec {
+  pname = "budgie-analogue-clock-applet";
+  version = "2.0";
+
+  src = fetchFromGitHub {
+    owner = "samlane-ma";
+    repo = "analogue-clock-applet";
+    rev = "v${version}";
+    hash = "sha256-yId5bbdmELinBmZ5eISa5hQSYkeZCkix2FJ287GdcCs=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    vala
+  ];
+
+  buildInputs = [
+    budgie-desktop
+    gtk3
+    libpeas
+  ];
+
+  meta = with lib; {
+    description = "Analogue Clock Applet for the Budgie desktop";
+    homepage = "https://github.com/samlane-ma/analogue-clock-applet";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.federicoschonborn ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/budgie/budgie-desktop/default.nix b/pkgs/desktops/budgie/budgie-desktop/default.nix
index 252f4cbd38d4..6c593206ac51 100644
--- a/pkgs/desktops/budgie/budgie-desktop/default.nix
+++ b/pkgs/desktops/budgie/budgie-desktop/default.nix
@@ -46,6 +46,10 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-ww65J9plixbxFza6xCfaz1WYtT9giKkLVH1XYxH41+0=";
   };
 
+  patches = [
+    ./plugins.patch
+  ];
+
   nativeBuildInputs = [
     docbook-xsl-nons
     gtk-doc
diff --git a/pkgs/desktops/budgie/budgie-desktop/plugins.patch b/pkgs/desktops/budgie/budgie-desktop/plugins.patch
new file mode 100644
index 000000000000..af03fb635140
--- /dev/null
+++ b/pkgs/desktops/budgie/budgie-desktop/plugins.patch
@@ -0,0 +1,66 @@
+diff --git a/src/panel/plugin_manager.vala b/src/panel/plugin_manager.vala
+index d3cdb65c..9d569bd1 100644
+--- a/src/panel/plugin_manager.vala
++++ b/src/panel/plugin_manager.vala
+@@ -40,10 +40,26 @@ namespace Budgie {
+ 			}
+ 
+ 			/* System path */
+-			var dir = Environment.get_user_data_dir();
+-			engine.add_search_path(Budgie.MODULE_DIRECTORY, Budgie.MODULE_DATA_DIRECTORY);
++			var libdir = Environment.get_variable("BUDGIE_PLUGIN_LIBDIR");
++			if (libdir != null) {
++				debug("BUDGIE_PLUGIN_LIBDIR is set to %s", libdir);
++			} else {
++				debug("BUDGIE_PLUGIN_LIBDIR is unset, defaulting to %s", Budgie.MODULE_DIRECTORY);
++				libdir = Budgie.MODULE_DIRECTORY;
++			}
++
++			var datadir = Environment.get_variable("BUDGIE_PLUGIN_DATADIR");
++			if (datadir != null) {
++				debug("BUDGIE_PLUGIN_DATADIR is set to %s", datadir);
++			} else {
++				debug("BUDGIE_PLUGIN_DATADIR is unset, defaulting to %s", Budgie.MODULE_DATA_DIRECTORY);
++				datadir = Budgie.MODULE_DATA_DIRECTORY;
++			}
++
++			engine.add_search_path(libdir, datadir);
+ 
+ 			/* User path */
++			var dir = Environment.get_user_data_dir();
+ 			var user_mod = Path.build_path(Path.DIR_SEPARATOR_S, dir, "budgie-desktop", "plugins");
+ 			var hdata = Path.build_path(Path.DIR_SEPARATOR_S, dir, "budgie-desktop", "data");
+ 			engine.add_search_path(user_mod, hdata);
+diff --git a/src/raven/plugin_manager.vala b/src/raven/plugin_manager.vala
+index b0814693..d671109a 100644
+--- a/src/raven/plugin_manager.vala
++++ b/src/raven/plugin_manager.vala
+@@ -51,10 +51,26 @@ namespace Budgie {
+ 			}
+ 
+ 			/* System path */
+-			var dir = Environment.get_user_data_dir();
+-			engine.add_search_path(Budgie.RAVEN_PLUGIN_LIBDIR, Budgie.RAVEN_PLUGIN_DATADIR);
++			var libdir = Environment.get_variable("RAVEN_PLUGIN_LIBDIR");
++			if (libdir != null) {
++				debug("RAVEN_PLUGIN_LIBDIR is set to %s", libdir);
++			} else {
++				debug("RAVEN_PLUGIN_LIBDIR is unset, defaulting to %s", Budgie.RAVEN_PLUGIN_LIBDIR);
++				libdir = Budgie.RAVEN_PLUGIN_LIBDIR;
++			}
++
++			var datadir = Environment.get_variable("RAVEN_PLUGIN_DATADIR");
++			if (datadir != null) {
++				debug("RAVEN_PLUGIN_DATADIR is set to %s", datadir);
++			} else {
++				debug("RAVEN_PLUGIN_DATADIR is unset, defaulting to %s", Budgie.RAVEN_PLUGIN_DATADIR);
++				datadir = Budgie.RAVEN_PLUGIN_DATADIR;
++			}
++
++			engine.add_search_path(libdir, datadir);
+ 
+ 			/* User path */
++			var dir = Environment.get_user_data_dir();
+ 			var user_mod = Path.build_path(Path.DIR_SEPARATOR_S, dir, "budgie-desktop", "raven-plugins");
+ 			var hdata = Path.build_path(Path.DIR_SEPARATOR_S, dir, "budgie-desktop", "raven-data");
+ 			engine.add_search_path(user_mod, hdata);
diff --git a/pkgs/desktops/budgie/budgie-desktop/wrapper.nix b/pkgs/desktops/budgie/budgie-desktop/wrapper.nix
new file mode 100644
index 000000000000..88c8d132bf12
--- /dev/null
+++ b/pkgs/desktops/budgie/budgie-desktop/wrapper.nix
@@ -0,0 +1,53 @@
+{ lib
+, stdenv
+, glib
+, xorg
+, wrapGAppsHook
+, budgie-desktop
+, plugins ? []
+}:
+
+stdenv.mkDerivation {
+  pname = "${budgie-desktop.pname}-with-plugins";
+  inherit (budgie-desktop) version;
+
+  src = null;
+
+  paths = [
+    budgie-desktop
+  ] ++ plugins;
+
+  passAsFile = [ "paths" ];
+
+  nativeBuildInputs = [
+    glib
+    wrapGAppsHook
+  ];
+
+  buildInputs = lib.forEach plugins (plugin: plugin.buildInputs) ++ plugins;
+
+  dontUnpack = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  preferLocalBuild = true;
+  allowSubstitutes = false;
+
+  installPhase = ''
+    mkdir -p $out
+    for i in $(cat $pathsPath); do
+      ${xorg.lndir}/bin/lndir -silent $i $out
+    done
+  '';
+
+  preFixup = ''
+    gappsWrapperArgs+=(
+      --set BUDGIE_PLUGIN_LIBDIR "$out/lib/budgie-desktop/plugins"
+      --set BUDGIE_PLUGIN_DATADIR "$out/share/budgie-desktop/plugins"
+      --set RAVEN_PLUGIN_LIBDIR "$out/lib/budgie-desktop/raven-plugins"
+      --set RAVEN_PLUGIN_DATADIR "$out/share/budgie-desktop/raven-plugins"
+    )
+  '';
+
+  inherit (budgie-desktop) meta;
+}
diff --git a/pkgs/desktops/budgie/budgie-gsettings-overrides/default.nix b/pkgs/desktops/budgie/budgie-gsettings-overrides/default.nix
index c9e2632b62f9..6516498dea89 100644
--- a/pkgs/desktops/budgie/budgie-gsettings-overrides/default.nix
+++ b/pkgs/desktops/budgie/budgie-gsettings-overrides/default.nix
@@ -31,24 +31,23 @@ let
     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-menu:Budgie]
+    use-default-menu-icon=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"]
+    pinned-launchers=["nemo.desktop", "firefox.desktop", "vlc.desktop"]
 
     [org.buddiesofbudgie.budgie-desktop-view:Budgie]
     show=true
-    click-policy="double"
+    show-active-mounts=true
     terminal="${mate.mate-terminal}/bin/mate-terminal"
 
     ${extraGSettingsOverrides}
diff --git a/pkgs/desktops/budgie/default.nix b/pkgs/desktops/budgie/default.nix
index 24a461a16703..8c49ac5b0234 100644
--- a/pkgs/desktops/budgie/default.nix
+++ b/pkgs/desktops/budgie/default.nix
@@ -1,10 +1,12 @@
 { lib, pkgs }:
 
 lib.makeScope pkgs.newScope (self: with self; {
+  budgie-analogue-clock-applet = callPackage ./budgie-analogue-clock-applet { };
   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-desktop-with-plugins = callPackage ./budgie-desktop/wrapper.nix { };
   budgie-gsettings-overrides = callPackage ./budgie-gsettings-overrides { };
   budgie-screensaver = callPackage ./budgie-screensaver { };
 })