Linux中有没有可视化的钟声?

我知道在Vim中有这样一个视觉铃声,使整个屏幕闪烁而不是哔哔声。 几个terminal程序也具有相同的function。

我正在寻找一种类似的视觉响铃,它将在X中的所有虚拟桌面上闪烁我的所有屏幕。我只有耳机在工作,而且我的电脑音箱太安静,所以我需要其他的通知方法,一定会引起我的注意。

有谁知道它是否存在?

我没有那样的东西,但是可以使用命令行工具notify-send在桌面上popup窗口。 在Ubuntu中,软件包是libnotify-bin。 例如:

notify-send -u normal -t 10000 -i info 'hw' 'Hello world' 

我有同样的问题,所以我为此写了一个程序:

https://github.com/rianhunter/xvisbell

跑步:

 $ git clone https://github.com/rianhunter/xvisbell.git $ cd xvisbell $ make $ xset b on $ xset b 100 $ ./xvisbell & $ xkbbell # test 

希望有所帮助。

您没有指定GNOME或KDE,但是KDE 4.2内置了对此的支持。 如果您在“系统设置”>“辅助function”下查看,则可以在此处打开可视铃声。 KDE还可以让您自定义超出声音的各种系统通知的操作。 例如,您可以显示popup窗口,运行命令,标记任务栏条目等。这在系统设置>系统通知下。

是的,这是可能的!

以下是将显示器的LCD背光调暗并将其带回原位的实现。

第一步:find一种方法可靠地改变背光[1] [2] 。 我会用最简单的一个,但是ymmv。

/ sys / class / backlight中有内核(?)级别的控件。 确切的子目录名称将根据您的设置而有所不同。 我在这个例子中使用了这个方法,但是如果你find另外一个get_brightness命令,你可以跳过第二步,在第三步中改变脚本,让get_brightnessset_brightness函数使用你select的方法。

这会给你你当前的亮度水平

 cat /sys/class/backlight/intel_backlight/brightness 

现在尝试改变它:

 export BRIGHTNESS=/sys/class/backlight/intel_backlight/brightness echo 50 |sudo tee $BRIGHTNESS; sleep 1; echo 80 |sudo tee $BRIGHTNESS 

这会让你的屏幕变暗一秒钟,然后把它变成80级(使用你之前获得的值,否则你的显示器可能会太暗)。 我已经将它们捆绑到同一个命令中,所以你不会被太暗的屏幕卡住。 在这个testing中,我们以root身份行事。 接下来我们会为您自己的帐户获取权限。 (如果不行的话,就到这儿吧!)

第二步:访问您自己的帐户:

 sudo chmod g+w /sys/class/backlight/intel_backlight/brightness sudo chgrp video /sys/class/backlight/intel_backlight/brightness sudo usermod -a -G video my_username 

(请注意,这可能无法通过重新启动,如果是这种情况,我会回来修改,但是我只重新启动一次,所以请耐心等待。)

第三步:写下如下的脚本:

 #!/bin/sh help() { cat <</help Blink/flash the whole X display (on one LCD monitor) Usage: visual-bell [BLINK_COUNT] 0.2+20140327 Copyright (c) 2010+ by Adam Katz <www.khopis.com/scripts>, LGPL 2+ /help } SLEEP_TIME=0.03 BRIGHTNESS=/sys/class/backlight/intel_backlight/brightness get_brightness() { cat $BRIGHTNESS } set_brightness() { echo $1 > $BRIGHTNESS } COUNT=${1:-1} # read count from first argument (default to one blink) # if the argument wasn't a number greater than zero, show help and exit if ! [ "$COUNT" -gt 0 ] 2>/dev/null; then help exit 1 fi LEVEL=`get_brightness` while [ $COUNT -gt 0 ]; do set_brightness 0 # blacken the screen sleep $SLEEP_TIME set_brightness $LEVEL # revert the screen to previous brightness sleep $SLEEP_TIME COUNT=$((COUNT-1)) # decrement counter done 

你应该很好走。 保存为/usr/local/bin/visual-bell并将其设置为可执行文件( chmod +x visual-bell ),然后运行它。 这个脚本会闪烁给定的次数(默认为1),所以你可以运行visual-bell 3来闪烁三次。

如果您使用/sys/class/backlight/*/brightness理论上可以使多个显示器闪烁,但要注意不同的显示器可能具有不同的亮度比例。 我的戴尔液晶显示器(通过DisplayPort-VGA适配器连接)在这里不起作用,虽然我的笔记本电脑显示器。

进一步的步骤:在像pidgin这样的程序中安装为“声音命令”。 我不知道如何在terminal模拟器中做到这一点。

你可以使用像Zenity这样的东西来显示一个警告对话框,或者甚至是一个通知区域项目。 如果你想要基于文本的东西,你也可以使用dzen或者xmsgd 。 请注意,这些“闪光屏幕”都没有。

根据你所需要的,还有xmessage – 它是旧的,它是丑陋的,但它包含在X中。它不会刷新屏幕,但会popup一条消息,并且你可以指定哪些button如果这一点很重要的话,你按下的是退出状态)。

根据事件的性质和您使用的桌面环境, Specto可能适合您。

保持简单 – 试试这个:
xrefresh -solid green
随意重复命令多次(也许甚至使用不同的颜色),使您的视觉更令人印象深刻的…… 😉

我很惊讶没有人甚至提到了ansi转义字符。 这怎么样(也许是视觉效果更清晰的解决scheme之一):

 printf "\x1b[?5h"; sleep .1; printf "\x1b[?5l" 

并做了。 🙂


如果你想做一个小方法,那就把下面的东西放在你的bashrc / zshrc / whateverrc里:

 vflash(){ printf "\x1b[?5h"; sleep .1; printf "\x1b[?5l" } 

现在,当你把terminal或长时间的命令放在terminal上时,terminal会闪现你的sudo pacman -Syu; vflash ……像sudo pacman -Syu; vflash sudo pacman -Syu; vflash ; sudo apt-get update && sudo apt-get dist-upgrade; vflash sudo apt-get update && sudo apt-get dist-upgrade; vflash ; 等等

如果你想让它继续闪烁你(muweheheh):

 flasher () { while :; do printf "\x1b[?5h"; sleep 0.1; printf "\x1b[?5l"; ## for bash read -s -n1 -t1 && break; ## for zsh # read -s -k1 -t1 && break; done; } 


注1:这在tmux或屏幕中不起作用。 :'(

注2:这些信息是从维基百科中检索出来的:Ansi Escape Codes and modified。 阅读! 这是好东西; 我承诺。 🙂

注3:使用的ansi转义码是\x1b 。 在大多数基于Linux的操作系统中,您可以使用\e ,但是我总是最终使用\x1b因为它也可以在OS X上运行(即使我不使用OS X也不会这么做)。

一个名为xcalib的工具可以反转video。 颠倒两次实现了视觉效果。 这是一小段代码来做到这一点。

 for i in 1 2; do sleep 0.1 xcalib -alter -invert done