.\" Automatically generated by Pandoc 2.17.1.1
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "notcurses-demo" "1" "v3.0.9" "" ""
.hy
.SH NAME
.PP
notcurses-demo - Show off some Notcurses features
.SH SYNOPSIS
.PP
\f[B]notcurses-demo\f[R]\ [\f[B]-h\f[R]|\f[B]--help\f[R]]\ [\f[B]-p\f[R]\ \f[B]\f[BI]path\f[B]\f[R]]\ [\f[B]-d\f[R]\ \f[B]\f[BI]delaymult\f[B]\f[R]]
[\f[B]-l\f[R]\ \f[B]\f[BI]loglevel\f[B]\f[R]]\ [\f[B]-J\f[R]
\f[B]\f[BI]jsonfile\f[B]\f[R]] [\f[B]-m\f[R]
\f[B]\f[BI]margins\f[B]\f[R]] [\f[B]-V\f[R]|\f[B]--version\f[R]]
[\f[B]-kc\f[R]]\ \f[B]\f[BI]demospec\f[B]\f[R]
.SH DESCRIPTION
.PP
\f[B]notcurses-demo\f[R] demonstrates the capabilities of the Notcurses
library.
It can be run in any terminal emulator or console with a correct
terminfo(5) database, but is at is best in a 24bpp TrueColor RGB
environment.
If \f[B]notcurses-demo\f[R] seems to generate garbage, something is
likely configured in a way that is going to prevent Notcurses from
working in other applications.
.PP
The demonstrations include (see NOTES below):
.IP \[bu] 2
(\f[B]\f[BI]a\f[B]\f[R])nimate\[em]explore cycles within Unicode
.IP \[bu] 2
(\f[B]\f[BI]b\f[B]\f[R])oxes\[em]pulsating boxes with a transparent
center
.IP \[bu] 2
(\f[B]\f[BI]c\f[B]\f[R])hunli\[em]the strongest woman in the world
.IP \[bu] 2
(\f[B]\f[BI]d\f[B]\f[R])ragon\[em]the Harter-Heighway dragon curve
.IP \[bu] 2
(\f[B]\f[BI]e\f[B]\f[R])agle\[em]they took some time off my life, back
in the day
.IP \[bu] 2
(\f[B]\f[BI]f\f[B]\f[R])ission\[em]the screen falls apart under heavy
blows
.IP \[bu] 2
(\f[B]\f[BI]g\f[B]\f[R])rid\[em]a gradient of color lain atop a great
grid
.IP \[bu] 2
(\f[B]\f[BI]h\f[B]\f[R])ighcon\[em]high contrast text atop various
colors
.IP \[bu] 2
(\f[B]\f[BI]i\f[B]\f[R])ntro\[em]a setting of tone
.IP \[bu] 2
(\f[B]\f[BI]j\f[B]\f[R])ungle\[em]low-bandwidth color cycling reveals
ancient ruins
.IP \[bu] 2
(\f[B]\f[BI]k\f[B]\f[R])eller\[em]the miracle of sight, and painting
with Braille
.IP \[bu] 2
(\f[B]\f[BI]l\f[B]\f[R])uigi\[em]a dashing Apennine plumber in a world
of fire
.IP \[bu] 2
(\f[B]\f[BI]m\f[B]\f[R])ojibake\[em]today\[aq]s fresh catch of emoji
(market price)
.IP \[bu] 2
(\f[B]\f[BI]n\f[B]\f[R])ormal\[em]a normal map of a friend, with effects
.IP \[bu] 2
(\f[B]\f[BI]o\f[B]\f[R])utro\[em]a message of hope from the
library\[aq]s author
.IP \[bu] 2
(\f[B]\f[BI]q\f[B]\f[R])rcode\[em]quick response codes (from ISO/IEC
18004:2015)
.IP \[bu] 2
(\f[B]\f[BI]r\f[B]\f[R])eel\[em]demonstration of the ncreel high-level
widget
.IP \[bu] 2
(\f[B]\f[BI]s\f[B]\f[R])liders\[em]a missing-piece puzzle made up of
colorful blocks
.IP \[bu] 2
(\f[B]\f[BI]t\f[B]\f[R])rans\[em]an exploration of various
transparencies
.IP \[bu] 2
(\f[B]\f[BI]u\f[B]\f[R])niblocks\[em]a series of blocks detailing
Unicode pages
.IP \[bu] 2
(\f[B]\f[BI]v\f[B]\f[R])iew\[em]images and a video are rendered as text
.IP \[bu] 2
(\f[B]\f[BI]w\f[B]\f[R])hiteout\[em]a great Nothing slowly robs the
world of color
.IP \[bu] 2
(\f[B]\f[BI]x\f[B]\f[R])ray\[em]stimulate a logo with energy
.IP \[bu] 2
(\f[B]\f[BI]y\f[B]\f[R])ield\[em]the best laid schemes o\[aq] mice
an\[aq]men gang aft agley
.IP \[bu] 2
(\f[B]\f[BI]z\f[B]\f[R])oo\[em]see the marvelous widgets of the
Notcurses world
.PP
At any time, press \[aq]q\[aq] to quit.
The demo is best run in at least an 80x45 terminal, and will refuse to
run in anything smaller than 80x24.
.SH OPTIONS
.PP
\f[B]-p\f[R] \f[B]\f[BI]path\f[B]\f[R]: Look in the specified
\f[B]\f[BI]path\f[B]\f[R] for data files.
.PP
\f[B]-d\f[R] \f[B]\f[BI]delaymult\f[B]\f[R]: Apply a non-negative
rational multiplier to the standard delay of 1s.
.PP
\f[B]-l\f[R] \f[B]\f[BI]loglevel\f[B]\f[R]: Log between everything
(loglevel 7) and nothing (loglevel 0) to stderr.
.PP
\f[B]-f\f[R] \f[B]\f[BI]renderfile\f[B]\f[R]: Render each frame to
\f[B]\f[BI]renderfile\f[B]\f[R] in addition to the screen.
.PP
\f[B]-J\f[R] \f[B]\f[BI]jsonfile\f[B]\f[R]: Emit JSON summary of run to
\f[B]\f[BI]jsonfile\f[B]\f[R].
.PP
\f[B]-m\f[R] \f[B]\f[BI]margins\f[B]\f[R]: Define rendering margins (see
below).
.PP
\f[B]-k\f[R]: Inhibit use of the alternate screen.
Necessary if you want the output left on your terminal after the program
exits.
.PP
\f[B]-c\f[R]: Do not attempt to seed the PRNG.
This is useful when benchmarking.
.PP
\f[B]-h\f[R]|\f[B]--help\f[R]: Print a usage message, and exit with
success.
.PP
\f[B]-V\f[R]|\f[B]--version\f[R]: Print the program name and version,
and exit with success.
.PP
\f[B]\f[BI]demospec\f[B]\f[R]: Select which demos to run, and what order
to run them in.
The default is \f[B]ixetunchdmbkywjgarvlsfqzo\f[R].
See above for a list of demos.
.PP
Default margins are all 0, and thus the full screen will be rendered.
Using \f[B]-m\f[R], 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.
.SH NOTES
.PP
Proper display requires:
.IP \[bu] 2
A terminal advertising the \f[B]rgb\f[R] terminfo(5) capability, or that
the environment variable \f[B]COLORTERM\f[R] is defined to
\f[B]24bit\f[R] (and that the terminal honors RGB escapes),
.IP \[bu] 2
A monospaced font, and
.IP \[bu] 2
Good Unicode support in your libc, font, and terminal emulator.
.PP
The Debian version of \f[B]notcurses-demo\f[R] leaves out certain
multimedia considered non-free under the Debian Free Software
Guidelines.
As a result, the \f[B]chunli\f[R], \f[B]eagle\f[R], \f[B]jungle\f[R],
\f[B]keller\f[R], \f[B]luigi\f[R], and \f[B]view\f[R] demos are
unavailable through the Debian package.
This applies to any distro which uses the DFSG source tarball, including
Ubuntu and Fedora.
.PP
If Notcurses is built without multimedia support, the \f[B]chunli\f[R],
\f[B]eagle\f[R], \f[B]keller\f[R], \f[B]outro\f[R], \f[B]view\f[R],
\f[B]xray\f[R], and \f[B]yield\f[R] demos will be partially or wholly
unavailable.
If Notcurses is built without libqrcodegen, the \f[B]qrcode\f[R] demo
will be unavailable.
.PP
If \f[B]notcurses-demo\f[R] is run in a terminal lacking the
\f[B]can_change\f[R] terminfo capability, the \f[B]jungle\f[R] demo will
be skipped.
.PP
The following keypresses are recognized (and are also available from the
menu):
.IP \[bu] 2
\f[B]Ctrl-U\f[R]: Toggle the help screen.
.IP \[bu] 2
\f[B]H\f[R]: Toggle the HUD.
The HUD shows the most recent and current demos\[aq] runtime and number
of rendered frames.
It can be grabbed and moved with the mouse.
.IP \[bu] 2
\f[B]P\f[R]: Toggle the FPS graph.
.IP \[bu] 2
\f[B]Ctrl-R\f[R]: Restart the demo.
.IP \[bu] 2
\f[B]Ctrl-L\f[R]: Redraw the screen.
.IP \[bu] 2
\f[B]Alt-d\f[R]: Toggle a window with debugging information.
.IP \[bu] 2
\f[B]q\f[R]: Quit.
.PP
Benchmarking should be performed using \f[B]-c\f[R] to get a
well-defined PRNG seed.
JSON output via \f[B]-J\f[R] will probably be useful.
.SH BUGS
.PP
Certain demos (especially \f[B]mojibake\f[R] and \f[B]uniblocks\f[R])
heavily exercise the font rendering stack.
If your font or rendering engine draws glyphs with width different from
that reported by the standard library\[aq]s \f[B]wcwidth(3)\f[R],
Notcurses will have an incorrect notion of cursor placement, leading to
undesirable behavior.
.SH COPYRIGHT
.IP \[bu] 2
All code and design copyright Nick Black <nickblack@linux.com>.
.IP \[bu] 2
Images from Street Fighter II and Mega Man 2 copyright Capcom of
America.
.IP \[bu] 2
Images from Super Mario Bros.
copyright Nintendo of America.
.IP \[bu] 2
Images from Ninja Gaiden copyright Koei Tecmo America.
.IP \[bu] 2
Images from Final Fantasy copyright Square Enix Co Ltd.
.IP \[bu] 2
Images from Back to the Future copyright Universal Studios and U-Drive
Joint Venture.
.IP \[bu] 2
\[dq]Jungle with Rain\[dq] copyright Mark Ferrari/Living Worlds.
.SH SEE ALSO
.PP
\f[B]notcurses(3)\f[R], \f[B]ncurses(3NCURSES)\f[R],
\f[B]wcwidth(3)\f[R], \f[B]terminfo(5)\f[R]
.SH AUTHORS
nick black <nickblack@linux.com>.
