gnu: Add python-click-default-group.
[jackhill/guix/guix.git] / gnu / packages / task-management.scm
CommitLineData
a73956ba
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2015 Tomáš Čech <sleep_walker@suse.cz>
1f207675 3;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
3204411f 4;;; Copyright © 2021 Eric Bavier <bavier@posteo.net>
515f5613 5;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at>
387cac30 6;;; Copyright © 2021 LibreMiami <packaging-guix@libremiami.org>
a73956ba
7;;;
8;;; This file is part of GNU Guix.
9;;;
10;;; GNU Guix is free software; you can redistribute it and/or modify it
11;;; under the terms of the GNU General Public License as published by
12;;; the Free Software Foundation; either version 3 of the License, or (at
13;;; your option) any later version.
14;;;
15;;; GNU Guix is distributed in the hope that it will be useful, but
16;;; WITHOUT ANY WARRANTY; without even the implied warranty of
17;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18;;; GNU General Public License for more details.
19;;;
20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22
23(define-module (gnu packages task-management)
24 #:use-module ((guix licenses) #:prefix license:)
25 #:use-module (guix packages)
1f207675
VM
26 #:use-module (gnu packages freedesktop)
27 #:use-module (gnu packages gettext)
28 #:use-module (gnu packages glib)
29 #:use-module (gnu packages gnome)
30 #:use-module (gnu packages gstreamer)
31 #:use-module (gnu packages gtk)
a73956ba
32 #:use-module (gnu packages linux)
33 #:use-module (gnu packages lua)
1f207675
VM
34 #:use-module (gnu packages pkg-config)
35 #:use-module (gnu packages python)
387cac30 36 #:use-module (gnu packages python-xyz)
a7fd7b68 37 #:use-module (gnu packages tls)
a73956ba 38 #:use-module (guix download)
1f207675 39 #:use-module (guix git-download)
387cac30 40 #:use-module (guix hg-download)
1f207675
VM
41 #:use-module (guix utils)
42 #:use-module (guix build-system cmake)
515f5613 43 #:use-module (guix build-system go)
387cac30
L
44 #:use-module (guix build-system meson)
45 #:use-module (guix build-system python))
46
eb4ed63f 47(define-public t-todo-manager
387cac30
L
48 ;; Last release is more than 10 years old. Using latest commit.
49 (let ((changeset "89ad444c000b")
50 (revision "97"))
51 (package
eb4ed63f 52 (name "t-todo-manager")
387cac30
L
53 (version (git-version "1.2.0" revision changeset))
54 (source
55 (origin
56 (method hg-fetch)
57 (uri (hg-reference
58 (url "https://hg.stevelosh.com/t")
59 (changeset changeset)))
60 (file-name (string-append name "-" version "-checkout"))
61 (sha256
62 (base32 "0c8zn7l0xq65wp07h7mxnb5ww56d1443l2vkjvx5sj6wpcchfn0s"))))
63 (build-system python-build-system)
64 (native-inputs
65 `(("python-cram" ,python-cram)))
66 (synopsis "Command-line todo list manager")
67 (description
68 "@command{t} is a command-line todo list manager for people that want
69to finish tasks, not organize them.")
70 (home-page "https://stevelosh.com/projects/t/")
71 (license license:expat))))
a73956ba
72
73(define-public taskwarrior
74 (package
75 (name "taskwarrior")
3204411f 76 (version "2.5.3")
a73956ba
77 (source
78 (origin
79 (method url-fetch)
80 (uri (string-append
81 "http://taskwarrior.org/download/task-" version ".tar.gz"))
82 (sha256 (base32
3204411f 83 "0fwnxshhlha21hlgg5z1ad01w13zm1hlmncs274y5n8i15gdfhvj"))))
a73956ba
84 (build-system cmake-build-system)
85 (inputs
86 `(("gnutls" ,gnutls)
bb93042c 87 ("util-linux" ,util-linux "lib")))
a73956ba
88 (arguments
89 `(#:tests? #f ; No tests implemented.
90 #:phases
91 (modify-phases %standard-phases
3204411f 92 (delete 'install-license-files)))) ; Already installed by package
0588668f 93 (home-page "https://taskwarrior.org")
a73956ba
94 (synopsis "Command line task manager")
95 (description
96 "Taskwarrior is a command-line task manager following the Getting Things
97Done time management method. It supports network synchronization, filtering
98and querying data, exposing task data in multiple formats to other tools.")
99 (license license:expat)))
1f207675 100
515f5613
SR
101(define-public dstask
102 (package
103 (name "dstask")
104 (version "0.24.1")
105 (source
106 (origin
107 (method git-fetch)
108 (uri (git-reference
109 (url "https://github.com/naggie/dstask")
110 (commit (string-append "v" version))))
111 (file-name (git-file-name name version))
112 (sha256
113 (base32 "03rl2wh58xd6a80ji43c7ak3h0ysi3ddg570pn8ry24s7s45zsz2"))))
114 (build-system go-build-system)
115 (arguments
116 `(#:import-path "github.com/naggie/dstask"
117 #:install-source? #f
118 #:phases
119 (modify-phases %standard-phases
120 (replace 'build
121 (lambda* (#:key import-path #:allow-other-keys)
122 (with-directory-excursion (string-append "src/" import-path)
123 (invoke "go" "build" "-o" "dstask" "cmd/dstask/main.go")
124 (invoke "go" "build" "-o" "dstask-import"
125 "cmd/dstask-import/main.go"))))
126 (replace 'install
127 (lambda* (#:key import-path outputs #:allow-other-keys)
128 (with-directory-excursion (string-append "src/" import-path)
129 (let* ((out (assoc-ref outputs "out"))
130 (bindir (string-append out "/bin"))
131 (zsh-completion (string-append
132 out "/share/zsh/site-functions/_dstask"))
133 (bash-completion
134 (string-append
135 out "/share/bash-completion/completions/_dstask")))
136 (install-file "dstask" bindir)
137 (install-file "dstask-import" bindir)
138 (install-file ".dstask-bash-completions.sh" bash-completion)
139 (install-file ".dstask-zsh-completions.sh" zsh-completion)))
140 #t)))))
141 (synopsis "CLI-based TODO manager with git-based sync + markdown notes per task")
142 (description "dstask is a personal task tracker that uses git for
143synchronization. It offers a note command to attach a Markdown based note to
144a task.")
145 (home-page "https://github.com/naggie/dstask")
146 (license license:expat)))
147
1f207675
VM
148(define-public blanket
149 (package
150 (name "blanket")
151 (version "0.3.1")
152 (source
153 (origin
154 (method git-fetch)
155 (uri (git-reference
156 (url "https://github.com/rafaelmardojai/blanket/")
157 (commit version)))
158 (file-name (git-file-name name version))
159 (sha256
160 (base32 "13xip9b2p2ai2jchkck71c849s2rlxzfvlbsgpraw9hswi0rk0jg"))))
161 (build-system meson-build-system)
162 (arguments
163 `(#:glib-or-gtk? #t
164 #:tests? #f ;the "Validate appstream file" test fails
165 #:phases
166 (modify-phases %standard-phases
167 (add-after 'wrap 'wrap-libs
168 (lambda* (#:key outputs #:allow-other-keys)
169 (let* ((out (assoc-ref outputs "out"))
170 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
171 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
172 (python-path (getenv "PYTHONPATH")))
173 (wrap-program (string-append out "/bin/blanket")
174 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
175 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
176 `("PYTHONPATH" ":" prefix (,python-path))))
177 #t)))))
178 (native-inputs
179 `(("desktop-file-utils" ,desktop-file-utils)
180 ("gettext" ,gettext-minimal)
181 ("glib:bin" ,glib "bin")
182 ("gobject-introspection" ,gobject-introspection)
183 ("gtk+:bin" ,gtk+ "bin")
184 ("pkg-config" ,pkg-config)))
185 (inputs
186 `(("appstream-glib" ,appstream-glib)
187 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
188 ("gst-plugins-bad" ,gst-plugins-bad)
189 ("gst-plugins-good" ,gst-plugins-good) ;for ScaleTempo plugin
190 ("gtk+" ,gtk+)
191 ("libhandy" ,libhandy)
192 ("python-gst" ,python-gst)
193 ("python-pygobject" ,python-pygobject)))
194 (home-page "https://github.com/rafaelmardojai/blanket")
195 (synopsis "Ambient sound and noise player")
196 (description
197 "Blanket provides different ambient sounds and types of noise to listen
198to with the goal of improving your focus and enhancing your productivity.
199You can also use it to fall asleep in a noisy environment.")
200 (license license:gpl3+)))