1 stable release
Uses new Rust 2024
new 1.0.2 | Apr 14, 2025 |
---|
#388 in Command line utilities
39KB
199 lines
Labt - Future Gadget #16: Worldline-Accurate Timer
|
"Oh no, my watch has stopped... But I've just wound it... Don't tell me it's broken." - Mayushii |
Description
Developed by the Future Gadget Lab, Labt (codenamed FG-016) is a worldline-accurate countdown timer with cross-dimensional notification support.
Features
- ⏲️ Accurate Countdown: Every second counts
- 📢 Desktop Notifications: Native system alerts on completion
- 🔔 Mayuri Alarm: Default "tuturu" sound (disable with
-s
) - 📟 Script-Friendly: Non-interactive mode for lab use
- 🔕 Stealth Mode: Silent operation for covert operations
- 🌐 Cross-Worldline: Tested across 0.348615% divergence
- 🦀 Implemented in Rust: So that your watch is never broken.
Installation
Prebuilt binaries
Prebuilt binaries are available for Linux(x86_64 and aarch64) and Windows(x86_64) in releases.
Just download a fitting one and put it in some PATH
directory.
NOTE: don't forget to chmod +x
on linux.
Using Cargo
cargo install --git https://github.com/metdxt/labt
Cargo will collect the source code and build it on your machine. Build time is rather small, about 11 seconds on lab's hardware.
System Requirements:
- Linux: DBus (for notifications), ALSA (for sound)
- Windows: Windows 10+ (notifications require Action Center)
Usage
Basic Syntax
labt [OPTIONS] --hours <HOURS> --minutes <MINUTES> --seconds <SECONDS>
Options
Option | Description | Example |
---|---|---|
-H |
Hours component | -H 2 |
-M |
Minutes component | -M 30 |
-S |
Seconds component | -S 45 |
-t |
Notification title | -t "Experiment Complete" |
-b |
Custom notification body | -b "Divergence reached" |
-n |
Disable notifications | -n |
-s |
Disable alarm sound | -s |
-q |
Quiet mode (no output) | -q |
-N |
Non-interactive (script-friendly) | -N |
Examples
-
Standard 25-minute timer:
labt -M 25
-
1h30m experiment with custom message:
labt -H 1 -M 30 -t "Phase 2 Complete" -b "Prepare for convergence"
-
Silent 10-second countdown:
labt -S 10 -q -n -s
-
Script-friendly mode:
labt -M 5 -N > timer.log
Notification System
Labt uses your system's native notification system with these defaults:
- Title: "Timer Finished!"
- Body: Auto-generated based on input duration
- Icon:
alarm-symbolic
(system default fallback)
Customize with -t
/--notification-title
and -b
/--notification-body
.
Alarm Sound
Default alarm sound features Mayuri's iconic "tuturu" (⚠️ Requires audio output).
Disable with -s
or use -n
for complete silence.
Exit Codes
Code | Meaning |
---|---|
0 | Timer completed successfully |
1 | Invalid duration specified |
2 | Interrupted (Ctrl+C) |
Contributing
We welcome contributions across all worldlines!
Please follow these guidelines:
- Fork the repository
- Create your feature branch (
git checkout -b worldline-42
) - Commit changes (
git commit -am 'Added δ worldline support'
) - Push to branch (
git push origin worldline-42
) - Open a Pull Request
License
Distributed under the MIT License. See LICENSE
for details.
Acknowledgments
- Future Gadget Lab members
- clap, notify-rust, and rodio crate maintainers
Dependencies
~4–37MB
~498K SLoC