All Projects → McParen → croatoan

McParen / croatoan

Licence: MIT License
Common Lisp bindings for the ncurses terminal library.

Programming Languages

common lisp
692 projects

Projects that are alternatives of or similar to croatoan

Dte
A small, configurable console text editor (moved to https://gitlab.com/craigbarnes/dte)
Stars: ✭ 98 (-11.71%)
Mutual labels:  console, tui, ncurses, curses
Termox
C++17 Terminal User Interface(TUI) Library.
Stars: ✭ 306 (+175.68%)
Mutual labels:  tui, ncurses, curses
Pulsemixer
CLI and curses mixer for PulseAudio
Stars: ✭ 441 (+297.3%)
Mutual labels:  console, tui, curses
Tuicss
Text-based user interface CSS library
Stars: ✭ 167 (+50.45%)
Mutual labels:  tui, ncurses, curses
Mandown
man-page inspired Markdown viewer
Stars: ✭ 173 (+55.86%)
Mutual labels:  console, tui, ncurses
cxxcurses
Header only ncurses wrapper
Stars: ✭ 24 (-78.38%)
Mutual labels:  tui, ncurses, curses
Pacmixer
an alsamixer alike for PulseAudio.
Stars: ✭ 78 (-29.73%)
Mutual labels:  tui, ncurses, curses
Zui
⬢ Zsh User Interface library – CGI+DHTML-like rapid application development with Zsh
Stars: ✭ 95 (-14.41%)
Mutual labels:  console, tui, curses
Smenu
smenu started as a lightweight and flexible terminal menu generator, but quickly evolved into a powerful and versatile CLI selection tool for interactive or scripting use.
Stars: ✭ 1,906 (+1617.12%)
Mutual labels:  console, tui, command-line-interface
Asciimatics
A cross platform package to do curses-like operations, plus higher level APIs and widgets to create text UIs and ASCII art animations
Stars: ✭ 2,869 (+2484.68%)
Mutual labels:  console, tui, curses
bookwyrm
ncurses utility for downloading publicly available ebooks, plugin support
Stars: ✭ 31 (-72.07%)
Mutual labels:  tui, ncurses
todo list rust
Simple Ncurses Todo List ☑
Stars: ✭ 19 (-82.88%)
Mutual labels:  tui, ncurses
NCURSES-Programming-HOWTO-examples
CMake examples for code in http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/index.html
Stars: ✭ 114 (+2.7%)
Mutual labels:  tui, ncurses
git-tui
Collection of human friendly terminal interface for git.
Stars: ✭ 95 (-14.41%)
Mutual labels:  tui, curses
px
ps and top for human beings
Stars: ✭ 151 (+36.04%)
Mutual labels:  console, tui
ncurses
Ncurses bindings for Crystal
Stars: ✭ 20 (-81.98%)
Mutual labels:  ncurses, curses
jira-cli
🔥 [WIP] Feature-rich interactive Jira command line.
Stars: ✭ 809 (+628.83%)
Mutual labels:  console, tui
xplr
A hackable, minimal, fast TUI file explorer
Stars: ✭ 2,271 (+1945.95%)
Mutual labels:  console, tui
pytermgui
Python TUI framework with mouse support, modular widget system, customizable and rapid terminal markup language and more!
Stars: ✭ 1,270 (+1044.14%)
Mutual labels:  console, tui
hledger-iadd
A terminal UI as drop-in replacement for hledger add.
Stars: ✭ 61 (-45.05%)
Mutual labels:  tui, curses

croatoan

Introduction

croatoan is a set of bindings to the ncurses terminal library for Common Lisp.

It is inspired by, but not derived from, cl-ncurses and cl-charms.

The API is not yet stable, but the already finished parts are not expected to change much.

It is developed and tested on Ubuntu 20.04 x86_64 and SBCL 2.1.10.

The only supported ncurses version is 6.x –with-abi-version=6. The previous version 5.9 mostly works, but is not actively supported.

If your distribution still ships ncurses –with-abi-version=5, for full compatibility (wide characters, 256 colors and extended mouse support), you will have to manually build ncurses 6.x.

Goals

Its main goal is to provide a higher-level, lispy/CLOSy interface, whereas the existing bindings clone the cryptic C API.

As of now, the library is in an early, but hopefully usable stage. Ncurses is old and huge and it will take a while to cover completely.

A second goal is to reimplement the extension libraries forms, menu and dialog in Lisp instead of wrapping the C libraries.

A third, distant goal is to provide direct bindings for ANSI escape sequences, so that basic terminal control functions can be used from Lisp on systems without terminfo and ncurses.

Usage

The library is available in Quicklisp and can be installed with

(ql:quickload "croatoan")

Systems and packages

LibrarySystemPackageShort nickname
Higl-level CLOS APIcroatoancroatoancrt
Low-level ncurses bindingscroatoan-ncursesncurses
ANSI X3.64 escape sequencesansi-escapeansi-escapeesc

Documentation

The documentation is currently provided by the docstrings and the commented examples.

SLIME/Thread support

Since ncurses is not thread-safe, all IO has to occur in the main thread of the REPL running in a terminal.

This makes it difficult to interact with ncurses from the Emacs SLIME REPL which runs in its own thread.

A workaround is to pass all ncurses IO to the main thread via a thread-safe queue. Basic support for this has been implemented.

A tutorial on interacting with ncurses from swank/slime is available in docs/slime.md

Contributing

You are welcome to contribute and any form of help would be greatly appreciated.

Contact

Please direct any questions about ncurses, croatoan or other terminal-related Lisp topics, libraries and applications to the following mailing list:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].