~mlaparie/remint

A simple terminal UI wrapper for D. Skoll's Remind calendar program
Fix git toplevel folder in push function; git log and git pull could maybe simplified in the same way push now works, without using multiple ifs and the up env var; to check later.
9fb8b810 — Mathieu Laparie 5 months ago
Add support for several week number types, default to ISO. And minor phrasing edits in the config.
Add a feature to load another data or config file, as well as a git log view

refs

devel
browse  log 

clone

read-only
https://git.sr.ht/~mlaparie/remint
read/write
git@git.sr.ht:~mlaparie/remint

You can also use your local clone with git send-email.

                                                 88                ,d
                                                 °°                88     
     8b,dPPYba,   ,adPPYba,  88,dPYba,,adPYba,   88  8b,dPPYba,  MM88MMM
     88P°   °Y8  a8P_____88  88P°   °88°    °8a  88  88P°   '°8a   88
     88          8PP°°°°°°°  88      88      88  88  88       88   88
     88          °8b,   ,aa  88      88      88  88  88       88   88,    
     88           '°Ybbd8°°  88      88      88  88  88       88   °Y888
     
     A simple terminal UI wrapper for D. Skoll's Remind calendar program

remint is a simple wrapper script to add interactions and navigation to the terminal outputs of D. Skoll's Remind scripting calendar program.

#Usage

Make sure Dianne Skoll's remind is intalled and that remint.sh is executable with chmod +x /path/to/remint.sh, then run with ./remint.sh /path/to/a/reminders/file/or/directory (if the argument is a directory, then remint will read from all *.rem files in it). remint will try default locations if none is supplied as argument, as well as the DOTREMINDERS environment variable. I use it as a script executed in a new terminal window when clicking on the clock of my system bar.

remint allows synchronizing to and from a git repository if you use *.rem files from a folder initialized as a git repository. Running remint on a single file supplied as CLI argument or on a data folder not containing files named as <something>.rem will not allow git synchronization; this is to limit the risk of synchronizing unwanted files. See git synchronization in action in the video below:

(Click here to watch video.)

Other short demos of the features are available here (some base functions, initial version) and here (a few new functions in a later update).

#Configuration

remint options can be toggled from the TUI, but the defaults can be edited at the beginning of the script, or placed into a remint.conf file either alongside remint.sh (same directory) or in your Remind data directory (~/.reminders, ~/.config/remind, or a folder set in DOTREMINDERS) to make them persist after updates:

DEFAULTFILE="100-remint.rem" # Default file to edit and add new events to if
			     # the Remind data path is a directory
COLOR="-@2"         # COLOR="" to disable, COLOR="-@1" for 256 colors only.
FORMAT="1"          # FORMAT="1" means 24h format, FORMAT="0" means am/pm.
VIEW="calendar"     # VIEW="list" to display the agenda by default.
COLORINVERTED="no"  # COLORINVERTED="yes" to toggle light/dark default mode.
SHOWDOYWOY="yes"    # SHOWDOYWOY="no" to hide day of year and week number.
WEEKNUMBERTYPE="V"  # "V" for ISO numbering, "W" for non-ISO and Monday as
                    # first day of the week, "U" for non-ISO and Sunday as
                    # first day of the week.
WEEKSPAN="4"        # Number of weeks to show by default in week view.
MONTHSPAN="1"       # Number of months to show by default in month view.
PREFIX="+"          # If PREFIX="+", then the default view shows weeks,
                    # else if PREFIX="", then the default view shows months.
SPACING=""          # SPACING="" for fixed cell spacing (see `s` binding),
       		    # else SPACING=",n,m" where n and m are numbers.
FIRSTDAYOFWEEK="m"  # FIRSTDAYOFWEEK="s" to start weeks on Sundays.
REMPAGER="less -Ri" # Or REMPAGER="$PAGER" to use your usual PAGER. Useful to
	            # search patterns or scroll long outputs. Beware that not
	            # all pagers can handle Remind's color and escape colors
                    # correctly; "less -Ri" can.
INFODURATION="1"    # Duration (in s) of displayed messages; the UI will be
                    # be unresponsive until info messages disappear.
AUTOSYNC="no"       # "yes" to automatically synchronize from and to git
                    # at startup (git pull) and when quitting (git push), else
                    # "no"; "yes" requires a reminders file in a git repository.
CUSTOM=""           # Add any extra Remind arguments you may need here.

#Help

NAVIGATION
  , p  Prev page          g  Go to (yyyy, yyyymmdd, yyyy-mm-dd)
  . n  Next page          t  Go to today
  h/l  -1/+1 day          o  Navigate from the year overview
  k/j  -1/+1 week         q  Quit
  M/m  -1/+1 month    other  Quit with prompt
  Y/y  -1/+1 year         ?  Show this help

VIEW
    v  Toggle calendar/list views
    w  Toggle week/month span modes
  [/]  Span -1/+1 week (or month) per page (depending on current mode)
  r 0  Reset to default page span for the current mode
    z  Toggle Monday/Sunday as first day of the week
  : x  Toggle 24h format
    d  Toggle day of the year and week number
    /  Pipe to pager (e.g. to search pattern, press h for help)
    s  Toggle fixed/collapsed cell spacing
    i  Invert terminal background and foreground colors
    c  Toggle Remind colors
  0-9  Duration (in s) of temporary messages (e.g. git, back up)
    ;  Show last info message again

$indent DATA
    f  Load another data (or configuration) file
    a  Add event at selected day in the current data file
    e  Edit the current data file
    b  Back up the current data file
  >/<  Push/pull data file(s) to/from git repository
    u  Show git version history

© 2022 Mathieu Laparie, <mlaparie@disr.it>, MIT license