Remind Helpers

From 43FoldersWiki

Revision as of 19:14, 17 June 2006 by Pelzlpj (Talk | contribs)
Jump to: navigation, search

In the tradition of many great Unix utilities, Remind is designed to interoperate easily with other programs. This page lists a number of programs (and program configurations) that work particularly well with Remind.

Contents

Tools for Displaying Remind's Output

General Text Display Tools

GeekTool

Use GeekTool to display the output of Remind on your desktop. Remember to use the -q option to prevent GeekTool from queueing up all your timed reminders again every time it refreshes.

Growl

  • I don't always have a terminal open, and sometimes when I do have one open, it's not the app currently in focus. So I wrote a Perl script that executes remind and shoves the output (via Mac::Glue) to a Growl notification. Then I put the script in ~/Library/Scripts where Quicksilver can see it and now I can just execute it any time I want to see my reminders no matter what application I'm working in.
  • nohup/remind/growl

You can run remind as a background daemon and fire off reminders through growl:

nohup remind -z -k'growlnotify -s %s &' ~/.reminders &

Dissection:

nohup 
don't kill this command when i close this terminal window or log out
remind -z 
run remind as a daemon, checking up every five minutes
-k 
pass the reminders to 'growlnotify -s %s &'
-s 
make the growl bubble sticky
%s 
represents the text of the reminder
run growlnotify as a background process
~/.reminders
what remind file to run
run the whole thing as a background process

For extra laziness, you can write a launchd script to start this at login.

Dashboard Widgets

Cron, Mail, and Pipes

How would you like to see an updated reminder calendar in your email every morning? Set up a cron job to go off just before you would normally first sit down at your computer. The cron command would be something along the lines of:

rem -c+1 | mail user@foobar.com

Which produces a nice plaintext weekly calendar with all your reminders for your inbox.

Frontends

  • Wyrd is a popular text-based frontend for Remind.
  • wxRemind is similar to Wyrd but based on wxPython rather than curses.

Calendar Import/Export Utilities

iCal2Remind is a script to turn iCal entries into Remind entries. In the ~/.reminders file, include the new file:
INCLUDE ./.ical2rem
and use cron to build the included file:
0-59/15 * * * * local/bin/ical2rem.pl > ~/.ical2rem

rem2ics is a script that converts Remind events to iCal format.

Editors

Editing your remind files in TextMate can be made easier if you create a Remind bundle. Here is a language grammar that provides syntax coloring for your rem files. Open your bundle editor (by pressing ⌃ ⌥ ⌘ B) and create a new bundle called Remind. Within the newly created Remind bundle creat a new language and add the following:

{	scopeName = 'source.remind';
	firstLineMatch = '^REM*';
	fileTypes = ( 'defs.rem', 'REM*.txt', '.reminders' );
	patterns = (
		{	name = 'keyword.control.remind';
			match = '\b(IF|ELSE|ENDIF|IFTRIG)\b';
		},
		{	name = 'entity.remind';
			match = '\b(tag|PRIORITY|TAG)\b';
		},
		{	name = 'constant.language.remind';
			match = '%';
		},
		{	name = 'keyword.commands.remind';
			match = '\b(REM|OMIT|SET|FSET|UNSET)\b';
		},
		{	name = 'keyword.expiry.remind';
			match = '\b(UNTIL|SCANFORM|SCAN|WARN|SCHED)\b';
		},
		{	name = 'keyword.timed.remind';
			match = '\b(AT|DURATION)\b';
		},
		{	name = 'keyword.move.remind';
			match = '\b(ONCE|SKIP|BEFORE|AFTER)\b';
		},
		{	name = 'keyword.special.remind';
			match = '\b(INCLUDE|INC|BANNER|PUSH-OMIT-CONTEXT|PUSH|CLEAR-OMIT-CONTEXT|CLEAR|POP-OMIT-CONTEXT|POP)\b';
		},
		{	name = 'keyword.run.remind';
			match = '\b(RUN|MSG|MSF|CAL|SATISFY|SPECIAL|PS|PSFILE|SHADE|MOON)\b';
		},
		{	name = 'comment.line.number-sign.remind';
			match = '(?<!\$)#(?!\{).*$';
		},
		{	name = 'comment.line.semi-colon.remind';
			match = '(?<!\$);(?!\{).*$';
		},
		{	name = 'string.quoted.double.remind';
			begin = '"';
			end = '"';
		},
	);
}

To get the syntax coloring to work with your favorite theme add the above scope names to your theme and assign them colors.

To view your monthly calendar within TextMate add the following command to your Remind bundle:

Save:		Nothing
Command(s)	remind -p1 ~/.reminders | rem2html -b 1 -t 1 -se -1
Input:		None
Output:		Show as HTML

Assign the command a key equivalent and now you can access your monthly calendar within TextMate at a keystroke.

Snippets will also be useful for your Remind bundle. Here is (a slightly modified) snippet suggested by Merlin Mann:

REM ${1:mmm dd yyyy} AT ${2:00:00} DURATION ${3:1:00} MSG $4 %
$0

Other snippets are useful as well but these will depend on your use case.

You can also download Rupa Deadwyler's Remind bundle from this subversion repository

Personal tools