четверг, 20 июля 2023 г.

Кнопка запуска (лаунчер) для запланированного выключения Linux Mint

Как указано в различных публикациях на тему запланированного выключения Linux, для этого необходимо выполнить в терминале одну из команд: 

shutdown часов:минут для выключения в определённое время, например, 22:59 – shutdown 22:59;

shutdown +40 для выключения через 40 минут.

✅  Примечание. Обычно приводится команда shutdown -h часов:минут, но, как показала практика, достаточно команды shutdown часов:минут.

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

Сначала создаётся скрипт (сценарий), который будет вызывать кнопка запуска, а затем создаётся сама кнопка запуска.

1. Скрипт (сценарий) представляет из себя файл текста (с расширением sh или без него), в свойствах которого (Права) указано, что его разрешено выполнять как программу.

#!/bin/bash
zenity --width=220 --title "Когда выключить" --text="Ввод в формате, например,\n в часов:минут – 23:59 или\n через 15 минут – +15\nНичего не вводить или\nОтменить – через 1 минуту\n" --entry > /tmp/down.txt
shutdown $(cat /tmp/down.txt) &
exit

Выполняется запрос ввода времени когда или через сколько необходимо выключить компьютер. Введённое значение записывается во временный файл, например, /tmp/down.txt :

zenity --width=220 --title "Когда выключить" --text="Ввод в формате, например,\n в часов:минут – 23:59 или\n через 15 минут – +15\nНичего не вводить или\nОтменить – через 1 минуту\n" --entry > /tmp/down.txt

Значение --width=220 указывает на ширину окна формы запроса. Изменяя значение после знака = можно отрегулировать желаемую ширину окна формы запроса.

Символы \n указывают переходы на следующую строку.

shutdown $(cat /tmp/down.txt) & соответствует выполнению команды shutdown и значения, которое считывается из сохранённого файла /tmp/down.txt, после чего выполнение самого скрипта (сценария) завершается. Символ & означает переход к выполнению следующей команды, не дожидаясь завершения выполнения предыдущей.

Как это выглядит:


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

zenity --width=220 --title "Когда выключить" --entry > /tmp/down.txt

2. Кнопка запуска (лаунчер) создаётся на рабочем столе через правое контекстное меню мыши. Примеры для Cinnamon и xfce смотрите по ссылкам: Cinnamonxfce. Указывать выполнение команды в терминале не требуется.

При создании кнопки запуска она по умолчанию создаётся на рабочем столе и в меню в категории "Разное". После создания кнопки запуска её с рабочего стола можно удалить (для поддержания его в чистоте 😀).

Если в категории "Разное" у вас имеется слишком много созданных кнопок запуска, то кнопку запуска запланированного выключения можно поместить в категорию "Программирование". Для этого откройте в менеджере файлов папку (каталог) своей домашней папки ~/.local/share/applications , найдите в ней свой созданный файл .desktop (в Cinnamon расширение .desktop отображаться не будет, будут отображены только названия файлов) и откройте его в текстовом редакторе. В конец файла добавьте строку 

Categories=GTK;Development;

и сохраните его. После этого ваша кнопка будет отображаться в категории "Программирование" (Cinnamon) или "Разработка" (xfce).

Протестируйте работу, указывая различные варианты запланированного времени выключения.

🔔  Будьте внимательны при вызове созданной кнопки запуска. Если вы даже ничего не вводили или нажали кнопку "Отменить", то у вас уже передана команда shutdown. Команда shutdown без аргументов соответствует команде выключения компьютера через 60 секунд.

При необходимости подбора ширины окна формы запроса времени выключения вводите в терминале команду: 

zenity --width=220 --title "Когда выключить" --text="Ввод в формате, например,\n в часов:минут – 23:59 или\n через 15 минут – +15\nНичего не вводить или\nОтменить – через 1 минуту\n" --entry > /tmp/down.txt

При этом передачи системе команды shutdown произведено не будет.

Комментариев нет:

Отправить комментарий