Использование Xephyr

From awesome
Jump to: navigation, search


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

Лучше всего запускать Xephyr и Awesome в эмуляторах терминала, чтобы можно было следить за стандартными потоками вывода и ошибок в реальном времени.

Contents

Установка Xephyr

Archlinux

/usr/bin/Xephyr находится в пакете xorg-server.

Gentoo

/usr/bin/Xephyr находится в пакете x11-base/xorg-server. Для успешной сборки Xephyr в списке USE-флагов должен присутствовать kdrive.

Debian/Ubuntu

/usr/bin/Xephyr находится в пакете xserver-xephyr. Его можно установить командой:

 # apt-get install xserver-xephyr

Запуск Xephyr

Следующая команда запускает новый X-сервер в клиентском окне текущего:

 $ Xephyr -ac -br -noreset -screen 800x600 :1
-ac 
disable access control restrictions
-br 
create root window with black background
-noreset 
don't reset after last client exists
-screen 800x600 
Specify screen characteristics

Тепеь можно запускать приложения внутри клиентской X-сессии, изменяя значение переменной окружения DISPLAY на :1.0:

 $ DISPLAY=:1.0
 $ xterm

Новое окно xterm появится внутри клиентской X-сессии.

Запуск Awesome в Xephyr

Установите переменную DISPLAY:

 $ DISPLAY=:1.0

И запустите Awesome в клиентской X-сессии:

 $ awesome -c ~/.config/awesome/rc.lua.new

Это хорошо подходит для тестирования изменений в rc.lua. В случае наличия каких-либо ошибок Вы не испортите работающий Awesome и не останетесь перед пустым корневым окном, не реагирующим на нажатия каких-либо клавиш.

Пример: 2009-02-21-004454_1280x800_scrot.png

Дополнительно

Удалённый перезапуск Awesome

Получите идентификатор процесса (pid) клиентского Awesome и отправьте ему сигнал SIGHUP:

 $ pgrep awesome
 $ kill -s SIGHUP <идентификатор_awesome_в_xephyr>

Или, если Вы предпочитаете использовать awesome-client:

 $ export DISPLAY=:1.0
 $ echo 'awesome.restart()' | awesome-client

Скрипт для отладки rc.lua

#!/bin/bash
# script xepyhr-awesome
# author: dante4d <dante4d@gmail.com>
Xephyr -ac -br -noreset -screen 800x600 :1 &
sleep 1
DISPLAY=:1.0 awesome -c ~/.config/awesome/rc.lua.new

Другой скрипт

Скачайте его с http://hellekin.cepheide.org/awesome/awesome_test

awesome_test start|stop|restart|run

  start    запуск Awesome в Xephyr
  stop     остановка Xephyr
  restart  перезагрузка конфигурационного файла Awesome
  run      запуск команды в клиентском Awesome
Personal tools