WMPINBOARD(1) wmpinboard WMPINBOARD(1)

wmpinboard - a Window Maker dock app resembling a miniature pinboard

  wmpinboard [options]

What wmpinboard is

wmpinboard is a Window Maker dock applet resembling a miniature pinboard. It's intended to somewhat relieve heavily littered desktops by allowing you to place reminders on a graphical on-screen pinboard rather than producing a mess of real notes all around your keyboard (thus being environmentally A Good Thing, too ;-) ). It supports arbitrary 6x10 X fonts and has XLocale support, enabling you to enter locale-dependent special characters if set up appropriately. Besides text, you can add small monochrome sketches to your notes or simply encircle or underline words as a means of emphasis, and alarms can be set to explicitly remind you of things. Above all, wmpinboard is animated in redundant ways to make it look even more attractive, and themeability provides for a way of adapting its appearance to that of the rest of your desktop.

What wmpinboard ISN'T

Clearly, wmpinboard doesn't allow you to keep an unlimited number of notes holding arbitrary amounts of information, and that's not what it's meant to do. Just as real notes offer limited space, so do those simulated by wmpinboard. Besides, as a dock applet, it aims at being small and neat and yet useful in a way, and that's what it is, too, or considered to be by some people, anyway. If you need room for more comprehensive reminders, use another program, either additionally or exclusively. There's a variety of such out there, but their niche is different from that which wmpinboard claims.

wmpinboard's command-line options can be roughly divided into four groups: configuration directives, run-time options, command-line actions, and general options. Generally, wmpinboard supports GNU-style long options (which may be abbreviated unambiguously) as well as short ones for parameters used more commonly.

Configuration directives

This type of command-line options changes some aspect of wmpinboard's configuration that is saved along with the data and thus set in a more permanent way. Only one such parameter may be specified per call, and there mustn't be another instance running.

`--font=FONT'
Makes wmpinboard use the specified font; `FONT' can be one of the shortcuts listed when running the program with "`--help'" as a parameter, or a complete X descriptor of a fixed size 6x10 font. The pinboard must be empty in order for this option to be applicable. For more details, see the section on "FREQUENTLY ASKED QUESTIONS".
`--theme=FILE'
Configures wmpinboard to load the specified theme when started interactively the next time. `FILE' is the location of a wmpinboard theme file (typically with a file name extension of .wmpbtheme). If it can't be loaded when run interactively, the program will revert to its default theme. If `FILE' is an empty string or "default", the use of a custom theme will be deactivated.

Themes affect wmpinboard's appearance, in particular, its pinboard, edit mode and alarm panel pixmaps, the latter's digits, and possibly the location of the pinboard mode label area (via which notes are created). For downloading themes, or if you're inclined to create one yourself and need instructions, check out the program's home page (see the section on "AUTHOR" or wmpinboard's "`--help'" output for the URL). The themes kit containing instructions and samples on how to create theme files for wmpinboard that can be downloaded there is also included with the source package of the program.

`--alarm-cmd=CMD'
Configures `CMD' as the command to be executed on alarms. E.g., you could use "`xkbbell'" to cause the program to beep on such occassions, or make it run some sound-playing program. To reset the alarm command to none, make `CMD' a zero-length string.

Run-time options

`-d DISPLAY' or `--display=DISPLAY'
Uses the specified X display rather than the default one.
`-c' or `--click-to-focus'
This turns on some emulation of a click-based keyboard focus mode. See the section on "FREQUENTLY ASKED QUESTIONS".
`-t TIME' or `--timeout=TIME'
Sets the edit mode timeout (i.e., the number of seconds of idleness after which edit mode is terminated automatically) to `TIME' seconds. The compile-time default is 60s, but this may have been changed for your particular build; run with `-v' if in doubt to check that. Specifying a value of 0 (zero) will disable the timeout.
`-n' or `--normal-state'
Forces wmpinboard to run in so-called NormalState, which is preferred by AfterStep's Wharf.
`-w' or `--withdrawn-state'
Forces the program to run in so-called WithdrawnState, as desired by the Window Maker dock. This option and the previous one are mutually exclusive. Note also that wmpinboard tries to auto-detect whether Window Maker is running and sets itself up accordingly. Using `-n' or `-w' should only be necessary in case those heuristics fail on your system for some reason or other.
`--light'
Use this switch to suppress animations.

Command-line actions

Even though wmpinboard is by design an interactive application, there may be occasions when it comes in handy to be able to access/manipulate notes from the command line. That's why the program offers a set of command-line options allowing for basic operations of that kind. Still, it should be kept in mind that wmpinboard is primarily meant to be used interactively.

All of the options below will, if an interactive instance of wmpinboard is running in the background, cause that to save its data (and quit edit mode, if necessary), and if any changes are made by the respective option, the interactive instance will then be signalled to re-read the data file. Even though the implemented methods of inter-process communication should generally be sufficiently safe with respect to avoiding data file corruption, it's in theory possible to undermine the concept and cause damage that way--yet this won't happen unless you deliberately take pains to achieve the goal. Generally, everything should work fine as long as you don't try running multiple non-interactive instances of wmpinboard simultaneously.

Only one of the below actions can be specified per call to wmpinboard.

`--dump'
This dumps the contents of all notes, replacing line breaks by spaces (unless preceded by a hyphen) and shortening sequences of blanks. The list of dumped strings will be sorted by color groups. If you use special characters in your notes, make sure your terminal's running with the same character set as wmpinboard, or what you'll see might have a garbage-like quality.

Each line of output represents one note and is prefixed by the internal number currently identifying the respective note and, if an alarm is configured for the respective note, time and date (or "daily").

`--dump-raw'
Unlike the "cooked" dump described above, this just dumps the raw contents of all notes without applying any kind of formatting. May come in handy if your notes happen to contain E-mail addresses or other things for which lines 10 characters wide are too narrow.
`--del=NUMBER'
This option will remove the note identified by `NUMBER' from the pinboard. `NUMBER' is a number determined by the output of either dump option, which should be consulted right before using this one, since note numbers may change when notes are moved around on the board or others are removed.
`--add=STRING'
When run with this option, wmpinboard will add a new note (provided the maximal number of notes has not yet been reached) at a random position on the board, with contents `STRING', word-wrapping the text at the end of the note's lines where necessary (after white space and hyphens). If due to this wrapping, the entire string cannot be stored on the note, the remainder will be discarded silently.

In order to create a note with a certain color, the string can be prefixed by a color code specifying the group of colors which a random color is to be selected from (code letters are recognized case-insensitively):

  %G - green
  %Y - yellow/white
  %R - reddish
  %B - blue
    
Alternatively or additionally, you may specify a position code as "%1" through "%9", defining an approximate position on the board where the note is to be placed. Each of the nine figures corresponds to a ninth of the board with its index assigned in accordance with the layout of your keypad (i.e., "%1" meaning lower left, "%9" upper right corner, and so forth).

Thus,

  wmpinboard --add '%g%5test'
    
will place a green note saying "test" at the center of the board.

(Note: The "%" character can be escaped by a second one if you want to add an un-prefixed string starting with a percent character.)

`--add-raw=STRING'
Via this option, a new note can be added from the command line (provided that this won't exceed the maximum number of notes). `STRING' specifies the raw contents of the note, as printed by `--dump-raw'. The same set of color group and position codes as for the previous option applies.

General options

`-h' or `--help'
This prints a help screen listing command line options together with brief descriptions.
`-i' or `--info'
Prints information about the current user configuration (font, theme, alarm command) and some useless statistics.
`-v' or `--version'
This prints some more detailed version information, in particular, which compile-time settings this binary was built with.

wmpinboard operates in basically two different modes, namely, the pinboard view and edit mode. Furthermore, a panel of buttons granting access to extended options can be popped up in edit mode, which in turn allows you to display the alarm panel to configure alarm settings for the current note.

Pinboard view

This is wmpinboard's normal mode of operation. A potentially chaotic arrangement of tiny squares on a beige-colored oblong (default theme) is meant to resemble notes pinned to a cork board. Possible actions include:

Edit mode

This mode serves two purposes: on the one hand, it presents you with a "full-size" view of a note's contents, on the other, you can use the occasion to edit it. Due to its limited size, a note can hold up to 10 characters on 6 lines (minus one on the last, i.e., 59 characters altogether), plus a monochrome sketch of some kind. Possibly actions:

Enter text. wmpinboard supports user-selectable fonts and dead keys, so you should be able to enter any characters that are usually accessible via your keyboard and have them displayed correctly. Furthermore, the cursor can be moved around using the arrow keys (or EMACS-style via [Ctrl]-[N]/[P]/[F]/[B], if you are so inclined). Alternatively, it can be placed explicitly by left-clicking where you want it to be. Other special keys that are supported include:

[PgUp]/[PgDn]
Places the cursor on character 1/59, respectively.
[Home]/[End]
Places the cursor at the textual start or end of the current line.
[Del]
Deletes the character currently under the text cursor and shifts the remaining text on the current line to the left; if the current line is blank, removes it and shifts all lines below up by one line.
[Backspace]
See [Del], but affects the character on the left of the cursor.
[Ins]
Toggles inserting/overwriting of existing text; the current mode is indicated by a cursor change (block cursor means insert mode).
[Enter]
In insert mode, wraps the current line at the cursor's position; in overwrite mode (underscore cursor), merely moves the cursor to the start of the next line.
[Ctrl]-[Y], -[Z]
Removes an entire (intermediate) line, shifting those below up by one, and places the cursor at the start of the current line.
[Esc]
Quits edit mode and returns to the pinboard view.
[Shift]-[Left]/[Right]
Cycles through all notes currently on the pinboard.
[Shift]-[Up]/[Down]
Cycles through all notes that are roughly the same color as the current one. For this purpose, colors have internally been divided into four groups: green, white/yellow, reddish, blue.
([Shift]-)[Tab]
Cycles (backwards) through available note colors.

Cut'n'paste text. Despite the limitations implied, wmpinboard has support for cutting & pasting to and from the X clipboard:

  • In order to copy text to the clipboard, select the desired segment via either the left or the right mouse button: the left one will copy the text post-formatted as done by the command line switch `--dump' (see the section on "OPTIONS"); the right button will copy the raw selection. Similarly, a left double click will select the word (i.e., all adjoining non-blank characters) at the respective position, a right one will do the same but neglect line breaks as delimiters. Additionally, you can copy a note's entire raw contents by pressing [Ctrl]-[R]; [Ctrl]-[C] will do the same with applied post-formatting.
  • To paste the clipboard's contents, press the middle button wherever the insertion is supposed to happen. This will insert the clipboard's current contents, trying to word-wrap the text (at white space and after hyphens). If in insert mode, following text will be shifted towards the end of the note, trying to word-wrap that as well.

    If you wish to paste something without word-wrapping (e.g., an URL containing a hyphen), paste it via [Ctrl]-[I] (think [i]nsert). This will paste the clipboard's raw contents at the current location of the cursor, shifting subsequent text if in insert mode (not trying to word-wrap that either).

Obvious limitations you should be aware of include:


  • As is usually the case (about wmpinboard, anyway), size matters. As you know, a note can hold only up to 59 characters, so trying to paste longer strings will result in those being truncated.
  • If the text to be pasted is formatted in some way or other, this won't be the case any more after it has been pasted: wmpinboard replaces new line characters by blanks and, when pasting using the mouse, tries to word-wrap text.
  • The information stored in the cut buffer needn't necessarily be compatible with wmpinboard in that it may be encoded with another character set.

Note: wmpinboard remembers where you left the text cursor after you last edited a note and restores this position when you edit it the next time.

Edit mode panel

This panel is intended to provide easy access to some options affecting edit mode or the current note in general. The panel looks like this (letters denoting the buttons for reference below):

    +---+---+---+---+
    ⎪ a ⎪ c ⎪ e ⎪ g ⎪
    +---+---+---+---+
    ⎪ b ⎪ d ⎪ f ⎪ h ⎪
    +---+---+---+---+
The buttons bear tiny icons which are meant to suggest what they do, which isn't all that easy on a 12x12 pixels area. `:^)'

Here's a description of what each button does:

(a)
Left-clicking on this button opens and closes the alarm panel (see below), which allows you to configure alarm settings for the note being edited. When the alarm panel is visible, the alarm is activated. To turn it off, press the button again and make the panel disappear.
(b)
This button allows one to cycle through all colors available for notes (20 of them). Clicking on it won't close the panel, so this can be done repeatedly. Using the left mouse button traverses the colors in ascending, using the right button in descending order. Note: colors can also be changed via a keyboard shortcut in edit mode (see that section).
(c)
This button closes the panel and returns to edit mode, with the sketch-drawing feature enabled (see above).
(d)
Closes the panel and returns to edit mode, with the sketch-erasing feature enabled (see above). Don't panic if entered text vanishes all of a sudden when you do this: this is because wmpinboard intentionally hides it to eradicate the need for you to make wild guesses as to what's entered text and which pixels belong to a sketch.
(e)
This button removes all entered text on the current note and places the text cursor on the very first character. Besides, it closes the panel, thus returning to edit mode.
(f)
Pressing this button completely removes a drawn sketch on the current note and returns to edit mode.
(g)
This option removes the *entire* note from the board and returns to pinboard view.
(h)
This button merely closes the panel (and thus puts you back in edit mode). The same can be achieved by simply right-clicking in this view.

Alarm panel

This panel can be accessed from the edit mode panel described above. If the panel is visible while the edit mode panel is on, the alarm is set, otherwise, it's disabled.

The alarm panel consists of six distinct clickable areas. The digits to the left and right of the colon are the hour and minute which an alarm is to be set for. Below them, a date can be specified in month, day order. On the right, there are two toggle buttons (which can be either green (on) or red (off) and are mutually exclusive). The top one represents a daily alarm whereas the bottom one indicates/sets a date-specific one.

The hour, minute, month, and day of month fields can each be incremented or decremented by left- or right-clicking on them, respectively. Clicking on one of the toggle buttons configures the alarm as the respective type.

As the above description implies, there are two distinct kinds of alarms: daily and date-specific ones.

Alarms are generally executed only when in pinboard view and not moving any notes about. If you're keeping the program busy at the time an alarm would have to occur, it will be delayed until you're finished (i.e., let the program return to idle pinboard view). The same holds if an alarm occurs while another one is running.

If all prerequisites are given and an alarm becomes due, the corresponding note is displayed in edit view, and the display starts to flash on and off, along with the alarm command being executed (see the section on "OPTIONS"). To stop the blinking, click on the note. From then on, the note will be in edit mode.

For daily alarms, the entered date is ignored, and as the name suggests, they're run every day at the specified time. To deactivate such an alarm, you have to open the edit mode panel and click button (a) to make the alarm panel disappear, which turns the alarm off.

In contrast, date-specific alarms are executed only once, at the specified day and time. Since a year cannot be specified (explicitly), the alarm will be run on this date's next occurrence within a year from when the alarm was set. After that, the alarm will automatically be disabled. If a date-specific alarm becomes due while wmpinboard isn't running, it will be displayed as soon as the program is started the next time--which does not go for daily alarms.

The default mode for alarms is date-specific, and time and date are initialized with the next full hour when the alarm panel is opened the first time for a given note.

Internally, alarm times are stored in universal format, i.e., if you change the time zone after having set an alarm, the time will stay universally the same but will differ relative to the new time zone from what absolute time you originally set. This behavior is intended.

Finally, it should be mentioned that there are a few limitations with respect to command line actions (such as `--add', `--del', `-i', etc.). See the section on "RESTRICTIONS".


  • whenever edit mode is terminated
  • when you switch notes in edit mode (via [Shift]-[arrow key])
  • when a note has been moved on the board
  • when an interactive instance is running and you run wmpinboard from the command line, making it dump, add, or delete notes
  • when killed via SIGINT or SIGTERM and edit mode is active

Notes are saved to a file called .wmpinboarddata in your home directory (see the section on "FILES").



  • when a new note is created (not when you click on an existing note--you'll have to explicitly click on the editing area to make it claim focus; this way, you can just view a note without any change to keyboard focus)
  • when you click somewhere on the text area in edit mode

Once keyboard-focused, wmpinboard will keep it until another window is explicitly focused (usually by clicking on its title bar or border). To focus wmpinboard again when it's lost focus, you'll have to click on its text area in edit mode. This click will only focus the application and not have the usual cursor-positioning effect.

This feature is to be considered experimental since I'm not sure of how much use it really is. A mouse-following focus is the recommended mode of operation.


A good way of making the best of the organizational features offered by wmpinboard is to use certain colors and locations on the pinboard to indicate urgency and contents of a note. For example, you might use each of the color groups for a certain kind of reminder, because that enables you to leaf through all notes with related contents via [Shift]-[arrow keys] in edit mode. Besides, you might assign each corner of the board a specific urgency, altogether allowing you to derive a note's type from its color and its urgency from its location on the board. Thanks again to the ability to leaf through all notes belonging to the same group of colors, notes with similar contents will still be clustered in a way.

This piece of documentation doesn't cover any undocumented features.

~/.wmpinboarddata
the user's wmpinboard data file
~/.wmpinboarddata.new
temporary file created momentarily when saving data

$HOME
the user's home directory

If you stumble on any bugs, feel free to mail the author. The same goes if you encounter any problems running/using the program. Be sure to include any information you consider relevant, i.e., at a minimum, the version of wmpinboard you're using as well as your OS and X versions.

Also, further suggestions are always welcome. Please check the TODO file that's part of the distribution to see if what you're about to suggest isn't already on my "to do" list, or has been suggested earlier and was rejected for one reason or other.

wmaker(1)

wmpinboard is copyrighted (c) 1998-2000 by Marco Goetze, <gomar@mindless.com>. It is distributed under the terms of the GNU General Public License, revision 2 or any later revision thereof. Use at your own risk.

New releases of and themes for wmpinboard can be found at <http://www.tu-ilmenau.de/~gomar/stuff/wmpinboard/>, or that was true at least by the time this document was last updated.

0.99.3 3rd Berkeley Distribution