Commit Graph

835 Commits

Author SHA1 Message Date
Daniel - 83421c072a
Remove trailing whitespace after HTML rendering a file
Those whitespaces are neither necessary nor helpful.
2022-02-06 20:57:36 +01:00
Daniel - efb7500202
Add original value as default when changing Org item headlines
This allows to make simple changes to the original headline of an item.
2022-01-08 15:42:40 +01:00
Daniel - d23a8dc817
Fix adding notes when updating headlines
I think I just did it wrong, so let's try adding a note by calling
`org-add-note` directly.  So far it's working better, but I am not quite sure
whether I really did it right this time.  In any way, `org-add-note` keeps track
of all the bookkeeping for taking notes, so my code is simpler now :)
2022-01-08 09:11:02 +01:00
Daniel - 407f5d70f2
Add newlines when inserting templates
I find myself inserting these newlines whenever I insert a template, so let's
let them insert them automatically.
2022-01-02 09:31:29 +01:00
Daniel - 5bc7c70882
Add function to copy template of Org Mode item to location at point
This is a convenience function and has been bound to a shortcut for easier
usage.  This function is supposed to be the standard way to copy templates.
2021-12-15 09:43:50 +01:00
Daniel - 80eeca1e44
Add simple function to find template via special property
This allows both a more fine-grained and more flexible control over where
templates can be located and which templates are suppoed to be used for the item
at point.  This function could also be bound to a custom key binding to make it
easier to invoke.
2021-12-13 21:32:05 +01:00
Daniel - eafebe1cb9
Add simple function to directly render html from a file
This is simpler than opening the file in a buffer and calling shr-render-buffer,
with some buffer maneuvring afterwards.
2021-12-13 21:17:45 +01:00
Daniel - cedaae00e8
Make template copy function more robust
Instead of going upward from the end, we now just start from the beginning and
skip all drawers we may encounter.  This should also allow to copy subtrees in
templates, although adjustments to the headline indentations might be necessary
if the template and point are on different levels.
2021-12-13 21:17:18 +01:00
Daniel - 159c8c0eb6
First check for major mode when update Org item headline 2021-11-29 17:39:33 +01:00
Daniel - 5c36dba12c
Make function to update Org item headlines also work in agenda 2021-11-29 17:39:27 +01:00
Daniel - 25a7051c12
Add function to update headline of Org mode item and log note
This allows changing the headline of an item if it's scope changes and record
this change in a note.
2021-11-29 17:16:25 +01:00
Daniel - 6064f0e4b3
Add more test cases for base45 decoder 2021-11-07 10:04:16 +01:00
Daniel - b072e32988
Add more test cases for base45 decoder function 2021-11-07 09:10:09 +01:00
Daniel - 24bb768e3d
Simplify character conversion in base45-decode-string
This actually renders the separate translation function obsolete, it has been
inlined now.
2021-11-07 08:56:06 +01:00
Daniel - f1c3af9ea7
Add some regression tests for base45 decoder 2021-11-07 08:41:00 +01:00
Daniel - f52f48273a
Allow input of base45 decoder to also contain lower-case letters 2021-11-07 08:40:30 +01:00
Daniel - e15be73bc1
Fix insertion of text from hex numbers
Using `insert` directly makes use of character conversion and may scramble the
byte when inserting into the buffer (indeed, `insert` does not seem to insert
the byte, but the characters whose code-points is given in the string; same for
`insert-char`).
2021-11-06 17:49:49 +01:00
Daniel - a8cfeaf69f
Add simple function for base45 decoding
For playing around with EU Covid Certificates.
2021-11-06 17:49:46 +01:00
Daniel - ef2932fed7
Always print two bytes when converting text to hex 2021-11-06 15:35:29 +01:00
Daniel - 0d1fe48e6f
Allow to copy template from outside of current file
My checklist template are usually located in a separate file, and sometimes even
in more than one.  Being able to copy those template to point is thus crucial.
2021-10-29 14:35:35 +02:00
Daniel - 747e505fda
Revert "Exclude NOTEs as refile targets"
Excluding NOTEs as refile targets also excludes them as jump targets for C-u C-c
C-w, which is bad.  Better move all NOTEs out of the main task list into a
separate notes.org or something.

This reverts commit 90b6e91051.
2021-10-24 12:56:29 +02:00
Daniel - 6b5d40b09b
Update local copy of plantuml-mode 2021-10-16 18:45:41 +02:00
Daniel - 5b10f83303
Fix typo 2021-10-16 12:27:56 +02:00
Daniel - c17bc4c1ab
Explicitly set frame title when current Org task changes
This should enable new frames to show the correct title, and not just the
default "emacs" string.
2021-10-16 12:21:02 +02:00
Daniel - 90b6e91051
Exclude NOTEs as refile targets
NOTEs are meant to hold information for the project at hand, and not to collect
tasks, because NOTEs are meant to live longer than those tasks.  Use dedicated
subprojects to group tasks.  Task may (and probably should) refer to NOTEs for
keeping long lasting information, though.
2021-10-16 10:12:51 +02:00
Daniel - b952504c81
Fix org mode category refresh when redisplaying timelines
Iterating over the current set of file names may not work when no files are
given (in which case all agenda files should be visisted).  However, instead of
fixing the set of files, it should be more robust to find all referenced buffers
by iterating over the markers of the entries.  In that case, even if a file is
visited by multiple buffers, we can be sure that the right buffers are referesh
before the timeline is redrawn.
2021-09-30 15:35:18 +02:00
Daniel - 785db3ded8
Fix typo in linking hydra 2021-09-04 16:17:35 +02:00
Daniel - a1f0acfd87
Add custom function to list git-annex files via dired
This can already be done by using `db/dired-from-shell-command`, but it's more
convenient to have a specific command for this.
2021-08-24 10:18:36 +02:00
Daniel - e14a7248b0
Directly complain when not file are available in custom dired view
Otherwise, a rather confusing error message is displayed about not being able to
find a file called "Command output" in the current directory.
2021-08-22 09:32:05 +02:00
Daniel - 106f286285
Include symlinks in custom file listings, even if they are dangling
When listing files, it's not relevant whether the file is readable or whether
a symbolic link points to a non-existing file.  What matters is that the file
itself exists, either as a file or as a symbolic link.

This is relevant when using `git annex find` to list files matching some search
criteria.
2021-08-21 09:51:54 +02:00
Daniel - 158601f012
Make custom function to query for locations in Org mode files public
This function is referenced in some doc string already, and could as well be
public, so let's make it so.  This amounts to removing a dash from it's function
name.
2021-08-08 13:51:52 +02:00
Daniel - ca679b2274
Refactory template copy function into function to copy item bodies
This allows the same copy behavior as before (apart from newly introduced bugs,
that is), but in addition gives the possibility to copy bodies of arbitraty
items that can be choosen interactively.  This might come in handy when copying
general checklists from anywhere in the main Org mode file to the current task.
2021-08-08 13:49:07 +02:00
Daniel - b4621122cc
Update local copy of plantuml-mode
This is now at e7c08c588b/plantuml-mode.el.
2021-08-07 17:31:27 +02:00
Daniel - b0703bee01
Update local copy of plantuml-mode
This contains an experimental implementation for file exporting.
2021-08-03 20:40:09 +02:00
Daniel - 54263ab599
Add local copy of plantuml-mode
This contains my changes, it will be removed as soon as upstream catches up.
2021-08-03 17:38:21 +02:00
Daniel - 76990dcdf2
Allow fast link creation to items recentely associated with clocking
This allows to insert links to items that were recently clocked into.  The
selection to those items is done via `org-clock-select-task`, which itself will
display items from `org-clock-history`.
2021-07-17 08:47:37 +02:00
Daniel - b85246ae7c
Add shortcut to timeline for deleting other windows 2021-07-03 17:54:15 +02:00
Daniel - c3a099fd6a
Add shortcut to timeline of day to frequently used features
I am using this frequently, so let's put it there!
2021-07-02 17:38:22 +02:00
Daniel - c2f2b23a6c
Add stop shortcut for main music hydra
So far, only a toggle for playing and pausing was available.  Providing a
shortcut for `emms-stop` makes unconditionally sure the music is stoped.

Funnily(?), this also replaces an obsolete shortcut for `emms-show`.
2021-06-13 18:05:40 +02:00
Daniel - 0899a9079e
Clean up all links in headline when linking to it
So far, we only considered one link in a headline and replaced it with its
description when linking to it.  When there are multiple links, this will fail.
This commit changes this by iterating over all links in the headline, not only
the first one.
2021-05-12 18:29:34 +02:00
Daniel - 7960f763f4
Keep headline around links when linking to them
So far, when a link is discovered in a headline, we only keep the description of
that link.  This will throw away the context of that link, which is
undesirable.  So let's keep it.
2021-05-12 18:20:18 +02:00
Daniel - 268ddeb1aa
Avoid complete links in descriptions when adding links to Org items
When inserting links to other Org items or to the currently clocked-in item, the
complete target headline is used as a description in the newly inserted link.
When that target headline is itself a link, the newly inserted link will contain
the complete link as a description, rendering it unreadable and also
malformed (it's not allowed to have two consequtive brackets in the description
of a link).  To remedy this, we now explicitly check the target headline for
being a link, and if so, only use the description of it as the description in
the newly inserted link.
2021-05-12 17:47:45 +02:00
Daniel - a0b1f4df0d
Do not use `org-store-link` when inserting links to other items
When the link to another item is already present in the history of
`org-store-link`, nothing is updated.  Inserting the topmost link then results
in a wrong link being inserted.

Not using `org-store-link` at all fixes this problem and also leaves the history
of `org-store-link` untouched.  It also simplifies the implementation by not
relying on the complexity of `org-store-link`, but instead just only using
`org-entry-get` and `org-id-get-create`.
2021-04-29 19:52:54 +02:00
Daniel - 56b1de2844
Remove duplication of refile target specification for current buffer 2021-04-16 17:34:40 +02:00
Daniel - 77f2dfc0eb
Fix missing specification of default buffer when inserting links
The `default-buffer` is apparently not optional when the current buffer is not
associated with a file.  If `default-buffer` is missing and the current buffer
is not a file-buffer, e.g., a note buffer, then `org-refile-get-targets` fails.
2021-04-16 17:31:55 +02:00
Daniel - 318f7c8f44
Fix reference to wrong buffer when creating links to other items
When finding the location of an Org mode item to link to,
`org-refile-get-location` may return a point even if the target buffer is not
the default buffer.  Resolving point in the default buffer thus yields a false
marker and the inserted link is wrong.  To remedy this, also consider the file
name returned by `org-refile-get-location` to resolve point in the file buffer
for that file.
2021-04-01 17:02:01 +02:00
Daniel - 8f4fa01304
Remove redundant save of point and mark
`org-with-point-at` will do this already (at least for point).
2021-04-01 16:51:46 +02:00
Daniel - 1916eb6736
Move point when inserting link to other Org mode item
This is the natural flow, as usually one continues writing after the link, not
before it.
2021-04-01 16:51:03 +02:00
Daniel - 96638b09e4
Allow to show backlinks directly from Org agenda buffers
This is more convenient than to first switch to the item in the corrsponding Org
mode buffer and then querying for its backlinks.
2021-03-27 10:39:53 +01:00
Daniel - 732323edfc
Ensure to always return a marker when inserting links to other items
`org-refile-get-location` sometimes only returns a point and not a marker.  In
that case, manually convert the point to a marker to ensure that calling
functions now where to go to.  Additionally, ensure that
`db/org-default-org-file` is opened if not already done so, and error out if the
current buffer is not associated with a file and no default Org file exists.
2021-03-27 10:22:21 +01:00
Daniel - 00ca4c0276
Minorly simplify definition of Org linking hydra
This way, the help buffer of the hydra provides a link to the underlying
function.
2021-03-27 09:48:55 +01:00
Daniel - 22058b1568
Allow adding links to other items without refile verification
We are only using the refile mechanism for convenience here, and not for actual
refiling.  The refile verification function is thus not relevant here.  To take
effect, we also have to ignore the cache, as it may hold precomputed targets
that have used the refile verification function in a previous run.
2021-03-26 16:47:22 +01:00
Daniel - d6584ef521
Fix signature of frame hook function
This got removed in the last refactoring attempt.
2021-03-26 16:38:17 +01:00
Daniel - d7b2ad0b71
Extend docstring for hydra-org-linking 2021-03-20 20:50:27 +01:00
Daniel - fd14313b9b
Only warn about RESET_CHECK_BOXES if it's really there 2021-03-20 16:33:00 +01:00
Daniel - 7833e28185
Make checkdoc happy about db-org 2021-03-20 16:03:12 +01:00
Daniel - 6e8b878b4d
Warn when using the deprecated RESET_CHECK_BOXES property
I want to use periodic tasks for repeated tasks with check boxes.
2021-03-20 15:57:45 +01:00
Daniel - bfcca623dc
Make checkdoc happy about db-hydras package 2021-03-20 15:48:00 +01:00
Daniel - 78b202aed7
Introduce hydra for managing links between Org mode items
It's easier to use and easier to keep track of what is available.  It also saves
key precious bindings!
2021-03-20 15:45:49 +01:00
Daniel - 77920dd9a2
Move cursor forward when inserting link to current clock 2021-03-20 15:45:15 +01:00
Daniel - eae1590e68
Add function to add link to currently clocked-in task
This might be handy while working on a task and realizing that it's related to
another one.
2021-03-20 12:34:39 +01:00
Daniel - fde876a972
Restrict listing of link targets to current buffer by default
This is much faster, and usually what we want.  If references outside the
current buffer are necessary, just prefix the call with a universal argument.
2021-03-20 11:50:56 +01:00
Daniel - 1788ceb0f4
Resolve flycheck warnings in db-music 2021-02-24 14:14:08 +01:00
Daniel - b0df6465f8
Remove duplicate overwrite confirmation when updating playlist
We explicitly ask for confirmation already, no need to let EMMS ask again.
2021-02-24 14:03:17 +01:00
Daniel - f982f37d69
Use relative file names when updating playlist
This is the documented behavior, the previous usage of absolute file names was a
mistake.
2021-02-24 13:58:43 +01:00
Daniel - 1df794ebf2
Omit null strings when updating playlists
Inserting a null string results in all files in the current buffer to be added
to that playlist.  Finding this bug was tricky!
2021-02-24 13:58:10 +01:00
Daniel - 015d218431
Fix wrong handling of EMMS' current playlist buffer during export
The macro `with-current-emms-playlist' does not set the current playlist to the
current buffer, but instead switches to it.  Yes, that's reasonable, but not
what I thought it does.  Since I need the reverse (make the current buffer to
temporarily be the current playlist), we simply bind `emms-playlist-buffer' to
the value returned by `current-buffer'.

While we are at it, also make info loading synchronous by binding
`emms-info-asynchronously' to nil.
2021-02-24 13:35:43 +01:00
Daniel - b148c41c98
Sort tracks in auto-generated playlists by title and author
For this, the playlist export of EMMS is used to enable sorting by track
metadata.  The current implementation is a first try and may contain some bugs
when track metadata is not readily available.
2021-02-24 13:10:08 +01:00
Daniel - 8039aad605
Update docstring for git-annex playlist generation function
It's not generating a playlist, but a list of absolute file names that are later
used to generate a playlist proper.
2021-02-06 18:18:35 +01:00
Daniel - 7bfd185514
Add missing require statement for cl-lib 2021-01-29 17:51:26 +01:00
Daniel - 9efb765b5a
Extend documentation for agenda effort summation functions 2021-01-29 17:38:24 +01:00
Daniel - 6ba5fdad61
Fix bug in agenda effort summation if nothing there to display 2021-01-29 17:36:21 +01:00
Daniel - 7582c2065e
Include timestamps in org agenda effort summation
Those correspond to fix appointments.
2021-01-29 17:21:04 +01:00
Daniel - 9cf17c973f
Show sum of daily efforts directly in the agenda
Now that column view does not show effort sums any longer, we need another means
to show daily efforts.  It turns out that this can be accomplished easily using
two simple functions and `org-agenda-finalize-hook`.

This is taken from
https://emacs.stackexchange.com/questions/21380/show-sum-of-efforts-for-a-day-in-org-agenda-day-title#21902.
2021-01-29 17:11:55 +01:00
Daniel - e4f02647a2
Refactor code to update magit's repository list to separate function
This allows easier updates of this list, without having resort to executing the
corresponding code manually.  In the future, we could even update that list
automatically by attaching the new function to some of projectile's hooks or
something.
2021-01-17 09:15:01 +01:00
Daniel - a49d7fc76d
Remove calls to some obsolete CL functions 2021-01-16 14:34:48 +01:00
Daniel - 56c9f940ce
Fix line-ending issues with MIME and Outlook
Outlook seems to expect CRLF in S/MIME signed+encrypted mails, so we add those
somewhere in the process of encoding the mail.  Furthermore, Outlook is sending
MIME messages with CRLF line endings, and we have to take care of that when
looking for the end headers.

The changes proposed here are preliminary and subject to further testing.
2020-12-12 18:05:57 +01:00
Daniel - 6742695f53
Enable flycheck mode in Emacs Lisp only when buffer has a file
Flycheck used to be activated unconditionally, resulting in annoying warnings
when evaluating Lisp expressions in the minibuffer with `pp-eval-expression`,
and in the scratch buffer.
2020-11-28 08:50:47 +01:00
Daniel - 44c23b7a28
Do not partially fetch articles
This leads to errors when forgetting to fetch the complete article before
forwarding it.  Moreover, redisplaying the article sometimes leads to a
completely fetched article to be displayed only partially again, resulting in
repeated fetched.  Finally, the performance gain is not worth the effort in my
setup, so let's just disable it.
2020-11-06 20:20:36 +01:00
Daniel - 4ecafaa411
Allow to refile under periodic tasks
Sometimes an instance of a periodic tasks requires individual subtasks.  In this
case, refiling there is very helpful.  In other cases, the extra entries should
not be disturbing too much, I think … I hope.
2020-10-12 16:28:43 +02:00
Daniel - 9907b1b2ae
Allow remote links and backling search for more headlines
Include all headlines in Org agenda files and as well as all extra text search
files in interactive selections.  To make this more managable, introduce a
dedicated function to query the user for a target item.
2020-09-28 19:37:58 +02:00
Daniel - 669ecb6e4f
Trying to make backling searching work for custom-id links 2020-09-26 18:16:43 +02:00
Daniel - 4efb8cfe18
Use org-store-link for adding links to other items 2020-09-26 18:10:34 +02:00
Daniel - 68c6423cae
Fix docstring 2020-09-26 18:07:57 +02:00
Daniel - ff184ec47a
Check whether we are in Org Mode before inserting remote link 2020-09-26 16:48:02 +02:00
Daniel - 1c065bb46b
Add simple function to insert links to other items at point 2020-09-26 16:44:40 +02:00
Daniel - f7ddab7696
Fix error message 2020-09-26 16:29:50 +02:00
Daniel - dd30d5d7be
Set default buffer when querying for Org Mode headlines
Apparently, if the current buffer is not associated with a file, things break.
2020-09-26 15:24:07 +02:00
Daniel - b0a36749e6
Refactor Org Mode link finder function
The main entry point is now `db/org-find-links-to-current-item', which decides
how to obtain the ID and CUSTOM_ID of the item to look for.  The main work is
done by `db/org-find-items-linking-to-id', which does some checks, build the
query, and then calls `org-search-view' (which, indeed, does the actual work).
Users should call `db/org-find-links-to-current-item' only.
2020-09-26 15:20:11 +02:00
Daniel - c219d77ab9
Query for headline in link finder function when outside of Org Mode 2020-09-26 15:12:49 +02:00
Daniel - 994be97397
Fix consistency check for link finder function 2020-09-26 15:12:28 +02:00
Daniel - cde56c819e
Extend backward link searching function
Now support CUSTOM_ID as well, and check arguments for plausibility.
2020-09-26 15:00:34 +02:00
Daniel - a6f77f8d71
Add simple helper function to find items linking to the current one
Only ID links are supported by now.
2020-09-26 14:14:45 +02:00
Daniel - a2ce6ebc59
Show current zoom level in corresponding hydra 2020-09-26 11:22:59 +02:00
Daniel - 57044376be
Do not treat dotfiles as projects 2020-09-20 16:40:48 +02:00
Daniel - 2c4cada1da
Also look into org-agenda-files when checking for missing bookmarks 2020-09-20 16:35:33 +02:00
Daniel - ce9a2f51eb
Add linting function for project management 2020-09-20 16:33:24 +02:00
Daniel - 66da74d63e
Fix typo 2020-09-20 16:22:29 +02:00
Daniel - 7a0fbff4c5
Do some cleanup in db-projects 2020-09-20 16:20:23 +02:00
Daniel - 9822736d8e
Move comment to right position 2020-09-20 16:09:40 +02:00
Daniel - 69c6a372eb
Add function to check for missing project bookmarks 2020-09-20 15:30:10 +02:00
Daniel - 9c0d630703
Remove all bookmarks when archiving a project
Not only the one to the project diary.
2020-09-20 15:13:26 +02:00
Daniel - 297bb6ac6e
Add short description of what db-projects is all about 2020-09-20 14:48:59 +02:00
Daniel - d9e74f6e54
Allow to list Org Mode files in projects not being searched by default 2020-09-20 14:48:18 +02:00
Daniel - 96d4f000ca
Add some autoload statements 2020-09-20 14:24:38 +02:00
Daniel - 4dead43c36
Check that newly created projects have not been archived before 2020-09-20 14:23:52 +02:00
Daniel - 644d463260
Update some docstrings in db-projects
As suggested by flycheck.
2020-09-20 14:12:50 +02:00
Daniel - 2a046610e9
Clean up projectile's cache explicitly when removing a project 2020-09-20 14:12:43 +02:00
Daniel - f662e5b990
Make projectile a hard dependency for personal project management 2020-09-20 14:10:46 +02:00
Daniel - 685d55cf93
Do not require main notes file to be part of org-agenda-files
Neither logging information not tasks should be part of that file, so keeping it
in `org-agenda-files' is not really necessary.  Indeed, it has only been
included in there to allow `org-search-view' to search that file.  However, with
using `org-agenda-text-search-extra-files' makes this approach obsolete.
2020-09-20 10:39:58 +02:00
Daniel - a511e9e73a
Allow nil as shortcut character in frequently used features
This results in no entry being defined in the corresponding hydra.
2020-09-19 15:21:04 +02:00
Daniel - 0aa8140e22
Do not function-quote in db/frequently-used-features
Apparently, this does not match with the `function' requirement of the
customization type definition.
2020-09-19 14:05:31 +02:00
Daniel - a576ef123d
Automatically update hydra for shortcuts after customization 2020-09-19 14:02:50 +02:00
Daniel - 14cfae155a
Add some documentation for custom agenda deadline listing
It should be clear why we are using this, and not the standard agenda list.
2020-09-17 16:05:20 +02:00
Daniel - 5961491f77
Replace custom imenu support use-package with builtin one
Reference: https://protesilaos.com/dotemacs/#h:cfa129a4-3394-4911-9097-4544df4e6ed9
2020-09-11 16:47:28 +02:00
Daniel - c9e84a7e28
Offer simple completion when creating external bookmarks
In dired, offer all marked files, or the currently selected file if there are
none.  Otherwise, just use the list of recently opened files as completing.

This is meant as a very simple replacement for dired+'s dired bookmarks.
2020-09-07 18:10:44 +02:00
Daniel - 03f23b11fb
Copy complete template for periodic tasks
Previously, we only copied the last element in the subtree, assuming that this
encompasses all of the content of the subtree.  However, this is not true, and
thus we have to do something more elaborate.  Now, starting from the end of the
subtree, we go up all elements in the subtree until we reach either the headline
or a drawer.  Everything in between is copied as template to the current
location.
2020-09-01 16:23:28 +02:00
Daniel - 1ba91b3271
Introduce dedicated variable for main Org Mode file
The shortcut in the frequently-used menu now points there, and not anymore to
the dedicated home and work files.  If only a single main Org Mode file is used,
this variable should be sufficient.
2020-08-27 12:16:54 +02:00
Daniel - 77ca64de3b
Add shortcuts for main Org Mode files
Usually, only one of them is used.  Maybe one day I have to replace the two
files (or, more precisely, the custom variables pointing to them) by a single
one.  But then, having two files, and also two shortcuts, also remindes me of
whether I am at home or at work, and that's quite significant, isn't it?
2020-08-27 12:07:18 +02:00
Daniel - 88e0a5021d
Add custom function for keyboard-quit
This version should also quit the minibuffer even if not selected.  Found at
https://with-emacs.com/posts/tips/quit-current-context/.
2020-08-26 10:30:25 +02:00
Daniel - 845d5d137c
Add function to generate playlists from git-annex metadata
This had been done manually from the shell until now.
2020-08-15 15:02:06 +02:00
Daniel - 772ee43c2c
Add custom function to play radio stations 2020-08-12 21:57:48 +02:00
Daniel - bc3e2e875f
Remove duplicate entries when setting Gnus' select methods 2020-08-01 10:11:47 +02:00
Daniel - 5707c9233e
Remember to fix setting `gnus-secondary-select-methods'
If `db/mail-accounts' specifies accounts multiple times, or a definition for
some of these accounts is already present in `db/other-gnus-accounts', accounts
will be added multiple times with the current implementation.  Apparently, Gnus
does not seem to care, but it would be better to have this fixed properly.
2020-07-31 18:09:21 +02:00
Daniel - a69d837171
Make automatic IMAP accounts fetch articles partially by default 2020-07-31 18:08:04 +02:00
Daniel - e38ae56584
Rework logic of `db/run-or-hide-shell'
It's a bit clearer now what the function is doing when ARG is given, I hope.  It
also turns out that switching to the current working directory does not make
much sense when we are in the shell buffer, because CWD is then just the, well,
current directory.  The original logic used to CWD of the previous buffer (by
closing the shell buffer and immediately reopening it), but that's actually not
what the function is supposed to be doing, is it?
2020-07-31 16:18:35 +02:00
Daniel - 25abde2d9c
Rewrite `db/run-or-hide-shell' to mimic EShell counterpart 2020-07-31 15:58:37 +02:00
Daniel - 6cca84cdb5
Add standard shortcut for `org-clock-goto'
That even works with C-u, wohoo!
2020-07-26 10:23:06 +02:00
Daniel - b49018129b
Remove trailing whitespace when copying templates for periodic tasks 2020-07-18 19:13:04 +02:00
Daniel - ac815a06f1
Close window when hiding current shell
For eshell we do the same.
2020-07-12 13:00:28 +02:00
Daniel - 4084e0ccae
Do not refile to elements of periodic tasks
If separate things should be done, generate a separate item for it, or leave
some note at the corresponding series element.  Periodic tasks are quite rigid
and should not be used for collecting individual subtasks.
2020-07-04 11:43:19 +02:00
Daniel - edf9afa68f
Readd hydra for shortcuts
Turns out I am using those shortcuts indeed, but forget about it ;)
2020-07-01 21:28:55 +02:00
Daniel - d1c4ad5b5d
Remove unused `db/org-clock-current-task' 2020-07-01 17:16:39 +02:00
Daniel - 4f063c5e6b
Fix misinterpretation of percent sign in org-clock hydra 2020-07-01 17:15:13 +02:00
Daniel - 72768b659f
Print result of `db/ntp-to-time' when called interactively
Otherwise no result is displayed.
2020-06-27 12:27:42 +02:00
Daniel - 5b6dcfe8d2
When switching themes, only do so temporarily
If changes need to be done permanently, customize `custom-enabled-themes'.
2020-06-27 11:16:49 +02:00
Daniel - 2e229c5af9
Explicitly define setter functions for timeline tooling
This is more explicitly and allows for more flexiblity.  Let's hope the
performance impact is not prohibitive, though.
2020-06-27 10:38:13 +02:00
Daniel - dd27018420
Rename main music hydra and move it to `db-music'
The `db-music' package is supposed to be an abstract interface to music
functionality, and should thus define the main hydra for this.  Moreover, the
hydra should not contain „emms“ in it's name, although it's using only EMMS
functions.

It's not clear whether EMMS will every be replaced by some other backend, but
it's nicer to have a (more or less) clear separation between user frontend and
implementation backend.
2020-06-27 10:16:53 +02:00
Daniel - fa1344bf4e
Silence another byte-compiler warning 2020-06-27 10:12:46 +02:00
Daniel - b5d7b57b27
Use `autoload instead' of `declare-function' 2020-06-27 10:11:13 +02:00
Daniel - 6183e008d7
Remove unused `hydra-shortcuts'
The idea of having a hydra to access frequently used features is certainly nice,
but quite hard to achive when one wants to redefine the hydra every time
`db/frequently-used-features' changes.  Regrettably, there are not „ephemeral
hydras“ that are created every time one would like to access it.  Therefore, the
shortcuts hydra is removed for now, but may come back again when we have found a
better way to handle its dynamic nature.
2020-06-27 10:08:39 +02:00
Daniel - c96083c871
Declare `w32-shell-execute' to silence byte-compiler 2020-06-27 09:42:16 +02:00
Daniel - f1932e7032
Fix precision error in `db/ntp-to-time'
A curcial step in the conversion, namly the computation of the actual time from
the seconds since the epoch, had been conducted with too little precision.  Now
the precision is fixed to a high value throughout the whole computation, and the
tests succeed again.
2020-06-27 09:35:31 +02:00
Daniel - b5ed51d8e8
Silence most byte-compiler warnings in `db-utils' 2020-06-27 09:03:23 +02:00
Daniel - 46d9973146
Move last Org Mode utility function from `db-utils' to `db-org' 2020-06-27 08:56:53 +02:00
Daniel - 0583c08cda
Move Org Mode utilities to `db-org'
`db-utils', the original place, is used for general purpose utility functions.
2020-06-26 23:21:37 +02:00
Daniel - 5009eb39f9
Move eshell popup function to `db-eshell'
That's where it belongs.
2020-06-26 23:08:00 +02:00
Daniel - 32b424de24
Add missing require for `timeline-tools' 2020-06-26 23:02:09 +02:00
Daniel - 501060c05a
Silence byte-compiler in `db-eshell' 2020-06-26 22:59:46 +02:00
Daniel - 60808bee7d
Fix requirements for `db-emms' 2020-06-26 22:50:01 +02:00
Daniel - f163e925b8
Silence byte-compiler in custom mail handling code 2020-06-26 22:49:44 +02:00
Daniel - 7dbe2445ac
Remove obsolete cache playlist functionality
It has been replaced by a git-annex powered backend long ago.
2020-06-26 22:29:44 +02:00
Daniel - 8bb2d69fb3
Add missing requires for `db-music' 2020-06-26 22:28:15 +02:00
Daniel - 755fb23e2b
Replace `org-get-tags-at' by 'org-get-tags' 2020-06-26 22:17:25 +02:00
Daniel - 7c8b28c9bc
Move most `defcustom' declarations to `db-customize' 2020-06-26 22:07:39 +02:00
Daniel - b2709c0187
Add missing require for `db-org' 2020-06-26 22:07:14 +02:00
Daniel - 1cad9cc186
Remove obsolete `db/cmp-date-property' function 2020-06-26 22:00:18 +02:00
Daniel - 336ee9d7c4
Incorporate some suggestions from the byte compiler 2020-06-26 21:59:25 +02:00
Daniel - a404f9a8c2
Add missing `save-restriction' to template copy function 2020-05-24 16:46:24 +02:00
Daniel - fba18ca527
Add helper function to insert templates of periodic tasks
A periodic task is a task tagged with :PERIODIC:, and whose first child is an
item called "Template".  Following the template are the instances of the
periodic tasks, which constitute the actual things to do and which can be
scheduled independently of each other.  Whenever such an instance is due, the
template of the periodic task is supposed to be copied to the instance as a
first step.  This copying can be done manually, but of course doing it
automatically is easier.  The new function added in this commit represents a
first try to add such an automatism.
2020-05-23 16:25:13 +02:00
Daniel - 004ac490ef
Reintroduce helper functions to quickly switch between themes 2020-04-17 18:58:18 +02:00
Daniel - 7a78446a92
Make capitalization a bit more consistent 2020-04-17 18:50:01 +02:00
Daniel - bec4bc13a2
Add new PERIODIC tag for recurring tasks
As described in [1], we are sometimes representing recurring tasks as lists of
single tasks plus a recurring task to create new instances once in a while.  All
of this is grouped under a common headline, and those headlines should be marked
with PERIODIC to inhibit automatic clock-in.

[1]: https://karl-voit.at/2017/01/15/org-clone-subtree-with-time-shift/
2020-01-31 10:41:08 +01:00
Daniel - bea691cc9b
Move timeline minor mode activation to mode definition 2020-01-26 21:08:55 +01:00
Daniel - 8d9bdc39de
Transform timeline even when extracting it from the buffer
This reenables automatic gap filling in case it has been configure with
`timeline-tools-filter-functions', but somehow breaks undo of killing in the
timeline buffer.  The problem seems to be that undoing a kill only restores the
killed line, but not the original line entries of the lines right before and
after the lined that had been killed.  In this way, the timeline of the buffer
has overlapping entries, resulting in odd behavior.

The problem is not quite understood yet, but it seems to be that undo does not
notice the changes to the surrounding lines (maybe because they have not been
done by text editing functions).
2020-01-26 21:01:13 +01:00
Daniel - caea47fc5f
Add standard shortcut for redrawing a timeline buffer
I keep hitting "g" so often that it has to work to not confuse me any longer.
2020-01-26 20:55:10 +01:00
Daniel - cccaf5bf4b
Move up timeline functions for moving the cursor
They are more fundamental than other functions, and should thus be closer to the
top.
2020-01-26 20:54:34 +01:00
Daniel - 619e5bdcae
No longer store timeline of current buffer in separate variable
This does not play nicely with undo, because undo won't track changes to local
variables.  Thus, if we every want to have a working undo in timeline buffers,
the timeline needs to be saved as something textual.  Luckily, we already store
each entry of the timeline as a text property in the timeline table, and from
now on we will extract the timeline from there whenever we need it.

Undo is still not working fully yet, there are some oddities that need to be
addressed first.
2020-01-26 20:45:44 +01:00
Daniel - 85cfd25097
Delete feature to remove short entries
Haven't used it much anyway, and this will not work anymore when we no longer
explicitly store the current timeline of the buffer.
2020-01-26 20:40:36 +01:00
Daniel - be43c611d9
Introduce explicit force parameter for timeline reparsing 2020-01-26 20:16:57 +01:00
Daniel - 3f5ae63ea4
Reparse timeline when buffer-local variable is nil
This removes a lot of duplicate code.
2020-01-26 19:50:29 +01:00
Daniel - 3fc25e3cad
Require customizations in utilities package
The function may make use of some custom variables, and this way we make sure
they are there when needed.
2020-01-19 17:21:32 +01:00
Daniel - 38f7fd7c88
Move some more custom org mode link handlers to `db-org'
This is where they belong, nowhere else.
2020-01-19 17:21:14 +01:00
Daniel - c566908deb
Let the org mode RFC link handler cache its documents
RFC documents do not change over time.  The custom org mode link handler
`db/org-rfc-open' now makes use of this by downloading RFC documents to
`db/rfc-cache-path' (if defined) and opening the files locally.  If
`db/rfc-cache-path' is not defined, the RFC is opened in an external browser as
before.

This allows to keep a selection of used RFC documents locally on the filesystem
for future reference, without the need to retrieve them again from the IETF.

Since this is all org mode related, the handler now also resides in `db-org'
instead of `db-utils'.
2020-01-19 17:17:47 +01:00
Daniel - 31bde05efa
Add missing word in comment
Sorry, but need to have it there …
2020-01-18 10:25:40 +01:00
Daniel - 66eb5e3da4
Fix missing handling of optional NTP format string 2020-01-18 10:24:49 +01:00
Daniel - c86051ba22
Add obvious test for NTP conversion
This test could not have been added before, because conversion was not
guaranteed to work for dates before the unix epoch.  It now is, and we finally
can check the start of the NTP epoch! :)
2020-01-18 10:20:21 +01:00
Daniel - 010f3cec86
Reimplement NTP conversion using Calc
The previous implementation made use of `encode-time', which is not
guaranteed to work with times before the unix epoch.  Indeed, on at least one
Windows machine, the corresponding function `db/ntp-to-time' could not handle
such dates.  However, Calc can handle those independently of `encode-time',
and `db/ntp-to-time' has now been reimplemented in terms of the corresponding
Calc functions.

All (both) tests still pass.
2020-01-18 10:17:54 +01:00
Daniel - 158a232cfe
Move some personal customization variables to dedicated package 2020-01-11 12:35:53 +01:00
Daniel - f4b55ad777
Add tests for NTP time conversion 2020-01-11 10:13:30 +01:00
Daniel - 9ab5d55237
Remove visibility cycling from general clock mapping function
It's only necessary when editing the buffer, not when only traversing it.  Moved
it to the only function where this is actually done, and added a comment to the
docstring of `timeline-tools-map-clocklines' to remind everyone that editing the
buffer through this function may yield funny surprises :)
2020-01-10 18:12:50 +01:00
Daniel - e966edd950
Use `org-show-all' to, well, show all
Using `org-cycle' may result in hooks being run, depending on where point is.
This may cause undesired and highly surprising behavior.
2020-01-10 18:10:07 +01:00
Daniel - df2464ce5b
Check input of NTP conversion function 2020-01-09 21:35:23 +01:00
Daniel - 57107c0c75
Prettify docstring 2020-01-09 21:35:12 +01:00
Daniel - 52de03a8c0
Note simple test case for NTP conversion function 2020-01-09 21:34:55 +01:00
Daniel - 97e3b4da13
Fix computation of seconds in NTP conversion function 2020-01-09 21:34:38 +01:00
Daniel - c16500344c
Globally require `dash' 2020-01-09 21:02:23 +01:00
Daniel - b92d5e7819
Allow spaces in NTP time strings 2020-01-09 21:02:18 +01:00
Daniel - f44ed54318
Fix handling of dates before Unix epoch in NTP conversion 2020-01-09 20:58:01 +01:00
Daniel - d6690d27f9
Fix docstring of `db/ntp-to-time' 2020-01-09 20:57:13 +01:00
Daniel - a710238694
Use correct number of seconds between 1900-01-01 and the epoch 2020-01-09 20:56:50 +01:00
Daniel - 6f856c61b6
Properly declare ignored variable 2020-01-05 14:42:13 +01:00
Daniel - 95555dd7c1
Add missing require for timeline-tools 2020-01-05 14:32:38 +01:00
Daniel - 4b7e02ccd6
Trying to make test for `timeline-tools' independent of locale 2020-01-05 14:32:35 +01:00
Daniel - 243e579973
Check whether special org-mode files are included in agenda when displaying it 2020-01-05 13:36:37 +01:00
Daniel - ec83430a70
Remove `db-update-org-agenda-files'
It's not used anymore and won't ever work as intended.
2020-01-05 13:06:50 +01:00
Daniel - bbfea51fca
Fix check in `db/export-diary' for empty files
This is a result of changing the types of the special org files.  Now a typed
language would be great …
2020-01-05 12:36:56 +01:00
Daniel - 5627da7b42
Simplify output 2020-01-05 12:18:33 +01:00
Daniel - 541940d7dc
Fix glitch in custom setter for `org-agenda-file' 2020-01-05 12:17:37 +01:00
Daniel - e234912180
Inline `org-agenda-file-to-front'
This allows to use the value for the new file directly, instead of opening a
buffer for it.
2020-01-05 12:10:31 +01:00
Daniel - cf14629099
Remove obsolete debugging output 2020-01-05 11:57:43 +01:00
Daniel - bd65533b97
Update custom setter for special org agenda files
The setter will now complain if the file to be added to `org-agenda-files' does
not exist and is not readable.  It also now uses the proper functions from `org'
to update `org-agenda-files'.
2020-01-05 11:56:05 +01:00
Daniel - 9e0338e683
Dynamically create hydra from `db/frequently-used-features' 2019-12-20 16:12:11 +01:00
Daniel - a0abe9fc4e
Explicitly require `face-remap' before resizing fonts 2019-12-20 15:28:09 +01:00
Daniel - e63356ad06
Add descriptions to clocking hydra 2019-12-20 15:17:05 +01:00
Daniel - 4621ed98f0
Require `gnutls' when setting `gnutls-trustfiles' 2019-12-20 08:45:44 +01:00
Daniel - 485b7b84d3
[Utils] Using `dired-open-file' doesn't work for bookmarks
Pity!
2019-12-13 15:28:46 +01:00
Daniel - 6f375c301f
[Util] Add helper to add bookmarks to be opened by `dired-open-file' 2019-12-13 15:05:44 +01:00
Daniel - 2bc02703eb
[Org] Change title of all active frames when entering new task 2019-12-05 17:09:49 +01:00
Daniel - 2f3844856b
[eshell] Fix prompt coloring 2019-10-05 17:57:32 +02:00
Daniel - e6a5a8d9cd
[Helm] Move code of ‘db/helm-shortcuts’ directly to init.el
This makes ‘db-helm’ obsolete again (already after one commit!).  The function
to extract all files from ‘db/important-path’ has also been dropped in favor of
the standard ‘directory-files-recursively’.  It’s not clear yet whether this
will also work on Windows, though.
2019-08-31 12:02:02 +02:00
Daniel - bbad4b7fd4
[Helm] Move code for ‘db/helm-shortcuts’ to different file
This keeps ‘db-utils’ require-clean.
2019-08-31 11:39:04 +02:00
Daniel - 44e6818abb
[Org] Provide function to set frame title from current clock 2019-08-31 11:26:04 +02:00
Daniel - 43ece81b2d
[Utils] Improve definitions of custom helm sources
Instead of giving a list, we now create the sources directly.  This gives us the
possibility to configure certain aspects of the sources like matching behavior
and highlighting.  Now we are much closer to the standard behavior of helm than
before.
2019-08-30 19:47:25 +02:00
Daniel - 777494635e
[Org] Make function to mark default task non-anonymous 2019-08-22 20:38:00 +02:00
Daniel - 76999d9136
[Timeline] Add text properties to all fields
Actually, we add the text properties ‘marker’ and ‘entry’ to the whole line, but
the alinging of the table somehow removes the text properties between two
columns.  It is kept in the fields, though, and that is enough.
2019-07-13 20:16:04 +02:00
Daniel - af244b853b
[Timeline] Don’t look from behind when killing rows
Somehow sometimes columns get added at the end, and then the old implementation
did not work correctly.
2019-07-13 19:38:26 +02:00
Daniel - 952e6f1c95
[Music] Add simple function to play files from git-annex-find call 2019-06-10 16:27:28 +02:00
Daniel - b6414e118d
[Music] Move cache update function to better place in db-music.el 2019-06-10 16:26:58 +02:00
Daniel - 9e075d6e0c
[Music] Introduce ‘db/play-auto-playlist’
This is the main entry point to play automatically generated playlists (“auto
playlists”).  It is using the value of ‘db/auto-playlist-file-function’ to
generate a list of files to play.  This list if currently played using EMMS, via
‘db/-emms-playlist-from-files’.
2019-06-10 14:11:52 +02:00
Daniel - bc41e3c5be
[EMMS] Simplify call to automatic playlist generation 2019-06-10 11:38:32 +02:00
Daniel - 96162d3eaf
[EMMS] Require emms before showing track status 2019-06-10 11:35:43 +02:00
Daniel - c309cf7917
[Music] Move customizable variables into db-music.el 2019-06-10 11:33:35 +02:00
Daniel - 402bfc7643
[Music] Check return value of call to git-annex-find 2019-06-10 09:45:24 +02:00
Daniel - 29d138f968
[Music] Simplify call to git-annex-find
And also make it more secure, because no shell is involved anymore.
2019-06-10 09:39:54 +02:00
Daniel - f8c71d96e9
[Music] Check that list of files is not empty before changing EMMS playlist 2019-06-10 09:39:54 +02:00
Daniel - 7cd6d399a4
[Music] Fix name of playlist function from git-annex-find 2019-06-10 09:39:53 +02:00
Daniel - bd29ca9c02
[Music] Simplify implementation of ‘db/play-playlist-from-cache’
Use ‘db/-emms-playlist-from-files’ instead of generating the playlist on our
own.
2019-06-10 09:39:53 +02:00
Daniel - 68d7605deb
[Music] Add playlist function based on git-annex match expressions 2019-06-10 09:39:53 +02:00
Daniel - 9b48edd77f
[Music] Allow for customizing automatic playlist function 2019-06-10 09:39:52 +02:00
Daniel - ff06cddaba
[Music] Move shortcut to play automatic playlists to EMMS hydra
This is the right place.
2019-06-10 09:39:52 +02:00
Daniel - 2b13606f9b
[EMMS] Display performer even when no artist is given 2019-06-10 09:39:50 +02:00
Daniel - 076fc384db
[EMMS] Include album in track description if available 2019-06-09 09:24:12 +02:00
Daniel - 57198f1e1a
[Utils] Fix directory name for ‘db/dired-from-shell-command’
Sometimes the string "Output of ‘…’" seems to be interpreted as directory name,
and then dired complains about it not being existent.  It is not completely
understood yet when this will happen, and an easy workaround seems to be to
stick to a fixed string that works.  This is what’s used now.
2019-06-08 13:27:14 +02:00
Daniel - 0e3ad47943
[Utils] Command to display dired buffer of custom file list 2019-06-08 13:05:17 +02:00
Daniel - f2115f5587
[Org] A custom link type for RFCs 2019-05-31 21:38:05 +02:00
Daniel - 63b2e34be4
[Org] Add link types for Outlook and OneNote 2019-05-31 21:28:44 +02:00
Daniel - 5b5bf87976
[Utils] Small helper function to open CSV files as Org mode tables 2019-05-05 15:54:16 +02:00
Daniel - 2ce73e0a52
[Mail] Only show SMTP trace buffer when available 2019-04-28 10:59:06 +02:00
Daniel - 0e9f5cc5f7
[Mail] Add accessor functions for ‘db/mail-accounts’ 2019-04-24 15:03:19 +02:00
Daniel - 20e14a345b
[Hydra] Remove hydra for changing ispell dictionaries
Use standard ‘ispell-change-dictionary’ instead (it’s more generic and should
also work on Windows)
2019-04-11 09:03:37 +02:00
Daniel - 0a68df7b49
[Timeline] Fix obsolete calls to ‘timeline-tools-entry-category’ 2019-03-29 18:46:18 +01:00
Daniel - 207fb331ff
[Timeline] Allow to customize category when formatting timelines 2019-03-29 17:41:30 +01:00
Daniel - 90445b6c3d
[Music] Cosmetics
That’s important!
2019-03-02 15:33:55 +01:00
Daniel - f671a44939
[Music] Make updating playlists keep tracks outside of source directory 2019-03-02 15:29:46 +01:00
Daniel - ed285c87d2
[Music] Minor changes and cosmetics 2019-03-02 15:18:19 +01:00
Daniel - 037f0cfbee
[Music] A simple helper function to update ‘db/playlist’ 2019-03-02 14:36:40 +01:00
Daniel - f2c0847ffa
[Music] Move require to top 2019-03-02 14:36:34 +01:00
Daniel - 888e703448
[Music] Introduce ‘db/music’ and move code there
All music related functions that do not directly depend on EMMS will now go into
‘db/music’, with the intention that if we in the future replace EMMS with
something else, the API provided by ‘db/music’ will still be valid.  This does
not mean, however, that functions in ‘db/music’ may not use functions from EMMS.
2019-03-02 13:37:05 +01:00
Daniel - 4128bcd249
[Mail] Set some related variables directly via ‘db/mail-accounts’ 2019-03-02 11:33:21 +01:00