kickingvegas / casual-agenda

Casual Agenda is an opinionated Transient-based user interface for Emacs Org Agenda.
GNU General Public License v3.0
23 stars 1 forks source link

[[https://melpa.org/#/casual-agenda][file:https://melpa.org/packages/casual-agenda-badge.svg]]

[[file:docs/images/casual-agenda-screenshot.png]]

** Goals

** Non-Goals

Casual Agenda has been verified with the following configuration.

If you use ~use-package~, here is the recipe for installing it.

+begin_src elisp :lexical no

(use-package casual-agenda :ensure nil :bind (:map org-agenda-mode-map ("C-o" . casual-agenda-tmenu)) :after (org-agenda))

+end_src

** A Note on Package Dependencies Casual Agenda requires a recent installation of both Org ([[https://elpa.gnu.org/packages/org.html][9.7.1+ from GNU ELPA]]) and Transient (0.6.0+ from either [[https://melpa.org/#/transient][MELPA]] or [[https://elpa.gnu.org/packages/transient.html][ELPA]]). As both these packages are built-in, the package manager ~package.el~ will /not/ update either of these packages unless the customizable variable ~package-install-upgrade-built-in~ is set to ~t~. If your setup does not have the latest Transient update, you will see the following error when trying to run ~casual-agenda-tmenu~:

+begin_src elisp :lexical no

Loading casual-agenda.el casual-agenda.el:Error: Emacs 29.4: (invalid-slot-name "#" :refresh-suffixes)

+end_src

Again, set the variable ~package-install-upgrade-built-in~ to ~t~ to upgrade both Org and Transient. Alternately, invoke ~package-install~ with a prefix argument which will override the default setting of ~package-install-upgrade-built-in~ and upgrade a built-in package. (example: ~C-u M-x package-install~ ~casual-agenda~)

As Transient is closely tied to Magit, installing the latest version of Magit (via [[https://elpa.nongnu.org/nongnu/magit.html][non-GNU ELPA]] or [[https://melpa.org/#/magit][MELPA]]) can also pick up the latest version of Transient.

** Configuration Use these bindings to configure Org Agenda to be consistent with bindings used by Casual Agenda. This is optional.

+begin_src elisp :lexical no

; bindings to make jumping consistent between Org Agenda and Casual Agenda (keymap-set org-agenda-mode-map "M-j" #'org-agenda-clock-goto) ; optional (keymap-set org-agenda-mode-map "J" #'bookmark-jump) ; optional

+end_src

If you use ~use-package~, modify your configuration as follows:

+begin_src elisp :lexical no

(use-package casual-agenda :ensure nil :bind (:map org-agenda-mode-map ("C-o" . casual-agenda-tmenu) ("M-j" . org-agenda-clock-goto) ; optional ("J" . bookmark-jump))) ; optional

+end_src

The main menu is divided into five sections:

** Unicode Symbol Support By enabling “(u) Use Unicode Symbols” from the Settings menu, Casual Agenda will use Unicode symbols as appropriate in its menus.

[[file:docs/images/casual-agenda-unicode-screenshot.png]]

** Operating on Headlines

Use the /Operations/ menu to alter attributes about it such as TODO state, scheduling, tags, and priority. To use it, move the point to the line of a heading you wish to change and from the main menu select "(o) Operations". The following menu will be displayed.

[[file:docs/images/casual-agenda-operations-screenshot.png]]

** Marking Headlines

User the /Mark/ menu to mark different headlines and perform a bulk action on them. From the main menu, select "(m) Mark" to display the following menu:

[[file:docs/images/casual-agenda-mark-screenshot.png]]

** Changing Modes and Settings

Agenda views have different display modes and behavior that can be modified from the /Settings/ menu. From the main menu, select "(,) Settings" to display the following menu:

[[file:docs/images/casual-agenda-settings-screenshot.png]]

** Almanac Get sunrise/sunset times, lunar cycle dates, and holidays with respect to a date via the /Almanac/ menu. From the main menu, select "(l) Almanac" to display the following menu.

[[file:docs/images/casual-agenda-almanac-screenshot.png]]

Each menu item has a /key/ and a /label/. The /key/ is what is typed by the user to select the menu item. A key can be prefixed with a meta (M-) or control (C-) key.

Dismissing a menu regardless of how deep you are in sub-menus can be done by entering ~C-q~. A menu can also be dismissed by entering ~C-g~, which will return you to the previous menu.

If a mouse is available, a menu item can be selected by moving the mouse cursor over its label and pressing down button 1.

Pressing the ~?~ key will toggle help for all the menu items. Press the key of interest to get help for it.

Menu items can also take a prefix argument if supported. Enter ~C-u~ and optionally a value before selecting a menu item.

[[https://www.buymeacoffee.com/kickingvegas][file:docs/images/default-yellow.png]]

To get all current and future Casual user interfaces, please install [[https://github.com/kickingvegas/casual-suite][Casual Suite]] from [[https://melpa.org/#/casual-suite][MELPA]].

User Interfaces currently supported by Casual are listed below:

Users who prefer finer grained control over package installation can install each user interface above individually.