Запоминание позиций окна (и желательно размеров) в Ubuntu 14.04

13

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

Первое, что я должен сделать для каждого открытого приложения, это переместить его в центр экрана (или там, где я хочу, чтобы он был). Затем я закрою приложение. Но в следующий раз он снова в верхнем левом углу экрана!

Я прочитал похожие вопросы на AskUbuntu и в Интернете. Однако мне было интересно, поскольку эти вопросы задавались в отношении Ubuntu 12 .04, было ли лучшее решение этой проблемы для пользователей 14.04? Не должно ли что-то подобное быть в настройках? Я имею в виду, это просто здравый смысл на самом деле. Не так ли? Я действительно не знаю больше.

jay_t55
источник
3
Вы можете использовать CCSM (Compiz Config Settings Manager) для управления настройками окна. sudo apt-get compizconfig-settings-manager(если он еще не установлен)
нет времени

Ответы:

5

( Мой другой ответ описывает, почему восстановление положения окна невозможно в общем случае.)

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

Существуют различные инструменты командной строки для чтения и установки свойств окон - например, wmifaceи wmctrl.
Минимальный пример:

Получите геометрию окна в формате геометрии X (обычно это WxH + X + Y) (обратите внимание на координату y - я использую 16 виртуальных рабочих столов / окон просмотра):

$ wmiface windowGeometry 46137711
1256x814+1186+5005

Переместите окно в другое место (обратите внимание на другой формат для геометрии):

wmctrl -i  -r 46137711 -e "0,1186,4005,1256,814"


Другой подход заключается в определении фиксированных позиций для определенных окон, а не в восстановлении их положения. Обычно это можно настроить в деталях конфигурации обработки окна, например ccsm.

Volker Siegel
источник
В приведенном выше ответе, wmifaceкоторый немного устарел и не упакован для Ubuntu, можно заменить на xdotool getwindowgeometryили wmctrl -lGi | grep(требуется шестнадцатеричное преобразование). Для меня они оба игнорируют панель в нижней части экрана, но, учитывая, что она также wmctrl -lGiвозвращает свой размер, положение / размер окна может быть зарезервировано и восстановлено через некоторое время. Каким бы ни был случай использования.
Ufos
В общем, я решил придерживаться резервного копирования wmctrl -lGiи восстановления так же, как описано в ответе.
Ufos
3

Установите ccsm (CompizConfigSettingsManager).

После запуска ccsm (запускается с помощью кнопки поиска Unity) выполните следующее:

(Нажмите на) Windows Manager
(Нажмите на) Поместить Windows

Используйте эти настройки:

Временные решения для Unticked
нескольких выходовPlace across all outputs

Режим размещения Smart- это ключ для запоминания желаемой позиции.

Пожалуйста, имейте в виду, что некоторые приложения запрограммированы для переопределения настроек вашей системы.

Л.Д. Джеймс
источник
2

С положениями окон не так просто справиться, как может предположить «здравый смысл».
Позиция относительна к некоторой ссылке - например, «экран». Но существует так много вариантов того, что здесь может означать «экран» (см. Ниже), что в общем случае сохранить позиции невозможно.

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

Итак, что же сложного в отображении окна в каком-либо месте на экране?

В Ubuntu - как и в любой современной системе на основе X11 - «экран» может меняться различными способами - во время выполнения, поэтому сохранение позиции должно с этим справиться.

Например, форма может измениться; От одного прямоугольника до двух прямоугольников рядом, до трех прямоугольников с недоступным пространством между ними. «Виртуальный рабочий стол» может меняться. Окно просмотра может измениться. Каждый влияет на координаты, которые будут восстановлены.

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


Что касается дополнительной проблемы открытия окон в левом верхнем углу: вы можете выбрать один из нескольких алгоритмов, чтобы решить, где разместить новое окно в настройках обработки окна (например, в ccsm). Например, вы можете открыть их там, где находится текущий указатель мыши.

Volker Siegel
источник
1

На всякий случай, если кто-нибудь приземлится здесь и действительно захочет, чтобы окна были там, где вы их поставили - установите рабочий стол Enlightenment. Вы можете щелкнуть правой кнопкой мыши значок в левом верхнем углу любой страницы, выбрать окно, запомнить и выбрать размер и положение. Мне нравится этот вариант, и это одна из причин, по которой я остаюсь с е17.

Икура Прайм
источник
Enligihtment походит на «запоминание положений окна» на стероидах.
WinEunuuchs2Unix