Я имею, устанавливают некоторые приложения для запущений на каждом входе в систему (например, красное-смещение-gtk, gtg) автоматически, но после добавления их для запущения приложений (System -> Preferences -> Startup Applications
) очевидно, время, потраченное для входа в систему, увеличилось. Из-за всего этого время, которое требуется для моих панелей, рабочий стол и т.д. для появления, является слишком длинным - до которого я вынужден ожидать.
Мне не нужны эти приложения, чтобы сразу быть доступным, но было бы хорошо, если они запускаются в конечном счете, между тем меню/панель человечности доступно для запущения других приложений, что я, возможно, должен был бы.
Я пытался использовать при команде с намерением отредактировать все приложения запуска, чтобы вставить команды в очереди, но это не работало, так как приложения не получают необходимые переменные среды (как ДИСПЛЕЙ).
Это что nice
команда используется для? Какие-либо другие идеи, как я могу выполнить это? Если бы возможно, я хотел бы постараться не редактировать команды приложений запуска, так как это означало бы большое усилие копировать на других машинах, которые я использую.
Используйте команду «сна».
В «Система» -> «Установки» -> «Запуск приложений» отредактируйте команду для программ, для которых вы хотите отложить:
sleep 10 && COMMAND
Замените 10 на количество секунд, которое вы хотите, чтобы ждать, и КОМАНДУЙТЕ на что изначально был в командной строке.
Количество секунд, необходимое для ожидания загрузки вашего рабочего стола, произвольно и может изменяться в зависимости от ситуации. Вместо sleep
попробуйте использовать следующее для запуска автозагрузки приложений, как только нагрузка на систему снизится:
(Редактировать: добавлено предложение koushik.)
#!/bin/bash
#
# Delays running an application until the system load has declined.
#
# Usage:
# run-when-load-low 'your command here'
echo "export DISPLAY=$DISPLAY; $1 &" | batch
exit 0
Сохранить как [ 112] и добавьте run-when-load-low 'COMMAND'
в Настройки запуска приложений.
Примечания к этому методу:
DISPLAY
в приложение. Для большинства настольных приложений это все, что вам нужно. С учетом вышесказанного обязательно учитывайте любые особые случаи и учитывайте этот факт при устранении неполадок, связанных с неправильным поведением. Хорошее место для начала, если вы думаете, что приложению могут потребоваться другие передаваемые переменные среды, это printenv
и документация приложения, хотя я лично еще не сталкивался с этой проблемой. batch
влияет только на , когда запущены приложения; это не меняет их приоритет / милость. run-when-load-low 'gedit My\ Notes.txt'
. Если вам действительно нужно передать параметры в одинарных кавычках в ваше приложение, вам придется использовать двойные кавычки в команде запуска: run-when-load-low "gedit 'My Notes.txt'"
. Для чего-то более сложного, чем это, вам, вероятно, лучше всего просто изменить копию сценария с помощью жестко запрограммированной команды. Я обнаружил, что просто использование sleep 10 && COMMAND
в качестве имени команды не работает. У меня были проблемы с загрузкой как conky, так и xchat слишком рано, и я как-то повредился. Мне пришлось написать небольшой скрипт под названием ~/bin/startup
и поместить его в него:
#!/bin/bash
sleep 10
xchat &
conky &
Вам нужно изменить его разрешения, чтобы разрешить его выполнение с помощью chmod +x ~/bin/startup
, а затем просто заменить загрузочные приложения. введите команду startup
, и она запустит все в сценарии.
Вы могли бы иметь один файл для каждого приложения, если бы вы были склонны таким образом.