Я использую две настройки экрана на работе, и хотя обычно это помогает больше, чем вредно, у меня есть некоторые проблемы с этим.
Одна из них - проблема с перемещением фокуса - иногда я ошибаюсь, набирая текст на неправильном экране (фокус - трейлинг моего курсора, но не всегда легко заметить, что курсор находится на другом экране, когда вы спешите). Это очень раздражает, когда вместо того, чтобы печатать, я вызываю множество различных действий (сочетания клавиш в Thunderbird).
Есть ли способ лучше выделить активный экран или окно (например, с помощью легко видимой границы - даже для развернутых окон)?
РЕДАКТИРОВАТЬ:
Я думаю, что хорошим решением будет какая-то короткая анимация, когда окно получает фокус.
Ответы:
Выделите сфокусированный экран (или потушите при смене фокуса, см. РЕДАКТИРОВАТЬ ниже)
При параллельной установке двух мониторов (слева направо) приведенный ниже скрипт установит яркость монитора с фокусированным окном на «нормальное» (100%), а для другого - на 60%.
Если фокус изменяется, яркость будет следовать за фокусом:
сфокусироваться на (окне) на правом экране
сфокусироваться на (окне) на левом экране
Сценарий
Как пользоваться
Скрипт нуждается в
wmctrl
:Скопируйте скрипт в пустой файл, сохраните его как
highlight_focus.py
Протестируйте его с помощью команды:
При подключенном втором мониторе проверьте, работает ли скрипт должным образом.
Если все работает нормально, добавьте его в автозагрузку приложений: Dash> Startup Applications> Добавить команду:
Примечания
Скрипт очень мало ресурсов. Чтобы «сэкономить топливо», на экране настройки; разрешение, размер диапазона и т. д. читается только один раз, во время запуска скрипта (не включается в цикл). Это означает, что вам нужно перезапустить скрипт, если вы подключаете / отключаете второй монитор.
Если вы добавили его в автозагрузку приложений, это означает, что вы должны выйти / войти после изменений в конфигурации монитора.
Если вы предпочитаете другой процент яркости для затемненного экрана, измените значение в строке:
Значение может быть между
0,0
(черный экран) и1.0
(100%).объяснение
При запуске скрипта он определяет:
Затем в цикле (один раз в секунду) это:
проверяет положение активного окна с помощью команд:
wmctrl -lG
(чтобы получить список окон и их положения)xprop -root _NET_ACTIVE_WINDOW
(чтобы получить идентификатор самого переднего окна)Если позиция окна (x-) больше, чем x-разрешение левого экрана, окно, по-видимому, находится на правом экране, если только оно не превышает размер охвата двух экранов (тогда оно будет в рабочей области на право). следовательно:
определяет, находится ли окно на правом экране (где
limit
x-res левого экрана,pos
является x-позицией окна иspan
является комбинированным x-res обоих экранов).При изменении положения самого переднего окна (на левом или правом экране) сценарий устанавливает яркость обоих экранов с помощью
xrandr
команды:РЕДАКТИРОВАТЬ
Затемните фокусированный экран вместо тусклого не сфокусированного экрана
В соответствии с запросом в комментарии и в чате, ниже приведена версия скрипта, которая вместо этого дает короткую тусклую вспышку на вновь сфокусированном экране:
источник
limit < pos < span
чтобыlimit <= pos < span
получить его работу. Во всяком случае, это действительно приятно. Однако я не уверен, хочу ли я, чтобы это работало таким образом (затемнение другого экрана). Я постараюсь изменить его, чтобы сделать один яркий «импульс» при смене активного экрана.Я также нашел другое решение, которое немного отличается от того, что я хотел в первую очередь, но тоже отлично работает.
compizconfig-settings-manager compiz-plugins
Effects
разделе включитьAnimations
плагинFocus Animation
редактировании и выберите нужную анимацию.Сработал только волновой эффект ... Так что если вам это не нравится, у вас будет такое же грустное лицо, как у меня.
источник