[ @calendar @time @widget ]
В поле «Строка 1» для Виджет «Календарь событий» можно вписать следующую инструкцию:
'<font size="1" color="orange">22</font> <font size="1" color="#b8b2b2">'d MMM'</font>' HH:mm
Первое число (22) — это номер недели. Хорошо бы обновлять его автоматически. В Linux за это отвечают две переменные:
- %U — week number of year, with Sunday as first day of week (00..53)
- %V — ISO week number, with Monday as first day of week (01..53)
Подробнее см. https://www.cyberciti.biz/faq/linux-unix-formatting-dates-for-display/
Но в виджете не работают ни U, ни V.
Решение — вписывать нужное значение в конфиг-файл виджета, /home/astenix/.config/plasma-org.kde.plasma.desktop-appletsrc
Это можно сделать в любой момент, но изменения в виджете применяются только после перезагрузки Plasma. Поэтому надо записывать номер недели в файл настроек после запуска Plasma, но ДО загрузки моего профиля. Для этого я сделаю отдельный sh-скрипт, который будет запускаться при инициализации профиля.
В принципе можно не заводить это всё в отдельный sh-файл а записать три строки прямо в файл ~/.bash_profile, но тогда будет больше шансов продолбать этот файл при очередной переустановке системы.
Сделать скрипт
mcedit /home/astenix/myScripts/kde/update_widget_EventCalendar.sh
Этот скрипт читает содержимое файла с настройками виджета (fileToUpdate), находит в нём строку со временем и вставляет вместо числа „22” (которое постоянно меняется) содержимое из переменной “weekNumber” актуальный номер недели.
#!/bin/bash export TERM=linux fileToUpdate="/home/astenix/.config/plasma-org.kde.plasma.desktop-appletsrc" weekNumber=$(date +%V) # Обычно кавычки по бокам ординарные, но с ними переменная $weekNumber воспринимается как простой текст # чтобы подставлялось значение из переменной, надо весь запрос обрамлять снаружи двойными кавычками, и если они # есть внутри запроса — экранировать их обратным слэшем, а ординарные экранировать не надо. Также надо экранировать # слэши из html. И ещё надо взять в двойные кавычки переменную с адресом файла, который надо обновить. sed -E -i "s/clockTimeFormat1='<font size=\"1\" color=\"orange\">([0-9]+)<\/font>/clockTimeFormat1='<font size=\"1\" color=\"orange\">$weekNumber<\/font>/g" "$fileToUpdate"
Сделать скрипт исполняемым
chmod +x /home/astenix/myScripts/kde/update_widget_EventCalendar.sh
Запланировать запуск скрипта
Обновить файл настроек виджета надо после запуска Plasma, но ДО загрузки моего профиля.
mcedit ~/.bash_profile
Вставить в него этот текст
if [ -f /home/astenix/myScripts/kde/update_widget_EventCalendar.sh ]; then # проверяем, что sh-файл существует.
Теперь при каждой загрузке профиля (или при каждом включении ноута, если угодно) будет выполняться обновление предопределенной строки в настройках виджета.
Есть смысл протестировать выполнение этого скрипта в полночь на понедельник.