task-management.scm 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. ;;; GNU Guix --- Functional package management for GNU
  2. ;;; Copyright © 2015 Tomáš Čech <sleep_walker@suse.cz>
  3. ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
  4. ;;; Copyright © 2021 Eric Bavier <bavier@posteo.net>
  5. ;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at>
  6. ;;; Copyright © 2021 LibreMiami <packaging-guix@libremiami.org>
  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. (define-module (gnu packages task-management)
  23. #:use-module ((guix licenses) #:prefix license:)
  24. #:use-module (guix packages)
  25. #:use-module (gnu packages check)
  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)
  32. #:use-module (gnu packages linux)
  33. #:use-module (gnu packages lua)
  34. #:use-module (gnu packages pkg-config)
  35. #:use-module (gnu packages python)
  36. #:use-module (gnu packages python-xyz)
  37. #:use-module (gnu packages tls)
  38. #:use-module (guix download)
  39. #:use-module (guix git-download)
  40. #:use-module (guix hg-download)
  41. #:use-module (guix utils)
  42. #:use-module (guix build-system cmake)
  43. #:use-module (guix build-system go)
  44. #:use-module (guix build-system meson)
  45. #:use-module (guix build-system python))
  46. (define-public clikan
  47. (let ((commit "55ab29e68263c6fed2844aef96fbebacda3eba9b")
  48. (revision "1"))
  49. (package
  50. (name "clikan")
  51. (version
  52. (git-version "0.2.1" revision commit))
  53. (source
  54. (origin
  55. (method git-fetch)
  56. (uri (git-reference
  57. (url "https://github.com/kitplummer/clikan")
  58. (commit commit)))
  59. (file-name (git-file-name name version))
  60. (sha256
  61. (base32 "1nyx80z53xxlbhpb5k22jnv4jajxqhjm0gz7qb18w9pqqlrvkqd4"))))
  62. (build-system python-build-system)
  63. (arguments
  64. `(#:phases
  65. (modify-phases %standard-phases
  66. (replace 'check
  67. (lambda* (#:key inputs outputs tests? #:allow-other-keys)
  68. (setenv "HOME" (getenv "TEMP"))
  69. (when tests?
  70. (add-installed-pythonpath inputs outputs)
  71. (invoke "pytest" "-vv")))))))
  72. (native-inputs
  73. `(("pytest" ,python-pytest)
  74. ("click" ,python-click)))
  75. (inputs
  76. `(("click" ,python-click)
  77. ("click-default-group" ,python-click-default-group)
  78. ("pyyaml" ,python-pyyaml)
  79. ("rich" ,python-rich)))
  80. (home-page "https://github.com/kitplummer/clikan")
  81. (synopsis "Command-line kanban utility")
  82. (description
  83. "Clikan is a super simple command-line utility for tracking tasks
  84. following the Japanese kanban (boarding) style.")
  85. (license license:expat))))
  86. (define-public t-todo-manager
  87. ;; Last release is more than 10 years old. Using latest commit.
  88. (let ((changeset "89ad444c000b")
  89. (revision "97"))
  90. (package
  91. (name "t-todo-manager")
  92. (version (git-version "1.2.0" revision changeset))
  93. (source
  94. (origin
  95. (method hg-fetch)
  96. (uri (hg-reference
  97. (url "https://hg.stevelosh.com/t")
  98. (changeset changeset)))
  99. (file-name (string-append name "-" version "-checkout"))
  100. (sha256
  101. (base32 "0c8zn7l0xq65wp07h7mxnb5ww56d1443l2vkjvx5sj6wpcchfn0s"))))
  102. (build-system python-build-system)
  103. (native-inputs
  104. `(("python-cram" ,python-cram)))
  105. (synopsis "Command-line todo list manager")
  106. (description
  107. "@command{t} is a command-line todo list manager for people that want
  108. to finish tasks, not organize them.")
  109. (home-page "https://stevelosh.com/projects/t/")
  110. (license license:expat))))
  111. (define-public taskwarrior
  112. (package
  113. (name "taskwarrior")
  114. (version "2.5.3")
  115. (source
  116. (origin
  117. (method url-fetch)
  118. (uri (string-append
  119. "http://taskwarrior.org/download/task-" version ".tar.gz"))
  120. (sha256 (base32
  121. "0fwnxshhlha21hlgg5z1ad01w13zm1hlmncs274y5n8i15gdfhvj"))))
  122. (build-system cmake-build-system)
  123. (inputs
  124. `(("gnutls" ,gnutls)
  125. ("util-linux" ,util-linux "lib")))
  126. (arguments
  127. `(#:tests? #f ; No tests implemented.
  128. #:phases
  129. (modify-phases %standard-phases
  130. (delete 'install-license-files)))) ; Already installed by package
  131. (home-page "https://taskwarrior.org")
  132. (synopsis "Command line task manager")
  133. (description
  134. "Taskwarrior is a command-line task manager following the Getting Things
  135. Done time management method. It supports network synchronization, filtering
  136. and querying data, exposing task data in multiple formats to other tools.")
  137. (license license:expat)))
  138. (define-public dstask
  139. (package
  140. (name "dstask")
  141. (version "0.24.1")
  142. (source
  143. (origin
  144. (method git-fetch)
  145. (uri (git-reference
  146. (url "https://github.com/naggie/dstask")
  147. (commit (string-append "v" version))))
  148. (file-name (git-file-name name version))
  149. (sha256
  150. (base32 "03rl2wh58xd6a80ji43c7ak3h0ysi3ddg570pn8ry24s7s45zsz2"))))
  151. (build-system go-build-system)
  152. (arguments
  153. `(#:import-path "github.com/naggie/dstask"
  154. #:install-source? #f
  155. #:phases
  156. (modify-phases %standard-phases
  157. (replace 'build
  158. (lambda* (#:key import-path #:allow-other-keys)
  159. (with-directory-excursion (string-append "src/" import-path)
  160. (invoke "go" "build" "-o" "dstask" "cmd/dstask/main.go")
  161. (invoke "go" "build" "-o" "dstask-import"
  162. "cmd/dstask-import/main.go"))))
  163. (replace 'install
  164. (lambda* (#:key import-path outputs #:allow-other-keys)
  165. (with-directory-excursion (string-append "src/" import-path)
  166. (let* ((out (assoc-ref outputs "out"))
  167. (bindir (string-append out "/bin"))
  168. (zsh-completion (string-append
  169. out "/share/zsh/site-functions/_dstask"))
  170. (bash-completion
  171. (string-append
  172. out "/share/bash-completion/completions/_dstask")))
  173. (install-file "dstask" bindir)
  174. (install-file "dstask-import" bindir)
  175. (install-file ".dstask-bash-completions.sh" bash-completion)
  176. (install-file ".dstask-zsh-completions.sh" zsh-completion)))
  177. #t)))))
  178. (synopsis "CLI-based TODO manager with git-based sync + markdown notes per task")
  179. (description "dstask is a personal task tracker that uses git for
  180. synchronization. It offers a note command to attach a Markdown based note to
  181. a task.")
  182. (home-page "https://github.com/naggie/dstask")
  183. (license license:expat)))
  184. (define-public blanket
  185. (package
  186. (name "blanket")
  187. (version "0.4.1")
  188. (source
  189. (origin
  190. (method git-fetch)
  191. (uri (git-reference
  192. (url "https://github.com/rafaelmardojai/blanket/")
  193. (commit version)))
  194. (file-name (git-file-name name version))
  195. (sha256
  196. (base32 "1rk9xxiflj8rf75q56s907xp3jzxc7r88njlmxg07gl6i35mmcmi"))))
  197. (build-system meson-build-system)
  198. (arguments
  199. `(#:glib-or-gtk? #t
  200. #:tests? #f ;the "Validate appstream file" test fails
  201. #:phases
  202. (modify-phases %standard-phases
  203. (add-after 'wrap 'wrap-libs
  204. (lambda* (#:key outputs #:allow-other-keys)
  205. (let* ((out (assoc-ref outputs "out"))
  206. (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
  207. (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
  208. (python-path (getenv "GUIX_PYTHONPATH")))
  209. (wrap-program (string-append out "/bin/blanket")
  210. `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
  211. `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
  212. `("GUIX_PYTHONPATH" ":" prefix (,python-path))))
  213. #t)))))
  214. (native-inputs
  215. `(("desktop-file-utils" ,desktop-file-utils)
  216. ("gettext" ,gettext-minimal)
  217. ("glib:bin" ,glib "bin")
  218. ("gobject-introspection" ,gobject-introspection)
  219. ("gtk+:bin" ,gtk+ "bin")
  220. ("pkg-config" ,pkg-config)))
  221. (inputs
  222. `(("appstream-glib" ,appstream-glib)
  223. ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
  224. ("gst-plugins-bad" ,gst-plugins-bad)
  225. ("gst-plugins-good" ,gst-plugins-good) ;for ScaleTempo plugin
  226. ("gtk+" ,gtk+)
  227. ("libhandy" ,libhandy)
  228. ("python-gst" ,python-gst)
  229. ("python-pygobject" ,python-pygobject)))
  230. (home-page "https://github.com/rafaelmardojai/blanket")
  231. (synopsis "Ambient sound and noise player")
  232. (description
  233. "Blanket provides different ambient sounds and types of noise to listen
  234. to with the goal of improving your focus and enhancing your productivity.
  235. You can also use it to fall asleep in a noisy environment.")
  236. (license license:gpl3+)))