Использование Xephyr
| Languages: |
English • Русский |
На этой странице приведено краткое руководство по запуску вложенных 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