-
Notifications
You must be signed in to change notification settings - Fork 126
Troubleshooting
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:
- https://github.com/ranger/ranger/issues/2393#issuecomment-879376729
- https://github.com/ranger/ranger/issues/1736#issuecomment-734227621
- https://github.com/ranger/ranger/issues/1856#issuecomment-590767699
- https://github.com/ranger/ranger/issues/1696#issuecomment-532891246
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.
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
...