Яке середовище робочого столу запускає startx і як я можу це змінити?


18

З багатьох документів я прочитав, що startxзапускає LXDE в Raspbian OS. Я трохи розгублений.

Завжди startxпрацюватиме графічний інтерфейс LXDE?

Також я бачив приклад використання startlxdeкоманди. Чим ця команда відрізняється, і чому startxі startlxdeпрацює той самий GUI (LXDE)? А може, він працює, тому що це графічний інтерфейс за замовчуванням?

Як я можу вибрати графічний інтерфейс за замовчуванням, якщо у мене є кілька?

Не могли б ви пояснити більше деталей навколо графічного інтерфейсу в системах Linux?

Відповіді:


27

startxзапускає, xinitякий запускає X-сервер та сеанс клієнта. Клієнтський сеанс є, ~/.xinitrcякщо він присутній, і в іншому випадку /etc/X11/xinit/xinitrc(місце розташування може змінюватись в залежності від розподілу) Те, що робить цей сценарій, залежить від розподілу. В Debian ( в тому числі похідні , такі як Raspbian), /etc/X11/xinit/xinitrcтрас , /etc/X11/Xsessionякий , в свою чергу запускає скрипти в /etc/X11/Xsession.d. Сценарії Debian шукати для сеансу роботи користувача в інших файлах ( ~/.xsession, ~/.xsessionrc, ~/.Xsession) , і , якщо настройки користувача не застосовується, пробіги x-session-manager(падіння назад , x-window-managerякщо немає [менеджер сеансів] не встановлено, падаючи назад , щоб x-terminal-emulatorв малоймовірному випадку , що ні віконний менеджер не є встановлено).

Якщо ви хочете контролювати те, що виконується, ви можете створити один із файлів користувача, ~/.xsessionабо ~/.xinitrc. Цей файл ~/.xsessionтакож використовується, якщо ви входите в диспетчер дисплеїв (тобто якщо ви вводите свій пароль у вікні GUI). Файл ~/.xinitrcспецифічний для xinitта startx. Використання ~/.xsessionпроходить /etc/X11/Xsessionтак, що він налаштовує такі речі, як методи введення, ресурси, агенти паролів тощо. Якщо ви користуєтеся .xinitrc, вам доведеться робити все це вручну. Ще раз описую тут Debian, інші варіанти Unix можуть налаштувати речі по-іншому. Використання ~/.xinitrcдля визначення того, що виконується під час запуску startxабо xinitє універсальним.

Чи використовуєте ви ~/.xinitrcабо ~/.xsession, цей файл ( як правило , сценарій оболонки, але це не повинно бути , якщо ви дійсно хочете використовувати що - то інше) повинен підготувати всі , що потрібно бути готовим (наприклад , настройки клавіатури, ресурси, аплети , які не запускаються менеджером вікон тощо), а потім наприкінці запустіть програму, яка керує сеансом. Коли сценарій закінчується, сеанс припиняється. Як правило, ви використовуєте execв кінці сценарію, щоб замінити сценарій менеджером сеансу або менеджером вікон.

Імовірно, ваша система працює /usr/bin/startlxdeяк загальносистемний менеджер сеансів за замовчуванням. На Debian та похідних інструментах ви можете перевірити доступних менеджерів сесій

update-alternatives --list x-session-manager

або отримати більш детальний опис із зазначенням того, з яких саме є поточний

update-alternatives --display x-session-manager

Якщо LXDE не була стандартною системою за замовчуванням, і ви хотіли зробити його за замовчуванням для свого облікового запису, ви можете використовувати такий ~/.xsessionфайл:

#!/bin/sh
exec startlxde

У деяких варіантах Unix це може працювати лише для графічних логінів, а не для startx, тому вам також потрібно створити ідентичний ~/.xinitrc. (Або не тотожно: в ~/.xsession, можливо, ви хочете робити інші речі, тому що це перший файл, який виконується в графічному сеансі; наприклад, ви можете поставити . ~/.profileйого вгорі, щоб встановити деякі змінні середовища.)

Якщо ви хочете спробувати інші середовища як разові, ви можете вказати іншу програму, яку слід запускати в самому командному рядку startx. У startxпрограмі є химерність: потрібно використовувати повний шлях до програми.

startx /usr/bin/startkde

startxКоманда також дозволяє вказати аргументи для передачі на сервер. Наприклад, якщо ви хочете запустити кілька сеансів GUI одночасно, ви можете кожен раз передавати інший номер відображення. Передати аргументи сервера після --в командному рядку startx.

startx /usr/bin/startkde -- :1

Я на Debian 9. Моя машина завантажується на tty1. З мого запуску входу startxпочинається сеанс Xfce4 за замовчуванням. Від мого користувача моєї дружини вхід на tty1 або tty2. Її startxкоманда встановлена ​​для запуску Cinnamon (вказано в ~/.xsession). Для другого сервера X мені не потрібно вказувати, $DISPLAYяк зазначено в останній частині вашої відповіді. Хоча це, безумовно, працює. Це автоматично робить його другим $DISPLAYі т. Д. Установка чудова. Немає входу та виходу із графічного сеансу, лише комбінація клавіш для переключення профілів користувачів. Дякуємо за цю корисну відповідь!
jbrock

10

Ні: startxналаштовується. Відповідно до сторінки керівництва :

Щоб визначити клієнта для запуску, startxспочатку шукає файл, викликаний .xinitrcу домашній довідник користувача. Якщо цього не знайдено, він використовує файл xinitrcу xinitкаталозі бібліотеки.

startxце не єдиний спосіб запустити X (як ви бачите з startlxde). Сторінка startxкерівництва знову допомагає:

Сценарій startx - це передній край xinit (1), який забезпечує дещо приємніший інтерфейс користувача для запуску одного сеансу X Window System. Він часто виконується без аргументів.

З іншого боку, якщо ви хочете вибрати графічний інтерфейс (LXDE, KDE тощо), тоді xdmі подібні схожі на зразок kdm, gdmабо LightDMвикористовуються для вибору різних типів робочого столу. У Debian я зазвичай використовую kdm, тому що це дозволяє різні типи робочого столу. Пакувальники gdmзабороняють більшість типів робочого столу, що робить його непридатним для моїх потреб.

xdmдля запуску використовує інший набір сценаріїв, наприклад, ваш ~/.xsessionсценарій разом із системними сценаріями. Подібні схожі можуть ігнорувати це та використовувати власні сценарії. Але це вихідний пункт.


Отже, десь у файлах conf написано, наприклад, запустити LXDE?
CuriousGuy

.xinitrcце сценарій, який робить його налаштованим. Він може запускати LXDE безпосередньо, якщо кодувати це робити.
Томас Дікі

1
startlxdeце не інтерфейс до xinit, це запуск для менеджера сеансів LXDE. Це не заміна startx, це те, що ви можете виконати ~/.xinitrc.
Жил 'ТАК - перестань бути злим'

Тоді йому потрібна певна документація. Серйозно, хороша відповідь спрямовує ОП у бік документації, а не на спробу перефразовувати її (якщо тільки не є якийсь коментар, який слід зробити над документацією, щоб краще зрозуміти це).
Томас Дікі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.