
Eu uso as seguintes configurações para .conkyrc
exibir uma barra superior na tela do meu laptop (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
Ele é exibido da seguinte forma na parte superior da minha tela:
Agora, ao conectar um monitor externo, quero restringir a barra conky sempre apenas à minha tela LVDS interna, em vez de exibi-la nas duas telas.
- Saída de xrandrsem um monitor externo conectado
- Saída de xrandrcom externo conectado e LVDS à direita
- Saída de xrandrcom externo conectado e LVDS à esquerda
É possível dizer ao Conky para permanecer sempre no LVDS?
Responder1
Sim. Você precisa definir conky
a exibição na extrema esquerda/direita. Os detalhes dependerão se a tela do laptop está à direita ou à esquerda. Por exemplo, na minha configuração, tenho meu laptop à esquerda e uma tela VGA à direita (observe +1600
na 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
Quero conky
que sempre apareça na borda direita da tela do meu laptop. Portanto, configurei meu .conkyrc
assim:
gap_x 1365
gap_y 40
O gap_x
parâmetro é o número de pixels da borda esquerda da(s) tela(s). Portanto, meu conky
sempre aparece no mesmo lugar, independentemente de quantas telas eu anexei.
Se o laptop puder mudar de posição, você precisará de algo mais sofisticado. Por exemplo, você pode verificar se há duas telas e, em seguida, verificar se o laptop está à esquerda ou à direita e editar .conkyrc
de acordo e, em seguida, iniciar o .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 &
Se você começar conky
a usar esse script, ele deverá posicioná-lo corretamente dependendo da sua configuração atual. Isso pode precisar de alguns ajustes para se adequar ao seu caso específico. Avise-me se precisar de ajuda.
Responder2
Desde a versão 1.10 você pode usar "xinerama_head = <nr>" em seu conky.config para especificar uma saída específica.
Tive que usar isso para forçar o conky no painel do meu laptop quando um monitor externo está conectado, já que o torno meu monitor principal com meu laptop à esquerda. Portanto, embora o monitor tenha uma posição x de +1920, conky aparece nele sem a opção xinerama_head.