wyrdrc(5)

πŸ“¦
version 1.7.4 Β· 3 versions
, in debian trixie, nixos 26.05, nixpkgs unstable, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ¦‹ wyrdrc β€” the Wyrd configuration file πŸ¦‹

okay bestie, so this is wyrdrc(5) β€” the config textfile for the wyrd(1) console calendar app. yes it's a whole manpage. no it's not scary. let's go πŸ’…


✨ NAME ✨

wyrdrc β€” the configuration textfile for the wyrd(1) console calendar application. that's it, that's the name, iconic πŸŽ€


🌸 SYNOPSIS 🌸

Wyrd Configuration File

Wyrd reads a run-configuration textfile (generally /etc/wyrdrc or /usr/local/etc/wyrdrc) to figure out your key bindings, your color schemes, and like… a ton of other settings. 🫢

You can make your own personalized config file at $HOME/.wyrdrc and pick settings that match how you actually use it. The recommended procedure (fr, do this) is to "include" the wyrdrc file that ships with Wyrd (see the Including Other Rcfiles section below), then add or remove settings as you please. ✨


πŸ“– DOCUMENTATION πŸ“–

πŸ“ 1 wyrdrc Syntax πŸ“

so you might notice the wyrdrc syntax is giving very much the same energy as the config file for the Mutt email client (muttrc). iykyk. πŸ‘‘

Inside the wyrdrc file, strings should be wrapped in double quotes ("). A double quote character inside a string may be represented by \". And the backslash character itself must be represented by doubling it (\\). yes really. double it. 🫠

🧚 2 Including Other Rcfiles 🧚

Syntax:

include filename_string

This lets you include one run-configuration file inside another. The classic move is loading the default wyrdrc file (probably found in /etc/wyrdrc or /usr/local/etc/wyrdrc) inside your own personalized rcfile, ~/.wyrdrc. πŸ’–

The filename string should be enclosed in quotes. periodt.

🌈 3 Setting Configuration Variables 🌈

Syntax:

set variable=value_string

A bunch of configuration variables can be set this way β€” go check the Configuration Variables description for the full list. The variables themselves are unquoted, but the values should be quoted strings. ⭐

πŸ’œ 4 Creating Key Bindings πŸ’œ

Syntax:

bind key_identifier operation

This command binds a keypress to execute a calendar operation. The various operations β€” which should not be wrapped in quotes β€” live in the section on Calendar Operations.

Key identifiers may be specified by strings that represent a single keypress, for example "m" (quotes included, bestie, yes you need them). The key may be prefixed with \\C or \\M to mean Control or Meta (Alt) modifiers respectively β€” and heads up, the backslash has to be doubled there. 🫠

Some special keys don't have single-character representations, so you can use these strings instead:

  • "<esc>"
  • "<tab>"
  • "<enter>"
  • "<return>"
  • "<insert>"
  • "<home>"
  • "<end>"
  • "<pageup>"
  • "<pagedown>"
  • "<space>"
  • "<left>"
  • "<right>"
  • "<up>"
  • "<down>"
  • "<f1>" to "<f12>"

Now, because terminal emulators are all messy little divas and refuse to agree with each other πŸ™ˆ, this key identifier syntax might not be enough to describe every single keypress. As a workaround, Wyrd will also accept key identifiers in octal notation. For example, you could use \024 (do not enclose it in quotes) to represent Ctrl-T. ✨

Multiple keys may be bound to the same operation if you want. slay. πŸ”₯

πŸŽ€ 5 Removing Key Bindings πŸŽ€

Syntax:

unbind key_identifier

This removes all bindings associated with that key identifier. The key identifiers should be defined using the syntax from the previous section. bye bye binding πŸ‘‹

πŸ’… 6 Setting the Color Scheme πŸ’…

Syntax:

color object foreground background

This applies the specified foreground and background colors to the appropriate object. A list of colorable objects is provided in the section on Colorable Objects.

Wyrd recognizes these color keywords: black, red, green, yellow, blue, magenta, cyan, white, default. The default keyword lets you choose the default foreground or background colors. And if you use default for your background color, that accesses the transparent background on terminal emulators that support it. so pretty. πŸ¦‹

πŸ‘‘ 7 Configuration Variables πŸ‘‘

The following configuration variables may be set as described in the Setting Configuration Variables section:

  • remind_command β€” determines the command used to execute Remind.
  • reminders_file β€” controls which Remind file (or Remind directory) Wyrd will operate on. The default is ~/.reminders .
  • edit_old_command β€” controls the command used to edit a pre-existing reminder. The special strings '%file%' and '%line%' will be replaced with a filename to edit and a line number to navigate to within that file.
  • edit_new_command β€” controls the command used to edit a new reminder. The special character '%file%' will be replaced with a filename to edit. Ideally, this command should move the cursor to the last line of the file, where the new reminder template is created.
  • edit_any_command β€” controls the command used for editing a reminder file without selecting any particular reminder. The special character '%file%' will be replaced with a filename to edit.
  • pager_command β€” controls the command used for viewing keybindings (?), calendar, and reminders {c, C, r, R}. Set this to "less -c" if you want less(1) to repaint the screen by clearing it instead of scrolling.
  • default_zoom β€” controls the default zoom level that Wyrd starts up with. This setting accepts an integer value of:
    • 0 for Hourly time increments
    • 1 for Half-Hourly time increments
    • 2 for Quarter-Hourly time increments.

Any integer other than these 3 is invalid and will cause an error. 🚨

  • timed_template β€” controls the format of the REM line created when editing a new timed reminder. The following string substitutions will be made:
    • '%monname%' - month name
    • '%mon%' - month number (1-12)
    • '%0mon%' - month number (01-12)
    • '%mday%' - day of the month (1-31)
    • '%0mday%' - day of the month (01-31)
    • '%year%' - year
    • '%hour%' - hour
    • '%min%' - minute
    • '%wdayname%' - weekday name
    • '%wday%' - weekday number.
  • untimed_template β€” controls the format of the REM line created when editing a new untimed reminder. The substitution syntax is the same as for timed_template.
  • templateN β€” controls the format of a generic user-defined REM line template; N may range from 0 to 9. The substitution syntax is the same as for timed_template.
  • busy_algorithm β€” an integer value specifying which algorithm to use for measuring how busy the user is on a particular day. If busy_algorithm="1", then Wyrd will simply count the total number of reminders triggered on that day. If busy_algorithm="2", then Wyrd will count the number of hours of reminders that fall on that day. (Untimed reminders are assumed to occupy untimed_duration minutes.)
  • untimed_duration β€” an integer value that specifies the assumed duration of an untimed reminder, in minutes. This is used only when computing the busy level with busy_algorithm="2".
  • busy_level1 β€” an integer value specifying the maximum number of reminders in a day (with busy_algorithm="1") or maximum hours of reminders in a day (with busy_algorithm="2") which will be colored using the color scheme for calendar_level1.
  • busy_level2 β€” same as above, using the calendar_level2 color scheme.
  • busy_level3 β€” same as above, using the calendar_level2 color scheme rendered in bold.
  • busy_level4 β€” same as above, using the calendar_level3 color scheme. Any day with more reminders than this will be rendered using the calendar_level3 color scheme rendered in bold.
  • week_starts_monday β€” a boolean value ("true" or "false") that determines the first day of the week.
  • schedule_12_hour β€” a boolean value that determines whether the timed reminders window is drawn using 12- or 24-hour time.
  • selection_12_hour β€” a boolean value that determines whether the selection information is drawn with 12- or 24-hour time.
  • status_12_hour β€” a boolean value that determines whether the current time is drawn using a 12- or 24-hour clock.
  • description_12_hour β€” a boolean value that determines whether reminder start and end times are drawn using 12- or 24-hour time in the description window. This value also controls the format of timestamps in the formatted calendars produced by view_week and view_month.
  • center_cursor β€” a boolean value that determines how the screen and cursor move during scrolling operations. When set to "true", the cursor is fixed in the center of the timed reminders window, and the schedule scrolls around it. When set to "false" (the default), the cursor will move up and down the schedule during scrolling operations.
  • goto_big_endian β€” a boolean value that determines how the goto operation will parse dates. When set to "true", date specifiers should be in ISO 8601 (YYYYMMDD) format. When set to "false", date specifiers should be in European style DDMMYYYY format.
  • quick_date_US β€” a boolean value that determines how the quick_add operation will parse numeric dates with slashes, e.g. 6/1 (or 6/1/2006). When set to "true", the first number is a month and the second is the day of the month (June 1). When set to "false", these meanings of these two fields are switched (January 6).
  • number_weeks β€” a boolean value that determines whether or not weeks should be numbered within the month calendar window. Weeks are numbered according to the ISO 8601 standard. The ISO standard week begins on Monday, so to avoid confusion it is recommended that week_starts_monday be set to "true" when week numbering is enabled.
  • home_sticky β€” a boolean value that determines whether or not the cursor should "stick" to the "home" position. When this option is set to "true", then after pressing the <home> key the cursor will automatically follow the current date and time. The effect is cancelled by pressing any of the navigation keys.
  • advance_warning β€” a boolean value that determines whether or not Wyrd should display advance warning of reminders. When set to "true", Wyrd will invoke Remind in a mode that generates advance warning of reminders as specified in the reminder file.
  • untimed_window_width β€” an integer value that determines the target width of the month-calendar window and the untimed reminders window. The allowable range is 34 to ($COLUMNS - 40) characters, and Wyrd will silently disregard any setting outside this range. πŸ™ˆ
  • untimed_bold β€” a boolean value that determines whether or not Wyrd should render untimed reminders using a bold font.
  • reminder_colors β€” Render reminders in color (auto/true/false) needs ccc support in termcap: tput ccc && echo supported auto will fallback to default colors.
For maximum usefulness, busy_level1 < busy_level2 < busy_level3 < busy_level4. πŸ’–

⭐ 8 Calendar Operations ⭐

Every Wyrd operation can be made available to the interface using the syntax described in the section on Creating Key Bindings. ✨

The following is a list of every available operation.

  • scroll_up β€” nudge the cursor up by one element ⬆️
  • scroll_down β€” nudge the cursor down by one element ⬇️
  • next_day β€” yeet yourself one day into the future
  • previous_day β€” rewind one day back
  • next_week β€” skip ahead a whole week
  • previous_week β€” hop back a whole week
  • next_month β€” zoom ahead one month
  • previous_month β€” rewind one month
  • home β€” snap straight back to the current date and time 🏠
  • goto β€” start typing a date specifier so you can jump to it
  • zoom β€” zoom in on the day schedule view (heads up: this one is cyclic πŸ”)
  • edit β€” edit whichever reminder is selected
  • edit_any β€” edit a reminder file without having to pick a specific reminder first
  • scroll_description_up β€” scroll the description window contents up (when possible)
  • scroll_description_down β€” scroll the description window contents down (when possible)
  • quick_add β€” add a "quick reminder" ⚑
  • new_timed β€” make a brand new timed reminder
  • new_timed_dialog β€” same as the one above, but with a reminder file selection dialog
  • new_untimed β€” make a brand new untimed reminder
  • new_untimed_dialog β€” same as the one above, but with a reminder file selection dialog
  • new_templateN β€” make a new user-defined reminder using templateN, where N may range from 0 to 9
  • new_templateN_dialog β€” same as the one above, but with a reminder file selection dialog
  • copy β€” copy a reminder onto Wyrd's clipboard πŸ“‹
  • cut β€” delete a reminder and drop it onto Wyrd's clipboard βœ‚οΈ
  • paste β€” paste a reminder from Wyrd's clipboard into the schedule
  • paste_dialog β€” same as the one above, but with a reminder file selection dialog
  • switch_window β€” flip between the day schedule window on the left and the untimed reminder window on the right ↔️
  • begin_search β€” start typing a search string
  • search_next β€” find the next occurrence of the search string
  • next_reminder β€” jump to the next reminder (the next_reminder operation locates reminders at the point they occur; if advance_warning is enabled, next_reminder will skip over any displayed warnings of an event)
  • view_remind β€” view the output of remind for the selected date
  • view_remind_all β€” view the output of remind for the selected date, triggering all non-expired reminders
  • view_week β€” view Remind's formatted calendar for the week that contains the selected date (the in-calendar timestamp formats are determined by the value of description_12_hour)
  • view_month β€” view Remind's formatted calendar for the month that contains the selected date (the in-calendar timestamp formats are determined by the value of description_12_hour)
  • refresh β€” refresh the display πŸ”„
  • quit β€” exit Wyrd πŸ‘‹
  • entry_complete β€” signal that you're done entering a search string or date specifier
  • entry_backspace β€” delete the last character of the search string or date specifier
  • entry_cancel β€” cancel entry of a search string or date specifier

🎨 9 Colorable Objects 🎨

Every single on-screen element of Wyrd can be colored with whatever color scheme you want, using the syntax defined over in the section on Setting the Color Scheme. So yes, you can absolutely make it match your aesthetic πŸ’…

Here's the full list of everything that's colorable:

  • help β€” the help bar chilling at the top of the screen
  • timed_default β€” an empty timeslot in the day-schedule window
  • timed_current β€” the current time in the day-schedule window (if it's visible)
  • timed_reminder1 β€” a nonempty timeslot in the day-schedule window, indented to level 1
  • timed_reminder2 β€” a nonempty timeslot in the day-schedule window, indented to level 2
  • timed_reminder3 β€” a nonempty timeslot in the day-schedule window, indented to level 3
  • timed_reminder4 β€” a nonempty timeslot in the day-schedule window, indented to level 4
  • untimed_reminder β€” an entry in the untimed reminders window
  • timed_date β€” the vertical date strip running down the left side of the screen
  • selection_info β€” the line showing the date/time for whatever you currently have selected
  • description β€” the reminder description window
  • status β€” the bottom bar serving up the current date and time
  • calendar_labels β€” the month and weekday labels in the calendar window
  • calendar_level1 β€” calendar days with low activity
  • calendar_level2 β€” calendar days with medium activity
  • calendar_level3 β€” calendar days with high activity
  • calendar_today β€” the current day in the calendar window (if it's visible)
  • left_divider β€” the vertical line to the left of the timed reminders window
  • right_divider β€” the vertical and horizontal lines to the right of the timed reminders window

🌈 See Also

wyrd(1), wyrd(7), remind(1)

✍️ Author

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


and that's the whole vibe check, bestie 🫢 this page is served up courtesy of Odoc and it's page wyrdrc(5) β€” go forth and color-code your calendar, you iconic main character πŸ’–βœ¨

πŸ“¦ where this page comes from