Как вы устанавливаете среду для 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

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

james.haggerty
источник
Я понимаю, что 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по умолчанию все запущенные вами терминалы будут иметь оболочку входа.

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

Сардатрион - против злоупотребления SE
источник
Ну, будучи раздражающим человеком (см. Комментарии выше?), Я скажу, что я уже знал об этом. Это вопрос, является ли этот или мой слегка тревожный код лучшим вариантом; одному не хватает концептуальной элегантности (я утверждаю, что я вхожу в систему для каждого терминала, когда я создаю сотни за один реальный вход в систему?), другому не хватает элегантности реализации (но я действительно считаю, что среда должна быть настроена при входе в систему).
james.haggerty
Ах, теперь я понимаю, что вы имеете в виду. Лично я считаю, что терминал - это единица входа, а не среда X11, поэтому для меня имеет смысл войти в систему три раза, если у меня открыто три терминала. Я оставлю здесь ответ на всякий случай, если он будет полезен для других - посмотрим, сколько голосов «за» привлечено. ^ _ ~
Сардатрион - против злоупотребления SE