Commit Graph

472 Commits

Author SHA1 Message Date
nick black
8416e6dfcf add José and igo95862 to README.md 2021-02-02 17:59:44 -05:00
nick black
7e227744d4
link to FOSDEM presentation video 2021-01-28 18:51:14 -05:00
nick black
52b9b9304a
link to FOSDEM presentation 2021-01-28 18:46:30 -05:00
nick black
6bb88c42ef
simplify wording in FAQ entry 2021-01-21 03:55:29 -05:00
nick black
7eafcfe598
rename notcurses-tetris -> nctetris 2021-01-21 03:51:12 -05:00
nick black
b0301c834d
git mv TERMS.md TERMINALS.md 2021-01-21 02:37:46 -05:00
nick black
feb592e590
add a note about static linking #1306 2021-01-21 01:26:58 -05:00
nick black
f8a835ce7c
not just poc but also pocpp 2021-01-20 01:41:48 -05:00
nick black
1631818784
rename notcurses-view to ncplayer #1299 2021-01-18 14:22:54 -05:00
Nick Black
9112185657
Split up notcurses/notcurses-core (#1297)
Extract `libnotcurses-core` from `libnotcurses`. The former contains everything except multimedia code. The latter contains multimedia stuff (a wrapper around FFmpeg or OIIO). If built with `-DUSE_MULTIMEDIA=none`, there will not be any `libnotcurses.so` generated. `libnotcurses.so` uses library constructors/destructors to insert its implementation into the `ncvisual` stack at runtime. Users linking `-lnotcurses` will get the full implementation; users linking `-lnotcurses-core` only will get the stack less multimedia code.

The upshot of this is that someone can compile/install only `libnotcurses-core`, and a program linked against it will work just fine. This eliminates the need to install the full (large) dependency stack of the multimedia code unless necessary. This will hopefully be useful for e.g. installers etc. Closes #339.
2021-01-18 14:10:04 -05:00
nick black
60cce801b5
add INSTALL.md #1294 2021-01-16 19:57:52 -05:00
Nick Black
ca46e52340
readme: work around github rendering problems :/ 2021-01-12 18:55:03 -05:00
nick black
7f98eac236
history: add FOSDEM presentation 2021-01-12 18:49:16 -05:00
nick black
09dcda0253
README: give DragonFly BSD some love #1121 2021-01-11 22:07:36 -05:00
nick black
5904f31c8e
add FAQ about multimedia-free operation 2021-01-11 12:48:50 -05:00
nick black
68b340e3c8
ncdirect: prep readline for use #1120 2021-01-08 07:28:24 -05:00
nick black
a22288223b
OTHERS: link to slok's grafterm 2021-01-07 18:57:58 -05:00
nick black
11e1b34521 README: remove unnecessary verbiage 2021-01-07 18:40:53 -05:00
nick black
7e9dc0d23b
trim README a bit 2020-12-30 01:06:51 -05:00
joseLuís
e174ad44e2 update rust version in readme 2020-12-23 20:17:10 +01:00
nick black
0920675db1
there are now three ways to hide a plane, sigh 2020-12-20 18:53:08 -05:00
nick black
45a7458553
grotesque 2020-12-16 10:58:36 -05:00
nick black
520ce356b0
add 2.1.0 to history 2020-12-13 03:24:20 -05:00
nick black
c8378e62ff
README: update video link 2020-12-03 01:58:15 -05:00
nick black
b9ae0eee8c
readme: note that some terminals draw block chars directly 2020-12-03 01:57:23 -05:00
nick black
f3688f44fb
CMake: add demo target 2020-12-03 01:47:40 -05:00
nick black
f6a5aebf71
link to ncurses/libunistring in readme 2020-12-03 01:39:09 -05:00
nick black
93fef72da8 mention ncls in README.md 2020-12-01 04:17:39 -05:00
nick black
1f40b0728e link to 2.0 hype video 2020-11-28 20:45:16 -05:00
nick black
48efdeb84f tighten up link to minidebconf 2020-11-28 20:45:16 -05:00
nick black
d5797d84d5 update data model diagram, link to debminiconf talk in history 2020-11-28 20:45:16 -05:00
Érico Nogueira Rolim
067b35fe9d README: fix dpkg command. 2020-11-25 11:14:53 -05:00
nick black
27c58a0284
add crates.io crate 2020-11-22 01:17:50 -05:00
nick black
a5b6ce135d
README: list demo for example code 2020-11-18 06:29:10 -05:00
nick black
1a3bf4132e sexblitter: eliminate use of uninitialized lowestcur in collect_mindiffs() 2020-10-29 18:15:42 -04:00
nick black
40ca9d3230 add pypi badge 2020-10-29 18:15:42 -04:00
nick black
356aad8eff c and c++ badges 2020-10-29 18:15:42 -04:00
nick black
50a8981d0d readme: align build badge 2020-10-29 18:15:42 -04:00
nick black
b56f5989bd some shields 2020-10-29 18:15:42 -04:00
nick black
6415775326
what's up with mosh? 2020-10-23 06:59:56 -04:00
nick black
22b1169f49
colors: s/always/usually/g 2020-10-21 02:12:34 -04:00
nick black
69a32c7643
notcurses-planereels is not installed, don't list it 2020-10-21 02:11:31 -04:00
nick black
3fe707d32f
document installation of python/rust wrappers 2020-10-21 02:10:56 -04:00
nick black
1df48e47fc
remove doubled colons 2020-10-21 02:03:55 -04:00
nick black
c31a78a244
notcurses-view: move to a complex marshal 2020-10-21 02:00:42 -04:00
nick black
c1c187f247
losing my goddamned mind 2020-10-16 22:04:47 -04:00
nick black
a67819a4a2
README: add links to OTHERS.md and TERMS.md 2020-10-16 22:03:32 -04:00
nick black
f880f8e3cf
'a point' idiot 2020-10-16 21:57:18 -04:00
nick black
7186c2590d
clarify LANG in FAQs 2020-10-16 21:56:29 -04:00
nick black
9d917d3243
faq faq faq 2020-10-16 21:55:22 -04:00
nick black
7aeb9cdf2d
use boldface in FAQs for delimiting 2020-10-16 21:54:07 -04:00
nick black
84b55bf61a
tighten up FAQs 2020-10-16 21:47:43 -04:00
nick black
80ca70159c
fuck java forever 2020-10-16 21:44:10 -04:00
nick black
db0dc15088
mention that API is stable since 2.0 2020-10-15 07:01:36 -04:00
nick black
ddb8198414
terminate sentence with period 2020-10-15 06:59:08 -04:00
nick black
33340434c0
readme stylings 2020-10-15 06:58:33 -04:00
nick black
f3ddc48002
drop distro paragraph, add heads-up about src/poc 2020-10-15 06:57:41 -04:00
nick black
a44090a7f7
s/notcurses/Notcurses/g 2020-10-12 09:44:03 -04:00
nick black
f39de36b4c
two new FAQs 2020-10-10 21:09:50 -04:00
nick black
8cbc9e1b3b
add 1.7.0 to history section 2020-10-01 12:08:22 -04:00
nick black
aa7acc0e7a
quick wording change to FAQs 2020-10-01 12:03:23 -04:00
nick black
4d7941f1b9
CMake: add USE_POC to control building poc binaries 2020-08-29 18:55:21 -04:00
nick black
f8854f84e8
demo summary: scale TheoFPS div by 1000 #928 2020-08-20 16:19:35 -04:00
nick black
2add9bacd6 wisdom? 2020-08-15 17:38:20 -04:00
nick black
99d90a4ecf
charset vs charencoding terminology 2020-08-14 16:30:54 -04:00
nick black
aebf2cdb9c
CMake: restore 3.14.0+ requirements 2020-08-13 23:38:10 -04:00
nick black
45e5d95774
ugh 2020-08-11 19:45:00 -04:00
Nick Black
11d6a4eb89
New reel layout algorithm #818 (#870)
New reel layout algorithm based on trimming and sifting. Fixes the original issue of #818, though I'm not marking that bug fixed until I've resolved the little issues remaining with this one.
Back off CMake version dependency, see if we can get by with 3.11.4 for EPEL8 #851
Simplify tablet drawing tremendously by separating tablet border and data planes. Callbacks no longer need worry about the borders; they can simply fill the plane they're handed. #833
Improve notcurses_debug() a bit
Add ncplane_new_named() and friends to expose plane naming to the user.
Add internal ncplane_genocide() to kill a plane and all its bound descendents
New industrial-strength ncreel unit testing
notcurses-ncreel now accepts -ln for log level n
Add ncplane_parent() and ncplane_parent_const()
2020-08-09 17:40:59 -04:00
nick black
f5f9808d80 install notcurses-pydemo.1 as part of python #836 2020-07-29 09:37:35 -04:00
nick black
604747c8f2 notcurses_puttext: use libunistring for wordbreaking #772 2020-07-22 03:31:54 -04:00
nick black
42b0be7f3a
Run PoC tests even without doctest #811
Add back the USE_DOCTEST CMake option, but make it conditional
upon BUILD_TESTING. If BUILD_TESTING is provided without
USE_DOCTEST, we build and run the PoC tests, just not
notcurses-tester. If neither is defined, no tests are available
(the PoC binaries are still built). If both are defined, build
the PoCs plus notcurses-tester, and run them all in make test.
2020-07-20 20:59:49 -04:00
nick black
62f6896715
CMake: remove python stuff; it'll be built externally 2020-07-13 08:30:32 -04:00
nick black
f5a84620d2
CMake: remove rust stuff; it's built externally 2020-07-12 06:36:55 -04:00
nick black
0ca1716cbd
README: purge alignment div, apache 2.0 badge 2020-07-09 04:16:03 -04:00
Nick Black
6685ff2767
right-align other badges alongside ToC 2020-07-09 04:10:39 -04:00
nick black
573a248da4
add Repology badge 2020-07-09 04:04:10 -04:00
nick black
8afd25fef6
FAQ entry about screen #757 2020-07-05 11:24:44 -04:00
nick black
8731b1191d
FAQ wording 2020-07-05 02:52:01 -04:00
nick black
3ebb5b0e4c
add 1.6.0 / Alpine to HISTORY 2020-07-03 23:41:26 -04:00
nick black
ef9e50be33 beef up 'what it is' a little; get our swag on 2020-07-01 20:30:06 -04:00
nick black
27c150b855 reorder introduction 2020-07-01 20:30:06 -04:00
nick black
32b1f3937c
add FAQ entry about xterm's eightBitInput resource #735 2020-06-28 22:31:17 -04:00
nick black
6ad8ef1dd3
add FAQ about TERM defintions 2020-06-25 01:27:14 -04:00
nick black
c5b517c448
note requirement of musl 1.20+ #733 2020-06-25 01:13:40 -04:00
nick black
3df44a05f7 Add link to 'glyph hell' 2020-06-17 16:44:32 -04:00
nick black
ffab8b5294 lay groundwork for ncneofetch #550 2020-06-17 16:44:32 -04:00
nick black
463f5acd6a CMake: unset cached result of qrcodegen header check #711 2020-06-16 13:40:16 -04:00
nick black
d3c3905996 FAQ entry about cmake+libqrcodegen-dev #711 2020-06-16 13:32:06 -04:00
nick black
ba31c575ba
README: discuss LANG and TERM 2020-06-16 04:13:49 -04:00
nick black
633ef1f76c
add beginnings of yield demo 2020-06-05 15:14:07 -04:00
nick black
84ae45ef39
remove all libsixel crap #200 2020-06-05 04:19:56 -04:00
nick black
89ffb6658e
CMake: improvements to testing usability
Replace USE_TESTS with BUILD_TESTING variable already exported by CTest.
Use the CMake 3.17 CMAKE_CTEST_ARGUMENTS to pass "-V" to ctest. #651
2020-05-29 02:47:29 -04:00
Nick Black
ebcba82d4b
Fully general ncvisual layer (#647)
This represents an essentially complete rewrite of ncvisual and associated code. It had two major goals:

Improve the ncvisual API based off lessons learned, pursuant to the upcoming API freeze. In particular, I wanted to:

decouple ncvisuals from ncplanes. It should be possible to render a ncvisual to multiple planes, with different scaling each time. It should be possible to create an ncvisual without a plane, etc.
normalize the various ways of constructing an ncvisual -- file, memory, plane, etc.
Support multiple blitters, from 7-bit ASCII to Sixel. This required writing the blitters in several cases, and they're not yet in their final implementations (but the API is fine)
I have not yet unified Plots and Visuals, and might not, given that the Plot code works fine. We could at this point implement Plots in terms of Visuals, though -- the blitter backend range has been unified. Sixel is not yet implemented, though it is listed.

There is a new POC tool, blitter. It renders its arguments using all possible blitter+scaling combinations. Another new POC, resize, displays its argument, then resizes it to the screen size and displays that, explicitly making use of ncvisual_resize() rather than a scaling parameter to ncvisual_render().

This also eliminates some memory leaks and bugs we were seeing in trunk, and brings in Sixel scaffolding.

The C++ wrapper will also need patching back up; I cut most of it down while wrestling with this crap, urk.

Closes #638, #562, and #622.
2020-05-28 21:16:58 -04:00
nick black
f425944bba
FreeBSD: move back to getrandom(); read_random() is kernelspace 2020-05-22 05:32:47 -04:00
nick black
fc998510a0
CMake: only install static libs if built #625 2020-05-21 23:51:10 -04:00
nick black
a288c2e654
document all build options 2020-05-20 13:22:43 -04:00
nick black
9ccbc99e9e
now in fedora core! 2020-05-13 14:56:09 -04:00
nick black
4b642bc68d
require oiio 2.15.0+ to get infinite loop fix #547 2020-05-13 07:41:19 -04:00
nick black
5081ed048c
do an OIIO rotate() #559 2020-05-13 07:35:31 -04:00
nick black
084bb721fa
we're now part of freebsd! 2020-05-11 12:30:53 -04:00
nick black
759dfbf499
add 1.4.0 to README.md 2020-05-10 22:52:49 -04:00
nick black
98eddd86a9
README: link to hype videos 2020-05-09 06:08:23 -04:00
nick black
a2888f2c75 FAQ entry about 10-bit color 2020-05-06 01:02:46 -04:00
nick black
d54e2c3957
README: point to debian unstable package 2020-04-30 01:14:42 -04:00
nick black
018e88f53b
README: don't undersell it 2020-04-26 21:21:43 -04:00
nick black
7d1e3c77c8 oiio: image scaling #535, subimages for video #536 2020-04-26 18:33:52 -04:00
nick black
0a38cd6ff5
move usage ToC to USAGE.md 2020-04-26 17:38:54 -04:00
nick black
d40c46a7aa
README: fix up syntax in header list 2020-04-26 17:37:55 -04:00
nick black
5f42e06383 oiio: open and close image #453 2020-04-24 04:17:56 -04:00
nick black
6045c54189 move usage stuff into USAGE.md 2020-04-24 04:17:56 -04:00
nick black
11c5aacb08
ncsubproc: move to big bad clone3() #310 2020-04-21 09:42:25 -04:00
nick black
04f90fa1ea
ncsubproc: launch processes, make pipes
link to LWN article in History section of README.md.
2020-04-21 03:33:04 -04:00
Nick Black
fe8034b5e0
ncfdplane, fileroller PoC, ncfdplane unit tests, qrcodes #24 #514 (#524)
* first draft of ncsubproc spec
* qrcode first draft #24
* demo: add qrcode demo skeleton, entries #24
* qrcode demo #24
* fedora python build changes from @dcantrell
* ncplane_qrcode() works #24
* add some flash to the qrcode demo #24
* drone: use newest builders
* fix up rgb PoC
* drop jungle demo to 100Hz target
* add fd.c
* ncfd skeletons
* more ncfdplane #514
* ncfdp i/o loop
* ncfp: improve uinit test, write core
* firm up ncfdplane #514
* fileroller PoC #514
* ncplane: allow '\n' in stream when scrolling #523
2020-04-20 23:26:41 -04:00
nick black
790a953c82
list libqrcodegen in README 2020-04-20 06:58:58 -04:00
nick black
40f36a9fb4
accepted into Debian, like a boss 2020-04-19 15:23:39 -04:00
Nick Black
1c7796a2b0
ncdirect_cursor_yx, ncdirect_cursor_pop, ncdirect_cursor_push #401 (#492)
* ncdirect_cursor_{push, pop, yx} declarations #401
* direct PoC: invoke ncdirect_cursor_yx() #401
* direct PoC: move to top of screen #401
* OTHERS.md: mention blessings
* ncdirect_cursor_yx working #401
* CHANGELOG: mention ncdirect_cursor_*() #401
2020-04-18 07:11:33 -04:00
Nick Black
c6a9997554
Normalize ncplane_at_* / ncplane_set_base() (#479)
* ncplane_at_* and ncplane_at_cursor_*

We had notcurses_at_yx() expanding into three distinct parts of
the cell structure, and ncplane_at_yx() / ncplane_at_cursor()
writing directly to a cell. It was annoying to remember which
was which. The latter two now have a signature matching
notcurses_at_yx(), while the old functionality has been moved
to ncplane_at_yx_cell() and ncplane_at_cursor_yx(). #476
2020-04-18 00:09:14 -04:00
nick black
957e09671e debian: repack DFSG tarball using uscan #496 2020-04-17 21:14:12 -04:00
nick black
6cbca20d0a
add 1.3.0 release to README 2020-04-13 15:10:19 -04:00
nick black
9a202b558e
remove colloquy from specfile, README 2020-04-10 13:08:22 -04:00
nick black
4c9a756630
drop notcurses-keyplot from README 2020-04-10 12:45:41 -04:00
nick black
2c2da61c72
ncdirect: add relative move functions #419 2020-04-08 09:07:49 -04:00
Nick Black
c2a645e9af
Rust wrapper work (#454)
* packaging: s/libtinfo/Terminfo/g
* rust: add stddim_yx()
* rust: check for valid init in unit tests
* rust: serialize up tests
* constify notcurses_term_dim_yx()
* rust: add dim wrappers
* remove notcurses_resize() from public API #367
* call notcurses_resize() from notcurses_refresh() #367
2020-04-08 05:39:41 -04:00
nick black
5c44416426
export ncplane_putstr_yx() as static inline 2020-04-06 01:15:20 -04:00
nick black
4a6ab358ba inline ncplane_putsimple_yx() 2020-04-05 23:54:38 -04:00
nick black
32c590ea64 document details of scrolling #323 2020-04-05 23:54:38 -04:00
nick black
fcd7e19e4c Add ncplane_set_scrolling() #323 2020-04-05 23:54:38 -04:00
nick black
7cf3bad556
note that ANSI_X3.4-1968 is also allowed 2020-04-04 00:03:51 -04:00
nick black
459b1029af README: add notcurses-keyplot to app list 2020-04-03 05:51:02 -04:00
nick black
af478ccf95
README: book has been published, link it =] 2020-04-02 14:01:57 -04:00
nick black
a45d888601
All fill-type functions return cells changed
Fill-type functions used to return 0 for success, and -1
on failure. They now return the number of cells written
on success, similarly to ncvisual_render(). Resolves #427.
2020-03-29 05:26:56 -04:00
nick black
8651486ad7
Don't say DirectColor when TrueColor is meant 2020-03-27 12:58:30 -04:00
nick black
a77774f4dc
notcurses_at_yx(): value-result u32+u64, not cell
Resolves #410. notcurses_at_yx() accepted a cell*, but the
gcluster of this cell was always set to 0. The EGC is instead
a heap-allocated copy, returned as the primary return value.
This is due to the absence of an egcpool to bind against.
Existing callers can be converted thus:

* instead of passing cell 'c', pass &(c)->attrword, &(c)->channels
* either initialize 'c' with CELL_TRIVIAL_INITIALIZER, or set its
   gcluster field to 0 following the call

I've updated all calls from tests/demos, updated the docs, and
updated the C++ and Python wrappers.
2020-03-27 03:49:13 -04:00
nick black
73b61f6a69 Add bound planes (#71) plus docs/tests
Add ncplane_bound(3). This allows a new plane N to be created in the
*bound* state relative to another ncplane B. If B moves, N moves the
same amount. If N is moved, the coordinates are taken relative to B
as opposed to the standard plane. If B is destroyed, N is destroyed.
Each plane can have many planes bound to it, but can only be bound to
a single plane. Add ncplane_reparent(3). This allows a plane to be
detached from any plane to which it is bound, and optionally rebound
to a new plane. The standard plane cannot be reparented.
Documentation and unit tests have been added for both.
2020-03-27 03:13:30 -04:00
nick black
ff71eda6a1
reels are a cylinder, not a torus 2020-03-26 23:31:28 -04:00
nick black
ee754ed241
Tetris: simplify MoveDown(), don't be stupid 2020-03-25 23:10:31 -04:00
Nick Black
de9158bd7b
More tetris work for book #421 (#423)
* tetris: use NES gravities
* tetris: use NES grav multiplier of 50ms
* tetris: implement move down #421
* README: mention notcurses-tetris #421
* tetris: use double box for boundary #421
* tetris: extract background.h
* tetris: break up into chunks suitable for book
* tetris: do the rotations
2020-03-25 04:06:38 -04:00
nick black
060c0c2a47 README: WINDOW->plane in reel docs 2020-03-21 11:58:50 -04:00
nick black
38f4255dc0 Define ncplane_mergedown() #361
ncplane_mergedown() is similar to the "Merge down" operation
in the GIMP. It writes to the destination plane the result
of rendering the source and destination frames per se.
2020-03-21 05:09:31 -04:00
nick black
6f9fdc115a published next month! :D 2020-03-17 10:56:01 -04:00
nick black
ba90c70a47
ncplane_cursor_yx() takes const first argument 2020-03-14 21:15:37 -04:00
nick black
db30bcf0d2
document new ncdirect functions for cursor #402 2020-03-13 09:56:46 -04:00
Nick Black
c056a0a026
Subregion renders #293 (#404)
Add four new fields to notcurses_options: margin_{tblr}, which requests margins to the top, right, bottom, and left. Render only within those margins, leaving the screen otherwise untouched (well, cleared if using the alternate screen). #293
2020-03-13 05:07:33 -04:00
nick black
638be8feb7 multiselector options/items #322 2020-03-09 15:31:16 -04:00
nick black
eead4c1414
notcurses_highgradient() added #398 2020-03-08 04:05:55 -04:00
nick black
333f7c1192
define ncplane_rotate_cw/ccw() 2020-03-05 18:07:20 -05:00
nick black
afe724ee1d
docs: update for ncplane_translate_abs() 2020-03-03 01:04:28 -05:00
nick black
bb579d0d05
notcurses_directmode()->ncdirect_init() 2020-03-02 20:19:16 -05:00
nick black
c6f27f1bee
notcurses_resize() update docs #367 2020-02-29 23:05:51 -05:00
nick black
a39efb1d6d
move selector, menu documentation to book 2020-02-28 03:24:09 -05:00