pwalarmd is a command-line (daemon-based) terminal alarm system. It has:
- ⏰ Configuration for as many alarms as you want
- 🎨 Lots of personalization options, including custom sounds and integration with your existing notification agent
- 🖥️ Support on both PipeWire and PulseAudio
- 💾 Easy configuration reload/save, including
through the
pwalarmctl
tool
We don't have any distro packages yet. If you'd like native distribution packages, help contribute!
Install using cargo
:
cargo install pwalarmd
cargo install pwalarmctl
Clone the repository:
git clone https://github.com/amyipdev/pwalarmd.git
Enter and run the apps as needed:
cd pwalarmd
# For pwalarmd
cargo run
# For pwalarmctl
cd pwalarmctl
cargo run -- <options>
Or, install to the system (not tested):
cd pwalarmd
cargo install --path .
cd pwalarmctl
cargo install --path .
You will need to configure your pwalarmd; this includes providing sound assets.
You can set a custom config path by setting the
environment variable PWALARMD_CONFIG
to the path.
All paths should be absolute to avoid issues
with daemonization. Otherwise, pwalarmd
first
looks for ~/.config/pwalarmd/pwalarmd.toml
,
then /etc/pwalarmd.toml
.
If you're trying to troubleshoot or debug, set
PWALARMD_NODAEMON=0
as an environment variable or
set daemon = false
in your config.
Run pwalarmd
to launch the daemon.
Run pwalarmctl
to control it, or modify the
config file currently being used. For help with
pwalarmctl
, run pwalarmctl help
.
To remove an alarm, run pwalarmctl list
, and note
the 8 characters on the left of the alarm you want
to remove; you can then run pwalarmctl remove N
,
where N are those characters, to remove the alarm.
Contributions are very much appreciated! There
isn't a formal contributor guide, but you can send
in a Pull Request; we do ask that you sign off
your commits by adding Signed-off-by: Name <email>
as the last line of your commit.
If you find a bug or want new features, please feel free to raise an Issue.
pwalarmd
may crash under malformed packets.
Work is being done to prevent this from happening.
This project was made by Amy Parker/amyipdev.
Copyright (C) 2024 Amy Parker, amy@amyip.net.
pwalarmd and pwalarmctl are licensed under the GPLv. You can view the license in the LICENSE file.
This project is built in Rust, and uses several
Rust crates. You can see these crates in Cargo.toml
and pwalarmctl/Cargo.toml
.
Windows, macOS, iOS, and Android all have usable alarm subsystems. No such thing exists on most Linux distros. There generally aren't any CLI-based ones, with them all being GUI apps; they also often require that said GUI app be constantly open, which doesn't meet a lot of use cases.