profile
viewpoint
Nick Black dankamongmen @dirty-south-supercomputing Atlanta https://nick-black.com i make computers go fast.

dankamongmen/cubar 6

CUDA analysis tools

dankamongmen/CANalystII-SocketCAN 3

Linux SocketCAN kernel module for the CANalyst II USB CAN adapter

dankamongmen/atem 2

command line tool to convert MetaStock to csv

dankamongmen/avant-wireless-applet 2

An avant applet for monitoring wireless properties

dankamongmen/canscan 2

CAN and CANopen active scanner

dankamongmen/casagrande 2

a task from good sir casagrande

dankamongmen/charn 2

Charn, that great city, the city of the King of Kings, the wonder of the world, perhaps of all worlds.

dankamongmen/concordance 2

concordance code sample

dankamongmen/dankcheese 2

fork of git://git.gnome.org/cheese

dankamongmen/awesome 1

fork of git://git.naquadah.org/awesome.git

issue commentdankamongmen/notcurses

some unit tests fail in various build environments

  • [ ] get rid of true_tty, a terrible idea. we require a controlling tty, which can be specified as a parameter. if the parameter is NULL, we try /dev/tty. otherwise, we try the parameter, falling back to /dev/tty if it is the parameter proves not to be a tty. this fd is kept open; if it is less than 0, that implies !true_tty.
  • [ ] we're getting our terminal left in a sticky state by notcurses-tester, fix this
dankamongmen

comment created time in 7 hours

issue commentdankamongmen/notcurses

some unit tests fail in various build environments

https://drone.dsscaw.com:4443/dankamongmen/notcurses/3160 <--- first successful run

dankamongmen

comment created time in 7 hours

issue commentdankamongmen/notcurses

some unit tests fail in various build environments

ok, for the first time, we can actually run our unit tests in the docker drone, and they pass. this is in the dankamongmen/drone-cpp branch. this branch is NOT ready for merging, but it works.

dankamongmen

comment created time in 7 hours

push eventdankamongmen/notcurses

nick black

commit sha 1037a2bc88224c3fb0aa7d803a604481daeeea0d

FdsAndSubprocs: switch to warn FIXME

view details

push time in 7 hours

push eventdankamongmen/notcurses

nick black

commit sha ad63befae2265f6967dd9e66f438500addac61c5

CTEST_OUTPUT_ON_FAILURE=TRUE

view details

push time in 7 hours

push eventdankamongmen/notcurses

nick black

commit sha 5bf450bc81eb8b5bb722e8c6396dd53f9f3396f7

tester: drop notcurses_debug

view details

push time in 7 hours

push eventdankamongmen/notcurses

nick black

commit sha 2ee83fa3d91370b440f3b6729611e63746b09622

subproc diagnostics

view details

push time in 8 hours

push eventdankamongmen/notcurses

nick black

commit sha 70ffa3922a469285e1d95624c90307c3edf37082

subproc: back up to kill() if send_signal fails #742

view details

push time in 8 hours

push eventdankamongmen/notcurses

nick black

commit sha c5d874345733b9c05c5b7d63587882c189d9c2c3

drone: back to the old skool

view details

push time in 8 hours

push eventdankamongmen/notcurses

nick black

commit sha 8524221f14af3c40f900085f490aa6ac7a907f1e

SubprocDestroyCmdHung: work without terminal #742

view details

push time in 8 hours

push eventdankamongmen/notcurses

nick black

commit sha 81a93a33e4f97673ac9aa34780d6d3c8b05ed304

purge cruft

view details

push time in 8 hours

push eventdankamongmen/notcurses

nick black

commit sha d34400de6a0ae2c17c3d896be8627454d5ed4527

notcurses_resize: work with faux tty #742

view details

push time in 8 hours

issue commentdankamongmen/notcurses

some unit tests fail in various build environments

I think I've got it.....

dankamongmen

comment created time in 8 hours

issue commentdankamongmen/notcurses

some unit tests fail in various build environments

Alright, I can finally reproduce this locally, by running it within daemonize. I ought have this resolved shortly.

dankamongmen

comment created time in 8 hours

push eventdankamongmen/notcurses

nick black

commit sha 5ff8c090ad67fe452b68107e99b6353102f9e5b5

lock down segfault in render

view details

push time in 9 hours

push eventdankamongmen/notcurses

nick black

commit sha e7ea04b70e7983d0e99add787e8d5b7796d1ad70

hrmm

view details

push time in 9 hours

push eventdankamongmen/notcurses

nick black

commit sha 8228184d3b4eafbab80a491690de2153ce782c47

capture all CTest output

view details

push time in 9 hours

issue commentdankamongmen/notcurses

some unit tests fail in various build environments

OK, from what I can tell, the issue here was that we're redirected in CTest, and further have no controlling tty in Docker (where drone runs). This was causing notcurses_init() to bail out. What's confusing is how any tests actually worked...

I've added a field, true_tty, and we now only do tty ioctl()s if this is set. It's a bit awkward and hacky.

dankamongmen

comment created time in 9 hours

push eventdankamongmen/notcurses

nick black

commit sha ce2cfd6220858ec264b3f48ccefb52f870a9b489

notcurses_stop: tcsetattr only for true ttys

view details

push time in 9 hours

push eventdankamongmen/notcurses

nick black

commit sha 195f0f173f8911a856ad2e7b90e2cd510378d769

notcurses_resize: check true_tty before update_term_dimensions

view details

push time in 9 hours

push eventdankamongmen/notcurses

nick black

commit sha c9e24ab0340de5a9049b9be8d6bc2c36bc6fcbec

notcurses_init: experiment with non-tty support #742

view details

push time in 9 hours

push eventdankamongmen/notcurses

nick black

commit sha 3f5919f763fe85bbffef699db673d22afa9e4466

ncneofetch: print palette even when it's small

view details

push time in 9 hours

issue openeddankamongmen/notcurses

we look like shit in screen(1)

  • To reproduce: launch screen. use notcurses
  • Observed behavior: ass
  • Expected behavior: other than ass

seriously, we look surprisingly bad. not sure what's going on here.

happily, we appear to look fine in tmux.

created time in 9 hours

push eventdankamongmen/notcurses

nick black

commit sha fafe130277f47354081c5f71d85b5c91654b1aaf

notcurses_init: use stdout if tty is absent #742

view details

push time in 9 hours

push eventdankamongmen/notcurses

nick black

commit sha 2937d05a52015ad236209c32c38bd24062faea5e

notcurses_init: use stdout if tty is absent #742

view details

push time in 9 hours

push eventdankamongmen/notcurses

nick black

commit sha 3005a8c394331192f23cf5d10cd881b0a7cb7ce0

lock this in...?

view details

push time in 9 hours

push eventdankamongmen/notcurses

nick black

commit sha 224f7b198dc1861b997035518963915bd9816150

bomb it

view details

push time in 9 hours

push eventdankamongmen/notcurses

nick black

commit sha e0a33bb93d4d78c4152ab89b5142e0fd461ec76f

sigh

view details

push time in 10 hours

push eventdankamongmen/notcurses

nick black

commit sha 6b5fd0d009a313c8da95957da2743881263b1be5

ncdirect_render_image(): handle newlines properly in ncdirect_render_image(), we want to emit newlines if and only if we did not hit the right border. we want to emit cuds (cursor downs) if and only if we've hit the bottom border. this resolves all mysteries of blank lines, eliminating a FIXME. it also fixes ncneofetch's image display on very wide terminals. closes #756. also removes the display semaphore in ncneofetch, using a more natural pthread_join().

view details

nick black

commit sha c0f12f46231b6cd10f6b2c18141bf1987b49bb49

tester: pass INHIBIT_SETLOCALE|NO_ALTERNATE_SCREEN

view details

nick black

commit sha b2414de18447e2374386a4287efc63e7316e77c9

drone: run make test directly

view details

nick black

commit sha 63713345933e020528ff9f89bd69597dcabab1cb

drone: stop setting TERM=linux

view details

nick black

commit sha 8ce1ad0c6b50fc331cef2d2759b12eabdc62d959

drone: run notcurses-demo explicitly

view details

nick black

commit sha d32d5c23df6a63f67b159a4c4e6dd15b3df69c81

drone: try TERM=xterm

view details

nick black

commit sha 0cac2e5391529ab89cb0d8032d241d517faf9bc9

drone: try it with ncurses-term

view details

nick black

commit sha c1f8a4af5f00d9c1c8f5f29eacbf58a728c598db

test ncpp tests in drone

view details

nick black

commit sha 71bd8e338e19590249ce14de35800801af96dfb3

export TERM on all three

view details

nick black

commit sha d614056917b54a45c9b84bbe493b417116f343de

sgr: check setlocale() return value

view details

nick black

commit sha f59e6c2e7efa9ccd39604731a31c9304f54f535f

where is rgb breaking

view details

nick black

commit sha 151d356f7b641db435a0b70c6b706e1f74a62f0b

capture + dump stderr in ctest

view details

nick black

commit sha 403cd216f44ede07ea59bdbbdc40f25fc87352f7

argh get that stderr

view details

push time in 12 hours

push eventdankamongmen/notcurses

nick black

commit sha c0f12f46231b6cd10f6b2c18141bf1987b49bb49

tester: pass INHIBIT_SETLOCALE|NO_ALTERNATE_SCREEN

view details

push time in 12 hours

issue commentdankamongmen/notcurses

Installing to unusual location

https://www.reddit.com/r/voidlinux/comments/hj6di5/linking_on_voidlinuxmusl/ appears to be the thread.

While I imagine you don't want to do this, if you want to give me an account on the machine, my public keys can be found at https://nick-black.com/authorized_keys. I'll come check it out. Otherwise, I'll spin up a void VM sometime this week, as I want to ensure this is resolved before cutting 1.6.0.

pepe

comment created time in 12 hours

push eventdankamongmen/notcurses

nick black

commit sha 6b5fd0d009a313c8da95957da2743881263b1be5

ncdirect_render_image(): handle newlines properly in ncdirect_render_image(), we want to emit newlines if and only if we did not hit the right border. we want to emit cuds (cursor downs) if and only if we've hit the bottom border. this resolves all mysteries of blank lines, eliminating a FIXME. it also fixes ncneofetch's image display on very wide terminals. closes #756. also removes the display semaphore in ncneofetch, using a more natural pthread_join().

view details

push time in 12 hours

issue closeddankamongmen/notcurses

ncneofetch (ncdirect_render_image) fails on very wide terminal

If i launch ncneofetch in a very wide terminal on my Debian workstation, I do not get an image displayed. I just get a palette and infoplane. I assume this is a problem with ncdirect_render_image().

closed time in 12 hours

dankamongmen

issue commentdankamongmen/notcurses

ncneofetch (ncdirect_render_image) fails on very wide terminal

Got it. My new ncvisual_render_image() finally is a complete theory of newlines+cursordowns, and works in all tests.

dankamongmen

comment created time in 12 hours

push eventdankamongmen/notcurses

nick black

commit sha 60f340e4494f73bb4e9ce19954123483e452ff2b

ncdirect_render_image(): handle newlines properly in ncdirect_render_image(), we want to emit newlines if and only if we did not hit the right border. we want to emit cuds (cursor downs) if and only if we've hit the bottom border. this resolves all mysteries of blank lines, eliminating a FIXME. it also fixes ncneofetch's image display on very wide terminals. closes #756. also removes the display semaphore in ncneofetch, using a more natural pthread_join().

view details

push time in 12 hours

issue openeddankamongmen/notcurses

ncneofetch (ncdirect_render_image) fails on very wide terminal

If i launch ncneofetch in a very wide terminal on my Debian workstation, I do not get an image displayed. I just get a palette and infoplane. I assume this is a problem with ncdirect_render_image().

created time in 12 hours

push eventdankamongmen/notcurses

nick black

commit sha da808ff902314df94665fcd65d3d048ec243329f

argh get that stderr

view details

push time in 13 hours

issue commentdankamongmen/notcurses

C++ unit tests fail in various build environments

Alright take a look at https://drone.dsscaw.com:4443/dankamongmen/notcurses/3130/2/2. We've got two passes:

dirgb, sgr

and failures of all:

ncpp_build, ncpp_build_exceptions, rgb, rgbbg, notcurses-tester

sgr is a pure terminfo application. dirgb is ncdirect. they both work. both call setlocale().

rgbbg is C++. rgb is C. both create a struct notcurses with options NCOPTION_INHIBIT_SETLOCALE | NCOPTION_NO_ALTERNATE_SCREEN. I've definitely locked down the failures to notcurses_init()... and given that we're getting breakage off rgb, I don't think this is a C++ thing.

dankamongmen

comment created time in 14 hours

push eventdankamongmen/notcurses

nick black

commit sha 4a6f0daa72e4cefbede833af62ce48e2a2ba5ec6

capture + dump stderr in ctest

view details

push time in 14 hours

push eventdankamongmen/notcurses

nick black

commit sha 3b143798824034fd322399d9998bd306e0f3bc9b

where is rgb breaking

view details

push time in 14 hours

push eventdankamongmen/notcurses

nick black

commit sha b7a2ff6a7443fe2d616dd09878abc4e949e68844

sgr: check setlocale() return value

view details

push time in 15 hours

issue commentdankamongmen/notcurses

C++ unit tests fail in various build environments

Even ncpp_build and ncpp_build_exceptions fail -- it's nothing having to do with the unit testing framework. See https://drone.dsscaw.com:4443/dankamongmen/notcurses/3129/2/2.

dankamongmen

comment created time in 15 hours

push eventdankamongmen/notcurses

nick black

commit sha 1e6ded3e624b21b12c2986307135f04e0ca60ae3

export TERM on all three

view details

push time in 15 hours

push eventdankamongmen/notcurses

nick black

commit sha 2a4207729d750f9a285ff1e37f3b80a055f2df2c

test ncpp tests in drone

view details

push time in 15 hours

push eventdankamongmen/notcurses

nick black

commit sha 4863c7e3df0673cb8f274362fd194bf18b9eba77

ncdirect_image_render: restore NCBLIT_2x2 #751

view details

nick black

commit sha 452fdc671dbe6fc58f367feff3f35f06d9313356

intro: move legend into main plane

view details

nick black

commit sha 7a022a4c76b87ef4140c80eefc34adad84aa8a4d

ncneofetch: show palette via direct mode #750

view details

nick black

commit sha 7eb70dad719b31937acb572dcf53109c90970710

ncneofetch: display() in direct mode #750

view details

nick black

commit sha 60619fc4b96165fe450c023bb525ecaacba598a5

ncneofetch: move back to NCSCALE_SCALE #750

view details

nick black

commit sha 4889e9b391564375a015110ed79be00a53f02bce

ncneofetch: scale

view details

nick black

commit sha 33cb21d9178d21dbf85e6439d992f7a7709cdecd

ncdirect_printf_aligned() added #750

view details

nick black

commit sha 45fbbdb4ef5f93c98b6daf6ab4363da1b345f32a

ncneofetch: align output #750

view details

nick black

commit sha 4e04c3ae8f929bcfa3c2b2ed6a44700e0be7b0ad

ncneofetch: fill out first line of infoplane

view details

nick black

commit sha 9ae1c6b3df637cdc7f5be11da92abb9c295facc1

ncdirect_render_image: fix arguments to rgba_blitter_low #751

view details

nick black

commit sha 6be683c83bc3ccb8ec9527ddf9b7061d606eaeaf

rebase off master

view details

nick black

commit sha a8db0786890b9840759bcf0440ef5f1e660ef5b5

ncneofetch: default background on palette

view details

nick black

commit sha cda4253a0a4ede843b086e3010dff1e5e84c9587

ncneofetch: sem_post() on error path

view details

nick black

commit sha 93ff1d77897f1fc48e1f1901cc4ce50240c5dcaf

ncdirect: open an fd for the controlling terminal Use ctermid(3) to identify the controlling terminal device. When one exists, open(2) it up, and retain this file descriptor across the life of the ncdirect context. Allow a failure, since not everything requires such an fd. This will be used for tty- specific activity such as ioctl()s and escape sequences involving terminal replies (such as get absolute cursor position). #752

view details

nick black

commit sha 8fedec050c63979973cb9e440797c993337c6edc

ncneofetch: draw infoplane with notcurses + margin_t #750

view details

nick black

commit sha 27c150b855a0c08c86f3e968dd6d6456ed9d4c51

reorder introduction

view details

nick black

commit sha ef9e50be3316203645ac7ce58df8d69a9be7a500

beef up 'what it is' a little; get our swag on

view details

nick black

commit sha 31c584e2e6245e96ae4d15182a889f80573c1d35

ncneofetch: work no matter y offset, done! #750

view details

nick black

commit sha 700dfbcc00253d082353412b05507be1de977128

drone: run make test directly

view details

nick black

commit sha 72c2d6e5ff7b154ff831c405fbcfbe44eb3a16b0

drone: stop setting TERM=linux

view details

push time in 15 hours

issue commentdankamongmen/notcurses

Get into Alpine Linux

https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/9828 obsoletes !9740. It looks like it will be accepted soon. It would be good to also package up doctest for alpine, so we can run our unit tests.

dankamongmen

comment created time in 16 hours

push eventdankamongmen/notcurses

nick black

commit sha 7a022a4c76b87ef4140c80eefc34adad84aa8a4d

ncneofetch: show palette via direct mode #750

view details

nick black

commit sha 7eb70dad719b31937acb572dcf53109c90970710

ncneofetch: display() in direct mode #750

view details

nick black

commit sha 60619fc4b96165fe450c023bb525ecaacba598a5

ncneofetch: move back to NCSCALE_SCALE #750

view details

nick black

commit sha 4889e9b391564375a015110ed79be00a53f02bce

ncneofetch: scale

view details

nick black

commit sha 33cb21d9178d21dbf85e6439d992f7a7709cdecd

ncdirect_printf_aligned() added #750

view details

nick black

commit sha 45fbbdb4ef5f93c98b6daf6ab4363da1b345f32a

ncneofetch: align output #750

view details

nick black

commit sha 4e04c3ae8f929bcfa3c2b2ed6a44700e0be7b0ad

ncneofetch: fill out first line of infoplane

view details

nick black

commit sha 9ae1c6b3df637cdc7f5be11da92abb9c295facc1

ncdirect_render_image: fix arguments to rgba_blitter_low #751

view details

nick black

commit sha 6be683c83bc3ccb8ec9527ddf9b7061d606eaeaf

rebase off master

view details

nick black

commit sha a8db0786890b9840759bcf0440ef5f1e660ef5b5

ncneofetch: default background on palette

view details

nick black

commit sha cda4253a0a4ede843b086e3010dff1e5e84c9587

ncneofetch: sem_post() on error path

view details

nick black

commit sha 93ff1d77897f1fc48e1f1901cc4ce50240c5dcaf

ncdirect: open an fd for the controlling terminal Use ctermid(3) to identify the controlling terminal device. When one exists, open(2) it up, and retain this file descriptor across the life of the ncdirect context. Allow a failure, since not everything requires such an fd. This will be used for tty- specific activity such as ioctl()s and escape sequences involving terminal replies (such as get absolute cursor position). #752

view details

nick black

commit sha 8fedec050c63979973cb9e440797c993337c6edc

ncneofetch: draw infoplane with notcurses + margin_t #750

view details

nick black

commit sha 27c150b855a0c08c86f3e968dd6d6456ed9d4c51

reorder introduction

view details

nick black

commit sha ef9e50be3316203645ac7ce58df8d69a9be7a500

beef up 'what it is' a little; get our swag on

view details

nick black

commit sha 31c584e2e6245e96ae4d15182a889f80573c1d35

ncneofetch: work no matter y offset, done! #750

view details

push time in 16 hours

delete branch dankamongmen/notcurses

delete branch : dankamongmen/directfetch

delete time in 16 hours

PR merged dankamongmen/notcurses

ncneofetch: reimplement with ncdirect #750

By using ncdirect rather than full notcurses for most of ncneofetch, we're able to execute in less than a full terminal, naturally scrolling, and otherwise working like neofetch. This also strengthens the ncdirect API significantly. Closes #750.

+222 -143

0 comment

10 changed files

dankamongmen

pr closed time in 16 hours

issue closeddankamongmen/notcurses

ncneofetch ought use direct mode

neofetch is a pure line-based output (it's generated by a bash script). we're currently using full notcurses but inhibiting the alternate screen. this means, among other things, that we're always going to blow away the entire screen upon render (unless we use margins, which are tricky -- we don't know how big the output should be). instead, now that we've got ncdirect_render_image() (see #725), we ought just use direct mode for this tool.

i'm not sure how long this will take -- i'd like to think a few hours max, but who knows -- so i'm marking it as a 1.6.0 goal, but don't let it hold up the release or anything.

closed time in 16 hours

dankamongmen

PR opened dankamongmen/notcurses

ncneofetch: reimplement with ncdirect #750

By using ncdirect rather than full notcurses for most of ncneofetch, we're able to execute in less than a full terminal, naturally scrolling, and otherwise working like neofetch. This also strengthens the ncdirect API significantly. Closes #750.

+222 -143

0 comment

10 changed files

pr created time in 16 hours

push eventdankamongmen/notcurses

nick black

commit sha 7357002aa58816eee2359534bc073808a28c2377

ncneofetch: work no matter y offset, done! #750

view details

push time in 16 hours

push eventdankamongmen/notcurses

nick black

commit sha 312591a1f8859b3e38817970f74a38082ba07532

beef up 'what it is' a little; get our swag on

view details

push time in 17 hours

push eventdankamongmen/notcurses

nick black

commit sha 8c3fadd13d0a033740b7fe991fac1a8ecec99945

reorder introduction

view details

push time in 17 hours

push eventdankamongmen/notcurses

nick black

commit sha 76e2b363919e1c79b3b99ee70313314e99d57063

ncneofetch: draw infoplane with notcurses + margin_t #750

view details

push time in 17 hours

issue commentdankamongmen/notcurses

ncneofetch ought use direct mode

FATALITY. Merging ncdirect and notcurses was easier than expected, and this has been quickly accomplished by setting a top margin. I'm shocked it works so well, frankly. AWESOME!

2020-07-01-192131_936x1417_scrot

this definitely accomplishes the goal! The one problem I'm seeing is this:

  • open a new terminal
  • vertically maximize it
  • run ncneofetch

you get blank lines breaking up the image. Ought be easy enough to fix -- it's surely in that bitch ncdirect_render_image(). But this is a major new technique! =] =] =]

dankamongmen

comment created time in 17 hours

push eventdankamongmen/notcurses

nick black

commit sha 8ff047cd93d11d84b2f4363a286e2238223bcdb7

ncdirect: open an fd for the controlling terminal Use ctermid(3) to identify the controlling terminal device. When one exists, open(2) it up, and retain this file descriptor across the life of the ncdirect context. Allow a failure, since not everything requires such an fd. This will be used for tty- specific activity such as ioctl()s and escape sequences involving terminal replies (such as get absolute cursor position). #752

view details

push time in a day

push eventdankamongmen/notcurses

nick black

commit sha 4cbc04fd1ecb1458a9158aa73056c84f4f6a9c77

ncneofetch: sem_post() on error path

view details

push time in a day

issue commentdankamongmen/notcurses

Installing to unusual location

So I took a look at the output you posted. That's indeed the binary not being able to find the library at load time, as expected.

When I run ldd /usr/bin/notcurses-demo, I get the following:

[schwarzgerat](0) $ ldd /usr/bin/notcurses-demo
	linux-vdso.so.1 (0x00007ffc38f4d000)
	libnotcurses.so.1 => /usr/lib/x86_64-linux-gnu/libnotcurses.so.1 (0x00007fed9f964000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fed9f81f000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fed9f7fe000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fed9f63b000)
	libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007fed9f60c000)
	libqrcodegen.so.1 => /usr/lib/x86_64-linux-gnu/libqrcodegen.so.1 (0x00007fed9f604000)
	libavcodec.so.58 => /usr/local/lib/libavcodec.so.58 (0x00007fed9e10c000)
	libavformat.so.58 => /usr/local/lib/libavformat.so.58 (0x00007fed9dec2000)
	libswscale.so.5 => /usr/local/lib/libswscale.so.5 (0x00007fed9de37000)
	libavutil.so.56 => /usr/local/lib/libavutil.so.56 (0x00007fed9dc0c000)
	libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fed9da3f000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fed9fa0c000)
	libswresample.so.3 => /usr/local/lib/libswresample.so.3 (0x00007fed9da20000)
	libvpx.so.6 => /usr/lib/x86_64-linux-gnu/libvpx.so.6 (0x00007fed9d7e7000)
	liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007fed9d7be000)
	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fed9d7a1000)
	libva.so.2 => /usr/lib/x86_64-linux-gnu/libva.so.2 (0x00007fed9d778000)
	libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007fed9d765000)
	libva-drm.so.2 => /usr/lib/x86_64-linux-gnu/libva-drm.so.2 (0x00007fed9d760000)
	libva-x11.so.2 => /usr/lib/x86_64-linux-gnu/libva-x11.so.2 (0x00007fed9d756000)
	libvdpau.so.1 => /usr/lib/x86_64-linux-gnu/libvdpau.so.1 (0x00007fed9d750000)
	libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007fed9d60e000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fed9d5f4000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fed9d5ef000)
	libdrm.so.2 => /usr/lib/x86_64-linux-gnu/libdrm.so.2 (0x00007fed9d5d9000)
	libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007fed9d3c7000)
	libXfixes.so.3 => /usr/lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007fed9d3bf000)
	libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fed9d395000)
	libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007fed9d191000)
	libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fed9cf89000)
	libbsd.so.0 => /usr/lib/x86_64-linux-gnu/libbsd.so.0 (0x00007fed9cf6f000)
[schwarzgerat](0) $

note that most of these files are symbolic links to the fully-qualified library:

[schwarzgerat](0) $ ls -l /usr/lib/x86_64-linux-gnu/libnotcurses.so.1
lrwxrwxrwx 1 root root 21 2020-06-14 17:22 /usr/lib/x86_64-linux-gnu/libnotcurses.so.1 -> libnotcurses.so.1.5.1
[schwarzgerat](0) $

if i remove one of the libraries, ldd shows that the library is missing, and the binary can't be loaded:

[schwarzgerat](0) $ sudo mv /usr/lib/x86_64-linux-gnu/libnotcurses.so.1.5.1 /tmp/
[schwarzgerat](0) $ ldd /usr/bin/notcurses-demo | grep notcur
	libnotcurses.so.1 => not found
[schwarzgerat](0) $ /usr/bin/notcurses-demo
/usr/bin/notcurses-demo: error while loading shared libraries: libnotcurses.so.1: cannot open shared object file: No such file or directory
[schwarzgerat](127) $

Now, all that CMake installs is libnotcurses.so.1.5.1 or whatnot--the fully-qualified shared object. ldconfig is what generates the necessary symbolic links. And ldconfig only runs on:

  • a few built-in directories,
  • directories listed on the command line, and
  • directories proscribed by /etc/ld.so.conf (which usally just includes /etc/ld.so.conf.d/*)

So the failure is presumably either:

  • I'm installing to a directory not covered by your ldconfig configuration (bad, my bug), or
  • ldconfig isn't being run (your job, or your packaging system's job)
pepe

comment created time in a day

issue openeddankamongmen/notcurses

Stainable multicolumn output

We lack stainable versions of ncplane_printf() and even the humble ncplane_putstr(). It's thus not possible to change just the glyph of a linear series of cells on a plane, which is annoying. They're pretty trivially hand-rolled, but why make people do that? Adding these also makes our API more orthogonal.

created time in a day

issue openeddankamongmen/notcurses

Beef up ncdirect

In the course of #750 , it has become obvious that:

  • there's a lot of ncdirect functionality that could exist, but doesn't, and
  • it would be useful

Enabling cursor movement in ncdirect opened up a lot of things -- aligned formatted output, boxes, etc. For stuff that makes sense, implement ncdirect versions.

created time in a day

issue openeddankamongmen/notcurses

direct mode ought interrogate the terminal when provided a non-tty fd

ncdirect ought be able to more or less function when redirected to a file. By function more or less, I mean:

  • it ought be able to write escapes appropriate for the TERM to this file, such that it can be catted back, and
  • it ought be able to interrogate the terminal as it is currently set up for e.g. geometry (i'm unsure about cursor position)

We're already doing the first part, but for the second, we need to identify when ttyfp is not truly a tty, and in that case, get a descriptor for our controlling tty.

Think through this and make sure it's what we always want to do. It might surprise the user.

created time in a day

push eventdankamongmen/notcurses

nick black

commit sha 452fdc671dbe6fc58f367feff3f35f06d9313356

intro: move legend into main plane

view details

nick black

commit sha 6ac67d07d80dcbd586ee6a48cbf8efafaa8184c8

ncneofetch: show palette via direct mode #750

view details

nick black

commit sha fdb38656691fc64031007ece6e50b493630e2258

ncneofetch: display() in direct mode #750

view details

nick black

commit sha e6629a1cd4909f388a74232a4f3b62458371cc9e

ncneofetch: move back to NCSCALE_SCALE #750

view details

nick black

commit sha fefbe5c9f313a80421855990f83477ed50a09a5a

ncneofetch: scale

view details

nick black

commit sha 7a7deeefb0f9b7d84bcdcc45047edbbd1d368594

ncdirect_printf_aligned() added #750

view details

nick black

commit sha 0c67c8b381da7bb9ba2d87ca8b2980d20151ee41

ncneofetch: align output #750

view details

nick black

commit sha 389362a9d31b6a48e1de858a3abe3466dda27580

ncneofetch: fill out first line of infoplane

view details

nick black

commit sha c482bf8ab697780910faa726d0cd0cbaed9bbdd4

ncdirect_render_image: fix arguments to rgba_blitter_low #751

view details

nick black

commit sha 66467cce5fbef6537ebeaf2ac658682e3d23a526

rebase off master

view details

nick black

commit sha 5ec9f91543f71ebeabf31f8ba0cfb80f99742462

ncneofetch: default background on palette

view details

push time in a day

push eventdankamongmen/notcurses

nick black

commit sha 452fdc671dbe6fc58f367feff3f35f06d9313356

intro: move legend into main plane

view details

push time in a day

push eventdankamongmen/notcurses

nick black

commit sha 238ba10f3288f538fd5f85b4939b52621d2037af

ncneofetch: default background on palette

view details

push time in a day

push eventdankamongmen/notcurses

nick black

commit sha 5f3e1b8ede8f13b350e35847b363b009835392ab

rebase off master

view details

push time in a day

push eventdankamongmen/notcurses

nick black

commit sha 4863c7e3df0673cb8f274362fd194bf18b9eba77

ncdirect_image_render: restore NCBLIT_2x2 #751

view details

nick black

commit sha df163b67432782924dc87319a4f61825fd0b20ef

ncneofetch: show palette via direct mode #750

view details

nick black

commit sha ca8b1df8d5e3ffdc7c09a5b93f1e7fab1786da20

ncneofetch: display() in direct mode #750

view details

nick black

commit sha 731998b6a91eaf2a4ff15830741964aa9d05deea

ncneofetch: move back to NCSCALE_SCALE #750

view details

nick black

commit sha c841323caa9c7fe7f0436d7229e6e9047fb2acc1

ncneofetch: scale

view details

nick black

commit sha b22e3e98f34eb743a2163065e928ec72cde8ed82

ncdirect_printf_aligned() added #750

view details

nick black

commit sha 105c67e56f2f6d868f1eafe0153be4a027e1cded

ncneofetch: align output #750

view details

nick black

commit sha fd03f5689b2f76ea3b54699e8ee27c02eb303e9b

ncneofetch: fill out first line of infoplane

view details

nick black

commit sha 034cfe991f7a4321c4f24a2b3a520e45b030ca20

ncdirect_render_image: fix arguments to rgba_blitter_low #751

view details

push time in a day

issue closeddankamongmen/notcurses

ncdirect_render_image() is forcing 2x1 blitter

In ncneofetch (on the directfetch branch) we're explicitly requesting NCBLIT_2x2, but we're absolutely getting NCBLIT_2x1. Image quality predictably suffers.

closed time in a day

dankamongmen

issue commentdankamongmen/notcurses

ncdirect_render_image() is forcing 2x1 blitter

Fix merged into master.

dankamongmen

comment created time in a day

push eventdankamongmen/notcurses

nick black

commit sha 4863c7e3df0673cb8f274362fd194bf18b9eba77

ncdirect_image_render: restore NCBLIT_2x2 #751

view details

push time in a day

issue commentdankamongmen/notcurses

ncdirect_render_image() is forcing 2x1 blitter

Fixed in the directfetch branch.

dankamongmen

comment created time in a day

push eventdankamongmen/notcurses

nick black

commit sha 0e49710ae6567242e8b1288d89919a69c43b4dca

ncdirect_render_image: fix arguments to rgba_blitter_low #751

view details

push time in a day

issue openeddankamongmen/notcurses

ncdirect_render_image() is forcing 2x1 blitter

In ncneofetch (on the directfetch branch) we're explicitly requesting NCBLIT_2x2, but we're absolutely getting NCBLIT_2x1. Image quality predictably suffers.

created time in a day

push eventdankamongmen/notcurses

nick black

commit sha 96fcb5f19bd66fa5faac3d751fc83690e47113d3

ncneofetch: fill out first line of infoplane

view details

push time in a day

push eventdankamongmen/notcurses

nick black

commit sha bb1b5903abfe9f3832a0131e6cbb2ddf4ae30c3e

ncneofetch: align output #750

view details

push time in a day

push eventdankamongmen/notcurses

nick black

commit sha a01e2bfc4c669ae652f8ec9d0c79dd9742655449

ncdirect_printf_aligned() added #750

view details

push time in a day

issue commentdankamongmen/notcurses

ncneofetch ought use direct mode

We'll also likely need some ncdirect_printf_aligned().

dankamongmen

comment created time in a day

push eventdankamongmen/notcurses

nick black

commit sha b6d4a0c436f0d38ac45886b385228e8076c18f68

ncneofetch: scale

view details

push time in 2 days

push eventdankamongmen/notcurses

nick black

commit sha f702d8e7dd607d4d5fb4e8a92f0e813894412976

ncneofetch: move back to NCSCALE_SCALE #750

view details

push time in 2 days

issue commentdankamongmen/notcurses

ncneofetch ought use direct mode

scale: render: 77x0:35+104 of 256/746 stride 3008 0x7f57e001df80 stretch: render: 77x0:156+208 of 256/746 stride 3008 0x7fe9f801df80

dankamongmen

comment created time in 2 days

issue commentdankamongmen/notcurses

ncneofetch ought use direct mode

This is looking pretty good so far. Need to get NCSCALE_SCALE working with ncdirect_render_image(); currently only NCSCALE_STRETCH seems to work.

dankamongmen

comment created time in 2 days

push eventdankamongmen/notcurses

nick black

commit sha 66d1b030eb3d41ce6ceec5d77e66303e8d4f5c6b

ncneofetch: display() in direct mode #750

view details

push time in 2 days

push eventdankamongmen/notcurses

nick black

commit sha c22a9d9573efd338880ef2b0e0cfece75fd1ebcf

ncneofetch: show palette via direct mode #750

view details

push time in 2 days

issue commentdankamongmen/notcurses

ncneofetch ought use direct mode

This will require some semi-substanial embiggening of the ncdirect API:

ncdirect_palette_size() ncdirect_fg_palindex() ncdirect_bg_palindex()

dankamongmen

comment created time in 2 days

issue openeddankamongmen/notcurses

ncneofetch ought use direct mode

neofetch is a pure line-based output (it's generated by a bash script). we're currently using full notcurses but inhibiting the alternate screen. this means, among other things, that we're always going to blow away the entire screen upon render (unless we use margins, which are tricky -- we don't know how big the output should be). instead, now that we've got ncdirect_render_image() (see #725), we ought just use direct mode for this tool.

i'm not sure how long this will take -- i'd like to think a few hours max, but who knows -- so i'm marking it as a 1.6.0 goal, but don't let it hold up the release or anything.

created time in 2 days

create barnchdankamongmen/notcurses

branch : dankamongmen/directfetch

created branch time in 2 days

issue commentdankamongmen/notcurses

C++ unit tests fail in various build environments

These are all using the Notcurses(FILE *fp = nullptr) constructor, which uses default_notcurses_options, which sets loglevel=silent and no other flags.

dankamongmen

comment created time in 2 days

push eventdankamongmen/notcurses

nick black

commit sha bb334404791faf930296508cf90ebbdd41725255

drone: try it with ncurses-term

view details

push time in 2 days

push eventdankamongmen/notcurses

nick black

commit sha 2e412b3249110a2a8de1497f09313fb94d18b24e

drone: try TERM=xterm

view details

push time in 2 days

push eventdankamongmen/notcurses

nick black

commit sha e3f0620a2d17ef53f223670abb78f26d1f70dbe0

drone: run notcurses-demo explicitly

view details

push time in 2 days

push eventdankamongmen/notcurses

nick black

commit sha ea6fb6347bb971b2c72a3c9ee838c008584bddbb

drone: stop setting TERM=linux

view details

push time in 2 days

create barnchdankamongmen/notcurses

branch : dankamongmen/drone-cpp

created branch time in 2 days

issue commentdankamongmen/notcurses

C++ unit tests fail in various build environments

This is what the drone failure looks like. See https://drone.dsscaw.com:4443/dankamongmen/notcurses/3072/3/2 for an example.

+ env TERM=linux ./notcurses-tester -p ../data
591	Running with TERM=linux
592	[doctest] doctest version is "2.3.8"
593	[doctest] run with "--help" for options
594	DirectMode *italic*!
595	DirectMode *bold*!
596	DirectMode *underline*!
597	===============================================================================
598	/drone/src/tests/Ncpp.cpp:6:
599	DESCRIPTION: Basic C++ wrapper tests
600	TEST CASE:  Ncpp
601	  ConstructNotCurses
602	
603	/drone/src/tests/Ncpp.cpp:6: ERROR: test case THREW exception: exception thrown in subcase - will translate later when the whole test case has been exited (cannot translate while there is an active exception)
604	
605	===============================================================================
606	/drone/src/tests/Ncpp.cpp:6:
607	DESCRIPTION: Basic C++ wrapper tests
608	TEST CASE:  Ncpp
609	
610	DEEPEST SUBCASE STACK REACHED (DIFFERENT FROM THE CURRENT ONE):
611	  ConstructNotCurses
612	
613	/drone/src/tests/Ncpp.cpp:6: ERROR: test case THREW exception: unknown exception
614	
615	===============================================================================
616	/drone/src/tests/Exceptions.cpp:18:
617	TEST CASE:  OnlyOneNotCurses
618	
619	/drone/src/tests/Exceptions.cpp:18: ERROR: test case THREW exception: unknown exception
620	
621	===============================================================================
622	/drone/src/tests/Exceptions.cpp:10:
623	TEST CASE:  ResetStats
624	
625	/drone/src/tests/Exceptions.cpp:10: ERROR: test case THREW exception: unknown exception
626	
627	===============================================================================
628	[doctest] test cases:     38 |     35 passed |      3 failed |      1 skipped
629	[doctest] assertions: 8383873 | 8383873 passed |      0 failed |
630	[doctest] Status: FAILURE!
631	]R]R]R
dankamongmen

comment created time in 2 days

issue commentdankamongmen/notcurses

C++ unit tests fail in various build environments

bah this was just because we needed -p ../data :/. With that, it passes just fine. Which I ought have realized, argh.

dankamongmen

comment created time in 2 days

issue commentdankamongmen/notcurses

C++ unit tests fail in various build environments

I'm able to reproduce this on a full workstation by running ./notcurses-tester --tc=Ncpp:

[schwarzgerat](0) $ ./notcurses-tester --tc=Ncpp
Running with TERM=alacritty
[doctest] doctest version is "2.3.8"
[doctest] run with "--help" for options
Term: 52x104 alacritty (alacritty terminal emulator)

 notcurses 1.5.3 by nick black et al
  52 rows, 104 columns (84.50KiB), 256 colors (direct)
  compiled with gcc-9.3.0
  terminfo from ncurses 6.2.20200212
  avformat 58.46.101 avutil 56.55.100 swscale 5.8.100
Term: 52x104 alacritty (alacritty terminal emulator)

 notcurses 1.5.3 by nick black et al
  52 rows, 104 columns (84.50KiB), 256 colors (direct)
  compiled with gcc-9.3.0
  terminfo from ncurses 6.2.20200212
  avformat 58.46.101 avutil 56.55.100 swscale 5.8.100
Term: 52x104 alacritty (alacritty terminal emulator)

 notcurses 1.5.3 by nick black et al
  52 rows, 104 columns (84.50KiB), 256 colors (direct)
  compiled with gcc-9.3.0
  terminfo from ncurses 6.2.20200212
  avformat 58.46.101 avutil 56.55.100 swscale 5.8.100
Term: 52x104 alacritty (alacritty terminal emulator)

 notcurses 1.5.3 by nick black et al
  52 rows, 104 columns (84.50KiB), 256 colors (direct)
  compiled with gcc-9.3.0
  terminfo from ncurses 6.2.20200212
  avformat 58.46.101 avutil 56.55.100 swscale 5.8.100
Term: 52x104 alacritty (alacritty terminal emulator)

 notcurses 1.5.3 by nick black et al
  52 rows, 104 columns (84.50KiB), 256 colors (direct)
  compiled with gcc-9.3.0
  terminfo from ncurses 6.2.20200212
  avformat 58.46.101 avutil 56.55.100 swscale 5.8.100
===============================================================================
/home/dank/src/dankamongmen/notcurses/tests/Ncpp.cpp:6:
DESCRIPTION: Basic C++ wrapper tests
TEST CASE:  Ncpp
  VisualFromFile

/home/dank/src/dankamongmen/notcurses/tests/Ncpp.cpp:6: ERROR: test case THREW exception: exception thrown in subcase - will translate later when the whole test case has been exited (cannot translate while there is an active exception)

===============================================================================
/home/dank/src/dankamongmen/notcurses/tests/Ncpp.cpp:6:
DESCRIPTION: Basic C++ wrapper tests
TEST CASE:  Ncpp

DEEPEST SUBCASE STACK REACHED (DIFFERENT FROM THE CURRENT ONE):
  VisualFromFile

/home/dank/src/dankamongmen/notcurses/tests/Ncpp.cpp:6: ERROR: test case THREW exception: Notcurses failed to create a new visual

===============================================================================
[doctest] test cases:      1 |      0 passed |      1 failed |     38 skipped
[doctest] assertions:      4 |      4 passed |      0 failed |
[doctest] Status: FAILURE!
[schwarzgerat](1) $

well, if i can reproduce it locally....

https://www.youtube.com/watch?v=eNr0WXQ3Ho4

dankamongmen

comment created time in 2 days

push eventdankamongmen/notcurses

nick black

commit sha 0586adbe244a70d77c75f9f7f8ecf06e72f1a10b

ffmpeg: disable debugging cruft erp

view details

push time in 2 days

issue commentdankamongmen/notcurses

Installing to unusual location

So if I get you correctly:

  • doing a standard build (i.e. not specifying anything on the cmake command line),
  • the build runs successfully
  • make install puts notcurses-demo somewhere expected, presumably /usr/local/bin/notcurses-demo, but
    • it also puts libnotcurses.so and friends somewhere unexpected, in this case /usr/local/lib64
  • your standard linker configuration does not include /usr/local/lib64, and thus things don't work

A few quick questions:

  • are you running ldconfig following make install? this is generally necessary to rebuild your linker cache and have the necessary symlinks installed. usually, the packaging infrastructure handles this for you. if you're building by hand, you probably have to do it. if you were not running ldconfig with the virgin install, try that, and see if it fixes things
  • if that wasn't it, can you please provide the output of ldd /usr/local/bin/notcurses-demo (or wherever it is -- ldd $(which notcurses-demo) ought work for anything on your PATH)?

I suspect that something else has gone wrong, since I'm getting the lib install path from CMake, and if it's handing me a busted one, then CMake is busted for everything on your platform, and we'd want to patch it rather than notcurses.

The demo is gorgeous!

thanks so much, hearing things like this makes it all worthwhile =]

pepe

comment created time in 2 days

issue openeddankamongmen/notcurses

ncreel: cruft left on the screen when scrolling sometimes

See https://github.com/dankamongmen/growlight/issues/73, where this was first noticed. Ncreel can get into a configuration (I've only seen this with a full screen or more) where it leaves a bit of garbage on the screen.

71782807-54b12f80-2fac-11ea-9cc4-7bf7a42c57d0

created time in 2 days

issue closeddankamongmen/notcurses

add ncdirect_render_image()

It occurs to me while smacking away at ncneofetch (#550) that we should probably be able to display an image in direct mode. I'm thinking something like

ncdirect_render_image(const char* filename, ncblitter_e blitter, ncscale_e scale)

it will run from the current cursor position, up through the end of the line, starting new lines at the same column (thus always rectilinear).

closed time in 2 days

dankamongmen

issue commentdankamongmen/notcurses

add ncdirect_render_image()

Got it! Need to do some more testing wrt different scalers and initial positions, but it's working in the basics. See new PoC vizdirect.

dankamongmen

comment created time in 2 days

more