Вам также необходимо установить XDG_RUNTIME_DIR
. Измените ваш crontab на этот:
DISPLAY=":0.0"
XAUTHORITY="/home/nazar/.Xauthority"
XDG_RUNTIME_DIR="/run/user/1001"
00 13 * * * /home/nazar/Documents/scripts/lunch_break_job.sh # JOB_ID_2
50 * * * * /home/nazar/Documents/scripts/pc_break.sh # JOB_ID_1
* * * * * /home/nazar/Documents/scripts/cron_job_test.sh # JOB_ID
Убедитесь, что вы изменили nazar
на любое ваше имя пользователя и 1001
на ваш фактический UID. Вы можете получить свой UID, запустив id -u
.
И все, что вам нужно в вашем скрипте, это:
#!/bin/bash
/usr/bin/notify-send "hello"
Я только что протестировал это на Arch с Cinnamon, и он работал нормально.
Переменные устанавливаются в crontab, нет необходимости экспортировать что-либо из скрипта. В этом тоже нет смысла, скрипт вызывается cron, он все равно не будет экспортировать нужные вам значения.
Как я уже говорил:
Вы обнаружите, что Fn не отображается на раскладках клавиатуры, потому что с точки зрения операционной системы ее не существует. Операционные системы не имеют дело с этим ключом.
Клавиша Fn полностью обрабатывается микропроцессором клавиатуры. Знания об этом не передаются по проводам. Там нет «использования» USB HID, обозначающего это. У него нет скан-кода PS/2.
Микропроцессор клавиатуры использует текущее Fn состояние сдвига (, включающее любую «Fn блокировку» или защелку )для определения использования/скан-кодов, отправляемых по сети. для других клавиш, включая клавиши, которые дублируют -как функциональные клавиши, и (, скажем, )мультимедийные клавиши.
(В ряде современных клавиатурных микропроцессоров имеется четыре сопоставления физических клавиш с использованием/скан-кодами, по одному для каждой из четырех комбинаций текущего Fn состояния сдвига и светодиода NumLock (sic! )гос.)
Для некоторых клавиатур с клавишами Fn производитель также предоставляет механизм -частного USB-выхода поставщика для установки значения состояния сдвига Fn , чтобы оно всегда включается, и ключ выключает его, а не всегда выключен, а ключ включает его. Этот механизм вызывается утилитой SETUP микропрограммы и такими утилитами, как «Драйвер» клавиатуры Lenovo, вызываемыми в Windows. Однако помимо этого операционные системы и приложения ничего не знают о Fn .