Как стать хитрым, чтобы остаться на рабочем столе


15

У меня есть настройка conky, которую я использовал на нескольких рабочих столах (вот conkyrc ). Он отлично работает в Ubuntu Unity, XFCE, Gnome и Openbox, но не в Lubuntu (LXDE). Проблема в том, что я не могу заставить его оставаться на рабочем столе Lubuntu LXDE надежно. Окно conky исчезнет, ​​если я нажму на рабочий стол или сверну все окна (показать рабочий стол).

Я перепробовал все варианты в конфигурационном файле для "own_window", "own_window_colour", "own_window_transparent" и "own_window_type" и уже немного погуглил, чтобы решить эту проблему. Если он отредактирует файл conkyrc и установит для own_window_type значение «normal», conky исчезнет, ​​если я сверну все окна. Если я установлю его на «рабочий стол», он исчезнет, ​​если я щелкну где-нибудь на рабочем столе. Если я использую «переопределить», он не отображается вообще. И другие варианты не работают хорошо по очевидным причинам.

При другой установке Ubuntu Unity у меня была похожая проблема, но я обошел ее, используя Compiz Config Settings Manager, чтобы игнорировать мое conky окно. На моем нетбуке Lubuntu я не установил compiz.

Как я могу получить conky, чтобы остаться на моем рабочем столе.


1
Конки, кажется, не очень хорошо играет с Openbox.
Ури Эррера

Вы пробовали режим "панели"? .. Кстати, у меня тоже есть похожие проблемы с conky под Unity; Подскажите, пожалуйста, как вы использовали Compiz Config Settings Manager, чтобы игнорировать conky window?
Сади

1
Sadi: Следующая настройка conky обычно должна работать для Unity: own_window yes own_window_transparent yes own_window_type normal own_window_hints undecorated,below,sticky,skip_taskbar,skip_pagerЕсли у вас есть проблемы с compiz (и странными тенями), используйте диспетчер настроек Compiz Config, чтобы установить следующее: * В области «Оформление окна» установите поле «Теневые окна» на any & !(name=Conky) Обратите внимание, что режим панели предназначен для того, чтобы позволить conky вести себя как панель. Это означает, что обычно окна не покрывают это, и это должно только быть пристыковано к стороне Вашего экрана. Это не то, что я хотел.
aspersieman

Ответы:


20

Похоже, что установки типа окна для рабочего стола иногда недостаточно.

Пытаться:

own_window_type desktop
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

Получил это отсюда .

У меня работает в XFCE. Я думаю, это будет хорошо и для lxde / openbox.


5
Как этот ответ принят? В LXDE нажатие на рабочий стол заставляет conky исчезать.
Redsandro

Я также понятия не имею, почему это так. В вопросе (но не в его названии) прямо говорится, что проблема присутствует ТОЛЬКО в LXDE, и автор просит помощи в решении этой конкретной проблемы. Ответ, помеченный как «Ответить», не отвечает на вопрос. Я приземлился здесь, ища ответ на точно такую ​​же проблему, но с Debian (последняя стабильная версия), на котором работает LXDE.
rbaleksandar

это не помогает это продолжает исчезать
nazar_art

Для простого Ubuntu с Unity own_window_type overrideработает просто отлично
Миннер

2
Нет, это не так. Во всяком случае, не для меня. Он останавливает исчезающие виджеты, но затем происходит что-то не так с обновлением экрана для прорисовываемых символов. Через некоторое время они становятся нечеткими, и тогда вы можете сказать, что это потому, что есть символы, накладывающиеся на символы.
user447607

8

Этот конфиг работает на Gnome и Cinnamon и является способом сделать это.

own_window yes
own_window_transparent yes
own_window_type dock
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
own_window_argb_visual yes
own_window_argb_value 100
gap_x 940
gap_y 20

Последние 2 атрибута абсолютно позиционируют его на экране и должны быть изменены для вашей конфигурации. Рабочий полный файл конфигурации можно найти здесь, на Github .

Редактировать: Из комментариев: Если для own_window_type, установленного в «dock», у вас не получается, попробуйте «override» и «normal», а также.


own_window_type dockне всегда оптимально, так как коническое окно будет рассматриваться как док.
aspersieman

1
@aspersieman Я не нашел ничего другого с этим до сих пор. Это единственная настройка, которая предотвращает его срабатывание при нажатии на рабочий стол или super+windows+D.
Анируд Раманатан

Попробуйте own_window_type overrideизменить настройку в Compiz Config Settings Manager, который я описал для Sadi выше.
aspersieman

dockдля меня делает его постоянной частью моего экрана, как панель, то есть полноэкранные окна не могут ее покрыть
Karthik T

2

Я сам провел множество исследований по этому вопросу, и кажется, что существует очень мало обходных путей и еще меньше, которые хорошо работают:

  • Вы можете установить conky на панель или окно панели.
  • Вы можете установить его в обычное окно и просто избегать использования плагина / связывания клавиш для рабочего стола.
  • Я даже пытался использовать аргумент -w для conky, чтобы заставить его рисовать в окне fake desktop / PCManFM, но это заставит ваш рабочий стол перерисовываться так часто, как conky updates = messy.
  • Если вы можете жить без значков на рабочем столе, вы можете установить conky в окно рабочего стола, а затем просто выключить PCManFM, набрав pcmanfm --desktop-offв терминале.
  • Вы можете позволить Feh или какой-либо другой программе управлять рабочим столом

Мне не понравился ни один из вышеперечисленных вариантов. Поэтому, как и в Redsandro, я решил использовать обходной путь, чтобы использовать conky как обычное окно (skip_pager, skip_taskbar, ниже, конечно, без декорации), написать простой скрипт bash и создать для него файл .desktop, чтобы я мог включить его в свою панель. занять место плагина Show Desktop. Он использует wmctrl, поэтому вам придется его скачать. Кроме того, это, к сожалению, не минимизирует все окна, оно только затеняет их. Но для моих нужд достаточно:

#!/bin/bash
var=($(wmctrl -l | grep -o "0x[[:alnum:]]\+"))
for v in ${var[@]}
do wmctrl -i -r $v -b toggle,shaded
done
exit 0

Создание сценария запуска с первым действием pcmanfm --desktop-offи последующим запуском conkyрешило его для меня. Я могу жить без настольных функций pcmanfm :) Спасибо!
codeman48

1

Выше не работал для меня. Что работало, так это установило "own_window_type" в "normal" в /etc/conky/conky.conf.

own_window_type normal

Согласно этой теме: http://ubuntuforums.org/showthread.php?t=2039399


Мне также нужно было "own_window_hints undecorated, ниже, sticky, skip_taskbar, skip_pager` на LXDE.
Motiejus Jakštys

Это вызывает случай «свернуть все окна (показать рабочий стол)», как в ОП, даже с добавлением строки @ MotiejusJakštys
Karthik T

1

Принятый ответ не учитывает «Показать рабочий стол».

Вы можете использовать хак, который я объяснил в этом ответе, чтобы показать conky после нажатия Win+Dfor Show Desktop:

#!/usr/bin/env bash
zenity --info --text "Remapping Conky..." &
pid=$!
sleep 0.3
kill $pid
xdotool windowmap `xdotool search --classname 'conky'`

1

Проблема использования conky с LXDE заключается в том, что PCManFM обрабатывает рабочий стол не так, как любой другой рабочий стол. LXDE - это, по сути, Openbox с настольным компьютером, на который наложен файловый менеджер (pcmanfm). Если вы удалите pcmanfm в пользу другого файлового менеджера, у вас больше не будет LXDE, у вас по сути будет Openbox с панелью LXDE. Насколько это актуально? Что ж, рабочий стол LXDE обрабатывается менеджером окон больше как окно, то есть, когда у вас открыто несколько окон, и вы нажимаете на одно из них, оно фокусируется на нем. Это именно то, что происходит с Конки. Когда вы щелкаете по рабочему столу, он размещает конки под рабочим столом, который, как я объяснил, обрабатывается больше как окно. В моем случае это исправление:

own_window_class Conky
own_window yes
own_window_type normal
own_window_transparent yes
own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below

Теперь, если вы используете плагин панели для минимизации всех окон, он все равно будет минимизировать conky, но это исправление предотвращает исчезновение conky при нормальных обстоятельствах.


1

РЕДАКТИРОВАТЬ:

лучше: начиная с 12.04 Precise и всех более поздних версий Ubuntu (подтверждено до 16.04 xenial), вы можете достичь того же, что и devilspie (ниже), с помощью compiz -> Windows Rules. Я использовал класс совпадения там, само за себя. Работает с моим связанным Super + Home-script тоже.

Вот мой маленький вклад после того, как я потратил пару часов на это для тех, кто не смог разобраться со всем вышеперечисленным (протестировано с Ubuntu 16.04):

Быстрое решение :

  1. Добавьте строку 'own_window_type dock ' в conkyrc.txt в соответствующем каталоге в ~ / .conky / (чтобы он не исчез при щелчке на рабочем столе)
  2. Установить Devilspie
  3. Создайте правило в devilspie с шаблоном 'match', имя_окна 'содержит' conky (без заглавной буквы c - это важно). На самом деле, с помощью кнопки «Получить» вы можете использовать любой подходящий шаблон соответствия.
  4. в качестве действий выберите « skip_tasklist », « unminimize » и, если вы хотите, чтобы он был во всех рабочих пространствах, также « stick ».
  5. Это оно.

Не забудьте проверить «Запустить devilspie при запуске».

побочный эффект: окно менеджера Conky будет вести себя аналогично при открытии в зависимости от шаблона соответствия, однако проблем не должно быть.

Моя проблема была в следующем:

« Переопределение own_window_type » создало проблему, заключающуюся в том, что изменяющиеся элементы conky не будут заменять, а будут рисоваться поверх более старых значений - безобразно и неразборчиво в течение нескольких секунд.

'own_window_type desktop ' просто не сработал.

'own_window_type dock ' в сочетании с devilspie решили исходную проблему, но было бы нехорошо с этим изящным небольшим сценарием добавить «показывать рабочий стол, но держать окно активным» - горячая клавиша, как Windows Win + Home. РЕДАКТИРОВАТЬ: последние как-то перестали работать .. Я вышел: - |

Надеюсь, я кому-то помог, дай мне большие пальцы, я новичок здесь ;-)

Моя система: UBUNTU Xenial Xerus 64 бит.


0

Вы можете попробовать добавить скрипт, который выполняется при запуске .

Например:

#!/bin/bash
conky ;

(не забудьте chmod + x это;)


Спасибо за Ваш ответ. К сожалению, я уже пробовал это, и это ничего не меняет. Я даже пытался заснуть несколько секунд. Любые другие предложения?
aspersieman

Извини, чувак, другого предложения нет. Я решил свою проблему таким образом, но если я правильно помню, я использовал гном.
user981916

Не стоит беспокоиться. Спасибо за вашу помощь, хотя.
aspersieman

0

Для Unity моя проблема была решена с помощью

own_window_type override

Верный! Это позволяет сохранять виджеты на рабочем столе при нажатии на рабочем столе или при попытке показать рабочий стол (Ctrl + Super + D). ОДНАКО после показа рабочего стола я вижу, что теперь у меня есть дубликаты моих конки-виджетов, где старый имеет фиксированную метку времени, а новый оверлей имеет изменяющиеся метки времени. Другими словами, это слоистый беспорядок! Я забыл добавить что-то еще?
Брэд Хорн

0

Для Lubuntu с LXDE:

own_window yes
own_window_class Conky
own_window_transparent yes
own_window_type desktop
double_buffer yes

Если скрытое окно исчезает при нажатии кнопки свернуть все окна (показать рабочий стол), перейдите в Настройки-> Стандартные приложения для LXsession-> Запущенные приложения-> Рабочий стол и выберите «feh» вместо «filemanager»

Работа для меня в Lubuntu 13.10.


0

Я сам провел множество исследований по этому вопросу, и кажется, что существует очень мало обходных путей и еще меньше, которые хорошо работают.

  • Вы можете установить conky на панель или окно панели.
  • Вы можете установить его в обычное окно и просто избегать использования плагина / связывания клавиш для рабочего стола. Я даже использовал аргумент -w для conky, чтобы заставить его рисовать в окне fake desktop / PCManFM, но это заставит ваш рабочий стол перерисовываться так часто, как conky updates = messy. Если вы не возражаете против значков, вы можете просто выключить PCManFM, набрав pcmanfm --desktop-offв терминале.

Как и в Redsandro , для решения этой проблемы было написано простой скрипт bash и создан файл .desktop, чтобы я мог включить его в панель вместо плагина Show Desktop. Он использует wmctrl, поэтому вам придется его скачать. Кроме того, это, к сожалению, не минимизирует все окна, оно только затеняет их. Но для моих нужд достаточно:

#!/bin/bash
var="($(wmctrl -l | grep -o "0x[[:alnum:]]\+"))"
for v in ${var[@]}
do wmctrl -i -r $v -b toggle,shaded
done


0

Я знаю, что эта ветка старая, но для всех, кто еще борется с этой проблемой, я просто хотел бы добавить, что ответ Гримса работает для меня с небольшим предостережением.

В /etc/conky/conky.conf

own_window_type normal

и в .conkyrc или в файле темы:

own_window_type desktop
own_window_hints undecorate,sticky,skip_taskbar,skip_pager

После некоторых проб и ошибок это была единственная комбинация, которую я смог получить (я использую compton для прозрачности). Обратите внимание, что в own_window_hints нет настройки «ниже», так как, хотя это все еще работает, оно заставляет conky исчезать и снова появляться (мерцать) через несколько секунд при отображении рабочего стола. По крайней мере, это был мой опыт.

НТН


0

Linux с Mate / Gnome2 GUI Ubuntish;)

use_xft yes
..............
.........
.....
..........
own_window_type dock

Будет закреплена на верхнем экране, не влияя на любые действия на рабочем столе.

Поставить в положение настройки:

gap_x ...
gap_y ...  

В зависимости от вашего разрешения.


0

Установите background=falseв .conkyrcи быть уверены , что вы не autostarting носатый с -dфлагом. Я испробовал любое другое предложение, которое смог найти, и иногда они работали, а иногда нет, и даже если они работали, это было только на некоторое время.

Примечание: если вы случайно свернули все окна, используйтеSuper+,Dчтобы вернуть Conky.


0

Я столкнулся с той же проблемой в LXDE, когда нажатие на «Iconify All Windows» в LXPanel также скрывает окно Conky. Я исправил это с помощью wmctrl .

Установить wmctrl

sudo apt install wmctrl

Найти название окна Конки

wmctrl -l
0x03200001 -1 Host conky (Host)

Чтобы вернуть его обратно:

wmctrl -a 'conky (Host)'

Я написал на Python простой скрипт, который каждые 50 миллисекунд показывает Conky и помещает его при запуске LXDE:

bring_conky_back.py

#!/usr/bin/python

import time, os

while True:
    os.system("wmctrl -a 'conky (Host)'")
    time.sleep(0.05)

Также в .conkyrc могут понадобиться эти строки:

own_window = true,
own_window_type = 'normal',

Это работает потрясающе.


-1

Мое решение этой проблемы - добавить эти две строки в ваш скрипт bash.

conky -c /home/ajay/.conkycolors/conkyrc >/dev/null 2>&1 &
conky -c /home/ajay/.conkycolors/conkyrc >/dev/null 2>&1 &


Вопрос включает в себя 3 разные проблемы: 1) исчезновение conky при нажатии на рабочий стол в режиме «рабочий стол», 2) то же самое, когда все окна свернуты (с помощью команды «Показать рабочий стол») в режимах «normal» и «conky», 3) conky не отображается в режиме переопределения ... Какую проблему это решает? Что это делает на самом деле?
Сади

-1

В Unity ничего не меняйте, просто вставьте в терминал:

gsettings set org.compiz.core:/org/compiz/profiles/unity/plugins/core/ hide-skip-taskbar-windows false
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.