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

Entornos GráficosAplicaciones

Administradores de SesionesAdministradores de VentanasEscritoriosUtilidades de Escritorio

Utilidades de Escritorio - Tint2Utilidades de Escritorio - Wallpaperd

Utilidades de Escritorio - Volume Icon




Utilidades de Escritorio - Volume Icon




Copyright

Copyright © José Luis Lara Carrascal  2011-2023   http://manualinux.es



Sumario

Introducción
Características
Preliminares
Instalación
Traducción al Español de Volume Icon
Configurar el inicio de Volume Icon
Iniciamos Volume Icon
Paquetes binarios
Enlaces




Introducción  

Volume Icon
es un control de volumen de sonido que se ubica en la bandeja de sistema del entorno gráfico que soporte esta característica, panel con soporte de bandeja de sistema o utilidad de bandeja de sistema como Stalonetray. Está escrito en GTK+ y tiene soporte para el sistema de sonido ALSA, o alternativamente, OSS. De momento, no se puede compilar el soporte de los dos de manera conjunta. Junto al manual se incluye la traducción al español del programa.



Características

* Permite cambiar el volumen con la rueda del ratón, cuando colocamos éste sobre el icono de la bandeja.
* Soporte de selección de canal a controlar.
* Permite ajustar el porcentaje de volumen a aumentar o reducir por cada desplazamiento de la rueda del ratón.
* Soporte de temas de iconos.
* Mezclador externo configurable.
* Deslizador de nivel de volumen.
* Soporte de atajos de teclado.



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"

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 Volume Icon para la elaboración de este documento.

* GCC - (13.2.0) o Clang - (16.0.6)
* Gawk - (5.2.2)
* M4 - (1.4.19)
* Make - (4.4.1)
* Automake - (1.16.5)
* Autoconf - (2.71)
* Intltool - (0.51.0)
* Gettext - (0.22)
* Pkg-config - (0.29.2)

Librerías de Desarrollo

* Xorg - (7.7 / xorg-server 21.1.8)
   LibX11 - (1.8.6)
* ALSA - (1.2.9)
* GTK+ - (3.24.38)

Módulos de Perl

* XML::Parser - (2.46)



Descarga

volumeicon-0.5.1.tar.gz

Optimizaciones

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

Donde pone znver3 se indica el procesador respectivo de cada sistema seleccionándolo de la siguiente tabla:
Nota informativa sobre las optimizaciones para GCC
* La opción '-march=' establece el procesador mínimo con el que funcionará el programa compilado, la opción '-mtune=' el procesador específico para el que será optimizado. 

* Los valores separados por comas, son equivalentes, es decir, que lo mismo da poner '-march=k8' que '-march=athlon64'.

* En versiones de GCC 3.2 e inferiores se utiliza la opción '-mcpu=' en lugar de '-mtune='.
Nota informativa sobre las optimizaciones para Clang
* La opción '-mtune=' está soportada a partir de la versión 3.4 de Clang.

* Los valores de color azul no son compatibles con Clang.

* Las filas con el fondo de color amarillo son valores exclusivos de Clang y, por lo tanto, no son aplicables con GCC.
Valores CPU
Genéricos
Intel
AMD

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 {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 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/gcc13/lib64"
Cada usuario tendrá que establecer la ruta de búsqueda de directorios, en función de la distribución que utilice.

Establecer el uso de enlazador dinámico para Mold
$ export LDFLAGS+=' -fuse-ld=mold'

Establecer el uso de enlazador dinámico para LLD
Clang
$ export LDFLAGS+=' -fuse-ld=lld'
Optimizaciones complementarias LTO/ThinLTO de LLD
$ export LDFLAGS+=' -Wl,--lto-aa-pipeline=globals-aa -Wl,--lto-newpm-passes=memcpyopt'
Optimizaciones complementarias LTO de LLD
$ export LDFLAGS+=" -Wl,--lto-partitions=$(nproc)"
Optimizaciones complementarias ThinLTO de LLD
$ export LDFLAGS+=" -Wl,--thinlto-jobs=$(nproc)"

Establecer la variable de entorno de uso de compilador para Clang
$ export CC=clang CXX=clang++

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

$ tar zxvf volumeicon-0.5.1.tar.gz
$ cd volumeicon-0.5.1
$ sh autogen.sh
$ ./configure

Explicación de los comandos

sh autogen.sh : Genera los scripts de configuración del paquete.

Parámetros de configuración opcionales

--enable-notify : Activa el soporte de notificaciones. Necesitaremos las devel de Libnotify 0.5.1 o superior, para compilar este soporte
--enable-oss : Activa el soporte del sistema de sonido OSS. Esto desactiva el soporte de ALSA.
--with-default-mixerapp : Establece la aplicación a utilizar como mezclador de sonido, por defecto es alsamixer.

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-strip"

Borrar las locales adicionales instaladas con la utilidad BleachBit

$ su -c "bleachbit -c system.localizations"

Estadísticas de Compilación e Instalación de Volume Icon

Estadísticas de Compilación e Instalación de Volume Icon
CPU AMD Ryzen 5 5500
MHz 3593.250 (BoostMax=4457.000)
RAM 32 GB
Sistema de archivos XFS
Versión del Kernel 6.4.10-ml SMP PREEMPT_DYNAMIC x86_64
Modo de frecuencia de la CPU powersave (balance performance)
Versión de Glibc 2.38
Enlazador dinámico LLD 16.0.6
Compilador Clang 16.0.6
Parámetros de optimización -03 -march=znver3 -mtune=znver3 -mllvm -polly -mllvm -polly-vectorizer=stripmine -flto=thin -Wl,--lto-aa-pipeline=globals-aa -Wl,--lto-newpm-passes=memcpyopt
Parámetros de compilación -j12
Tiempo de compilación 3"
Archivos instalados 36
Mostrar/Ocultar la lista de archivos instalados
Ocupación de espacio en disco 256 KB

Consumo inicial de CPU y RAM de Volume Icon

Consumo inicial de CPU y RAM de Volume Icon
Programa
CPU RAM
volumeicon 0 % 12,7 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

~/.config/volumeicon Es el directorio de configuración personal de Volume Icon 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.

volumeicon-0.5.1-scripts.tar.gz

$ su
# tar zxvf volumeicon-0.5.1-scripts.tar.gz
# cd volumeicon-0.5.1-scripts
# ./Desinstalar_volumeicon-0.5.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 volumeicon-0.5.1-scripts.tar.gz
# cd volumeicon-0.5.1-scripts
# ./Respaldar_volumeicon-0.5.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_volumeicon-0.5.1



Traducción al Español  

Descarga

VolumeIcon_es-ML0.run

Firma Digital  Clave pública PGP

VolumeIcon_es-ML0.run.asc 

Verificar la firma digital del paquete

$ gpg --import manualinux.asc 
$ gpg --verify VolumeIcon_es-ML0.run.asc VolumeIcon_es-ML0.run

Instalación como root

$ su -c "sh VolumeIcon_es-ML0.run"



Configurar el inicio de Volume Icon  Bloc de Notas

El programa requiere que el entorno gráfico en cuestión tenga soporte de bandeja de sistema. En aquellos que no lo tienen tenemos la opción de utilizar un panel como BMPanel, Fbpanel, LXPanel, PyPanel o Tint2, o en su lugar, en el caso de que el entorno ya tenga un panel o barra de tareas, una utilidad de bandeja de sistema como Docker, PekSysTray, Stalonetray, Trayer, o Wmsystemtray.

Si activamos en las preferencias de Volume Icon, la opción de mostrar el deslizador del nivel de volumen al hacer clic con el botón izquierdo del ratón sobre el icono de la bandeja de sistema, tener en cuenta, que éste siempre se muestra hacia arriba, es decir, que si utilizamos paneles o barras de tareas ubicados en la parte superior de la pantalla, no podremos visualizar el deslizador del nivel de volumen. Así que en este caso tendremos que hacer uso de la alternativa del uso de la rueda del ratón cuando colocamos el puntero del mismo sobre el icono del control de volumen en la bandeja de sistema.

En los entornos gráficos que necesitemos utilizar aplicaciones auxiliares para proporcionar una bandeja de sistema, colocar siempre el comando de ejecución de Volume Icon, detrás del comando de ejecución del panel o utilidad de bandeja de sistema que vayamos a utilizar. También sería recomendable en estos casos, retardar su ejecución con el comando sleep. Un ejemplo:

tint2 &
sleep 2; volumeicon &

Integración de Volume Icon con Stalonetray


Para que el icono de Volume Icon no se muestre en un tamaño desproporcionado que se salga de los límites de la bandeja de sistema, tenemos que utilizar cualquier tema de icono menos el que lleva por defecto.

1) AfterStep


* No tiene soporte nativo de bandeja de sistema.

Añadimos el comando de ejecución en la sección correspondiente del archivo de configuración ~/.afterstep/autoexec.

Function "InitFunction"
#    Module  "I"     Animate
    Function "I"    WorkspaceState
    Function "I"    WorkspaceModules
    Module  "I"    Banner
    Exec    "I"    exec "$HOME/.afterstep/non-configurable/send_postcard.sh"
    Exec    "I"     exec "/usr/local/bin/xbindkeys"
    Exec    "I"     exec "/usr/local/bin/volumeicon"
EndFunction

2) Awesome

* Sí tiene soporte nativo de bandeja de sistema, pero hay que activarla desde el menú del programa.

Editamos el archivo de configuración personal, ~/.config/awesome/rc.lua y añadimos el comando al final del mismo de la siguiente forma:

client.add_signal("focus", function(c) c.border_color = beautiful.border_focus end)
client.add_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
-- }}}

os.execute("xbindkeys &")
os.execute("volumeicon &")

3) Blackbox


* No tiene soporte nativo de bandeja de sistema. En su manual se explica la instalación de Docker que proporciona funciones de bandeja de sistema a Blackbox.

Siguiendo el método que se utiliza en el manual de Blackbox lo añadimos al script ~/.blackbox/autostart de la siguiente forma:

#!/bin/sh

(sleep 2; bbkeys &) &
bsetbg -f ~/Fotos/40.jpg
volumeicon &

4) Enlightenment - E16

* Sí tiene soporte nativo de bandeja de sistema, pero hay que crearla seleccionando Escritorio >> Crear bandeja del sistema, en el menú que se despliega con el botón derecho del ratón.

En su manual se explica de forma detenida la forma de añadir aplicaciones al inicio, sólo tendremos que crear los scripts correspondientes de ejecución. Abrimos un editor de texto con 3 ventanas y añadimos lo siguiente a cada una:

volumeicon_init

#!/bin/sh

sleep 2; volumeicon &

volumeicon_start
#!/bin/sh

killall -9 volumeicon &> /dev/null 
sleep 2; volumeicon &

volumeicon_stop
#!/bin/sh

killall -9 volumeicon &> /dev/null 

Los guardamos con los nombres que encabezan los scripts, les damos permisos de ejecución y los copiamos a los directorios correspondientes, si no existen los creamos.

$ mkdir -p ~/.e16/{Init,Start,Stop}
$ chmod +x volumeicon_*
$ cp volumeicon_init ~/.e16/init
$ cp volumeicon_start ~/.e16/start
$ cp volumeicon_stop ~/.e16/stop

5) Fluxbox

* Sí tiene soporte nativo de bandeja de sistema.

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 &
volumeicon &

6) Fvwm

* No tiene soporte nativo de bandeja de sistema. La configuración disponible en el manual está preparada para trabajar con Trayer, cuya instalación y configuración se explica en el mismo manual.

Añadimos el comando de ejecución en la sección correspondiente del archivo autostart, cuya configuración se explica en el manual de Fvwm.

AddToFunc StartFunction  I     Test (Init) Exec exec xscreensaver
AddToFunc StartFunction  I     Test (Init) Exec exec volumeicon

7) Fvwm-Crystal

* No tiene soporte nativo de bandeja de sistema. Está configurado para trabajar con Stalonetray o Trayer.

Añadimos el comando de ejecución al final del archivo ~/.fvwm-crystal/preferences/Startup, cuya configuración se explica en el manual de Fvwm-Crystal.

# Launch Volumeicon
#+ I Test (x volumeicon) Exec pidof volumeicon || exec volumeicon


# vim:ft=fvwm

8) IceWM

* Sí tiene soporte nativo de bandeja de sistema.

Añadimos el comando de ejecución al script de inicio ~/.icewm/startup,

#!/bin/sh

stalonetray -p -t --tint-level 125 -geometry 5x1-0-26 &
gai-bgswitcher &
bluecombo &
sleep 2; volumeicon &

9) JWM


* Sí tiene soporte nativo de bandeja de sistema.

Añadimos el comando de ejecución en la sección correspondiente del archivo de configuración ~/.jwmrc, en la versión original y ~/.jwm/autostart.xml en la versión en español disponible en la web.

    <StartupCommand>
        volumeicon &
    </StartupCommand>

10) Openbox


* No tiene soporte nativo de bandeja de sistema.

Añadimos el comando de ejecución al script de inicio ~/.config/openbox/autostart, autostart.sh en versiones inferiores a la 3.5.

sleep 2 && pypanel &
xbindkeys &
Esetroot -scale ~/Fondos/2141.jpg
sleep 4; volumeicon &

11) Pekwm

* No tiene soporte nativo de bandeja de sistema.

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

tint2 &
numlockx &
idesk &
sleep 2; volumeicon &
hsetroot -fill /home/jose/Fotos/Natasha_Henstridge.jpg -gamma 1.5 -sharpen 1.5 -blur 1.0

12) Sawfish


* No tiene soporte nativo de bandeja de sistema.

Siguiendo el método que se utiliza en el manual de Sawfish lo añadimos al script ~/.sawfish/autostart de la siguiente forma:

#!/bin/sh

bmpanel &
idesk &
cwallpaper -l
sleep 2; volumeicon &

13) Window Maker

* No tiene soporte nativo de bandeja de sistema.

Añadimos el comando de ejecución al script de inicio ~/GNUSTEP/Library/WindowMaker/autostart

#!/bin/sh
#
# Place applications to be executed when WindowMaker is started here.
# This should only be used for non-X applications or applications that
# do not support session management. Other applications should be restarted
# by the WindowMaker session restoring mechanism. For that, you should
# either set SaveSessionOnExit=YES or select "Save Session" in the Workspace
# submenu of the root menu when all applications you want started are
# running.
#
# WindowMaker will wait until this script finishes, so if you run any
# commands that take long to execute (like a xterm), put a ``&'' in the
# end of the command line.
#
# This file must be executable.
#

stalonetray -p -t --tint-level 125 &
sleep 2; volumeicon &

14) 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 si no existe lo creamos, y añadimos lo siguiente:

volumeicon &
exec pekwm

15) 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:

volumeicon &
exec pekwm

Para otros administradores de ventanas o escritorios, consultar sus respectivos manuales, en lo que haga referencia a la ejecución de programas al inicio de estos.



Iniciamos Volume Icon  


Captura Volume Icon - IceWM - 1

Captura Volume Icon - IceWM - 2
Volume Icon + IceWM


Captura Volume Icon + JWM - 1

Captura Volume Icon + JWM - 2
Volume Icon + JWM


Captura Volume Icon - Preferencias
Preferencias del programa




Enlaces  


https://github.com/Maato/volumeicon >> Enlace al proyecto en GitHub.


Foro Galería Blog


Actualizado el 14-08-2023

Utilidades de Escritorio - Volume Icon

Utilidades de Escritorio - Tint2Utilidades de Escritorio - Wallpaperd