Subject: [PATCH] gnu: Add blanket.
From: Vinicius Monego <[email-masked]>
To: [email-masked]
Cc: Vinicius Monego <[email-masked]>
Date: Sat, 19 Sep 2020 19:14:50 -0300
List-Id: <debbugs-submit.debbugs.gnu.org>

* gnu/packages/task-management.scm (blanket): New variable.
---
IMO this module should be renamed to "productivity". Thoughts?

 gnu/packages/task-management.scm | 68 +++++++++++++++++++++++++++++++-
 1 file changed, 67 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/task-management.scm b/gnu/packages/task-management.scm
index 601a3616f7..2a56db2095 100644
--- a/gnu/packages/task-management.scm
+++ b/gnu/packages/task-management.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Tomáš Čech <[email-masked]>
+;;; Copyright © 2020 Vinicius Monego <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -19,11 +20,22 @@
 (define-module (gnu packages task-management)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
+  #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gstreamer)
+  #:use-module (gnu packages gtk)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lua)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
   #:use-module (gnu packages tls)
   #:use-module (guix download)
-  #:use-module (guix build-system cmake))
+  #:use-module (guix git-download)
+  #:use-module (guix utils)
+  #:use-module (guix build-system cmake)
+  #:use-module (guix build-system meson))
 
 (define-public taskwarrior
   (package
@@ -59,3 +71,57 @@
 Done time management method.  It supports network synchronization, filtering
 and querying data, exposing task data in multiple formats to other tools.")
     (license license:expat)))
+
+(define-public blanket
+  (package
+    (name "blanket")
+    (version "0.3.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rafaelmardojai/blanket/")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "13xip9b2p2ai2jchkck71c849s2rlxzfvlbsgpraw9hswi0rk0jg"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t
+       #:tests? #f ;the "Validate appstream file" test fails
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'wrap 'wrap-libs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out               (assoc-ref outputs "out"))
+                    (gi-typelib-path   (getenv "GI_TYPELIB_PATH"))
+                    (gst-plugin-path   (getenv "GST_PLUGIN_SYSTEM_PATH"))
+                    (python-path       (getenv "PYTHONPATH")))
+               (wrap-program (string-append out "/bin/blanket")
+                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
+                 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
+                 `("PYTHONPATH" ":" prefix (,python-path))))
+             #t)))))
+    (native-inputs
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk+:bin" ,gtk+ "bin")
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("appstream-glib" ,appstream-glib)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("gst-plugins-bad" ,gst-plugins-bad)
+       ("gst-plugins-good" ,gst-plugins-good) ;for ScaleTempo plugin
+       ("gtk+" ,gtk+)
+       ("libhandy" ,libhandy)
+       ("python-gst" ,python-gst)
+       ("python-pygobject" ,python-pygobject)))
+    (home-page "https://github.com/rafaelmardojai/blanket")
+    (synopsis "Ambient sound and noise player")
+    (description
+     "Blanket provides different ambient sounds and types of noise to listen
+to with the goal of improving your focus and enhancing your productivity.
+You can also use it to fall asleep in a noisy environment.")
+    (license license:gpl3+)))
-- 
2.20.1