2 unstable releases

0.3.0 Jan 18, 2019
0.1.0 Jan 14, 2019

#13 in #alarm

MIT license

91KB
525 lines

dlarm

dlarm is the alarm system for dwm.

Like dwm, dlarm is minimalist, keyboard-focused, and terminal centric. All dlarm does is to allow you to set an alarm for a specified time later today. When that alarm goes off, your dwm status bar will flash with either a string you specify or the text ALARM ALARM ALARM. You can then turn off or snooze the alarm.

It looks like this:

Gif depicting dlarm alarm sounding

Installation prerequisites

dwm

dlarm requires dwm. If you do not already have it installed, you can install it from dwm.suckless.org. If you would like dlarm to support a different minimalist widow manager, please open an issue and let me know.

dwm-statuscolors (optional)

dlarm works best with the dwm-statuscolors patch applied. This patch allows color output in dwm's status bar; without this patch, dlarm will still function but will not have any colors. If you do not already have this patch, you can install it from dwm.suckless.org/patches/statuscolors.

Rust

At the moment, dlarm requires the Rust tool chain to be installed on your system. If you would like a pre-compiled binary, please open an issue and let me know your target architecture.

Installation Instructions

Install dlarm

Install dlarm using Cargo with cargo install dlarm.

Install man(1) page and zsh completions (optional)

Clone this repository and run sudo make install to automatically install the man page and zsh completions.

Install other shell completions (optional)

If you use a different shell, you can generate the completion script for your shell with the generate command (e.g., dlarm generate bash). You may also use this command to generate the man page if you prefer. dlarm supports bash, elvish, fish, and zsh completions.

Edit your .xinitrc or other file to enable dlarm

Finally, edit whatever file contains the script that sets your dwm status bar. Typically, this is .xinitrc or some other init script. It should contain some sort of script on an infinite loop that updates your dwm status bar info (for example, with a clock).

Once you have located that script, paste in the appropriate script from the dlarm repository. If you use dwm-statuscolors, then you should use script_for_color.sh; if not, you should use script_without_color.sh. As indicated in those files, you should move the pre-existing script into the else block in the new script—that way, the alarm will be displayed when it is triggered, and your normal status info will be displayed at every other time.

Optionally, if you use dwm-statuscolors, you can edit the script to select which colors are displayed when the alarm alerts. Recall that you specify a color for dwm-statuscolors by specifying the binary value that corresponds to the order you defined the colors in your config.h (e.g., \x03 for the third color you defined).

Usage

You interact with dlarm with the --set, --message, --snooze, and --off commands. Consult the --help command or the man(1) page for additional usage details.

When setting an alarm, you must pass in the time in either H:MMpp format (e.g., 1:35pm) or H:MM format (e.g., 11:30). If you do not include a period (am/pm), then dlarm will guess at the period by setting the alarm for an AM time if that time would be in the future or else a PM time.

Goals and non-goals

My goal is for dlarm to be simple, minimalist, and user-configurable. I plan to continue to develop dlarm; future plans include allowing for current-time relative alarms (e.g. dlarm --set +25 to set an alarm for 25 minutes from now). I would also be open to supporting additional minimalist windows managers other than dwm if there is succinct interest.

However, I plan to avoid feature creep: dlarm is not a general purpose calendar system and will likely not support arbitrary future alarms (e.g., an alarm set for Jan. 30 of next year). The intent is to have a targeted short-term alarms that are important enough to catch your attention—not to contribute to yet more digital noise.

Bug reports and contributing

dlarm is under active development and would welcome additional contributors. Please feel free to file issues, make pull requests, or otherwise contribute. Also feel free to submit bug reports, patches, feature requests, or comments via email to daniel@codesections.com.

Dependencies

~5–16MB
~169K SLoC