Tips & tricks — Запускаем несколько X-сессий без виртуализации
Я тут недавно наткнулся на статью, рассказывающую о том, что можно запустить несколько рабочих окружений одновременно (например, GNOME и KDE) и переключаться между ними при помощи горячих клавиш. Оказывается, это проще простого.
Чтобы было понятно, я поясню тем, кто только знакомится с Linux. X (X Window System; «иксы») — это графическая подсистема, использующаяся в большинстве современных дистрибутивов Linux. Проще говоря, все, что вы видите на экране в графическом режиме, находится на виртуальном дисплее и управляется иксами. Если вы читаете это сообщение из Linux, вы скорее всего находитесь на дисплее 0. Переключиться в другой виртуальный дисплей можно нажав Ctrl+Alt+F1 — вы окажетесь в первой консоли. Чтобы вернуться обратно, нажмите Ctrl+Alt+F7. Под кнопками F2-F6 также будут консоли (виртуальные терминалы), работающие независимо друг от друга. А что после F7? После F7 такие же независимые сеансы X-сервера, каждый со своими приложениями. Но прежде их нужно запустить.
Для начала установим какой-нибудь простенький оконный менеджер, который пригодится в новом параллельном сеансе. Например, openbox. Установить можно любым привычным способом. Затем нужно создать в домашнем каталоге файл .xinitrc и в нем написать:
Это своеобразный список автозапуска для X. А теперь — самое интересное. Открываем консоль и пишем:
Этой командой мы кагбе приказываем иксам запуститься на отдельном дисплее (в нашем случае на незанятом дисплее 1).
Если все пройдет успешно, мы увидим «чистые» иксы с запущенным оконным менеджером. Теперь можно переключаться между копиями сеансов, нажимая Crtl+Alt+F7 и Ctrl+Alt+F8.
Если не получилось (возможные ошибки):
X: user not authorized to run the X server, aborting.
Легко исправить. Открываем /etc/X11/Xwrapper.config в текстовом редакторе от имени супер-пользователя и меняем allowed_users=console на allowed_users=anybody. Не знаю, как это отразится на безопасности системы, но это исправит проблему.
X: client 1 rejected from local host
Тоже легко. Удаляем из домашнего каталога все файлы, начинающиеся на .Xauthority, и пробуем снова.
P.S. Вместо startx -- :1 можно вводить ту же команду с цифрами 2, 3, 4 и так далее, пока хватает функциональных клавиш.
Чтобы было понятно, я поясню тем, кто только знакомится с Linux. X (X Window System; «иксы») — это графическая подсистема, использующаяся в большинстве современных дистрибутивов Linux. Проще говоря, все, что вы видите на экране в графическом режиме, находится на виртуальном дисплее и управляется иксами. Если вы читаете это сообщение из Linux, вы скорее всего находитесь на дисплее 0. Переключиться в другой виртуальный дисплей можно нажав Ctrl+Alt+F1 — вы окажетесь в первой консоли. Чтобы вернуться обратно, нажмите Ctrl+Alt+F7. Под кнопками F2-F6 также будут консоли (виртуальные терминалы), работающие независимо друг от друга. А что после F7? После F7 такие же независимые сеансы X-сервера, каждый со своими приложениями. Но прежде их нужно запустить.
Для начала установим какой-нибудь простенький оконный менеджер, который пригодится в новом параллельном сеансе. Например, openbox. Установить можно любым привычным способом. Затем нужно создать в домашнем каталоге файл .xinitrc и в нем написать:
exec openbox
Это своеобразный список автозапуска для X. А теперь — самое интересное. Открываем консоль и пишем:
startx -- :1
Этой командой мы кагбе приказываем иксам запуститься на отдельном дисплее (в нашем случае на незанятом дисплее 1).
Если все пройдет успешно, мы увидим «чистые» иксы с запущенным оконным менеджером. Теперь можно переключаться между копиями сеансов, нажимая Crtl+Alt+F7 и Ctrl+Alt+F8.
Если не получилось (возможные ошибки):
X: user not authorized to run the X server, aborting.
Легко исправить. Открываем /etc/X11/Xwrapper.config в текстовом редакторе от имени супер-пользователя и меняем allowed_users=console на allowed_users=anybody. Не знаю, как это отразится на безопасности системы, но это исправит проблему.
X: client 1 rejected from local host
Тоже легко. Удаляем из домашнего каталога все файлы, начинающиеся на .Xauthority, и пробуем снова.
P.S. Вместо startx -- :1 можно вводить ту же команду с цифрами 2, 3, 4 и так далее, пока хватает функциональных клавиш.