Manualinux
http://www.nvu.com http://www.gimp.org InicioPresentaciónActualizacionesManualesDescargasNoticiasAgradecimientoEnlaces

Entornos GráficosAplicaciones

Administradores de SesionesAdministradores de VentanasEscritoriosUtilidades de Escritorio

Administradores de Ventanas - JWMAdministradores de Ventanas - Pekwm

Administradores de Ventanas - Openbox

Página - 1Página - 2




Administradores de Ventanas - Openbox




Copyright

Copyright © José Luis Lara Carrascal  2006-2017   http://manualinux.eu



Sumario

Introducción
Características
Instalación
Directorio de configuración personal
PyPanel
XbindKeys
Fondo de Escritorio
Añadir aplicaciones al inicio de Openbox
Configurar el inicio de Openbox
Iniciamos Openbox
ObConf
Traducción al Español alternativa de ObConf
Obmenu
Personalizar el comportamiento de las ventanas
Enlaces




Introducción  

Openbox es otro administrador de ventanas basado en el código de Blackbox, a diferencia de éste no tiene barra de tareas, por lo que necesitaremos un programa auxiliar que funcione como panel y barra de tareas. Además instalaremos también todos los programas auxiliares expresamente desarrollados para este minimalista entorno gráfico, no muy conocido por la mayoría de usuarios de GNU/Linux.



Características    

* Cumple las normas ICCCM y EWMH
* Rápido y ligero.
* Soporte de atajos de teclado.
* Acciones configurables del ratón.
* Resistencia de ventanas.
* Soporte multipantalla Xinerama.
* Soporte de scripts ejecutables en los menús (pipemenús).



Instalación  

Dependencias

Herramientas de Compilación


Entre paréntesis la versión con la que se ha compilado Openbox para la elaboración de este documento.

* GCC - (7.1.0) o Clang - (4.0.0)
* Gawk - (4.1.4)
* M4 - (1.4.18)
* Libtool - (2.4.6)
* Make - (4.2.1)
* Automake - (1.15)
* Gettext - (0.19.8.1)
* Autoconf - (2.69)
* Pkg-config - (0.29.2)

Librerías de Desarrollo

* Xorg - (7.7 / xorg-server 1.19.3)
   LibICE - (1.0.9)
   LibSM - (1.2.2)
   LibX11 - (1.6.5)
   LibXau - (1.0.8)
   LibXcursor - (1.1.14)
   LibXext - (1.3.3)
   LibXft - (2.3.2)
   LibXinerama - (1.1.3)
   LibXrandr - (1.5.1)
* Fontconfig - (2.12.1)
* GLib - (2.52.2)
* Imlib2 - (1.4.10)
* Librsvg - (2.40.17)
* Libxml2 - (2.9.4)
* Pango - (1.40.5)
* Startup-Notification - (0.12)



Descarga

openbox-3.6.1.tar.xz

Optimizaciones

$ export {C,CXX}FLAGS='-O3 -march=amdfam10 -mtune=amdfam10'

Donde pone amdfam10 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.
Intel
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 con soporte de instrucciones X87, MMX, AVX, FXSR, CMPXCHG16B, POPCNT, AES, PCLMUL, XSAVE, XSAVEOPT, LAHFSAHF, RDRAND, F16C, FSGSBase, AVX2, BMI, BMI2, FMA, LZCNT, MOVBE, INVPCID, VMFUNC, RTM, HLE, SlowIncDec, ADX, RDSEED, SMAP, MPX, XSAVEC, XSAVES, SGX, CLFLUSHOPT, AVX512, CDI, DQI, BWI, VLX, PKU, PCOMMIT, CLWB, VBMI, IFMA y SHA. Esta opción está disponible a partir de Clang 3.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.
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.
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.
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.
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.
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.
skx Intel Skylake Server con soporte de instrucciones X87, MMX, AVX, FXSR, CMPXCHG16B, POPCNT, AES, PCLMUL, XSAVE, XSAVEOPT, LAHFSAHF, RDRAND, F16C, FSGSBase, AVX2, BMI, BMI2, FMA, LZCNT, MOVBE, INVPCID, VMFUNC, RTM, HLE, SlowIncDec, ADX, RDSEED, SMAP, MPX, XSAVEC, XSAVES, SGX, CLFLUSHOPT, AVX512, CDI, DQI, BWI, VLX, PKU, PCOMMIT y CLWB. Esta opción está disponible a partir de Clang 3.5. A partir de Clang 3.9 se utiliza también la definición skylake-avx512.
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
slm Intel Silvermont con soporte de instrucciones X87, MMX, SSE42, FXSR, CMPXCHG16B, MOVBE, POPCNT, PCLMUL, AES, SlowDivide64, CallRegIndirect, PRFCHW, SlowLEA, SlowIncDec, SlowBTMem y LAHFSAHF. Esta opción está disponible a partir de Clang 3.4. A partir de Clang 3.9 se utiliza también la definición silvermont.
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.
x86-64 Procesadores AMD y compatibles con soporte de instrucciones x86-64, SSE2 y extensiones 64-bit.
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.
VIA
c3 VIA C3 con soporte de instrucciones MMX y 3DNow! (no se implementa planificación para este chip).
c3-2 VIA C3-2 (Nehemiah/C5XL) con soporte de instrucciones MMX y SSE (no se implementa planificación para este chip).
c7 VIA C7 (Esther) con soporte de instrucciones MMX, SSE, SSE2 y SSE (no se implementa planificación para este chip). Esta opción está disponible a partir de GCC 7.
eden-x2 VIA Eden X2 con soporte de instrucciones x86-64, MMX, SSE, SSE2 y SSE3 (no se implementa planificación para este chip). Esta opción está disponible a partir de GCC 7.
eden-x4 VIA Eden X4 con soporte de instrucciones MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX y AVX2 (no se implementa planificación para este chip). Esta opción está disponible a partir de GCC 7.
esther VIA Eden Esther con soporte de instrucciones MMX, SSE, SSE2 y SSE3 (no se implementa planificación para este chip). Esta opción está disponible a partir de GCC 7.
nano VIA Nano genérico con soporte de instrucciones x86-64, MMX, SSE, SSE2, SSE3 y SSSE3 (no se implementa planificación para este chip). Esta opción está disponible a partir de GCC 7.
nano-1000 VIA Nano 1xxx con soporte de instrucciones x86-64, MMX, SSE, SSE2, SSE3 y SSSE3 (no se implementa planificación para este chip). Esta opción está disponible a partir de GCC 7.
nano-2000 VIA Nano 2xxx con soporte de instrucciones x86-64, MMX, SSE, SSE2, SSE3 y SSSE3 (no se implementa planificación para este chip). Esta opción está disponible a partir de GCC 7.
nano-3000 VIA Nano 3xxx con soporte de instrucciones x86-64, MMX, SSE, SSE2, SSE3, SSSE3 y SSE4.1 (no se implementa planificación para este chip). Esta opción está disponible a partir de GCC 7.
nano-x2 VIA Nano Dual Core con soporte de instrucciones x86-64, MMX, SSE, SSE2, SSE3 y SSSE3 (no se implementa planificación para este chip). Esta opción está disponible a partir de GCC 7.
nano-x4 VIA Nano Quad Core con soporte de instrucciones x86-64, MMX, SSE, SSE2, SSE3 y SSSE3 (no se implementa planificación para este chip). Esta opción está disponible a partir de GCC 7.
IDT
winchip2 IDT Winchip2, que equivale a un i486 con soporte de instrucciones MMX y 3DNow!.
winchip-c6 IDT Winchip C6, que equivale a un i486 con soporte de instrucciones MMX.

Optimizaciones adicionales

Optimizaciones adicionales
GCC
Graphite
$ export {C,CXX}FLAGS+=' -floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block'
LTO
$ export {C,CXX}FLAGS+=' -fuse-linker-plugin -flto=2'
Donde pone 2 se indica el número de núcleos de 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 {C,CXX}FLAGS+=' -flto'
ThinLTO
$ export {C,CXX}FLAGS+=' -flto=thin'
La aplicación de esta optimización es alternativa a la tradicional LTO, a partir de Clang 3.9, y por lo tanto, no es combinable con la misma.

Parámetros adicionales

Parámetros adicionales de eliminación de avisos específicos en el proceso de compilación
Clang
$ export {C,CXX}FLAGS+=' -Qunused-arguments'

Establecer la variable de entorno de uso de compilador para Clang
$ export {CC,CXX}=clang
Si utilizamos Clang con Ccache, tendremos que establecer la variable de entorno correspondiente de Ccache de uso de compilador.
$ export CCACHE_CC=clang

Extracción y Configuración  Bloc de Notas Información general sobre el uso de los comandos

$ tar Jxvf openbox-3.6.1.tar.xz
$ cd openbox-3.6.1
$ ./configure --disable-dependency-tracking --prefix=/usr --sysconfdir=/etc --disable-static

Explicación de los comandos

--disable-dependency-tracking : Acelera el tiempo de compilación.
--prefix=/usr : Necesario si queremos que Openbox encuentre los temas al iniciarse.

--sysconfdir=/etc
: Instala los archivos de configuración en /etc/xdg/openbox.
--disable-static : Desactiva la compilación de las librerías estáticas, al no ser necesarias para la ejecución del programa.

Compilación

$ make

Parámetros de compilación opcionales  

V=1 : Muestra más información en el proceso de compilación.

-j2
: Si tenemos un procesador de doble núcleo (dual-core), y el kernel está optimizado para el mismo y es SMP, con este parámetro aumentaremos el número de procesos de compilación simultáneos a un nivel de 2 y aceleraremos el tiempo de compilación del programa de forma considerable.
-j4 : Lo mismo que arriba pero con procesadores de 4 núcleos (quad-core).

Instalación como root

$ su
# make install-strip
# ldconfig -v

Borrar las locales adicionales instaladas con la utilidad BleachBit  

# bleachbit -c system.localizations

Instalación de los archivos de configuración personal en nuestro home

$ cp -rf /etc/xdg/openbox ~/.config

Si ya tenemos instalado Openbox con el menú configurado sólo habrá que copiar el archivo rc.xml para actualizar la configuración a la nueva versión que se instale. Para cerciorarnos de que el nuevo archivo de configuración tiene algo nuevo respecto al que nosotros tenemos podemos copiar el archivo a un directorio temporal, abrirlo con un editor de texto y compararlo con el rc.xml que tenemos en nuestro home. Beediff es un excelente programa para la comparación de archivos, y en la web se encuentra disponible la versión en español del mismo.

Estadísticas de Compilación e Instalación de Openbox

Estadísticas de Compilación e Instalación de Openbox
CPU AMD Athlon(tm) II X2 260 Processor
MHz 3214.610
RAM
2048 MB
Sistema de archivos XFS
Versión de Glibc 2.25
Enlazador dinámico GNU gold (Binutils 2.28) 1.14
Compilador Clang 4.0.0 + Ccache 3.3.4
Parámetros de optimización -03 -march=amdfam10 -mtune=amdfam10 -mllvm -polly -mllvm -polly-vectorizer=stripmine -mllvm -polly-position=before-vectorizer -flto=thin
Parámetros de compilación V=1 -j2
Tiempo de compilación 1' 17"
Archivos instalados 113
Mostrar/Ocultar la lista de archivos instalados
Enlaces simbólicos creados 4
Mostrar/Ocultar la lista de enlaces simbólicos creados
Ocupación de espacio en disco 1,2 MB

Consumo inicial de CPU y RAM de Openbox
 
Consumo inicial de CPU y RAM de Openbox
Proceso
CPU Memoria física
openbox 0 % 16,6 MB

Directorio de configuración personal   

~/.config/openbox Es el directorio de configuración personal de Openbox en nuestro home.
~/.config/openbox/autostart Es el script de inicio automático de aplicaciones. La forma de añadirlas la explico en este apartado del manual. Desde la versión 3.5.0, se le ha quitado la extensión ".sh", y pasa a tener permisos de ejecución.
~/.config/openbox/environment Desde la versión 3.5.0, se incluye este archivo de configuración, mediante el cual podemos establecer variables de entorno personalizadas.
~/.config/openbox/rc.xml Es el archivo de configuración de Openbox y se edita con ObConf.
~/.config/openbox/menu.xml Es el archivo de configuración del menú de Openbox y se edita con Obmenu. Desde la versión 3.5.0, soporta iconos de las aplicaciones (y desde la 3.5.1, también en formato SVG). Un ejemplo:

<item label="VLC media player" icon="/usr/share/icons/hicolor/32x32/apps/vlc.png">
 <action name="Execute">
  <execute>
   vlc
  </execute>
 </action>
</item>

openbox-icono

ObMenu no soporta iconos de las aplicaciones, por lo que las entradas de los mismos las tendremos que incluir de forma manual.
~/.themes Openbox utiliza el mismo directorio para los temas que GTK+

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.

openbox-3.6.1-scripts.tar.gz

$ su
# tar zxvf openbox-3.6.1-scripts.tar.gz
# cd openbox-3.6.1-scripts
# ./Desinstalar_openbox-3.6.1

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 openbox-3.6.1-scripts.tar.gz
# cd openbox-3.6.1-scripts
# ./Respaldar_openbox-3.6.1

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_openbox-3.6.1



PyPanel 

Openbox no tiene barra de tareas, así que lo mejor es añadirle un panel, podríamos usar fbpanel, pero elijo uno más desconocido escrito en Python, se llama PyPanel.

Características

* Soporte de transparencias con sombreado y tintado.
* Configuración de tamaño, colocación y diseño.
* Soporte de fuentes truetype con coloreado y sombreado.
* Botón de eventos/acciones.
* Reloj y nombre de Escritorio.
* Ocultado automático.
* Lanzador de aplicación.
* Soporte de iconos de aplicaciones.

Instalación

Dependencias

Herramientas de Compilación


Entre paréntesis la versión con la que se ha compilado PyPanel para la elaboración de este documento.

* GCC - (7.1.0)

Librerías de Desarrollo

* Xorg - (7.7 / xorg-server 1.19.3)
* Freetype2 - (2.8)
* Imlib2 - (1.4.10)
* Python - (2.7.13)
* Python Xlib - (0.19)
* Zlib - (1.2.11)



Descarga

PyPanel-2.4.tar.gz

Optimizaciones

Optimizaciones adicionales

Optimizaciones adicionales
Graphite
$ export {C,CXX}FLAGS+=' -floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block'
LTO
$ export {C,CXX}FLAGS+=' -fuse-linker-plugin -flto=2'
Donde pone 2 se indica el número de núcleos de nuestro procesador, si sólo tiene uno, utilizar el parámetro -flto

Extracción y Compilación

$ tar zcvf PyPanel-2.4.tar.gz
$ cd PyPanel-2.4
$ python setup.py build


Instalación como root

$ su -c "python setup.py install"

Estadísticas de Compilación e Instalación de PyPanel

Estadísticas de Compilación e Instalación de PyPanel
CPU AMD Athlon(tm) II X2 260 Processor
MHz 3214.610
RAM 2048 MB
Sistema de archivos XFS
Versión de Glibc 2.25
Enlazador dinámico GNU gold (Binutils 2.28) 1.14
Compilador GCC 7.1.0 + Ccache 3.3.4
Parámetros de optimización -03 -march=amdfam10 -mtune=amdfam10 -floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block -fuse-linker-plugin -flto=2
Tiempo de compilación 6"
Archivos instalados 6
Mostrar/Ocultar la lista de archivos instalados
Ocupación de espacio en disco 96 KB

Consumo inicial de CPU y RAM de PyPanel

Consumo inicial de CPU y RAM de PyPanel
Proceso
CPU Memoria física
pypanel 0 % 15,3 MB

Archivo de configuración personal

~/.pypanelrc Es el archivo de configuración personal de PyPanel en nuestro home.

Desinstalación como root

1) MODO TRADICIONAL

*************************

2) MODO MANUALINUX  

PyPanel-2.4-scripts.tar.gz

$ su
# tar zxvf PyPanel-2.4-scripts.tar.gz
# cd PyPanel-2.4-scripts
# ./Desinstalar_PyPanel-2.4

Copia de Seguridad como root

$ su
# tar zxvf PyPanel-2.4-scripts.tar.gz
# cd PyPanel-2.4-scripts
# ./Respaldar_PyPanel-2.4

Restaurar la Copia de Seguridad como root

$ su
# cd /var/copibin/restaurar_copias
# ./Restaurar_PyPanel-2.4



Configuración de PyPanel >> ~/.pypanelrc  Bloc de Notas Nota importante

A continuación pongo un ejemplo del archivo de configuración de PyPanel con los comentarios traducidos al español

#------------------------------------------------------------------------------
#
#                         Configuración de PyPanel v2.4
#
# Este archivo de configuración es un script de Python que es ejecutado cuando
# PyPanel es iniciado. Para que PyPanel se inicie propiamente, compruebe que este
# archivo esté correctamente formateado en Python y no contenga errores de sintaxis.
#------------------------------------------------------------------------------
VERSION         = 2.4           # Versión del archivo de configuración

#------------------------------------------------------------------------------
# Colores: El formato es hexadecimal triplicado - 0xrrggbb
#------------------------------------------------------------------------------
BG_COLOR        = "0xd6d6d6"    # El color del fondo del Panel y el del tintado.
TASK_COLOR      = "0x000000"    # El color del nombre de la ventana cuando no está enfocada.
FOCUSED_COLOR   = "0x1826de"    # El color del nombre de la ventana cuando está enfocada.
SHADED_COLOR    = "0x808080"    # El color del nombre de la ventana cuando está enrollada.
MINIMIZED_COLOR = "0x808080"    # El color del nombre la ventana cuando está minimizada.
DESKTOP_COLOR   = "0x000000"    # El color del nombre del Escritorio.
CLOCK_COLOR     = "0x000000"    # El color del texto del Reloj.
LINE_COLOR      = "0x606060"    # El color de la línea vertical.

# Colores de la sombra arrojada del texto
TASK_SHADOW_COLOR      = "0xffffff"
FOCUSED_SHADOW_COLOR   = "0xffffff"
SHADED_SHADOW_COLOR    = "0xffffff"
MINIMIZED_SHADOW_COLOR = "0xffffff"
DESKTOP_SHADOW_COLOR   = "0xffffff"
CLOCK_SHADOW_COLOR     = "0xffffff"

#------------------------------------------------------------------------------
# Opciones de ubicación y espaciado del Panel: Medidas en píxeles
#------------------------------------------------------------------------------
P_LOCATION      = 1             # Posición del Panel: 0 = arriba, 1 = abajo
P_WIDTH         = 944           # Anchura del Panel: 0 = Usa toda la pantalla completa a lo ancho
P_START         = 40            # Coordenada X de inicio del Panel
P_SPACER        = 6             # Espacio entre los objetos del Panel
P_HEIGHT        = 24            # Altura del Panel

#------------------------------------------------------------------------------
# Opciones de tamaño de los iconos: Medidas en píxeles
#------------------------------------------------------------------------------
I_HEIGHT        = 16            # Altura del icono de la aplicación que se muestra en el Panel
I_WIDTH         = 16            # Anchura del icono del la aplicación que se muestra en el Panel
APPL_I_HEIGHT   = 24            # Altura de icono lanzador de la aplicación
APPL_I_WIDTH    = 24            # 
Anchura de icono lanzador de la aplicación
TRAY_I_HEIGHT   = 24            # Altura del icono mostrado en la bandeja del sistema (normalmente 16 o 24)
TRAY_I_WIDTH    = 24            # 
Anchura del icono mostrado en la bandeja del sistema (normalmente 16 o 24)
                                # Si TRAY_I_WIDTH está ajustado a 0, se utilizará la anchura especificada por
                                # la aplicación que se ubique en la bandeja del sistema
                               
#------------------------------------------------------------------------------
# Formato del reloj del Panel: 'man strftime' para una detallada información acerca del formato.
#------------------------------------------------------------------------------
CLOCK_FORMAT    = "%d-%m-%Y %H:%M"    # Ejemplo: 2004-09-25 17:45
                       
#------------------------------------------------------------------------------
# Retardo del reloj: Los segundos entre cada actualización del reloj durante los periodo de inactividad
#------------------------------------------------------------------------------
CLOCK_DELAY     = 20

#------------------------------------------------------------------------------
# Listado de aplicaciones a ocultar: Las aplicaciones listadas aquí no serán mostradas en el panel.
# El nombre de la aplicación es el nombre WM_CLASS,usar 'xprop' para averiguar WM_CLASS
# Ejemplo: ["xmms", "xine", "gDesklets"]
#------------------------------------------------------------------------------
HIDE_LIST       = []           
                  
#------------------------------------------------------------------------------
# Tamaño del Panel cuando está oculto: Tamaño del panel cuando está minimizado/oculto
#------------------------------------------------------------------------------
HIDDEN_SIZE     = 2

#------------------------------------------------------------------------------
# Fuente del texto del Panel: Esta opción acepta cualquiera: tradicional o Xft
# Ejemplo: "-schumacher-clean-medium-r-normal-*-12-*-*-*-*-*-*-*"
#     "aquafont-8"
#------------------------------------------------------------------------------
FONT            = "DejaVuSans-10"

#------------------------------------------------------------------------------
# Mostrar todas las aplicaciones: Muestra las aplicaciones en todos los escritorios o sólo en el actual
# 0: Desactivado - Sólo las aplicaciones del escritorio actual serán mostradas
# 1: Activado  - Las aplicaciones seleccionadas son movidas al escritorio actual. 
# 2: Activado  - El escritorio actual es cambiado al escritorio donde están las aplicaciones seleccionadas.
#------------------------------------------------------------------------------
SHOWALL         = 0             # 0, 1 or 2 - vea las descripciones anteriores

#------------------------------------------------------------------------------
# Mostrar las aplicaciones Minimizadas/Iconificadas: Muestra sólo las aplicaciones minimizadas
# o todas las aplicaciones
# 0: Desactivado - Muestra todas las aplicaciones en el panel
# 1: Activado  - Muestra sólo las aplicaciones minimizadas en el panel
#------------------------------------------------------------------------------
SHOWMINIMIZED   = 0

#------------------------------------------------------------------------------
# Listado de icono de aplicación: Listado de iconos personalizados para aplicaciones específicas
El nombre de la aplicación es el nombre WM_CLASS,usar 'xprop' para averiguar WM_CLASS
#
# La entrada
"default" es usada para las aplicaciones que no tienen icono. Si a la izquierda está "",
# PyPanel usará el icono predefinido distribuido con el código fuente.
#
# Añadir entradas usando el siguiente formato -
#     "<nombre de la aplicación>" : "<ruta completa al icono>",
#------------------------------------------------------------------------------
ICON_LIST       = {
                   "default" : "",
                   "example" : "/usr/share/imlib2/data/images/audio.png",
                  }
                 
#------------------------------------------------------------------------------
# Listado del lanzador de aplicación: Lista ordenada de los iconos y las aplicaciones
# para el lanzador de aplicación.
#                      
#
Añadir entradas usando el siguiente formato -
#     ("<ejecutable>", "<ruta completa al icono>")
#------------------------------------------------------------------------------
LAUNCH_LIST     = [
                   ("gimp", "/usr/share/imlib2/data/images/paper.png"),
                   ("mrxvt","/usr/local/share/pixmaps/mrxvt.png"),
                   ("firefox", "/usr/share/icons/firefox.png"),
                  ]

#------------------------------------------------------------------------------
# Nivel de transparencia del Fondo del Panel: 0 (Totalmente translúcido) -> 255 (Totalmente opaco)
# BG_COLOR es usado para el tintado
#------------------------------------------------------------------------------
SHADE           = 220

#------------------------------------------------------------------------------
# Opciones varias: 1 = Activado/Si, 0 = Desactivado/No
#------------------------------------------------------------------------------
ABOVE           = 1             # El Panel está siempre por encima de las otras aplicaciones
APPICONS        = 1             # Muestra los iconos de la aplicación
AUTOHIDE        = 0             # El ocultado automático usa el cronómetro de CLOCK_DELAY 
SHADOWS         = 0             # Muestra sombras en el texto
SHOWLINES       = 0             # Muestra líneas de separación del objeto
SHOWBORDER      = 0             # Muestra un borde alrededor del panel

#------------------------------------------------------------------------------
# Nombres de los Escritorios: Configura los nombres de sus escritorios
# Si la opción es[], PyPanel intentará usar el nombre especificado por
# el servidor X, si eso falla usará el número del escritorio como un nombre
# Ejemplo. ["Uno", "Dos", "Tres", "Cuatro", "Cinco", "Seis", "Siete", "Ocho"]
#------------------------------------------------------------------------------
DESKTOP_NAMES   = ["Uno", "Dos", "Tres", "Cuatro"]

#------------------------------------------------------------------------------
# Disposición del Panel:       -----------------------------------
#                     [  1  ][  2  ][  3  ][  4  ][  5  ]
#                     -----------------------------------
#
# La disposición del Panel está dividida en 5 secciones numeradas: 1, 2, 3, 4 o 5 cómo se
# muestra en el diagrama anterior. Cada uno de los objetos siguientes puede habilitarse 
# asignándole un número de la sección o deshabilitarse asignándole 0:
#------------------------------------------------------------------------------
DESKTOP         = 1             # Sección del nombre del Escritorio
TASKS           = 4             # Sección de los nombres de las Tareas
TRAY            = 3             # Sección de la bandeja del sistema
CLOCK           = 5             # Sección del Reloj
LAUNCHER        = 2             # Sección del lanzador de aplicación

#------------------------------------------------------------------------------
#                       Definiciones de la función de eventos del Botón
#------------------------------------------------------------------------------
# Clic izquierdo   - botón 1
Clic central     - botón 2
# Clic derecho     - botón 3
# Rueda arriba     - botón 4
# Rueda abajo      - botón 5
#
# changeDesktop(x)
# - Cambia de Escritorio: Incrementa o disminuye el escritorio actual por una cantidad "x"
#
# toggleShade(task)
# - Enrolla o Desenrrolla la ventana de una aplicación
#
# toggleHidden()
# - Minimiza el panel arriba o abajo en función de la posición de inicio
#
# toggleMinimize(task, traise=1)
# - 
Minimiza o No la ventana de una aplicación y opcionalmente la eleva 
#
# taskRaise(task, focus=1)
# - Eleva la ventana de una aplicación a la cabeza de la lista de ventanas y opcionalmente la enfoca
#
# taskLower(task, focus=0)
# - Desciende la ventana de una aplicación a la cola de la lista de ventanas y opcionalmente la enfoca
#
# taskFocus(task)
# - Da el enfoque a la aplicación seleccionada, si tiene el enfoque, entonces la minimiza
#
# showDesktop()
# - Alterna entre ocultar y mostrar las ventanas de todas las aplicaciones
#------------------------------------------------------------------------------

#----------------------------------
def desktopButtonEvent(pp, button):
#----------------------------------
    """ 
Secuencias de eventos del botón para el objeto escritorio del Panel """
       
    if button == 1:
        pp.changeDesktop(-1)
    elif button == 2:
        pp.changeDesktop(2)
    elif button == 3:
        pp.changeDesktop(1)
    elif button == 4:
        pp.changeDesktop(1)
    elif button == 5:
        pp.changeDesktop(-1)
       
#--------------------------------
def clockButtonEvent(pp, button):
#--------------------------------
    """ Secuencias de eventos del botón para el objeto reloj del Panel """
   
    if button == 1:
        os.system("xclock &")
    elif button == 2:
        pass
    elif button == 3:
        pp.toggleHidden() 
    elif button == 4:
        pp.showDesktop()
    elif button == 5:
        pp.showDesktop()
       
#--------------------------------
def panelButtonEvent(pp, button):
#--------------------------------
    """ Secuencias de eventos del botón para el Panel
con las tareas desactivadas """
   
    if button == 1:
        pass
    elif button == 2:
        pass
    elif button == 3:
        pass
    elif button == 4:
        pass
    elif button == 5:
        pass
       
#-------------------------------------
def taskButtonEvent(pp, button, task):
#-------------------------------------
    """
Secuencias de eventos del botón para las tareas del Panel  """
   
    if button == 1:
        pp.taskFocus(task)
    elif button == 2:
        # Destroy the application
        task.obj.destroy()
    elif button == 3:
        # Ejemplo. - La ventana de XMMS no se enrolla, para que nosotros queramos minimizarla en lugar de y
        # aún use el botón 3 para enrollar las ventanas de otras aplicaciones
        # task.tclass es el nombre de la clase de tarea (WM_CLASS)
        if "xmms" in task.tclass:
            pp.toggleMinimize(task)
        else:
            pp.toggleShade(task)
    elif button == 4:
        pp.taskRaise(task, focus=1)
    elif button == 5:
        pp.taskLower(task, focus=0)
       

Si se va a utilizar este archivo de configuración con los comentarios traducidos al español, como archivo de configuración personal de PyPanel, en sistemas con las locales en es_ES.UTF-8, añadir al comienzo del mismo, en el editor de texto donde copiemos el contenido, lo siguiente:

# -*- coding: utf-8 -*-

Si queremos añadirle un menú de inicio y un control de volumen a PyPanel, conviene leerse el manual de myGtkMenu, y el manual de Volume Icon.



XbindKeys    

Este programa está incluido en el manual de Olix Desktop como una dependencia de instalación, es un gestor de atajos de teclado y nos permite de una manera muy sencilla añadir los atajos de teclado de las aplicaciones o comandos que queramos configurar para que se inicien a través del teclado. Permite la combinación del teclado con el ratón, con lo que aumenta de manera considerable las posibilidades de configuración.

Instalación

Dependencias

Herramientas de Compilación


Entre paréntesis la versión con la que se ha compilado XbindKeys para la elaboración de este documento.

* GCC - (7.1.0) o Clang - (4.0.0)
* M4 - (1.4.18)
* Libtool - (2.4.6)
* Make - (4.2.1)
* Automake - (1.15)
* Autoconf - (2.69)
* Pkg-config - (0.29.2)

Librerías de Desarrollo

* Xorg - (7.7 / xorg-server 1.19.3)
   LibICE - (1.0.9)
   LibX11 - (1.6.5)
* Guile - (2.2.2)
* Tk - (8.6.6)



Descarga

xbindkeys-1.8.6.tar.gz

Optimizaciones

Optimizaciones adicionales

Optimizaciones adicionales
GCC
Graphite
$ export {C,CXX}FLAGS+=' -floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block'
LTO
$ export {C,CXX}FLAGS+=' -fuse-linker-plugin -flto=2'
Donde pone 2 se indica el número de núcleos de 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 -mllvm -polly-position=before-vectorizer'
LTO
$ export {C,CXX}FLAGS+=' -flto'
ThinLTO
$ export {C,CXX}FLAGS+=' -flto=thin'
La aplicación de esta optimización es alternativa a la tradicional LTO, a partir de Clang 3.9, y por lo tanto, no es combinable con la misma.

Parámetros adicionales

Parámetros adicionales de eliminación de avisos específicos en el proceso de compilación
Clang
$ export {C,CXX}FLAGS+=' -Qunused-arguments'

Establecer la variable de entorno de uso de compilador para Clang
$ export {CC,CXX}=clang

Extracción y Configuración  Bloc de Notas

$ tar zxvf xbindkeys-1.8.6.tar.gz
$ cd xbindkeys-1.8.6
$ ./configure

Compilación

$ make

Instalación como root

$ su -c "make install-strip"

Estadísticas de Compilación e Instalación de XbindKeys

Estadísticas de Compilación e Instalación de XbindKeys
CPU AMD Athlon(tm) II X2 260 Processor
MHz 3214.610
RAM
2048 MB
Sistema de archivos XFS
Versión de Glibc 2.25
Enlazador dinámico GNU gold (Binutils 2.28) 1.14
Compilador Clang 4.0.0
Parámetros de optimización -03 -march=amdfam10 -mtune=amdfam10 -mllvm -polly -mllvm -polly-vectorizer=stripmine -mllvm -polly-position=before-vectorizer -flto=thin
Parámetros de compilación -j2
Tiempo de compilación 1"
Archivos instalados 4
Mostrar/Ocultar la lista de archivos instalados
Ocupación de espacio en disco 56 KB

Consumo inicial de CPU y RAM de XbindKeys

Consumo inicial de CPU y RAM de XbindKeys
Proceso
CPU Memoria física
xbindkeys 0 % 4,1 MB

Archivo de configuración personal

~/.xbindkeysrc Es el archivo de configuración personal de XbindKeys en nuestro home

Desinstalación como root

1) MODO TRADICIONAL

En el directorio de compilación ejecutamos el siguiente comando como root:

$ su -c "make uninstall"

2) MODO MANUALINUX

xbindkeys-1.8.6-scripts.tar.gz

$ su
# tar zxvf xbindkeys-1.8.6-scripts.tar.gz
# cd xbindkeys-1.8.6-scripts
# ./Desinstalar_xbindkeys-1.8.6

Copia de Seguridad como root

$ su
# tar zxvf xbindkeys-1.8.6-scripts.tar.gz
# cd xbindkeys-1.8.6-scripts
# ./Respaldar_xbindkeys-1.8.6

Restaurar la Copia de Seguridad como root

$ su
# cd /var/copibin/restaurar_copias
# ./Restaurar_xbindkeys-1.8.6



Para crear el archivo de configuración ejecutamos el siguiente comando:

xbindkeys --defaults > ~/.xbindkeysrc

 Lo abrimos con un editor de texto y añadimos los atajos de teclado que creamos oportuno, un ejemplo:

# For the benefit of emacs users: -*- shell-script -*-
###########################
# xbindkeys configuration #
###########################
#
# Version: 1.8.6
#
# If you edit this file, do not forget to uncomment any lines
# that you change.
# The pound(#) symbol may be used anywhere for comments.
#
# To specify a key, you can use 'xbindkeys --key' or
# 'xbindkeys --multikey' and put one of the two lines in this file.
#
# The format of a command line is:
#    "command to start"
#       associated key
#
#
# A list of keys is in /usr/include/X11/keysym.h and in
# /usr/include/X11/keysymdef.h
# The XK_ is not needed.
#
# List of modifier:
#   Release, Control, Shift, Mod1 (Alt), Mod2 (NumLock),
#   Mod3 (CapsLock), Mod4, Mod5 (Scroll).
#

# The release modifier is not a standard X modifier, but you can
# use it if you want to catch release events instead of press events

# By defaults, xbindkeys does not pay attention with the modifiers
# NumLock, CapsLock and ScrollLock.
# Uncomment the lines above if you want to pay attention to them.

#keystate_numlock = enable
#keystate_capslock = enable
#keystate_scrolllock= enable

# Examples of commands:

"xbindkeys_show"
  control+shift + q

# set directly keycode (here control + f with my keyboard)
"xterm"
  c:41 + m:0x4

# specify a mouse button
"xterm"
  control + b:2
"sylpheed-claws"
Mod1+s
"rox ~/"
Mod1+j
"mrxvt"
Mod1+z
"fpm"
Mod1+p
"firefox"
Mod1+f
"xrefresh"
Mod1+F5
"aterm -tr -sh 70"
Mod1+a
"sudo halt"
Control+Mod1+h
"sudo reboot"
Control+Mod1+r
"rxvt -e tor"
Control+Mod1+t
"/usr/apps/System/AppRun"
Control+Mod1+s
"opera"
Mod1+o
"import ~/Capturas/screenshot.png"
Mod1+Mod4+p
"gftp"
Mod1+Mod4+g
"leafpad"
Mod1+Mod4+l
#"xterm -geom 50x20+20+20"
#   Shift+Mod2+alt + s
#
## set directly keycode (here control+alt+mod2 + f with my keyboard)
#"xterm"
#  alt + c:0x29 + m:4 + mod2
#
## Control+Shift+a  release event starts rxvt
#"rxvt"
#  release+control+shift + a
#
## Control + mouse button 2 release event starts rxvt
#"rxvt"
#  Control + b:2 + Release

##################################
# End of xbindkeys configuration #
##################################

El modo de añadirlo es el siguiente, entre comillas el comando a ejecutar y debajo sin comillas la combinación de las teclas a usar o el ratón.

"opera"
Mod1+o

Si lo ejecutamos en combinación con el botón derecho del ratón sería lo siguiente:

"opera"
Mod1+b:2

Recordar también que la rueda del ratón desplazada hacia abajo es 'b:4' y hacia arriba, 'b:5'. En el manual de Xcompmgr viene una configuración específica de XbindKeys para poder activar y regular las transparencias de las ventanas, utilizando la rueda del ratón, con la utilidad Transset, que nos puede servir de ejemplo.
 
La lista de modificadores a usar es la siguiente:

Release, Control, Shift, Mod1 (Alt), Mod2 (NumLock), Mod3 (CapsLock), Mod4 (Windows), Mod5 (Scroll)


Dónde NumLock, CapsLock y ScrollLock están desactivados por defecto en cuanto a usar en las combinaciones de teclado. Para activarlos hay que descomentar las siguientes líneas:

#keystate_numlock = enable
#keystate_capslock = enable
#keystate_scrolllock= enable

Por último ejecutando control+mayúsc +q, o xbindkeys_show en una terminal, nos saldrá una pantalla con la información de los atajos que tengamos configurados.

Captura - XbindKeys



Fondo de Escritorio  

Para poner una imagen en el fondo de la pantalla voy a usar Esetroot, si buscamos algo más sofisticado con soporte de alternancia de imágenes y además nos gustan los iconos en la pantalla lo mejor es usar Idesk pero esto es sólo una idea, existen más programas en GNU/Linux que permiten la alternancia de imágenes, lo comento porque es el que suelo usar a diario, cuestión de comodidad. La forma de lanzar Esetroot al inicio la explico en la sección de abajo. Para más información sobre Esetroot y otros setters me remito a este manual.



Añadir aplicaciones al inicio de Openbox  

Al igual que sucede en Fluxbox o Pekwm, a partir de la versión 3.4, Openbox incluye un script de ejecución para aquellas aplicaciones que queremos que se inicien junto con el administrador de ventanas. Cogemos el archivo ~/.config/openbox/autostart y añadimos todos los programas que se van a iniciar al mismo tiempo que Openbox, con lo que evitamos tener que crear un script tipo startopenbox como sucedía con las anteriores versiones de Openbox. Podemos sin ningún problema borrar el contenido por defecto que tiene y añadir los comandos siguientes, por ejemplo:

sleep 5 && pypanel &
xbindkeys &
Esetroot -scale ~/Fondos/2163.jpg

No olvidar nunca cerrar los comandos de ejecución de las aplicaciones contenidas en este archivo (excepto las que se encargan de colocar una imagen de fondo, en éstas no es necesario) con el símbolo '&', de lo contrario, Openbox no podrá iniciarse nunca.


Foro Galería Blog


Página - 1Página - 2

Actualizado el 18-05-2017

Administradores de Ventanas - Openbox

Administradores de Ventanas - JWMAdministradores de Ventanas - Pekwm