Sim. Você precisa definir conky
para exibir na extrema esquerda / direita. Os detalhes vão depender 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 o +1600
na entrada da 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
Eu quero que meu conky
apareça sempre na borda direita da tela do meu laptop. Por isso, configurei meu .conkyrc
da seguinte forma:
gap_x 1365
gap_y 40
O parâmetro gap_x
é o número de pixels da borda mais à 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 seu .conkyrc
de acordo e, em seguida, 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 &
Se você iniciar seu conky
usando 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, deixe-me saber se você precisar de ajuda.