
Utilizo la siguiente configuración para .conkyrc
mostrar una barra superior en la pantalla de mi computadora portátil (LVDS).
background yes
update_interval 60
total_run_times 0
# Show umlauts
override_utf8_locale yes
# Font settings
use_xft yes
xftfont Noto Sans:style=normal:size=10
xftalpha 1
# Run in own window
own_window yes
own_window_class conky
own_window_type desktop
# Semi-transparent background
# http://th0th.me/log/conky-and-semi-transparency/
own_window_transparent no
own_window_argb_visual yes
own_window_argb_value 140
# Don't show in window lists and on all desktops
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
own_window_colour bcbcbc
double_buffer yes
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no
default_color 000000
alignment tl
maximum_width 1265
minimum_size 1265
#gap_x 10
gap_y 3
no_buffers yes
uppercase no
cpu_avg_samples 2
Se muestra de la siguiente manera en la parte superior de mi pantalla:
Ahora, cuando conecto un monitor externo, quiero restringir la barra conky siempre solo a mi pantalla LVDS interna en lugar de mostrarla en ambas pantallas.
- Salida de xrandrsin un monitor externo conectado
- Salida de xrandrcon externo conectado y LVDS a la derecha
- Salida de xrandrcon externo conectado y LVDS a la izquierda
¿Es posible decirle a conky que permanezca siempre en LVDS?
Respuesta1
Sí. Debe configurarlo conky
para que se muestre en el extremo izquierdo/derecho. Los detalles dependerán de si la pantalla del portátil está en el lado derecho o izquierdo. Por ejemplo, en mi configuración, tengo mi computadora portátil a la izquierda y una pantalla VGA a la derecha (tenga en cuenta +1600
en la entrada VGA):
$ xrandr | grep -w connected
VGA-0 connected primary 1440x900+1600+0 (normal left inverted right x axis y axis) 408mm x 255mm
DP-3 connected 1600x900+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
Quiero conky
que aparezca siempre en el borde derecho de la pantalla de mi computadora portátil. Por lo tanto, he configurado mi .conkyrc
estilo así:
gap_x 1365
gap_y 40
El gap_x
parámetro es el número de píxeles desde el borde más izquierdo de su(s) pantalla(s). Por lo tanto, mi conky
siempre aparece en el mismo lugar, independientemente de cuántas pantallas tenga conectadas.
Si la computadora portátil puede cambiar de posición, necesitarás algo más sofisticado. Por ejemplo, puede verificar si hay dos pantallas y luego verificar si la computadora portátil está a la izquierda o a la derecha y editarla .conkyrc
en consecuencia, luego iniciar .conky
. Algo como:
#!/usr/bin/env bash
## Get the number of screens
screens=$(xrandr | grep -cw connected);
## If there's only one screen
if [ "$screens" -eq 1 ]
then
## Set the gap_x to ten pixels from the left.
sed -i.bak 's/gap_x .*/gap_x 110/' ~/.conkyrc
## If there are more than one screens
else
## Get the offset of the laptop's screen
pos=$(xrandr | grep LVDS1 | cut -d ' ' -f 4 | cut -d+ -f 2)
## Is the laptop on the left?
if [ "$pos" -eq 0 ]
then
## Set the gap_x to ten pixels from the left.
sed -i.bak 's/gap_x .*/gap_x 10/' ~/.conkyrc
else
## Use the offset to set conky's position accordingly.
offset=$((pos+10));
sed -i.bak "s/gap_x .*/gap_x $offset/" ~/.conkyrc
fi
fi
killall -9 conky
conky &
Si comienza conky
a usar ese script, debería colocarlo correctamente dependiendo de su configuración actual. Es posible que esto necesite algunos ajustes para adaptarse a su caso específico; avíseme si necesita ayuda.
Respuesta2
Desde la versión 1.10 puedes usar "xinerama_head = <nr>" en tu conky.config para especificar una salida específica.
Tuve que usar esto para forzar a Conky a entrar en el panel de mi computadora portátil cuando hay un monitor externo conectado, ya que lo convierto en mi monitor principal con mi computadora portátil a la izquierda. Entonces, aunque el monitor tiene una posición x de +1920, conky aparece sin la opción xinerama_head.