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;)