Как изменить среду оболочки, замеченную приложениями, запущенными на рабочем столе?

Предположим, что некоторая случайная программа Foo

  1. изменяет его поведение в соответствии со значениями переменных среды; а также
  2. можно запустить, щелкнув значок Foo, доступный через графический рабочий стол.

Предположим, что для остальной части этого сообщения каждый пример обсуждения Foo был или будет запущен, как описано в (2) выше. IOW, для этого сообщения исключаем возможность запуска Foo через некоторую командную строку.

Для конкретности давайте предположим, что текущий сеанс X11 был запущен «вручную» пользователем; т.е. путем ввода startx в командной строке (текстовый интерфейс) в некоторый момент после входа (текстовый интерфейс) login 1 .


Теперь, AFAICT, по умолчанию, среда, унаследованная каждым экземпляром Foo, является той, которая установлена ​​на момент startx пользователем startx 2 . (Пожалуйста, исправьте меня, если я ошибаюсь.)

Мой вопрос: существует ли какой-то общий способ (т. Е. Независимый от Foo) изменить среду, унаследованную последующими экземплярами Foo (или, по крайней мере, следующим экземпляром Foo, который запускается)?


Предполагая, что ответ на (общий) вопрос выше «Нет» ниже, я предоставляю некоторые конкретные детали, в надежде, что более конкретный вариант вопроса будет иметь ответ «Да»:

  1. на данный момент меня особенно интересует случай, когда Foo оказывается Terminator (эмулятор терминала);
  2. моя оболочка zsh ;
  3. мой рабочий стол – xfce4 + xfwm4.

1 Если ответ на этот вопрос будет другим, если сеанс X11 был запущен автоматически после входа пользователя в систему через графический логин, пожалуйста, дайте мне знать.

2 Или, возможно, точнее сказать, что унаследованная среда состоит из экспортированных переменных оболочки и их значений, как это было, когда пользователь вызывал startx . Я ожидаю, что даже это более тщательно сформулированное описание, в лучшем случае, упрощает, но я надеюсь, что не такой экстремальный, чтобы сделать остальную часть сообщения спорным.

One Solution collect form web for “Как изменить среду оболочки, замеченную приложениями, запущенными на рабочем столе?”

Если вы запускаете свою программу из ссылки на рабочем столе, вы можете изменить файл ссылки, указав желаемую переменную и значение. У меня нет опыта с zsh (пока), но я думаю, что вы все равно можете изменить ссылку, просто добавив env VAR=VAL в начале значения Exec в ссылке. Для дальнейшего чтения я нашел статью ArchLinux, объясняющую много записей в файле рабочего стола. Это статья Arch, но формат этих файлов является стандартным для дистрибутивов.

Вы также можете изменить эту переменную для всего сеанса, используя оконный менеджер.

  • Как я могу подавить пространство между сгенерированными аргументами во время расширения фигурной скобки?
  • Присоединение файлов на диске
  • Как проверить, не существует ли файл с использованием ZSH?
  • Как сделать работу с закладкой ZSH с двумя вкладками
  • SSH на два адреса, используйте тот, который подключается первым
  • Лучший способ убить процессы в списке
  • Преобразование истории в скрипт?
  • Поиск в обратном и прямом направлениях осуществляется с помощью vi-режима в zsh
  • Вывод цитат для scp
  • флаг расширения параметра zsh (P) с ассоциативными массивами
  • Есть ли хороший способ установить локальные переменные среды каталога / проекта?
  • Interesting Posts

    Будут ли поддерживаться символические ссылки, если путь цели остается тем же, но все передается на новый диск?

    Отсутствует меню на хостинге Mint с использованием RDP, если не войти в систему на консоли хоста

    Замените шаблон в файле длинной строкой

    Командный инструмент для создания торрент-файлов, содержащих MD5-хэши файлов?

    Как я могу предотвратить использование аргументов аргументов `xargs` в префиксах пробелами?

    Добавить на серверы `whois`

    Ограниченная связь?

    Повторяйте каждую строку несколько раз

    Exim получение вложений или пересылка электронной почты в очереди

    Справка по установке модуля Apache mod_systemd

    Почему не следует использовать пароли в командной строке?

    Добавление маршрута gtp0 (туннель) снижает соединение eth0

    Сенсорная панель больше не работает. Как повторно использовать?

    vsftpd: 550 Не удалось изменить каталог

    Поиск текста между двумя конкретными символами или строками

    Linux и Unix - лучшая ОС в мире.