Copyright
Copyright © José
Luis Lara Carrascal 2006-2024
Sumario
Introducción
Características
Preliminares
Instalación
Directorio de configuración personal
Configurar el inicio de IceWM
Configuración global de IceWM
Añadir aplicaciones al inicio de IceWM
Fondo de Escritorio
Atajos de teclado predefinidos
Iniciamos IceWM
Aplicaciones auxiliares de IceWM
Configurar los eventos de sonido de IceWM
Editar el menú de IceWM
Editar la barra de inicio rápido
Editar los atajos de teclado de IceWM
Personalizar el comportamiento de las ventanas
Enlaces
Introducción
IceWM es un administrador de ventanas creado por Marco Macek,
cuya propósito principal era el de desarrollar un entorno
gráfico de manejo sencillo que emulara mediante el uso de temas,
el aspecto de sistemas operativos tan conocidos como OS/2 Warp 4, OS/2
Warp 3 y Windows 95, y manteniendo una compatibilicad con el
administrador de ventanas, MWM, cuyo aspecto también
era seleccionable desde el menú. Sin llegar a la calidad
técnica de otros administradores de ventanas como Fluxbox o Pekwm, IceWM ha sido siempre uno de los entornos gráficos más utilizados en GNU/Linux,
por su aspecto y manejo similar al escritorio de Windows, y por el
hecho de que se podía seleccionar como administrador de ventanas
predefinido en entornos de escritorio como KDE o GNOME.
Esa sencillez inicial, plausible en usuarios que no necesiten mucho, se
termina convirtiendo en un importante inconveniente para aquellos
usuarios que requieren de un uso más avanzado del manejo de las
ventanas de las aplicaciones. Desde el 29-04-2017 se incluye una versión derivada de la
original que recoge todos los parches de corrección de errores y
mejoras publicados por diferentes distribuciones de nuestro sistema,
además de nuevas funcionalidades añadidas. Tras la
cancelación del dominio icewm.org, esta versión pasa a
ser de facto, la versión oficial del programa, con nuevo dominio
que sustituye al anterior.
Características
* Barra de herramientas configurable con menú de
aplicaciones, barra de inicio rápido, botones de
selección de escritorio, barra de tareas, bandeja
de sistema y reloj incluidos.
* Menú de aplicaciones con soporte de iconos en formato XPM y PNG.
* Soporte de eventos de sonido.
* Atajos de teclado configurables.
* Soporte de creación de scripts de inicio automático de aplicaciones y cierre de sesión.
* Programa de gestión de la imagen del fondo de la pantalla integrado.
* Personalización del comportamiento de las ventanas de las aplicaciones.
* Aplicaciones auxiliares de gran calidad que mejoran la experiencia de uso del programa.
* Soporte de temas.
* Soporte nativo de dockapps a partir de la versión 2.4.0.
* Soporte de agrupamiento automático de las ventanas de las aplicaciones, a partir de la versión 3.1.0.
Preliminares
1) Comprobar que la ruta de instalación de los binarios del programa la tenemos en nuestro PATH
Abrimos una ventana de terminal y ejecutamos el siguiente comando:
[jose@Fedora-18 ~]$ echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/jose/bin
|
Si no aparece entre las rutas mostradas el directorio /usr/local/bin, abrimos un editor de texto y añadimos lo siguiente:
#!/bin/sh
export PATH=/usr/local/bin:$PATH |
Lo guardamos con el nombre variables.sh, y lo instalamos en /etc/profile.d.
$ su -c "install -m755 variables.sh /etc/profile.d" |
Tenemos que cerrar el emulador de terminal y volverlo a abrir para que
la variable de entorno aplicada sea efectiva. Es conveniente guardar
una copia de este script para posteriores
instalaciones de nuestro sistema, teniendo en cuenta que es el que se
va a utilizar a partir de ahora en todos los manuales de esta web, para
establecer variables de entorno globales, excepto en aquellas que
sólo afectan al usuario, en las que se utilizará el
archivo de configuración personal, ~/.bashrc.
La ventaja de utilizar el directorio /etc/profile.d es que es común a todas las distribuciones y nos evita tener que editar otros archivos del sistema como por ejemplo, /etc/profile.
2) Desinstalar versiones anteriores del programa ubicadas en el directorio /usr
Aún en el caso de que la versión a compilar la vayamos a
instalar en el mismo directorio que la que proporciona la
distribución, siempre se debe desinstalar previamente la versión antigua, para evitar conflictos innecesarios.
Instalación
Dependencias
Herramientas de Compilación
Entre paréntesis la
versión con la que se ha compilado IceWM
para la elaboración de este documento.
* GCC - (14.1.0) o Clang - (18.1.7)
* Gawk - (5.3.0)
* M4 - (1.4.19)
* Make - (4.4.1)
* Automake - (1.16.5)
* Gettext - (0.22.5)
* Autoconf - (2.72)
Librerías
de Desarrollo
*
Xorg - (7.7 / xorg-server 21.1.13)
LibICE - (1.1.1)
LibSM - (1.2.4)
LibX11 - (1.8.9)
LibXcomposite - (0.4.6)
LibXext - (1.3.6)
LibXdamage - (1.1.6)
LibXfixes - (6.0.1)
LibXinerama - (1.1.5)
LibXft - (2.3.8)
LibXpm - (3.5.17)
LibXrandr - (1.5.4)
LibXrender - (0.9.11)
* ALSA - (1.2.12)
* Fontconfig - (2.15.0)
* GLib - (2.74.7)
* Imlib2 - (1.12.2)
* Librsvg - (2.58.1)
* Libsndfile - (1.2.2)
Descarga
icewm-3.6.0.tar.lz
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. |
arrowlake |
Intel Arrow Lake 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, UINTR, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD y extensiones 64-bit. Esta opción está disponible a partir de GCC 14. |
arrowlake-s |
Intel Arrow Lake S 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, UINTR, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, AVXVNNIINT16, SHA512, SM3, SM4 y extensiones 64-bit. Esta opción está disponible a partir de GCC 14. |
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. |
clearwaterforest |
Intel Clearwater 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, ENQCMD, UINTR, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, AVXVNNIINT16, SHA512, SM3, SM4, USER_MSR, PREFETCHI y extensiones 64-bit. Esta opción está disponible a partir de GCC 14 y Clang 18. |
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. |
graniterapids-d |
Intel Granite Rapids D 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, ENQCMD, CLDEMOTE, PTWRITE, WAITPKG, SERIALIZE, TSXLDTRK, UINTR, AMX-BF16, AMX-TILE, AMX-INT8, AVX-VNNI, AVX512FP16, AVX512BF16, AMX-FP16, PREFETCHI, AMX-COMPLEX y extensiones 64-bit. Esta opción está disponible a partir de GCC 14 y Clang 17. |
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. |
lunarlake |
Intel Lunar Lake. Esta opción está disponible a partir de GCC 14 y es equivalente a la opción arrowlake-s. |
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. |
pantherlake |
Intel Panther Lake 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, UINTR, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, AVXVNNIINT16, SHA512, SM3, SM4, PREFETCHI y extensiones 64-bit. Esta opción está disponible a partir de GCC 14 y Clang 18. |
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, 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. |
znver5 |
Procesadores basados en AMD Family 1ah 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, AVXVNNI, MOVDIRI, MOVDIR64B, AVX512VP2INTERSECT, PREFETCHI) y extensiones 64-bit. Esta opción está disponible a partir de GCC 14. |
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 {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. |
Unified LTO |
LTO >> ThinLTO |
$ export AR=llvm-ar RANLIB=llvm-ranlib NM=llvm-nm
$ export {C,CXX}FLAGS+=' -flto -funified-lto'
$ export LDFLAGS+=' -Wl,--lto=thin' |
ThinLTO >> LTO |
$ export AR=llvm-ar RANLIB=llvm-ranlib NM=llvm-nm
$ export {C,CXX}FLAGS+=' -flto=thin -funified-lto'
$ export LDFLAGS+=' -Wl,--lto=full' |
La aplicación de esta optimización es aplicable, a partir de Clang 17, y sólo es combinable con LLD. |
Parámetros adicionales
Parámetros adicionales de eliminación de avisos en el proceso de compilación |
$ export {C,CXX}FLAGS+=' -w' |
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/gcc14/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++ |
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=$(expr $(nproc) / 2)" |
Optimizaciones complementarias ThinLTO de LLD |
$ export LDFLAGS+=" -Wl,--thinlto-jobs=$(expr $(nproc) / 2)" |
Establecer la variable de entorno de uso de compilador para Clang |
$ export CC=clang CXX=clang++ |
Extracción
y Configuración
$ tar axvf icewm-3.6.0.tar.lz
$ cd icewm-3.6.0
$ ./configure --with-icesound=ALSA,OSS --sysconfdir=/etc \
--disable-fribidi --prefix=/usr/local |
Explicación
de los comandos
--with-icesound=ALSA,OSS : Activa el soporte de ALSA y OSS para los eventos de sonido.
--sysconfdir=/etc : Instala los archivos de configuración globales del programa en /etc/icewm en lugar de /usr/local/etc/icewm.
--disable-fribidi
: Desactiva el soporte de texto bidireccional, cuyo uso es
sólo necesario en idiomas como el hebreo o el
árabe.
--prefix=/usr/local : Instala el programa en /usr/local.
Compilación
Parámetros de compilación opcionales
-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" |
Borrar las locales adicionales instaladas con la utilidad BleachBit
$ su -c "bleachbit -c system.localizations"
|
Instalación de los archivos de configuración personal en nuestro home
$ mkdir -p ~/.icewm/{icons,sounds,themes}
$ cp -f /usr/local/share/icewm/* ~/.icewm |
Creación de los scripts de inicio y cierre de sesión
$ echo -e '#!/bin/sh''\n\n' > ~/.icewm/startup
$ echo -e '#!/bin/sh''\n\n' > ~/.icewm/shutdown
$ chmod +x ~/.icewm/{startup,shutdown}
|
Estadísticas de Compilación e Instalación de IceWM
Estadísticas de Compilación e Instalación de IceWM |
CPU |
AMD Ryzen 5 5500 |
MHz |
3600 (BoostMax=4457) |
RAM |
32 GB |
Tarjeta gráfica |
AMD Radeon RX 580 2048SP |
Controlador de gráficos |
AMDGPU 23.0.0 |
Sistema de archivos |
XFS |
Versión del Kernel |
6.9.4-ml SMP PREEMPT_DYNAMIC x86_64 |
Modo de frecuencia de la CPU |
powersave (balance performance) |
Planificador de CPU |
BMQ |
Versión de Glibc |
2.39 |
Librería estándar de C++ |
Libc++ 18.1.7 |
Enlazador dinámico |
LLD 18.1.7 |
Compilador |
Clang 18.1.7 |
Parámetros de optimización |
-03 -march=znver3
-mtune=znver3 -mllvm -polly -mllvm
-polly-vectorizer=stripmine -flto -funified-lto -Wl,--lto=thin
-Wl,--thinlto-jobs=6 -Wl,--lto-aa-pipeline=globals-aa
-Wl,--lto-newpm-passes=memcpyopt |
Parámetros de compilación |
-j12 |
Tiempo de compilación |
8" |
Archivos instalados |
614 |
|
Ocupación de espacio en disco |
5,9 MB |
Consumo inicial de CPU y RAM de IceWM
Consumo inicial de CPU y RAM de IceWM |
Programa
|
CPU |
RAM |
icewmbg |
0 % |
8,6 MB |
icewm |
0 % |
5,0 MB |
icesound |
0 % |
3,1 MB |
icewm-session |
0 % |
0,3 MB |
TOTAL |
0 % |
17,0 MB |
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. |
Directorio de configuración personal
~/.icewm |
Es el directorio de configuración personal de IceWM en nuestro home. |
~/.icewm/icons |
Es el subdirectorio
donde
podemos colocar nuestros iconos personalizados, esto nos ahorra
tener que añadir la ruta completa a la ubicación del
icono correspondiente que utilizemos en el menú o en los
lanzadores que nos aparecen en el panel inferior, es decir, que si en
este directorio tenemos un icono con el nombre firefox.xpm, en el menú o en la toolbar sólo tendremos que poner firefox, para hacer referencia a este icono. |
~/.icewm/sounds |
Es el subdirectorio que contiene los archivos de sonido para los eventos de sonido de IceWM, y la forma de añadirlos la explico más abajo. |
~/.icewm/themes |
Es el subdirectorio donde
podemos colocar los temas que nos bajemos de internet y los que queramos personalizar de los ya existentes. |
~/.icewm/keys |
Es el archivo de configuración de los atajos de teclado de IceWM. |
~/.icewm/menu |
Es el archivo de configuración del menú de IceWM, recomendable utilizar el editor icemc de la aplicación auxiliar IceWM Control Center para su edición. |
~/.icewm/preferences |
Es el archivo de configuración principal de IceWM. |
~/.icewm/prefoverride |
Este archivo no existe y
debemos de crearlo para poder sobreescribir los valores predefinidos de
cada tema, por ejemplo el uso de una fuente específica para
todos los temas. |
~/.icewm/toolbar |
Es el archivo de
configuración de la barra lanzadora de aplicaciones que
está al lado del menú de inicio, también se edita
con el editor icemc de la aplicación auxiliar IceWM Control Center. |
~/.icewm/winoptions |
Es el archivo de
configuración que contiene las opciones individuales de cada
aplicación en todo lo que concierne a las opciones de ventana.
Este archivo es el que tendremos que utilizar (en versiones inferiores a la 2.4.0) para poder integrar las dockapps con IceWM ya que éste no las soporta por defecto, pero esto lo explico más abajo. |
~/.icewm/theme |
Es el archivo de
configuración que contiene el nombre del tema que estemos usando en ese momento. |
~/.icewm/startup |
Este script de inicio no se crea por defecto, así que si queremos lanzar aplicaciones al inicio de IceWM
lo tendremos que crear y guardarlo con este nombre dentro del
directorio de configuración personal y posteriormente darle
permisos de ejecución. Más abajo explico cómo
crearlo.
|
~/.icewm/shutdown |
Este
script de cierre de sesión
tampoco se crea por defecto, es recomendable colocar en el mismo, el
comando de terminación de las aplicaciones que configuremos en
el script startup,
para asegurarnos de una correcta terminación de éstas. La
forma de crearlo es la misma que el anterior script comentado. |
Desinstalación
como root
1) MODO TRADICIONAL
En el directorio de compilación ejecutamos el siguiente comando:
2) MODO MANUALINUX
El principal inconveniente del comando anterior es
que
tenemos que tener el directorio de compilación en nuestro
sistema para poder desinstalar el programa. En algunos casos esto
supone muchos megas de espacio en disco. Con el paquete de scripts que
pongo a continuación logramos evitar
el único inconveniente que tiene la compilación
de
programas, y es el tema de la desinstalación de los mismos
sin
la necesidad de tener obligatoriamente una copia de las fuentes
compiladas.
icewm-3.6.0-scripts.tar.gz
$ su
# tar zxvf icewm-3.6.0-scripts.tar.gz
# cd icewm-3.6.0-scripts
# ./Desinstalar_icewm-3.6.0 |
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 icewm-3.6.0-scripts.tar.gz
# cd icewm-3.6.0-scripts
# ./Respaldar_icewm-3.6.0 |
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_icewm-3.6.0
|
Configurar el inicio de
IceWM
1) Para los que inician X desde
terminal con el comando startx
Editamos el archivo ~/.xinitrc que se
encuentra en nuestro home,
si no existe lo creamos, y añadimos lo siguiente:
exec
/usr/local/bin/icewm-session |
2) XDM
Editamos el archivo ~/.xsession que se
encuentra en nuestro home,
si no existe lo creamos, y añadimos lo siguiente:
exec
/usr/local/bin/icewm-session |
3) GDM/LightDM/SDDM
Creamos un enlace simbólico de /usr/local/share/xsessions/icewm-session.desktop a /usr/share/xsessions:
$ su -c "ln -s /usr/local/share/xsessions/icewm-session.desktop /usr/share/xsessions"
|
4) Qingy
Abrimos un editor de texto y añadimos lo siguiente:
/usr/local/bin/icewm-session |
Lo guardamos con el nombre IceWM, y lo instalamos en /etc/qingy/Xsessions.
$ su -c "install -m755 IceWM /etc/qingy/Xsessions"
|
5) SLiM
Primero editamos el archivo /etc/slim.conf
y añadimos el nombre del entorno a la lista de los que tengamos
en el sistema instalados, si queremos que sea el entorno que se inicie
por defecto hay que colocarlo en el primer lugar de la lista.
#
Sesiones disponibles (la primera es la predefinida).
# El actual nombre de sesión es reemplazado en el login_cmd
# anterior, para que su comando de acceso pueda manejar diferentes
sesiones.
# vea el archivo xinitrc.ejemplo proporcionado con el código
fuente de slim.
sessions Fluxbox,WindowMaker,Blackbox,XFce4,E17,E16,IceWM,Openbox,ROX,Pekwm,AfterStep |
Para finalizar editamos el archivo ~/.xinitrc
de nuestro home y
añadimos la configuración del mismo, la variable DEFAULT_SESSION
sobreescribe el entorno gráfico de inicio predefinido que
pueda existir en el archivo /etc/slim.conf,
permitiendo añadir el ejecutable de otro entorno que no
esté configurado en el apartado anterior para ser iniciado
por
defecto, si queremos que sea IceWM,
añadimos su script de ejecución, aunque si lo
tenemos configurado el primero de la lista, esto no es necesario.
# La siguiente variable define
la sesión que será iniciada si el usuario
# no elige de forma explícita una sesión
DEFAULT_SESSION=icewm-session
case $1 in
XFce4)
exec startxfce4
;;
IceWM)
exec icewm-session
;;
WindowMaker)
exec wmaker
;;
Blackbox)
exec startblackbox
;;
Fluxbox)
exec startfluxbox
;;
E17)
exec enlightenment_start
;;
E16)
exec starte16
;;
Openbox)
exec openbox-session
;;
Pekwm)
exec pekwm
;;
ROX)
exec rox-session
;;
AfterStep)
exec afterstep
;;
*)
exec $DEFAULT_SESSION
;;
esac |
Con pulsar F1 ya
podremos seleccionarlo de la lista e iniciarlo, si es el predefinido no
es necesario seleccionarlo de la lista, se iniciará por
defecto.
Configuración global de IceWM
Mediante la edición del archivo de configuración, ~/.icewm/preferences definimos la mayoría de las opciones más importantes de configuración de IceWM,
a continuación pongo un ejemplo de las más importantes
con los comentarios traducidos al español. Los valores definidos
en las opciones, por ejemplo ClickToFocus=1, aunque estén comentados (#), son los valores que IceWM utiliza por defecto, es decir, que no es necesario descomentarlas si tenemos pensado utilizarlas como opciones de uso de IceWM.
# preferences(3.6.0) - generado por genpref
# Este archivo debe copiarse al directorio /etc/icewm/ o $HOME/.icewm/
# NOTA: Todas las opciones están comentadas (#) por defecto, descomentarlas
# si tiene pensado hacer cambios. 1, activa las opciones; 0, las desactiva.
# Utiliza un visual de 32 bits para la mezcla alfa
# Alpha=0 # 0/1
# Activa el registro de eventos para depuración
# LogEvents=0 # 0/1
# Redirige toda la salida de icewm a un archivo.
# OutputFile=""
# Imagen de bienvenida al inicio (IceWM.jpg)
# Splash=""
# Sincroniza X11 para depuración (lento)
# Synchronize=0 # 0/1
# Activa el seguimiento de los módulos dados
# Trace=""
# Listado de nombres de batería (directorios) en /proc/acpi/battery para ignorar.
# Útil cuando hay muchos slots y sólo una batería en uso
# AcpiIgnoreBatteries=""
# Comando a ejecutar para las entradas de la barra de direcciones
# AddressBarCommand=""
# Permite poner una ventana a pantalla completa
# AllowFullscreen=1 # 0/1
# Ordenar automáticamente las ventanas cuando cambie el tamaño de la pantalla
# ArrangeWindowsOnScreenSizeChange=1 # 0/1
# Retardo (ms) antes de que la barra de tareas se oculte
# AutoHideDelay=300 # [0-5000]
# Elevado automático de ventanas después de un retardo
# AutoRaise=0 # 0/1
# Retardo (ms) antes de que las ventanas sean elevadas de forma automática
# AutoRaiseDelay=400 # [0-5000]
# Recarga los archivos del menú de forma automática
# AutoReloadMenus=1 # 0/1
# Retardo (ms) del desplazamiento automático
# AutoScrollDelay=60 # [0-5000]
# Retardo (ms) del inicio del desplazamiento automático
# AutoScrollStartDelay=500 # [0-5000]
# Retardo (ms) antes de que la barra de tareas se muestre
# AutoShowDelay=500 # [0-5000]
# Retardo entre las actualizaciones del estado de la batería en segundos
# BatteryPollingPeriod=10 # [2-3600]
# Máscara de bits de los botones que elevan la ventana cuando son presionados
# ButtonRaiseMask=1 # [0-255]
# WM_CLASS para permitir runonce para CPUStatusCommand
# CPUStatusClassHint="top.XTerm"
# Combina todas las CPU en una
# CPUStatusCombine=1 # 0/1
# Comando a ejecutar en el estado de la CPU
# CPUStatusCommand="xterm -name top -title Process\ Status -e top"
# Muestra la temperatura ACPI en una descripción emergente mostrada
# sobre el elemento del estado de la CPU, en la barra de tareas
# CPUStatusShowAcpiTemp=1 # 0/1
# Muestra la temperatura ACPI en el elemento del estado de la CPU en la barra de tareas
# CPUStatusShowAcpiTempInGraph=0 # 0/1
# Muestra la frecuencia de la CPU en una descripción emergente mostrada
# sobre el elemento del estado de la CPU, en la barra de tareas
# CPUStatusShowCpuFreq=1 # 0/1
# Muestra el uso de RAM en una descripción emergente mostrada
# sobre el elemento del estado de la CPU, en la barra de tareas
# CPUStatusShowRamUsage=1 # 0/1
# Muestra el uso de Swap en una descripción emergente mostrada
# sobre el elemento del estado de la CPU, en la barra de tareas
# CPUStatusShowSwapUsage=1 # 0/1
# Centra en la pantalla, las ventanas grandes
# CenterLarge=0 # 0/1
# Maximizado centrado de las ventanas que no puedan encajar en la pantalla (como las terminales)
# CenterMaximizedWindows=0 # 0/1
# Diálogos centrados en la ventana del dueño
# CenterTransientsOnOwner=1 # 0/1
# Retardo (ms) antes de que el clic se interprete como arrastre
# ClickMotionDelay=200 # [0-2000]
# Distancia (ms) del movimiento del puntero antes de que el clic se interprete como arrastre
# ClickMotionDistance=4 # [0-32]
# Enfoque de las ventanas mediante clics del ratón
# ClickToFocus=1 # 0/1
# Permite acciones del ratón en el cliente de las ventanas (produce fallos con muchos programas)
# ClientWindowMouseActions=1 # 0/1
# WM_CLASS para permitir runonce para ClockCommand
# ClockClassHint="icewm.XClock"
# Comando a ejecutar en el reloj
# ClockCommand="xclock -name icewm -title Clock"
# Confirmar el cierre de sesión
# ConfirmLogout=1 # 0/1
# Tener en cuenta el borde de los marcos de las ventanas al maximizar de forma horizontal
# ConsiderHBorder=0 # 0/1
# Tener en cuenta XSizeHints si el marco de la ventana está maximizado
# ConsiderSizeHintsMaximized=1 # 0/1
# Tener en cuenta el borde de los marcos de las ventanas al maximizar de forma vertical
# ConsiderVBorder=0 # 0/1
# Cambio de escritorio continuo al mover el ratón por el borde de la pantalla
# ContinuousEdgeSwitch=1 # 0/1
# Formato de fecha del reloj para el tooltip (formato de cadena strftime)
# DateFormat="%c"
# Retardo suavizado (ms), para permitir la fusión de múltiples tiempos de espera
# de temporizador en uno, del ahorro de energía en el portátil
# DelayFuzziness=0 # [0-100]
# Retardo del enfoque del puntero cuando se mueva el ratón
# DelayPointerFocus=1 # 0/1
# Clic del botón del ratón en el escritorio para mostrar el menú raíz
# DesktopMenuButton=3 # [0-20]
# Clic del botón del ratón en el escritorio para mostrar la lista de ventana
# DesktopWinListButton=2 # [0-20]
# Clic del botón del ratón en el escritorio para mostrar el menú de lista de ventana
# DesktopWinMenuButton=0 # [0-20]
# Soporte de Aplicaciones dock (right [a la derecha], left [a la
izquierda], center [en el centro], down [abajo], high [arriba], above
[por encima], below [debajo], desktop [escritorio], o empty
[vacío] para desactivar). Se controlan con el atajo de teclado
Ctrl+Ratón.
# DockApps="right high desktop"
# No rotar el cursor de los menús emergentes
# DontRotateMenuPointer=1 # 0/1
# Usar doble búfer al redibujar la pantalla
# DoubleBuffer=1 # 0/1
# Resistencia en píxeles cuando se intente mover las ventanas fuera de la pantalla (10000 = infinito)
# EdgeResistance=32 # [0-10000]
# Cambia de escritorio al mover el ratón por el borde izquierdo/derecho de la pantalla
# EdgeSwitch=0 # 0/1
# Retardo (ms) al cambiar de escritorio en los bordes de la pantalla
# EdgeSwitchDelay=600 # [0-5000]
# Activa la funcionalidad de barra de dirección en la barra de tareas
# EnableAddressBar=1 # 0/1
# Cambiar al escritorio de la ventana nueva enfocada
# FocusChangesWorkspace=0 # 0/1
# Mover la ventana nueva enfocada al escritorio actual
# FocusCurrentWorkspace=0 # 0/1
# Enfoque de las ventanas cuando la aplicación lo demande para elevar
# FocusOnAppRaise=0 # 0/1
# Enfocar la ventana cuando se haga clic sobre el contenido de la misma
# FocusOnClickClient=1 # 0/1
# Enfoque normal de la ventana cuando se inicialice el mapeado
# FocusOnMap=1 # 0/1
# Enfoque del diálogo de la ventana cuando se inicialice el mapeado
# FocusOnMapTransient=0 # 0/1
# Enfoque del diálogo de la ventana cuando se inicialice
el mapeado, sólo si el marco superior está enfocado
# FocusOnMapTransientActive=1 # 0/1
# Intervalo de parpadeo en ms. de la barra de tareas cuando reciba el enfoque (0 = parpadeo desactivado)
# FocusRequestFlashInterval=250 # [0-30000]
# Número de segundos en los que la aplicación de la
barra de tareas parpadeará cuando reciba el enfoque
# FocusRequestFlashTime=0 # [0-86400]
# Amplia todas las pantallas disponibles si la ventana entra en pantalla completa
# FullscreenUseAllMonitors=0 # 0/1
# Gestiona la ventana raíz (¡EXPERIMENTAL - normalmente activado!)
# GrabRootWindow=1 # 0/1
# Comando para hibernar el sistema.
# HibernateCommand="test -e /run/systemd/system && systemctl hibernate || loginctl hibernate"
# Ocultar los bordes de la ventana cuando sea maximizada
# HideBordersMaximized=0 # 0/1
# Ocultar el título de la ventana cuando sea maximizada
# HideTitleBarWhenMaximized=0 # 0/1
# Cambia de escritorio al mover el ratón por el borde izquierdo/derecho de la pantalla
# HorizontalEdgeSwitch=0 # 0/1
# Lista de rutas de ubicación de iconos separadas por ':'.
Soporta también comodines (*).
# IconPath="/usr/local/share/icons:/usr/local/share/pixmaps:/usr/share/icons:/usr/share/pixmaps"
# Lista de temas de iconos separados por ':'.
Soporta también comodines (*) y se puede utilizar el prefijo -
para excluir temas de iconos.
# IconThemes="*:HighContrast"
# Dejar que la capa Dock limite con el escritorio virtual (incompatible con el panel de GNOME)
# LimitByDockLayer=1 # 0/1
# Limitar la posición de las ventanas a la pantalla
# LimitPosition=1 # 0/1
# Limitar el tamaño de las ventanas a la pantalla
# LimitSize=1 # 0/1
# Comando para bloquear la pantalla/salvapantallas
# LockCommand=""
# Comando para cancelar el cierre de sesión
# LogoutCancelCommand=""
# Comando a iniciar en el cierre de sesión
# LogoutCommand=""
# Minimizar la ventana activar cuando se haga clic de nuevo
# LowerOnClickWhenRaised=0 # 0/1
# Lista de rutas de ubicación de buzones de correo (usar $MAIL o $MAILPATH en su lugar)
# MailBoxPath=""
# Retardo entre la comprobación de nuevos mensajes de correo en segundos
# MailCheckDelay=30 # [0-86400]
# WM_CLASS para permitir runonce para MailCommand
# MailClassHint="mutt.XTerm"
# Comando a ejecutar en el buzón de correo
# MailCommand="xterm -name mutt -e mutt"
# Ubicación inicial de la ventana de forma manual por el usuario
# ManualPlacement=0 # 0/1
# Poner las ventanas nuevas por encima, aún cuando no estén enfocadas
# MapInactiveOnTop=1 # 0/1
# Retardo (ms) antes de la activación de los elementos del menú
# MenuActivateDelay=40 # [0-5000]
# Anchura máxima de los menús emergentes, 2/3 de la pantalla si la anchura es cero
# MenuMaximalWidth=0 # [0-16384]
# Los menús siguen al ratón, incluso si los botones no están presionados
# MenuMouseTracking=0 # 0/1
# Coloca mini-iconos nuevos desde abajo hacia arriba
# MiniIconsBottomToTop=0 # 0/1
# Coloca los mini-iconos en posición horizontal antes que en vertical
# MiniIconsPlaceHorizontal=0 # 0/1
# Coloca mini-iconos nuevos de derecha a izquierda
# MiniIconsRightToLeft=0 # 0/1
# Muestra mini-iconos en el escritorio de las ventanas minimizadas
# MinimizeToDesktop=0 # 0/1
# Trata el modificador Super/Win como Ctrl+Alt
# ModSuperIsCtrlAlt=0 # 0/1
# Atajo del ratón para descender la ventana
# MouseWinLower="Ctrl+Alt+Pointer_Button1"
# Atajo del ratón para mover la ventana
# MouseWinMove="Alt+Pointer_Button1"
# Atajo del ratón para elevar la ventana
# MouseWinRaise="Ctrl+Alt+Pointer_Button1"
# Atajo del ratón para redimensionar la ventana
# MouseWinSize="Alt+Pointer_Button3"
# Atajo del ratón para crear pestañas de ventana.
# MouseWinTabbing="Shift+Pointer_Button2"
# Botón preseleccionado en la caja de mensajes para Cancelar (0) o Aceptar (1)
# MsgBoxDefaultAction=0 # [0-1]
# Sobreescribe la detección automática de múltiplos de byte
# MultiByte=1 # 0/1
# Duración del clic múltiple en milisegundos
# MultiClickTime=400 # [0-5000]
# Número mínimo de temas después de que, el menú de los Temas se anide (0=desactivado)
# NestedThemeMenuMinNumber=21 # [0-1234]
# WM_CLASS para permitir runonce para NetStatusCommand
# NetStatusClassHint="netstat.XTerm"
# Comando a ejecutar en el estado de tráfico de red
# NetStatusCommand="xterm -name netstat -title 'Network Status' -e netstat -c"
# Muestra el estado de la red sólo para los dispositivos conectados.
# NetStatusShowOnlyRunning=0 # 0/1
# Comportamiento de NET_WORKAREA: 0 (simple/multimonitor con
información STRUT, como metacity), 1 (siempre escritorio
completo), 2 (monitor simple con STRUT, multimonitor sin STRUT)
# NetWorkAreaBehaviour=0 # [0-2]
# Dispositivo de red a mostrar en el estado de tráfico de red
# NetworkStatusDevice="[ew]*"
# Comando a ejecutar cuando se reciban nuevos mensajes
# NewMailCommand=""
# Movimiento opaco de la ventana
# OpaqueMove=1 # 0/1
# Redimensionado opaco de la ventana
# OpaqueResize=1 # 0/1
# Comando a seleccionar para ejecutar un programa
# OpenCommand=""
# Dibuja bordes alrededor de los botones conmutadores de escritorio
# (si está activado PagerShowPreview=1)
# PagerShowBorders=1 # 0/1
# Muestra el nombre de etiqueta en el botón de escritorio (si está activado PagerShowPreview=1)
# PagerShowLabels=1 # 0/1
# Muestra el número de escritorio en el botón de escritorio (si está activado PagerShowPreview=1)
# PagerShowNumbers=1 # 0/1
# Muestra una vista previa en miniatura del escritorio en cada botón de escritorio
# PagerShowPreview=1 # 0/1
# Dibuja iconos de las ventanas suficientemente grandes en la vista previa en miniatura del
# escritorio (si está activado PagerShowPreview=1)
# PagerShowWindowIcons=1 # 0/1
# Dibuja incluso minimizadas, las ventanas como rectángulos vacíos
# (si está activado PagerShowPreview=1)
# PagerShowMinimized=1 # 0/1
# Pasar el clic de enfoque del área del cliente al cliente
# PassFirstClickToClient=1 # 0/1
# Límite de tiempo en segundos para que las aplicaciones respondan al protocolo _NET_WM_PING.
# PingTimeout=3 # [0-86400]
# El enfoque del mapa de color sigue al puntero del ratón
# PointerColormap=1 # 0/1
# Retardo (ms) para la conmutación del enfoque del puntero
# PointerFocusDelay=200 # [0-1000]
# Utilizar siempre preferentemente fuentes suavizadas cuando sea posible
# PreferFreetypeFonts=1 # 0/1
# Alt+Tab muestra el conmutador de ventana
# QuickSwitch=1 # 0/1
# Muestra todos los iconos alcanzables en el conmutador de ventana
# QuickSwitchAllIcons=1 # 0/1
# Dibuja un rectángulo resaltado en el icono actual
# QuickSwitchFillSelection=0 # 0/1
# Alt+Tab: agrupa las ventanas en el escritorio actual
# QuickSwitchGroupWorkspaces=1 # 0/1
# Muestra el icono grande (48x48) de ventana para la ventana activa
# QuickSwitchHugeIcon=0 # 0/1
# Ir a través de todos los títulos de ventana y elegir la anchura de la más larga
# QuickSwitchMaxWidth=0 # 0/1
# Tiempo en segundos para recordar el estado de Alt+Tab.
# QuickSwitchPersistence=0 # [0-86400]
# Eleva una ventana seleccionada mientras esté Alt+Tabulando en el conmutador de ventana.
# QuickSwitchRaiseCandidate=0 # 0/1
# Intentar crear una ventana pequeña del conmutador de ventana de 1/3 en lugar de 3/5 del ancho de la pantalla
# QuickSwitchSmallWindow=0 # 0/1
# Muestra el título de la ventana sobre los iconos (todos los alcanzables)
# QuickSwitchTextFirst=0 # 0/1
# Incluye las ventanas de todos los escritorios virtuales en Alt+Tab
# QuickSwitchToAllWorkspaces=0 # 0/1
# Alt+Tab para ocultar las ventanas
# QuickSwitchToHidden=1 # 0/1
# Alt+Tab para minimizar las ventanas
# QuickSwitchToMinimized=1 # 0/1
# Priorizar Alt+Tab para las ventanas urgentes
# QuickSwitchToUrgent=1 # 0/1
# Ubica los iconos y los títulos en vertical antes que en horizontal
# QuickSwitchVertical=1 # 0/1
# Elevar la ventana cuando se haga clic sobre el botón del marco
# RaiseOnClickButton=1 # 0/1
# Elevar la ventana cuando se haga clic sobre el contenido de la misma
# RaiseOnClickClient=1 # 0/1
# Elevar la ventana cuando se haga clic sobre el borde del marco
# RaiseOnClickFrame=1 # 0/1
# Elevar la ventana cuando se haga clic sobre la barra del título
# RaiseOnClickTitleBar=1 # 0/1
# Elevar ventanas cuando estén enfocadas
# RaiseOnFocus=1 # 0/1
# Comando de reinicio del sistema
# RebootCommand="test -e /run/systemd/system && systemctl reboot || loginctl reboot"
# Envía los clics fuera de los menús a la ventana designada
# ReplayMenuCancelClick=0 # 0/1
# Enfoque solicitado (destellos en la barra de tareas) cuando la aplicación lo demande para elevar
# RequestFocusOnAppRaise=1 # 0/1
# Comando a seleccionar para ejecutar un programa
# RunCommand=""
# Retardo (ms) del desplazamiento automático en la barra de desplazamiento
# ScrollBarDelay=30 # [0-5000]
# Retardo (ms) del inicio del desplazamiento automático en la barra de desplazamiento
# ScrollBarStartDelay=500 # [0-5000]
# No permitir que las ventanas cliente tengan las esquinas redondeadas
# ShapesProtectClientWindow=1 # 0/1
# Muestra el elemento del menú, about (acerca de)
# ShowAbout=1 # 0/1
# Muestra la barra de dirección en la barra de tareas
# ShowAddressBar=1 # 0/1
# Muestra puntos suspensivos en los elementos de la barra de
tareas como indicador de más contenido contraído.
# ShowEllipsis=1 # 0/1
# Muestra el submenú de modo de enfoque (focus)
# ShowFocusModeMenu=1 # 0/1
# Muestra el elemento del menú, help (ayuda)
# ShowHelp=1 # 0/1
# Muestra el menú logout (Cierre de sesión)
# ShowLogoutMenu=1 # 0/1
# Muestra el submenú logout (Cierre de sesión)
# ShowLogoutSubMenu=1 # 0/1
# Muestra la ventana de estado de posición durante el movimiento/redimensionado
# ShowMoveSizeStatus=1 # 0/1
# Muestra los menús emergentes sobre el puntero del ratón
# ShowPopupsAbovePointer=0 # 0/1
# Muestra el submenú programs (programas)
# ShowProgramsMenu=0 # 0/1
# Muestra el elemento del menú, ejecutar
# ShowRun=1 # 0/1
# Muestra el submenú settings (opciones)
# ShowSettingsMenu=1 # 0/1
# Muestra la barra de tareas
# ShowTaskBar=1 # 0/1
# Muestra el submenú themes (temas)
# ShowThemesMenu=1 # 0/1
# Muestra el elemento del menú, ventana
# ShowWindowList=1 # 0/1
# Muestra el nombre del escritorio actual cuando se conmute
# ShowWorkspaceStatus=1 # 0/1
# Comando de apagado del sistema
# ShutdownCommand="test -e /run/systemd/system && systemctl poweroff || loginctl poweroff"
# Maximizado de las ventanas al ser redimensionadas
# SizeMaximized=0 # 0/1
# Ubicación inteligente de la ventana con solapado mínimo
# SmartPlacement=1 # 0/1
# Distancia en píxeles antes de que las ventanas sean ajustadas al mismo tiempo
# SnapDistance=8 # [0-64]
# Ajustar a la pantalla el borde/ventana más cercano al mover las ventanas
# SnapMove=1 # 0/1
# Mantener siempre el enfoque bajo la ventana del ratón (hace que algún soporte de teclado no sea funcional)
# StrongPointerFocus=0 # 0/1
# Retardo (ms) antes de la activación de los submenús del menú
# SubmenuMenuActivateDelay=300 # [0-5000]
# Comando de suspensión del sistema
# SuspendCommand="test -e /run/systemd/system && systemctl suspend || loginctl suspend"
# Anchura del monitor de batería en píxeles
# TaskBarApmGraphWidth=10 # [1-1000]
# La barra de tareas, arriba de la pantalla
# TaskBarAtTop=0 # 0/1
# Ocultado automático de la barra de tareas después de un retardo
# TaskBarAutoHide=0 # 0/1
# Retardo en ms. entre las muestras del monitor de CPU
# TaskBarCPUDelay=500 # [10-3600000]
# Anchura del monitor de CPU en píxeles
# TaskBarCPUSamples=20 # [2-1000]
# Uso de tamaño doble de la barra de tareas
# TaskBarDoubleHeight=0 # 0/1
# Activa la bandeja de sistema en la barra de tareas
# TaskBarEnableSystemTray=1 # 0/1
# Muestra de forma automática la barra de tareas cuando la ventana está a pantalla completa
# TaskBarFullscreenAutoShow=1 # 0/1
# Barra de tareas fija a la izquierda (left), a la derecha (right) o centrada (center).
# TaskBarJustify="left"
# Preserva la barra de tareas sobre las ventanas normales
# TaskBarKeepBelow=0 # 0/1
# Ejecuta comandos de applet en la barra de tareas (como MailCommand, ClockCommand, ...) con un sólo clic
# TaskBarLaunchOnSingleClick=1 # 0/1
# Retardo (ms) entre las muestras del monitor de memoria
# TaskBarMEMDelay=500 # [10-3600000]
# Anchura del monitor de memoria en píxeles
# TaskBarMEMSamples=20 # [2-1000]
# Pitido cuando lleguen mensajes de correo nuevos
# TaskBarMailboxStatusBeepOnNewMail=0 # 0/1
# Número de mensajes en el buzón de correo
# TaskBarMailboxStatusCountMessages=0 # 0/1
# Retardo (ms) entre las muestras del monitor de tráfico de red
# TaskBarNetDelay=500 # [10-3600000]
# Anchura del monitor de tráfico de red en píxeles
# TaskBarNetSamples=20 # [2-1000]
# Activa TaskBarShowAPMStatus si la batería está presente
# TaskBarShowAPMAuto=1 # 0/1
# Muestra el estado de la batería en modo gráfico
# TaskBarShowAPMGraph=1 # 0/1
# Muestra el monitor de estado de la batería en la barra de tareas
# TaskBarShowAPMStatus=0 # 0/1
# Muestra el estado de la batería en formato de tiempo, en la barra de tareas
# TaskBarShowAPMTime=1 # 0/1
# Muestra las ventanas de todos los escritorios en la barra de tareas
# TaskBarShowAllWindows=0 # 0/1
# Muestra el estado de la CPU en la barra de tareas
# TaskBarShowCPUStatus=1 # 0/1
# Muestra el reloj en la barra de tareas
# TaskBarShowClock=1 # 0/1
# Muestra un botón para colasar la barra de tareas
# TaskBarShowCollapseButton=0 # 0/1
# Muestra el estado del uso de memoria en la barra de estado (sólo Linux)
# TaskBarShowMEMStatus=1 # 0/1
# Muestra el estado del buzón de correo electrónico en la barra de tareas
# TaskBarShowMailboxStatus=1 # 0/1
# Muestra el estado del tráfico de red en la barra de tareas
# TaskBarShowNetStatus=1 # 0/1
# Muestra el botón 'Mostrar escritorio' en la barra de tareas (un valor de 2 lo coloca después del reloj)
# TaskBarShowShowDesktopButton=1 # [0-2]
# Muestra el menú 'Inicio' en la barra de tareas
# TaskBarShowStartMenu=1 # 0/1
# Muestra las ventanas transitorias (diálogos, ...) en la barra de tareas
# TaskBarShowTransientWindows=1 # 0/1
# Muestra los iconos de las aplicaciones en la bandeja
# TaskBarShowTray=1 # 0/1
# Muestra los iconos de las ventanas en los botones de la barra de tareas
# TaskBarShowWindowIcons=1 # 0/1
# Muestra el menú 'lista de ventana' en la barra de tareas
# TaskBarShowWindowListMenu=1 # 0/1
# Muestra los títulos de las ventanas en los botones de la barra de tareas
# TaskBarShowWindowTitles=1 # 0/1
# Muestra las ventanas en la barra de tareas
# TaskBarShowWindows=1 # 0/1
# Muestra los botones de cambio de escritorio virtual en la barra de tareas
# TaskBarShowWorkspaces=1 # 0/1
# Agrupa aplicaciones con el mismo nombre de clase en un único botón de tareas.
# TaskBarTaskGrouping=0 # [0-3]
# Activa el uso del desplazamiento de la rueda del ratón sobre los botones de conmutación de
# escritorio y de las ventanas de las aplicaciones en la barra de tareas.
# TaskBarUseMouseWheel=1 # 0/1
# Anchura de la barra de tareas como porcentaje de la anchura de la pantalla
# TaskBarWidthPercentage=100 # [0-100]
# Ubica el paginador de escritorio a la izquierda.
# TaskBarWorkspacesLeft=1 # 0/1
# Limita el número de barras de tareas en los escritorios virtuales
# TaskBarWorkspacesLimit=""
# Ubica el paginador de escritorio en la fila superior
# cuando la barra de tareas utiliza doble altura
# TaskBarWorkspacesTop=0 # 0/1
# Número por defecto de tareas en la barra de tareas
# TaskbarButtonWidthDivisor=3 # [1-50]
# Emulador de terminal que acepte la opción -e
# TerminalCommand="xterm -hold"
# Formato de tiempo del reloj (formato de cadena strftime)
# TimeFormat="%X"
# Formato de hora de reloj alternativo para efectos de parpadeo
# TimeFormatAlt=""
# Doble clic del botón del ratón en la barra del título para maximizar la ventana
# TitleBarMaximizeButton=1 # [0-5]
# Doble clic del botón del ratón en la barra del título para enrollar la ventana
# TitleBarRollupButton=2 # [0-5]
# Retardo (ms) antes de que la ventana de la descripción emergente sea mostrada
# ToolTipDelay=500 # [0-5000]
# Mostrar el icono de una aplicación en la barra de herramientas y en la bandeja de sistema.
# ToolTipIcon=1 # 0/1
# Límite de tiempo (ms) antes de que la ventana de la descripción emergente se oculte (0 significa nunca)
# ToolTipTime=0 # [0-60000]
# Muestra las ventanas de todos los escritorios en la bandeja
# TrayShowAllWindows=1 # 0/1
# Soporte de la rueda del ratón en la navegación por el menú
# UseMouseWheel=0 # 0/1
# Máscara de bits del clic del botón de la ventana raíz para usar en el gestor de ventanas
# UseRootButtons=255 # [0-255]
# Cambia de escritorio al mover el ratón por el borde superior/inferior de la pantalla
# VerticalEdgeSwitch=0 # 0/1
# Soporte de atajos de teclado win95 (Penguin/Meta/Win_L,R Muestra el menú)
# Win95Keys=1 # 0/1
# La lista de elementos soportados en el menú de ventana (rmsnxfhualytieckw)
# WinMenuItems="rmsnxfhualytiecw"
# Añade un escritorio.
WorkspaceNames=" 1 ", " 2 ", " 3 ", " 4 "
# Tiempo (ms) antes de que la ventana de estado del escritorio virtual se oculte
# WorkspaceStatusTime=2500 # [0-2500]
# Desactiva el uso de la nueva API de XRANDR para cabezal doble (solución temporal para nvidia)
# XRRDisable=0 # 0/1
# Nombre de la pantalla principal: pantalla/salida
# XRRPrimaryScreenName=""
# Pantalla primaria donde se muestra la barra de tareas cuando se utiliza más de un monitor
# XineramaPrimaryScreen=0 # [0-63]
|
1) Apertura automática de los submenús
Para muchos usuarios acostumbrados a trabajar con menús
de despliegue automático, el método (a golpe de clic) de
apertura de los submenús que usa IceWM por defecto, se convierte en todo un martirio (no digo ya a los que somos usuarios de Fluxbox), para evitar esto sólo hay que modificar el siguiente parámetro del archivo de configuración anterior,
# Los menús siguen al ratón, incluso si los botones no están presionados
MenuMouseTracking=1 # 0/1 |
2) Apagar y reiniciar el ordenador desde IceWM
Podemos también configurar los comandos de apagado y reinicio
del ordenador en el archivo de configuración anterior, lo
primero que debemos de saber es si tenemos permisos como usuarios para
poder apagar y reiniciar el sistema. Como cada distribución es
un mundo, explico a continuación la forma de hacerlo sin
necesidad de depender de las posibles configuraciones que cada
distribución tenga predefinidas. Para ello nos servimos del
programa Sudo, abrimos el archivo /etc/sudoers y lo dejamos como se muestra a continuación.
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#
# Changing the default settings
Defaults !root_sudo
Defaults timestamp_timeout=3
# Host alias specification
# User alias specification
User_Alias USERS = jose
# Cmnd alias specification
Cmnd_Alias SHUTDOWN = /sbin/shutdown, /sbin/halt, /sbin/reboot
# User privilege specification
root ALL=(ALL) ALL
USERS ALL = NOPASSWD: SHUTDOWN
|
Donde pone jose poner el nombre de usuario de cada uno, esta configuración nos permite apagar y reiniciar el
ordenador, con sólo escribir sudo halt (apagar) ó sudo reboot (reiniciar)
en la línea de comandos o en una entrada de cualquier
menú, gestor de iconos, etc., sin necesidad de introducir la
contraseña del root.
Ahora sólo nos queda editar las entradas correspondiente del archivo de configuración, ~/.icewm/preferences, de la siguiente forma, en las líneas 613 y 616.
# Comando de apagado del sistema
ShutdownCommand="sudo halt"
# Comando de reinicio del sistema
RebootCommand="sudo reboot"
|
Reiniciamos IceWM, y comprobamos que en el submenú de Cierre de Sesión aparecen las entradas Reiniciar y Apagar.
3) Utilizar las mismas fuentes de texto para todos los temas
El tema de las fuentes de texto, es algo tan personal como la ropa interior para
un usuario de informática, si somos aficionados a cambiar de
tema cada cierto tiempo y no nos gusta que nos toquen las fuentes, lo
mejor es utilizar unas fuentes predefinidas que no sean nunca
sobreescritas por las que lleven los temas de turno. Así que
lanzamos un editor de texto cualquiera y copiamos lo que viene a
continuación:
TitleFontNameXft="DejaVu Sans:size=12"
MenuFontNameXft="DejaVu Sans:size=10:bold"
StatusFontNameXft="DejaVu Sans Mono:monospace:size=12:bold"
QuickSwitchFontNameXft="DejaVu Sans Mono:monospace:size=12:bold"
NormalButtonFontNameXft="DejaVu Sans:size=12"
ActiveButtonFontNameXft="DejaVu Sans:size=12:bold"
NormalTaskBarFontNameXft="DejaVu Sans:size=12"
ActiveTaskBarFontNameXft="DejaVu Sans:size=12:bold"
ToolButtonFontNameXft="DejaVu Sans:size=12"
NormalWorkspaceFontNameXft="DejaVu Sans:size=12"
ActiveWorkspaceFontNameXft="DejaVu Sans:size=12"
ListBoxFontNameXft="DejaVu Sans:size=12"
ToolTipFontNameXft="DejaVu Sans:size=12"
ClockFontNameXft="DejaVu Sans Mono:monospace:size=12"
TempFontNameXft="DejaVu Sans Mono:monospace:size=12"
ApmFontNameXft="DejaVu Sans Mono:monospace:size=12"
InputFontNameXft="DejaVu Sans:size=12:bold"
LabelFontNameXft="DejaVu Sans:size=12"
|
Lo guardamos con el nombre prefoverride en ~./icewm, éstas son las predefinidas que vienen en el archivo de configuración, preferences, si queremos utilizar otras o cambiar el tamaño, el método de edición es siempre el mismo, Elemento configurable="fuente:size=tamaño en dígitos:bold (si la queremos en negrita)".
Con el mismo editor de texto que hemos utilizado podemos saber las
fuentes que tenemos en nuestro sistema y su nombre, no creo que
tengamos muchos problemas para modificar estos parámetros.
Definición de los elementos de la configuración de las fuentes |
TitleFontNameXft= |
Define la fuente de texto a utilizar en la barra de título de las ventanas. |
MenuFontNameXft= |
Define la fuente de texto a utilizar en el menú de IceWM. |
QuickSwitchFontNameXft= |
Define la fuente de texto
a utilizar en el conmutador de ventana que se activa con la
combinación de teclado 'Alt + Tabulador'. |
NormalButtonFontNameXft= |
Define la fuente de texto a utilizar en los botones de la barra de tareas que no están activos. |
ActiveButtonFontNameXft= |
Define la fuente de texto a utilizar en los botones de la barra de tareas que están activos. |
NormalTaskBarFontNameXft= |
Define la fuente de texto a utilizar en los botones de la barra de tareas de las ventanas que no están enfocadas. |
ActiveTaskBarFontNameXft= |
Define la fuente de texto a utilizar en los botones de la barra de tareas de las ventanas que están enfocadas. |
ToolButtonFontNameXft= |
Define la fuente de
texto a utilizar en los botones de la barra de tareas que no
están activos. Este parámetro sólo es funcional si
no está configurado 'NormalButtonFontNameXft='. |
NormalWorkspaceFontNameXft= |
Define la fuente de
texto a utilizar en los botones conmutadores de escritorio ubicados en
la barra de tareas que no están activos. Este
parámetro sólo es funcional si no está configurado
'NormalButtonFontNameXft='. |
ActiveWorkspaceFontNameXft= |
Define la fuente de
texto a utilizar en los botones conmutadores de
escritorio ubicados en la barra de tareas que están
activos. Este parámetro sólo es funcional si no
está configurado 'ActiveButtonFontNameXft='. |
ListBoxFontNameXft= |
Define la fuente de texto a utilizar en las ventanas que muestrán listas de elementos de IceWM. |
TooltipFontNameXft= |
Define la fuente de texto a utilizar en las descripciones emergentes. |
ClockFontNameXft= |
Define la fuente de texto a utilizar en el reloj de la barra de tareas. |
TempFontNameXft= |
Define la fuente de texto a utilizar para la temperatura ACPI en el elemento del estado de la CPU en la barra de tareas. |
ApmFontNameXft= |
Define la fuente de texto a utilizar en el monitor de estado de batería de la barra de tareas. |
InputFontNameXft= |
Define la fuente de texto a utilizar en las cajas de texto de diálogo mostradas por IceWM. |
LabelFontNameXft= |
Define la fuente de texto
a utilizar en las etiquetas que se muestran cuando colocamos el puntero
del ratón sobre los iconos de la barra de inicio rápido
de IceWM. |
|