mate-desktop / caja

Caja, the file manager for the MATE desktop
https://mate-desktop.org/
Other
271 stars 145 forks source link

caja ignores --no-desktop - MATE caja 1.12.6 #555

Open kolorafa opened 8 years ago

kolorafa commented 8 years ago

When starting 'caja --no-desktop', caja still run on desktop, change background (that can't be changed, contect menu doesn't work, but can drop pattern/color from caja settings) and put icons. Normally i don't have any icons on desktop, only fullscreen background.

Is this a bug?

I did manage to run caja without desktop by:

export DESKTOP_AUTOSTART_ID='' caja

Using Arch Antergos with Gnome (next install will probably be back to Mate)

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/34604209-caja-ignores-no-desktop-mate-caja-1-12-6?utm_campaign=plugin&utm_content=tracker%2F651521&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F651521&utm_medium=issues&utm_source=github).
DorianScholz commented 8 years ago

Same problem here, even on a non-MATE session (GNOME-Flashback). Autostarting Caja as a filemanager is not possible, it will always take over my desktop even with the "--no-desktop" argument. Same happens when I start it through application starter "albert", which was autostarted.

This problem is due to the "autostart_mode" overriding the command line argument, which is clearly a bug in my opinion, as command line parameter should have higher priority than some auto detection: https://github.com/mate-desktop/caja/blob/master/src/caja-main.c#L480

This bug has been reported twice before and closed without a proper patch: https://github.com/mate-desktop/caja/issues/164 https://github.com/mate-desktop/caja/issues/335

My workaround is: env --unset=DESKTOP_AUTOSTART_ID caja --no-desktop

lukefromdc commented 8 years ago

Caja has a preference option to manage the desktop or not when autostarted. Open dconf-editor, go to org>mate>desktop>background>show-desktop-icons and set to "false" and desktop icons will not be shown. Also newer versions of caja check to ensure they are running in a mate session before showing the desktop, so in other sessions this should not be an issue.

DorianScholz commented 8 years ago

Caja has a preference option to manage the desktop or not when autostarted. Open dconf-editor, go to org>mate>desktop>background>show-desktop-icons and set to "false" and desktop icons will not be shown.

Setting this to false indeed prevents caja from managing my desktop, but 1) the name "show-desktop-icons" does not really speak for it self, it should be called "let caja manage desktop" and be located under caja's settings 2) with this set to false, caja does not manage my desktop when autostarted, but it still does not open a file browser window... This is due to the "no_default_window" flag also triggered by the autostart_mode: https://github.com/mate-desktop/caja/blob/master/src/caja-main.c#L479 3) i still think overriding the "no-desktop" command line parameter due to autostart_mode is not understandable from a user perspective. specifically executing "caja --no-desktop" and being presented with a caja desktop is just wrong...

Also newer versions of caja check to ensure they are running in a mate session before showing the desktop, so in other sessions this should not be an issue.

The current code in the git master branch clearly ignores the check for other desktops and also for being root and still manages tge desktop, when the autostart_mode is set: https://github.com/mate-desktop/caja/blob/master/src/caja-main.c#L482 This "else if" condition is never even evaluated, when the autostart_mode flag is true.

lukefromdc commented 8 years ago

Removing the word "else" would probably fix this. Testing would require editing the .desktop files Caja is started from temporarily. I don't have any of the launch utilities you mentioned. At the moment I am about to get very busy.

If caja gets ported to GtkApplication, that "else" is not in the comparable lines in my porting work so this might be gone by 1.18. I have never once seen "caja --no-desktop" run from a terminal manage the desktop, and had the opposite problem of having to force the desktop environment to MATE in an icewm session to get caja to manage the desktop when started by IceWM's startup script. There was of course no autostart ID as that is a shell script. Due to that I've also ported GNOME's "force-desktop" option to the GtkApplication port.

I suppose this could have been intentional, to permit Caja to manage the desktop in gnome-flashback where Caja is an option, yet not take over the desktop when run manually in another DE(an old and long fixed Nautilus problem) If gnome-flashback users have to edit /usr/share/applications/caja.desktop to include the line --force-desktop I may have to revisit that in the GtkApplication port.

kolorafa commented 8 years ago

Reading the dconf variable to populate desktop with icons is the best way to globally set the default behavior, but still giving a command line --desktop or --no-desktop should override this behavior, so it's a matter of changing order so command line options override stuff not the other way around.

Maybe .. yea, it's stuppid but maybe .. you normally don't want icons on desktop because it uses memory/cpu/gpu, but you have shortcut in menu to "show desktop icons" that will run caja with --desktop. But even if you don't want icons you still use caja as a File Manager.

The first thought that i get when i run "caja --no-desktop" and it still populate desktop is that this app is broken and i need to switch file manager, not that there is some global setting that override commands.

MalwaredPC commented 8 years ago

1) the name "show-desktop-icons" does not really speak for it self, it should be called "let caja manage desktop" and be located under caja's settings

Better "Allow Caja manage the Desktop".

rdiez commented 5 years ago

I am having an issue that is probably related to this. I recently installed a fresh Ubuntu MATE 18.04. When I run "caja --no-desktop some_dir", it looks like all "Startup Applications" are run again.

By the way, Nautilus has moved destkop handling somewhere else:

--no-desktop Never manage the desktop (ignore the GSettings preference). Deprecated - the desktop is managed in a separate binary.

It feels strange for a file manager to manage the desktop too. I think that is the way to go.

lukefromdc commented 5 years ago

Current nautilus has entirely dropped support for icons on the desktop as GNOME devs don't use it themselves and porting the nautilus-desktop binary to wayland would rapparently reuire a scratch rewrite of the canvas code for it.

Ubuntu for at least one release decided not to use the version of Nautilus that dropped desktop support. GNOME devs have suggested using Nemo or writing a gnome-shell extension for icons on the desktop

On 5/12/2019 at 11:03 AM, "rdiez" notifications@github.com wrote:

I am having an issue that is probably related to this. I recently installed a fresh Ubuntu MATE 18.04. When I run "caja --no-desktop some_dir", it looks like all "Startup Applications" are run again.

By the way, Nautilus has moved destkop handling somewhere else:

--no-desktop Never manage the desktop (ignore the GSettings preference).
Deprecated - the desktop is managed in a separate binary.

It feels strange for a file manager to manage the desktop too. I think that is the way to go.

-- You are receiving this because you commented. Reply to this email directly or view it on GitHub: https://github.com/mate-desktop/caja/issues/555#issuecomment- 491603400