5 Commits

Author SHA1 Message Date
a144ee13c0 [Bugfix] Make sure we remove all text properties before outputting JSON data 2021-10-16 06:25:34 +02:00
lh@hrdl.eu
3e71766f85 Add-hook org-clock-cancel-hook 2021-03-13 16:01:43 +01:00
e4987c99ad Add installation instructions for quelpa/quelpa-use-package 2021-03-12 16:55:51 +00:00
c92eeff06e Fix the file header
It missed the .el extension, which is required if you want to install it via Quelpa (and probably
with `package.el` later.
2021-03-12 16:55:51 +00:00
dc3a934d62 Fix title and category 2021-03-12 09:11:13 +00:00
2 changed files with 30 additions and 4 deletions

View File

@@ -10,6 +10,27 @@ You can set the file to be written by customizing `org-clock-waybar-filename`; i
`$XDG_CACHE_HOME/waybar-current-task.json` (`$XDG_CACHE_HOME` defaults to `$HOME/.cache` on XDG `$XDG_CACHE_HOME/waybar-current-task.json` (`$XDG_CACHE_HOME` defaults to `$HOME/.cache` on XDG
compatible systems, like Linux.) compatible systems, like Linux.)
### Quelpa
If you only have [`quelpa`](https://github.com/quelpa/quelpa) installed:
```elisp
(quelpa
'(org-clock-waybar
:fetcher git
:url "https://gitea.polonkai.eu/gergely/org-clock-waybar.git"))
```
or, if you have [`quelpa-use-package`](https://github.com/quelpa/quelpa-use-package) installed,
too:
```elisp
(quelpa-use-package org-clock-waybar
:quelpa (org-clock-waybar
:fetcher git
:url "https://gitea.polonkai.eu/gergely/org-clock-waybar.git"))
```
## Waybar configuration ## Waybar configuration
To add the current task to Waybar, add this snippet to your config: To add the current task to Waybar, add this snippet to your config:

View File

@@ -1,4 +1,4 @@
;;; org-clock-waybar --- Summary ;;; org-clock-waybar.el --- Summary
;; Copyright (C) 2021 Gergely Polonkai ;; Copyright (C) 2021 Gergely Polonkai
@@ -94,8 +94,8 @@
The output is in JSON format constructed in a way so Waybar can process it. The output is in JSON format constructed in a way so Waybar can process it.
If there is no clocked in task, alt becomes empty and text will be set to the If there is no clocked in task, alt becomes empty and text will be set to the
value of `org-clock-waybar-not-clocked-in-text'." value of `org-clock-waybar-not-clocked-in-text'."
(let* ((category (org-clock-waybar--get-task-title)) (let* ((category (org-clock-waybar--get-task-category))
(title (org-clock-waybar--get-task-category)) (title (org-clock-waybar--get-task-title))
(tooltip (org-clock-waybar--get-tooltip)) (tooltip (org-clock-waybar--get-tooltip))
(output (json-new-object))) (output (json-new-object)))
(setq output (json-add-to-object (setq output (json-add-to-object
@@ -122,13 +122,18 @@ value of `org-clock-waybar-not-clocked-in-text'."
This function is ought to be used via Emacsclient: This function is ought to be used via Emacsclient:
emacsclient --eval '(org-clock-waybar-output-task)'" emacsclient --eval '(org-clock-waybar-output-task)'"
(org-clock-waybar--get-clocked-task-json)) (let* ((output (org-clock-waybar--get-clocked-task-json))
(start 0)
(end (length output)))
(set-text-properties start end nil output)
output))
(defun org-clock-waybar-setup () (defun org-clock-waybar-setup ()
"Setup org-clock-waybar. "Setup org-clock-waybar.
It adds `org-clock-waybar-save-task' to both `org-clock-in-hook' and It adds `org-clock-waybar-save-task' to both `org-clock-in-hook' and
`org-clock-out-hook'." `org-clock-out-hook'."
(add-hook 'org-clock-cancel-hook #'org-clock-waybar-save-task)
(add-hook 'org-clock-in-hook #'org-clock-waybar-save-task) (add-hook 'org-clock-in-hook #'org-clock-waybar-save-task)
(add-hook 'org-clock-out-hook #'org-clock-waybar-save-task) (add-hook 'org-clock-out-hook #'org-clock-waybar-save-task)
(add-hook 'kill-emacs-hook #'org-clock-waybar-save-task)) (add-hook 'kill-emacs-hook #'org-clock-waybar-save-task))