Планируйте задачи в зависимости от различных условий с помощью «When»

«When» (или «when-command») – это планировщик задач, который позволяет выполнять различные действия при различных стечениях обстоятельствах.

Используя «When», вы можете заставить свой рабочий стол выполнять различные задачи в зависимости от различных условий. Например, вы можете синхронизировать файлы, выполнять некоторые действия по очистке, импорту фотографий с внешних устройств и выполнять многие другие задачи (это требует добавления соответствующих команд или скриптов в When), все это на основании таких условий, как выход из консольного приложения, таймер, изменения в файле или папке и так далее.

Даже несмотря на то, что для некоторых задач вам придется писать собственные скрипты, благодаря When намного проще использовать их, потому что вам не нужно включать все условия, поддерживаемые When, в ваши скрипты.

Как утверждает разработчик, приложение не направлено на полную замену cron и планировщику задач Gnome, хотя в некотором смысле возможности этих утилит могут пересекаться.

Он утверждает, что When нацелен на большую гибкость, несмотря на в некотором смысле меньшую точность, и на предоставление альтернативы более сложным решениям – например, реализации cron-задач, которые проверяют некоторое условие и выполняют соответствующие команды, если условие выполнено.

Используя When, вы можете создавать задачи, зависящие от следующих условий:

  • Команда: код выхода, стандартный вывод, стандартная ошибка с опциями для точного соответствия, учета или неучета регистра и регулярные выражения
  • Заданная дата или время
  • Время простоя сессии
  • Событие: запуск, выключение, спящий режим, возобновление системы, подключение или отключение устройства хранения, подключение или выход из сети, запуск или выход из скринсейвера, блокировка или разблокировка сессии и триггер командной строки (некоторые условия вроде блокировки
  • и разблокировки сессии и событий скринсейвера могут не работать на дистрибутивах Linux, отличных от Ubuntu из-за способа, каким они определяются)
  • Изменения в файле или директории
  • Определенное пользователем событие (dbus – продвинутая возможность)

Для каждой задачи вы можете определить команду, рабочую папку, добавить переменные окружения и проверить команду на успех или ошибку (или не проверять ничего и просто выполнить команду, игнорируя ее вывод).

Из настроек приложения вы можете изменить тему иконок трея или индикатора, уровень логгирования, включить или выключить оповещения файла или директории и многое другое:

Другие возможности When включают опцию для приостановки всех задач (к ней можно получить доступ из трея или меню индикатора), а также окно истории задач, которое включает выходные коды для каждой выполненной к данному моменту задачи, а также результат команды:

Чтобы использовать приложение, для начала нужно создать новую задачу (из трея или меню индикатора выберите «Edit Tasks», введите название задачи, команду и прочую информацию и кликните OK:

when command task

Затем вам будет необходимо определить условие для вновь созданной задачи – чтобы сделать это, из трея или меню индикатора выберите Edit Conditions, введите название для вашего нового условия, тип и прочую информацию и в Tasks выберите задачу, которую вы создали, из выпадающего меню:

when command condition

Важно: не используйте пробелы для названия задачи или условия, поскольку это не будет работать (кнопка OK становится неактивной, если название содержит пробелы).

Для большей информации о When и его использовании смотрите его страницу на GitHub, руководство по When, а больше примеров доступно здесь.

Устанавливаем When в Ubuntu или Linux Mint

Чтобы установить «When» в Ubuntu, Linux Mint и их производных, следуйте следующим шагам.

1. Загрузите последнюю версию When в виде deb-пакета с Github и установите ее.

2. Чтобы завершить установку When, выполните в терминале следующую команду:

/opt/when-command/when-command —install

(без выполнения команды ниже не появится пункт меню When или пункт в Dash, опция для автозапуска не будет работать и так далее).

3. (по желанию) Установите «python3-pyinotify» для поддержки оповещений файлов и папок.

sudo apt-get install python3-pyinotify

Учтите, что на некоторых окружениях рабочих столов (это происходило у меня при использовании Linux Mint Cinnamon) пункт меню When может не отображаться, пока вы не перезагрузите систему.

Сообщить о любых найденных вами багах вы можете на странице приложения на GitHub.