You are not logged in.

#1 2013-03-04 23:36:57

Koopa
Member
Registered: 2012-07-20
Posts: 19

nautilus-open-terminal no longer opens non-default terminal

I'm running gnome and have had working for some time now nautilus-open-terminal, with it set to open terminator instead of gnome-terminal. Yesterday I upgrade nautilus-open-terminal.

[2013-03-03 10:40] upgraded nautilus-open-terminal (0.19-3 -> 0.20-1)

Now it is opening gnome-terminal instead of terminator. I've tried a few things to fix this. The first was how I initially set terminator to open, by opening dconf-editor and navigating to org.gnome.desktop.applications.terminal and setting exec to terminator. This was already set, so I tried setting it to default and resetting it. No luck.

I also tried setting it via gsettings with:

gsettings set org.gnome.desktop.default-applications.terminal exec /usr/bin/terminator

I still get gnome-terminal and not terminator. Is there some way in which the newer version looks for which terminal to open that is now different than before? I suppose I could roll back that upgrade and see if that fixes things, but I was curious if anyone knew what was happening here.

Thanks,
-Koopa

Last edited by Koopa (2013-03-05 00:17:29)

Offline

#2 2013-03-18 20:50:16

russo79
Member
Registered: 2011-09-17
Posts: 3

Re: nautilus-open-terminal no longer opens non-default terminal

Hi Koopa.

Unfortunately, there's not much you can do about that. Only solution now would be to patch GLib itself.

The "guilties" here are the commit below in nautilus-open-terminal and glib itself.

commit ce56165ed58b225804f50a01dc101097b7892efd
Author: Kalev Lember <kalevlember@gmail.com>
Date:   Wed Feb 27 21:05:47 2013 +0100
   
    Port the terminal launching to GAppInfo

    ... dropping the use of eel-gnome-extensions and libgnome-desktop.

    This fixes the build with libgnome-desktop 3.7.90 where the terminal
    launching functionality was dropped. Instead, we use GAppInfo with the
    G_APP_INFO_CREATE_NEEDS_TERMINAL flag as a replacement.



In Glib, the code that prepends the terminal command  line is in function prepend_terminal_to_vector on file gio/gdesktopappinfo.c. And as you can see, there is no terminator there.

  check = g_find_program_in_path ("gnome-terminal");
  if (check != NULL)
    {
      term_argv[0] = check;
      /* Note that gnome-terminal takes -x and
       * as -e in gnome-terminal is broken we use that. */
      term_argv[1] = g_strdup ("-x");
    }
  else
    {
      if (check == NULL)
	check = g_find_program_in_path ("nxterm");
      if (check == NULL)
	check = g_find_program_in_path ("color-xterm");
      if (check == NULL)
	check = g_find_program_in_path ("rxvt");
      if (check == NULL)
	check = g_find_program_in_path ("xterm");
      if (check == NULL)
	check = g_find_program_in_path ("dtterm");
      if (check == NULL)
	{
	  check = g_strdup ("xterm");
	  g_warning ("couldn't find a terminal, falling back to xterm");
	}
      term_argv[0] = check;
      term_argv[1] = g_strdup ("-e");
    }

Me too, this bugs me a lot.
If I wasn't too busy with another project, I would try to submit a proposal to freedesktop.org to "standardize" a way to find the default terminal, hoping that gnome devs would consider to implement it.

Offline

Board footer

Powered by FluxBB