logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

notcurses-demo - Show off some Notcurses features

Authors

       nick black <nickblack@linux.com>.

                                                     v3.0.7                                    notcurses-demo(1)

Bugs

       Certain  demos  (especially  mojibake  and uniblocks) heavily exercise the font rendering stack.  If your
       font or rendering engine draws glyphs with width different from that reported by the  standard  library's
       wcwidth(3), Notcurses will have an incorrect notion of cursor placement, leading to undesirable behavior.

Description

notcurses-demo demonstrates the capabilities of the Notcurses library.  It can be run in any terminal em‐
       ulator or console with a correct terminfo(5) database, but is at is best in a 24bpp TrueColor  RGB  envi‐
       ronment.   If  notcurses-demo  seems to generate garbage, something is likely configured in a way that is
       going to prevent Notcurses from working in other applications.

       The demonstrations include (see NOTES below):

       • (a)nimate—explore cycles within Unicode

       • (b)oxes—pulsating boxes with a transparent center

       • (c)hunli—the strongest woman in the world

       • (d)ragon—the Harter-Heighway dragon curve

       • (e)agle—they took some time off my life, back in the day

       • (f)ission—the screen falls apart under heavy blows

       • (g)rid—a gradient of color lain atop a great grid

       • (h)ighcon—high contrast text atop various colors

       • (i)ntro—a setting of tone

       • (j)ungle—low-bandwidth color cycling reveals ancient ruins

       • (k)eller—the miracle of sight, and painting with Braille

       • (l)uigi—a dashing Apennine plumber in a world of fire

       • (m)ojibake—today's fresh catch of emoji (market price)

       • (n)ormal—a normal map of a friend, with effects

       • (o)utro—a message of hope from the library's author

       • (q)rcode—quick response codes (from ISO/IEC 18004:2015)

       • (r)eel—demonstration of the ncreel high-level widget

       • (s)liders—a missing-piece puzzle made up of colorful blocks

       • (t)rans—an exploration of various transparencies

       • (u)niblocks—a series of blocks detailing Unicode pages

       • (v)iew—images and a video are rendered as text

       • (w)hiteout—a great Nothing slowly robs the world of color

       • (x)ray—stimulate a logo with energy

       • (y)ield—the best laid schemes o' mice an'men gang aft agley

       • (z)oo—see the marvelous widgets of the Notcurses world

       At any time, press 'q' to quit.  The demo is best run in at least an 80x45 terminal, and will  refuse  to
       run in anything smaller than 80x24.

Name

       notcurses-demo - Show off some Notcurses features

Notes

       Proper display requires:

       • A  terminal  advertising  the rgbterminfo(5) capability, or that the environment variable COLORTERM is
         defined to 24bit (and that the terminal honors RGB escapes),

       • A monospaced font, and

       • Good Unicode support in your libc, font, and terminal emulator.

       The Debian version of notcurses-demo leaves out certain multimedia considered non-free under  the  Debian
       Free  Software Guidelines.  As a result, the chunli, eagle, jungle, keller, luigi, and view demos are un‐
       available through the Debian package.  This applies to any distro which uses the DFSG source tarball, in‐
       cluding Ubuntu and Fedora.

       If Notcurses is built without multimedia support, the chunli, eagle, keller, outro, view, xray, and yield
       demos will be partially or wholly unavailable.  If Notcurses is built without  libqrcodegen,  the  qrcode
       demo will be unavailable.

       If  notcurses-demo  is run in a terminal lacking the can_change terminfo capability, the jungle demo will
       be skipped.

       The following keypresses are recognized (and are also available from the menu):

       • Ctrl-U: Toggle the help screen.

       • H: Toggle the HUD.  The HUD shows the most recent and current demos' runtime  and  number  of  rendered
         frames.  It can be grabbed and moved with the mouse.

       • P: Toggle the FPS graph.

       • Ctrl-R: Restart the demo.

       • Ctrl-L: Redraw the screen.

       • Alt-d: Toggle a window with debugging information.

       • q: Quit.

       Benchmarking should be performed using -c to get a well-defined PRNG seed.  JSON output via -J will prob‐
       ably be useful.

Options

-ppath: Look in the specified path for data files.

       -ddelaymult: Apply a non-negative rational multiplier to the standard delay of 1s.

       -lloglevel: Log between everything (loglevel 7) and nothing (loglevel 0) to stderr.

       -frenderfile: Render each frame to renderfile in addition to the screen.

       -Jjsonfile: Emit JSON summary of run to jsonfile.

       -mmargins: Define rendering margins (see below).

       -k:  Inhibit  use  of the alternate screen.  Necessary if you want the output left on your terminal after
       the program exits.

       -c: Do not attempt to seed the PRNG.  This is useful when benchmarking.

       -h|--help: Print a usage message, and exit with success.

       -V|--version: Print the program name and version, and exit with success.

       demospec: Select which demos to run, and what order to run them  in.   The  default  is  ixetunchdmbkywj‐garvlsfqzo.  See above for a list of demos.

       Default margins are all 0, and thus the full screen will be rendered.  Using -m, margins can be supplied.
       Provide a single number to set all four margins to the same value, or four comma-delimited values for the
       top, right, bottom, and left margins respectively.  Negative margins are illegal.

See Also

notcurses(3), ncurses(3NCURSES), wcwidth(3), terminfo(5)

Synopsis

notcurses-demo [-h|--help] [-ppath] [-ddelaymult]  [-lloglevel] [-Jjsonfile] [-mmargins] [-V|--ver‐sion] [-kc] demospec

See Also