LightDM[1175602] - это x дисплейный менеджер, который нацелен на то, чтобы быть легким, быстрым, расширяемым и многофункциональным. Он использует различные фронт-концы для рисования интерфейсов входа в систему, так называемые Greeters.
Ключевыми особенностями являются:
Четко определенный приветственный API, позволяющий использовать несколько графических интерфейсов
Поддержка всех вариантов использования диспетчеров, с плагинами, где это уместно
Низкая сложность кода
Быстрая производительность
LightDM предлагает, по крайней мере, такую же функциональность, как и GDM, но имеет более простую кодовую базу и не загружает никакие библиотеки GNOME для работы. LightDM является менеджером дисплеев по умолчанию для [1175612]Ubuntu[1175613].
Конфигурация LighDM регулируется файлами конфигурации в [1175614]/etc/lightdm/lightdm.conf.d/[1175615]. Для добавления собственной конфигурации создайте в этом каталоге новый файл типа [1175616]/etc/lightdm/lightdm.conf.d/my.conf[1175617].GDM[1175619] (менеджер дисплеев GNOME) - это менеджер дисплеев (графическая программа входа в систему) для оконных систем X11 и Wayland. Это высоко настраиваемая реимплементация xdm, X Display Manager.
Gdm позволяет вам входить в систему с запущенной X Window System и поддерживает запуск нескольких различных X сеансов на вашей локальной машине одновременно.
По умолчанию X Window System использует менеджер дисплеев XDM. Однако, решение проблем с конфигурацией XDM обычно включает в себя редактирование файла конфигурации. GDM позволяет пользователям настраивать или устранять неполадки, не прибегая к командной строке.[1175211].
На самом деле это и есть цель так называемых «диспетчеров мозаичного окна», т.е. Awesome, в отличие от классических «диспетчеров плавающих окон», то есть Gnome2.
Так что да, я думаю, чтобы делать то, что вы хотите, вам нужно будет перейти с gnome на что-то более хардкорное. Но поверьте мне, вы не захотите возвращаться после того, как испытаете то, что могут предложить эти другие оконные менеджеры. Обязательно ознакомьтесь с горячими клавишами ...
Популярные менеджеры окон мозаики перечислены здесь:
https://wiki.archlinux.org/index.php/Comparison_of_tiling_window_managers
Ну, вот кое-что, но вряд ли идеальное:
Я только что нашел https://github.com/ponty/PyVirtualDisplay; и поскольку у меня были установлены Xephyr
и awesome-wm
, я смог написать скрипт на Python, который относительно легко запускает следующее:
Очевидно, что мой обычный стиль окружения рабочего стола (как на картинке OP) отсутствует - и вы не можете масштабировать окно (изменять размер окна: ширину и высоту, перетаскивая). Также нет интерактивной ручки "изменения размера панели" для изменения относительной высоты приложений. И самое главное - копирование/вставка текста между приложениями внутри и вне Xephyr не работает!
Кроме того, скрипт запускает awesome-wm
в надежде, что он автоматически разместит мои приложения - но по какой-то причине он этого не делает, поэтому мне приходится размещать приложения вручную с помощью wmctrl
. Но у внутренних окон отсутствуют строки заголовков, что, как мне кажется, сделано awesome-wm
; так что, вероятно, в конечном итоге можно будет установить черепицу.
Вот сценарий - назовем его tilewm-app-tester.py
:
from easyprocess import EasyProcess
from pyvirtualdisplay import Display
#~ from pyvirtualdisplay.smartdisplay import SmartDisplay # needs pyscreenshot
import logging
logging.basicConfig(level=logging.DEBUG)
import time
_W = 600
_H = 500
# height percents
hp1 = 0.6
hp2 = 1-hp1 # the rest
Display(visible=1, size=(_W , _H)).start()
# EasyProcess.start() # spawns process in background
# EasyProcess.check() # loops process in foreground
try:
EasyProcess('awesome -c rc.lua').start()
except Exception, detail:
print detail
time.sleep(2)
try:
EasyProcess('bash -c "cd $HOME && scite"').start()
except Exception, detail:
print detail
time.sleep(2)
try:
# 0,x,y,w,h
EasyProcess(['wmctrl', '-r', 'SciTE', '-e', '0,0,0,'+str(_W)+','+str(int(_H*hp1))]).start()
except Exception, detail:
print detail
# gnome-terminal -e 'bash -c "bash --rcfile <(echo source $HOME/.bashrc ; echo PS1=\\\"\$ \\\") -i"'
# first `bash` needed, otherwise cannot do process substitution as file
try:
EasyProcess(['gnome-terminal', '-e', 'bash -c "bash --rcfile <(echo source $HOME/.bashrc ; echo PS1=\\\"\$\ \\\") -i"']).start() # --maximize is Gnome, nowork
except Exception, detail:
print detail
time.sleep(0.5)
try:
# 0,x,y,w,h
EasyProcess(['wmctrl', '-r', 'Terminal', '-e', '0,0,'+str(int(_H*hp1))+','+str(_W)+','+str(int(_H*hp2))]).start()
except Exception, detail:
print detail