Для чего нужен «.xsession»?

62

Какова цель .xsessionфайла в домашней папке? Что нужно положить туда? Среды рабочего стола не используют этот файл, и для запуска X из tty есть .xinitrc.

Миржан Иркегулов
источник

Ответы:

58

Если вы войдете в текстовый режим, затем запустите сеанс графического интерфейса с помощью xinit или сценария оболочки startx, а затем xinitвыполните следующие действия:

  • Запустите X-сервер (обычно через скрипт /etc/X11/xinit/xserverrc).
  • Обычно запускают некоторые скрипты в /etc/X11(как правило /etc/X11/xinit/xinitrc), в зависимости от того, как он настроен.
  • Беги ~/.xinitrc, если он существует. Если он не существует, запустите клиент по умолчанию (традиционно xterm).
  • Как только ~/.xinitrcпрекратит работу, убейте X-сервер.

Если войти в систему в графическом режиме на менеджера X отображения (XDM, GDM, KDM, WDM, LightDM, ...), традиционно, что выполняется после того, как вы войти в некоторые сценарии в /etc/X11то ~/.xsession.

~/.xsessionимеет роль ~/.profileи в ~/.xinitrcсочетании: он должен выполнять начальный запуск вашего сеанса (например, определять переменные среды), а затем запускать программы, специфичные для GUI (обычно, по крайней мере, оконный менеджер).

В настоящее время большинство менеджеров дисплеев X предоставляют вам возможность выбора сеанса. При выборе определенного сеанса запускается определенная среда рабочего стола, менеджер сеансов, менеджер окон. Затем выполняется только то, что DE / SM / WM и любые программы, которые он выбирает для запуска, основаны на любых конфигурационных файлах, которые он выбирает для чтения. Во многих средах предусмотрен «пользовательский сеанс», который читает традиционный ~/.xsession.

Жиль "ТАК - перестань быть злым"
источник
3
Я не знаю, что это за «множество сред», но, по крайней мере, kdm молча игнорирует файл «~ / .xsession».
Привет, Ангел,
1
@ Hi-Angel .xsessionФайл читается только в том случае, если вы выбрали определенный тип сеанса. Я знаю, что для Gdm разработчики не хотят включать тот, который запускается .xsessionпо умолчанию, и оставляют его для каждого дистрибутива, а многие дистрибутивы не беспокоятся или не осознают необходимость. Я не знаю, какова ситуация с KDM.
Жиль "ТАК - перестань быть злым"
Ну, вы знаете, я нашел в man kdm, что у kdm есть собственный файл, /etc/kde4/kdm/Xsessionкоторый будет запускаться от имени пользователя сразу после входа в систему. Они лгут - файл (который присутствует между прочим) kdm никогда не трогал, я даже вообще его удалил, и это ничего не изменило.
Привет-ангел
1
@ Hi-Angel Что означает Жиль, так это то, что на графическом экране входа в систему вы часто будете иметь раскрывающееся меню со списком различных сред. Если вы выберете «KDE», он запустится и будет игнорироваться .xsession, как вы описали. Но если вместо «KDE» вы выберете «Пользовательский сеанс» .xsession, вместо KDE будет запущен . Я использую это, например, потому что я запускаю just xfce4-panelи FVWM 2 как мой «рабочий стол»; если бы KDE был установлен в системе, которую я использовал, он был бы полностью проигнорирован.
Курт Дж. Сэмпсон,
15

Запуск X-сессии может быть сложным в эти дни. Хорошее место для начала - сценарий, /etc/X11/Xsessionчтобы увидеть, как все будет выполнено.

В моих системах Debian / Ubuntu скрипт /etc/X11/Xsessionустанавливает переменную USERXSESSION=$HOME/.xsession. Позже сценарий /etc/X11/Xsession.d/50x11-common_determine-startupищет этот сценарий и использует его в качестве основного сеанса, если это разрешено системной политикой /etc/X11/Xsession.options, и если диспетчер отображения не запрашивал никаких других сеансов.

Джим Пэрис
источник
8

Я настоятельно рекомендую вам заглянуть в книгу «Руководство администратора системы X Window»: для X версии 11 . Глава 2 объясняет цель .xsessionи весь процесс настройки для примера установки. Также это хороший освежитель для всей терминологии, связанной с X-Window (и я надеюсь, что вы не напуганы :)). Вы можете получить книгу от

http://archive.org/details/xwindowsystemadm08muimiss

Хотя он довольно устарел, вы можете найти много информации о базовых концепциях, которые не изменились до сегодняшнего дня и которые очень разборчивы. Более того, действительно забавно взглянуть на то, что было на высшем уровне в те дни.

user1146332
источник
7

.xsession - это традиционный стартовый скрипт для среды X11. В настоящее время с менеджерами сессий, такими как kdm, это уже не так уж полезно, а в традиционной системе. Это то, что запускается после запуска X11 с startx.

Никодемус РИП
источник