Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ml729/calfw-blocks
Visual enhancements for the Emacs Calendar Framework (calfw)
https://github.com/ml729/calfw-blocks
calendar emacs
Last synced: 3 months ago
JSON representation
Visual enhancements for the Emacs Calendar Framework (calfw)
- Host: GitHub
- URL: https://github.com/ml729/calfw-blocks
- Owner: ml729
- License: gpl-3.0
- Created: 2022-08-28T07:19:58.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2023-10-05T18:14:43.000Z (about 1 year ago)
- Last Synced: 2024-02-17T07:35:06.819Z (9 months ago)
- Topics: calendar, emacs
- Language: Emacs Lisp
- Homepage:
- Size: 1020 KB
- Stars: 36
- Watchers: 2
- Forks: 4
- Open Issues: 4
-
Metadata Files:
- Readme: README.org
- License: LICENSE.md
Awesome Lists containing this project
README
* calfw-blocks.el
Visual time blocks and more for the [[https://github.com/kiwanami/emacs-calfw][Emacs Calendar Framework (calfw)]].
* Screenshot
Weekly block view:
[[screenshot.png]]Transposed two week view:
[[screenshot-transpose.png]]* Installation
** Manual Installation
Clone this git repo (e.g. to `~/.emacs.d/site-lisp/')
#+begin_src
cd ~/.emacs.d
mkdir site-lisp
cd site-lisp
git clone https://github.com/ml729/calfw-blocks
#+end_srcAnd add its path to `'load-path':
#+begin_src emacs lisp
(add-to-list 'load-path "~/.emacs.d/site-lisp/calfw-blocks")
#+end_srcMake sure this package is loaded after calfw.
* Usage
This package comes with the following ~calfw~ views that display time blocks:
#+begin_src
'block-day
'block-week
'block-2-day
'block-3-day
'block-4-day
'block-5-day
#+end_src
The ~block-week~ view always starts on Sunday.
The ~block-day~ and ~block--day~ views always start on the current day. The top right button labelled ~Week~ uses ~block-week~.The package also includes two-column transposed versions of the original calfw views (credit to @novoid for the [[https://github.com/kiwanami/emacs-calfw/issues/22][design]]), where days of the week are displayed vertically rather than horizontally:
#+begin_src
'transpose-8-day
'transpose-10-day
'transpose-12-day
'transpose-14-day
'transpose-two-weeks
#+end_src
The ~transpose--day~ views always start on the current day, and ~transpose-two-weeks~ always starts on the most recent Sunday. The top right buttons labelled ~W^T~ and ~2W^T~ use ~transpose-8-day~ and ~transpose-14-day~, respectively.You can use these to define functions that directly open calfw with these views.
Examples:
#+begin_src emacs lisp
;; Calendar showing org-agenda entries
(defun my-open-calendar-agenda ()
(interactive)
(cfw:open-calendar-buffer
:contents-sources
(list
(cfw:org-create-source "medium purple"))
:view 'block-week));; Calendar showing org entries from files
(defun my-open-calendar-files ()
(interactive)
(cfw:open-calendar-buffer
:contents-sources
(list
(cfw:org-create-file-source "Todos" "~/stuff/todos.org" "green")
(cfw:org-create-file-source "Events" "~/stuff/events.org" "blue"))
:view 'block-3-day))
#+end_src* Customization
Notable customization options:
- ~calfw-blocks-earliest-visible-time~: what time of day the calendar starts at.
- ~calfw-blocks-show-time-grid~: shows a time grid if non-nil.
- ~calfw-blocks-default-event-length~: the length in hours of events with a start time but no end time; used to determine the size of the rendered block.
- ~calfw-blocks-lines-per-hour~: how many lines each hour gets.
- ~calfw-blocks-min-block-width~: the smallest width a block can be in characters (includes divider character). If there are too many concurrent events, some events are hidden so that all blocks are at least `calfw-blocks-min-block-width' characters wide.* Known Issues
Does not currently handle multiday events with times on both the start and end dates, such as:
#+begin_example
SCHEDULED: <2023-07-06 Thu 19:00>--<2023-07-07 Fri 5:00>
#+end_example* License
GNU General Public License v3.0 (GPLv3)