This confirms that this is just a total waste of time. Nobody ever checks this. Maybe this matters if you’re a distro, but why even bother as a single person …
https://www.youtube.com/watch?v=WEb_YL1K1Qg
I could listen to him all day.
[](https://movq.de/v/70e07e78f3/s.png)
https://movq.de/v/61f8d39d2f/s.png
There’s probably a simple explanation for this: Maybe this bot was written with “AI” and it’s simply complete garbage.
This isn’t a serious threat for my low-profile website – yet. Can’t wait for this to get worse …
curl -s gopher://…
does that for you.
https://www.youtube.com/watch?v=cen22TBHo9M
It went as expected. 🤣
https://salsa.debian.org/apt-team/apt/-/blob/main/doc/apt.8.xml
And then they use XSLT on top and what not:
https://salsa.debian.org/apt-team/apt/-/blob/main/doc/manpage-style.xsl.cmake.in
It’s not even explicitly *blue*:
https://salsa.debian.org/apt-team/apt/-/blob/main/doc/apt.ent?ref_type=heads#L17
Abstractions upon abstractions upon abstractions.
apt
manpage of Ubuntu recently, which, for some reason, uses blue text in one place:https://movq.de/v/de5ab72016/s.png
Makes little sense to me. I’m glad that most manpages don’t do this. I wouldn’t want unicorn vomit all over the place.
Using colors can be done using the low level commands
\m
and \M
:.TH foo_program 3
\m[blue]I'm blue\m[], da ba dee.
\m[red]\M[yellow]I'm red on yellow.\m[]\M[]
This is quite horrible.
https://movq.de/v/394282ec75/s.png
https://www.troff.org/pubs.html
I have two books from that list, for example “The UNIX programming environment”:
https://movq.de/v/c3dab75c97/upe.jpg
It’s a bit older, of course, but it looks and feels like a normal book, and it uses the same tech as manpages – which I think is really cool. 😎
It’s comparable to LaTeX (just harder/different to use) but *much* faster than LaTeX. You can also do stuff like render manpages as a PDF (
man -Tpdf cp >cp.pdf
) or as an HTML file (man -Thtml cp >cp.html
). I think I once made slides for a talk this way.On the other hand, traditional manpages (i.e., ones that are not written in mandoc) do not use semantic markup. They literally say, “this text is bold, that text over here is italics”, and so on.
So when you run
man foo
, it has no other choice but to show it in black, white, bold, underline – showing it in color would be wrong, because that’s not what the source code of that manpage says.Colorizing them is a hack, to be honest. You’re not meant to do this. (The devs actually broke this by accident recently. They themselves aren’t really aware that people use colors.)
*If* mandoc and semantic markup was more commonly used, I think it would be easier to convince the devs to add proper customizable colors.
https://movq.de/v/81219d7f7a/s.png
Problem is, hardly anybody knows this, because you configure this by … drumroll … overwriting TERMCAP entries of
less
in your ~/.bashrc
:export LESS_TERMCAP_md=$'\e[38;5;3m' # Bold export LESS_TERMCAP_me=$'\e[0m' # End Bold
export LESS_TERMCAP_us=$'\e[4;38;5;6m' # Underline export LESS_TERMCAP_ue=$'\e[0m' # End Underline
export GROFF_NO_SGR=1 # Needed since groff 1.23=
“Man pages are great, man readers are the problem”
https://whynothugo.nl/journal/2025/04/09/man-pages-are-great-man-readers-are-the-problem/
HTML output is a bit broken in GNU groff, though (OpenBSD on the left, GNU on the right):
https://movq.de/v/f1898e648f/s.png
🤔
Still, I’m inclined to convert my manpages to mandoc.
https://www.reddit.com/r/linux/comments/4w548u/what_is_up_with_the_x11_security_extension/
This is what could have (eventually) solved the security issues that we’re currently seeing with X11. Those issues are cited as one of the reasons for switching to Wayland.
That extension never took off. The person on reddit wonders why – I think it’s simple: Containers and sandboxes weren’t a thing in 1996. It hardly mattered if X11 was “insecure”. If you could run an X11 client, you probably already had access to the machine and could just do all kinds of other nasty things.
*Today*, sandboxing is a thing. *Today*, this matters.
I’ve heard so many times that “X11 is beyond fixable, it’s hopeless.” I don’t believe that. I believe that these problems are solveable with X11 and some devs have said “yeah, we could have kept working on it”. It’s that people don’t *want* to do it:
> Why not extend the X server?
>
> Because for the first time we have a realistic chance of not having to do that.
https://wayland.freedesktop.org/faq.html
I’m not in a position to judge the devs. Maybe the X.Org code really is so bad that you want to run away, screaming in horror. I don’t know.
But all this was a choice. I don’t buy the argument that we never would have gotten rid of things like core fonts.
All the toolkits and programs had to be ported to Wayland. A huge, still unfinished effort. If that was an acceptable thing to do, then it would have been acceptable to make an “X12” that keeps all the good things about X11, remains compatible where feasible, eliminates the problems, and requires some clients to be adjusted. (You could have still made “X11X12” like “XWayland” for actual legacy programs.)
But apparently, this whole thing is a heated debate in the Wayland world. 🤔
https://youtu.be/yURfsJDOw1E
https://movq.de/v/34ccfc125c/s.png
How many IPs am I supposed to block, eh?
systemctl uses ANSI escape codes to underline text (
\e[4m
) and then it also uses special escape codes – that Wikipedia classifies as “not in the standard”, but I haven’t looked it up – to *change the color of the underline*. That color change is barely noticeable in the first place.Some terminals don’t support this and now my systemctl output is *blinking* because of that.
gcr
thing running with *debug logs enabled* that print stuff like “sending secret exchange: …”? Is this healthy?)
~/bin
that you use daily, but you haven’t edited them once in well over 10 years …
Speaking of OS/2 … I just realized that Windows 3.x didn’t have icons, either. If I’m not mistaken, this only got added in Windows 95. In other words, OS/2 had this feature before Windows did, because at least OS/2 2.1 from 1993 had icons. Who would have thunk.
(Now I kind of want to know which system really introduced this feature.)
> I like the looks of your window manager. That's using Wayland, right?
Oh, no. It’s still X11. All my recent Wayland comments resulted from me trying to switch, but I think it’s still too early. Being unable to use QEMU (because it can’t capture the mouse pointer) is a pretty big blocker for me. This is completely broken, it just happens to be unnoticeable with modern guest OSes, so it’s probably not a priority for devs.
(Not to mention that I would have to fork and substantially extend dwl in order to “replicate” my X11 WM. And then, after having done that, I’d have to follow upstream Wayland development, for which I don’t have the resources. Things would need to slow down before I can do that.)
> all that wasted space of the windows not making use of the full screen!!@1
Heh. I’ve been using tiling WMs for ~15 years now, so it’s actually kind of refreshing to see something different for a change. 😅
> Probably close to the older Windowses.
That particular theme is a ripoff of OS/2 Warp 3: https://movq.de/v/6c2a948882/s.png 😅
> We ran some similar brownish color scheme (don't recall its name) on Win95 or Win98
Oh god. Yeah, I wasn’t a fan of those, either. 🥴~
https://movq.de/v/0e4af6fea1/s.png
GNOME, on the other hand, didn’t, at least to my old screenshots from 2007:
https://www.uninformativ.de/desktop/2007%2D05%2D25%2D%2Dgnome2%2Dlaptop.png
I switched to Linux in 2007 and no window manager I used since then had icons, apparently. Crazy. An icon-less existence for 18 years. (But yeah, everything is keyboard-driven here as well and there are no buttons here, either.)
Anyway, my draft is making progress:
https://movq.de/v/5b7767f245/s.png
I do like this look. 😊
X11 knows the data type “cardinal”. For example, the window property
_NET_WM_ICON
(which holds image data for icons) is an array of “cardinal”. I am already not really familiar with that word and I’m assuming that it comes from mathematics:https://en.wikipedia.org/wiki/Cardinal_number
(It could also be a bird, but probably not: https://en.wikipedia.org/wiki/Cardinalidae)
We would probably call this an “integer” today.
EWMH says that icons are arrays of cardinals and that they’re 32-bit numbers:
https://specifications.freedesktop.org/wm-spec/latest-single/#id-1.6.13
So it’s something like
0x11223344
with 0x11
being the alpha channel, 0x22
is red, and so on.You would assume that, when you retrieve such an array from the X11 server, you’d get an array of
uint32_t
, right?Nope.
Xlib is so old, they use
char
for 8-bit stuff, short int
for 16-bit, and long int
for 32-bit:https://x.org/releases/current/doc/libX11/libX11/libX11.html#Obtaining_and_Changing_Window_Properties
That is congruent with the general C data types, so it *does* make sense:
https://en.wikipedia.org/wiki/C_data_types
Now the funny thing is, on modern
x86_64
, the type long int
is actually 64 bits wide.The result is that every pixel in a Pixmap, for example, is twice as large in memory as it would need to be. Just because Xlib uses
long int
, because uint32_t
didn’t exist, yet.And this is something that I wouldn’t know how to fix without breaking clients.
$ pacman -Qi pinentry
Name : pinentry
Version : 1.3.1-5
Description : Collection of simple PIN or passphrase entry dialogs which
utilize the Assuan protocol
Optional Deps : gcr: GNOME backend [installed]
gtk3: GTK backend [installed]
qt5-x11extras: Qt5 backend [installed]
kwayland5: Qt5 backend
kguiaddons: Qt6 backend
kwindowsystem: Qt6 backend
And it’s probably a good thing that they’re optional. I wouldn’t want to have all that installed *all the time*.
$ pacman -Qi pinentry
Name : pinentry
Version : 1.3.1-5
Description : Collection of simple PIN or passphrase entry dialogs which
utilize the Assuan protocol
Optional Deps : gcr: GNOME backend [installed]
gtk3: GTK backend [installed]
qt5-x11extras: Qt5 backend [installed]
kwayland5: Qt5 backend
kguiaddons: Qt6 backend
kwindowsystem: Qt6 backend
And it’s probably a good thing that they’re optional. I wouldn’t want to have all that installed *all the time*.
https://movq.de/v/0034cc1384/s.png
Then I realized: Wait a minute, lots of applications don’t set an icon? And lots of other window managers don’t show these icons, either? Openbox, pekwm, Xfce, fvwm, no icons.
Looks like macOS doesn’t show them, either?!
Has this grown out of fashion? Is this purely a Windows / OS/2 thing?
https://movq.de/v/0034cc1384/s.png
Then I realized: Wait a minute, lots of applications don’t set an icon? And lots of other window managers don’t show these icons, either? Openbox, pekwm, Xfce, fvwm, no icons.
Looks like macOS doesn’t show them, either?!
Has this grown out of fashion? Is this purely a Windows / OS/2 thing?
What are the types in this example?
items:
- part_no: A4786
descrip: Water Bucket (Filled)
price: 1.47
quantity: 4
- part_no: E1628
descrip: High Heeled "Ruby" Slippers
size: 8
price: 133.7
quantity: 1
items
is a dict containing … a list of two other dicts? Right?It is quite hard for me to grasp the *structure* of YAML docs. 😢
The big advantage of YAML (and JSON and TOML) is that it’s much easier to write code for those formats, than it is with XML.
json.loads()
and you’re done.
What are the types in this example?
items:
- part_no: A4786
descrip: Water Bucket (Filled)
price: 1.47
quantity: 4
- part_no: E1628
descrip: High Heeled "Ruby" Slippers
size: 8
price: 133.7
quantity: 1
items
is a dict containing … a list of two other dicts? Right?It is quite hard for me to grasp the *structure* of YAML docs. 😢
The big advantage of YAML (and JSON and TOML) is that it’s much easier to write code for those formats, than it is with XML.
json.loads()
and you’re done.
pinentry
, which is used to safely enter a password on Linux, has several frontends. There’s a GTK one, a Qt one, even an ncurses one, and so on.GnuPG also uses
pinentry
. And you can configure your frontend of choice here in gpg-agent.conf
.But what happens when you *don’t* configure it? What’s the default?
Turns out,
pinentry
is a shellscript wrapper and it’s not even that long. Here it is in full:#!/bin/bash
# Run user-defined and site-defined pre-exec hooks.
[[ -r "${XDG_CONFIG_HOME:-$HOME/.config}"/pinentry/preexec ]] && \
. "${XDG_CONFIG_HOME:-$HOME/.config}"/pinentry/preexec
[[ -r /etc/pinentry/preexec ]] && . /etc/pinentry/preexec
# Guess preferred backend based on environment.
backends=(curses tty)
if [[ -n "$DISPLAY" || -n "$WAYLAND_DISPLAY" ]]; then
case "$XDG_CURRENT_DESKTOP" in
KDE|LXQT|LXQt)
backends=(qt qt5 gnome3 gtk curses tty)
;;
*)
backends=(gnome3 gtk qt qt5 curses tty)
;;
esac
fi
for backend in "${backends[@]}"
do
lddout=$(ldd "/usr/bin/pinentry-$backend" 2>/dev/null) || continue
[[ "$lddout" == *'not found'* ]] && continue
exec "/usr/bin/pinentry-$backend" "$@"
done
exit 1
Preexec, okay, then some auto-detection to use a toolkit matching your desktop environment …
… and *then* it invokes
ldd
? To find out if all the required libraries are installed for the auto-detected frontend?Oof. I was sitting here wondering why it would use
pinentry-gtk
on one machine and pinentry-gnome3
on another, when both machines had the exact same configs. Yeah, but different libraries were installed. One machine was missing gcr
, which is needed for pinentry-gnome3
, so that machine (and that one alone) spawned pinentry-gtk
…
pinentry
, which is used to safely enter a password on Linux, has several frontends. There’s a GTK one, a Qt one, even an ncurses one, and so on.GnuPG also uses
pinentry
. And you can configure your frontend of choice here in gpg-agent.conf
.But what happens when you *don’t* configure it? What’s the default?
Turns out,
pinentry
is a shellscript wrapper and it’s not even that long. Here it is in full:#!/bin/bash
# Run user-defined and site-defined pre-exec hooks.
[[ -r "${XDG_CONFIG_HOME:-$HOME/.config}"/pinentry/preexec ]] && \
. "${XDG_CONFIG_HOME:-$HOME/.config}"/pinentry/preexec
[[ -r /etc/pinentry/preexec ]] && . /etc/pinentry/preexec
# Guess preferred backend based on environment.
backends=(curses tty)
if [[ -n "$DISPLAY" || -n "$WAYLAND_DISPLAY" ]]; then
case "$XDG_CURRENT_DESKTOP" in
KDE|LXQT|LXQt)
backends=(qt qt5 gnome3 gtk curses tty)
;;
*)
backends=(gnome3 gtk qt qt5 curses tty)
;;
esac
fi
for backend in "${backends[@]}"
do
lddout=$(ldd "/usr/bin/pinentry-$backend" 2>/dev/null) || continue
[[ "$lddout" == *'not found'* ]] && continue
exec "/usr/bin/pinentry-$backend" "$@"
done
exit 1
Preexec, okay, then some auto-detection to use a toolkit matching your desktop environment …
… and *then* it invokes
ldd
? To find out if all the required libraries are installed for the auto-detected frontend?Oof. I was sitting here wondering why it would use
pinentry-gtk
on one machine and pinentry-gnome3
on another, when both machines had the exact same configs. Yeah, but different libraries were installed. One machine was missing gcr
, which is needed for pinentry-gnome3
, so that machine (and that one alone) spawned pinentry-gtk
…
- https://github.com/labwc/labwc/issues/1068
- https://github.com/labwc/labwc/pull/2933
(I think “Wayland compositor” is a misnomer. They are full-blown display servers that also do compositing, plus Wayland window management, plus X11 window management.)
One can only hope that all this eventually gets moved into the wlroots library. (I’m not sure if that’s possible, nor if people would want that.)
- https://github.com/labwc/labwc/issues/1068
- https://github.com/labwc/labwc/pull/2933
(I think “Wayland compositor” is a misnomer. They are full-blown display servers that also do compositing, plus Wayland window management, plus X11 window management.)
One can only hope that all this eventually gets moved into the wlroots library. (I’m not sure if that’s possible, nor if people would want that.)
(Unlike GNOME’s dconf, which uses some binary file format. Fun fact: The older and now deprecated gconf also used XML files.)
(Unlike GNOME’s dconf, which uses some binary file format. Fun fact: The older and now deprecated gconf also used XML files.)
Let’s try again next year. I don’t have the stamina. Death by a thousand paper cuts.
Can’t set up a meaningful taskbar: https://github.com/labwc/labwc/discussions/2924 (This is not a labwc issue, it’s a generic issue in the broader Wayland ecosystem.)
Let’s try again next year. I don’t have the stamina. Death by a thousand paper cuts.
Can’t set up a meaningful taskbar: https://github.com/labwc/labwc/discussions/2924 (This is not a labwc issue, it’s a generic issue in the broader Wayland ecosystem.)
Because of that recent storm on my blog, I had a peek at them. There’s a lot of garbage in there. For example, https://docs.freebsd.org/en/books/handbook/disks-virtual.html is supposed to refer to one of my blog posts …
What’s going on here?
Because of that recent storm on my blog, I had a peek at them. There’s a lot of garbage in there. For example, https://docs.freebsd.org/en/books/handbook/disks-virtual.html is supposed to refer to one of my blog posts …
What’s going on here?
> Bluesky: Users verify their age by adding a payment method or uploading a photo ID.
>
> Mastodon: Users verify their age by posting pictures of the vintage computer equipment in their homes.
https://beige.party/@maxleibman/114848276288629121
😏
> Bluesky: Users verify their age by adding a payment method or uploading a photo ID.
>
> Mastodon: Users verify their age by posting pictures of the vintage computer equipment in their homes.
https://beige.party/@maxleibman/114848276288629121
😏
Tech is no longer interesting. I need to find a new field.