https://github.com/shobhit-nagpal/remindr
Recurring reminder service for Linux users.
https://github.com/shobhit-nagpal/remindr
dunst golang libnotify linux
Last synced: about 1 month ago
JSON representation
Recurring reminder service for Linux users.
- Host: GitHub
- URL: https://github.com/shobhit-nagpal/remindr
- Owner: Shobhit-Nagpal
- Created: 2025-01-23T15:52:17.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-02-11T15:50:48.000Z (8 months ago)
- Last Synced: 2025-05-14T17:42:14.915Z (5 months ago)
- Topics: dunst, golang, libnotify, linux
- Language: Go
- Homepage:
- Size: 29.3 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Remindr
Remindr is a recurring reminder application written in Go. It notifies users on Linux using the `libnotify` library and the `dunst` notification daemon. The application consists of a CLI tool and a server that runs as a systemd user service.
## Features
- Set recurring reminders via CLI
- Notifications delivered via `dunst` on Linux
- Easy installation and setup with a single command
- Runs as a user-level systemd service## Dependencies
- **libnotify**: For sending desktop notifications
- **dunst**: A lightweight notification daemon for LinuxInstall the dependencies on Ubuntu/Debian:
```bash
sudo apt-get install libnotify-bin dunst
```## Installation
### Install Using Go
1. **Install Go** (if not already installed):
```bash
sudo apt-get install golang
```2. **Install Remindr**:
```bash
go install github.com/Shobhit-Nagpal/remindr/remindr-cli@latest
```3. **Setup the Service**:
```bash
remindr setup /path/to/working/directory
```
This will:
- Create a systemd user service file at `~/.config/systemd/user/remindr.service`
- Start the service using `go run`4. **Verify the Service**:
```bash
systemctl --user status remindr.service
```### Manual Installation
1. **Clone the Repository**:
```bash
git clone https://github.com/Shobhit-Nagpal/remindr.git
cd remindr
```2. **Create the Systemd User Service**:
Create a service file at `~/.config/systemd/user/remindr.service`:
```ini
[Unit]
Description=Remindr Service
After=default.target[Service]
Environment=PATH=/usr/local/go/bin:/usr/local/bin:/usr/bin:/bin
ExecStart=go run /path/to/remindr/server/main.go
WorkingDirectory=/path/to/remindr/server
Restart=on-failure[Install]
WantedBy=default.target
```3. **Enable and Start the Service**:
```bash
systemctl --user daemon-reload
systemctl --user enable remindr.service
systemctl --user start remindr.service
```## Usage
### Set a Reminder
Use the CLI to set a recurring reminder:
```bash
remindr create "Meeting in 10 minutes" --interval 600
```### List Reminders
View all active reminders:
```bash
remindr list
```### Stop a Reminder
Stop a reminder by its ID:
```bash
remindr stop
```### Run a Reminder
Run a reminder by its ID:
```bash
remindr run
```### Remove Service
To remove the Remindr service:
```bash
remindr destroy
```## Troubleshooting
### Notifications Not Showing
Ensure `dunst` is running:
```bash
dunst &
```### Service Fails to Start
Check the logs:
```bash
journalctl --user -u remindr.service
```### Service Status
Check service status:
```bash
systemctl --user status remindr.service
```## Contributing
Contributions are welcome! Please open an issue or submit a pull request.## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.