Как вы устанавливаете среду для ES?


10

Я играл с эс последней пару дней, и он (как гс) имеет галтель / особенность , что он работает только его сценарий запуска ( .esrc) на входе в системе. Обычный способ запуска кода в каждом интерактивном сеансе - поместить этот код в %promptфункцию.

Конечно, нет %promptфункции, если es -lона никогда не запускалась.

Итак, вопрос: как настроить среду входа в систему, когда вы входите через gdm или аналогичный, который использует только источник .profile (или .xprofile, .xsession и т. Д.)? Лучшее, что я придумал, это:

if [ -f "$HOME/.esrc" ]; then
    eval "`es -l <<-x
        sh <<<'export -p'
    x`"
fi

Что кажется ... ужасающим. Есть ли подходы лучше?


Я понимаю, что esэто не ваша оболочка для входа. Как насчет настройки alias es='es -l'в .bashrc?
CJM

esмоя оболочка для входа Извините, если я не прояснил это. Но оболочки входа в систему не запускаются в сеансах X до запуска терминалов, по крайней мере, насколько я знаю.
james.haggerty

Я использую bash, нет es. Но когда я открываю новое окно терминала, оно запускается bashкак оболочка входа.
CJM

По крайней мере, для большинства X-терминалов этот параметр по умолчанию отключен (как и должно быть, IMO). Так что да, это обходной путь, но нет причин, по которым этот материал должен запускаться несколько раз, если его можно запустить один раз.
james.haggerty

Хмм, не уверен, что я согласен с твоей правкой, Жиль. Как вы думаете, почему это относится только к ES? (а не * csh или rc или ...?) И зачем удалять gdm и lightdm, поскольку именно они управляют средой?
james.haggerty

Ответы:


1

Так как никто не имеет реального ответа, вот мой ужасный хак. Некоторые оболочки (например, * rxvt) имеют настройки, которые позволяют принудительно использовать оболочку входа. Таким образом, .Xdefaultsвы можете добавить что-то похожее на

urxvt256c-ml:loginShell: true

Это означает, что urxvt256c-mlпо умолчанию все запущенные вами терминалы будут иметь оболочку входа.

Это помогает вообще?


Ну, будучи раздражающим человеком (см. Комментарии выше?), Я скажу, что я уже знал об этом. Это вопрос, является ли этот или мой слегка тревожный код лучшим вариантом; одному не хватает концептуальной элегантности (я утверждаю, что я вхожу в систему для каждого терминала, когда я создаю сотни за один реальный вход в систему?), другому не хватает элегантности реализации (но я действительно считаю, что среда должна быть настроена при входе в систему).
james.haggerty

Ах, теперь я понимаю, что вы имеете в виду. Лично я считаю, что терминал - это единица входа, а не среда X11, поэтому для меня имеет смысл войти в систему три раза, если у меня открыто три терминала. Я оставлю здесь ответ на всякий случай, если он будет полезен для других - посмотрим, сколько голосов «за» привлечено. ^ _ ~
Сардатрион - против злоупотребления SE
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.