
Я часто хочу, чтобы на экране отображалась только верхняя или нижняя часть окна. Я не хочу, чтобы одна программа занимала весь экран. Например, мне нужно сослаться на расчет, который отображается в нижней части большого окна. Чтобы сослаться на этот расчет, а затем написать о нем в другом окне, я хочу переместить расчет так, чтобы отображалась только самая нижняя часть окна расчета. (Мне не нужно видеть его заголовок или выпадающие меню, или даже первые 2/3 панели расчета).
В настоящее время, насколько мне известно, все «рабочие столы» для Linux накладывают ограничение, которое делает невозможным перемещение окна таким образом, чтобы оно наполовину закрывало экран сверху или снизу.
В золотые дни оконных менеджеров (WindowMaker был великолепен!) это не было проблемой. Насколько я помню, не было никаких принудительных «границ», защищающих панели от перекрытия. Проблема началась с Gnome и KDE, насколько я помню. Когда появился Compiz, он ввел политику, согласно которой окно не могло быть перемещено так, чтобы его заголовок был за пределами экрана, но в ccsm была опция, позволяющая заинтересованному пользователю изменить это (называемая «constrain-Y», насколько я помню). Когда я начал использовать системы на основе OpenBox и XFWM4, мне не хватало этой возможности.
Мне показалось, что авторы панелей слишком агрессивно защищают первенство своего продукта. Мне просто не нужно видеть панели Gnome или XFCE4, когда я занят написанием чего-то.
Редактировать: Я сделал скриншот, пока печатал ответ на комментарий ниже. Смотрите здесь:
решение1
Некоторое время назад я нашел решение, которым хочу поделиться. Оно использует wmctrl
, программу, доступную для Debian/Ubuntu, которая может взаимодействовать с любым совместимым с EWMH/NetWM X Window Manager. У меня это успешно работает в OpenBox, XFWM4 и любом другом оконном менеджере, соответствующем стандартам NetWM.
Вот двухстрочный скрипт bash, который я называю ``togglePanelBelow.sh
#!/bin/bash
wmctrl -l | grep panel | awk '{print "wmctrl -v -i -r " $1 " -b remove,above"}' | bash
wmctrl -l | grep panel | awk '{print "wmctrl -v -i -r " $1 " -b add,below"}' | bash
Это позволяет переставлять обычные окна так, чтобы они перекрывали панель.
Это используется wmctl
для перечисления существующих окон, фильтрации тех, в имени которых есть "panel", а затем wmctrl
снова используется для указания этим панелям переместиться под стек окон. Есть два шага, потому что в какой-то момент в 2015 году скрипт перестал работать, так как свойства не могли быть изменены. Их нужно удалить, а затем снова установить.
Если вы решили, что хотите видеть панель поверх обычных окон, как это было раньше, запустите togglePanelAbove.sh
.
#!/bin/bash
wmctrl -l | grep panel | awk '{print "wmctrl -v -i -r " $1 " -b remove,below"}' | bash
wmctrl -l | grep panel | awk '{print "wmctrl -v -i -r " $1 " -b add,above"}' | bash
Если расположить окно наполовину на экране, а затем запустить togglePanelAbove, то панель перекроет окно.
Я настроил для этого сочетания клавиш, и это никогда не вызывало никаких проблем.
Это не совсем вопрос, просто пост "посмотрите на эту классную штуку, которую я нашел". Возможно, вопрос будет таким: работает ли это в выбранном вами оконном менеджере? Можете ли вы подтвердить, что это нормально в OpenBox и XFWM4, а как насчет других? У меня не было энтузиазма тестировать это в Enlightenment, например.