1

I'm trying to get an xscreensaver to run as my desktop background / wallpaper using the method described here: https://wiki.archlinux.org/index.php/XScreenSaver#Animated_wallpaper and the first step is killing the process that controls the root X window, but I have no idea what process that is.

Ideally I'd like to learn how to obtain the name of this program myself [incidentally ps aux | grep root doesn't really help] and from there figure out how to stop this program from starting at boot or asserting control of the root X window.

However, anyone who knows offhand what program this would be in Cinnamon can help me solve the problem and naturally any additional information about stopping / disabling this program or starting / enabling /usr/lib/xscrensaver/glmatrix -root would also be appreciated.

3

The root Window is a special Window of the X server. It doesn't have an associated application.

The wiki improperly refers to the root window here. What they meant is a Window that masks/hides the root Window like typically found in modern desktop environments (usually referred to as the Desktop, and often implemented by a file manager showing you the content of a ~/Desktop folder).

Those xscreensaver widgets actually work by updating the content of the root Window. So you need to remove that Desktop window that would hide it and any other Window that is displayed on top of the root window.

What you could try looking for is the process id of the windows that register a "Window Type" of "Desktop" with the window manager. You could do something like:

xwininfo -tree -root |
  pcregrep -o '^\s+\K0x\S+' |
  xargs -n1 xwininfo -wm -id |
  pcregrep -Mo '(?s)Window type:\s+Desktop.*?Process id: \K\d+' |
  sort -u

(xwininfo -tree to list all the windows, the first pcregrep to extract their window id, the second xwininfo to retrieve the WM properties (including Window type and pid) of each and then the second pcregrep to extract the PID of those Desktop windows).

You could also run:

xprop _NET_WM_PID

And click on the desktop. Or even:

xkill

And click on the desktop to kill that window.

In any case, note that it may not be safe to kill that window/process as it may very well be handled by some essential process like the window manager.

In the case of cinnamon, at least on a default desktop environment on Linux mint 18.1 cinnamon edition, it seems to be nemo though (the cinnamon file manager), so there's little harm killing it.

10
  • ok so i found the program is specifically nemo-desktop, and i disabled it from starting on login, now i have no desktop icons, and if i try to attain the pid as described it returns null even as root, yet something is still being drawn over the xscreensaver, which appears only for a few seconds when i restart cinnamon [ctrl+alt+esc], any idea what it might be?
    – 0x5f3759df
    Jul 26 '17 at 9:38
  • @0x5f3759df, does xprop _NET_WM_PID or xwininfo and click on that not reveal what that is? Jul 26 '17 at 9:42
  • xrpop says "_NET_WM_PID not found" even when using sudo
    – 0x5f3759df
    Jul 26 '17 at 9:42
  • @0x5f3759df, _NET_WM_PID, not xprop _NEW_WM_PID. What about xwininfo? Or xwininfo -all? Jul 26 '17 at 9:44
  • xwininfo: Window id: 0x340002d (has no name) Root window id: 0xd5 (the root window) (has no name) Parent window id: 0xd5 (the root window) (has no name) 0 children.
    – 0x5f3759df
    Jul 26 '17 at 9:46
0

Your title is missleading, to find the root window you could do:

xprop -root | grep PID

With the -root flag you can omit the click on the desktop and with grep PID you can find the PID of your root window, even when you use an obscure WM. Well it probably won't work with TWM.

On my end the output looks like tis:

xprop -root | grep PID
I3_PID(CARDINAL) = 3134

But this process doesn't set your wallpaper. You cannot kill the program that sets your wallpaper because it just does that an then exits. (You should not kill your window manager but there is no harm in killing nemo.)

I suggest you try to disable the wallpaper in cinnamon:

Thist answer on Linux Questions might help: System Settings > Backgrounds > Settings > Picture Aspect 'No Picture'

If this doesn't work you have to disable the desktop:

man nemo says:

   --no-desktop
          Do  not  manage  the desktop — ignore the preference
          set in the preferences dialog.

And in the i3 faq you will find that this command will disable the desktop window for nemo:

gsettings set org.nemo.desktop show-desktop-icons false
7
  • 1
    That's the pid or your window manager, usually not the process that displays a "desktop window" that masks the root window. Not all window manager will add such a property to the root Window. Cinnamon doesn't seem to. Jul 24 '17 at 12:50
  • Usually there is no difference between xprop -root and xprop <CLICK ON DESKTOP>. If there is a difference in Cinnamon, my answer works for most WM/DM except Cinnamon. The programs that set the wallpaper (i.e. xsetroot) send a property change signal to the root window, they do not display a desktop window. This has to be the same under Cinnamon. - But _NET_WM_PID is set? Then it is my WM that isn't standard and because there are some others that are not, I grep for PID.
    – ctx
    Jul 24 '17 at 13:39
  • We're not talking of the root window here (the root windows has no application, xsetroot changes root window attributes and then exits). the arch wiki is actually referring to a window that masks/hides the root window. That is generally a file manager (like nemo on cinnamon or pcmanfm on LXDE) that displays a background and some icons. Jul 24 '17 at 13:43
  • You are right, I just started nautilus and now my desktop wallpaper has changed and a window named 'desktop' appears, it has Icons in it :). But when I kill this desktop window my wallpaper stays the same. That means it works like xsetroot but it doesn't exit, because it has to show some icons. I think you cannot find out the program that did set the wallpaper. hmm, and that was never the question. It was the title..
    – ctx
    Jul 24 '17 at 14:01
  • something is still being drawn on top of xscreenaver, even with no running instances of nemo or nemo-desktop, any idea what it might be?
    – 0x5f3759df
    Jul 26 '17 at 9:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.