Conky
Tags: linux, conky, system, info
Published: 2024-03-31 17:32:09

# Documentación

Puedes encontrar la documentación de Conky en su repositorio: [Conky](https://github.com/brndnmtthws/conky)

# Instalación

Conky suele estar en los repositorios de cualquier distribución Linux, por lo que un simple `sudo apt install conky` debería ser suficiente.

El siguiente paso es crearse el fichero de configuración, para ello conky dispone de un atajo para realizarlo:

```
conky -C > $HOME/.config/conky/conky.conf
```

Una vez tenemos creado un fichero de configuración básico, procedemos a crear un archivo para que se inicie cada vez que iniciemos la sesión:

```
nano ~/.config/autostart/start_conky.sh
```

y pegamos el siguiente contenido:

```
#!/bin/bash
conky -c $HOME/.config/conky/conky.conf --daemonize --quiet
```

El último paso es darle permisos de ejecución:

```
sudo chmod +x ~/.config/autostart/start_conky.sh
```

Podemos comprobarlo ejecutando el script o reiniciando la sesión.

# Configuración

El siguiente paso es la configuración del archivo. Lo más recomendable es seguir la información de la versión que te hayas instalado, viendo su manual con `man conky`.

Pero, no terminaré este mini-artículo sin unos pequeños apuntes.

## Incrustar en el escritorio con transparencia

Edita el archivo `conky.conf` y actualiza las siguientes directivas:

```
own_window = true,
own_window_hints = 'undecorated,below,sticky',
own_window_class = 'Conky',
own_window_type = 'normal',
own_window_argb_visual = true,
own_window_argb_value = 150,
```

Con ello conseguiremos el efecto deseado.

## Un ejemplo

Como ejemplo, vamos a utilizar `prime-select` para ver la configuración de nuestra gpu nvidia.

```
${execi 10 prime-select query}
```

Con esta instrucción Conky ejecuta la sentencia `prime-select query` en la shell. En este caso la sentencia se ejecutará cada 10 segundos. El resultado de `execi` es recibido por conky, por lo que tal como está escrita la línea se verá la etiqueta "on-demand", "nvidia", o "intel".

Ahora bien, como no nos conformamos solo con ver la info, vamos a hacer un pequeño ajuste para que nos ponga la etiqueta correspondiente de color verde y el resto en gris:

```
Selected: ${if_match "${execi 10 prime-select query}" == "on-demand"}${color green}${else}${color grey}${endif}on-demand ${color}| ${if_match "${execi 10 prime-select query}" == "nvidia"}${color green}${else}${color grey}${endif}nvidia ${color}| ${if_match "${execi 10 prime-select query}" == "intel"}${color green}${else}${color grey}${endif}intel ${color} 
```

Expliquemos cada parte:

- El texto "Selected:" es un literal, por lo que simplemente se verá impreso en pantalla.

- La instrucción `if_match` realizará una comprobación, si el resultado es positivo ejecutará lo siguiente, en caso contrario continuará con el script hasta encontrar el `endif`.

- Verás que lo siguiente es el `execi` con toda la expresión entrecomillada, ya que de otra forma el resultado no se cogería como un literal y la comprobación sería siempre positiva.

- El resto es bastante legible, si coincide con el literal indicado pondremos el color en verde, en caso contrario pondremos el gris. Una vez salimos del `if_match` - `endif` imprimimos la etiqueta.

Espero que esta pequeña introducción te haya animado a probarlo.