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://qwenlm.github.io/blog/qwen3-coder/
Although, in the first screenshot, the window title background is much darker in the new version than the old one@1@1 :-P Kidding aside, the contrast in the old one is still better.
Also, note the missing underlines for the Alt hotkeys now. I just think that the underline in the old one is too thick.
https://kau.sh/blog/how-to-firefox/
/short/
if it's of this useless kind. Never thought that they ever actually will improve their Atom feeds. Thank you, much appreciated!
https://github.com/villares/sketch-a-day/blob/main/admin_scripts/pngs_to_gif.py
I should add a "public domain dedication" to both scripts...
#Python #imageio #GIFAnimation
> certificate is valid for cluster029.hosting.ovh.net, not adn.org.es
That's what you get when playing with bleeding edges. :-D
Let me try to visualize it,
|
represent full images, .
just subsequent deltas:
Original start of video
↓
|......|.....|........|......|..
↑ ↑
Cut point Cut point
Resulting video:
....|.....|........|....
↑↑↑↑
This is where it freezes
Could be complete bullshit, though. Wouldn't be the first time that I'm wrong. :-)
I'm just curious, what exact command line do you use to cut the video?
- 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.)



As I usually run #gifsicle on the command line after creating a GIF, I decided to update it to add #pygifsicle to do it for me and save a step.
https://github.com/villares/sketch-a-day/blob/main/admin_scripts/make-gif.py

A 12 years old tablet without software updates is almost useless.
A 12 years old tablet without software updates is almost useless.
A 12 years old tablet without software updates is almost useless.
Onde é que está o plano para resolver isto de uma vez por todas?
https://www.rtp.pt/noticias/pais/resolvida-avaria-do-siresp-no-codu-norte-sindicato_n1670432
#ptpol
Onde é que está o plano para resolver isto de uma vez por todas?
https://www.rtp.pt/noticias/pais/resolvida-avaria-do-siresp-no-codu-norte-sindicato_n1670432
#ptpol
Onde é que está o plano para resolver isto de uma vez por todas?
https://www.rtp.pt/noticias/pais/resolvida-avaria-do-siresp-no-codu-norte-sindicato_n1670432
#ptpol


An #EU citizen trying to access Facebook today faces the following choices (see screenshots).
In there, they say that they are asking this again to comply with #EU rules, and yet the question - and the options to choose from - are the same they had in the past.
So, hm, how does this make them comply with something they weren't complying before? What's the detail I'm missing?
#Meta #Facebook #GDPR
