Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dmitrym0/org-hyperscheduler
org-hyperscheduler is an Emacs package that helps you organize your day.
https://github.com/dmitrym0/org-hyperscheduler
emacs emacs-lisp emacs-package org-mode org-roam productivity scheduling
Last synced: 3 months ago
JSON representation
org-hyperscheduler is an Emacs package that helps you organize your day.
- Host: GitHub
- URL: https://github.com/dmitrym0/org-hyperscheduler
- Owner: dmitrym0
- License: gpl-3.0
- Created: 2022-01-26T16:55:39.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-04-19T23:18:21.000Z (over 1 year ago)
- Last Synced: 2024-04-29T22:26:24.560Z (7 months ago)
- Topics: emacs, emacs-lisp, emacs-package, org-mode, org-roam, productivity, scheduling
- Language: Emacs Lisp
- Homepage:
- Size: 1.17 MB
- Stars: 174
- Watchers: 2
- Forks: 14
- Open Issues: 10
-
Metadata Files:
- Readme: README.org
- License: LICENSE
Awesome Lists containing this project
README
[[https://app.circleci.com/pipelines/github/dmitrym0/org-hyperscheduler?branch=main&filter=all][https://img.shields.io/circleci/build/gh/dmitrym0/org-hyperscheduler.svg]] [[https://github.com/dmitrym0/org-hyperscheduler/releases][file:https://www.shields.io/github/v/release/dmitrym0/org-hyperscheduler.svg?display_name=tag]]
* org-hyperscheduler
** What is Hyperscheduling
#+begin_quote
Hyperscheduling is the idea of fully planning your day using a calendar. Every minute of the day is assigned to some task using a calendar.
#+end_quote** Table of Contents :TOC:
- [[#org-hyperscheduler][org-hyperscheduler]]
- [[#what-is-hyperscheduling][What is Hyperscheduling]]
- [[#what-does-org-hyperscheduler-do][What does org-hyperscheduler do?]]
- [[#planning-a-day][Planning A Day]]
- [[#screen-cast][Screen Cast]]
- [[#installation][Installation]]
- [[#configuration][Configuration]]
- [[#development][Development]]** What does org-hyperscheduler do?
org-hyperscheduler presents a web UI that allows agenda entries to be visualized and moved around easily.
Here's a typical agenda (~C-c a a~):
[[file:images/org-agenda.png]]
and here is how it's visualized in org-hyperscheduler:
[[file:images/org-hs-ui.png]]
- blue entries are coming from an external calendar (such as [[https://github.com/kidd/org-gcal.el][org-gcal]]).
- purple entries are part of standard org-agenda.The user is free to modify entries or move them around provided =org-hyperschedule-readonly-mode= is disabled.
** Planning A Day
When planning a day, it's easy to start with a list of tasks:
[[file:images/org-agenda-2.png]]
and then visualize them to ensure that capacity is available:
[[file:images/org-hs-ui-2.png]]
** Screen Cast
Real quick demo of what the package does:
[[https://www.youtube.com/watch?v=8vhhIYIS0zY][https://img.youtube.com/vi/8vhhIYIS0zY/0.jpg]]
** Installation
org-hyperschedule is *not* currently available in MELPA. Once the package matures, it will be added.
For now you can either download the source and install it manually or with ~use-package~ and [[https://github.com/raxod502/straight.el][straight.el]]:
#+begin_src elisp
(use-package org-hyperscheduler
:straight
( :repo "dmitrym0/org-hyperscheduler"
:host github
:type git
:files ("*")))
#+end_srcYou can also use quelpa and install with the snippet below:
#+BEGIN_SRC elisp
(package-install 'quelpa-use-package)
(require 'quelpa-use-package)(use-package org-hyperscheduler
:quelpa (org-hyperscheduler :fetcher github :repo "dmitrym0/org-hyperscheduler"))
#+END_SRCYou can then invoke ~M-x org-hyperscheduler-open~ to invoke the web view.
** Configuration
Use ~M-x customize-group org-hyperscheduler~ to configure this module.
*** Read only mode
org-hyperscheduler is able to update entries in Emacs when using the web UI. To suppor this functionality, org-hyperscheduler must create IDs for each scheduled entry. If you are not ok with org-hyperscheduler modifying your data, keep ~org-hyperscheduler-readonly-mode~ turned on. In this mode you can visualize your agenda, but cannot make any changes in web UI.
*** Hiding calendar entries from org-roam
org-roam treats all entries with an ~:ID:~ property as roam nodes. This is not what I wanted. org-roam excludes all entries with the G
See ~org-hyperscheduler-exclude-from-org-roam~ through ~M-x customize-group org-hyperscheduler~ or
~(setq org-hyperscheduler-exclude-from-org-roam t)~
**Note**: Read only mode must be disabled for this to take effect.
** Development
*** Running tests
1. Install [[https://github.com/cask/cask][cask]] (~brew install cask~).
2. Run ~cask~ to install dependencies.
3. Run ~cask exec buttercup -L .~*** See also
**** org-roam-uiorg-hyperscheduler was heavily inspired by [[https://github.com/org-roam/org-roam-ui][org-roam-ui]]. If you're using [[https://github.com/org-roam/org-roam-ui][org-roam]] it's worth adding org-roam-ui.
**** calfw
[[https://github.com/kiwanami/emacs-calfw][calfw]] is a (textmode) calendaring framwork for emacs. I found it somewhat late into the development of org-hyperscheduler. If I found it earlier, I may have skipepd developing this.