All Projects → zdharma → Zui

zdharma / Zui

Licence: other
⬢ Zsh User Interface library – CGI+DHTML-like rapid application development with Zsh

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Zui

Finalcut
A text-based widget toolkit
Stars: ✭ 244 (+156.84%)
Mutual labels:  terminal, console, tui, tty, framework, library
Dte
A small, configurable console text editor (moved to https://gitlab.com/craigbarnes/dte)
Stars: ✭ 98 (+3.16%)
Mutual labels:  terminal, console, tui, tty, curses
Brick
A declarative Unix terminal UI programming library written in Haskell
Stars: ✭ 1,070 (+1026.32%)
Mutual labels:  terminal, tui, curses, framework
Pulsemixer
CLI and curses mixer for PulseAudio
Stars: ✭ 441 (+364.21%)
Mutual labels:  terminal, console, tui, curses
Htop
htop is an interactive text-mode process viewer for Unix systems. It aims to be a better 'top'.
Stars: ✭ 5,626 (+5822.11%)
Mutual labels:  console-application, terminal, console, tui
Tuicss
Text-based user interface CSS library
Stars: ✭ 167 (+75.79%)
Mutual labels:  terminal, tui, curses, framework
Laravel Zero
A PHP framework for console artisans
Stars: ✭ 2,821 (+2869.47%)
Mutual labels:  console-application, terminal, console, framework
Tty Markdown
Convert a markdown document or text into a terminal friendly output.
Stars: ✭ 275 (+189.47%)
Mutual labels:  console-application, terminal, console, tty
C Sharp Console Gui Framework
A GUI framework for C# console applications
Stars: ✭ 838 (+782.11%)
Mutual labels:  terminal, console, tui, framework
Termenv
Advanced ANSI style & color support for your terminal applications
Stars: ✭ 555 (+484.21%)
Mutual labels:  terminal, console, tui
Clui
Command Line User Interface (Console UI inspired by TurboVision)
Stars: ✭ 561 (+490.53%)
Mutual labels:  terminal, console, tui
Ltui
🍖 A cross-platform terminal ui library based on Lua
Stars: ✭ 624 (+556.84%)
Mutual labels:  terminal, tui, curses
Picotui
Lightweight, pure-Python Text User Interface (TUI) widget toolkit with minimal dependencies. Dedicated to the Pycopy project.
Stars: ✭ 547 (+475.79%)
Mutual labels:  terminal, tui, curses
Rtv
Browse Reddit from your terminal
Stars: ✭ 4,558 (+4697.89%)
Mutual labels:  terminal, tui, curses
Python Progressbar
Progressbar 2 - A progress bar for Python 2 and Python 3 - "pip install progressbar2"
Stars: ✭ 682 (+617.89%)
Mutual labels:  terminal, console, library
Terminaltables
Generate simple tables in terminals from a nested list of strings.
Stars: ✭ 685 (+621.05%)
Mutual labels:  terminal, console, library
Upterm
A terminal emulator for the 21st century.
Stars: ✭ 19,441 (+20364.21%)
Mutual labels:  terminal, console, tty
Ruby jard
Just Another Ruby Debugger. Provide a rich Terminal UI that visualizes everything your need, navigates your program with pleasure, stops at matter places only, reduces manual and mental efforts. You can now focus on real debugging.
Stars: ✭ 669 (+604.21%)
Mutual labels:  terminal, console, tty
Ueberzug
ueberzug is a command line util which allows to display images in combination with X11
Stars: ✭ 711 (+648.42%)
Mutual labels:  terminal, console, tui
Tty Font
Terminal fonts
Stars: ✭ 44 (-53.68%)
Mutual labels:  terminal, console, tty

ZUI logo

paypal

⬢ ZUI – CGI+DHTML-like User Interface Library for Zsh / ZCurses

License (GPL version 3) MIT License ZSH 4.3.17

Dharma logos

This is a RAD (Rapid Application Development) textual user interface library for Zsh. It in many aspects resembles typical CGI+(D)HTML setup. There are:

  • generators ran on "server" side (basic Zshell-code that is just generating text!),
  • event loop that turns the generated text into document with active elements (buttons, anchors, toggle buttons, text fields, list boxes),
  • mechanism to regenerate document parts from the original generators.

So, a Zshell code generates text. It is then turned into document with hyperlinks. DHTML-like calls are possible that will regenerate document parts on the fly. Page can be also reloaded with input data, just like an HTML page.

A voiced video tutorial shows how to create an application – Nmap network scanner frontend.

Hello World

# Started from Zle or from command line

-zui_std_cleanup deserialize:"zui-demo-hello-world"
-zui_std_init app:"zui-demo-hello-world" app_name:"ZUI Hello World"
emulate -LR zsh -o extendedglob -o typesetsilent -o warncreateglobal
-zui_std_init2 # after emulate -LR

-zui_std_store_default_app_config b:border 1

demo_generator_A() {
    local mod="$1" ice="$2"

    # Content, no hyper-links
    reply=( "Hello World from ${ZUI[YELLOW]}ZUI${ZUI[FMT_END]}! Module $mod, instance $ice." )

    # Non-selectable lines   Hops to jump with [ and ]   Local anchors
    reply2=( )               reply3=( 1 )                reply4=( )
}

## Start application ##
zui-event-loop 1:demo_generator_A

-zui_std_cleanup serialize

Hello World screenshot

Other example which uses list-box: zui-demo-list-box

The API is described at the wiki. Checkout screenshots and Asciinema recordings.

Installation

The plugin is "standalone", which means that only sourcing it is needed. So to install, unpack zui somewhere and add

source {where-zui-is}/zui.plugin.zsh

to zshrc.

If using a plugin manager, then Zplugin is recommended, but you can use any other too, and also install with Oh My Zsh (by copying directory to ~/.oh-my-zsh/custom/plugins).

Zplugin

Add zplugin load zdharma/zui to your .zshrc file. Zplugin will handle cloning the plugin for you automatically the next time you start zsh. To update (i.e. to pull from origin) issue zplugin update zdharma/zui.

Antigen

Add antigen bundle zdharma/zui to your .zshrc file. Antigen will handle cloning the plugin for you automatically the next time you start zsh.

Oh-My-Zsh

  1. cd ~/.oh-my-zsh/custom/plugins
  2. git clone [email protected]:zdharma/zui.git
  3. Add zui to your plugin list

Zgen

Add zgen load zdharma/zui to your .zshrc file in the same place you're doing your other zgen load calls in.

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].