From 2c3b9eaa97a187f0990c13b66e3a2a2c3cc3b9ed Mon Sep 17 00:00:00 2001 From: contrapunctus Date: Sun, 13 Feb 2022 02:52:25 +0530 Subject: [PATCH 1/3] Add work hour implementation idea --- TODO.org | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/TODO.org b/TODO.org index 2a440c1..dfbae2b 100644 --- a/TODO.org +++ b/TODO.org @@ -933,10 +933,11 @@ Additional rules: 3. [X] on clock out, increment =break-time= and start timed notification 4. [X] on clock in, calculate duration of latest break (duration between last =:stop= and now), and subtract it from =break-time=; if the resulting time is negative, set it to zero. 5. [ ] "big break" command - user enters a time, for which we set an alarm. User must resume working around that time. -6. [ ] define work hours? - * As a custom variable - this is easy to implement, but cannot vary over time without affecting (the interpretation of) past data. - * [[#date-key-values][Key values associated with a day?]] The user could define the default in a custom variable. -7. [ ] displaying/recording breaks. Probably done implicitly - when work hours are defined, any time not spent working can be interpreted as break time. +6. [ ] Define work hours + * [ ] Custom variable for default work hours. + * [ ] Hook function which inserts default work hours. + * [ ] Hook function which prompts for work hours whenever you first clock in on a date. If work hours are defined in the custom variable, ask whether to use them - on negative answer, prompt for today's work hours. If work hours are not defined, prompt for today's work hours. +7. [ ] Displaying/recording breaks. Probably done implicitly - when work hours are defined, any time not spent working can be interpreted as break time. Extras 1. persist =break-time= between Emacs sessions From 005e54f79b4db87799d6f43a3b5c360cacc85054 Mon Sep 17 00:00:00 2001 From: contrapunctus Date: Sun, 13 Feb 2022 02:52:34 +0530 Subject: [PATCH 2/3] Note branches; mark work on date properties as STARTED --- TODO.org | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/TODO.org b/TODO.org index dfbae2b..d2cb667 100644 --- a/TODO.org +++ b/TODO.org @@ -866,10 +866,11 @@ Records not used for time tracking, but to store data associated with a date or [] ...) #+END_SRC -** tagging dates with key-values :feature: +** STARTED tagging dates with key-values :feature: :PROPERTIES: :CREATED: 2022-02-10T22:59:45+0530 :CUSTOM_ID: date-key-values +:branch: date-properties :END: Straightforward enough for the plist group backend - #+BEGIN_SRC elisp @@ -910,6 +911,7 @@ The plist backend could theoretically be extended to support it, but I'd rather * STARTED Support for the Third Time System [57%] :extension: :PROPERTIES: :CREATED: 2022-02-10T14:12:12+0530 +:branch: third-time :END: [[https://www.lesswrong.com/posts/RWu8eZqbwgB9zaerh/third-time-a-better-way-to-work][Third Time: a better way to work]] #+BEGIN_QUOTE From 38f2b6239c0e295416da4f4b8a7d40450c43c717 Mon Sep 17 00:00:00 2001 From: contrapunctus Date: Sun, 13 Feb 2022 02:59:12 +0530 Subject: [PATCH 3/3] Remove duplicate footnote --- manual.md | 24 +++++++++++------------- manual.org | 4 +--- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/manual.md b/manual.md index 2528a76..e1eb305 100644 --- a/manual.md +++ b/manual.md @@ -13,7 +13,7 @@ 1. [chronometrist](#usage-chronometrist) 2. [chronometrist-report](#usage-chronometrist-report) 3. [chronometrist-statistics](#usage-chronometrist-statistics) - 4. [chronometrist-details](#orga55ac83) + 4. [chronometrist-details](#org09eaa12) 5. [common commands](#usage-common-commands) 6. [Time goals/targets](#time-goals) 6. [How-to](#how-to) @@ -21,15 +21,15 @@ 2. [How to load the program using literate-elisp](#how-to-literate-elisp) 3. [How to attach tags to time intervals](#how-to-tags) 4. [How to attach key-values to time intervals](#how-to-key-value-pairs) - 5. [How to skip running hooks/attaching tags and key values](#orgae7b0f6) + 5. [How to skip running hooks/attaching tags and key values](#orga569ce7) 6. [How to open certain files when you start a task](#how-to-open-files-on-task-start) 7. [How to warn yourself about uncommitted changes](#how-to-warn-uncommitted-changes) 8. [How to display the current time interval in the activity indicator](#how-to-activity-indicator) 9. [How to back up your Chronometrist data](#how-to-backup) 10. [How to configure Vertico for use with Chronometrist](#howto-vertico) -7. [Explanation](#org15771af) +7. [Explanation](#org2a03f3a) 1. [Literate Program](#explanation-literate-program) -8. [User's reference](#org020377a) +8. [User's reference](#org2585c1f) 9. [Contributions and contact](#contributions-contact) 10. [License](#license) 11. [Thanks](#thanks) @@ -158,7 +158,7 @@ Run `M-x chronometrist-statistics` (or `chronometrist` with a prefix argument of Press `b` to look at past time ranges, and `f` for future ones. - + ## chronometrist-details @@ -224,7 +224,7 @@ Evaluate or add to your init.el the following - ## How to attach key-values to time intervals -1. Add `chronometrist-kv-add` to one or more of these hooks 2 - +1. Add `chronometrist-kv-add` to one or more of these hooks 1 - (add-to-list 'chronometrist-after-in-functions 'chronometrist-kv-add) (add-to-list 'chronometrist-before-out-functions 'chronometrist-kv-add) @@ -233,7 +233,7 @@ Evaluate or add to your init.el the following - To exit the prompt, press the key it indicates for quitting - you can then edit the resulting key-values by hand if required. Press `C-c C-c` to accept the key-values, or `C-c C-k` to cancel. - + ## How to skip running hooks/attaching tags and key values @@ -299,7 +299,7 @@ Another one, prompting the user if they have uncommitted changes in a git reposi ## How to back up your Chronometrist data -I suggest backing up Chronometrist data on each save using the [async-backup](https://tildegit.org/contrapunctus/async-backup) package.3 Here's how you can do that. +I suggest backing up Chronometrist data on each save using the [async-backup](https://tildegit.org/contrapunctus/async-backup) package.2 Here's how you can do that. 1. Add the following to your init. @@ -332,7 +332,7 @@ Or use `vertico-multiform` to disable sorting for only specific commands - (chronometrist-key-values-unified-prompt (vertico-sort-function . nil))))) - + # Explanation @@ -348,7 +348,7 @@ The Org file can also be loaded directly using the [literate-elisp](https://gith `chronometrist.org` is also included in MELPA installs, although not used directly by default, since doing so would interfere with automatic generation of autoloads. - + # User's reference @@ -425,6 +425,4 @@ fiete and wu-lee for testing and bug reports 1 but not `chronometrist-before-in-functions` -2 but not `chronometrist-before-in-functions` - -3 It is possible to use Emacs' built-in backup system to do it, but since it is synchronous, doing so will greatly slow down saving of the Chronometrist file. +2 It is possible to use Emacs' built-in backup system to do it, but since it is synchronous, doing so will greatly slow down saving of the Chronometrist file. diff --git a/manual.org b/manual.org index f222612..0d8abfa 100644 --- a/manual.org +++ b/manual.org @@ -190,7 +190,7 @@ Evaluate or add to your init.el the following - :CUSTOM_ID: how-to-key-value-pairs :END: -1. Add =chronometrist-kv-add= to one or more of these hooks [fn:3] - +1. Add =chronometrist-kv-add= to one or more of these hooks [fn:2] - #+BEGIN_SRC emacs-lisp (add-to-list 'chronometrist-after-in-functions 'chronometrist-kv-add) @@ -200,8 +200,6 @@ Evaluate or add to your init.el the following - To exit the prompt, press the key it indicates for quitting - you can then edit the resulting key-values by hand if required. Press =C-c C-c= to accept the key-values, or =C-c C-k= to cancel. -[fn:3] but not =chronometrist-before-in-functions= - ** How to skip running hooks/attaching tags and key values Use =M-RET= (=chronometrist-toggle-task-no-hooks=) to clock in/out.