Как отображать таймеры обратного отсчета в определенное время дня?

Нет причин, по которым вы не можете использовать Perl в конвейере. Если предположить, что \r (не -окончания строки DOS )и программа равна:

#!/usr/bin/perl
unless( defined $previous && length $previous ){
    $previous = `$_`;
    redo LINE;
}

if( m/CONSTRAINT/ ){
    $previous =~ s/\,\s*\n$/ \n/;
    next LINE;
}

print $previous;
$previous = `$_`;

END{
    print $previous;
}

Тогда cat dump.sql | perl -n program.pm | and so onделает свое дело.

8
21.09.2019, 05:17
4 ответа

С плагином xfce4 -genmon -вы можете самостоятельно создать такой виджет панели.

Установите плагин из репозиториев вашего дистрибутива. Затем создайте скрипт, который генерирует дисплей обратного отсчета :

.
#!/usr/bin/env python3
from datetime import date, time, datetime

now = datetime.now()

def show_countdown(target, event):
    if now >= target:
        print(("{} NOW!").format(event))
        return

    time_left = target - now
    min, sec = divmod(time_left.seconds, 60)
    hrs, min = divmod(min, 60)
    print("{} in {}:{:02}:{:02}".format(event, hrs, min, sec))  

show_countdown(
    datetime.combine(date.today(), time(10, 25)),
    "Cleanup"
)
show_countdown(
    datetime.combine(date.today(), time(10, 30)),
    "Class ends"
)

Измените его по своему усмотрению, сохраните в каком-нибудь ненавязчивом месте и предоставьте ему разрешение на выполнение(chmod +x). Затем добавьте на панель пункт «Универсальный монитор». Укажите элемент панели на свой сценарий и настройте подходящий интервал обновления (. Если вы убрали отображение секунд, вам, вероятно, следует оставить его равным 30 секундам для экономии энергии/производительности ). И вот оно.

2
27.01.2020, 20:11

Python с ‍‍ tkinterобеспечивает самый быстрый и простой способ создания приложений и виджетов с графическим интерфейсом. Создание графического интерфейса с помощью tkinter— простая задача.

Вам просто нужно использовать следующую команду для установкиtkinter

apt-get install python-tk python3-tk

Для пользователей Fedora используйте следующую команду.

dnf install python-tkinter python3-tkinter

Это простой скрипт для обратного отсчета с tkinter, всегда активный и прозрачный:

import tkinter as tk
from datetime import datetime, time

def dateDiffInSeconds(date1, date2):
    timedelta = date2 - date1
    return timedelta.days * 24 * 3600 + timedelta.seconds

def daysHoursMinutesSecondsFromSeconds(seconds):
    minutes, seconds = divmod(seconds, 60)
    hours, minutes = divmod(minutes, 60)
    days, hours = divmod(hours, 24)
    return (days, hours, minutes, seconds)

def counter_label(label):
    leaving_date = datetime.strptime('2022-01-01 01:00:00', '%Y-%m-%d %H:%M:%S')    #end time to count down
    def count():
        now = datetime.now()
        counter = daysHoursMinutesSecondsFromSeconds(dateDiffInSeconds(now, leaving_date))
        label.config(text=str("%d days, %d hours, %d minutes, %d seconds" % counter))
        label.after(1000, count)
    count()


root = tk.Tk()
root.attributes('-topmost', True)       #always on top
root.title("Counting Seconds")          #title
label = tk.Label(root, fg="dark green") #font color
label.pack()
counter_label(label)
button = tk.Button(root, text='Stop', width=25, command=root.destroy)   #stop button
button.pack()
root.wait_visibility(root)
root.wm_attributes('-alpha',0.5)    # transparent windows  0.1 - 1
root.mainloop()

Image

5
27.01.2020, 20:11

Существует много способов и виджетов для таймера или обратного отсчета, но, учитывая, что вы используете xfce и хотите что-то графическое на панели, вы можете попробовать xfce4 -таймер -плагин .

Однако для этого требуется xfce >= 4.6. Я не знаю, какую версию xfce вы используете, но этот плагин вполне может подойти для ваших нужд.

Плагин таймера xfce4 --позволяет вам установить обратный отсчет и будильник с параметрами повторения, если вы хотите установить его ежедневно, например,:

enter image description here

При желании на панели также отображается полоса обратного отсчета:

Идет обратный отсчет:enter image description here

Обратный отсчет пуст:enter image description here

Вы можете прочитать больше о плагине по ссылке выше, но на всякий случай вот параграфы о нем и использовании:

About

This is a simple plugin that lets the user run an alarm at a specified time or at the end of a specified countdown period.

Usage

The plugin is quite simple – it displays a progressbar showing the percentage of the time elapsed. Left-clicking on the plugin area opens a menu of available alarms. After selecting one, the user can start or stop the timer by selecting “start/stop timer” entry in the same menu. New alarms are added through the preferences window. Each alarm is either a countdown or is run at a specified time. By default a simple dialog pops up at the end of the countdown. The user can choose an external command to be run as the alarm and may also choose to have this repeated a specified number of times with a given interval between repetitions.

2
27.01.2020, 20:11

Вы можете использовать crontab и сценарий bash, используя yad.

Например, для уборки в 15 :10 с началом обратного отсчета в 15 :00 и окончанием занятия в 18 :10 с началом обратного отсчета в 18 :00:

Создать скрипт обратного отсчета:

#!/bin/bash
export max=$1
export action=$2
for i in `seq $max`
do
  echo "$[i* 100/max]"
  echo "#${action} in $[max-i] second" 
  sleep 1
done | yad --on-top --progress --no-buttons --auto-close

Отредактируйте crontab пользователя, имеющего доступ к дисплею (Думаю, это должен быть ваш собственный пользователь ), и адаптируйте переменную DISPLAY, если echo $DISPLAYв вашей оболочке отличается от:0:

crontab -e

0 15 * * *  DISPLAY=:0 /path/to/script.sh 600 Cleanup
0 18 * * *  DISPLAY=:0 /path/to/script.sh 600 "End of Class"
1
27.01.2020, 20:11

Теги

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