https://github.com/yaaama/totui
Todo list manager written in C
https://github.com/yaaama/totui
c ncurses ncurses-tui tui
Last synced: over 1 year ago
JSON representation
Todo list manager written in C
- Host: GitHub
- URL: https://github.com/yaaama/totui
- Owner: yaaama
- Created: 2023-07-19T07:24:56.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2024-03-07T01:35:39.000Z (over 2 years ago)
- Last Synced: 2024-03-08T01:55:35.521Z (over 2 years ago)
- Topics: c, ncurses, ncurses-tui, tui
- Language: C
- Homepage:
- Size: 6.1 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
**Table of Contents**
- [Table of Contents](#table-of-contents)
- [Totui](#totui)
- [Demonstration](#demonstration)
- [Building](#building)
- [Usage guide](#usage-guide)
- [Things to do (no pun intended)](#things-to-do-no-pun-intended)
- [Core functionality](#core-functionality)
- [Aesthetics](#aesthetics)
- [Perhaps in the future](#perhaps-in-the-future)
# Totui
Totui is a terminal todo list manager. The name *Totui* is from the words “TOdo” and “TUI” (terminal user interface).
## Demonstration

## Building
You can:
1. Clone the repo: `git clone https://github.com/yaaama/totui`
2. Go into the cloned folder: `cd totui`
3. Create a build directory: `mkdir build`
4. Make the project: `make install`
5. There should be an executable inside your current working directory called *totui*.
6. Run the program: `./totui`.
# Usage guide
The keybindings are simple. They are inspired by **vim** keys.
- Move up:
- k
- Move down:
- j
- Insert new todo:
- a
- Delete the currently selected todo item:
- d
- Quit the program:
- q
- Toggle the todo status:
- SPACE
# Things to do (no pun intended)
Please note that I have basically done what I wanted to do and may stop updating this project as often as I have been.
I was mostly using this project as a reason for me to learn how `ncurses` works.
## Core functionality
- [X] Can traverse through todo items displayed on the screen.
- [X] User can add a new todo item.
- [X] Todo items can be deleted.
- [X] Toggle todo items
- [X] Resize application as the window is resized.
- [X] Echo bar on the bottom (displays information about user actions and program processes).
- [ ] Help bar on the top (displays q to quit, etc).
- [ ] Warnings for when the user may insert too long of a todo.
## Aesthetics
- [X] Colour lines based on status.
- [ ] A line containing something longer than the terminal width should be truncated on the screen.
- Program should calculate how many lines the new item is occupying, and then move the cursor so that it is below the new item.
- [ ] Lines that overflow the buffer should be rejected
## Perhaps in the future
- [ ] User can specify the default file they want to use.
- [ ] A split plane where the user can add more information about each todo (not limited by character counts).
- [ ] Configuration file where the user can specify the file to store the todo items in.