I created this tool to help me keep track of daily tasks and appointments when I'm using my Arch Linux machine, which I'm totally not mentioning just to flex on your soydev ass. Anyway, it is very limited in functionality (does't integrate with any calendar app or anything like that) but it does the job for me. I'm open to suggestions and contributions.
- Reminder Notifications: reminderd periodically checks for due reminders and sends notifications.
- Easy-to-Use: Add, remove, and list reminders using the companion script, reminderctl.
- Repeat Reminders: Reminders can be set to repeat at custom intervals.
- Customizable: Reminders can be customized by specifying a summary, description, icon, and urgency level.
The typical use case for reminderd is to run it on startup in your ~/.xinitrc
or a similar startup script.
Once running, it continuously checks for reminders and displays notifications when they are due.
Before using reminderd, ensure you have the following:
- dunstify: This tool is used to display notifications. Make sure it is installed and configured on your system.
-
Clone the repository to your local machine:
git clone https://github.com/youssef-attai/reminderd.git
-
Make the scripts executable:
cd reminderd chmod +x reminderd reminderctl
-
Move the scripts to a location in your PATH, so you can easily access them:
sudo mv reminderd reminderctl /usr/local/bin/
To add a reminder, use the reminderctl
script as follows:
reminderctl add -d <date> -s <summary> [-b <body>] [-i <icon>] [-r <repeat>] [-u <low|normal|critical>]
-d
: The due date and time for the reminder in a valid date format (e.g., "2023-12-31 2:00 PM" or "tomorrow 10:00").-s
: A short summary or title for the reminder.[-b]
: Optional - Additional details or description of the reminder.[-i]
: Optional - An icon associated with the reminder.[-r]
: Optional - The time interval (in seconds) between repeated reminders. Use 0 for non-repeating reminders.[-u]
: Optional - The urgency level of the reminder (low, normal, or critical). Normal by default.
To remove a reminder, use the reminderctl
script as follows:
reminderctl remove <reminder_id>
<reminder_id>
: The unique identifier of the reminder you want to remove.
To list all existing reminders, simply run:
reminderctl list
By default, reminderd stores reminders in the $HOME/.local/share/reminders
directory.
You can customize this directory by modifying the REMINDERS_DIR
variable in both reminderd
and reminderctl
scripts.
To ensure that reminderd runs on startup, add the following line to your ~/.xinitrc
or similar startup script:
reminderd &
This will start reminderd in the background, and it will continuously check for due reminders.
Here are some examples of how to use reminderctl to add reminders:
# Add a non-repeating reminder for a dinner appointment
reminderctl add -d "2023-12-31 2:00 pm" -s "Dinner Time" -b "Don't forget to go eat" -i ~/Pictures/svg/burger.svg
# Add a daily repeating reminder to take medication
reminderctl add -d "today 10:00 am" -s "Take Medication" -i ~/Pictures/svg/pill.svg -r 86400 -u critical
# Add a weekly repeating reminder for a team meeting
reminderctl add -d "next sunday 8:00 am" -s "Team Meeting" -b "Discuss project updates" -r 604800
Contributions to this project are welcome! Feel free to open issues, submit pull requests, or share your ideas and suggestions.
This project is licensed under the MIT License - see the LICENSE file for details.
- Thanks to the dunst project for providing a simple and effective way to display notifications.