1

Я создал каталог bin в $HOME со сценариями оболочки, каждый из которых настроен для загрузки профиля Firefox; таким образом, я могу использовать простую команду, например, facebook чтобы открыть профиль Firefox, зарезервированный для моей учетной записи Facebook.

У меня проблемы с получением рабочего стола для работы с этой настройкой, хотя. У меня есть запись на рабочем столе в $HOME/.local/share/applications со следующей строкой Exec :

Exec=env PATH=${PATH}:${HOME}/bin facebook

Ничего не происходит, когда я выбираю этот лаунчер. Если я щелкаю по нему в самом каталоге, меня, как и с любой другой записью на рабочем столе, спрашивают, хочу ли я запустить его, несмотря на отсутствие разрешений на выполнение. (Я уже подтвердил, что это работает, как и ожидалось, с множеством других записей на рабочем столе, где приложения успешно запускаются, когда я выбираю «Запустить в любом случае».) Если я получаю к нему доступ из любого из меню, доступных в моем DE (Меню Whisker в Xfce и Традиционное меню приложений, если оно помогает узнать), опять ничего не происходит. Я подтвердил, что сценарий оболочки в bin является исполняемым, и я могу успешно запустить профиль Firefox, щелкнув значок сценария в Thunar или открыв его из терминала. У меня также есть многочисленные записи рабочего стола, в которых я устанавливаю другие переменные среды, такие как HOME , как указано выше, и они запускаются без проблем, независимо от того, как я к ним обращаюсь.

Я понимаю, что есть миллион других способов сделать это; Я мог бы просто указать полный путь к сценарию в файле .desktop, я мог бы создать модуль запуска Firefox с соответствующими переключателями CL в строке Exec , я мог бы добавить ${HOME}/bin к моей PATH в /etc /profile , так далее. (Обратите внимание, что добавление ${HOME}/bin в PATH из .bashrc, по-видимому, не исправляет это, даже если это установлено при входе в систему, а не только в середине сеанса.) Мне в основном просто любопытно, можно ли заставить это работать, особенно для дополнительной экономии, которую он обеспечивает для записи записей на рабочем столе, и потому, что я не хочу расширять свой путь за пределы отдельных экземпляров, подобных этому, если я могу Помоги.

В случае, если это имеет какое-то значение, вот полный скрипт оболочки в моем bin :

#!/bin/sh
firefox -no-remote -P Facebook
exit 0

РЕДАКТИРОВАТЬ: Несмотря на многочисленные предупреждения о синтаксических ошибках (поскольку bash, кажется, пытается запустить его как скрипт оболочки), эта запись рабочего стола также работает правильно, когда установлен u+x. Это просто глупо, и я определенно не хочу иметь исполняемый файл .desktop в ~/.local/share/applications .

1 ответ1

0

Я не думаю, что файлы рабочего стола будут сами разрешать переменные, но вы можете попробовать трюк, который я видел в других местах, с помощью Exec=sh -c "PATH=$HOME/bin:$PATH facebook" и посмотреть, работает ли это.

Найдено по адресу https://stackoverflow.com/a/8980518.

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