Как сделать автозапуск программы только в GNOME

14

Я использую как GNOME, так и KDE SC. В GNOME я использую Docky, но я не использую его с KDE. Итак, я бы хотел, чтобы Docky запускался только тогда, когда я вхожу в GNOME, а не в KDE. В KDE есть возможность сделать автозапуск программы только в KDE. Но я не могу найти такой вариант в GNOME.

Как я могу это сделать?

Заранее спасибо.

Ricky
источник

Ответы:

14

Вы можете отредактировать объект запуска ~/.config/autostartи добавить его в конец:

OnlyShowIn=GNOME

Это плохо названная опция, но она заставит KDE не запускать приложение.

Ressu
источник
3

У меня не установлен kde, чтобы проверить это, но я считаю, что добавление приложения здесь: Система -> Настройки -> Сеансы -> Запуск программ - это специфический гном.

Если это не сработает, вы всегда можете поместить программу в скрипт-обертку, который проверяет значение переменной среды $ DESKTOP_SESSION. Что-то вроде этого:

#!/bin/bash
if [ $DESKTOP_SESSION == "GNOME" ];then
        myApplication
fi

Надеюсь, что это ответ на ваш вопрос!

Анвар
источник
Система -> Настройки -> Сессии -> Автозагрузка программ не зависит от гнома.
Рикки
1

Если вы не можете найти запись, которая запускает программу, вы также можете найти ее в ней /etc/xdg/autostart. Я знаю, что они наконец-то исправили автоматический запуск Nautilus в KDE с помощью настройки OnlyShownIn. Изменение файлов в этом каталоге распространяется на всю систему, поэтому вы можете скопировать файл приложения-нарушителя в~/.config/autostart/

Вместо того, чтобы использовать OnlyShownIn, вы также можете использовать NotShownIn. Это может позволить вам не что-то для одного рабочего стола, а показать это для всех остальных. В этом примере вы можете загрузить Docky во все менеджеры рабочего стола, кроме KDE, используя следующее:

NotShownIn=KDE;

Если вы не хотите, чтобы он запускался на любом рабочем столе, вы можете изменить его на OnlyShownIn=; Линии в файлах .desktop, которые должны заканчиваться точкой с запятой. Точка с запятой также используется для разделения значений для параметров, которые принимают более одного значения одновременно.

Этот трюк будет означать, что вам нужно перечислить все оболочки рабочего стола, которые вы используете, чтобы вообще что-то не запускать. Итак, используяNotShownIn=Unity будет хорошо, если у вас установлен только Unity, но оно все равно начнется, если вы позже установили KDE или Gnome.

Если файл рабочего стола в вашей пользовательской папке автозапуска не мешает запуску приложения, вам нужно иметь дело с файлом рабочего стола в каталоге xdg. Для этого я бы сделал резервную копию файла. Вместо того, чтобы копировать его с расширением bak или чем-то стандартным, что позже может быть перезаписано, сделайте это для воображаемого приложения badapp для этого примера.

sudo cp /etc/xdg/autostart/badapp.desktop /etc/xdg/autostart/badapp.desktop.stop

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

sudo cp /etc/xdg/autostart/badapp.desktop.stop /etc/xdg/autostart/badapp.desktop

Кроме того, папка автозапуска пользователя по умолчанию для KDE заключается в том, ~/.kde/Autostart/что KDE работает так, как KDE.

Томас Сиссон
источник
0

System > Preferences > Startup Applications Это альтернатива Gnome менеджеру запуска KDE.

Марко Чеппи
источник
То, что сказал Марко, я думаю, это специфическая марка.
инвертировать
Да, но это не ограничивается только GNOME. Приложения там также запускаются в KDE.
Рикки
0

Другой способ отредактировать файл автозапуска с помощью строки:

OnlyShowIn=GNOME;Unity;
chrisonbuntu
источник