En el sistema X Window , los recursos X son parámetros de programas informáticos como el nombre de la fuente utilizada en los botones , el color de fondo de los menús , etc. Se utilizan junto con o como una alternativa a los parámetros y la configuración de la línea de comandos . archivos .
Formato
En el nivel del protocolo X, los recursos son cadenas que se almacenan en el servidor y no tienen un significado especial. La sintaxis y el significado de estas cadenas vienen dadas por las aplicaciones y las bibliotecas cliente.
Cada recurso X especifica un parámetro para un programa o uno de sus componentes. Un recurso completamente especificado tiene el siguiente formato:
application.component.subcomponent.subcomponent.attribute: value
Este recurso especifica el valor de attribute
para el componente nombrado component.subcomponent.subcomponent
del programa application
. Los recursos se utilizan a menudo para especificar los parámetros de los widgets creados por la aplicación. Dado que estos widgets están organizados en un árbol , la secuencia de nombres de componentes / subcomponentes se utiliza para identificar un widget dando su ruta dentro del árbol. El valor del recurso es el valor de un atributo para este widget, como su color de fondo, etc.
Los recursos X también se utilizan para especificar parámetros para el programa que no están directamente relacionados con sus widgets, utilizando la misma sintaxis.
Los recursos X están diseñados para permitir que se especifique el mismo parámetro para más de un programa o componente. Esto se logra al permitir caracteres comodín en una especificación de recurso. En particular, el ? El carácter se utiliza para coincidir con el nombre de la aplicación o un solo componente. El carácter * se utiliza para coincidir con cualquier número de componentes. Estos dos caracteres se pueden utilizar en cualquier lugar menos al final del nombre del recurso. En otras palabras, un atributo no se puede reemplazar por un carácter comodín.
Si bien los recursos se pueden especificar libremente mediante los caracteres comodín, las consultas sobre el valor de un recurso deben especificar ese recurso exactamente. Por ejemplo, un recurso puede especificar que el fondo de cada componente del xmail
programa debe ser rojo:
xmail*background: red
Sin embargo, cuando un programa (por ejemplo, el programa xmail en sí mismo, cuando quiere saber qué color de fondo usar) accede a la base de datos de recursos a través de las funciones de Xlib , solo puede solicitar el valor de un recurso específico. A diferencia de la mayoría de las bases de datos , los datos almacenados se pueden especificar libremente (mediante caracteres comodín), pero la interrogación no. Por ejemplo, un programa puede consultar el valor de xmail.main.background
o de xmail.toc.buttons.background
, pero no puede utilizar ?
o *
comprobar el color de fondo de varios componentes a la vez.
Los recursos también se pueden especificar para clases de elementos: por ejemplo, application.widget.widget.attribute: value
se puede generalizar sustituyendo el nombre de la aplicación con su clase (por ejemplo, Mail
en lugar de xmh
), cada widget con su tipo ( Pane
, Button
, etc.), y el atributo con su tipo.
Ubicación y uso
Durante la ejecución del servidor de visualización X , los recursos X se almacenan en dos ubicaciones estándar, dependiendo de si se aplican a todas las pantallas oa una en particular:
- la
RESOURCE_MANAGER
propiedad de la ventana raíz de la pantalla 0 - la
SCREEN_RESOURCES
propiedad de la ventana raíz de una pantalla arbitraria
Los recursos X se almacenan en el servidor en lugar de en un archivo de configuración para permitir que los programas iniciados desde otras computadoras los usen. De hecho, un programa se conecta a un servidor de pantalla X desde otro equipo puede tener acceso a los recursos a través del protocolo X . El uso del antiguo sistema de almacenamiento de los parámetros del programa en el .Xdefaults
archivo crea la necesidad de copiar este archivo en todas las demás computadoras donde se puede iniciar un programa.
Los recursos son manipulados por el programa xrdb . En particular, muchas configuraciones de servidor de visualización X ejecutan xrdb al inicio, indicándole que lea los recursos del .Xresources
archivo en el directorio de inicio del usuario . A partir de este momento, todos los demás programas encuentran los recursos en las dos ubicaciones estándar. Puede ver los recursos actuales desde una consola con xrdb -query
.
Bibliotecas cliente
Xlib contiene una serie de funciones de conveniencia para acceder a los recursos en el servidor y manipularlos localmente. Estas funciones son utilizadas tanto por xrdb como por cualquier otro programa que necesite estos recursos. La mayoría de estas funciones manipulan una base de datos de recursos , que es una estructura de datos local que representa un conjunto de especificaciones de recursos. Las funciones de Xlib para la gestión de recursos son:
- funciones para leer los recursos en el servidor en una cadena local (
XResourceManagerString
yXScreenResourceString
) - funciones para crear, manipular y destruir una base de datos de recursos locales (
XrmInitialize
,XrmDestroyDatabase
,XrmGetFileDatabase
,XrmPutFileDatabase
,XrmGetStringDatabase
,XrmLocaleOfDatabase
,XrmSetDatabase
,XrmGetDatabase
,XrmCombineFileDatabase
,XrmCombineDatabase
,XrmMergeDatabases
,XrmParseCommand
) - funciones para buscar recursos y el almacenamiento de otros nuevos (
XrmGetResource
,XrmQGetResource
,XrmQGetSearchList
,XrmQGetSearchResource
,XrmPutResource
,XrmQPutResource
,XrmPutStringResource
,XrmQPutStringResource
,XrmPutLineResource
,XrmEnumerateDatabase
)
En particular, la función XrmParseCommand
permite analizar los argumentos de la línea de comandos, leer recursos que luego se agregan a una base de datos de recursos local. De esta forma, los recursos pueden leerse desde el servidor y usarse como valores predeterminados que son reemplazados por los argumentos de la línea de comandos.
En aras de la eficiencia, los números enteros llamados quarks se definen para representar cadenas locales. Los quarks son similares a los átomos , pero representan cadenas almacenadas localmente en lugar de en el servidor. Varias funciones de Xlib crean una asociación entre cadenas y quarks. Los quarks se pueden utilizar en lugar de los nombres de los componentes cuando se utiliza una de las funciones anteriores; por tanto, los nombres de los recursos corresponden a listas de quarks.
Ver también
enlaces externos
- Recursos X inesenciales para Techno-Dweebs
- ¿Cómo utilizo X Resources?
- Funciones de Resource Manager de la biblioteca cliente Xlib