Играем в конструктор → Xnest
Почти все знают, что графическая оболочка в линуксе построента по клиент-серверному типу. Сервер (он носит короткое название X) - это штука, которая непосредственно заведует мониторами, устройствами ввода. Клиент - это то, что хочет что-нибудь нарисовать на экране или получить с клавиатуры/мыши. Например, ваше DE. При чем X-сервер умеет принимать и удаленные подключения. Но об этом в другой раз. А сейчас поведаю про одну забавную штуку.
Не будем слишком сильно углубляться в теорию. Сразу к делу.
Xnest - это одна из реализаций X-сервера. Но у него есть одна особенность: Xnest рисует себя как окно другого X-сервера. Получается "экран в окне". Очень сильно напоминает виртуальную машину, не правда ли?
Xnest находится в пакете xnest. Есть более продвинутый сервер того же назначения - xephyr - но мы оставим его вне поля зрения.
Использования такое: Xnest <номер дисплея>
номер дисплея - это дисплей, который прослушивается Xnest'ом. То есть Xnest будет получать будет получать все запросы, направленные программами на этот дисплей. Скорее всего, вам подойдет номер ":1" (":0" - это основной дисплей). Кроме того, чтобы Xnest принимал все локальные запросы, стоит запустить его с параметрами -ac -nolisten tcp
Далее: (почти) все графические программы принимают как аргумент -display <номер дисплея> (и абсолютно все используют переменную среды DISPLAY).
И теперь мы можем запустить нашу графическую программу так, чтобы она рисовало все в окно Xnest. Получается такая "псевдо-виртуальная машина". Все, что будет запущено "внутри", будет изолировано лишь визуально.
Например, мы можем запустить fluxbox в Xnest:
fluxbox -display :1
(разумеется, при запущенном Xnest).
Если вы все сделали правильно, в окне Xnest появится голубой фон и (чуть позже) панельки fluxbox. Можно попробовать запустить так и любой другой WM или DE
Наслаждайтесь =)
Не будем слишком сильно углубляться в теорию. Сразу к делу.
Xnest - это одна из реализаций X-сервера. Но у него есть одна особенность: Xnest рисует себя как окно другого X-сервера. Получается "экран в окне". Очень сильно напоминает виртуальную машину, не правда ли?
Xnest находится в пакете xnest. Есть более продвинутый сервер того же назначения - xephyr - но мы оставим его вне поля зрения.
Использования такое: Xnest <номер дисплея>
номер дисплея - это дисплей, который прослушивается Xnest'ом. То есть Xnest будет получать будет получать все запросы, направленные программами на этот дисплей. Скорее всего, вам подойдет номер ":1" (":0" - это основной дисплей). Кроме того, чтобы Xnest принимал все локальные запросы, стоит запустить его с параметрами -ac -nolisten tcp
Далее: (почти) все графические программы принимают как аргумент -display <номер дисплея> (и абсолютно все используют переменную среды DISPLAY).
И теперь мы можем запустить нашу графическую программу так, чтобы она рисовало все в окно Xnest. Получается такая "псевдо-виртуальная машина". Все, что будет запущено "внутри", будет изолировано лишь визуально.
Например, мы можем запустить fluxbox в Xnest:
fluxbox -display :1
(разумеется, при запущенном Xnest).
Если вы все сделали правильно, в окне Xnest появится голубой фон и (чуть позже) панельки fluxbox. Можно попробовать запустить так и любой другой WM или DE
Наслаждайтесь =)