[ Пред. ] [ Содержание ] [ След. ]

Обновление строки времени

[ @calendar @time @widget ]

 


В поле «Строка 1» для Виджет «Календарь событий» можно вписать следующую инструкцию:


'<font size="1" color="orange">22</font> <font size="1" color="#b8b2b2">'d MMM'</font>' HH:mm


Первое число (22) — это номер недели. Хорошо бы обновлять его автоматически. В Linux за это отвечают две переменные:

Подробнее см. 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-файл существует.

. /home/astenix/myScripts/kde/update_widget_EventCalendar.sh # если да, то выполняем его ПЕРЕД загрузкой профиля


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


Есть смысл протестировать выполнение этого скрипта в полночь на понедельник.