是否有一个程序可以在我的屏幕上放置某种视觉通知以供闹钟应用程序使用?

是否有一个程序可以在我的屏幕上放置某种视觉通知以供闹钟应用程序使用?

我使用“闹钟小程序”来时不时提醒我不要盯着屏幕,让我的眼睛休息一下。界面很笨拙,但很管用。

不过,我遇到的一个问题是,有时我没有注意到它何时熄灭。Gnome 面板中的指示器图标(我使用 Flashback)变为黄色,但很容易被忽略。

它可以设置为播放声音,但我经常在公共场合使用笔记本电脑,在这种情况下,定期响起闹钟是不可接受的。

该程序确实为我提供了在闹钟响起时运行命令的选项。如果我可以设置一些东西,比如在屏幕上放置我无法忽略的通知,或者在所有内容上覆盖透明的红色,或者诸如此类的东西,那就太好了。我愿意听取各种想法,重点是它应该是我无法忽略的东西。

我可以运行任何命令来创建某种完全明显的视觉通知吗?

答案1

您可以使用zenity它来创建图形(GTK+)对话框。

尝试添加此命令:

zenity --warning --text="Insert yout text here!"

或者在脚本中插入命令。

请参阅zenity --helpman zenity获取更多帮助。

答案2

使闹钟变暗并为您的屏幕着色,并可选择暂停或关闭:

在此处输入图片描述

  • 创建目录~/bin
  • 复制以下脚本的代码,并将其保存alarm~/bin
  • 将 中的值替换snooze_time = 90为您想要的休眠间隔时间。如果您愿意,您还可以使用伽马值和亮度值,只要您保留语法( 之后第一行中的值while snoozeoption == 1:)。

  • 使脚本可执行。保存~/bin并使脚本可执行是必要的,因为时钟小程序不运行组合命令;您需要能够使用单身的来自闹钟小程序的命令。

您可能需要先注销/登录才能正常工作。

这是脚本:

#!/usr/bin/python3

import subprocess
import time

# snooze time
snooze_time = 90

def get_screenname():
    screendata = subprocess.Popen(["xrandr"], stdout=subprocess.PIPE)
    return [line for line in screendata.communicate()[0].decode("utf-8").split("\n") if " connected" in line][0].split(" ")[0]

screen = get_screenname()
snoozeoption = 1

while snoozeoption == 1:
    subprocess.Popen(["xrandr", "--output", screen, "--gamma", "1:1:0.3", "--brightness", "0.6"])
    snoozeoption = subprocess.call(["zenity", "--question", "--text=What to do?",  "--ok-label=Dismiss", "--cancel-label=Snooze", "--title=Take a Break"])
    if snoozeoption == 1:
        subprocess.call(["xrandr", "--output", screen, "--gamma", "1:1:1", "--brightness", "1"])
        time.sleep(snooze_time)
    else:
        pass
subprocess.call(["xrandr", "--output", screen, "--gamma", "1:1:1", "--brightness", "1"])
  • 在闹钟小程序中,设置运行命令:

    alarm
    

答案3

安装compizconfig-settings-manager

sudo apt-get install compizconfig-settings-manager

打开 CCSM 并转到Effects-> Wizard,选择一些组合键来打开/关闭它。

在此处输入图片描述

对我来说它是Ctrl+++ ShiftAltW

在此处输入图片描述

不要忘记启用向导。

现在你可以尝试一下。按Ctrl+ Shift+ Alt+W打开/关闭动画。

我希望这足够了公然的为你。

报警

现在进入终端,并运行:

xdotool key ctrl+shift+alt+w

如果您想每 20 分钟运行一次,只需将此命令添加到crontab,并导出DISPLAY变量。

执行crontab -e,并添加此行

20 * * * * export DISPLAY=:0.0 && xdotool key ctrl+alt+shift+w

最好自动关闭这种效果,尤其是当你远离电脑时。

此命令将执行相同的操作,但 20 秒后它会关闭。

20 * * * * export DISPLAY=:0.0 && xdotool key ctrl+alt+shift+w && sleep 20 && xdotool key ctrl+alt+shift+w

答案4

可以使用标准桌面通知。例如:

notify-send 'Hello world!' 'This is an example notification.' --icon=dialog-information

参考:

相关内容