Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 442062 - gnome-base/gnome-3.4.1: default file manager is random (any .desktop file that has "inode/directory" in MimeType)
Summary: gnome-base/gnome-3.4.1: default file manager is random (any .desktop file tha...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] GNOME (show other bugs)
Hardware: All Linux
: Normal enhancement (vote)
Assignee: Gentoo Linux Gnome Desktop Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-11-06 16:21 UTC by Juergen Rose
Modified: 2012-11-24 10:49 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
settings for removable media (wechselmedien_conf.png,31.62 KB, image/png)
2012-11-09 11:14 UTC, Juergen Rose
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Juergen Rose 2012-11-06 16:21:32 UTC
If I try to show a VM with file manager (in german: Maschine -> Im Dateimanager zeigen) audacious is started. In  ~/.local/share/applications/mimeapps.list I have the following:

rose@leopard:/home_leopard/rose(25)$ cat ~/.local/share/applications/mimeapps.list 
[Default Applications]
x-scheme-handler/mailto=userapp-Evolution-P4YAJW.desktop

[Added Associations]
x-scheme-handler/mailto=userapp-Evolution-P4YAJW.desktop;


.local/share/applications/mimeinfo.cache is almost empty:

rose@leopard:/home/rose(131)$ cat .local/share/applications/mimeinfo.cache 
[MIME Cache]


rose@leopard:/home/rose(129)$ ll .local/share/applications/
insgesamt 12
-rw-r----- 1 rose rose 160 28. Aug 20:49 mimeapps.list
-rw-r----- 1 rose rose  13 28. Aug 20:49 mimeinfo.cache
-rw-r----- 1 rose rose 167 28. Aug 20:49 userapp-Evolution-P4YAJW.desktop



Under "upper right corner" -> Systemeinstellungen -> Details -> Vorgabe-Anwendungen (default application) there are only application for Web, E-Mail, Kalendar, Musik, Video and Fotos. There is not any audacious entry. 

'gconftool-2 -R /  | grep audacious' does not find anything:

rose@leopard:/home/rose(157)$ gconftool-2 -R /  | grep audacious
rose@leopard:/home/rose(158)$ 

I can't neither find and audacious entry with the search function of gconf-editor.

Is there any idea, where 'audacious' could be configured as the application for openning of VMs or directories?
Comment 1 Gilles Dartiguelongue (RETIRED) gentoo-dev 2012-11-06 16:45:28 UTC
Audacious most likely lists x-directory or something like this in its .desktop file. This might be fine or it might be not but in order to fix it, you just have to explicitely set the default to nautilus.

[Added Associations]
inode/directory=nautilus.desktop

should do the job
Comment 2 Gilles Dartiguelongue (RETIRED) gentoo-dev 2012-11-06 16:45:57 UTC
oh and since you have a cache, you should probably delete it (it will be auto-regenerated if needed).
Comment 3 Alexandre Rostovtsev (RETIRED) gentoo-dev 2012-11-06 17:15:38 UTC
I have in the past run into the same problem with other applications that have "inode/directory" in the MimeType entry in their .desktop file. It is annoying, and I imagine it's quite mystifying for an average user.

I wonder if there is something we can do so that nautilus is chosen as the default node/directory handler in a gnome session (but not in kde etc.) unless the user had explicitly chosen a different file manager in his mimeapps.list
Comment 4 Pacho Ramos gentoo-dev 2012-11-06 20:03:21 UTC
nautilus is already chosen as default in:
/usr/share/gnome/applications/defaults.list

this functionality is provided by gnome-session... at least for gnome-2.32, no idea is this has been changed in gnome3 :/
Comment 5 Alexandre Rostovtsev (RETIRED) gentoo-dev 2012-11-06 20:41:33 UTC
(In reply to comment #4)
> nautilus is already chosen as default in:
> /usr/share/gnome/applications/defaults.list

This is still present in gnome-session-3, but at least with glib-2.32, it will have no effect unless /usr/share/gnome is in XDG_DATA_DIRS
Comment 6 Pacho Ramos gentoo-dev 2012-11-06 21:01:53 UTC
(In reply to comment #5)
> (In reply to comment #4)
> > nautilus is already chosen as default in:
> > /usr/share/gnome/applications/defaults.list
> 
> This is still present in gnome-session-3, but at least with glib-2.32, it
> will have no effect unless /usr/share/gnome is in XDG_DATA_DIRS

It was covered by:
/etc/X11/xinit/xinitrc.d/15-xdg-data-gnome

but looks to be non working now :S
$ echo $XDG_DATA_DIRS 
/usr/local/share:/usr/share:/usr/share/gdm
Comment 7 Gilles Dartiguelongue (RETIRED) gentoo-dev 2012-11-06 22:00:58 UTC
ah, that would explain the re-occurence of this problem then :(
Comment 8 Alexandre Rostovtsev (RETIRED) gentoo-dev 2012-11-07 07:14:20 UTC
Done a bit more testing: 15-xdg-data-gnome does get correctly run by gdm, and every process launched from gnome-session (gnome-shell etc.) has

XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share:/usr/share:/usr/share/gdm

in its environment. Therefore, as long as you launch programs from gnome-shell's application chooser, everything works beautifully.

But gnome-terminal for whatever reason runs bash as a login shell, so XDG_DATA_DIRS gets overwritten by env.d settings, so anything launched from the terminal will indeed use a random inode/directory handler instead of nautilus.

Other terminals (e.g. xterm) don't seem to run bash as a login shell, and therefore use the correct value of XDG_DATA_DIRS.
Comment 9 Gilles Dartiguelongue (RETIRED) gentoo-dev 2012-11-07 08:10:54 UTC
Hum, there was a time when we had an env.d file for similar reasons. Can somebody remember why this got moved to xinitrc.d ? Most likely to not overstep other desktops default.list, but I can't find a mention of the relevant bug report ?
Comment 10 Pacho Ramos gentoo-dev 2012-11-07 18:17:32 UTC
(In reply to comment #9)
> Hum, there was a time when we had an env.d file for similar reasons. Can
> somebody remember why this got moved to xinitrc.d ? Most likely to not
> overstep other desktops default.list, but I can't find a mention of the
> relevant bug report ?

I am sure this was intentional (and probably done by me) because it needs to be done only when:
if [ "$DESKTOP_SESSION" = "gnome" ]; then

and that kind of stuff cannot be included inside /etc/env.d

On the other hand, do you remember why we force gnome-terminal to run as login shell? This is inherited for years and I can't see a reason, upstream defaults to the opposite and no major distribution is changing this behavior as we are doing.
Comment 11 Gilles Dartiguelongue (RETIRED) gentoo-dev 2012-11-07 19:07:18 UTC
I have not f* clue about that either :)
Comment 12 Juergen Rose 2012-11-09 11:13:31 UTC
To comment 1:
Thanks Gilles for your hint. I added with a editor
inode/directory=nautilus.desktop
to 
[Added Associations]
in ~/.local/share/applications/mimeapps.list. Is this the right way for an average
user? Now nautilus is started, if I try to show a VM with file manager in VirtualBox. 


Maybe I can ask an additional question. Nautilus is also started if I insert a USB stick (instead of audacious, as before), which is a little bit better as before. But I am not asked, what to do, which is configured under:
Upper Right Corner -> Settings -> Details -> Removable Media.
For all media is set "Ask what to do" or in german "Nachfragen, was geschehen soll", see the attached image.
Comment 13 Juergen Rose 2012-11-09 11:14:36 UTC
Created attachment 329002 [details]
settings for removable media
Comment 14 Gilles Dartiguelongue (RETIRED) gentoo-dev 2012-11-09 15:14:33 UTC
There is most likely some kind of magic from a regular gnome env missing for that.

How are you starting your session ?
Comment 15 Juergen Rose 2012-11-09 15:47:40 UTC
I boot linux without graphics. Login at the console as root and start gdm.
Then I login as user rose in a gnome session. The gnome-3.4.1 desktop is then started in fallback mode (due to NVIDIA Corporation GF119 [GeForce GT 520]).
Comment 16 Gilles Dartiguelongue (RETIRED) gentoo-dev 2012-11-09 17:03:37 UTC
So you actually login as user rose via gdm ?
You start gdm from the initscrit right ?
Comment 17 Juergen Rose 2012-11-10 10:04:33 UTC
Yes, I am logged in as user rose via gdm.
No, I doesn not start gdm from the initscript. I started gdm as user root from the command line.
Comment 18 Juergen Rose 2012-11-13 10:27:47 UTC
There is a similar problem with the HTML help inside R, if I do inside R 'help.start()' "links" is started as the HTML browser, which is not intended.
Under "upper right corner"->"systems settings"->"details"->"default applications" 
is firefox configured as default web application. What is still working anyway with 'help.start()' does not work with 'RSiteSearch("something"), because links ignores the proxy system settings.

In ~/.local/share/applications/mimeapps.list I have:

rose@leopard:/home_leopard/rose(6)$ cat ~/.local/share/applications/mimeapps.list
[Default Applications]
x-scheme-handler/mailto=userapp-Evolution-P4YAJW.desktop

[Added Associations]
x-scheme-handler/mailto=userapp-Evolution-P4YAJW.desktop;
inode/directory=nautilus.desktop

After running "xdg-mime default firefox.desktop x-scheme-handler/http x-scheme-handler/https" the contents of ~/.local/share/applications/mimeapps.list changes to:

rose@leopard:/home_leopard/rose(8)$ cat ~/.local/share/applications/mimeapps.list
[Default Applications]
x-scheme-handler/mailto=userapp-Evolution-P4YAJW.desktop
x-scheme-handler/http=firefox.desktop
x-scheme-handler/https=firefox.desktop

[Added Associations]
x-scheme-handler/mailto=userapp-Evolution-P4YAJW.desktop;
inode/directory=nautilus.desktop


Now the intended browser is started inside R. But I do not understand why the settings in "upper right corner"->"systems settings"->"details" are ignored.
Comment 19 Pacho Ramos gentoo-dev 2012-11-17 13:40:15 UTC
(In reply to comment #11)
> I have not f* clue about that either :)

It's due bug 12900, not sure how to proceed and what we prefer to lose :/
Comment 20 Pacho Ramos gentoo-dev 2012-11-18 08:40:11 UTC
(In reply to comment #19)
> (In reply to comment #11)
> > I have not f* clue about that either :)
> 
> It's due bug 12900, not sure how to proceed and what we prefer to lose :/

But, people can simply move things from their .bash_profile to .bashrc as "man bash" suggests... then this wouldn't be a problem and we could revert gnome-terminal to not be a login shell as upstream and other distros do
Comment 21 Juergen Rose 2012-11-19 12:27:45 UTC
> But, people can simply move things from their .bash_profile to .bashrc 

I thought that .bash_profile is for the initialisation, you want to perform, when you login the first time into a terminal, while .bashrc is for the initialisation which should be done, if an additional bash is started inside a running bash.
Comment 22 Pacho Ramos gentoo-dev 2012-11-24 10:49:13 UTC
+*gnome-terminal-2.32.1-r1 (24 Nov 2012)
+*gnome-terminal-3.4.1.1-r1 (24 Nov 2012)
+
+  24 Nov 2012; Pacho Ramos <pacho@gentoo.org> +gnome-terminal-2.32.1-r1.ebuild,
+  +gnome-terminal-3.4.1.1-r1.ebuild, -gnome-terminal-3.4.0.1.ebuild:
+  Stop defaulting to enable login shell as it causes problems (#442062 by
+  Juergen Rose), with this we revert to upstream (and most distributions)
+  default setting.
+

For remaining bugs please open a new bug report. Also, note this changes the default, if you are still seeing the variable to be overwritten, please check you don't have that option enabled in your gnome-terminal preferences