Preferencias por tipo de archivo en gedit

Preferencias por tipo de archivo en gedit

Estoy intentando usar gedit para dos tareas diferentes: desarrollar software Python y escribir documentos Latex. Ambos se basan en archivos de texto puro, pero son muy diferentes: por ejemplo, el código Python debe estar alineado para poder ver la estructura del código (bucles, funciones,...). Por lo tanto, una fuente Monospace es algo bueno. Para escribir un documento Latex, necesito principalmente legibilidad. Esto se logra mejor con una fuente que se utiliza en la impresión y definitivamente NO una fuente monoespaciada.

¿Hay alguna manera de decirle a gedit que use preferencias por tipo de archivo? Por ejemplo, ¿Garamond para *.tex y Monospace para *.py? (Pero este problema no se limita a las fuentes, ni tampoco a Latex y Python).

Respuesta1

Bien, como parece que no es posible, preparé un protocomplemento para gedit2 que me funciona en este momento. Todavía espero que alguien tenga una mejor respuesta...

~/.gnome2/gedit/plugins/mimeprefs.py

import gedit

class MimePrefsPlugin(gedit.Plugin):
    def __init__(self):
        gedit.Plugin.__init__(self)

    def activate(self, window):
        pass

    def deactivate(self, window):
        pass

    def update_ui(self, window):
        doc = window.get_active_document()
        try:
            mt = doc.get_mime_type()
        except AttributeError:
            return
        view = window.get_active_view()
        if 'x-tex' in mt:
            view.set_font(False, 'Garamond 14')
        elif 'x-python' in mt:
            view.set_font(False, 'Monospace 12')
        else:
            view.set_font(True, 'Monospace 10')

~/.gnome2/gedit/plugins/mimeprefs.gedit-plugin

[Gedit Plugin]
Loader=python
Module=mimeprefs
IAge=2
Name=Mime-Prefs v1
Description=A plugin to set font preferences based on the mimetype of the document
Authors=-
Copyright=Public Domain
Website=None

EDITAR: actualización para gedit3: Los archivos de complemento entran ~/.local/share/gedit/plugins/y se ven así:

mimeprefs.complemento:

[Plugin]
Loader=python
Module=mimeprefs
IAge=3
Name=Mime-Prefs
Description=A plugin to set font preferences based on the mimetype of the document
Authors=Stefan Schwarzburg
Copyright=Public Domain
Website=None
Version=1.0.0

mimeprefs.py:

from gi.repository import GObject, Gedit


class MimePrefsPlugin(GObject.Object, Gedit.WindowActivatable):
    __gtype_name__ = "MimePrefsPlugin"
    window = GObject.property(type=Gedit.Window)

    def __init__(self):
        GObject.Object.__init__(self)

    def do_activate(self):
        pass

    def do_deactivate(self):
        pass

    def do_update_state(self):
        doc = self.window.get_active_document()
        try:
            mt = doc.get_mime_type()
        except AttributeError:
            return
        view = self.window.get_active_view()
        if 'x-tex' in mt:
            view.set_font(False, 'Garamond 14')
        elif 'x-python' in mt:
            view.set_font(False, 'Monospace 12')
        else:
            view.set_font(True, 'Monospace 10')

Respuesta2

Hasta donde yo sé la respuesta es "no"... Pero...

gconf-editor le permite configurar una fuente de impresión, sin importar qué fuente esté seleccionada actualmente en las opciones de gedit en /apps/gedit-2/preferences/print/fonts, tal vez también haya una opción para seleccionar la fuente de visualización. Si eso es cierto, un script simple puede cambiarlo según la extensión del archivo.

--Editar--

La parte de configuración que estás buscando está en /apps/gedit-2/preferences/editor/font

Haga un pequeño script para cambiarlo según la extensión de los archivos y listo;)

información relacionada