¿Cómo forzar a gedit a abrir una nueva ventana independientemente de las ventanas gedit existentes cada vez que se hace doble clic en un archivo de texto en un escritorio Gnome de Debian 8?

9

¿Cómo se geditpuede forzar a abrir una nueva ventana independientemente de las ventanas gedit existentes cada vez que se hace doble clic en un archivo de texto (.txt) en un escritorio Gnome de Debian 8, Jessie?

Supongamos que a.txt ya está abierto en una ventana gedit y que b.txt hace doble clic en un escritorio Gnome de Debian 8 Jessie. Luego, desafortunadamente, por defecto de fábrica, b.txt se abrirá en una pestaña en la misma ventana que a.txt.

Sin embargo, quiero b.txtque se abra en una nueva ventana de gedit para que haya dos ventanas: la ventana existente para a.txt y una nueva ventana para b.txt.

Si Gnome invocó gedit con la opción "-s" como en

gedit -s b.txt

luego b.txtse abriría en una nueva ventana, mientras que a.txt permanece en su ventana existente.

Sin embargo, por defecto, Gnome parece invocar gedit sin la opción "-s".

El archivo de configuración

/usr/share/applications/org.gnome.gedit.desktop

contiene la directiva de ejecución

Exec=gedit %U

Entonces, lo cambié a

Exec=gedit -s %U

mediante los siguientes comandos, y reinició la computadora.

cd /usr/share/applications
su # similar to sudo
mv org.gnome.gedit.desktop org.gnome.gedit.desktop.bak
perl -pe 's/Exec=gedit %U/Exec=gedit -s %U/' org.gnome.gedit.desktop.bak > org.gnome.gedit.desktop
diff org.gnome.gedit.desktop org.gnome.gedit.desktop.bak

Sin embargo, este método ha fallado. El b.txt todavía se abre en una pestaña en la misma ventana que a.txt. Estoy atascado. Necesito tu ayuda.

El modo predeterminado de gedit es "ventana única, pestañas múltiples". Quiero el modo "ventanas múltiples".

Por cierto, el siguiente método inútil convierte a gedit en el modo "ventana única, sin pestaña", que no es lo que quiero.

gsettings set org.gnome.gedit.preferences.ui show-tabs-mode 'never'

Con este método "gsettings", gedit cierra automáticamente a.txt y reutiliza la ventana existente de a.txt para abrir b.txt en él cada vez que se hace doble clic en un escritorio. Por lo tanto, es el modo "ventana única, sin pestaña" (en oposición a "ventanas múltiples").

(Por cierto, el valor predeterminado para "show-tabs-mode" es 'auto').

i7pj3qnuz
fuente
@don No estoy muy familiarizado con el lanzador. ¿Cuáles son los comandos para invocar el lanzador separado?
i7pj3qnuz

Respuestas:

5

La razón por la cual su modificación de la Execclave en el archivo .desktop no funcionó es que gedit está activado por DBus. Esto significa que se inicia a través del demonio DBus de su sesión y luego proporciona una interfaz DBus común para que dichos programas activables especifiquen los archivos que se abrirán. Puede evitar esto cambiando la DBusActivatableclave a false.

Además, es mucho mejor crear una copia del archivo .desktop que desea modificar en su directorio de inicio y usarlo para anular el archivo de todo el sistema que modificarlo directamente. De esa manera, el sistema no se sobrescribirá en las actualizaciones del paquete de distribución. Para hacer eso solo copia /usr/share/applications/org.gnome.gedit.desktopa ~/.local/share/applications/org.gnome.gedit.desktop. Los archivos en esta ruta anularán los archivos con el mismo nombre del directorio de todo el sistema.

Entonces también hay una diferencia importante entre los dos posibles indicadores utilizados para abrir una nueva ventana: --new-windowo -s. Ambos darán como resultado que los archivos se abran en una nueva ventana, pero con -scada ventana también pertenecerá a su propio proceso. Cuando se usan --new-windowtodas las ventanas comparten el mismo proceso gedit.

Y, por último, para asegurarse de que esto también funciona si selecciona varios archivos en su administrador de archivos y los abre, necesita otra modificación de la Execclave. Los %Umedios que varias direcciones URL pueden utilizarse como argumentos para este comando, lo que significa que el administrador de archivos podría iniciar de este modo: gedit --new-window file1.txt file2.txt. Esto da como resultado una nueva ventana única con dos pestañas. Si cambia esto a %uahora, eso le dice al administrador de archivos, que la aplicación solo acepta una única URL como argumento y, por lo tanto, hace que ejecute el comando varias veces, cada vez con un archivo diferente como argumento. Para obtener más detalles sobre esto, consulte la especificación de entrada de escritorio de freedesktop .

Sebastian
fuente
0

Según la respuesta de Sebastians , haga lo siguiente:

  1. Haga una copia local de las configuraciones gedit. Los cambios que realice, se aplicarán solo al usuario actual.

    cp /usr/share/applications/org.gnome.gedit.desktop ~ / .local / share / aplicaciones / geditNewWin.desktop

  2. En el archivo ~ / .local / share / aplicaciones / geditNewWin.desktop: vaya a todas las EXEC=líneas (hay algunas) y configúrelas en Exec=gedit -s %U. Cambio adicional Name=Text Editora Name=Text Editor (new window).

  3. En su Nautilus File Manager (administrador de archivos estándar en Gnome, a menudo llamado solo 'Archivos' o Archivos Gnome ), asocie los tipos de archivo (.txt, .csv, ...) con su aplicación recién creada:

    • Haga clic derecho en un archivo .txt (o el tipo de archivo que desee)
    • haga clic en 'Propiedades'
    • seleccione la pestaña 'Abrir con'
    • seleccione 'Editor de texto (nueva ventana)' de la lista
    • Haga clic en 'Establecer como predeterminado'
Markus Dutschke
fuente