Netwmpager es una versión optimizada de la versión 1.11 del mismo nombre, escrito allá por el año 2005, por Timo Hirvonen. Compatible con las especificaciones EWMH (o NetWM), esta versión implementa escritorios virtuales divididos en
ventanas diferentes, en diferentes escritorios, o ambas cosas a la vez.
La versión anterior sólo soportaba escritorios virtuales.
El programa soporta también transparencia real (Xcompmgr)
e implementa un efecto de zoom muy interesante.
En un mundillo, el de los paginadores de escritorio independientes, en
el que no estamos sobrados de opciones a elegir, la irrupción de
esta versión optimizada, supone una entrada de aire fresco, y
una cierta renovación. Esperemos que el programa tenga el mayor
recorrido posible, y podamos disfrutar de su uso durante mucho tiempo.
Como nota informativa, reseñar que en el manual se
seguirá tratando la instalación de la versión 2.04
y no la actual, la 2.05, al introducir una nueva opción
"border_commands" en esta última, destinada a complicarle la
vida al usuario, y no a facilitársela.
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:
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 Netwmpager
para la elaboración de este documento.
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.
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 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.
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.
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.
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.
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.
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.
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.
Eliminar los símbolos innecesarios para la ejecución del programa
$ export
LDFLAGS+=" -Wl,-s"
Establecer la variable de entorno de uso de compilador para Clang
$ export CC=clang CXX=clang++
Extracción y
Configuración
$ tar jxvf netwmpager-2.04.tar.bz2
$ cd netwmpager-2.04
$ export LDFLAGS+=" -lX11"
$ ./configure
Explicación
de los comandos
export LDFLAGS+=" -lX11" : Evita un error en el enlazado final del binario ejecutable del programa.
Compilación
$ make
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"
Instalación
del archivo de configuración personal en nuestro home
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
~/.config/netwmpager/config
Es el archivo de configuración personal de Netwmpager en nuestro home.
Desinstalación
como root
1)
MODO TRADICIONAL
En el directorio de compilación ejecutamos el siguiente comando:
$ su -c "make uninstall"
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.
$ su
# tar zxvf netwmpager-2.04-scripts.tar.gz
# cd netwmpager-2.04-scripts
# ./Desinstalar_netwmpager-2.04
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 netwmpager-2.04-scripts.tar.gz
# cd netwmpager-2.04-scripts
# ./Respaldar_netwmpager-2.04
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_netwmpager-2.04
Opciones de
línea de comandos
A continuación, las opciones de línea de comandos del programa con los comentarios traducidos al español.
-display NOMBRE servidor X al que conectar -help muestra esta ayuda y termina -zoom se inicia con el zoom activado -transient establece el modo transitorio (cuando es llamado desde la bandeja de sistema) -tray paginador embebido en la bandeja de sistema -version muestra la información de la versión y termina
Fuentes:
Ejemplo: Verdana:size=7
Ejecutar `fc-list' para ver las fuentes disponibles.
Botones del ratón:
1: cambia de escritorio o página, activa la ventana, mueve la ventana a otro escritorio
2: activa/desactiva el zoom
3: mueve la ventana alrededor de las páginas y escritorios
Sirva de ejemplo el archivo
de configuración predefinido con los comentarios traducidos al español.
# copie este archivo a ~/.config/netwmpager/config
# disposición de los escritorios
# establecer todo a -1 para usar los valores predefinidos (establecidos por el gestor de ventanas)
# cols = -1
# rows = -1
# desk_cols = -1
# desk_rows = -1
# geometría de la ventana
# establecer la altura a 0 para que ésta sea calculada de forma automática
# estas opciones son relativas a una resolución de pantalla de 1920x1080 geometry = "85x24+0-0" geometry_tray = "85x24+0+0" geometry_transient = "576x162+0-0" border_width = 2 border_width_tray = 0 border_width_transient = 2
win_shift_x = 4 win_shift_y = 22
# activación de las esquinas en el ocultado automático (0 <= valor <= 15)
# 1=top,left (arriba a la izquierda) | 2=top,right (arriba a la derecha)
# | 4=bottom,left (abajo a la izquierda) | 8=bottom,right (abajo a la derecha) corner_activate = 4 corner_size_x = 80 corner_size_y = 40 auto_hide = true
# zoom (multiplicador del zoom, factor de zoom) zoom = 6 zoom_factor = 1.04663513939
# retardo entre el cambio de escritorio (en ms) switch_delay = 100
# mapeado de los botones del ratón (permutación de 123) action_buttons = 132
# ¿mostrar descripción emergente del título de la ventana? show_popups = true
# ¿mostrar las ventanas visibles en todos los escritorios en el paginador? show_sticky = false
# ¿mostrar el título de la ventana en el paginador? show_titles = true
# below, normal, commute, above layer = "commute"
# opacidad. 0.0 = transparente, 1.0 = normal
# Requiere la extensión Xcomposite de X y
# xcompmgr o un gestor tipo compiz. opacity = 1.00
# ¿permitir a las otras ventanas cubrir el paginador?
# allow_cover = false
# -- fuentes de texto --
# ejecutar `fc-list' para ver las fuentes disponibles
#
# formato: "<familia>:<opción>=<valor>:<opción>=<valor>..."
#
# algunas opciones:
# size tamaño de fuente
# weight light, medium, demibold, bold o black
# slant roman, italic o oblique
# antialias true o false
#
# Más información en: http://www.keithp.com/~keithp/render/Xft.tutorial
Definición de los elementos del archivo de configuración de Netwmpager
Opción
Descripción
Disposición de los escritorios
cols = -1 rows = -1 desk_cols = -1 desk_rows = -1
Define la disposición de los escritorios virtuales en el paginador. Un valor de -1, utiliza los valores predefinidos por el administrador de ventanas. Los parámetros cols y rows, establecen el número de columnas y filas del paginador, y los parámetros desk_cols y desk_rows, establecen el número de columnas y filas de cada escritorio virtual representado en el paginador.
Existen administradores de ventanas que soportan escritorios virtuales
multipágina, los dos parámetros últimos
están indicados para este tipo de administradores de ventanas.
Geometría de la ventana
geometry = "85x24+0-0"
Define el tamaño (85x24) y
posición (+0-0)
del paginador en la pantalla. Para la posición
se toma como referencia las coordenadas de posición horizontal y
vertical del paginador respecto a los márgenes de la pantalla.
Si se ajusta la altura a 0, ésta se calculará de forma
automática.
Unos parámetros orientativos de posición son los siguientes:
+0-0 : Abajo a la izquierda.
-0-0 : Abajo a la derecha.
+0+0 : Arriba a la izquierda.
-0+0 : Arriba a la derecha.
El tamaño por defecto que viene con el archivo de
configuración, está indicado para monitores
panorámicos (16:9), lo que significa que en monitores CRT (4:3),
el paginador se mostrará de forma desproporcionada a la
resolución del monitor, con lo que aparecerá una
línea muy fina, en la que se ve parte del fondo de la pantalla,
en el borde derecho del paginador.
Esto se soluciona, utilizando un tamaño (4:3), por ejemplo:
80x24 o 120x32, que es el que aparece en las capturas de pantalla de
este manual.
geometry_tray = "85x24+0+0"
Define el tamaño (85x24) y
posición (+0+0) del paginador en la pantalla, cuando éste se
ejecuta en la bandeja de sistema. Las pruebas realizadas en este modo
de funcionamiento no han sido satisfactorias, en el único
entorno que ha funcionado es en JWM, y no de forma correcta.
Cuando ejecutamos el paginador con la opción -tray,
éste muestra una miniatura en la bandeja de sistema del entorno
o utilidad que soporte esta característica. Cuando colocamos el
puntero del ratón sobre la miniatura, se muestra el paginador
como una ventana emergente, el tamaño de esa ventana es el que
definimos en este apartado del archivo de configuración. Si se
ajusta la altura a 0, ésta se calculará de forma
automática.
geometry_transient = "576x162+0-0"
Define el tamaño (575x162) y
posición (+0-0)
del paginador en la pantalla, cuando éste es lanzado desde la
bandeja de sistema, haciendo clic en la miniatura del paginador con el
botón derecho del ratón. Si se ajusta la altura a 0,
ésta se calculará de forma automática.
border_width = 2
Define la anchura del borde del paginador en píxeles.
border_width_tray = 0
Define la anchura del
borde del paginador en píxeles, cuando éste se muestra de
forma emergente en la bandeja de sistema.
border_width_transient = 2
Define la anchura del borde del paginador en píxeles, cuando
éste es lanzado desde la bandeja de sistema, haciendo clic en la
miniatura del paginador con el botón derecho del ratón.
win_shift_x = 4 win_shift_y = 22
Define las coordenadas de
desplazamiento horizontal y vertical de la ventana del paginador,
respecto a los márgenes de la pantalla, cuando éste se
muestra ampliado con el efecto zoom activado.
Ocultado automático
corner_activate =4
Define el espacio de
la
pantalla en el que al colocar el puntero del ratón,
activará la visualización del paginador, cuando
está activada la función de
ocultado automático.
Los valores númericos posibles tienen que estar comprendidos entre 0 y 15, tomando como referencia los siguientes valores orientativos: 1 (arriba a la izquierda), 2 (arriba a la derecha), 4 (abajo a la izquierda) y 8 (abajo a la derecha).
corner_size_x =80
Define las coordenadas
de posición horizontal del espacio de activación del
ocultado automático del paginador.
corner_size_y =80
Define
las coordenadas de posición vertical del espacio de
activación del ocultado automático del paginador.
auto_hide =true
Si lo ponemos en false, desactivaremos el ocultado automático del paginador.
Efecto de zoom
zoom = 6
Define el valor
numérico por el que se multiplicará el tamaño del
paginador, cuando esté el zoom activado.
zoom_factor = 1.04663513939
Define el factor de zoom aplicable al efecto de zoom del paginador.
Opciones varias
switch_delay = 100
Define el retardo en milisegundos antes de que el paginador conmute el escritorio seleccionado.
action_buttons = 132
Define el mapeado de
los botones del ratón, permitiendo al usuario cambiar el orden
establecido por la configuración del programa, en lo que las
acciones de éstos concierne.
show_popups = true
Si lo ponemos en false, desactivaremos la descripción emergente del título de las ventanas representadas en el paginador.
show_sticky = false
Si lo ponemos en true, las ventanas visibles en todos los escritorios, se mostrarán también en el paginador.
show_titles = true
Si lo ponemos en false, desactivaremos la visualización del título de las ventanas en el paginador.
layer = "commute"
Define la disposición de la ventana del paginador respecto a las otras ventanas del escritorio. Los valores posibles son:
* below: Siempre por debajo del resto de las ventanas.
* normal: El paginador es tratado como una ventana normal. Algo nada recomendable para un paginador.
* commute: Es el valor predefinido y recomendable, para no tener problemas con su integración en el escritorio.
* above: Siempre por encima del resto de las ventanas.
opacity = 1.00
Define la opacidad del paginador. Los valores en coma flotante, pueden estar comprendidos entre 0.0 y 1.0. Se requiere del uso de un gestor de composición de muestra para el servidor gráfico X, como xcompmgr para que esta opción sea funcional.
allow_cover = false
Esta opción
está comentada (#) por defecto, si la descomentamos, el resto de
ventanas no podrán cubrir la ventana del paginador.
Fuentes de texto
popup_font = "Verdana:size=8"
Define la fuente de texto
a utilizar en la descripción emergente del título de
las ventanas representadas en el paginador. Para saber el nombre de las
fuentes disponibles podemos ejecutar el comando 'fc-list' desde una
ventana de terminal, o en su lugar, y de una manera más
gráfica, desde cualquier editor de texto que permita
selección de fuente de texto. Para las opciones de
configuración de las fuentes de texto, más
información en: http://www.keithp.com/~keithp/render/Xft.tutorial.
Un ejemplo:
popup_font = "DejaVu Sans:size=9:antialias=true"
window_font = "Verdana:size=7"
Define la fuente de texto a utilizar en el título de las ventanas representadas en el paginador.
Define el color de la
página activa del paginador. Podemos obtener los valores
hexadecimales en los selectores de color ubicados en esta
sección, teniendo en cuenta que un valor de por ejemplo,
FFFFFF, tendremos que escribirlo en el archivo de configuración
como: "rgb:FF/FF/FF" o "rgb:ff/ff/ff", da igual que sea en mayúscula o minúscula.
inactive_page_color = "rgb:ac/ac/ac"
Define el color de la página inactiva del paginador.
win_border_color = "rgb:0/0/0"
Define el color del borde de la ventana representada en el paginador.
pager_border_color = "rgb:c0/c0/c0"
Define el color del borde del paginador.
grid_color = "rgb:ff/ff/ff"
Define el color de la rejilla del paginador.
desk_grid_color = "rgb:ff/ff/40"
Define el color de la rejilla del escritorio virtual representado en el paginador.
active_win_color = "rgb:3f/c0/ff"
Define el color de la ventana activa representada en el paginador.
active_win_font_color = "rgb:0/0/0"
Define el color de la fuente de texto del título de la ventana activa representada en el paginador.
inactive_win_color = "rgb:f6/f6/f6"
Define el color de la fuente de texto del título de la ventana inactiva representada en el paginador.
inactive_win_font_color = "rgb:0/0/0"
Define el color de la fuente de texto del título de la ventana inactiva representada en el paginador.
popup_color = "rgb:ff/ff/40"
Define el color de la descripción emergente del título de las ventanas representadas en el paginador.
popup_font_color = "rgb:0/0/0"
Define el color de la
fuente de texto de la descripción emergente del título de
las ventanas representadas en el paginador.
Acciones del ratón (modificables)
Botón
Acción
Botón izquierdo del ratón
Clic en la
página o escritorio virtual del paginador, conmuta a la
página o escritorio seleccionado del administrador de ventanas
en curso. Clic en la ventana representada en el paginador, activa el
enfoque de la misma.
Botón izquierdo del ratón presionado
Clic en la ventana representada en el paginador, desplaza la misma a la página o escritorio virtual indicado.
Botón central del ratón presionado
Clic en la ventana
representada en el paginador, la desplaza alrededor de todas las
páginas o escritorios virtuales representados en el paginador.
Botón derecho del ratón
Clic sobre la ventana del paginador, activa y desactiva el efecto de zoom.
Rueda del ratón
Con el puntero colocado sobre el paginador, amplía y reduce el tamaño de éste de forma infinita.
Configurar
el inicio de Netwmpager
Aunque se puede utilizar en cualquier administrador de ventanas, los
ejemplos abajos explicados tratan de administradores que no soportan
directamente paginador. El tamaño y posición utilizados en las capturas de pantalla, es de 120x32+0-0.
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 &
wmix &
idesk & sleep 5; netwmpager &
Para que PyPanel,
no muestre el paginador en la barra de tareas, como si fuera una
ventana normal, abrimos el archivo de configuración del mismo, ~/.pypanelrc, y añadimos lo siguiente en la sección correspondiente.
#------------------------------------------------------------------------------
# Hidden Application List: Apps listed here will not be display on the panel
# The application name is its WM_CLASS name, use 'xprop' to find WM_CLASS
# Ex: ["xmms", "xine", "gDesklets"]
#------------------------------------------------------------------------------
HIDE_LIST = ["netwmpager"]
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
5) 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 comando de ejecución al archivo .xinitrc que se
encuentra en nuestro home
(las opciones de posición irán en función del
entorno que estemos utilizando) si no existe lo creamos, y
añadimos lo siguiente:
sleep 5; netwmpager &
exec pekwm
6) 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:
sleep 5; netwmpager &
exec pekwm
Para otros administradores de ventanas, consultar sus
respectivos
manuales, en lo que haga referencia a la ejecución de
programas
al inicio de estos.
Iniciamos Netwmpager
Netwmpager + Openbox
Netwmpager + Openbox + Efecto Zoom
Netwmpager + Openbox + Transparencia Real (0.75)
Netwmpager + Openbox + Transparencia Real (0.75) + Efecto Zoom