Remind Helpers

From 43FoldersWiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 04:28, 27 April 2006 (edit)
Pelzlpj (Talk | contribs)
(reorganizing Remind page)
← Previous diff
Revision as of 04:31, 27 April 2006 (edit) (undo)
Pelzlpj (Talk | contribs)
m (copy-and-paste fix)
Next diff →
Line 107: Line 107:
$0 $0
</pre> </pre>
 +
 +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 [http://code.cutup.org/remind/ subversion repository]
[[Category: Remind]] [[Category: Remind]]

Revision as of 04:31, 27 April 2006

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

Dashboard

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


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.


Wyrd

Wyrd is a curses front-end for Remind. To run it in MacOSX you have to have your terminal set as xterm-color. This is easy to do in terminal preferences, but if you find it causes problems for other programs, then you can put the following alias in your .bashrc file (this temporarily changes the value and runs wyrd; the value reverts to the original value once wyrd exits):
alias wyrd='TERM="xterm-color" wyrd'

iCal2Remind

A script to turn iCal entries into Remind entries is available at iCal to Remind script. 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

TextMate

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