gnu: gnome-settings-daemon: Add "guix gc" to low disk space notification.
authorLudovic Courtès <ludo@gnu.org>
Thu, 17 Sep 2020 22:04:49 +0000 (00:04 +0200)
committerLudovic Courtès <ludo@gnu.org>
Fri, 18 Sep 2020 06:45:40 +0000 (08:45 +0200)
* gnu/packages/patches/gnome-settings-daemon-gc.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/gnome.scm (gnome-settings-daemon)[source]: Use it.

gnu/local.mk
gnu/packages/gnome.scm
gnu/packages/patches/gnome-settings-daemon-gc.patch [new file with mode: 0644]

index 6cdbe0d..1a1a648 100644 (file)
@@ -1068,6 +1068,7 @@ dist_patch_DATA =                                         \
   %D%/packages/patches/gmp-faulty-test.patch                   \
   %D%/packages/patches/gnome-shell-theme.patch                 \
   %D%/packages/patches/gnome-shell-disable-test.patch          \
+  %D%/packages/patches/gnome-settings-daemon-gc.patch          \
   %D%/packages/patches/gnome-todo-delete-esource-duplicate.patch \
   %D%/packages/patches/gnome-tweaks-search-paths.patch         \
   %D%/packages/patches/gnupg-default-pinentry.patch            \
index 15719ef..aebb814 100644 (file)
@@ -5114,7 +5114,8 @@ services for numerous locations.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))))
+         "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))
+       (patches (search-patches "gnome-settings-daemon-gc.patch"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
diff --git a/gnu/packages/patches/gnome-settings-daemon-gc.patch b/gnu/packages/patches/gnome-settings-daemon-gc.patch
new file mode 100644 (file)
index 0000000..688544b
--- /dev/null
@@ -0,0 +1,43 @@
+This patch adds a "guix gc" button to the low disk space notification
+that 'gsd-housekeeping' emits.
+
+diff --git a/plugins/housekeeping/gsd-disk-space.c b/plugins/housekeeping/gsd-disk-space.c
+index bd3437e..89027d8 100644
+--- a/plugins/housekeeping/gsd-disk-space.c
++++ b/plugins/housekeeping/gsd-disk-space.c
+@@ -546,6 +546,21 @@ empty_trash_callback (NotifyNotification *n,
+         notify_notification_close (n, NULL);
+ }
++static void
++guix_gc_callback (NotifyNotification *n,
++                  const char         *action)
++{
++        const gchar *argv[] = { "guix", "gc", NULL };
++
++        g_assert (action != NULL);
++        g_assert (strcmp (action, "run-guix-gc") == 0);
++
++        g_spawn_async (NULL, (gchar **) argv, NULL, G_SPAWN_SEARCH_PATH,
++                       NULL, NULL, NULL, NULL);
++
++        notify_notification_close (n, NULL);
++}
++
+ static void
+ on_notification_closed (NotifyNotification *n)
+ {
+@@ -591,6 +606,13 @@ ldsm_notify (const char *summary,
+                                                 g_free);
+         }
++        notify_notification_add_action (notification,
++                                        "run-guix-gc",
++                                        _("Collect Unused Guix Items"),
++                                        (NotifyActionCallback) guix_gc_callback,
++                                        NULL,
++                                        NULL);
++
+         has_trash = ldsm_mount_has_trash (mount_path);
+         if (has_trash) {