https://github.com/HubertBel/lazyorg
Simple terminal-based calendar and note-taking app
https://github.com/HubertBel/lazyorg
calendar cli command-line tui
Last synced: 16 days ago
JSON representation
Simple terminal-based calendar and note-taking app
- Host: GitHub
- URL: https://github.com/HubertBel/lazyorg
- Owner: HubertBel
- License: mit
- Created: 2024-09-06T13:53:50.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-07T02:21:22.000Z (about 1 year ago)
- Last Synced: 2024-12-07T03:20:15.766Z (about 1 year ago)
- Topics: calendar, cli, command-line, tui
- Language: Go
- Homepage:
- Size: 17.5 MB
- Stars: 78
- Watchers: 2
- Forks: 9
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-cli-apps-in-a-csv - lazyorg - Simple terminal-based calendar and note-taking app. (<a name="note-taking"></a>Note taking)
- awesome-cli-apps - lazyorg - Simple terminal-based calendar and note-taking app. (<a name="note-taking"></a>Note taking)
README
Lazyorg
A simple terminal-based calendar and note-taking application.
## Features
- 📅 Terminal-based calendar interface
- ✨ Event creation and management
- 📝 Integrated simple notepad
- ⌨️ Vim-style keybindings
## Installation
### Prerequisites
- Go 1.23 or higher
### Arch
```bash
yay -S lazyorg-bin
```
### Docker Image
```bash
docker pull defnotgustavom/lazyorg
docker run -it --log-driver none --cap-drop=ALL --net none --security-opt=no-new-privileges --name lazyorg -v /usr/share/zoneinfo/Your/Location:/usr/share/zoneinfo/Your/Location:ro -e TZ=Your/Location defnotgustavom/lazyorg
```
Switch **Your/location** to your current location. Use ```timedatectl list-timezones``` to fetch a list of possible locations.
To rerun the container:
```bash
docker start -ai lazyorg
```
### Binary Installation
Download pre-compiled binary from the latest release.
MacOS and Windows have not been tested yet.
### From Source
```bash
git clone https://github.com/HubertBel/lazyorg.git
cd lazyorg
go build
```
## Usage
### Navigation
- `h/l` - Previous/Next day
- `H/L` - Previous/Next week
- `j/k` - Move time cursor down/up
### Events
- `a` - Add new event
- `d` - Delete current event
- `D` - Delete all events with same name
When creating a new event (`a`), you'll be prompted to fill in the following fields:
- **Name**: Title of event
- **Time**: Date and time of the event
- **Location** (optional): Location of the event
- **Duration**: Duration of the event in hours (0.5 is 30 minutes)
- **Frequency**: The frequency of the event in days, by default 7 or once a week
- **Occurence**: The number of occurence of the event, by default 1
- **Description** (optional): Additional notes or details about the event
### View Controls
- `Ctrl+s` - Show/Hide side view
- `Ctrl+n` - Open/Close notepad
- `Ctrl+r` - Clear notepad content
- `?` - Toggle help menu
### Global
- `Ctrl+c` - Quit
## Configuration
Configuration file will come in future releases. For now, when you open the app for the first time, the database is created at `~/.local/share/lazyorg/data.db` in case you want to do a backup.
## Contributing
Please feel free to submit a Pull Request!
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/NewFeature`)
3. Commit your Changes (`git commit -m 'Add some NewFeature'`)
4. Push to the Branch (`git push origin feature/NewFeature`)
5. Open a Pull Request
## Acknowledgments
- Inspired by [lazygit](https://github.com/jesseduffield/lazygit)
- Built with [gocui](https://github.com/jroimartin/gocui) TUI framework
- Thanks to _defnotgustavom_ for the [docker image](https://hub.docker.com/r/defnotgustavom/lazyorg)
- Thanks to [zeckrust](https://github.com/zeckrust) for the logo
## Roadmap
- [ ] Time range modification
- [ ] CLI help
- [ ] Undo/Redo
- [ ] Configuration file
- [ ] Synchronization between devices
- [ ] Import calendar from other apps (Google Calendar, Outlook)