pages/sphinx/emacs29/doc/build/CapConSecciones/ApendiceD.html

50 KiB
Raw Blame History

<html class="writer-html5" lang="es" data-content_root="../"> <head> </head>
GNU/Emacs 29.1
Traducción Revisón: 1.70
GNU/Emacs 29.1

Apéndice D Opciones y Recursos de X

Puede personalizar algunos aspectos del comportamiento de Emacs relacionados con X usando recursos X, como es habitual en los programas que usan X.

Cuando Emacs se compila con soporte GTK+, la apariencia de varios widgets gráficos, como la barra de menú, la barra de desplazamiento y los cuadros de diálogo, viene determinada por los recursos GTK+, que también describiremos. Cuando Emacs se construye sin soporte GTK+, la apariencia de estos widgets está determinada por recursos X adicionales.

En MS-Windows, puedes personalizar algunos de los mismos aspectos usando el registro del sistema (ver El registro del sistema MS-Windows).

D.1 Recursos X

Los programas que se ejecutan bajo el Sistema X Window organizan sus opciones de Usuario bajo una jerarquía de clases y recursos. Usted puede especificar valores por defecto para estas opciones en su archivo de recursos X, usualmente llamado ~/.Xdefaults o ~/.Xresources. Los cambios en este archivo no tienen efecto inmediato, porque el servidor X almacena su propia lista de recursos; para actualizarla, utilice el comando xrdb-por ejemplo, “xrdb ~/.Xdefaults”.

Las configuraciones especificadas a través de los recursos X en general anulan las configuraciones equivalentes en los archivos init de Emacs (véase El archivo de Inicialización de Emacs), en particular para los parámetros del marco inicial (véase Parámetros del Marco).

(Los sistemas MS-Windows no soportan archivos de recursos X; en tales sistemas, Emacs busca recursos X en el Registro de Windows, primero bajo la clave “HKEY_CURRENT_USERSOFTWAREGNUEmacs”, que afecta sólo al Usuario actual y anula la configuración de todo el sistema, y luego bajo la clave “HKEY_LOCAL_MACHINESOFTWAREGNUEmacs”, que afecta a todos los Usuarios del sistema. El menú y las barras de desplazamiento son widgets nativos de MS-Windows, por lo que sólo se pueden personalizar a través de la configuración de todo el sistema en el Panel de Control de Pantalla. También puede configurar los recursos mediante la opción de línea de comandos “-xrm”, como se explica a continuación).

Cada línea del archivo de recursos X especifica un valor para una opción o para un conjunto de opciones relacionadas. El orden en que aparecen las líneas en el archivo no importa. Cada especificación de recurso consiste en un nombre de programa y un nombre de recurso. La distinción entre mayúsculas y minúsculas es importante en cada uno de estos nombres. He aquí un ejemplo:

emacs.cursorColor: dark green

El nombre del programa es el nombre del archivo ejecutable al que se aplica el recurso. Para Emacs, normalmente es “emacs”. Para especificar una definición que se aplique a todas las instancias de Emacs, independientemente del nombre del ejecutable de Emacs, utilice “Emacs”.

El nombre del recurso es el nombre de un ajuste del programa. Por ejemplo, Emacs reconoce un recurso “cursorColor” que controla el color del cursor de texto.

Los recursos se agrupan en clases con nombre. Por ejemplo, la clase “Foreground” contiene los recursos “cursorColor”, “foreground” y “pointerColor” (ver Tabla de Recursos X para Emacs). En lugar de utilizar un nombre de recurso, puede utilizar un nombre de clase para especificar el valor por defecto para todos los recursos de esa clase, de esta manera:

emacs.Foreground: dark green

Emacs no procesa los recursos X en absoluto si establece la variable inhibit-x-resources a un valor no nulo. Si invoca Emacs con la opción de línea de comandos “-Q” (o “quick”), inhibit-x-resources se establece automáticamente a t (ver Opciones Iniciales).

Además, puede utilizar las siguientes opciones de línea de comandos para anular el archivo de recursos X:

-name nombre name=nombre

Esta opción establece el nombre del programa del marco inicial de Emacs a nombre. También establece el título del marco inicial a nombre. Esta opción no afecta a los marcos posteriores.

Si no se especifica esta opción, por defecto se utiliza el nombre del ejecutable de Emacs como nombre del programa.

Por coherencia, “-name” también especifica el nombre a utilizar para otros valores de recursos que no pertenecen a ningún marco en particular.

Los recursos que nombran invocaciones Emacs también pertenecen a una clase, llamada “Emacs”. Si escribe “Emacs” en lugar de “emacs”, el recurso se aplica a todos los marcos de todos los trabajos Emacs, independientemente de los títulos de los marcos y del nombre del fichero ejecutable.

-xrm resource-value xrm=resource-value

Esta opción especifica valores de recursos X para el trabajo Emacs actual.

resource-value debe tener el mismo formato que usaría dentro de un fichero de recursos X. Varias opciones “-xrm” son posibles para incluir múltiples especificaciones de recursos. También puede usar “#include «nombre-de-archivo»” como recurso-valor para incluir un archivo lleno de especificaciones de recursos. Los valores de recursos especificados con “-xrm” tienen prioridad sobre todas las demás especificaciones de recursos.

D.2 Tabla de Recursos X para Emacs

La siguiente tabla lista los nombres de recursos X que Emacs reconoce. Tenga en cuenta que algunos de los recursos no tienen efecto en Emacs compilado con varios kits de herramientas X (GTK+, Lucid, etc.) - indicamos más abajo cuando este es el caso.

alpha (class Alpha)

Establece el parámetro de marco “alpha”, determinando la transparencia del marco (ver Parámetros de Marco en el Manual de Referencia de Emacs Lisp).

alphaBackground (class AlphaBackground)

Establece el parámetro de marco “alpha-background”, determinando la transparencia del fondo (ver Parámetros de Marco en el Manual de Referencia de Emacs Lisp).

background (class Background)

Color de fondo (véase Colores para las Caras).

bitmapIcon (class BitmapIcon)

Indica al gestor de ventanas que muestre el icono de Emacs si está “on”; no lo haga si está “off”. Ver Iconos, para una descripción del icono.

borderColor (class BorderColor)

Color del borde externo del marco. Esto no tiene efecto si Emacs está compilado con soporte GTK+.

borderWidth (class BorderWidth)

Anchura del borde externo del marco, en píxeles. Esto no tiene efecto si Emacs está compilado con soporte GTK

cursorBlink (class CursorBlink)

Si el valor de este recurso es “off” o “false” o “0” al inicio, Emacs desactiva el modo Cursor parpadeante (ver Visualización del Cursor).

cursorColor (class Foreground)

Color del cursor de texto. Si este recurso se especifica cuando Emacs se inicia, Emacs establece su valor como el color de fondo de la cara del cursor (ver Caras del Texto).

font (class Font)

Nombre de la fuente por defecto (ver Fuentes). También puede especificar un nombre de conjunto de fuentes (véase Conjuntos de Fuentes).

fontBackend (class FontBackend)

Lista delimitada por comas de backend(s) a usar para dibujar fuentes, en orden de precedencia. Por ejemplo, el valor “x,xft” le dice a Emacs que dibuje las fuentes usando el controlador de fuentes del núcleo X, recurriendo al controlador de fuentes Xft si falla. Normalmente, deberías dejar este recurso sin configurar, en cuyo caso Emacs intenta usar todos los backends de fuentes disponibles.

foreground (class Foreground)

Color de primer plano por defecto para el texto.

fullscreen (class Fullscreen)

El tamaño de pantalla completa deseado. El valor puede ser fullboth, maximized, fullwidth o fullheight, que corresponden a las opciones de línea de comandos “-fs”, “-mm”, “-fw”, y “-fh” (ver Opciones para Tamaño y Posición de Ventana). Tenga en cuenta que esto sólo se aplica al marco inicial.

geometry (class Geometry)

Tamaño y posición de la ventana. El valor debe ser una especificación de tamaño y posición, de la misma forma que en la opción de línea de comandos “-g” o “geometry” (ver Opciones para Tamaño y Posición de Ventana).

El tamaño se aplica a todos los marcos de la sesión Emacs, pero la posición se aplica sólo al marco Emacs inicial (o, en el caso de un recurso para un nombre de marco específico, sólo a ese marco).

Tenga cuidado de no especificar este recurso como “emacs*geometry”, ya que podría afectar a menús individuales así como al marco principal de Emacs.

horizontalScrollBars (class ScrollBars)

Si el valor de este recurso es “off” o “false” o “0”, Emacs desactiva el modo Barra de desplazamiento horizontal al inicio (ver Barras de desplazamiento).

iconName (class Title)

Nombre a mostrar en el icono.

internalBorder (class BorderWidth)

Anchura del borde interno del marco, en píxeles.

lineSpacing (class LineSpacing)

Espacio adicional entre líneas, en píxeles.

menuBackground (class Background

El color de fondo de los menús en versiones no toolkit de Emacs. (Para las versiones con toolkit, véase Menú Lucid y Recursos X de Diálogo, también véase Menú Motif Recursos X, y véase Recursos GTK+).

menuBar (class MenuBar)

Si el valor de este recurso es “off” o “false” o “0”, Emacs desactiva el modo Barra de Menú al inicio (ver Barras de Menú).

minibuffer (class Minibuffer)

Si es “none”, Emacs no hará un minibuffer en este marco; en su lugar usará un marco de minibuffer separado.

paneFont (class Font)

Nombre de fuente para los títulos de los paneles de menú, en versiones de Emacs que no sean toolkit. (Para las versiones con toolkit, véase Lucid Menu And Dialog X Resources, también véase Motif Menu X Resources, y véase GTK+ resources).

paneForeground (class Foreground) ¶

Color de primer plano para los títulos de los paneles de menú, en versiones de Emacs sin toolkit. (Para las versiones con toolkit, véase Lucid Menu And Dialog X Resources, también véase Motif Menu X Resources, y véase GTK+ resources).

pointerColor (class Foreground)

Color del cursor del ratón. Esto no tiene efecto en muchos entornos gráficos de escritorio, ya que no permiten a Emacs cambiar el cursor del ratón de esta manera.

privateColormap (class PrivateColormap)

Si “on”, usa un mapa de color privado, en el caso de que el visual por defecto de la clase PseudoColor y Emacs lo esté usando.

reverseVideo (class ReverseVideo)

Cambia los colores de primer plano y fondo por defecto si está “on”, usa los colores especificados si está “off”.

screenGamma (class ScreenGamma) ¶

Corrección gamma de los colores, equivalente al parámetro de trama screen-gamma.

scrollBar (class ScrollBar)

Si el valor de este recurso es “off” o “false” o “0”, Emacs desactiva el modo Barra de desplazamiento al inicio (ver Barras de Desplazamiento).

scrollBarWidth (class ScrollBarWidth)

El ancho de la barra de desplazamiento en píxeles, equivalente al parámetro de frame scroll-bar-width. No establezca este recurso si Emacs está compilado con soporte GTK+.

selectionFont (class SelectionFont)

Nombre de fuente para los elementos del menú emergente, en versiones de Emacs que no sean toolkit. (Para versiones con toolkit, véase Lucid Menu And Dialog X Resources, también véase Motif Menu X Resources, y véase GTK+ resources).

selectionForeground (class SelectionForeground)

Color de primer plano para los elementos del menú emergente, en versiones de Emacs sin toolkit. (Para las versiones con toolkit, véase Lucid Menu And Dialog X Resources, también véase Motif Menu X Resources, y véase GTK+ resources).

selectionTimeout (class SelectionTimeout)

Número de milisegundos que hay que esperar para recibir una respuesta de la selección. Si el propietario de la selección no responde en este tiempo, nos damos por vencidos. Un valor de 0 significa esperar tanto como sea necesario.

synchronous (class Synchronous)

Ejecuta Emacs en modo síncrono si está “on”. El modo síncrono es útil para depurar problemas de X.

title (class Title)

Nombre a mostrar en la barra de título del marco inicial de Emacs.

toolBar (class ToolBar)

Si el valor de este recurso es “off” o “false” o “0”, Emacs desactiva el modo Barra de herramientas al inicio (ver Barras de Herramientas).

tabBar (class TabBar)

Si el valor de este recurso es “on” o “yes” o “1”, Emacs activa el modo Barra de Tabuladores al inicio (ver Barras de Tabuladores).

useXIM (class UseXIM)

Desactiva el uso de métodos de entrada X (XIM) si es “false” o “off”. Esto sólo es relevante si tu Emacs está construido con soporte XIM. Puede ser útil desactivar XIM en enlaces cliente/servidor X lentos.

inputStyle (class InputStyle)

Este recurso controla cómo se muestra el texto de previsualización generado por los métodos de entrada X. Su valor puede ser uno de los siguientes:

callback

Muestra el contenido del texto de previsualización en la memoria intermedia actual.

offthespot

Muestra el texto de previsualización dentro de un área separada de la pantalla proporcionada por Emacs.

overthespot

Muestra el texto de previsualización dentro de una ventana emergente en la ubicación del punto en la ventana actual.

none

Deja que el método de entrada decida cómo mostrarse. Esto suele ser equivalente a “overthespot”, pero podría funcionar con más métodos de entrada.

native

Utiliza el kit de herramientas para manejar métodos de entrada. Actualmente esto sólo está implementado en GTK.

root

Utilizar alguna ubicación en pantalla específica del método de entrada para mostrar el texto de previsualización.

synchronizeResize (class SynchronizeResize)

Si está “off” o “false”, Emacs no intentará decirle al gestor de ventanas cuándo ha terminado de redibujar la pantalla en respuesta al redimensionamiento de un marco. En caso contrario, el gestor de ventanas pospondrá el dibujo de un marco que acaba de ser redimensionado hasta que se actualice su contenido, lo que evita que se muestren áreas en blanco de un marco que aún no han sido pintadas. Si se establece a “extended”, habilitará el uso de un protocolo alternativo de sincronización de marcos, que podría ser soportado por algunos gestores de ventanas de composición que no soportan el protocolo que Emacs usa por defecto, y hace que Emacs sincronice la visualización con la tasa de refresco del monitor cuando se está usando un gestor de ventanas de composición compatible.

verticalScrollBars (class ScrollBars)

Dar a los marcos barras de desplazamiento a la izquierda si es “izquierda”, a la derecha si es “derecha”; no tener barras de desplazamiento si es “desactivado” (ver Barras de Desplazamiento).

visualClass (class VisualClass)

La clase visual para la visualización en color X. Si se especifica, el valor debe empezar por uno de los siguientes: “TrueColor”, “PseudoColor”, “DirectColor”, “StaticColor”, “GrayScale” y “StaticGray”, seguido de “-depth”, donde depth es el número de planos de color.

También puedes usar recursos X para personalizar caras Emacs individuales (ver Caras de Texto). Por ejemplo, establecer el recurso “face.attributeForeground” equivale a personalizar el atributo “foreground” de la cara. Sin embargo, recomendamos personalizar las caras desde dentro de Emacs, en lugar de usar recursos X. Véase Personalización de caras.

D.4 Recursos X del Menú Motif

Si Emacs está compilado con el soporte del toolkit X usando widgets Motif o LessTif, puede usar recursos X para personalizar la apariencia de la barra de menús (ver La barra de Menús), menús emergentes y cuadros de diálogo (ver Usando Cuadros de Diálogo). Sin embargo, los recursos están organizados de forma diferente a los widgets Lucid.

Los nombres de los recursos para la barra de menú están en la clase “pane.menubar”, y deben especificarse de esta forma:

Emacs.pane.menubar.subwidget.resource: value

Para los menús emergentes, los recursos están en la clase “menu*”, en lugar de “pane.menubar”. Para los cuadros de diálogo, están en “dialog”. En cada caso, cada cadena de menú individual es un subwidget; el nombre del subwidget es el mismo que el de la cadena del elemento de menú. Por ejemplo, el menú “Archivo” de la barra de menús es un subwidget llamado “emacs.pane.menubar.File”.

Normalmente, querrá especificar los mismos recursos para toda la barra de menús. Para ello, utilice “*” en lugar de un nombre específico de subwidget. Por ejemplo, para especificar la fuente “8x16” para todos los elementos de la barra de menús, incluidos los submenús, escriba esto:

Emacs.pane.menubar.*.fontList: 8x16

Cada elemento de un submenú también tiene su propio nombre para los recursos X; por ejemplo, el submenú «Archivo» tiene un elemento llamado «Guardar (búfer actual)». Una especificación de recursos para un elemento de submenú tiene este aspecto:

Emacs.pane.menubar.popup_*.menu.item.resource: value

Por ejemplo, así es como se especifica el tipo de letra para el elemento «Guardar (búfer actual)»:

Emacs.pane.menubar.popup_*.File.Save (current buffer).fontList: 8x16

Para un elemento de un submenú de segundo nivel, como «Completar Word» en «Corrección ortográfica» dentro de «Herramientas», el recurso se ajusta a esta plantilla:

Emacs.pane.menubar.popup_*.popup_*.menu.resource: value

Por ejemplo:

Emacs.pane.menubar.popup_*.popup_*.Spell Checking.Complete Word: value

(Esto debería ser una línea larga).

Si desea que los elementos del submenú tengan un aspecto diferente al de la propia barra de menús, primero debe especificar el recurso para todos ellos y, a continuación, anular el valor sólo para los submenús. He aquí un ejemplo:

Emacs.pane.menubar.*.fontList: 9x18 Emacs.pane.menubar.popup_*.fontList: 8x16

Para especificar recursos para el cuadro de selección de archivos LessTif, utilice “fsb*”, de la siguiente manera:

Emacs.fsb*.fontList: 8x16

He aquí una lista de recursos para las barras de menú y los menús emergentes de LessTif:

armColor

El color a mostrar en un botón activo.

fontlist

El tipo de letra a utilizar.

marginBottom marginHeight marginLeft marginRight marginTop marginWidth

Cantidad de espacio a dejar alrededor del elemento, dentro del borde.

borderWidth

El ancho del borde alrededor del elemento de menú, en todos los lados.

shadowThickness

El ancho de la sombra del borde.

bottomShadowColor

El color para la sombra del borde, en la parte inferior y la derecha.

topShadowColor

El color para la sombra del borde, arriba y a la izquierda.

D.5 Recursos GTK

Si Emacs está compilado con soporte para el toolkit GTK+, la forma más sencilla de personalizar sus widgets GTK+ (por ejemplo, menús, diálogos, barras de herramientas y barras de desplazamiento) es elegir un tema GTK+ apropiado, por ejemplo con el selector de temas de GNOME.

En la versión 2 de GTK+, también puede usar recursos GTK+ para personalizar la apariencia de los widgets GTK+ usados por Emacs. Estos recursos se especifican en el archivo ~/.emacs.d/gtkrc (para recursos GTK+ específicos de Emacs), o ~/.gtkrc-2.0 (para recursos GTK+ generales). Recomendamos usar ~/.emacs.d/gtkrc, ya que GTK+ parece ignorar ~/.gtkrc-2.0 cuando se ejecuta GConf con GNOME. Tenga en cuenta, sin embargo, que algunos temas GTK+ pueden anular las personalizaciones en ~/.emacs.d/gtkrc; no hay nada que podamos hacer al respecto. Los recursos GTK+ no afectan a los aspectos de Emacs no relacionados con los widgets GTK+, como las fuentes y los colores en la ventana principal de Emacs; estos se rigen por los recursos X normales (ver Recursos X).

Las siguientes secciones describen cómo personalizar los recursos GTK+ para Emacs. Para más detalles sobre los recursos GTK+, consulta el documento de la API GTK+ en https://developer-old.gnome.org/gtk2/stable/gtk2-Resource-Files.html.

En la versión 3 de GTK+, los recursos GTK+ han sido reemplazados por un sistema completamente diferente. La apariencia de los widgets GTK+ viene ahora determinada por archivos de estilo tipo CSS: gtk-3.0/gtk.css en el directorio de instalación de GTK+, y ~/.themes/theme/gtk-3.0/gtk.css para la configuración de estilo local (donde theme es el nombre del tema GTK+ actual). Por lo tanto, la descripción de los recursos GTK+ en esta sección no se aplica a GTK+ 3. Para obtener más información sobre el sistema de estilos de GTK+ 3, consulte https://developer-old.gnome.org/gtk3/3.0/GtkCssProvider.html.

D.5.1 Conceptos Básicos de los Recursos GTK

En un archivo de recursos GTK+ 2 (normalmente ~/.emacs.d/gtkrc), el tipo más simple de configuración de recursos simplemente asigna un valor a una variable. Por ejemplo, poner la siguiente línea en el archivo de recursos cambia la fuente en todos los widgets GTK+ a “courier-12”:

gtk-font-name = «courier 12»

Tenga en cuenta que en este caso el nombre de la fuente debe suministrarse como un patrón de fuente GTK (también llamado nombre de fuente Pango), no como un nombre de fuente estilo Fontconfig o XLFD. Véase Fuentes.

Para personalizar los widgets primero se define un estilo, y luego se aplica el estilo a los widgets. He aquí un ejemplo que establece el tipo de letra para los menús (los caracteres “#” indican comentarios):

# Define el estilo mi_stilo. style «my_style» {

font_name = «helvetica bold 14»

}

# Especifica el tipo de widget emacs-menuitem usa mi_stilo. widget «emacs-menuitem» style «my_style»

El nombre del widget en este ejemplo contiene comodines, por lo que el estilo se aplica a todos los widgets que coincidan con “emacs-menuitem”. Los widgets se nombran por la forma en que están contenidos, desde el widget exterior al interior. Aquí hay otro ejemplo que aplica “mi_estilo” específicamente a la barra de menú de Emacs:

widget «Emacs.pane.menubar.*» style «mi_stilo»

He aquí un ejemplo más elaborado, que muestra cómo cambiar las partes de la barra de desplazamiento:

style «scroll» {

fg[NORMAL] = «red» # Color de la flecha. bg[NORMAL] = «yellow» # Margen y fondo alrededor de la flecha. bg[ACTIVE] = «blue» # Color del Canal. bg[PRELIGHT] = «white» # Color del umbral cuando el ratón está sobre él.

}

widget «verticalScrollBar» style «scroll»

D.5.2 Nombres de widgets (miniaplicaciones) GTK

Un widget GTK+ se especifica mediante un nombre de widget y una clase de widget. El nombre del widget se refiere a un widget específico (por ejemplo, “emacs-menuitem”), mientras que la clase widget se refiere a una colección de widgets similares (por ejemplo, “GtkMenuItem”). Un widget siempre tiene una clase, pero no necesita tener un nombre.

Los nombres absolutos son secuencias de nombres de widgets o clases de widgets, que corresponden a jerarquías de widgets incrustados dentro de otros widgets. Por ejemplo, si una GtkWindow llamada top contiene una GtkVBox llamada box, que a su vez contiene una GtkMenuBar llamada menubar, el nombre absoluto de clase del widget de la barra de menú es GtkWindow.GtkVBox.GtkMenuBar, y su nombre absoluto de widget es top.box.menubar.

Los archivos de recursos GTK+ pueden contener dos tipos de comandos para especificar la apariencia de los widgets:

widget

Especifica un estilo para los widgets basado en el nombre de la clase, o sólo en la clase.

widget_class

Especifica un estilo para los widgets basado en el nombre de la clase.

Consulte la subsección anterior para ver ejemplos de uso del comando widget; el comando widget_class se utiliza de forma similar. Tenga en cuenta que el nombre/clase del widget y el estilo deben ir entre comillas dobles, y que estos comandos deben estar en el nivel superior del archivo de recursos GTK+.

Como se ha indicado anteriormente, puede especificar un nombre o clase de widget con la sintaxis de comodín del shell: “*” coincide con cero o más caracteres y “?” coincide con un carácter. Este ejemplo asigna un estilo a todos los widgets:

widget «*» style «mi_stilo»

D.5.3 Nombres de widgets GTK+ en Emacs

Los widgets GTK+ utilizados por un marco Emacs se listan a continuación:

Emacs (class GtkWindow)
pane (class GtkVBox)

menubar (class GtkMenuBar)

[menu item widgets] [unnamed widget] (class GtkHandleBox)

emacs-toolbar (class GtkToolbar)

[tool bar item widgets]

emacs (class GtkFixed)

verticalScrollBar (class GtkVScrollbar)

El contenido de las ventanas Emacs se dibuja en el widget emacs. Ten en cuenta que aunque haya varias ventanas Emacs, cada widget de barra de desplazamiento se llama verticalScrollBar.

Por ejemplo, aquí hay dos formas diferentes de establecer el estilo de la barra de menú:

widget «Emacs.pane.menubar.*» style «my_style» widget_class «GtkWindow.GtkVBox.GtkMenuBar.*» style «my_style»

Para los diálogos GTK+, Emacs usa un widget llamado emacs-dialog, de clase GtkDialog. Para la selección de ficheros, Emacs usa un widget llamado emacs-filedialog, de la clase GtkFileSelection.

Debido a que los widgets para menús emergentes y diálogos son ventanas independientes y no están contenidas en el widget Emacs, sus nombres absolutos GTK+ no empiezan por “Emacs”. Para personalizar estos widgets, utilice comodines como estos:

widget «emacs-dialog» style «mi_estilo_de_dialogo» widget «emacs-filedialog style «mi_estilo_de_archivo» widget «emacs-menuitem style «mi_estilo_de_menu»

Si quiere aplicar un estilo a todos los menús de Emacs, use esto:

widget_class «Menu» style «mi_estilo_de_menu»

D.5.4 Estilos GTK+

He aquí un ejemplo de dos declaraciones de estilo GTK+:

pixmap_path «/usr/share/pixmaps:/usr/include/X11/pixmaps»

style «default» {

font_name = «helvetica 12»

bg[NORMAL] = { 0.83, 0.80, 0.73 } bg[SELECTED] = { 0.0, 0.55, 0.55 } bg[INSENSITIVE] = { 0.77, 0.77, 0.66 } bg[ACTIVE] = { 0.0, 0.55, 0.55 } bg[PRELIGHT] = { 0.0, 0.55, 0.55 }

fg[NORMAL] = «black» fg[SELECTED] = { 0.9, 0.9, 0.9 } fg[ACTIVE] = «black» fg[PRELIGHT] = { 0.9, 0.9, 0.9 }

base[INSENSITIVE] = «#777766» text[INSENSITIVE] = { 0.60, 0.65, 0.57 }

bg_pixmap[NORMAL] = «background.xpm» bg_pixmap[INSENSITIVE] = «background.xpm» bg_pixmap[ACTIVE] = «background.xpm» bg_pixmap[PRELIGHT] = «<none>»

}

style «ruler» = «default» {

font_name = «helvetica 8»

}

El estilo “ruler” hereda de “default”. De este modo, puede basarse en estilos existentes. La sintaxis para fuentes y colores se describe a continuación.

Como muestra este ejemplo, es posible especificar varios valores para el primer plano y el fondo dependiendo del estado del widget. Los estados posibles son:

NORMAL

Este es el estado por defecto para los widgets.

ACTIVE (ACTIVO)

Este es el estado de un widget que está listo para hacer algo. También es para la barra de desplazamiento, por ejemplo, bg[ACTIVE] = «red» pone la barra de desplazamiento en rojo. Los botones que han sido armados (pulsados pero no soltados todavía) están en este estado.

PRELIGHT (LIGERO)

Este es el estado para un widget que puede ser manipulado, cuando el puntero del ratón está sobre él-por ejemplo cuando el ratón está sobre el pulgar en la barra de desplazamiento o sobre un elemento del menú. Cuando el ratón está sobre un botón que no está pulsado, el botón está en este estado.

SELECTED (SELECCIONADO)

Este es el estado de los datos que han sido seleccionados por el usuario. Puede ser texto seleccionado o elementos seleccionados en una lista. Este estado no se utiliza en Emacs.

INSENSITIVE (INSENSIBLE)

Este es el estado de los widgets que son visibles, pero que no pueden manipularse de la forma habitual, por ejemplo, los botones que no pueden pulsarse y los elementos de menú desactivados. Para mostrar los elementos de menú desactivados en amarillo, utilice fg[INSENSITIVE] = «yellow».

Estas son las cosas que pueden ir en una declaración de estilo:

bg[state] = color

Especifica el color de fondo del widget. Tenga en cuenta que el texto editable no utiliza bg; en su lugar utiliza base.

base[state] = color

Especifica el color de fondo del texto editable. En Emacs, este color se utiliza para el fondo de los campos de texto en el diálogo de archivo.

bg_pixmap[state] = «pixmap»

Especifica un fondo de imagen (en lugar de un color de fondo). pixmap debe ser el nombre del archivo de imagen. GTK+ puede utilizar varios formatos de archivo de imagen, incluyendo XPM, XBM, GIF, JPEG y PNG. Si desea que un widget utilice la misma imagen que su padre, utilice <parent>. Si no desea ninguna imagen, utilice <none>. <none>” es la forma de cancelar una imagen de fondo heredada de un estilo padre.

No puedes especificar el archivo por su nombre absoluto. GTK+ busca el archivo pixmap en los directorios especificados en pixmap_path. pixmap_path es una lista de directorios separada por dos puntos entre comillas dobles, especificada en el nivel superior de un archivo gtkrc (es decir, no dentro de una definición de estilo; véase el ejemplo anterior):

pixmap_path «/usr/share/pixmaps:/usr/include/X11/pixmaps»

fg[state] = color

Especifica el color de primer plano que utilizarán los widgets. Es el color del texto en menús y botones, y el color de las flechas en la barra de desplazamiento. Para texto editable, utilice texto.

text[state] = color

Este es el color para el texto editable. En Emacs, este color se utiliza para los campos de texto en el diálogo de archivo.

font_name = «font»

Especifica la fuente para el texto del widget. font es un nombre de fuente estilo GTK (o Pango), como “Sans Italic 10”. Ver Fuentes. Los nombres no distinguen mayúsculas de minúsculas.

Existen tres formas de especificar un color: un nombre de color, un triplete RGB o un triplete RGB al estilo GTK. Para una descripción de los nombres de color y los tripletes RGB, véase Colores para las caras. Los nombres de colores deben escribirse entre comillas dobles, por ejemplo, “«rojo»”. Los tripletes RGB deben escribirse sin comillas dobles, por ejemplo, “#ff0000”. Las tripletas RGB al estilo GTK tienen la forma { r, g, b }, donde r, g y b son enteros en el rango 0-65535 o flotantes en el rango 0.0-1.0.


© Derechos de autor 2023, Tano.

Compilado con Sphinx usando un tema proporcionado por Read the Docs.
</html>