Возможно ли, чтобы Conky отображал Time в словах, а не в цифрах?

Я хочу, чтобы Conky отображал время, используя слова, а не цифры.

То, что я хочу сделать, более или менее похоже на просмотр Pebble Watch (красные часы).

Как на изображении, даже если показано время, а не дата.

Возможно ли это?

1
задан 27 May 2013 в 00:36

3 ответа

Да, это возможно, но только через Lua-скриптинг. Вам понадобится скрипт, который принимает цифры и выводит слова. У многих фреймворков, таких как Django, есть эта функция, но вы можете быть сами по себе, если для нее нет эквивалентной библиотеки Lua:

function conky_translate_number(number) {
    if (number == 1) { 
        return "one";
    } else {
        return "not a clue";
    }
}

Вы можете просто просто написать скрипт Python, который использует Django для перевод с использованием языка шаблонов.

3
ответ дан 25 May 2018 в 02:33
  • 1
    Хорошо спасибо, можете ли вы добавить пример? – Uri Herrera 11 January 2013 в 11:58
  • 2
    Совершено, рудиментарно, но да. Я могу уточнить, если вы хотите, но, кажется, вне сферы действия вопроса, чтобы научить вас Python в целом :) – Naftuli Kay 11 January 2013 в 12:05
  • 3
    Это немного сложнее, чем я думал, я думал больше о возможностях даже при использовании изображений, содержащих полные слова (один, два, три и т. Д.) И что каждое из этих изображений будет меняться в зависимости от времени, поэтому, если это 12 : 22 будет отображаться двенадцать двадцать. – Uri Herrera 11 January 2013 в 12:22
  • 4
    @UriHerrera на самом деле это вполне выполнимо, см. мой ответ – Gerhard Burger 14 January 2013 в 17:22

вы можете написать скрипт 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 находится в одном каталоге.

2
ответ дан 25 May 2018 в 02:33
  • 1
    Интересно, но скажите, что я не знаю, как добавить это в Конки. Как добавить или что делать с файлом Conky, чтобы он импортировал библиотеку? поэтому он отображает такое время. – Uri Herrera 14 January 2013 в 03:22
  • 2
    Я просто обновил ответ, пожалуйста, просмотрите. – Gufran 14 January 2013 в 20:23

Не могли бы вы создать символ-шрифт, который состоит из изображений написанного слова для каждой цифры? Затем вам нужно просто выбрать этот шрифт (если это возможно) для отображения времени.

0
ответ дан 25 May 2018 в 02:33
  • 1
    Это то, что удивительно, что Конки не загружает все шрифты. У меня есть шрифты, которые Conky просто не загрузит, и они по умолчанию Arial или Times New Roman. Не говоря уже о том, что вся работа, создающая шрифт, означает. Кроме того, образ, который я использовал, является примером, я бы хотел, чтобы часы были выделены жирным шрифтом и Минуты в шрифте Thin / Light. – Uri Herrera 14 January 2013 в 02:22
  • 2
    Это даже не сработало бы для чисел, превышающих девять. – Alistair Buxton 15 January 2013 в 05:36

Другие вопросы по тегам:

Похожие вопросы: