{"id":23908197,"url":"https://github.com/commandjoo/tuirmite","last_synced_at":"2026-05-13T21:35:08.358Z","repository":{"id":263809029,"uuid":"891106828","full_name":"CommandJoo/Tuirmite","owner":"CommandJoo","description":"NCurses Implementation written in Java, with a Wrapper for making GUIs","archived":false,"fork":false,"pushed_at":"2025-02-16T13:46:54.000Z","size":698,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-23T15:15:36.624Z","etag":null,"topics":["cli","curses","curses-library","curses-ui","java","jni","jni-java","jni-wrapper","linux-app","native","ncurses","ncurses-library","ncurses-tui","terminal-app","terminal-based","tui","wrapper"],"latest_commit_sha":null,"homepage":"","language":"Java","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/CommandJoo.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,"publiccode":null,"codemeta":null}},"created_at":"2024-11-19T18:31:41.000Z","updated_at":"2025-02-16T13:46:57.000Z","dependencies_parsed_at":"2024-12-13T10:34:33.256Z","dependency_job_id":"53a7f7fd-9a61-4662-ae45-55c663deb122","html_url":"https://github.com/CommandJoo/Tuirmite","commit_stats":null,"previous_names":["commandjoo/java-native-ncurses","commandjoo/tuirmite"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CommandJoo%2FTuirmite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CommandJoo%2FTuirmite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CommandJoo%2FTuirmite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CommandJoo%2FTuirmite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CommandJoo","download_url":"https://codeload.github.com/CommandJoo/Tuirmite/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240331361,"owners_count":19784646,"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":["cli","curses","curses-library","curses-ui","java","jni","jni-java","jni-wrapper","linux-app","native","ncurses","ncurses-library","ncurses-tui","terminal-app","terminal-based","tui","wrapper"],"created_at":"2025-01-05T04:26:49.602Z","updated_at":"2026-05-13T21:35:08.316Z","avatar_url":"https://github.com/CommandJoo.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eWelcome to Tuirmite 👋\u003c/h1\u003e\n\u003cp\u003e\n  \u003cimg alt=\"Version\" src=\"https://img.shields.io/badge/version-1.0.5-blue.svg?cacheSeconds=2592000\" /\u003e\n\u003c/p\u003e\n\u003ca href=\"https://www.cprogramming.com/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://raw.githubusercontent.com/devicons/devicon/master/icons/c/c-original.svg\" alt=\"c\" width=\"40\" height=\"40\"/\u003e \u003c/a\u003e \u003ca href=\"https://www.java.com\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://raw.githubusercontent.com/devicons/devicon/master/icons/java/java-original.svg\" alt=\"java\" width=\"40\" height=\"40\"/\u003e \u003c/a\u003e\n\n\u003e Tuirmite is an NCurses wrapper written in Java, it provides direct access to many NCurses methods, and also provides an API for directly creating GUIs using Windows Buttons and Text fields\n\n***\n## Quickstart\nDownload\n[The latest version](https://github.com/CommandJoo/Tuirmite/releases/latest)\nand add it as a Library to your Project\n\nAlternatively\nClone the Repository\n```shell\ngit clone https://github.com/CommandJoo/Tuirmite\n```\n\n***\n## Usage\n\n### Running the Application\nBuilding the library:\n- compiling and linking the library\n```sh\ncd ./src/native\nmake compile\nmake lib\n```\n- Generating the header and then compiling and linking the library\n```sh\ncd ./src/native\nmake\n```\n\nRunning the Jar\n```sh\njava -jar \"build/libs/Tuirmite.jar\"\n#or\n./run\n```\n\n### Creating a GUI in Tuirmite\n```java\n...\npublic static void main(String[] args) {\n    int fps = 30;//too high fps will cause flickering\n    int width = 40;//minimum width in characters\n    int width = 10;//minimum height in lines\n    WindowManager windowManager = new WindowManager(fps, width, height, false);\n    MyWindow win = WindowBuilder\u003cMyWindow\u003e()\n            .at(0,0).bounds(100, 20)\n            .color(CursesConstants.DARK_CYAN)\n            .build(MyWindow::new);\n    Window window = windowManager.addWindow(0, win);//add a window to the screen and make it be the actively rendered one\n    \n    windowManager.render();//starts the drawing\n    windowManager.handleKey();//starts listening for inputs\n}\n```\n```java\npublic class MyWindow {\n    public MyWindow() {}\n    \n    public void init() {\n        //initialize your components like Textfields\n    }\n    \n    public void draw() {\n        //Draw things like Text which aren't a component\n    }\n    \n    public boolean handleKey(char ch) {\n        for(Component comp : getComponents()) {\n            comp.handleKey(ch);\n        }\n        return false;\n    }\n    \n    public boolean handleClick(Mouse mouse) {\n        return false;\n    }\n}\n```\nA working example of all the basic components and formatting can be found in [ExampleProject](src/main/java/de/johannes/example/Example.java)\n\u003cbr\u003e A Simple Snake-Game can also be found here: [Snake](src/main/java/de/johannes/snake/SnakeWindow.java)\n***\n## Author\n\n**Johannes Hans** ([@CommandJoo](https://github.com/CommandJoo))\n\n## Show your support\n\nGive a ⭐️ if this project helped you!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcommandjoo%2Ftuirmite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcommandjoo%2Ftuirmite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcommandjoo%2Ftuirmite/lists"}