Я немного переформулирую, надеюсь, сохранив дух Q:
Как запустить X с помощью команды оболочки? Как это сделать при запуске системы?
Я игнорирую ваш systemctl и большую часть вашего.xinitrc.
Наиболее простой пользовательской командой является xinit
. Трудно сказать, что именно он делает. Он имеет особую семантику и синтаксис. Чтобы ответить на вопрос:
xinit fvwm
запускает сервер x.
По умолчанию используется xinit fvwm -- X :0
, что означает столько же, сколько:
Инициализировать X SERVER "X" на ДИСПЛЕЕ "0" с оконным МЕНЕДЖЕРОМfvwm
Это должно быть так сложно, потому что это мощно. X-сервер и оконный менеджер превращают TTY в так называемый -DISPLAY.
Если вы выберете только xinit
, вы получите специальную среду xclock -. (без каких-либо "скрытых" значений по умолчанию, конечно. См. man xinit. Также человек startx. Сравнивать! ).
Конечно, нужно настроить xorg.conf
! (карта GPU, устройства ввода для x)
Конечно нужен оконный менеджер `, (минимально )настроенный! (fvwm, twm,...)
Для автоматического запуска X через xinit
требуется некоторое планирование и согласование с systemd
и вашим дистрибутивом. Выход за рамки, но только пока.
"запустить x при первом входе в систему" требует (гораздо )большей точности; если это означает, что x
работает на tty1
, я, по крайней мере, понимаю, что это значит. Я не вижу особой связи с определенной оболочкой, такой как zsh
.
Наконец-то я понял.
Мой жесткий диск был слишком большим для моей старой материнской платы. Когда я использовал загрузочную прошивку, раздел, содержащий grub, не был загружен, потому что он находился примерно в 2 ТБ от начала диска.
Я мог бы немного исправить это, запустив grub-install --disk-module=native
, который использует собственный модуль диска grub вместо встроенного ПО для загрузки диска. К сожалению, у меня это разбивает окна:error: device format ata0,msdos1 invalid: must be hdN
. Что сработало для меня, так это поместить раздел с grub в начало диска, а затем загрузить собственный модуль диска только в пункте меню, который загружает Linux.