XWRITS(1)

๐Ÿ“ฆ
version 2.26 ยท 2 versions
  • 2.26 ยท debian bookworm, debian trixie, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking (latest)
  • 2.21 ยท ubuntu jammy
, in debian bookworm, debian trixie, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

๐ŸŒธ XWRITS(1) โ€” the wrist-break bestie ๐Ÿ’…

General Commands Manual โœจ General Commands Manual

ok so picture this: a manual page for xwrits, but it's your group chat. let's go ๐Ÿซถ


โœจ NAME โœจ

xwrits โ€” reminds you to take wrist breaks ๐Ÿ’– (yes literally that's the whole job, and it's iconic of her)


โœจ SYNOPSIS โœจ

xwrits [-display display] [typetime=time] [breaktime=time] [other options]

โœจ DESCRIPTION โœจ

xwrits reminds you to take wrist breaks, okay?? for prevention or management of repetitive stress injuries. basically it's your ergonomic guardian angel ๐Ÿ‘ผ

So here's the whole vibe: when it's time for you to take a break, it pops up an X window โ€” that's the warning window. You click on the warning window, then you go take a break. Slay. The window changes appearance while you take the break. It changes again when your break is over. Then you just resume typing. And xwrits hides itself until you should take another break. shy queen ๐Ÿ™ˆ

The typetime option changes the amount of time between breaks, and the breaktime option changes the length of a break. The defaults are 55 minutes and 5 minutes, respectively. no cap.

xwrits's graphics are brightly colored pictures of a wrist and hand ๐ŸŽ€ and the way this hand behaves is genuinely unhinged in the best way:

  • the hand clenches and spreads ``as if in pain'' on the warning window ๐Ÿ˜ญ
  • it slumps relaxed during the break ๐Ÿ˜Œ
  • and it points forward valiantly when the break is over ๐Ÿ‘‘
  • it is trapped behind bars while the keyboard is locked ๐Ÿ’€

Other gestures are included too โ€” see the +finger option. And if you wanna go full custom main character, you can use your own pictures: see the warning-picture, rest-picture, and ready-picture options. ๐Ÿ–ผ๏ธ

Normally, xwrits works through annoyance โ€” it flashes until you stop typing. like, it will simply not let you be. However, an option makes it actively prevent you from typing by locking the screen. See +lock below. ๐Ÿ”’

xwrits notices when you leave your workstation idle, and treats a long idle period as if you took a break (respect, honestly). You can turn this off with the -idle option. And with the +mouse option, it will also monitor your mouse movements โ€” meaning you won't be able to move the mouse during a break without aborting the break. bestie that's a commitment. ๐Ÿ–ฑ๏ธ

Each wrist break normally lasts the same amount of time. This is what doctors suggest, but, if you'd like, the +quota option will reward you for taking small breaks by reducing the length of the next official break. incentive structure, we love to see it. ๐Ÿ†

Some doctors recommend taking a short ``microbreak'' every five minutes, as well as a longer break every hour. To use xwrits this way, just run two xwrits processes, one for the microbreaks and one for the longer breaks. multitasking queen ๐Ÿ‘‘


๐Ÿ”ฅ ESCALATION ๐Ÿ”ฅ

ngl, it is easy to put the warning window aside ``for 5 minutes'' and ignore it for fifty. we've all been there. The after=delay option causes xwrits to escalate its activity over time, making it harder and harder to ignore. it's giving "I will be heard" ๐Ÿ’…

Options following after come into effect after you have ignored the warning window for delay. In other words, xwrits's behavior escalates after delay. For instance, with this command line,

xwrits flashtime=:2 after=10 flashtime=:.03

the warning window will begin flashing very quickly if it is ignored for 10 minutes. ๐Ÿ˜ญ it said okay enough.

Any options preceding an after option also apply following it, unless you explicitly cancel them. For example:

xwrits +finger after=10 -finger

Multiple after options create a series of escalations. Delay arguments are cumulative, so after=10 after=10'' means the same as after=20''. math is mathing. ๐Ÿงฎ

One interesting use for after is to make a break's length depend on how long you waited to take it. For example:

xwrits break=5 after=10 break=7

Here, a wrist break normally takes 5 minutes. However, if you ignore the warning window for 10 minutes or more before taking a break, the wrist break will last 7 minutes. actions, meet consequences ๐Ÿซถ


Okay so here's the full menu of everything you can throw at xwrits, and bestie, it's a lot. Every single one of these is real and every single one of them matters ๐Ÿ’–

All options may be abbreviated to their unique prefixes. Some may be abbreviated even further, and when that's the case the smallest legal abbreviation is shown in brackets. Options are processed from left to right, in order, no skipping ๐Ÿซถ

Options listed as `+option (-option)` are toggles, which can be on or off. A + turns the option on; - turns it off. Off is the default for most toggle options, and only the on behavior is described. You can leave off the + sign if you like: `xwrits +finger` and `xwrits finger` are equivalent. Or you can say `-no-finger` instead of `-finger`. Same vibe, different spelling, we love options.

Many options take arguments. You can give these after an equal sign, as in `xwrits breaktime=2`. Non-optional arguments can also be given separately, as in `xwrits breaktime 2`. Do it however feels right to you.

Time arguments are expressed in minutes. For example, `2` is 2 minutes, `2.5` is 2 minutes 30 seconds. Use a colon to specify seconds: `2:05.4` is 2 minutes 5.4 seconds, and `:5` is 5 seconds. โฐ


  • -display display โ€” Specify the X display. Xwrits monitors this display for keystrokes and mouse movements, and displays windows on it. You can simultaneously monitor more than one display by giving this option multiple times; for example, `xwrits display :0.0 display fun-orgy:0.0`. Multitasking queen energy.
  • +multiscreen, -multiscreen โ€” When this option is on, xwrits will open every available screen on each specified display. Useful for multihead displays. ๐Ÿ–ฅ๏ธ๐Ÿ–ฅ๏ธ
  • typetime=time [t] โ€” Allow typing for time between breaks. Default is 55 minutes.
  • breaktime=time [b] โ€” The amount of time a break lasts. Default is 5 minutes. This option can be supplied multiple times; see ESCALATION above. (yes, that's the part you already read, go back if you skipped it ๐Ÿ‘€)
  • after=delay-time โ€” See ESCALATION above.
  • bars-picture=file [bp=file] โ€” Sets the background GIF image that appears while the screen is locked. By default, this is an image of bars designed to work with the usual lock-picture. If you specify your own lock-picture, however, bars-picture defaults to a black screen. (Say `bars-picture="&bars"` to keep the bars.) Animations are not acceptable. No animation. We said what we said.
  • +beep, -beep โ€” Xwrits will beep when the break should begin and again when it is over. ๐Ÿ””
  • +breakclock, -breakclock [bc] โ€” A clock will appear in the resting window showing how many minutes remain in the wrist break.
  • canceltime=time [ct] โ€” Allow typing for time after a break is cancelled. You cancel a break by deleting all xwrits windows with your window manager. This time should probably be less than the regular type time. Default is 10 minutes.
  • +cheat[=num], -cheat โ€” Allows you to cheat during a break. You can type num keystrokes before xwrits cancels the break. Default for num is 5. (If you're using +mouse, mouse movements also count as keystrokes.) We're not judging. We're just counting.
  • +clock, -clock [c] โ€” A clock will appear in the warning window showing how many minutes you've put off the wrist break. โณ
  • +finger, -finger [f] โ€” The warning window will be rude to you. ๐Ÿ–• affectionately
  • +finger=culture โ€” The warning window will be rude to you, according to culture's idea of rudeness. Possible values for culture are `american` (the default), `korean` (synonyms `japanese` and `russian`), `german`, or the name of any GIF image file.
  • flashtime=time โ€” The amount of time between flashes of the warning window. Default is 2 seconds.
  • +flipoff, -flipoff โ€” Synonym for +finger.
  • +iconified, -iconified โ€” The warning window will initially appear as an icon.
  • +idle[=idletime], -idle [i] โ€” If you leave your workstation idle for idletime or longer, xwrits will behave as if you took a break. The default for idletime is the break length (see breaktime above). idle is on by default. โœจ it just knows
  • +lock[=jump-time], -lock โ€” Xwrits will lock your screen until your break is over. You can prematurely disable the lock and get a normal warning window by typing your password (see password below). The jump-time argument specifies how fast the screensaver will move; default is 4 seconds. If the keyboard has been grabbed by another application when the lock is attempted, the lock fails and a normal warning window appears instead. plan accordingly bestie
  • lock-picture=file [lp=file] โ€” Sets the GIF image that appears while the screen is locked. Animations are acceptable. See also bars-picture.
  • maxhands=num โ€” No more than num warning windows will appear on your screen simultaneously. Normally, there will be only one warning window, but see +multiply below. Num cannot be less than 1, or more than 137. Default is 25. 137 is the ceiling. Do not ask why. It is simply the ceiling.
  • minbreaktime=time โ€” Sets the minimum break length to time. This option is meaningful when +quota is on (see below); no matter how many short breaks you take, the break length will not be shortened below time. It defaults to half the break time or the quota time, whichever is larger.
  • mono, -mono โ€” Xwrits will display its graphics in black and white. This may be useful if you live in a world with a limited colormap. aesthetic
  • +mouse[=sensitivity], -mouse โ€” Xwrits will monitor your mouse movements. Every couple seconds, it checks whether the mouse has moved. Movements of more than sensitivity pixels in any direction are treated like key presses. Default for sensitivity is 15 pixels. ๐Ÿญ
  • +multiply[=breed-time], -multiply [m] โ€” A new warning window will be created every breed-time. Default for breed-time is 2.3 seconds. they're multiplying. they're BREEDING. ๐Ÿ’€
  • +noiconify, -noiconify โ€” The warning window will not allow itself to be iconified.
  • +once[=count] โ€” Put up the warning window once, or (with count) count times, then exit.
  • password=password โ€” The password you type to unlock a locked screen (see +lock above). Xwrits does not protect this password from intruders. Therefore, do not use your login password or any other password you must keep secure. Default is `quit`.
๐Ÿšจ Real talk, bestie: this password is NOT protected from intruders. Do not use your login password. Do not use anything you actually care about. Default is quit for a reason.
  • +quota[=time], -quota โ€” If you leave your workstation idle for more than time, the idle time is deducted from the length of your next break. This option turns the break length into a break quota โ€” instead of resting for breaktime consecutive minutes every typetime, you must rest for a total of breaktime minutes per typetime. Default for time is 1 minute. See also minbreaktime. budget your rest like the queen you are
  • ready-picture=file [okp=file] โ€” Sets the image that appears when your break is over to an arbitrary GIF. Animations are acceptable.
  • rest-picture=file [rp=file] โ€” Sets the image that appears during your break to an arbitrary GIF. Animations are acceptable.
  • title=text โ€” Xwrits windows will have text for their title, instead of the default `xwrits`.
  • +top, -top โ€” The warning window will try to keep itself above all other windows on the desktop. (Note: it can be fooled into staying only partially visible.) ๐Ÿ‘‘
  • +verbose, -verbose โ€” Xwrits will print a lot of information about the windows on which it is listening for keystrokes. This is mostly useful for debugging.
  • version โ€” Prints the version number and some quickie warranty information and exits.
  • warning-picture=file [wp=file] โ€” Sets the image that appears on the warning window to an arbitrary GIF. Animations are acceptable.

๐ŸŽ€ EXAMPLES ๐ŸŽ€

Here is the way I run xwrits:

xwrits typetime=40 finger after 15 clock multiply=5:1.4

This looks pretty spectacular:

xwrits t=0 b=:2 f fla=:.5 m=:.31 max=100 -i

Whee!! ๐ŸŒˆโœจ


๐Ÿ’– AUTHOR ๐Ÿ’–

Eddie Kohler, kohler@cs.ucla.edu http://www.cs.ucla.edu/~kohler/

http://www.lcdf.org/xwrits/ The xwrits home page (for distributions and so forth).

Idea for idle processing code from xautolock(1) by Stefan De Troch and Michel Eyckmans. shoutout to the elders ๐Ÿซถ


๐Ÿ’€ BUGS ๐Ÿ’€

Xwrits does not use the X resource database at all. not even a little

More options might be nice. So might more careful screen locking and password protection. I would like to include rude finger gestures from other cultures (see the GESTURES file in the distribution for gestures I know about so far). ๐Ÿ–•๐ŸŒ

Please send any bugs, comments, or suggestions to me. ๐Ÿ“ฌ

Yes the misspelling is intentional.

Yes it's my left wrist. ๐Ÿ’…


And that's the whole page, bestie โ€” this was Version 2.26, dated 8 Feb 2002, filed under XWRITS(1). Go take a break. Your wrists will literally thank you. ๐Ÿฆ‹

๐Ÿ“ฆ where this page comes from