Linux 中是否有可在 X 中運作的視覺鈴聲?

Linux 中是否有可在 X 中運作的視覺鈴聲?

我知道 Vim 中有一種視覺鈴聲,它可以讓整個螢幕閃爍而不是發出蜂鳴聲。一些終端程式也具有相同的功能。

我正在尋找一種類似類型的視覺鈴聲,它會在 X 中閃爍我所有的螢幕、所有虛擬桌面上的聲音。肯定會引起我注意的通知方法。

有誰知道它是否存在?

答案1

我不知道這樣的事情,但您可以使用命令列工具notify-send 在桌面上彈出視窗。在 Ubuntu 中,軟體包是 libnotify-bin。例如:

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

答案2

我遇到了同樣的問題,所以我為此編寫了一個程式:

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

希望有幫助。

答案3

根據你的需要,還有xmessage——它很舊,很醜,但是它包含在X中。重要,您按的鍵會在退出狀態中返回)。

答案4

是的,這是可能的!

以下是調暗顯示器 LCD 背光然後將其恢復到原來位置的實現。

步驟1: 找到一種可靠地改變背光的方法[1][2]。我將在這裡使用最簡單的一種,但是 ymmv。

/sys/class/backlight 中有核心(?)級控制項。確切的子目錄名稱將根據您的設定而有所不同。我在本範例中使用此方法,但如果您發現另一個有效的命令,您可以跳過第二步並更改第三步驟中的腳本,以使get_brightnessset_brightness函數使用您選擇的方法。

這會給你你的目前的亮度等級

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 級(使用您之前獲得的值,否則您的顯示器可能會太暗)。我已將它們捆綁到同一個命令中,這樣您就不會陷入太暗的螢幕中。在此測試中,我們以 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閃爍 3 次。

理論上,如果您使用的話,您可以使多個顯示器閃爍/sys/class/backlight/*/brightness,但請注意不同的顯示器可能具有不同的亮度等級。我的戴爾 LCD(透過 DisplayPort-VGA 轉接器連接)在這裡無法工作,但我的筆記型電腦顯示器可以。

進一步的步驟: 在 pidgin 等程式中作為「聲音命令」安裝。我不知道如何在終端模擬器中執行此操作。

相關內容