странное фоновое поведение

9

Я создал специальный конки, показывающий прогнозы погоды в 3 городах, таких как этот: конки тип окна override1

Но недавно я начал видеть странное поведение. Через несколько секунд под ним появляется белый фон немного больше: conky тип окна override2

Я попытался преодолеть это, попробовав ряд изменений в файле конфигурации .conkyrc, и единственным эффективным способом было изменение значения own_window_type с override на normal . Но тогда у меня не только исчезает этот conky, когда я выбираю сворачивание всех окон, но он также отображает прозрачный фон того же размера, как этот:

конки тип окна нормальный

Мои настройки окон conky выглядят так:

update_interval 1
total_run_times 0
cpu_avg_samples 1
net_avg_samples 1
нет_буферов да
двойной_буфер да
imlib_cache_size 0

фон да
собственное окно да
переопределение own_window_type
own_window_transparent yes
own_window_hints, неокрашенный, ниже, липкий, skip_taskbar, skip_pager
минимальный размер 300 480
максимальная ширина 300
выравнивание top_right
gap_x 2
gap_y 28

Draw_borders нет
draw_graph_borders нет
stippled_borders 0
border_inner_margin 0
border_outer_margin 0
border_width 0

text_buffer_size 1024
override_utf8_locale да
use_xft да
xftfont Ubuntu: размер = 10
xftalpha 1.0
прописные нет
температура в градусах Цельсия
Draw_shades нет
Draw_outline нет
default_color C0C0C0
default_shade_color 000000
default_outline_color C0C0C0
color1 C0C0C0
color2 B2B2B2
color3 808080
color4 D4D4D4

ТЕКСТ
$ {image ~ / .conky / base.png -p 0,0 -s 300x480}

Может кто-нибудь сказать, что может вызвать (и как я могу преодолеть) этот нежелательный холст под моим конки окном?

Сади
источник

Ответы:

8

A):

Ваш .conkyrc утверждает own_window yes. Это означает, что у conky есть собственное окно. Сказав, own_window_type normalокно говорит действовать "нормально". Таким образом, окно conky, как и любое другое окно, свернется при использовании опции «Показать рабочий стол».

Б):

Что бы сохранить носатый на своем месте меняется own_window_type normalна own_window_type dock. Недостаток этого метода заключается в том, что нужно снова поместить conky в нужное место на рабочем столе, используя пробел x и пробел y. Разрыв х теперь считается с левой стороны от края рабочего стола, а не с правой. Разрыв все еще считается сверху. Итак, предположим, что ваше разрешение экрана составляет 1440x900, а зазор x был равен 2, а максимальный зазор с ним равен 300, новый зазор x будет 1440-300-2 = 1138.

С):

Кроме того, чтобы полностью потерять все видимые границы док-станции, измените строку own_window_transparent yesсо строками: own_window_argb_visual yesи own_window_argb_value 0. Если own_window_argb_valueустановлено 255в conky окно не будет прозрачным и будет черным.

Для дальнейших настроек конфигурации:

http://conky.sourceforge.net/config_settings.html

Йерун
источник
Спасибо, но ... 1) Ваше предложение относительно прозрачности также избавляет от моего фонового изображения, а значки погоды становятся белыми. 2) Я буду пересматривать own_window_type, хотя он также имеет недостаток позиционирования при смене мониторов.
Сади
Хорошо, другое решение: игнорировать C. Под B): отредактируйте строку кода own_window_type desktopи попробуйте. У меня нет решения для белых иконок. Конки большую часть времени нуждается в вознях, например, использование вашего кода не приводит к исчезновению изображений на моей коробке. Смена монитора всегда меняет удобное расположение, если нет изменения в разрешении.
Йерун
Прежде чем спросить здесь, я изучил руководства по conky, такие как приведенная выше ссылка, и попробовал различные варианты «window_type» с этими результатами: conky (минимизируемый), рабочий стол (полностью исчезает при щелчке рабочего стола и не может быть возвращен), док (позиция по умолчанию вверху слева) , не минимизируемый), нормальный (минимизируемый), переопределение (позиция по умолчанию вверху справа, не минимизируемый, время от времени белый фон), панель (вызывающая серьезные проблемы единства). Таким образом, среди всех этих DOCK на данный момент является наилучшим возможным решением (поскольку, к счастью, у меня есть ширина сохранения при смене мониторов).
Сади
Хотя это решает вторичную проблему минимизации , к сожалению, этот вопрос все еще остается открытым, потому что у меня все еще есть этот необъяснимый фон. Странно , что я не имел , что белый фон в «переопределение» режиме до недавнего времени , и это также странно , что полупрозрачный фон в других режимах , таких как «док» не было в самом начале, но возникла , когда я добавил больше городов к исходному коду. Вероятно, я никогда не узнаю, что вызывает это ;-)
Сади
Гм, кое-что еще ... :-): Конки использует "псевдо" -прозрачность, а не по-настоящему "прозрачное" окно. Он читает фон корневого окна и меняет свой собственный фон на раздел изображения, которое он находит. Некоторые менеджеры окон или рабочих столов размещают фон на слое над корневым окном. Чтобы исправить это, вы можете использовать приложение, такое как «fbsetbg», которое входит в состав fluxbox ( fluxbox.org ), или «feh» ( linuxbrit.co.uk/feh ). Используйте "feh" из вашей ~ / .xinitrc: #!/bin/shследующая строка: sleep 1 && feh --bg-center ~/background.png &илиfbsetbg -f /path/to/picture.jpg
jeroen
3

Я нашел решение этой нежелательной тени здесь: http://linuxexchange.org/questions/821/how-to-avoid-ugly-compizgnome-shadow-for-conky

  1. Запустите менеджер настроек CompizConfig
  2. Выберите « Эффекты» > « Оформление окна».
  3. Перейдите в окно теневых окон и после значения любое добавьте &! (Class = Conky), чтобы применить это правило ко всем окнам, кроме Conky.

Это скорее обходной путь, чем решение, потому что почему Конки рисует окно большего размера, чем нужно, для меня остается загадкой ;-)

  • Примечание. Вероятно, для этого также необходимо добавить эту строку в конфигурационный файл conky: own_window_class Conky

  • Примечание. Обходной путь для черного фона, появляющийся в течение нескольких минут в Ubuntu 13.04 : добавьте команду для изменения обоев рабочего стола после команды conky, например:sleep 5 && conky -c /home/user/.conkyrc && sleep 2 && gsettings set org.gnome.desktop.background picture-uri file:///home/user/Pictures/bckgrnd.jpg && gsettings set org.gnome.desktop.background picture-uri file:///home/user/Pictures/background.jpg

Сади
источник
1

У меня была точно такая же проблема на 12.10, но я обнаружил, что открытие панели или терминала (который я установил прозрачным) заставил белый фон исчезнуть. Раздражает, но легко решить - я предполагаю, что это было связано с тем, как дисплей обрабатывает любую прозрачность.

Только что получил 13.04, и теперь этот трюк не работает. Выбирая это, я до сих пор работаю с прозрачностью, если я установил следующее:

own_window yes
own_window_type dock
own_window_transparent yes

Единственным недостатком является то, что окно Conky теперь выравнивается по левому краю экрана (раньше было справа), поэтому мне пришлось переместить его следующим образом:

alignment tr
gap_x 1120
gap_y 55

Досадно, что это означает, что если мое разрешение экрана изменится (например, я часто подключаюсь к проектору на работе), окно Conky там не появится, но это только начало. Надеюсь это поможет.

Seej500
источник
Спасибо, но это также очень раздражает меня, потому что я использую ноутбук и часто подключаю к нему внешний монитор большего размера. В результате я решил отказаться от Conky и перейти на Screenlets .
Сади
Я только что обнаружил, что смена обоев рабочего стола также заставляет conky перерисовать фальшивую прозрачность (как, например, открытие панели или терминала, как вы сказали). Тогда, возможно, команда для изменения обоев, выполненная после того, как conky, может сработать ;-)
Сади
1

Вот некоторые параметры, которые я использую:

override_utf8_locale yes
own_window no
own_window_colour 313131    # Black
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
#own_window_hints below,sticky,skip_taskbar,skip_pager
own_window_transparent no
own_window_type normal  ## normal

${image ~/BOX/conkybg1.png -p -50,-44 -s 380x500}

У меня были проблемы с изображением слишком маленьким. Я только начал настраивать параметры размера и заставил его работать.

Как вы можете заметить, own_windowустановлено на no. Если yes, то мой образ не будет работать. Это был просто беспорядок. Это может или не может помочь вам. Я надеюсь, что это поможет.

Маршалл Нил
источник
Спасибо, но, напротив, мой рабочий стол становится таким беспорядком, когда я устанавливаю его на «нет» ;-) Странное странное поведение ;-)
Sadi
0

Как насчет этого:

В файле ~ / conkyrc найдите

own_window_type override

заменить его на

own_window_type desktop

и добавить

own_window_argb_visual yes

Это сделало это для меня.

Дамиан
источник
Спасибо, но, по крайней мере, в моем случае (Ubuntu 13.04 64-bit) изменение значения «own_window_type» на «desktop» приводит к тому, что окно conky исчезает при щелчке левой кнопкой мыши по рабочему столу, и это хуже, чем видеть черный фон позади окна conky для одного или две секунды.
Сади
Вы правы. Лучше иметь это поле со значением «нормальный».
Дамиао