Справочная информация: я использую сборку Arch Linux на своем ноутбуке. Система сидела там три года. Я переустанавливал пару раз, и во время переустановок я переносил старые файлы точек в моем домашнем каталоге. Это делает для меня почти невозможным рассказать / запомнить все конфигурации, которые я сделал. Я использую openbox в качестве WM и не имею никакой среды рабочего стола.

Теперь я хочу кое-что простое:

Я хочу, чтобы компьютер запускал tint2 при запуске. Для этого я выполнил поиск и узнал, что ~/.xinitrc запускается всякий раз, когда я запускаю startx, а ~/.config/openbox/autostart при запуске openbox.

Итак, я сначала сделал свой .xinitrc всего двумя строками:

exec openbox
tint2 &

Затем снова запустили pkill x и startx , openbox запустился как всегда, но не tint2.

Так почему же тогда давайте попробуем autostart ? Я написал однострочную autostart

tint2 &

Перезагрузите X, ничего не произошло.

Я также chmod +x d сценарий автозапуска и попытался изменить строку на

(sleep 2s && tint2) &

но openbox отказывался показывать панель задач tint2 при запуске.

Если я запускаю скрипт автозапуска в окне терминала, то он работает.

Я предполагаю, что вместо этого выполняются некоторые другие конфигурационные файлы / скрипты. Если это так, есть ли способ узнать, какие файлы они? Или просто, почему не работает скрипт xinitrc или autostart?

2 ответа2

1

Традиционный способ сделать сырой .xinitrc - это структурировать его

process1 &
process2 &
process3 &
...
lastprocess

Последний процесс, без амперсанда, это «магический процесс», и закрытие его закрывает X. Традиционно, в twm, магический процесс был xterm. Когда процесс без амперсанда заканчивается, X закрывается. Если вы справитесь с последним процессом (process4 &), X закроется. Я думаю, что ваш пример должен выглядеть так:

tint2 &
exec openbox-session

По крайней мере, в некоторых случаях я считаю, что пропуск амперсанда не имеет значения. Я делаю это случайно и время от времени без вреда для здоровья.

Также не забудьте выполнить chmod u+x .xinitrc

0

Я решил проблему, заменив

exec openbox

с

openbox-session

в .xinitrc . Оказывается, autostart работает только с openbox-session .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .