Contents

Description

A prompt for appending a single line of text to a file. Useful for keeping a file of notes, things to remember for later, and so on--- using a keybinding, you can write things down just about as quickly as you think of them, so it doesn't have to interrupt whatever else you're doing.

Who knows, it might be useful for other purposes as well!

Synopsis

# Usage

import XMonad.Prompt
import XMonad.Prompt.AppendFile

and adding an appropriate keybinding, for example:

 , ((modm .|. controlMask, xK_n), appendFilePrompt def "/home/me/NOTES")

Additional notes can be added via regular Haskell or XMonad functions; for example, to preface notes with the time they were made, one could write a binding like

,  ((modm .|. controlMask, xK_n), do
spawn ("date>>"++"/home/me/NOTES")
appendFilePrompt def "/home/me/NOTES"
)

(Put the spawn on the line after the prompt to append the time instead.)

appendFilePrompt' can be used to transform the string input in the prompt before saving into the file. Previous example with date can be rewritten as:

,  ((modm .|. controlMask, xK_n), do
date <- io $fmap (formatTime defaultTimeLocale "[%Y-%m-%d %H:%M] ") getZonedTime appendFilePrompt' def (date ++)$ "/home/me/NOTES"
)

A benefit is that if the prompt is cancelled the date is not output to the file too.