From: Dirk Gouders <dirk@gouders.net>
To: Alejandro Colomar <alx.manpages@gmail.com>
Cc: linux-man@vger.kernel.org, help-texinfo@gnu.org
Subject: Re: Playground pager lsp(1)
Date: Thu, 06 Apr 2023 08:01:15 +0200 [thread overview]
Message-ID: <ghh6ttzh04.fsf@gouders.net> (raw)
In-Reply-To: <8d828572-cdcc-8b19-d5d4-1256831d7183@gmail.com> (Alejandro Colomar's message of "Thu, 6 Apr 2023 03:31:47 +0200")
[-- Attachment #1: Type: text/plain, Size: 5064 bytes --]
Hi Alex,
Alejandro Colomar <alx.manpages@gmail.com> writes:
>> If you want to take a look at it: there is a branch "next" which you
>> might prefer as it closer resembles my current work. There is a new
>> toggle "-V" that can be used to completely turn off validation.
>>
>> I tried to assemble a Makefile that might work without a configure
>> script and attach it to the end. A prefix /usr is the default value, if
>> your system prefers /usr/local you can use `make prefix=/usr/local
>
> The default prefix in GNU should be /usr/local
> <https://www.gnu.org/prep/standards/html_node/Directory-Variables.html>
>
>> install`. I hope I prepared some reasonable Makefile...
>
> I'll have a look.
Perhaps, I messed up the Makefile. Some time ago, I test-compiled lsp
on Rasbpian and CentOS and -lutil was missing. That got fixed in
meson.build but not in the Makefile I sent you. I'll attach a new
one -- this time as plain text ;-)
>>> If it's the first, how do you handle exit(1)? Is it a reference, or is it
>>> just code (with the meaning exit(EXIT_FAILURE))?
>>
>> exit(1) gets recognized as a possible reference but validation will fail.
>
> `man 'exit(1)'` works for me. It brings the exit(1posix) page, from
> manpages-posix.
Oh yes, I didn't have the POSIX manual pages installed -- now, exit(1)
gets recognized as a reference. Thank you.
>> No, broken references aren't marked. Usually those unavailable
>> references make sense, e.g. if a manual page references some program
>> that not everyone uses.
>>
>> One example that I couldn't resolve so far is a reference to
>> getconf(1) for example in fpatchconf(3). Up to now I was not able to
>> find out which package contains getconf(1)...
>
> $ apt-file find /getconf.1
> glibc-source: /usr/src/glibc/debian/local/manpages/getconf.1
> libc-bin: /usr/share/man/man1/getconf.1.gz
> manpages-fr: /usr/share/man/fr/man1/getconf.1.gz
>
> It's in libc-bin.
>
> BTW, did you mean fpathconf(3)?
Yes, that was a typo. I'm on Gentoo and there is no libc-bin. But now
I have a direction to search. Thank you, again.
>
>>
>>>>
>>>> • In windowing environments lsp does complete resizes when windows
>>>> get resized. This means it also reloads the manual page to fit the
>>>> new window size.
>>>
>>> Good. This I miss it in less(1) often. Not sure if they had any strong
>>> reason to not support that.
>>
>> Unfortunately, info(1) also doesn't do full resizes (on my system).
>>
>>>>
>>>> • Search for manual pages using apropos(1); in the current most basic
>>>> form it lists all known manual pages ready for text search and
>>>> visiting referenced manual pages.
>>>
>>> What does it bring that `apropos * | less` can't do? If you're going the
>>> of info(1) with full-blown system, it seems reasonable, but I never really
>>> liked all that if it's just a new terminal and a command away from me.
>>
>> You get a pseudo-file from where you can reach any manual page on the
>> system. Originally I thought this to help novice users but since lsp is
>> my system's PAGER I use it more often than expected. I'm missing the
>> ability to give keywords to apropos but that's just a matter of time to
>> get fixed.
>
> I guess that's a matter of preferring navigation in some interactive
> program (to me, info(1) style), vs standalone simple commands where you
> first find what you want, then run it.
>
> I don't find that magic much more comfortable than
>
> $ apropos sysctl
> ... oh, I find many freebsd pages, let's grep them out ...
> $ apropos sysctl | grep -v freebsd
> ... hmm, let's see system ...
> $ apropos system | grep -v freebsd
> ... okay, now this shows a lot of stuff, let's remove man1 ...
> $ apropos system | grep -v -e freebsd -e '(1'
> ... I don't want systemd either ...
> $ apropos system | grep -v -e freebsd -e '(1' -e systemd
> ... let's sort by section and navigate through that list ...
> $ apropos system | grep -v -e freebsd -e '(1' -e systemd | sort -k2 | less
>
> Find some pages that may be interesting, note them down, and open
> them one by one, in different tabs, until I find I wanted to read
> proc(5), and close everything else.
As I wrote: I (also) had novice users in mind when I implented the
Apropos pseudo-file (it can also be used for verification, that's
another use of it). I often watch novice users getting frustrated about
all the typing that is needed to get useful results. I know, first of
all, they need to train their "keyboard abilities" but some help here
and there could perhaps help to keep them on board or minimize
frustration...
> Which brings us to a valid point Eli raised. Some pages are an
> unreadable mess, and I think proc(5) is one of those that needs
> a big split into smaller pages such as proc_pid_attr(5).
Yes, one of the points where I thought pagers with additional
features could help...
Cheers,
Dirk
[-- Attachment #2: Makefile for lsp(1) --]
[-- Type: text/plain, Size: 600 bytes --]
version=\"$(shell cat .version)\"
CFLAGS := $(shell pkg-config --cflags ncursesw)
CFLAGS += -DLSP_VERSION=$(version)
LDFLAGS := $(shell pkg-config --libs ncursesw)
LDFLAGS += -lutil
ifeq ($(prefix),)
prefix := /usr/local
endif
lsp: lsp.c
gcc $(CFLAGS) $(LDFLAGS) -o $@ $<
doc/lsp.1: doc/lsp.adoc
a2x --doctype manpage --format manpage -a lsp-version=$(version) $<
.PHONY: uninstall install
install: lsp doc/lsp.1 doc/lsp-help.1
install lsp $(prefix)/bin
install doc/lsp.1 doc/lsp-help.1 $(prefix)/share/man/man1/
uninstall:
rm $(prefix)/bin/lsp
rm $(prefix)/share/man/man1/lsp{,-help}.1
prev parent reply other threads:[~2023-04-06 6:01 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-25 20:37 Playground pager lsp(1) Dirk Gouders
2023-03-25 20:47 ` Dirk Gouders
2023-04-04 23:45 ` Alejandro Colomar
2023-04-05 5:35 ` Eli Zaretskii
2023-04-06 1:10 ` Alejandro Colomar
2023-04-06 8:11 ` Eli Zaretskii
2023-04-06 8:48 ` Gavin Smith
2023-04-07 22:01 ` Alejandro Colomar
2023-04-08 7:05 ` Eli Zaretskii
2023-04-08 13:02 ` Accessibility of man pages (was: Playground pager lsp(1)) Alejandro Colomar
2023-04-08 13:42 ` Eli Zaretskii
2023-04-08 16:06 ` Alejandro Colomar
2023-04-08 13:47 ` Colin Watson
2023-04-08 15:42 ` Alejandro Colomar
2023-04-08 19:48 ` Accessibility of man pages Dirk Gouders
2023-04-08 20:02 ` Eli Zaretskii
2023-04-08 20:46 ` Dirk Gouders
2023-04-08 21:53 ` Alejandro Colomar
2023-04-08 22:33 ` Alejandro Colomar
2023-04-09 10:28 ` Ralph Corderoy
2023-04-08 20:31 ` Ingo Schwarze
2023-04-08 20:59 ` Dirk Gouders
2023-04-08 22:39 ` Ingo Schwarze
2023-04-09 9:50 ` Dirk Gouders
2023-04-09 10:35 ` Dirk Gouders
[not found] ` <87a5zhwntt.fsf@ada>
2023-04-09 12:05 ` Compressed man pages (was: Accessibility of man pages (was: Playground pager lsp(1))) Alejandro Colomar
2023-04-09 12:17 ` Alejandro Colomar
2023-04-09 18:55 ` G. Branden Robinson
2023-04-09 12:29 ` Colin Watson
2023-04-09 13:36 ` Alejandro Colomar
2023-04-09 13:47 ` Compressed man pages Ralph Corderoy
2023-04-12 8:13 ` Compressed man pages (was: Accessibility of man pages (was: Playground pager lsp(1))) Sam James
2023-04-12 8:32 ` Compressed man pages Ralph Corderoy
2023-04-12 10:35 ` Mingye Wang
2023-04-12 10:55 ` Ralph Corderoy
2023-04-12 13:04 ` Compressed man pages (was: Accessibility of man pages (was: Playground pager lsp(1))) Kerin Millar
2023-04-12 14:24 ` Alejandro Colomar
2023-04-12 18:52 ` Mingye Wang
2023-04-12 20:23 ` Compressed man pages Alejandro Colomar
2023-04-13 10:09 ` Ralph Corderoy
2023-04-07 2:18 ` Playground pager lsp(1) G. Branden Robinson
2023-04-07 6:36 ` Eli Zaretskii
2023-04-07 11:03 ` Gavin Smith
2023-04-07 14:43 ` man page rendering speed (was: Playground pager lsp(1)) G. Branden Robinson
2023-04-07 15:06 ` Eli Zaretskii
2023-04-07 15:08 ` Larry McVoy
2023-04-07 17:07 ` man page rendering speed Ingo Schwarze
2023-04-07 19:04 ` man page rendering speed (was: Playground pager lsp(1)) Alejandro Colomar
2023-04-07 19:28 ` Gavin Smith
2023-04-07 20:43 ` Alejandro Colomar
2023-04-07 16:08 ` Colin Watson
2023-04-08 11:24 ` Ralph Corderoy
2023-04-07 21:26 ` reformatting man pages at SIGWINCH " Alejandro Colomar
2023-04-07 22:09 ` reformatting man pages at SIGWINCH Dirk Gouders
2023-04-07 22:16 ` Alejandro Colomar
2023-04-10 19:05 ` Dirk Gouders
2023-04-10 19:57 ` Alejandro Colomar
2023-04-10 20:24 ` G. Branden Robinson
2023-04-11 9:20 ` Ralph Corderoy
2023-04-11 9:39 ` Dirk Gouders
2023-04-17 6:23 ` G. Branden Robinson
2023-04-08 11:40 ` Ralph Corderoy
2023-04-05 10:02 ` Playground pager lsp(1) Dirk Gouders
2023-04-05 14:19 ` Arsen Arsenović
2023-04-05 18:01 ` Dirk Gouders
2023-04-05 19:07 ` Eli Zaretskii
2023-04-05 19:56 ` Dirk Gouders
2023-04-05 20:38 ` A less presumptive .info? (was: Re: Playground pager lsp(1)) Arsen Arsenović
2023-04-06 8:14 ` Eli Zaretskii
2023-04-06 8:56 ` Gavin Smith
2023-04-07 13:14 ` Arsen Arsenović
2023-04-06 1:31 ` Playground pager lsp(1) Alejandro Colomar
2023-04-06 6:01 ` Dirk Gouders [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ghh6ttzh04.fsf@gouders.net \
--to=dirk@gouders.net \
--cc=alx.manpages@gmail.com \
--cc=help-texinfo@gnu.org \
--cc=linux-man@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.