GraphicsMagick’s gm, ImageMagick’s import, xwd, and scrot all produce errors trying to produce a screenshot of the login greeter, in this case, KDM3, but I don’t believe the actual greeter running is relevant. No X sessions are running, just KDM3. I’m currently trying in TW, to attach to a bug report:
# magick import -screen :0 greeter.png
import: unable to open X server '' @ error/import.c/ImportImageCommand/348.
# import -screen :0 greeter.png
import: unable to open X server '' @ error/import.c/ImportImageCommand/348.
# magick import -display :0 greeter.png
Authorization required, but no authorization protocol specified
Authorization required, but no authorization protocol specified
import: unable to open X server ':0' @ error/import.c/ImportImageCommand/348.
# xwd -out screenshot.xwd -root -display :0.0 | xwdtopnm | pnmtopng > screenshot.png
Authorization required, but no authorization protocol specified
Authorization required, but no authorization protocol specified
xwd: unable to open display ':0.0'
xwdtopnm: couldn't read XWD file header
pnmtopng: Error reading first byte of what is expected to be a Netpbm magic number. Most often, this means your input file is empty
#
The forum software pops up “similar to” reports dating back 10 or more years having nothing to do with screenshots. Only thing resembling this I’ve been able to get Google to spit out is here, but that and everything it returns seems to be about getting results from a running X or Wayland session, not the greeter.
# xauth list
#
From remote:
# loginctl show-session $XDG_SESSION_ID
Id=6
User=0
Name=root
Timestamp=Mon 2025-06-09 12:50:59 EDT
TimestampMonotonic=9072961190
VTNr=0
TTY=pts/0
Remote=yes
RemoteHost=00srv.ij.net
Service=remote
Scope=session-6.scope
Leader=2941
Audit=6
Type=tty
Class=user-early
Active=yes
State=active
IdleHint=no
IdleSinceHint=1749487856432792
IdleSinceHintMonotonic=9069473614
CanIdle=yes
CanLock=yes
LockedHint=no
From console:
# loginctl show-session $XDG_SESSION_ID
Id=5
User=0
Name=root
Timestamp=Mon 2025-06-09 12:33:02 EDT
TimestampMonotonic=7995851490
VTNr=3
Seat=seat0
TTY=tty3
Remote=no
Service=login
Scope=session-5.scope
Leader=2882
Audit=5
Type=tty
Class=user-early
Active=yes
State=active
IdleHint=no
IdleSinceHint=1749487976000000
IdleSinceHintMonotonic=91890408022
CanIdle=yes
CanLock=yes
LockedHint=no
String ‘auth’ is nowhere to be found in import’s man page. Where can authorization come from? How can it be given to import? Do I need to feed it one of KDM’s PIDs somehow? Is this even possible without using a VM? Apparently I’ve asked before without getting a working answer.