Files
Claude d754dd4ffc Update README to reflect new part-of-period granularity levels
The recent feature changes introduced part-of-period progression with new
granularity levels (part-of-month, part-of-season, part-of-year, year), but
the README still showed the old 9 levels including an incorrect "Week number"
entry. Updated to show all 11 levels with correct examples and added
configuration examples for the new granularity options.
2025-11-08 15:00:13 +00:00

179 lines
4.6 KiB
Org Mode

#+TITLE: fuzzy-clock.el
#+AUTHOR: Fuzzy Clock Contributors
* What is this?
Fuzzy Clock displays time in Emacs the way humans naturally think about it.
Instead of =14:32=, you see "Half past two".
Instead of obsessing over every minute, you see "Afternoon".
* Quick Start
#+begin_src emacs-lisp
;; Load and enable
(require 'fuzzy-clock)
(fuzzy-clock-mode 1)
#+end_src
Look at your mode-line. You should see something like "Three o'clock" or "Afternoon".
* Why?
Humans don't think in precise time. We think in approximations:
- "Let's meet around three"
- "I'll be there in half an hour"
- "See you this afternoon"
Fuzzy Clock eliminates the mental overhead of constantly converting =14:32= to "about half past two". It shows time the way you already think about it.
More importantly, it changes your relationship with time. When your mode-line says "Afternoon" instead of =14:32=, you stop obsessing over every passing minute.
* Fuzziness Levels
Fuzzy Clock supports 11 levels of fuzziness, from precise to very abstract:
| Level | Type | Example |
|-------+-------------------+---------------------------|
| 1 | Every 5 minutes | "Quarter past three" |
| 2 | Every 15 min | "Half past three" |
| 3 | Half hour | "Three o'clock" |
| 4 | Hour (default) | "Three o'clock" |
| 5 | Part of day | "Afternoon" |
| 6 | Day of week | "Tuesday" |
| 7 | Part of month | "Early October" |
| 8 | Month | "October" |
| 9 | Part of season | "Early Fall" |
| 10 | Part of year | "Early 2025" |
| 11 | Year | "2025" |
Choose your fuzziness level:
#+begin_src emacs-lisp
;; Maximum precision (still natural language)
(setq fuzzy-clock-fuzziness 'five-minutes)
;; Default: hour precision
(setq fuzzy-clock-fuzziness 'hour)
;; Deep focus: eliminate time anxiety
(setq fuzzy-clock-fuzziness 'part-of-day)
;; Weekly planning
(setq fuzzy-clock-fuzziness 'day-of-week)
;; Monthly view
(setq fuzzy-clock-fuzziness 'part-of-month)
;; Seasonal perspective
(setq fuzzy-clock-fuzziness 'part-of-season)
;; Long-term planning
(setq fuzzy-clock-fuzziness 'part-of-year)
#+end_src
* Configuration
Basic configuration:
#+begin_src emacs-lisp
(require 'fuzzy-clock)
;; Set fuzziness level (default: 'hour)
(setq fuzzy-clock-fuzziness 'hour)
;; Set update interval in seconds (default: 60)
(setq fuzzy-clock-update-interval 60)
;; Enable mode-line display
(fuzzy-clock-mode 1)
#+end_src
Recommended for deep focus:
#+begin_src emacs-lisp
(setq fuzzy-clock-fuzziness 'part-of-day)
(setq fuzzy-clock-update-interval 3600) ; Update once per hour
(fuzzy-clock-mode 1)
#+end_src
* Commands
| Command | Description |
|------------------------------+---------------------------------------|
| =M-x fuzzy-clock-mode= | Toggle fuzzy clock in mode-line |
| =M-x fuzzy-clock-show= | Show fuzzy time once in minibuffer |
| =M-x fuzzy-clock-display-buffer= | Show fuzzy time in dedicated buffer |
* Customization
Use Emacs' built-in customization interface:
#+begin_src emacs-lisp
M-x customize-group RET fuzzy-clock RET
#+end_src
Two variables:
- ~fuzzy-clock-fuzziness~ — Fuzziness level
- ~fuzzy-clock-update-interval~ — Update frequency in seconds
* Documentation
For comprehensive documentation including:
- The philosophy of fuzzy time
- Detailed explanation of each fuzziness level
- When to use each level
- Advanced configurations
- Complete API reference
See: [[file:doc/fuzzy-clock.org][doc/fuzzy-clock.org]]
The documentation follows Steve Losh's "teach-don't-tell" philosophy. It will teach you how to *think* about fuzzy time, not just how to configure it.
* Installation
** Manual Installation
1. Clone this repository or download ~fuzzy-clock.el~
2. Add to your ~load-path~:
#+begin_src emacs-lisp
(add-to-list 'load-path "/path/to/fuzzy-clock.el")
(require 'fuzzy-clock)
#+end_src
** Package Manager
Not yet published to MELPA. Manual installation required.
* Requirements
- Emacs 24.4 or later
- No external dependencies
* Testing
Tests use Buttercup via Eldev:
#+begin_src sh
# Run all tests
eldev test
#+end_src
* License
See LICENSE file.
* Inspiration
Inspired by the KDE fuzzy clock widget.
* Philosophy
This package embodies a simple idea: *software should adapt to humans, not the other way around*.
We evolved to think about time in approximate, contextual terms. Digital clocks force precision we don't need and can't use.
Fuzzy Clock lets you be human again.