.conkyrc
내 노트북 화면(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
내 화면 상단에 다음과 같이 표시됩니다.
이제 외부 모니터가 연결되면 두 화면 모두에 표시되지 않고 항상 내부 LVDS 화면에 표시되도록 conky bar를 제한하고 싶습니다.
- xrandr의 출력외부 모니터가 연결되지 않음
- xrandr의 출력오른쪽의 외부 연결 및 LVDS
- xrandr의 출력왼쪽의 LVDS를 사용한 외부 연결
conky에게 항상 LVDS를 유지하라고 지시할 수 있나요?
답변1
예. 디스플레이를 가장 왼쪽/맨 오른쪽으로 설정해야 합니다 conky
. 세부 사항은 노트북 화면이 오른쪽에 있는지 왼쪽에 있는지에 따라 달라집니다. 예를 들어, 내 설정에서 내 노트북은 왼쪽에 있고 VGA 화면은 오른쪽에 있습니다( +1600
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
나는 conky
항상 내 노트북 화면의 오른쪽 가장자리에 내 것이 나타나기를 원합니다. 그래서 다음과 같이 설정했습니다 .conkyrc
.
gap_x 1365
gap_y 40
이 gap_x
매개변수는 화면의 가장 왼쪽 가장자리로부터의 픽셀 수입니다. 그래서 conky
아무리 많은 화면을 연결해도 내 화면은 항상 같은 자리에 나타납니다.
노트북의 위치가 바뀔 수 있다면 좀 더 정교한 장치가 필요할 것입니다. 예를 들어 두 개의 화면이 있는지 확인한 다음 노트북이 왼쪽이나 오른쪽에 있는지 확인하고 .conkyrc
그에 따라 편집한 다음 다음 .conky
과 같이 실행할 수 있습니다.
#!/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 &
conky
스크립트 사용을 시작하면 현재 설정에 따라 스크립트가 올바르게 배치되어야 합니다. 특정 상황에 맞게 약간의 조정이 필요할 수 있습니다. 도움이 필요하면 알려주시기 바랍니다.
답변2
버전 1.10부터 conky.config에서 "xinerama_head = <nr>"을 사용하여 특정 출력을 지정할 수 있습니다.
외부 모니터를 연결할 때 랩톱 패널을 강제로 연결하려면 이 기능을 사용해야 합니다. 왼쪽에 랩탑이 있는 메인 모니터가 있기 때문입니다. 따라서 모니터의 x 위치가 +1920임에도 불구하고 xinerama_head 옵션 없이 모니터에 conky가 나타납니다.