Exibe o conky sempre somente na tela LVDS

1

Eu uso as seguintes configurações no meu .conkyrc para 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

É apresentado da seguinte forma no topo do meu ecrã:

Agora,aoconectarummonitorexterno,querorestringirabarradeconkysempreàminhatelaLVDSinterna,emvezdeexibi-lanasduastelas.

É possível dizer ao conky para permanecer sempre no LVDS?

    
por orschiro 25.06.2014 / 16:10

2 respostas

1

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.

    
por 25.06.2014 / 16:36
0

Desde a versão 1.10, você pode usar "xinerama_head = < nr >" no seu conky.config para especificar uma saída específica.

Eu tive que usar isso para forçar a conky no meu painel de laptop quando um monitor externo está conectado, pois eu faço o meu monitor principal com o meu laptop à esquerda. Portanto, embora o monitor tenha uma posição x de +1920, o conky aparece sem a opção xinerama_head.

    
por 26.10.2016 / 13:08

Tags