2020-01-11 06:59:02 +00:00
% notcurses-demo(1)
% nick black < nickblack @ linux . com >
2021-04-12 09:01:58 +00:00
% v2.2.6
2020-01-11 06:59:02 +00:00
# NAME
2021-03-12 05:59:29 +00:00
notcurses-demo - Show off some Notcurses features
2020-01-11 06:59:02 +00:00
# SYNOPSIS
2020-12-31 03:42:18 +00:00
**notcurses-demo** [**-h**|**--help**] [**-p** ** *path***] [**-d** ** *delaymult***]
[**-l** ** *loglevel***] [**-f** ** *renderfile***] [**-J** ** *jsonfile***] [**-m** ** *margins***]
2021-03-12 03:28:30 +00:00
[**-V**|**--version**] [**-kc**] ** *demospec***
2020-01-11 06:59:02 +00:00
# DESCRIPTION
2021-03-12 05:59:29 +00:00
**notcurses-demo** demonstrates the capabilities of the Notcurses library. It
2020-01-11 06:59:02 +00:00
can be run in any terminal emulator or console with a correct terminfo(5)
2020-03-13 09:07:33 +00:00
database, but is at is best in a 24bpp TrueColor RGB environment. If
2020-01-12 15:15:56 +00:00
**notcurses-demo** seems to generate garbage, something is likely configured in
2021-03-12 05:59:29 +00:00
a way that is going to prevent Notcurses from working in other applications.
2020-01-11 06:59:02 +00:00
2020-02-05 03:49:46 +00:00
The demonstrations include (see NOTES below):
2020-01-11 06:59:02 +00:00
2021-01-13 05:34:29 +00:00
* (***a***)nimate—explore cycles within Unicode
2020-12-31 03:42:18 +00:00
* (***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***)allin'—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
2021-03-12 05:59:29 +00:00
* (***z***)oo—see the marvelous widgets of the Notcurses world
2020-01-11 06:59:02 +00:00
2020-12-31 03:36:58 +00:00
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.
2020-01-11 06:59:02 +00:00
# OPTIONS
2020-12-31 03:42:18 +00:00
**-p** ** *path***: Look in the specified ** *path*** for data files.
2020-01-11 06:59:02 +00:00
2020-12-31 03:42:18 +00:00
**-d** ** *delaymult***: Apply a non-negative rational multiplier to the standard delay of 1s.
2020-01-11 06:59:02 +00:00
2021-04-16 06:17:23 +00:00
**-l** ** *loglevel***: Log between everything (loglevel 8) and nothing (loglevel 0) to stderr.
2020-01-14 20:50:17 +00:00
2020-12-31 03:42:18 +00:00
**-f** ** *renderfile***: Render each frame to ** *renderfile*** in addition to the screen.
2020-02-07 06:05:27 +00:00
2020-12-31 03:42:18 +00:00
**-J** ** *jsonfile***: Emit JSON summary of run to ** *jsonfile***.
2020-02-27 08:27:54 +00:00
2020-12-31 03:42:18 +00:00
**-m** ** *margins***: Define rendering margins (see below).
2020-03-13 09:07:33 +00:00
2020-01-11 06:59:02 +00:00
**-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.
2020-12-31 07:28:47 +00:00
**-h**|**--help**: Print a usage message, and exit with success.
2020-01-11 06:59:02 +00:00
2020-12-31 07:28:47 +00:00
**-V**|**--version**: Print the program name and version, and exit with success.
2020-01-11 06:59:02 +00:00
2020-12-31 03:42:18 +00:00
***demospec***: Select which demos to run, and what order to run them in. The
2021-01-20 07:24:49 +00:00
default is **ixezcytnhdmbkgarwuvlsfjqo** . See above for a list of demos.
2020-01-11 06:59:02 +00:00
2020-03-13 09:07:33 +00:00
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.
2020-01-11 06:59:02 +00:00
# NOTES
2020-02-05 15:41:13 +00:00
2020-01-11 06:59:02 +00:00
Proper display requires:
2020-01-12 02:47:03 +00:00
2020-04-19 21:12:13 +00:00
* A terminal advertising the **rgb** terminfo(5) capability, or that the environment variable **COLORTERM** is defined to **24bit** (and that the terminal honors RGB escapes),
2020-01-11 06:59:02 +00:00
* A monospaced font, and
* Good Unicode support in your libc, font, and terminal emulator.
2020-10-23 14:52:18 +00:00
The Debian version of **notcurses-demo** leaves out certain multimedia
considered non-free under the Debian Free Software Guidelines. As a result, the
2020-10-28 08:56:20 +00:00
**chunli**, **eagle** , **jungle** , **keller** , **luigi** , and **view** demos
are unavailable through the Debian package. This applies to any distro which
uses the DFSG source tarball, including Ubuntu and Fedora.
2020-02-05 03:49:46 +00:00
2021-03-12 05:59:29 +00:00
If Notcurses is built without multimedia support, the **chunli** , **eagle** ,
2020-10-28 08:56:20 +00:00
**keller**, **outro** , **view** , **xray** , and **yield** demos will be
2021-03-12 05:59:29 +00:00
partially or wholly unavailable. If Notcurses is built without libqrcodegen,
2020-10-28 08:56:20 +00:00
the **qrcode** demo will be unavailable.
2020-01-17 13:09:19 +00:00
2020-02-19 23:44:53 +00:00
If **notcurses-demo** is run in a terminal lacking the **can_change** terminfo
2020-10-28 08:56:20 +00:00
capability, the **jungle** demo will be skipped.
2020-02-19 23:44:53 +00:00
2020-02-18 17:36:16 +00:00
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.
2020-12-28 14:38:49 +00:00
* **P**: Toggle the FPS graph.
2020-02-18 17:36:16 +00:00
* **Ctrl-R**: Restart the demo.
2020-12-28 14:38:49 +00:00
* **Alt-d**: Toggle a window with debugging information.
2020-02-18 17:36:16 +00:00
* **q**: Quit.
2020-09-16 18:25:25 +00:00
Benchmarking should be performed using ** -c** to get a well-defined PRNG seed.
JSON output via ** -J** will probably be useful.
2020-02-05 15:41:13 +00:00
# BUGS
2020-01-17 13:09:19 +00:00
2021-01-13 05:34:29 +00:00
Certain demos (especially **mojibake** and **uniblocks** ) heavily exercise the
2020-09-16 18:25:25 +00:00
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.
2020-02-20 03:51:02 +00:00
# COPYRIGHT
2020-01-18 21:06:39 +00:00
2020-08-24 05:43:31 +00:00
* All code and design copyright Nick Black < nickblack @ linux . com > .
2020-01-18 21:06:39 +00:00
* Images from Street Fighter II and Mega Man 2 copyright Capcom of America.
* Images from Super Mario Bros. copyright Nintendo of America.
* Images from Ninja Gaiden copyright Koei Tecmo America.
2020-02-05 15:41:13 +00:00
* Images from Final Fantasy copyright Square Enix Co Ltd.
2021-04-12 12:08:03 +00:00
* Images from Back to the Future copyright Universal Studios and U-Drive Joint Venture.
2020-09-16 18:25:25 +00:00
* "Jungle with Rain" copyright Mark Ferrari/Living Worlds.
2020-01-18 21:06:39 +00:00
2020-01-11 06:59:02 +00:00
# SEE ALSO
2020-02-12 01:46:39 +00:00
**notcurses(3)**,
**ncurses(3NCURSES)**,
2020-09-16 18:25:25 +00:00
**wcwidth(3)**,
2020-02-12 01:46:39 +00:00
**terminfo(5)**