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