Предположим, я использую 4 рабочих пространства и мне, кстати, нужно больше, есть ли автоматизированный процесс или, если невозможно, простой способ добавить дополнительные рабочие пространства (вместо установки Ubuntu tweak
и т. Д. И т. Д.).
14.04
unity
workspaces
automation
workspace-switcher
kernel_panic
источник
источник
Ответы:
Автоматически устанавливать количество рабочих пространств; добавлять и удалять столбцы и строки, в зависимости от ваших потребностей
Ниже приведена версия () фонового скрипта, который будет автоматически добавлять рабочие пространства, если вы ввели последний столбец или строку вашей матрицы рабочего пространства.
Вот как это работает:
Если вы прибываете в последний столбец или строку, добавляются дополнительные видовые окна:
Если ваши рабочие пространства не используются в течение 5-10 секунд и на них нет окон, дополнительные рабочие пространства будут удалены снова. Однако вы всегда будете держать одну дополнительную строку ниже и один дополнительный столбец справа от текущего окна просмотра:
Сценарий:
Как пользоваться
add_space.py
В разделе заголовка скрипта отредактируйте строки, если вам нравятся другие настройки (максимальное количество рабочих пространств, матрица по умолчанию, например, 2x2):
Протестируйте его с помощью команды:
Если все работает нормально, добавьте его в свои автозагрузки: Dash> Startup Applications> Добавить команду:
Заметка
Как всегда, сценарий чрезвычайно «не хватает сока» и не добавляет заметной нагрузки на ваш процессор.
объяснение
Рассказ ниже немного сложен и в основном объясняет концепцию и процедуру , а не кодирование. Читайте только если вам интересно.
Как рассчитать необходимые рабочие пространства (пример столбцов)
Вывод
wmctrl -d
выглядит так:В выходных данных
VP: 1680,1050
дает нам информацию о том, где мы находимся в охватывающей рабочей области (матрица всех видовых экранов). Эта информация полезна, только если у нас также есть разрешение экрана, так как, например,1680
может быть ширина два (маловероятно, но все же) или один раз экрана.К счастью, мы можем разобрать разрешение экрана по команде
xrandr
.Тогда, если мы знаем, что размер экрана x равен,
1680
и мы в настоящее время включеныVP: 1680,1050
, мы знаем, что мы находимся во втором столбце в матрице рабочего пространства. Так как мы также знаем размер общей матрицы (DG: 3360x2100
также из выходных данныхwmctrl -d
), мы знаем, что текущая матрица включает в себя два столбца (3360/1680), и мы находимся на «последнем».Затем скрипт отправит команду для добавления столбца в матрицу командой:
Это принцип.
Как рассчитать рабочие пространства для удаления (пример столбцов)
Раз в 10 секунд скрипт запускает команду для просмотра списка всех открытых в данный момент окон командой:
Это также дает нам информацию о положении окна, которое выглядит следующим образом:
На выходе
3425
это x-позиция окна. Однако эта цифра относительно текущего рабочего пространства (левая сторона). Чтобы узнать абсолютную позицию окна (по оси x) в матрице рабочей области, мы должны добавить первое число текущей информации о окне просмотра (напримерVP: 1680,1050
, из выходных данныхwmctrl -d
).Однако для простоты предположим, что мы находимся в области просмотра
1,1
(topleft viewport), поэтому относительная позиция окна равна его абсолютной позиции.Поскольку разрешение экрана равно
1680
, мы знаем, что окно находится в столбце с3425/1680
округлением в большую3360 and 5040
сторону , поскольку все, что находится между ними, находится в одном и том же столбце в матрице (разрешение в 3–4 раза больше). Для правильного расчета мы используемmath.ceil()
(python
)Поскольку скрипт также применяет правило, чтобы всегда иметь дополнительное рабочее пространство справа / внизу, нам нужно установить для числа столбцов самое высокое значение:
И так сценарий делает :)
Строки управляются точно так же.
источник
Технически, здесь нет ярлыка для изменения размера рабочих пространств, но вы можете использовать простой скрипт ниже и привязать его к ярлыку.
.local/share/applications
папке или там, где вы предпочитаете.chmod 755 /path/to/script
Например, у меня есть эта настройка:
Сценарий связан с ShiftCtrlAltI. Но CtrlAltIтоже может сработать. Я даю полный путь к сценарию, который
А вот как это должно выглядеть:
скрипт
Очень прост в использовании, очень прост в настройке
источник