wyrd(7)

๐Ÿ“ฆ
version 1.7.4 ยท 2 versions
, in debian trixie, nixos 26.05, nixpkgs unstable, ubuntu questing, ubuntu resolute, ubuntu stonking

๐Ÿ’– wyrd(7) โ€” a console calendar application ๐Ÿ’–

okay bestie, so this right here is wyrd(7), the user manual for the console calendar app. the whole vibe is ncurses-girlboss-meets-calendar-software. let's get into it ๐Ÿ’…


โœจ Name โœจ

wyrd โ€” the user manual for wyrd(1), an ncurses interface to remind(1). ๐Ÿ—“๏ธโœจ


๐ŸŒธ Synopsis ๐ŸŒธ

๐ŸŽ€ Wyrd User Manual ๐ŸŽ€

Paul J. Pelzl

"Because you're tired of waiting for your bloated calendar program to start up." ๐Ÿ’€ (real. so real.)

๐Ÿ“– Documentation ๐Ÿ“–

1. Introduction ๐Ÿฆ‹

Wyrd is a text-based front-end to Remind, a sophisticated calendar and alarm program. no cap, it's giving power-tool energy. Wyrd has two whole purposes, and honestly? both iconic:

  1. It displays reminders in a scrollable timetable view, which is perfect for visualizing your calendar at a glance. ๐Ÿ‘€
  2. It makes creating and editing reminders fast and easy. BUT โ€” and this is important, bestie โ€” Wyrd does not hide Remind's textfile programmability, because that is literally what makes Remind a truly powerful calendaring system. ๐Ÿซถ

Also Wyrd requires only a fraction of the resources that most calendar programs available today need. lowkey a legend for that. ๐Ÿ‘‘


2. Installation ๐Ÿ”ง

This section is all about how to install Wyrd by compiling from source. Wyrd has been packaged for a number of popular Linux/Unix variants, so you might be able to save yourself some time by installing from a package provided by your OS distribution. check there first, queen. ๐Ÿ’…

Wyrd is designed to be portable to most Unix-like operating systems, including GNU/Linux, *BSD, and Mac OS X. Before installing Wyrd, your system must have the following software installed:

  • OCaml >= 4.08
  • the ncurses library (and development headers)
  • OCaml Curses
  • Remind >= 4.0.0
  • GNU make
  • the Unix pager application, less

After installing the OCaml compiler, Wyrd may be compiled and installed through any of the following 3 methods:

2.1 Method 1: GNU make and OCaml findlib ๐Ÿงš

  1. Install the OCaml findlib package for your operating system: https://repology.org/project/findlib/related
  2. Install the OCaml curses package for your operating system: https://repology.org/project/ocaml:curses/versions
  3. Execute the following commands at the root of the source tree:
export PREFIX=/usr
make
make install
on the BSDs, GNU make is usually available under the name gmake instead of make. iykyk ๐Ÿš

2.2 Method 2: Dune ๐ŸŒˆ

  1. Install the Dune package for your operating system: https://repology.org/project/dune/versions
  2. Install the OCaml curses package for your operating system: https://repology.org/project/ocaml:curses/versions
  3. Execute the following commands at the root of the source tree:
export WYRD_SYSCONFDIR=/etc
dune build --release
dune install --prefix=/usr --sections=bin

2.3 Method 3: OPAM ๐Ÿ’œ

  1. Install the OPAM package for your operating system: https://opam.ocaml.org/doc/Install.html
  2. Execute the following commands at the root of the source tree:
opam init -c ocaml-system -n
opam install -y ./wyrd.opam
  1. Wyrd may then be started with this command:
opam exec wyrd

3. Quick Start โญ

This section describes how to use Wyrd in its default configuration. Once you've familiarized yourself with the basic operations as outlined in this section, you may wish to consult the Configuration File documentation to see how Wyrd can be configured to better fit your needs. customization era. ๐ŸŽ€


4. Overview ๐Ÿ‘‘

Before attempting to use Wyrd, learn how to use Remind. periodt. Wyrd makes no attempt to hide the details of Remind programming from the user. Aside from reading the Remind manpage, you may get some useful pointers by reading Mike Harris's article on 43 Folders, Dianne Skoll's writeup on Linux Journal, or the Remind Wiki.

You can launch Wyrd using the default reminder file by executing wyrd. If desired, a different reminder file (or reminder directory) may be selected by executing wyrd <filename>.

At the top of the window is a short (incomplete) list of keybindings. yes, incomplete, it's a vibe, not a syllabus. ๐Ÿ˜Œ

The left window displays a scrollable timetable view, with reminders highlighted in various colors. If the DURATION specifier is used for a reminder, the highlighted area is rendered with an appropriate size. Overlapping reminders are rendered using one of four different indentation levels so that all reminders are at least partially visible. If the current time is visible in this window, it is highlighted in red. ๐Ÿ”ฅ

The upper right window displays a month calendar, with the color of each day representing the number of reminders it contains. The colors range across shades of white to blue to magenta as the number of reminders increases. The selected date is highlighted in cyan; if the current date is visible, it is highlighted in red. ๐Ÿ”ด

The lower right window displays a list of the untimed reminders falling on the selected date.

The bottom window displays the full text of the MSG for the reminder or reminders that are currently selected.


5. Navigation ๐Ÿงญ

  • scroll up and down the schedule โ€” <up>, <down> or k, j
  • jump back or forward by a day โ€” <pageup>, <pagedown> or 4, 6 or <, > or H, L
  • jump back or forward by a week โ€” 8, 2 or [, ] or K, J
  • jump back or forward by a month โ€” {, }
  • jump to current date and time โ€” <home>
  • jump to the next reminder โ€” <tab>
  • switch between schedule and untimed reminders window โ€” <left>, <right> or h, l
  • zoom in on the schedule โ€” z
  • scroll the description window up and down โ€” d, D

Notice that if you have a numeric keypad, the {4, 6, 8, 2} keys will let you move directionally in the month calendar view at the upper-right of the screen. Similarly, {H, J, K, L} will cause directional calendar movement using the standard mapping from vi(1). vim girlies stay winning. ๐Ÿ’š

In addition to the hotkeys provided above, Wyrd lets you jump immediately to a desired date by pressing 'g', entering in a date specifier, and then pressing <return>. Any of the following date specifiers may be used:

  • 8 digits representing year, month, and day: YYYYMMDD
  • 4 digits representing month and day (of current year): MMDD
  • 2 digits representing day (of current month and year): DD
(the date specifier format may be changed to DDMMYYYY; consult the section on Configuration Variables.) ๐Ÿ—“๏ธ

6. Editing Reminders โœ๏ธ

Note: By default, Wyrd is configured to modify your reminder files using the text editor specified by the $EDITOR environment variable. (This configuration has been tested successfully with a number of common settings for $EDITOR, including 'vim', 'emacs', and 'nano'.) If you wish to use a different editor, see Configuration File.

If you select a timeslot in the schedule view, then hit 't', you will begin creating a new timed reminder. Wyrd will open up your reminder file in your favorite editor and move the cursor to the end of the file, where a new reminder template has been created. The template has the selected date and time filled in, so in many cases you will only need to fill in a MSG value. slay, minimal effort. โœจ

Similarly, hitting 'u' will begin creating an untimed reminder. 'w' will create a weekly timed reminder, and 'W' will create a weekly untimed reminder; 'm' will create a monthly timed reminder, and 'M' will create a monthly untimed reminder.

The keys 'T' and 'U' also create timed and untimed reminders (respectively), but first will provide a selection dialog for you to choose which reminder file you want to add this reminder to. The set of reminder files is determined by scanning the INCLUDE lines in your default reminder file. (If you use a reminder directory, then all *.rem files in that directory will be available along with all INCLUDEd files.)

If you select a reminder (either timed or untimed) and hit <return>, you will begin editing that reminder. Wyrd will open up the appropriate reminders file in your editor and move the cursor to the corresponding REM line. ๐ŸŽฏ

If you select a timeslot that contains multiple overlapping reminders, Wyrd will provide a dialog that allows you to select the desired reminder.

If you hit <enter> on a blank timeslot, Wyrd will begin creating a new timed or untimed reminder (depending on whether the timed or the untimed window is selected).

Finally, pressing 'e' will open the reminder file in your editor without attempting to select any particular reminder. sometimes you just wanna read, bestie. ๐Ÿ™ˆ


7. Quick Reminders โšก

Wyrd offers an additional mode for entering simple reminders quickly. Press 'q', and you will be prompted for an event description. Simply enter a description for the event using natural language, then press <return>. Examples:

  • meeting with Bob tomorrow at 11
  • drop off package at 3pm
  • Wednesday 10am-11:30 go grocery shopping
  • Board game night 20:15 next Fri
  • 7/4 independence day
  • 7/4/2007 independence day (next year)
  • independence day (next year) on 2007-07-04

If your event description can be understood, Wyrd will immediately create the reminder and scroll the display to its location. the way that just works ๐Ÿ˜ญ๐Ÿ’–

Currently the quick reminder mode tends to favor USA English conventions, as generalizing the natural language parser would require some work. ngl, it's a whole project.

Wyrd also allows you to use the "quick reminder" syntax to create new reminders from the command line, using the -a or --add options. For example,

wyrd --add "dinner with neighbors tomorrow at 7pm"

would create a new reminder for tomorrow evening. When used in this mode, Wyrd exits silently with error code 0 if the reminder was successfully created. If the reminder could not be created (e.g. if the reminder syntax could not be parsed), Wyrd prints an error message and exits with a nonzero error code. ๐Ÿšจ


8. Cutting and Pasting Reminders โœ‚๏ธ๐Ÿ“‹

Reminders can be easily duplicated or rescheduled through the use of Wyrd's cutting and pasting features. copy-paste girlies, this one's for you. ๐Ÿซถ

Selecting a reminder and pressing 'X' will cut that reminder: the corresponding REM line is deleted from your reminders file, and the reminder is copied to Wyrd's clipboard. To copy a reminder without deleting it, use 'y' instead.

To paste a reminder from the clipboard back into your schedule, just move the cursor to the desired date/time and press 'p'. Wyrd will append a new REM line to the end of your reminders file, and open the file with your editor. The REM line will be configured to trigger on the selected date. If the copied reminder was timed, then the pasted reminder will be set to trigger at the selected time using the original DURATION setting.

(Additional Remind settings such as delta and tdelta are not preserved by copy-and-paste.) ๐Ÿ’€

If you wanna paste a reminder into a file that is NOT your default reminders file, hit P. That pops up a lil selection dialog where you get to pick which file is gonna hold your brand new reminder. Choose wisely bestie ๐Ÿ’…

WARNING: cutting a reminder only deletes the single REM command that's responsible for triggering it. So if you're out here using more complicated Remind scripting techniques to generate a particular reminder, the cut operation might not do what you want. It's giving "I thought I deleted that" energy. ๐Ÿ˜ญ

๐Ÿ‘€ 9. Viewing Reminders

So obviously you can just watch reminders as they fall in the schedule like a little movie. But wait, there's more โœจ

  • Press r and you get all the reminders triggered on the selected date, opened up in a less(1) window.
  • Press R and it's all reminders triggered on or after the selected date (and fr, all non-expired reminders are triggered, so you're getting the whole picture).

Wanna zoom way out and get a more global view of your schedule? Wyrd will literally let you view Remind's formatted calendar output inside a less(1) window too, no cap:

  • c โ†’ a one-week calendar containing the selected date.
  • C โ†’ a one-month calendar containing the selected date.

๐Ÿ” 10. Searching for Reminders

Wyrd lets you search for reminders whose MSG values match a search string. Obsessed.

Hit / to start entering a case insensitive regular expression. Once you've typed it in, press <return> and Wyrd will locate the next reminder that matches the regexp. Then press n to repeat the same search again and again and again ๐Ÿ”

Changed your mind? Entry of a search string can be cancelled with <esc> or Ctrl-g. We love an escape hatch ๐Ÿซถ

The regular expression syntax is Emacs-compatible.

Note: sorry bestie, there is no "search backward" function. The search function requires the use of remind -n, which operates only forward in time. For the same reason, there's a command to jump forward to the next reminder, but no command to jump backward to the previous one. It's one-way only, like your ex's vibes ๐Ÿ’€

โŒจ๏ธ 11. Other Commands

  • Press ? to view a list of all keybindings. Every single one. The whole menu. ๐ŸŽ€
  • Press Q to exit Wyrd.
  • Screen looking corrupted for some reason? Not the vibe. Hit Ctrl-L to refresh the display. Fixed โœจ

๐Ÿšจ 12. Alarm Strategies

So you might wanna generate some sort of alarm when a reminder is triggered. Wyrd does not offer any special alarm functionality, because Remind can already handle the job โ€” it ate and left no crumbs. Check the Remind manpage and consider how the -k option could be used to generate alarms with the aid of external programs.

For example, this command will generate a popup window using gxmessage(1) whenever a timed reminder is triggered:

remind -z -k'gxmessage -title "reminder" %s &' ~/.reminders &

(A sensible way to start this alarm command is to place it in ~/.xinitrc so that it launches when the X server is started. Set it and forget it ๐Ÿ’…)

Want some advance warning (say, 15 minutes)? You can cause Remind to trigger early by setting a tdelta in the AT clause:

REM Nov 27 2005 AT 14:30 +15 MSG Do something

Alternatively, if you only want to generate alarms for specific reminders, consider using Remind's RUN command. This process could be easily automated by using the templateN configuration variables described in Configuration File. Slay ๐Ÿฆ‹


๐Ÿงš 13. Miscellaneous

Remind's TAG specifier may be used to cause Wyrd to give special treatment to certain reminders. Iconic behaviour tbh.

  • If a reminder line includes the clause TAG noweight, then Wyrd will not give that reminder any weight when determining the "busy level" colorations applied to the month calendar.
  • If a reminder line includes the clause TAG nodisplay, then Wyrd will neither display that reminder nor give it any weight when determining the month calendar colorations.

The tag parameters are case insensitive ๐Ÿ’œ

WARNING: these tag parameters are not guaranteed to interact well with other Remind front-ends such as tkremind. Proceed with caution, bestie ๐Ÿ˜ญ

๐ŸŒธ 14. Usage Tips

Wyrd fills in sensible defaults for the fields of a REM statement, but you will inevitably need to make some small edits to achieve the behavior you want. It's giving "close but not quite."

If you use Vim, you can make your life easier by installing the Vim-LaTeX Suite and then modifying your ~/.wyrdrc to use REM templates like this (without the line break indicated by backslash):

set timed_template="REM %monname% %mday% %year% <++>AT %hour%:%min%<++> \
   DURATION 1:00<++> MSG %\"<++>%\" %b"
set untimed_template="REM %monname% %mday% %year% <++>MSG %\"<++>%\" %b"

With this change, hitting Ctrl-J inside Vim (in insert mode) will cause your cursor to jump directly to the <++> markers, enabling you to quickly add any desired Remind delta and message parameters. Main character efficiency energy ๐Ÿ‘‘

There is a page on Wyrd in the Remind Wiki. This is a good place to look for other usage tips. Go check it out fr fr ๐Ÿซถ


๐Ÿ“œ 15. Licensing

SPDX-License-Identifier: GPL-2.0-only

Wyrd is Free Software; you can redistribute it and/or modify it under the terms of the GNU General Public License (GPL), Version 2, as published by the Free Software Foundation. You should have received a copy of the GPL along with this program, in the file COPYING. Legal but make it cute ๐Ÿ’–


๐Ÿ’– 16. Acknowledgments

Thanks, of course, to Dianne Skoll for writing such a powerful reminder system. An absolute legend, no notes. ๐Ÿ‘‘

Thanks also to Nicolas George, who wrote the OCaml curses bindings used within Wyrd. We stan ๐Ÿซถ


๐ŸŒˆ 17. Contact info

Wyrd website: https://gitlab.com/wyrd-calendar/wyrd


๐ŸŒ™ 18. Miscellaneous

"Wyrd is a concept in ancient Anglo-saxon and Nordic cultures roughly corresponding to fate or personal destiny." -- Wikipedia

Fate but make it a terminal app ๐Ÿ”ฎโœจ


๐Ÿ‘ฏ See Also

wyrd(1), wyrdrc(5), remind(1)


โœ๏ธ Author

This manpage is written by Paul J. Pelzl <pelzlpj@gmail.com>.


And that's the whole page bestie!! This one came from the Odoc docs, for wyrd(7) โ€” go forth and never miss a reminder again ๐Ÿ’…๐ŸŽ€โœจ

๐Ÿ“ฆ where this page comes from