{"id":26935285,"url":"https://github.com/yaaama/totui","last_synced_at":"2025-04-02T11:18:16.009Z","repository":{"id":182265330,"uuid":"668168773","full_name":"yaaama/totui","owner":"yaaama","description":"Todo list manager written in C","archived":false,"fork":false,"pushed_at":"2024-03-07T01:35:39.000Z","size":6393,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-03-08T01:55:35.521Z","etag":null,"topics":["c","ncurses","ncurses-tui","tui"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yaaama.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-07-19T07:24:56.000Z","updated_at":"2023-08-19T12:42:41.000Z","dependencies_parsed_at":"2024-03-07T02:05:28.454Z","dependency_job_id":null,"html_url":"https://github.com/yaaama/totui","commit_stats":null,"previous_names":["yaaama/totui"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaaama%2Ftotui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaaama%2Ftotui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaaama%2Ftotui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaaama%2Ftotui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yaaama","download_url":"https://codeload.github.com/yaaama/totui/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246802595,"owners_count":20836374,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","ncurses","ncurses-tui","tui"],"created_at":"2025-04-02T11:18:15.243Z","updated_at":"2025-04-02T11:18:15.975Z","avatar_url":"https://github.com/yaaama.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003c!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc-refresh-toc --\u003e\n**Table of Contents**\n\n- [Table of Contents](#table-of-contents)\n- [Totui](#totui)\n    - [Demonstration](#demonstration)\n    - [Building](#building)\n- [Usage guide](#usage-guide)\n- [Things to do (no pun intended)](#things-to-do-no-pun-intended)\n    - [Core functionality](#core-functionality)\n    - [Aesthetics](#aesthetics)\n    - [Perhaps in the future](#perhaps-in-the-future)\n\n\u003c!-- markdown-toc end --\u003e\n\n\n\n# Totui\n\nTotui is a terminal todo list manager. The name *Totui* is from the words \u0026ldquo;TOdo\u0026rdquo; and \u0026ldquo;TUI\u0026rdquo; (terminal user interface).\n\n\n## Demonstration\n\n![demonstration](assets/totui-demonstration.GIF)\n\n\n\n## Building\n\nYou can:\n\n1.  Clone the repo: `git clone https://github.com/yaaama/totui`\n2.  Go into the cloned folder: `cd totui`\n3.  Create a build directory: `mkdir build`\n4.  Make the project: `make install`\n5.  There should be an executable inside your current working directory called *totui*.\n6.  Run the program: `./totui`.\n\n\n\n# Usage guide\n\nThe keybindings are simple. They are inspired by **vim** keys.\n\n-   Move up:\n    -   \u003ckbd\u003e k \u003c/kbd\u003e\n-   Move down:\n    -   \u003ckbd\u003e j \u003c/kbd\u003e\n-   Insert new todo:\n    -   \u003ckbd\u003e a \u003c/kbd\u003e\n-   Delete the currently selected todo item:\n    -   \u003ckbd\u003e d \u003c/kbd\u003e\n-   Quit the program:\n    -   \u003ckbd\u003e q \u003c/kbd\u003e\n-   Toggle the todo status:\n    -   \u003ckbd\u003e SPACE \u003c/kbd\u003e\n\n\n\n# Things to do (no pun intended)\n\nPlease note that I have basically done what I wanted to do and may stop updating this project as often as I have been.\nI was mostly using this project as a reason for me to learn how `ncurses` works.\n\n\n\n## Core functionality\n\n-   [X] Can traverse through todo items displayed on the screen.\n-   [X] User can add a new todo item.\n-   [X] Todo items can be deleted.\n-   [X] Toggle todo items\n-   [X] Resize application as the window is resized.\n-   [X] Echo bar on the bottom (displays information about user actions and program processes).\n-   [ ] Help bar on the top (displays q to quit, etc).\n-   [ ] Warnings for when the user may insert too long of a todo.\n\n\n\n## Aesthetics\n\n-   [X] Colour lines based on status.\n-   [ ] A line containing something longer than the terminal width should be truncated on the screen.\n    -   Program should calculate how many lines the new item is occupying, and then move the cursor so that it is below the new item.\n-   [ ] Lines that overflow the buffer should be rejected\n\n\n\n## Perhaps in the future\n\n-   [ ] User can specify the default file they want to use.\n-   [ ] A split plane where the user can add more information about each todo (not limited by character counts).\n-   [ ] Configuration file where the user can specify the file to store the todo items in.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyaaama%2Ftotui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyaaama%2Ftotui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyaaama%2Ftotui/lists"}