diary.1.html (24486B)
1 <!DOCTYPE html> 2 <html> 3 <!-- This is an automatically generated file. Do not edit. 4 Generated by scdoc 1.11.3 5 Complete documentation for this program is not available as a GNU info page 6 --> 7 <head> 8 <meta charset="utf-8"/> 9 <meta name="viewport" content="width=device-width, initial-scale=1.0"/> 10 <link rel="stylesheet" href="style.css" type="text/css" media="all"/> 11 <title>DIARY(1)</title> 12 </head> 13 <body> 14 <table class="head"> 15 <tr> 16 <td class="head-ltitle">DIARY(1)</td> 17 <td class="head-vol">General Commands Manual</td> 18 <td class="head-rtitle">DIARY(1)</td> 19 </tr> 20 </table> 21 <div class="manual-text"> 22 <section class="Sh"> 23 <h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1> 24 <p class="Pp">diary - text-based journaling program</p> 25 </section> 26 <section class="Sh"> 27 <h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1> 28 <p class="Pp"><b>diary</b> [OPTION]... [DIARY_DIR]...</p> 29 </section> 30 <section class="Sh"> 31 <h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1> 32 <p class="Pp">Open the <b>diary</b> journal for entries stored in 33 <b>DIARY_DIR</b>.</p> 34 <p class="Pp"><b>DIARY_DIR</b> is required, if not set as environment variable 35 or defined in the <b>CONFIGURATION FILE</b>.</p> 36 </section> 37 <section class="Sh"> 38 <h1 class="Sh" id="OPTIONS"><a class="permalink" href="#OPTIONS">OPTIONS</a></h1> 39 <p class="Pp"><b>-v, --version</b></p> 40 <p class="Pp"></p> 41 <div class="Bd-indent">Print diary version</div> 42 <p class="Pp"><b>-h, --help</b></p> 43 <p class="Pp"></p> 44 <div class="Bd-indent">Show diary help text</div> 45 <p class="Pp"><b>-d, --dir</b>=DIARY_DIR</p> 46 <p class="Pp"></p> 47 <div class="Bd-indent">Directory with the journal text files</div> 48 <p class="Pp"><b>-e, --editor</b>=EDITOR</p> 49 <p class="Pp"></p> 50 <div class="Bd-indent">Text editor used for opening the journal files</div> 51 <p class="Pp"><b>-f, --fmt</b>=FMT</p> 52 <p class="Pp"></p> 53 <div class="Bd-indent">FMT is a custom date and file format. Change with care, 54 because the diary reads and writes to files with file name FMT. The new FMT is 55 only applied to newly saved entries. Existing entries with the old FMT are not 56 automatically migrated to the new FMT and do not show up with a new FMT 57 specifier. Consequently, a change in FMT shows an empty diary at first. Rename 58 all files in the <b>DIARY_DIR</b> to migrate to a new FMT.</div> 59 <p class="Pp"><b>-F, --fmt-cmd</b>=FMT_CMD</p> 60 <p class="Pp"></p> 61 <div class="Bd-indent">Journal entries are formatted with this command. If not 62 set (default), the characters are printed to the preview screen character by 63 character (without word wrap). For example, to enable word wrap after 75 64 characters, use "fmt -s" as FMT_CMD. To format markdown, use 65 "mdcat -c" or similar, see <b>CUSTOM FORMATTING</b>.</div> 66 <p class="Pp"><b>-p, --no-pty</b></p> 67 <p class="Pp"></p> 68 <div class="Bd-indent">No pseudo terminal (pty) for entry preview. Only 69 effective in combination with <b>--fmt-cmd</b>. If set, the output of 70 <b>--fmt-cmd</b> is displayed with Ncurses. If not set (default), the result 71 of <b>--fmt-cmd</b> (journal entry preview) is printed on a pseudo-terminal 72 (pty) and not processed with Ncurses. The pty supports the ANSI escape 73 sequences (e.g. colors, font types, etc.) of the native terminal.</div> 74 <p class="Pp"><b>-m, --no-mouse</b></p> 75 <p class="Pp"></p> 76 <div class="Bd-indent">Disable mouse, don't listen for mouse events. Mouse 77 events are enabled by default. Without <b>--no-mouse</b> flag (default), 78 native text selection and right-click in the preview window requires holding 79 down the SHIFT key, see <b>MOUSE EVENTS</b>.</div> 80 <p class="Pp"><b>-r, --range</b>=RANGE</p> 81 <p class="Pp"></p> 82 <div class="Bd-indent">The number of years to show before/after today. Defaults 83 to 1 year.</div> 84 <p class="Pp"><b>-w, --weekday</b>=DAY</p> 85 <p class="Pp"></p> 86 <div class="Bd-indent">First day of the week. DAY is an integer in range (0..6), 87 interpreted as 0 or 7 = Sun, 1 = Mon, ..., 6 = Sat. If glibc is installed, the 88 first day of the week is derived from the current locale setting ($LANG, see 89 man locale). Without glibc, the first weekday defaults to 1 (Monday), unless 90 specified otherwise with this option.</div> 91 </section> 92 <section class="Sh"> 93 <h1 class="Sh" id="NAVIGATION"><a class="permalink" href="#NAVIGATION">NAVIGATION</a></h1> 94 <p class="Pp">Navigation is done using the following vim-inspired keyboard 95 shortcuts:</p> 96 <p class="Pp"></p> 97 <table class="tbl" border="1" style="border-style: solid;"> 98 <tr> 99 <td><b>Key(s)</b></td> 100 <td>Action</td> 101 </tr> 102 <tr> 103 <td><b>e, Enter</b></td> 104 <td>edit current entry</td> 105 </tr> 106 <tr> 107 <td><b>d, x</b></td> 108 <td>delete current entry</td> 109 </tr> 110 <tr> 111 <td><b>t</b></td> 112 <td>jump to today</td> 113 </tr> 114 <tr> 115 <td><b>f</b></td> 116 <td>jump to or find specific day</td> 117 </tr> 118 <tr> 119 <td><b>j, down</b></td> 120 <td>go forward by 1 week</td> 121 </tr> 122 <tr> 123 <td><b>k, up</b></td> 124 <td>go backward by 1 week</td> 125 </tr> 126 <tr> 127 <td><b>h, left</b></td> 128 <td>go left by 1 day</td> 129 </tr> 130 <tr> 131 <td><b>l, right</b></td> 132 <td>go right by 1 day</td> 133 </tr> 134 <tr> 135 <td><b>J</b></td> 136 <td>go forward by 1 month</td> 137 </tr> 138 <tr> 139 <td><b>K</b></td> 140 <td>go backward by 1 month</td> 141 </tr> 142 <tr> 143 <td><b>N</b></td> 144 <td>go to the previous journal entry</td> 145 </tr> 146 <tr> 147 <td><b>n</b></td> 148 <td>go to the next journal entry</td> 149 </tr> 150 <tr> 151 <td><b>g</b></td> 152 <td>go to start of journal</td> 153 </tr> 154 <tr> 155 <td><b>G</b></td> 156 <td>go to end of journal</td> 157 </tr> 158 <tr> 159 <td><b>s, S</b></td> 160 <td>sync selected day/Month with CalDAV server</td> 161 </tr> 162 <tr> 163 <td><b>i</b></td> 164 <td>import entries from .ics file</td> 165 </tr> 166 <tr> 167 <td><b>E</b></td> 168 <td>export entries to .ics file</td> 169 </tr> 170 <tr> 171 <td><b>q</b></td> 172 <td>quit the program</td> 173 </tr> 174 </table> 175 <p class="Pp"></p> 176 </section> 177 <section class="Sh"> 178 <h1 class="Sh" id="ENVIRONMENT"><a class="permalink" href="#ENVIRONMENT">ENVIRONMENT</a></h1> 179 <p class="Pp"><b>DIARY_DIR</b></p> 180 <div class="Bd-indent">If this variable is set to a directory that can be 181 opened, diary will use it to store diary files. Diary files are simple text 182 files named after their date, formatted according to <b>FMT</b> (see 183 <b>--fmt</b> option). The format defaults to "%Y-%m-%d", which is 184 "YYYY-MM-DD" (see man strftime). All other files different from FMT 185 are ignored.</div> 186 <p class="Pp"><b>EDITOR</b></p> 187 <div class="Bd-indent">The program used to edit journal entries inside 188 <b>DIARY_DIR</b>.</div> 189 <p class="Pp"><b>LANG</b></p> 190 <div class="Bd-indent">The default locale used to display the first day of the 191 week, see <b>--weekday</b> option.</div> 192 </section> 193 <section class="Sh"> 194 <h1 class="Sh" id="ARGUMENTS"><a class="permalink" href="#ARGUMENTS">ARGUMENTS</a></h1> 195 <p class="Pp">If the argument <b>DIARY_DIR</b> is given, diary files are read 196 from and stored to that directory, ignoring the $DIARY_DIR environment 197 variable, any <b>--dir</b> option or the <b>dir</b> value set in the 198 <b>CONFIGURATION FILE</b>.</p> 199 </section> 200 <section class="Sh"> 201 <h1 class="Sh" id="FILES"><a class="permalink" href="#FILES">FILES</a></h1> 202 <p class="Pp">${PREFIX:-/usr/local/bin}/<b>diary</b></p> 203 <div class="Bd-indent">The diary binary</div> 204 <p class="Pp">${XDG_CONFIG_HOME:-~/.config}/diary/<b>diary.cfg</b></p> 205 <div class="Bd-indent">An optional diary <b>CONFIGURATION FILE</b></div> 206 </section> 207 <section class="Sh"> 208 <h1 class="Sh" id="CONFIGURATION_FILE"><a class="permalink" href="#CONFIGURATION_FILE">CONFIGURATION 209 FILE</a></h1> 210 <p class="Pp">The <b>diary.cfg</b> configuration file can optionally be used to 211 persist diary configuration. Use the "#" or ";" 212 characters to comment lines.</p> 213 <p class="Pp">Create default configuration location:</p> 214 <p class="Pp"></p> 215 <div class="Bd-indent"> 216 <pre>mkdir -p ${XDG_CONFIG_HOME:-~/.config}/diary</pre> 217 </div> 218 <p class="Pp">Install an example configuration file with defaults:</p> 219 <p class="Pp"></p> 220 <div class="Bd-indent"> 221 <pre>tee ${XDG_CONFIG_HOME:-~/.config}/diary/diary.cfg <<EOF 222 # https://code.in0rdr.ch/diary/file/config/diary.cfg.html 223 # Path that holds the journal text files 224 #dir = ~/diary 225 # Number of years to show before/after todays date 226 range = 1 227 # 0 = Sunday, 1 = Monday, ..., 6 = Saturday 228 weekday = 1 229 # Date and file format, change with care 230 fmt = %Y-%m-%d 231 # Text format command for entry preview 232 fmt_cmd = 233 # Use pseudo terminal (pty) to view result of fmt_cmd 234 #no_pty = false 235 # Listen for mouse events 236 #no_mouse = false 237 # Editor to open journal files with 238 editor = 239 # CalDAV server URI 240 #caldav_server = 241 # Calendar name for CalDAV sync 242 #caldav_calendar = 243 # CalDAV server username 244 #caldav_username = 245 # CalDAV server password 246 #caldav_password = 247 # OAuth command to fetch access token. For example, "oama access" 248 #oauth_eval_cmd = 249 EOF</pre> 250 </div> 251 <p class="Pp">To copy the sample file from the source repository:</p> 252 <p class="Pp"></p> 253 <div class="Bd-indent"> 254 <pre>cp config/diary.cfg ${XDG_CONFIG_HOME:-~/.config}/diary/</pre> 255 </div> 256 <p class="Pp">The file "${XDG_CONFIG_HOME:-~/.config}/diary/diary.cfg" 257 should adhere to a basic "key = value" format. The value is read 258 until the end of the line '\n'. Lines can be commented with the special 259 characters "#"or ";".</p> 260 <p class="Pp">The following configuration keys are currently supported:</p> 261 <p class="Pp"></p> 262 <table class="tbl" border="1" style="border-style: solid;"> 263 <tr> 264 <td><b>Command Line Option</b></td> 265 <td><b>Config Key</b></td> 266 <td><b>Example Config Value</b></td> 267 <td><b>Default Config Value</b></td> 268 <td><b>Description</b></td> 269 </tr> 270 <tr> 271 <td>"--dir", "-d", or first non-option argument</td> 272 <td>dir</td> 273 <td>~/diary</td> 274 <td>n/a</td> 275 <td>Diary directory. Path that holds the journal text files. If unset, 276 defaults to environment variable "$DIARY_DIR".</td> 277 </tr> 278 <tr> 279 <td>"--editor" or "-e"</td> 280 <td>editor</td> 281 <td>vim </td> 282 <td>(empty) </td> 283 <td>Editor to open journal files with. If unset, defaults to environment 284 variable "$EDITOR". If no editor is provided, the diary is 285 opened read-only.</td> 286 </tr> 287 <tr> 288 <td>"--fmt" or "-f"</td> 289 <td>fmt</td> 290 <td>%d_%b_%y</td> 291 <td>%Y-%m-%d</td> 292 <td>Date format and file name for the files inside the "dir". For 293 the format specifiers, see "man strftime". Be careful: If you 294 change this, you might no longer find your existing diary entries, because 295 the diary assumes to find the journal files under another file name. 296 Hence, a change in FMT shows an empty diary, at first. Rename all files in 297 the DIARY_DIR to migrate to a new FMT.</td> 298 </tr> 299 <tr> 300 <td>"--fmt-cmd" or "-F"</td> 301 <td>fmt_cmd</td> 302 <td>"fmt -w75 -s", "mdcat -c" or "mdcat"</td> 303 <td>(empty)</td> 304 <td>Journal entries are formatted with this command. If not set (default), 305 the characters are printed to the preview screen character by character 306 (without word wrap). For example, to enable word wrap after 75 characters, 307 use "fmt -s" as FMT_CMD. See also [Custom 308 Formatting](#Custom-Formatting).</td> 309 </tr> 310 <tr> 311 <td>"--no-pty" or "-p"</td> 312 <td>no_pty</td> 313 <td>"true"</td> 314 <td>false (or 0)</td> 315 <td>No pseudo terminal (pty) for entry preview. Only effective in 316 combination with "--fmt-cmd". If set to true (or 1), the output 317 of "--fmt-cmd" is displayed with Ncurses. If set to false (or 318 0), the result of "--fmt-cmd" (journal entry preview) is printed 319 on a pseudo-terminal (pty) and not processed with Ncurses. The pty 320 supports the ANSI escape sequences (e.g. colors, font types, etc.) of the 321 native terminal.</td> 322 </tr> 323 <tr> 324 <td>"--no-mouse" or "-m"</td> 325 <td>no_mouse</td> 326 <td>"true"</td> 327 <td>false (or 0)</td> 328 <td>Don't listen for <b>MOUSE EVENTS</b>. With no_mouse=0 (default), native 329 text selection and right-click in the preview window requires holding down 330 the "SHIFT" key.</td> 331 </tr> 332 <tr> 333 <td>"--range" or "-r"</td> 334 <td>range</td> 335 <td>10</td> 336 <td>1</td> 337 <td>Number of years to show before/after todays date</td> 338 </tr> 339 <tr> 340 <td>"--weekday" or "-w"</td> 341 <td>weekday</td> 342 <td>0</td> 343 <td>1</td> 344 <td>First weekday, "7" = Sunday, "1" = Monday, ..., 345 "6" = Saturday. Use "7" (or "0") to display 346 week beginning at Sunday ("S-M-T-W-T-F-S"), or "1" for 347 "M-T-W-T-F-S-S". If "glibc" is installed, the first 348 day of the week is derived from the current locale setting 349 ("$LANG", see "man locale"). Without 350 "glibc", the first weekday defaults to 1 (Monday), unless 351 specified otherwise with this option.</td> 352 </tr> 353 <tr> 354 <td>n/a</td> 355 <td>caldav_server</td> 356 <td>Google calendar 357 "https://apidata.googleusercontent.com/caldav/v2", Yahoo 358 calendar "https://caldav.calendar.yahoo.com", GMX 359 "https://caldav.gmx.net" or other CalDAV compatible 360 provider.</td> 361 <td>(empty)</td> 362 <td>CalDAV server for <b>CALDAV SYNC</b> (required).</td> 363 </tr> 364 <tr> 365 <td>n/a</td> 366 <td>caldav_calendar</td> 367 <td>diary </td> 368 <td>(empty)</td> 369 <td>Calendar name for <b>CALDAV SYNC</b> (required).</td> 370 </tr> 371 <tr> 372 <td>n/a</td> 373 <td>caldav_username</td> 374 <td></td> 375 <td>(empty)</td> 376 <td>CalDAV server username for <b>CALDAV SYNC</b> (optional).</td> 377 </tr> 378 <tr> 379 <td>n/a</td> 380 <td>caldav_password</td> 381 <td></td> 382 <td>(empty)</td> 383 <td>CalDAV server password for <b>CALDAV SYNC</b> (optional).</td> 384 </tr> 385 <tr> 386 <td>n/a</td> 387 <td>oauth_eval_cmd</td> 388 <td>"oama access <email>" or "pass"</td> 389 <td>(empty)</td> 390 <td>OAuth command to fetch access token for <b>CALDAV SYNC</b> 391 (optional).</td> 392 </tr> 393 </table> 394 <p class="Pp"></p> 395 </section> 396 <section class="Sh"> 397 <h1 class="Sh" id="CUSTOM_FORMATTING"><a class="permalink" href="#CUSTOM_FORMATTING">CUSTOM 398 FORMATTING</a></h1> 399 <p class="Pp">The preview of the journal entries can be processed with a custom 400 <b>--fmt-cmd</b>. The result of this formatting command is printed to a 401 pseudo-terminal (pty) by default. This behavior can be changed with the 402 <b>--no-pty</b> flag. The output processed on the pty (without Ncurses) 403 includes all ANSI escape characters supported by the terminal (colors, font 404 types, etc.). Thus, formatters like "fmt", or any "cat like 405 program" ("mdcat" to process Markdown) can be plugged in for 406 <b>--fmt-cmd</b>.</p> 407 </section> 408 <section class="Sh"> 409 <h1 class="Sh" id="MOUSE_EVENTS"><a class="permalink" href="#MOUSE_EVENTS">MOUSE 410 EVENTS</a></h1> 411 <p class="Pp">Mouse events are listened for by default (<b>no_mouse</b>=false 412 configuration). This behavior can be disabled with the <b>--no-mouse</b> 413 flag or in the <b>CONFIGURATION</b> <b>FILE</b> (<b>no_mouse</b>=true). With 414 <b>no_mouse</b>=false (default), use the SHIFT key for native text selection 415 and right-click in the preview window.</p> 416 </section> 417 <section class="Sh"> 418 <h1 class="Sh" id="IMPORT"><a class="permalink" href="#IMPORT">IMPORT</a></h1> 419 <p class="Pp">The import functionality can be triggered by pressing <b>i</b> and 420 expects a path to an ics file. Files in the <b>DIARY_DIR</b> are overwritten 421 with the entries from the imported ics file.</p> 422 </section> 423 <section class="Sh"> 424 <h1 class="Sh" id="EXPORT"><a class="permalink" href="#EXPORT">EXPORT</a></h1> 425 <p class="Pp">The export functionality can be triggered by pressing <b>E</b> and 426 asks for a file path to an ics file for storing the journal entries. The ics 427 file will be created if it does not exist. Existing ics files are 428 overwritten.</p> 429 </section> 430 <section class="Sh"> 431 <h1 class="Sh" id="CALDAV_SYNC"><a class="permalink" href="#CALDAV_SYNC">CALDAV 432 SYNC</a></h1> 433 <p class="Pp">The journal files can be synced via CalDAV by pressing <b>s</b>. 434 Pressing <b>S</b> syncs all journal entries of the active month.</p> 435 <p class="Pp">The most recently modified entry is considered up to date and is 436 automatically replaced on the remote side. If the remote file is more 437 recent, the local file can be replaced with the remote content after 438 confirmation.</p> 439 <p class="Pp">No sync is performed, when both files (local/remote) have the same 440 modification timestamp or no files exists on the server and on disk at all 441 (i.e., no entry for that date).</p> 442 <p class="Pp">The diary creates a full-day calendar entry. It's advised to use a 443 separate calendar for syncing purposes and not to have multiple events for a 444 day on the remote calendar. The diary only considers the first event of a 445 given day.</p> 446 <p class="Pp">The calender for synchronization can be defined with the 447 configuration key "caldav_calendar". This key is empty by default. 448 It is required to configure at least following parameters in the 449 <b>CONFIGURATION FILE</b>:</p> 450 <p class="Pp"></p> 451 <ul class="Bl-bullet"> 452 <li>caldav_server: Calendar server API</li> 453 <li>caldav_calendar: Calendar name for CalDAV sync</li> 454 </ul> 455 <p class="Pp">In addition, it is required to specifiy either 456 "caldav_username" and "caldav_password" for basicauth 457 (takes precedence) OR the "oauth_eval_cmd" to retreive an OAuth 458 access token from a password manager or tool that prints the token to 459 stdout. Leave username/password empty if you intend to use OAuth 460 ("oauth_eval_cmd").</p> 461 <p class="Pp">Read GOOGLE CALENDAR OAUTH2 to setup authorization with the Google 462 server. Other CalDAV servers and APIs that are secured with OAuth2 might 463 work as well (untested).</p> 464 <p class="Pp">Use the EXPORT/IMPORT functionality for more batch oriented 465 processing. Making a network request and deciding the most recently modified 466 entry (local/remote) takes quite some time for large batches.</p> 467 </section> 468 <section class="Sh"> 469 <h1 class="Sh" id="GOOGLE_CALENDAR_OAUTH2"><a class="permalink" href="#GOOGLE_CALENDAR_OAUTH2">GOOGLE 470 CALENDAR OAUTH2</a></h1> 471 <p class="Pp">To synchronize with the Google calendar, it is required to setup a 472 project in the cloud console and enable the CalDAV API (not the Google 473 Calendar API):</p> 474 <p class="Pp">https://console.cloud.google.com/apis/api/caldav.googleapis.com</p> 475 <p class="Pp">The Google Calendar CalDAV API is protected with OAuth2:</p> 476 <p class="Pp">https://developers.google.com/identity/protocols/oauth2</p> 477 <p class="Pp">The "application", the "consent screen" and 478 the "credentials" (client id and secret) need to be defined in the 479 Google cloud console. Client id and secret should be stored in an utility 480 application that can fetch and refresh the OAuth access token (e.g., 481 "oama"). The command to access the access token 482 ("oauth_eval_cmd") should be configured in the <b>CONFIGURATION 483 FILE</b>.</p> 484 <p class="Pp">The application requires two OAuth2 scopes 485 (https://developers.google.com/calendar/api/auth) for CalDAV requests:</p> 486 <p class="Pp"></p> 487 <ul class="Bl-bullet"> 488 <li>"https://www.googleapis.com/auth/calendar": read/share access to 489 Calendars, required to discover the unique hyperlink/URI for the calendar 490 specified by config key "caldav_calendar"</li> 491 <li>"https://www.googleapis.com/auth/calendar.events": read/write 492 access to Events owned by the user, allows diary to 493 create/read/update/delete events in "caldav_calendar"</li> 494 </ul> 495 <p class="Pp">The user is asked for consent during the first CALDAV SYNC.</p> 496 </section> 497 <section class="Sh"> 498 <h1 class="Sh" id="PRECEDENCE_RULES"><a class="permalink" href="#PRECEDENCE_RULES">PRECEDENCE 499 RULES</a></h1> 500 <p class="Pp">The default variables, for instance, for the configuration 501 variables "editor", "dir" and "weekday", are 502 populated with values in the following order, where earlier entries are 503 overwritten by subsequent ones if they exist:</p> 504 <p class="Pp"></p> 505 <table class="tbl" border="1" style="border-style: solid;"> 506 <tr> 507 <td></td> 508 <td><b>Description</b></td> 509 </tr> 510 <tr> 511 <td>1</td> 512 <td>No default for <b>DIARY_DIR</b>. Defaults for "range", 513 "weekday", "fmt" and "editor" are provided 514 in "diary.h". If <b>EDITOR</b> is unset and no editor is 515 provided in the <b>CONFIGURATION FILE</b> or <b>--editor</b> option, the 516 diary works read-only. Journal files cannot be opened. If <b>DIARY_DIR</b> 517 is not provided, the diary won't open.</td> 518 </tr> 519 <tr> 520 <td>2</td> 521 <td><b>CONFIGURATION FILE</b> (empty default for "editor", no 522 default for "dir")</td> 523 </tr> 524 <tr> 525 <td>3</td> 526 <td>Environment variables $DIARY_DIR, $EDITOR and $LANG for locale 527 ("weekday")</td> 528 </tr> 529 <tr> 530 <td>4</td> 531 <td>Option arguments, see section <b>OPTIONS</b></td> 532 </tr> 533 <tr> 534 <td>5</td> 535 <td>First non-option argument is interpreted as <b>DIARY_DIR</b></td> 536 </tr> 537 </table> 538 <p class="Pp"></p> 539 </section> 540 <section class="Sh"> 541 <h1 class="Sh" id="PRECEDENCE_EXAMPLE:_LOCALE_AND_FIRST_DAY_OF_WEEK"><a class="permalink" href="#PRECEDENCE_EXAMPLE:_LOCALE_AND_FIRST_DAY_OF_WEEK">PRECEDENCE 542 EXAMPLE: LOCALE AND FIRST DAY OF WEEK</a></h1> 543 <p class="Pp">If glibc is installed, the first weekday defaults to the locale 544 defined in the current shell environment ($LANG, see man locale), unless 545 specified otherwise with the <b>--weekday</b> option.</p> 546 <p class="Pp">Start with weekday=3(Wed), overrule any other configuration 547 value:</p> 548 <div class="Bd-indent"> 549 <pre>diary -w3</pre> 550 </div> 551 <p class="Pp">Start with glibc derived weekday=1, regardless of weekday in 552 config file:</p> 553 <div class="Bd-indent"> 554 <pre>LANG=de_CH diary</pre> 555 </div> 556 <p class="Pp">If glibc is installed, start with glibc derived base date 557 (weekday=0):</p> 558 <div class="Bd-indent"> 559 <pre>LANG= diary</pre> 560 </div> 561 <p class="Pp">Disable environment variable, default to value from config 562 file:</p> 563 <div class="Bd-indent"> 564 <pre>unset LANG</pre> 565 </div> 566 <p class="Pp">Start with weekday default from config file, if available:</p> 567 <div class="Bd-indent"> 568 <pre>diary</pre> 569 </div> 570 <p class="Pp">Remove config file:</p> 571 <div class="Bd-indent"> 572 <pre>rm ${XDG_CONFIG_HOME:-~/.config}/diary/diary.cfg</pre> 573 </div> 574 <p class="Pp">Start with weekday default value from source code (1=Mon):</p> 575 <div class="Bd-indent"> 576 <pre>diary</pre> 577 </div> 578 </section> 579 <section class="Sh"> 580 <h1 class="Sh" id="DEVELOPMENT_AND_SUPPORT"><a class="permalink" href="#DEVELOPMENT_AND_SUPPORT">DEVELOPMENT 581 AND SUPPORT</a></h1> 582 <p class="Pp">Contributions are always welcome! All source code is available at 583 https://code.in0rdr.ch/diary.</p> 584 <p class="Pp">For question and support visit 585 https://web.libera.chat/gamja/#p0c.</p> 586 </section> 587 <section class="Sh"> 588 <h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1> 589 <ul class="Bl-bullet"> 590 <li>Andreas Gruhler</li> 591 <li>Matthias Beyer</li> 592 <li>Johnathan Jenkins</li> 593 <li>Yu-Jie Lin</li> 594 <li>Balduin Dettling</li> 595 <li>Avindra Goolcharan</li> 596 <li>Oliver Blanthorn</li> 597 <li>Jonny Burger</li> 598 </ul> 599 </section> 600 <section class="Sh"> 601 <h1 class="Sh" id="LICENSE"><a class="permalink" href="#LICENSE">LICENSE</a></h1> 602 <p class="Pp">MIT License, https://code.in0rdr.ch/diary/file/LICENSE.html</p> 603 </section> 604 </div> 605 <table class="foot"> 606 <tr> 607 <td class="foot-date">2024-09-14</td> 608 <td class="foot-os"></td> 609 </tr> 610 </table> 611 </body> 612 </html>