Skip to content

Troubleshooting

seebye edited this page Aug 13, 2021 · 6 revisions

Images appear on the wrong terminal window

This is intended behavior which in my opinion should be obvious to everyone who studied computer science.
Ueberzug deals with undecidable problems and therefore it is not possible to make a correct decision for all elements of the set of all buildable programs.
If you don't know what an undecidable problem is you can read it on wikipedia.
You can also easily find lecture notes of universities by searching for common terms like "theorem of rice".

Some examples:

  • for the problem of figuring out which pseudo tty is presented on which window: ueberzug only makes a correct decision if the terminal emulator uses one process per window.
  • for ueberzug 18.1.9 it is also necessary for the process to expose the pid on the window via the x11 property "_NET_WM_PID"
  • for ueberzug 18.1.9 it is also necessary for the window to be a child window of the root window

Some examples of incompatible terminal emulators.
E.g. (at the time of writing this) for the gnome-terminal every window belongs to the gnome-terminal-server process. Therefore the gnome-terminal is not supported.
Kitty and urxvt allows you to configure whether it should use a daemon mode or not, so it depends on your settings whether they are compatible or not.

related:

Images suddendly disappear

Some projects do not note the pid of ueberzug for their cleanup routine.
Instead of doing this they just use grep and ps (or similar) to kill their ueberzug process.
Of course such approach may lead to killing the ueberzug process of other (unrelated) processes.
So maybe you are using a program which kills the ueberzug processes of other programs.

XMONAD (Not working on / Fails without errors)

Ueberzug polls the window manager for the _NET_CLIENT_LIST. By default, xmonad does not supply this property. To enable this, use the XMonad.Hooks.EwmhDesktops extension found in the xmonad-contrib package:

...
import XMonad.Hooks.EwmhDesktops

...
main = do
    ...
    xmonad $ ewmh def
    ...
Clone this wiki locally