Copyright
Copyright © José
Luis Lara Carrascal 2015-2023
Sumario
Introducción
Instalación
Opciones de línea de comandos
Configuración
Configurar el inicio de Xsettingsd
Crear un script selector de configuraciones
Paquetes binarios
Enlaces
Introducción
Xsettingsd es un
programa con el que podremos volcar a un archivo, la
configuración del aspecto visual (tema GTK+, tema de iconos,
fuentes de texto, control del suavizado de éstas y
tamaño, efectos de sonido, tema del puntero del ratón,
etc.) de cualquier entorno de escritorio escrito en GTK+ que soporte la
especificación XSETTINGS de freedesktop.org, por ejemplo, de los tratados en esta web, XFce 4,
o MATE,
para posteriormente cargarla cuando utilicemos nuestro administrador de
ventanas favorito, con el añadido de que el programa permite
cargar diferentes archivos de configuración, y que el consumo de
memoria del mismo, es mucho menor, que si utilizáramos los
programas de estos entornos de escritorio.
Instalación
Dependencias
Herramientas de Compilación
Entre paréntesis la
versión con la que se ha compilado Xsettingsd
para la elaboración de este documento.
* GCC - (13.2.0) o Clang - (16.0.6)
* CMake - (3.27.1)
* Make - (4.4.1)
* Pkg-config - (0.29.2)
Librerías
de Desarrollo
*
Xorg - (7.7 / xorg-server 21.1.8)
LibX11 - (1.8.6)
LibXext - (1.3.5)
Descarga
xsettingsd-v1.0.2.tar.gz
Optimizaciones
$ export
{C,CXX}FLAGS='-O3 -march=znver3 -mtune=znver3'
|
Donde pone znver3 se indica el procesador respectivo de cada sistema seleccionándolo de la siguiente tabla: |
Nota informativa sobre las optimizaciones para GCC
|
* La opción '-march=' establece el procesador mínimo con el que funcionará el programa compilado, la opción '-mtune=' el procesador específico para el que será optimizado.
* Los valores separados por comas, son equivalentes, es decir, que lo mismo da poner '-march=k8' que '-march=athlon64'.
* En versiones de GCC 3.2 e inferiores se utiliza la opción '-mcpu=' en lugar de '-mtune='.
|
Nota informativa sobre las optimizaciones para Clang
|
* La opción '-mtune=' está soportada a partir de la versión 3.4 de Clang.
* Los valores de color azul no son compatibles con Clang.
* Las filas con el fondo de color amarillo son valores exclusivos de Clang y, por lo tanto, no son aplicables con GCC.
|
Valores |
CPU |
Genéricos |
generic |
Produce un código binario
optimizado para la mayor parte de procesadores existentes. Utilizar
este valor si no sabemos el nombre del procesador que tenemos en
nuestro equipo. Este valor sólo es aplicable en la opción
'-mtune=', si utilizamos GCC. Esta opción está disponible a partir de GCC 4.2. |
native |
Produce un código binario
optimizado para el procesador que tengamos en nuestro sistema, siendo
éste detectado utilizando la instrucción cpuid.
Procesadores antiguos pueden no ser detectados utilizando este valor.
Esta opción está disponible a partir de GCC 4.2. |
x86-64 |
Procesador genérico con extensiones 64-bit. Esta opción está disponible a partir de GCC 8 y Clang 1.9. |
x86-64-v2 |
Procesador genérico con con
soporte de instrucciones X86-64 (MMX, SSE, SSE2, LAHFSAHF, POPCNT,
SSE3, SSE4.1, SSE4.2, SSSE3) y extensiones 64-bit. Esta opción
está disponible a partir de GCC 11 y Clang 12. |
x86-64-v3 |
Procesador genérico con con
soporte de instrucciones X86-64 (MMX, SSE, SSE2, LAHFSAHF, POPCNT,
SSE3, SSE4.1, SSE4.2, SSSE3, AVX, AVX2, F16C, FMA, LZCNT, MOVBE, XSAVE,
XSAVEC, FMA4) y extensiones 64-bit. Esta opción está
disponible a partir de GCC 11 y Clang 12. |
x86-64-v4 |
Procesador genérico con con
soporte de instrucciones X86-64 (MMX, SSE, SSE2, LAHFSAHF, POPCNT,
SSE3, SSE4.1, SSE4.2, SSSE3, AVX, AVX2, F16C, FMA, LZCNT, MOVBE, XSAVE,
XSAVEC, AVX512*, FMA4) y extensiones 64-bit. Esta opción
está disponible a partir de GCC 11 y Clang 12. |
Intel |
alderlake |
Intel Alderlake con soporte de
instrucciones x86-64 (MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI,
BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES,
AVX512F, CLWB, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VNNI,
AVX512BF16, MOVDIRI, MOVDIR64B, AVX512VP2INTERSECT, ENQCMD, CLDEMOTE,
PTWRITE, WAITPKG, SERIALIZE, TSXLDTRK, UINTR, AMX-BF16, AMX-TILE,
AMX-INT8, AVX-VNNI) y extensiones 64-bit. Esta opción
está disponible a partir de GCC 11 y Clang 12. |
atom |
Intel Atom con soporte de
instrucciones MMX, SSE, SSE2, SSE3, SSSE3 y extensiones
64-bit. Esta opción está disponible desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición bonnell. |
bonnell |
Intel Bonnell con soporte de
instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3 y extensiones
64-bit. Esta opción está disponible a partir de GCC 4.9. |
broadwell |
Intel Broadwell con soporte de
instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C,
RDSEED, ADCX, PREFETCHW y extensiones 64-bit. Esta opción
está disponible a partir de GCC 4.9 y Clang 3.6. |
cannonlake |
Intel Cannonlake Server con soporte
de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2,
F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES, AVX512F,
AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VBMI, AVX512IFMA, SHA,
UMIP y extensiones 64-bit. Esta opción está
disponible a partir de GCC 8 y Clang 3.9. |
cascadelake |
Intel Cascadelake con soporte de
instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2,
F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES, AVX512F,
CLWB, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VNNI y extensiones
64-bit. Esta opción está disponible a partir de GCC 9 y Clang 8. |
cooperlake |
Intel Cooper
Lake con soporte de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
SSE4.1, SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND,
FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC,
XSAVES, AVX512F, CLWB, AVX512VL, AVX512BW, AVX512DQ, AVX512CD,
AVX512VNNI, AVX512BF16 y extensiones 64-bit. Esta opción
está disponible a partir de GCC 10 y Clang 9. |
core2 |
Intel Core2 con soporte de
instrucciones MMX, SSE, SSE2, SSE3, SSSE3 y extensiones 64-bit. Esta
opción está disponible a partir de GCC 4.3. |
core-avx2 |
Intel Core (Haswell). Esta opción está disponible desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición haswell. |
core-avx-i |
Intel Core (ivyBridge)
con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, AVX, AES, PCLMUL, FSGSBASE, RDRND, F16C y extensiones
64-bit. Esta opción está disponible desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición ivybridge. |
corei7 |
Intel Core i7 con soporte
de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 y SSE4.2 y
extensiones 64-bit. Soporta también los procesadores Intel Core
i3 e i5. Esta opción está disponible desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición nehalem. |
corei7-avx |
Intel Core i7 con soporte de
instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AES y
PCLMUL y extensiones 64-bit. Soporta también los procesadores
Intel Core i3 e i5. Esta opción está disponible
desde GCC 4.6, hasta GCC 4.8. A partir de GCC 4.9 se utiliza la definición sandybridge. |
emeraldrapids |
Intel Emerald Rapids. Esta opción está disponible a partir de GCC 13 y Clang 16. |
goldmont |
Intel Goldmont con soporte de
instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, AES, PCLMUL, RDRND, XSAVE, XSAVEOPT, FSGSBASE y extensiones
64-bit. Esta opción está disponible a partir de GCC 9 y Clang 5. |
goldmont-plus |
Intel Goldmont Plus con soporte de
instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, AES, PCLMUL, RDRND, XSAVE, XSAVEOPT, FSGSBASE, PTWRITE, RDPID,
SGX, UMIP y extensiones 64-bit. Esta opción está
disponible a partir de GCC 9 y Clang 7. |
grandridge |
Intel Grand Ridge con soporte de
instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC, XSAVES, XSAVEOPT,
FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI, MOVDIR64B,
CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA, LZCNT,
PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL,
AVX-VNNI, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, RAOINT y
extensiones 64-bit. Esta opción está disponible a partir
de GCC 13 y Clang 16. |
graniterapids |
Intel Grand Ridge con soporte de
instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, CX16, SAHF, FXSR, AVX, XSAVE, PCLMUL, FSGSBASE, RDRND, F16C,
AVX2, BMI, BMI2, LZCNT, FMA, MOVBE, HLE, RDSEED, ADCX, PREFETCHW, AES,
CLFLUSHOPT, XSAVEC, XSAVES, SGX, AVX512F, AVX512VL, AVX512BW, AVX512DQ,
AVX512CD, PKU, AVX512VBMI, AVX512IFMA, SHA, AVX512VNNI, GFNI, VAES,
AVX512VBMI2, VPCLMULQDQ, AVX512BITALG, RDPID, AVX512VPOPCNTDQ, PCONFIG,
WBNOINVD, CLWB, MOVDIRI, MOVDIR64B, AVX512VP2INTERSECT, ENQCMD,
CLDEMOTE, PTWRITE, WAITPKG, SERIALIZE, TSXLDTRK, UINTR, AMX-BF16,
AMX-TILE, AMX-INT8, AVX-VNNI, AVX512-FP16, AVX512BF16, AMX-FP16,
PREFETCHI y extensiones 64-bit. Esta opción está
disponible a partir de GCC 13 y Clang 16. |
haswell |
Intel Haswell con soporte de
instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C y
extensiones 64-bit. Esta opción está disponible a
partir de GCC 4.9. |
i386 |
Intel i386.
|
i486 |
Intel i486. |
i586, pentium |
Intel Pentium sin soporte de instrucciones MMX. |
i686 |
Produce un código binario
optimizado para la mayor parte de procesadores compatibles con la serie
80686 de Intel. Todos los actuales lo son. |
icelake-client |
Intel Icelake Client con soporte de
instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2,
F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES, AVX512F,
AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VBMI, AVX512IFMA, SHA,
CLWB, UMIP, RDPID, GFNI, AVX512VBMI2, AVX512VPOPCNTDQ, AVX512BITALG,
AVX512VNNI, VPCLMULQDQ, VAES y extensiones 64-bit. Esta
opción está disponible a partir de GCC 8 y Clang 7. |
icelake-server |
Intel Icelake Server con soporte de
instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2,
F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES, AVX512F,
AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VBMI, AVX512IFMA, SHA,
CLWB, UMIP, RDPID, GFNI, AVX512VBMI2, AVX512VPOPCNTDQ, AVX512BITALG,
AVX512VNNI, VPCLMULQDQ, VAES, PCONFIG, WBNOINVD y extensiones
64-bit. Esta opción está disponible a partir de GCC 8 y Clang 7. |
intel |
Intel Haswell y Silvermont. Este
valor sólo es aplicable en la opción '-mtune='. Esta
opción está disponible a partir de GCC 4.9. |
ivybridge |
Intel Ivy Bridge con soporte de
instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX,
AES, PCLMUL, FSGSBASE, RDRND, F16C y extensiones 64-bit. Esta
opción está disponible a partir de GCC 4.9. |
knl |
Intel Knights Landing con soporte de
instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C,
RDSEED, ADCX, PREFETCHW, AVX512F, AVX512PF, AVX512ER y extensiones
64-bit. Esta opción está disponible a partir de GCC 5 y Clang 3.4. |
knm |
Intel Knights Mill con soporte de
instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C,
RDSEED, ADCX, PREFETCHW, AVX512F, AVX512PF, AVX512ER, AVX512CD,
AVX5124VNNIW, AVX5124FMAPS, AVX512VPOPCNTDQ y extensiones 64-bit. Esta
opción está disponible a partir de GCC 8 y Clang 6. |
lakemont |
Intel Quark Lakemont MCU, basado en el procesador Intel Pentium. Esta opción está disponible a partir de GCC 6 y Clang 3.9. |
meteorlake |
Intel Meteor Lake. Esta opción está disponible a partir de GCC 13 y Clang 16. |
nehalem |
Intel Nehalem con soporte de
instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT y
extensiones 64-bit. Esta opción está disponible a
partir de GCC 4.9. |
nocona |
Versión mejorada de Intel Pentium4 con soporte de instrucciones MMX, SSE, SSE2, SSE3 y extensiones 64-bit. |
penryn |
Intel Penryn con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3 y SSE4.1. |
pentiumpro |
Intel PentiumPro. |
pentium2 |
Intel Pentium2 basado en PentiumPro con soporte de instrucciones MMX. |
pentium3, pentium3m |
Intel Pentium3 basado en PentiumPro con soporte de instrucciones MMX y SSE. |
pentium4, pentium4m |
Intel Pentium4 con soporte de instrucciones MMX, SSE y SSE2. |
pentium-m |
Versión de bajo consumo de
Intel Pentium3 con soporte de instrucciones MMX, SSE y SSE2. Utilizado
por los portátiles Centrino. |
pentium-mmx |
Intel PentiumMMX basado en Pentium con soporte de instrucciones MMX. |
prescott |
Versión mejorada de Intel Pentium4 con soporte de instrucciones MMX, SSE, SSE2 y SSE3. |
raptorlake |
Intel Raptor Lake. Esta opción está disponible a partir de GCC 13 y Clang 16. |
rocketlake |
Intel Rocket Lake con soporte de
instrucciones x86-64 (MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI,
BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES,
AVX512F, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VBMI,
AVX512IFMA, SHA, CLWB, UMIP, RDPID, GFNI, AVX512VBMI2, AVX512VPOPCNTDQ,
AVX512BITALG, AVX512VNNI, VPCLMULQDQ, VAES) y extensiones 64-bit. Esta
opción está disponible a partir de GCC 11 y Clang 13. |
sandybridge |
Intel Sandy Bridge con soporte de
instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX,
AES, PCLMUL y extensiones 64-bit. Esta opción está
disponible a partir de GCC 4.9 y Clang 3.6. |
sapphirerapids |
Intel Sapphire Rapids con soporte
de instrucciones x86-64 (MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI,
BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES,
AVX512F, CLWB, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VNNI,
AVX512BF16, MOVDIRI, MOVDIR64B, AVX512VP2INTERSECT, ENQCMD, CLDEMOTE,
PTWRITE, WAITPKG, SERIALIZE, TSXLDTRK, UINTR, AMX-BF16, AMX-TILE,
AMX-INT8 and AVX-VNNI) y extensiones 64-bit. Esta opción
está disponible a partir de GCC 11 y Clang 12. |
silvermont |
Intel Silvermont con soporte de
instrucciones MOVBE, MMX, SSE, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3,
SSE4.1, SSE4.2, POPCNT, AES, PCLMU, RDRND y extensiones
64-bit. Esta opción está disponible a partir de GCC 4.9 y Clang 3.6. |
sierraforest |
Intel Sierra Forest con soporte de
instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC, XSAVES, XSAVEOPT,
FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI, MOVDIR64B,
CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA, LZCNT,
PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL,
AVX-VNNI, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD y extensiones
64-bit. Esta opción está disponible a partir de GCC 13 y Clang 16. |
skylake |
Intel Skylake con soporte de
instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C,
RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES y extensiones
64-bit. Esta opción está disponible a partir de GCC 6 y Clang 3.6. |
skylake-avx512 |
Intel Skylake Server con soporte
de instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C,
RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES, AVX512F, AVX512VL,
AVX512BW, AVX512DQ, AVX512CD y extensiones 64-bit. Esta opción
está disponible a partir de GCC 6 y Clang 3.9. |
tigerlake |
Intel Tiger Lake
con soporte de instrucciones OVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, POPCNT, PKU, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI,
BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC, XSAVES,
AVX512F, AVX512VL, AVX512BW, AVX512DQ, AVX512CD, AVX512VBMI,
AVX512IFMA, SHA, CLWB, UMIP, RDPID, GFNI, AVX512VBMI2, AVX512VPOPCNTDQ,
AVX512BITALG, AVX512VNNI, VPCLMULQDQ, VAES, PCONFIG, WBNOINVD, MOVDIRI,
MOVDIR64B, AVX512VP2INTERSECT y extensiones 64-bit. Esta opción
está disponible a partir de GCC 10 y Clang 10. |
tremont |
Intel Tremont con soporte de
instrucciones MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2,
POPCNT, AES, PCLMUL, RDRND, XSAVE, XSAVEOPT, FSGSBASE, PTWRITE, RDPID,
SGX, UMIP, GFNI-SSE, CLWB, ENCLV y extensiones 64-bit. Esta
opción está disponible a partir de GCC 9 y Clang 7. |
westmere |
Intel Westmere con soporte de
instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES,
PCLMUL y extensiones 64-bit. Esta opción está
disponible a partir de GCC 4.9. |
yonah |
Procesadores basados en la microarquitectura de Pentium M, con soporte de instrucciones MMX, SSE, SSE2 y SSE3. |
AMD |
amdfam10, barcelona |
Procesadores basados en AMD Family
10h core con soporte de instrucciones x86-64 (MMX, SSE, SSE2, SSE3,
SSE4A, 3DNow!, enhanced 3DNow!, ABM y extensiones 64-bit). Esta
opción está disponible a partir de GCC 4.3. La definición barcelona está disponible a partir de Clang 3.6. |
athlon, athlon-tbird |
AMD Athlon con soporte de instrucciones MMX, 3DNow!, enhanced 3DNow! y SSE prefetch. |
athlon4, athlon-xp, athlon-mp |
Versiones mejoradas de AMD Athlon con soporte de instrucciones MMX, 3DNow!, enhanced 3DNow! y full SSE. |
bdver1 |
Procesadores basados en AMD Family
15h core con soporte de instrucciones x86-64 (FMA4, AVX, XOP, LWP, AES,
PCL_MUL, CX16, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM
y extensiones 64-bit). Esta opción está disponible a
partir de GCC 4.7. |
bdver2 |
Procesadores basados en AMD Family
15h core con soporte de instrucciones x86-64 (BMI, TBM, F16C, FMA, LWP,
AVX, XOP, LWP, AES, PCL_MUL, CX16, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3,
SSE4.1, SSE4.2, ABM y extensiones 64-bit). Esta opción
está disponible a partir de GCC 4.7. |
bdver3 |
Procesadores basados en AMD Family
15h core con soporte de instrucciones x86-64 (FMA4, AVX, XOP, LWP, AES,
PCL_MUL, CX16, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM
y extensiones 64-bit). Esta opción está disponible a
partir de GCC 4.8 y Clang 3.4. |
bdver4 |
Procesadores basados en AMD Family
15h core con soporte de instrucciones x86-64 (BMI, BMI2, TBM, F16C,
FMA, FMA4, FSGSBASE, AVX, AVX2, XOP, LWP, AES, PCL_MUL, CX16, MOVBE,
MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM y extensiones
64-bit). Esta opción está disponible a partir de GCC 4.9 y Clang 3.5. |
btver1 |
Procesadores basados en AMD Family
14h core con soporte de instrucciones x86-64 (MMX, SSE, SSE2, SSE3,
SSE4A, CX16, ABM y extensiones 64-bit). Esta opción
está disponible a partir de GCC 4.6. |
btver2 |
Procesadores basados en AMD Family
16h core con soporte de instrucciones x86-64 (MOVBE, F16C, BMI, AVX,
PCL_MUL, AES, SSE4.2, SSE4.1, CX16, ABM, SSE4A, SSSE3, SSE3, SSE2, SSE,
MMX y extensiones 64-bit). Esta opción está
disponible a partir de GCC 4.8. |
geode |
AMD integrado con soporte de instrucciones MMX y 3DNow!. Esta opción está disponible a partir de GCC 4.3. |
k6 |
AMD K6 con soporte de instrucciones MMX. |
k6-2, k6-3 |
Versiones mejoradas de AMD K6 con soporte de instrucciones MMX y 3DNow!. |
k8, opteron, athlon64, athlon-fx |
Procesadores basados en AMD K8 core
con soporte de instrucciones x86-64 (MMX, SSE, SSE2, 3DNow!, enhanced
3DNow! y extensiones 64-bit). |
k8-sse3, opteron-sse3, athlon64-sse3 |
Versiones mejoradas de AMD K8 core
con soporte de instrucciones SSE3. Esta opción está
disponible a partir de GCC 4.3. |
znver1 |
Procesadores basados en AMD Family
17h core con soporte de instrucciones x86-64 (BMI, BMI2, F16C, FMA,
FSGSBASE, AVX, AVX2, ADCX, RDSEED, MWAITX, SHA, CLZERO, AES, PCL_MUL,
CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM,
XSAVEC, XSAVES, CLFLUSHOPT, POPCNT y extensiones 64-bit). Esta
opción está disponible a partir de GCC 6 y Clang 4. |
znver2 |
Procesadores basados en AMD Family
17h core con soporte de instrucciones x86-64 (BMI, BMI2, ,CLWB, F16C,
FMA, FSGSBASE, AVX, AVX2, ADCX, RDSEED, MWAITX, SHA, CLZERO, AES,
PCL_MUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1,
SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT y extensiones
64-bit). Esta opción está disponible a partir de GCC 9 y Clang 9. |
znver3 |
Procesadores basados en AMD Family
19h core con soporte de instrucciones x86-64 (BMI, BMI2, CLWB, F16C,
FMA, FSGSBASE, AVX, AVX2, ADCX, RDSEED, MWAITX, SHA, CLZERO, AES,
PCLMUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1,
SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT, RDPID, WBNOINVD, PKU,
VPCLMULQDQ, VAES) y extensiones 64-bit. Esta opción
está disponible a partir de GCC 11 y Clang 12. |
znver4 |
Procesadores basados en AMD Family
19h core con soporte de instrucciones x86-64 (BMI, BMI2, CLWB, F16C,
FMA, FSGSBASE, AVX, AVX2, ADCX, RDSEED, MWAITX, SHA, CLZERO, AES,
PCLMUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1,
SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT, RDPID, WBNOINVD, PKU,
VPCLMULQDQ, VAES, AVX512F, AVX512DQ, AVX512IFMA, AVX512CD, AVX512BW,
AVX512VL, AVX512BF16, AVX512VBMI, AVX512VBMI2, AVX512VNNI,
AVX512BITALG, AVX512VPOPCNTDQ, GFNI) y extensiones 64-bit. Esta
opción está disponible a partir de GCC 12.3 y Clang 16. |
Optimizaciones adicionales
Optimizaciones adicionales |
GCC |
Graphite
|
$ export {C,CXX}FLAGS+=' -ftree-loop-linear -floop-strip-mine -floop-block'
|
IPA
|
$ export {C,CXX}FLAGS+=' -fipa-pta'
|
LTO |
$ export AR=gcc-ar RANLIB=gcc-ranlib NM=gcc-nm
$ export {C,CXX}FLAGS+=' -fuse-linker-plugin -flto=auto'
|
En versiones inferiores a GCC
10, sustituir auto
por el número de núcleos que tenga nuestro
procesador. Si sólo tiene uno, utilizar el parámetro -flto |
Clang |
Polly |
$ export {C,CXX}FLAGS+=' -O3 -mllvm -polly -mllvm -polly-vectorizer=stripmine'
|
LTO |
$ export AR=llvm-ar RANLIB=llvm-ranlib NM=llvm-nm
$ export {C,CXX}FLAGS+=' -flto'
|
ThinLTO |
$ export AR=llvm-ar RANLIB=llvm-ranlib NM=llvm-nm
$ export {C,CXX}FLAGS+=' -flto=thin'
|
La aplicación de esta optimización es alternativa
a la tradicional LTO, a partir de Clang 3.9 y, por lo tanto, no es combinable con la misma. |
Parámetros adicionales
Establecer la ruta de búsqueda de directorios de librerías en sistemas de 64 bits multiarquitectura |
$ export
LDFLAGS+=" -L/usr/lib64 -L/usr/local/lib64 -L/opt/gcc13/lib64" |
Cada usuario tendrá que establecer la ruta de búsqueda de directorios, en función de la distribución que utilice. |
Establecer el uso de librería estándar de C++ para Libc++
|
Clang |
$ export CXXFLAGS+=" -stdlib=libc++ -I$(llvm-config --includedir)/c++/v1"
$ export LDFLAGS+=" -L$(llvm-config --libdir) -lc++" |
Establecer el uso de enlazador dinámico para Mold |
$ export LDFLAGS+=' -fuse-ld=mold' |
Establecer el uso de enlazador dinámico para LLD |
Clang |
$ export LDFLAGS+=' -fuse-ld=lld' |
Optimizaciones complementarias LTO/ThinLTO de LLD |
$ export LDFLAGS+=' -Wl,--lto-aa-pipeline=globals-aa -Wl,--lto-newpm-passes=memcpyopt' |
Optimizaciones complementarias LTO de LLD |
$ export LDFLAGS+=" -Wl,--lto-partitions=$(nproc)" |
Optimizaciones complementarias ThinLTO de LLD |
$ export LDFLAGS+=" -Wl,--thinlto-jobs=$(nproc)" |
Establecer la variable de entorno de uso de compilador para Clang |
$ export CC=clang CXX=clang++ |
Extracción
y Configuración
$ tar zxvf xsettingsd-v1.0.2.tar.gz
$ cd xsettingsd
$ mkdir build; cd build
$ cmake -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_TESTING=OFF -DCMAKE_AR=$(which $AR) \
-DCMAKE_RANLIB=$(which $RANLIB) -DCMAKE_NM=$(which $NM) .. |
Explicación
de los comandos
-DCMAKE_INSTALL_PREFIX=/usr : Instala el programa en el directorio principal, /usr.
-DBUILD_TESTING=OFF : Desactiva la compilación de los tests para acelerar el proceso en sí de compilación.
-DCMAKE_AR=$(which $AR) -DCMAKE_RANLIB=$(which $RANLIB) -DCMAKE_NM=$(which $NM) : Sincroniza las variables de entorno establecidas en el manual, relativas a los binarios ejecutables intermedios, gcc-ar, gcc-ranlib y gcc-nm, con los parámetros de configuración utilizados por CMake, relativos a los programas ar, ranlib y nm, para poder aplicar correctamente la optimización LTO. Se utiliza el comando which para buscar los ejecutables porque desde
hace ya varias versiones, CMake no establece correctamente la ruta al
ejecutable en cuestión. Esto no es necesario hacerlo, si compilamos el paquete con Clang.
Compilación
Parámetros de compilación opcionales
VERBOSE=1 : Muestra más información en el proceso de compilación.
-j$(nproc) :
Establece el número de procesos de compilación en
paralelo, en función del número de
núcleos e hilos que tenga nuestro procesador, tomando como
referencia la información mostrada por el sistema con el comando
correspondiente. Si nuestro procesador es mononúcleo de un solo
hilo, no añadir esta opción.
Instalación
como root
$ su-c "make install/strip" |
Estadísticas de Compilación e Instalación de Xsettingsd
Estadísticas de Compilación e Instalación de Xsettingsd |
CPU |
AMD Ryzen 5 5500 |
MHz |
3593.250 (BoostMax=4457.000) |
RAM |
32 GB |
Sistema de archivos |
XFS |
Versión del Kernel |
6.4.7-ml SMP PREEMPT_DYNAMIC x86_64 |
Modo de frecuencia de la CPU |
powersave (balance performance) |
Versión de Glibc |
2.37 |
Librería estándar de C++ |
Libc++ 16.0.6 |
Enlazador dinámico |
LLD 16.0.6 |
Compilador |
Clang 16.0.6 |
Parámetros de optimización |
-03 -march=znver3
-mtune=znver3 -mllvm -polly -mllvm
-polly-vectorizer=stripmine
-flto=thin -Wl,--lto-aa-pipeline=globals-aa
-Wl,--lto-newpm-passes=memcpyopt |
Parámetros de compilación |
-j12 |
Tiempo de compilación |
3" |
Archivos instalados |
5 |
|
Ocupación de espacio en disco |
68 KB |
Consumo inicial de CPU y RAM de Xsettingsd
Consumo inicial de CPU y RAM de Xsettingsd |
Programa
|
CPU |
RAM |
xsettingsd |
0 % |
532,5 KB |
Para medir el consumo de CPU se utiliza el programa top, y para medir
el consumo de RAM se utiliza el script de Python, ps_mem.py, creado por Pádraig Brady, que podemos encontrar en este enlace. |
Archivo de
configuración personal
~/.xsettingsd |
Es el
archivo de configuración personal de Xsettings
en nuestro home. |
Desinstalación
como root
1) MODO TRADICIONAL
***********************
2) MODO MANUALINUX
xsettingsd-1.0.2-scripts.tar.gz
$ su
# tar zxvf xsettingsd-1.0.2-scripts.tar.gz
# cd xsettingsd-1.0.2-scripts
# ./Desinstalar_xsettingsd-1.0.2 |
Copia de Seguridad
como root
Con este otro script creamos una copia de seguridad de los binarios
compilados, recreando la estructura de directorios de los mismos en un
directorio de copias de seguridad (copibin)
que se crea en el directorio /var. Cuando se haya creado el paquete comprimido de
los binarios podemos copiarlo como usuario a nuestro home
y borrar el que ha creado el script de respaldo, teniendo en cuenta que si queremos
volver a restaurar la copia, tendremos que volver a copiarlo al lugar
donde se ha creado.
$ su
# tar zxvf xsettingsd-1.0.2-scripts.tar.gz
# cd xsettingsd-1.0.2-scripts
# ./Respaldar_xsettingsd-1.0.2 |
Restaurar la Copia de Seguridad
como root
Y con este otro script (que se copia de forma automática cuando
creamos la copia de respaldo del programa) restauramos la copia de
seguridad como root cuando resulte necesario.
$ su
# cd /var/copibin/restaurar_copias
# ./Restaurar_xsettingsd-1.0.2
|
Opciones de línea de comandos
A continuación las opciones de línea de comandos con el
texto traducido al español, de las dos aplicaciones que componen
el paquete.
1) xsettingsd
Es el programa encargado de cargar la configuración GTK+ que tengamos almacenada en un archivo de configuración, previamente creado con el comando dump_xsettings ejecutado en un entorno de escritorio GTK+, que soporte la especificación XSETTINGS.
[jose@localhost ~]$ xsettingsd -h
Uso: xsettingsd [OPCIÓN] ...
Programa que implementa la especificación XSETTINGS para opciones de control de
las aplicaciones X11.
Opciones: -c, --config=ARCHIVO archivo de configuración (por defecto es ~/.xsettingsd)
-h,
--help
imprime este mensaje de ayuda
-s, --screen=PANTALLA pantalla a utilizar (por defecto son todas)
|
2) dump_xsettings
Es el programa utilizado para volcar la configuración GTK+ de un entorno de escritorio que soporte la especificación XSETTINGS a un archivo de configuración o a la salida estándar, para posteriormente cargarlo con xsettingsd en el administrador de ventanas que utilicemos por defecto, o en cualquier otro que deseemos.
[jose@localhost ~]$ dump_xsettings -h
Uso: dump_xsettings [OPCIÓN] ...
Vuelca los valores actuales XSETTINGS en formato xsettingsd.
Opciones: -h, --help imprime este mensaje de ayuda
-s, --screen=PANTALLA pantalla a utilizar (por defecto es 0) |
Configuración
Para poder editar la configuración de las opciones GTK+
volcadas en el archivo de configuración correspondiente, primero
tendremos que ejecutar el siguiente comando, en una ventana de
terminal, en el entorno de escritorio que deseemos volcar estas
opciones. En el ejemplo que pongo a continuación, lo
realizaremos con MATE. Abrimos una ventana de terminal y ejecutamos el comando de volcado de datos.
$ dump_xsettings > ~/.xsettingsd |
Un ejemplo de archivo de configuración, tomando como referencia el volcado realizado en el entorno de escritorio, MATE. Todas las opciones soportadas por GTK+ las podemos leer en este enlace, el problema es que las tenemos que interpretar siempre en formato XSETTINGS, si las queremos adaptar al archivo de configuración pertinente.
Gtk/AutoMnemonics 1
Gtk/ButtonImages 1
Gtk/CanChangeAccels 0
Gtk/ColorScheme ""
Gtk/CursorThemeName "mate"
Gtk/CursorThemeSize 24
Gtk/DecorationLayout "menu:minimize,maximize,close"
Gtk/DialogsUseHeader 0
Gtk/EnableAnimations 1
Gtk/FileChooserBackend "gio"
Gtk/FontName "DejaVu Sans 10"
Gtk/IMModule ""
Gtk/IMPreeditStyle "callback"
Gtk/IMStatusStyle "callback"
Gtk/KeyThemeName "Default"
Gtk/MenuBarAccel "F10"
Gtk/MenuImages 1
Gtk/ShowInputMethodMenu 1
Gtk/ShowUnicodeMenu 1
Gtk/ToolbarIconSize "large-toolbar"
Gtk/ToolbarStyle "both-horiz"
Net/CursorBlink 1
Net/CursorBlinkTime 1200
Net/DndDragThreshold 8
Net/DoubleClickTime 400
Net/EnableEventSounds 0
Net/EnableInputFeedbackSounds 0
Net/FallbackIconTheme "mate"
Net/IconThemeName "matefaenzagray"
Net/SoundThemeName "__no_sounds"
Net/ThemeName "Menta"
Xft/Antialias 1
Xft/DPI 104448
Xft/HintStyle "hintmedium"
Xft/Hinting 1
Xft/RGBA "rgb"
Xft/lcdfilter "lcddefault"
|
De todos los parámetros anteriores, paso a explicar los
más comunes, es decir, los que normalmente cambia siempre el
usuario con más asiduidad: tema de iconos, tema GTK+, Fuente de texto, etc. En esta entrada de Manualinux - Blog, están explicados de forma más amplia para la edición del archivo de configuración de GTK+ en sus diferentes series, la 2 o la 3.
Definición de los elementos más comunes del archivo de configuración de Xsettingsd |
Gtk/CursorThemeName "mate" |
Define el tema a utilizar por el
puntero del ratón. El nombre del tema se define siempre por
el nombre del directorio del
tema, ubicado por defecto en /usr/share/icons para los temas del
sistema, y en ~/.icons para los temas del usuario.
Normalmente los temas para el puntero del ratón, se configurán a través de Xorg,
por lo que este parámetro resulta innecesario, a no ser, que
queramos utilizar un tema específico para una determinada
aplicación. |
Gtk/CursorThemeSize 24 |
Define el tamaño del
puntero del ratón. Los valores tienen que estar comprendidos
entre 0 y 128. El valor por defecto es 0. |
Gtk/FontName "DejaVu Sans 10" |
Define la fuente de texto y tamaño a utilizar por las aplicaciones GTK+.
En cualquier aplicación que permita seleccionar fuentes de texto,
podemos averiguar las fuentes que tenemos instaladas en nuestro sistema. |
Net/IconThemeName "matefaenzagray" |
Define el tema de iconos a utilizar. El nombre del tema se define siempre por el nombre del directorio del
tema, ubicado por defecto en /usr/share/icons para los temas del
sistema, y en ~/.icons para los temas del usuario. El valor por defecto es hicolor. |
Net/ThemeName "Menta" |
Define el tema a utilizar por
defecto. El nombre del tema se define siempre por el nombre del
directorio del tema, ubicado por defecto en /usr/share/themes para
los temas del sistema, y en ~/.themes para los temas del usuario. El valor por defecto es Raleight. |
Configurar
el inicio de Xsettingsd
Si iniciamos los entornos gráficos desde línea de comandos, o desde administradores de sesión como Qingy o SLiM, tendremos que añadir la variable de entorno DESKTOP_SESSION, más un nombre de entorno de escritorio (xfce o gnome) para que las aplicaciones Qt5 puedan cargar la configuración GTK+ que tengamos, ya sea la proporcionada por Xsettingsd
o la predefinida del archivo de configuración personal. Ya que
estas aplicaciones utilizan esta variable de entorno para determinar si
se está ejecutando un entorno de escritorio. Un ejemplo de
inicio con Fluxbox:
# Applications you want to run with fluxbox.
# MAKE SURE THAT APPS THAT KEEP RUNNING HAVE AN ''&'' AT THE END.
#
# unclutter -idle 2 &
# wmnd &
# wmsmixer -w &
idesk &
wmix &
export DESKTOP_SESSION=xfce
xsettingsd &
|
En las pruebas que he realizado en mi sistema, sólo funcionan los nombres xfce y gnome. Si utilizamos el
nombre del administrador de ventanas, el aspecto visual de las
aplicaciones Qt5 no cambiará.
1) AfterStep
Añadimos el comando de ejecución en la sección correspondiente del archivo de configuración ~/.afterstep/autoexec
Function "InitFunction"
# Module "I" Animate
Function "I" WorkspaceState
Function "I" WorkspaceModules
Module "I" Banner
Exec "I" exec "$HOME/.afterstep/non-configurable/send_postcard.sh"
Exec "I" exec "/usr/local/bin/xbindkeys"
Exec "I" exec "/usr/bin/xsettingsd"
EndFunction
|
2) Blackbox
Siguiendo el método que se utiliza en el manual de Blackbox, lo añadimos al script ~/.blackbox/autostart de la siguiente forma,
#!/bin/sh
(sleep
2; bbkeys &) &
bsetbg -f ~/Fotos/40.jpg
xsettingsd &
|
3) Enlightenment - E16
En su manual se explica de forma
detenida la forma de añadir aplicaciones al inicio, sólo
tendremos que crear los scripts correspondientes de ejecución.
Abrimos un editor de texto con 3 ventanas y añadimos lo
siguiente a cada una:
xsettingsd_init
xsettingsd_start
#!/bin/sh
killall -9 xsettingsd &> /dev/null
xsettingsd &
|
xsettingsd_stop
#!/bin/sh
killall -9 xsettingsd &> /dev/null
|
4) Fluxbox
Añadimos el comando de ejecución en la sección correspondiente del script de inicio ~/.fluxbox/startup
# Applications you want to run with fluxbox.
# MAKE SURE THAT APPS THAT KEEP RUNNING HAVE AN ''&'' AT THE END.
#
# unclutter -idle 2 &
# wmnd &
# wmsmixer -w &
idesk &
wmix &
xsettingsd &
|
5) JWM
Añadimos el comando de inicio, reinicio y terminación al archivo de configuración, ~/.jwm/autostart.xml, de la versión en español disponible en la web.
<JWM>
<StartupCommand>
xsettingsd &
</StartupCommand>
<RestartCommand>
killall -9 xsettingsd &> /dev/null
xsettingsd &
</RestartCommand>
<ShutdownCommand>
killall -9 xsettingsd &> /dev/null
</ShutdownCommand>
</JWM>
|
6) Openbox
Añadimos el comando de ejecución al script de inicio ~/.config/openbox/autostart, autostart.sh en versiones inferiores a la 3.5.
sleep 5; pypanel &
xbindkeys &
Esetroot -scale ~/Fondos/2141.jpg
xsettingsd &
|
7) Pekwm
Añadimos el comando de ejecución en la sección correspondiente del script de inicio ~/.pekwm/start
# There's probably a few other good uses for it, too. I mainly pushed for it
# because when I was doing fluxbox's docs, people used to complain that there
# wasn't one, and I wanted to avoid that for pekwm. ;) --eyez
numlockx &
fbpanel &
#idesk &
#wmix &
hsetroot -fill /home/jose/Fotos/Natasha_Henstridge.jpg -gamma 1.5 -sharpen 1.5 -blur 1.0
xsettingsd &
|
8) Fvwm
Añadimos el comando de ejecución en la
sección correspondiente del archivo autostart, cuya configuración se explica en el manual de Fvwm.
AddToFunc StartFunction I Test (Init) Exec exec xscreensaver
AddToFunc StartFunction I Test (Init) Exec exec xbindkeys
AddToFunc StartFunction I Test (Init) Exec exec xsettingsd
|
9) Fvwm-Crystal
Añadimos el comando de ejecución al final del archivo ~/.fvwm-crystal/preferences/Startup, cuya configuración se explica en el manual de Fvwm-Crystal.
# Launch Xsettingsd
+ I Test (x xsettingsd) Exec pidof xsettingsd || exec xsettingsd
# vim:ft=fvwm
|
10) IceWM
Añadimos el comando de ejecución al script de inicio ~/.icewm/startup, y el comando de finalización al script de cierre de sesión, ~/.icewm/shutdown.
startup
shutdown
#!/bin/sh
killall -9 xsettingsd &> /dev/null
|
Siguiendo el método que se utiliza en el manual de Sawfish lo añadimos al script ~/.sawfish/autostart de la siguiente forma,
#!/bin/sh
bmpanel &
idesk &
cwallpaper
-l
xsettingsd &
|
12) Window Maker
Añadimos el comando de ejecución al script de inicio ~/GNUSTEP/Library/WindowMaker/autostart
#!/bin/sh
#
# Place applications to be executed when WindowMaker is started here.
# This should only be used for non-X applications or applications that
# do not support session management. Other applications should be restarted
# by the WindowMaker session restoring mechanism. For that, you should
# either set SaveSessionOnExit=YES or select "Save Session" in the Workspace
# submenu of the root menu when all applications you want started are
# running.
#
# WindowMaker will wait until this script finishes, so if you run any
# commands that take long to execute (like a xterm), put a ``&'' in the
# end of the command line.
#
# This file must be executable.
#
xsettingsd &
|
13) Para los que inician X desde
terminal con el comando startx
Para los usuarios que inician los entornos gráficos con el
comando startx, pueden añadir el proceso al archivo .xinitrc que se
encuentra en nuestro home,
si no existe lo creamos, y añadimos lo siguiente:
xsettingsd &
exec icewm-session
|
14) XDM
Añadimos el comando de ejecución al archivo .xsession que se
encuentra en nuestro home,
si no existe lo creamos, y añadimos lo siguiente:
xsettingsd &
exec icewm-session
|
Para otros administradores de ventanas, consultar sus respectivos
manuales, en lo que haga referencia a la ejecución de programas
al inicio de estos.
Crear un script selector de configuraciones
Para poder seleccionar de forma rápida entre varias
configuraciones personalizadas, y aprovechando que el programa permite
cargar diferentes archivos de configuración, crearemos un script
gráfico dependiente de Zenity, y selector de configuraciones personalizadas de Xsettingsd,
lo que nos permitirá tener almacenadas varias configuraciones
del mismo, y cargar la que creamos conveniente en el inicio de nuestro
administrador de ventanas.
Antes que nada creamos un directorio para ubicar las configuraciones personalizadas, en la ruta ~/.config/xsettingsd.
$ mkdir -p ~/.config/xsettingsd |
Luego, movemos el archivo de configuración predefinido a dicho directorio, renombrándolo como default.
$ mv ~/.xsettingsd ~/.config/xsettingsd/default |
Ahora creamos 3 copias del mismo, que modificaremos, por ejemplo, en lo
que respecta al tema GTK+ a utilizar, o cualquier otro parámetro
que se nos ocurra.
$ for i in ~/.config/xsettingsd/default ; do
cp $i ~/.config/xsettingsd/config-1 ;
cp $i ~/.config/xsettingsd/config-2 ;
cp $i ~/.config/xsettingsd/config-3 ;
done |
Y finalmente, creamos un enlace simbólico desde la ruta
predefinida de ubicación del archivo de configuración de Xsettingsd,
que hemos movido anteriormente, para no tener que modificar la
configuración de los scripts de inicio de los administradores de
ventanas correspondientes.
$ ln -s ~/.config/xsettingsd/default ~/.xsettingsd |
Cuando lo tengamos todo configurado, abrimos un editor de texto y añadimos lo siguiente:
#!/bin/bash
# Copyright © Jose Luis Lara Carrascal 2015-2023 <manualinux@yahoo.es>
# <https://manualinux.es>
# Este script se distribuye bajo la Licencia General GNU
selection=$(zenity --height="250" --list "Predefinida" "Configuración 1" "Configuración 2" \
"Configuración 3" --column="" \
--text="Seleccione la configuración personalizada que desee utilizar con <b>Xsettingsd</b>.\\
Seleccione 'Predefinida', para utilizar la configuración predefinida de <b>Xsettingsd</b>." \
--title="Selector de Configuraciones de Xsettingsd")
if [ $? = 1 ];
then exit
fi
case "selection" in
"Predefinida") ;;
"Configuración 1") ;;
"Configuración 2") ;;
"Configuración 3") ;;
esac
if [ "$selection" = "Predefinida" ] ; then
ln -sf $HOME/.config/xsettingsd/default $HOME/.xsettingsd
killall -9 xsettingsd &> /dev/null
xsettingsd &
fi
if [ "$selection" = "Configuración 1" ] ; then
ln -sf $HOME/.config/xsettingsd/config-1 $HOME/.xsettingsd
killall -9 xsettingsd &> /dev/null
xsettingsd &
fi
if [ "$selection" = "Configuración 2" ] ; then
ln -sf $HOME/.config/xsettingsd/config-2 $HOME/.xsettingsd
killall -9 xsettingsd &> /dev/null
xsettingsd &
fi
if [ "$selection" = "Configuración 3" ] ; then
ln -sf $HOME/.config/xsettingsd/config-3 $HOME/.xsettingsd
killall -9 xsettingsd &> /dev/null
xsettingsd &
fi
|
Lo guardamos como xsettingsd-conf,
le damos permisos de ejecución y lo copiamos al directorio bin de nuestro home.
$ chmod +x xsettingsd-conf
$ mkdir -p ~/bin
$ cp xsettingsd-conf ~/bin
|
Si queremos añadir o suprimir entradas, basta con tomar como ejemplo las líneas que están de color rojo.
Enlaces
https://codeberg.org/derat/xsettingsd >> Enlace al proyecto del programa en Codeberg.
|