Я хочу, чтобы Conky отображал время, используя слова, а не цифры.
То, что я хочу сделать, более или менее похоже на просмотр Pebble Watch (красные часы).
Как на изображении, даже если показано время, а не дата.
Возможно ли это?
Да, это возможно, но только через Lua-скриптинг. Вам понадобится скрипт, который принимает цифры и выводит слова. У многих фреймворков, таких как Django, есть эта функция, но вы можете быть сами по себе, если для нее нет эквивалентной библиотеки Lua:
function conky_translate_number(number) {
if (number == 1) {
return "one";
} else {
return "not a clue";
}
}
Вы можете просто просто написать скрипт Python, который использует Django для перевод с использованием языка шаблонов.
вы можете написать скрипт python для этого, используя библиотеку pynum2word, доступную на этой странице sourceforge
. В основном, что это такое:
>>> import num2word
>>> num2word.to_card(10)
'ten'
>>> num2word.to_card(100)
'one hundred'
>>> num2word.to_card(1025)
'one thousand and twenty-five'
тривиальный пример - это то, что я здесь:
>>> import datetime
>>> import num2word
>>> now = datetime.datetime.now()
>>> t = datetime.time(now.hour, now.minute, now.second).strftime('%H:%M:%S').split(':')
>>> print "%s hours %s minutes and %s seconds" %(num2word.to_card(t[0]), num2word.to_card(t[1]), num2word.to_card(t[2]))
>>> two hours thirty one minutes and fifteen seconds
Теперь, чтобы сделать это визуализированным conky, создайте каталог внутри вашего каталога conky config, например ~/.conky/pyscripts/ и вставьте библиотеку pynum2word внутри него, теперь создайте другой файл, скажем timeToWord, и поместите этот скрипт в этот файл:
#!/bin/python
import datetime
import num2word
now = datetime.datetime.now()
t = datetime.time(now.hour, now.minute, now.second).strftime('%H:%M:%S').split(':')
print "%s hours %s minutes and %s seconds" %(num2word.to_card(t[0]), num2word.to_card(t[1]), num2word.to_card(t[2]))
Вы можете изменить форматирование времени и включить дату тоже , если ты хочешь.
затем откройте файл conky config /etc/conky/conky.conf и поместите эту строку где-нибудь:
{execpi 30 ~/.conky/pyscripts/timeToWord}
Что делает эта строка, она выполняет файл сценария каждые 30 секунд и обновляет вывод в conky window.
Конечно, вы можете свободно размещать файлы сценариев в любом каталоге, но убедитесь, что библиотека pynum2word находится в одном каталоге.
Не могли бы вы создать символ-шрифт, который состоит из изображений написанного слова для каждой цифры? Затем вам нужно просто выбрать этот шрифт (если это возможно) для отображения времени.