Volnoti

出自 ArchWiki

Volnoti 根据其 GitHub 页面描述,是:

一个轻量级的音量通知守护进程,用于 GNU/Linux 和其他 POSIX 操作系统。它基于 GTK 和 D-Bus,应该可以与任何明智的窗口管理器一起工作。最初的目标是为 LXDE 或 XMonad 等轻量级窗口管理器创建一个音量通知守护进程。已知它可以与各种窗口管理器一起工作,包括 GNOME、KDE、Xfce、LXDE、XMonad、i3 和许多其他管理器。

如果您运行的是像 Openbox 这样的轻量级窗口管理器(通常不自带通知守护进程),Volnoti 可能会很有用,尤其是在与笔记本电脑/键盘的特殊按键结合使用时。

安装

安装 volnotiAUR 软件包。

用法

要启动守护进程,请运行命令

$ volnoti

Volnoti 将在后台运行。为了让 Volnoti 自动运行,请自启动它。通过在终端模拟器中输入以下内容来检查程序是否正在运行

$ volnoti-show 20

屏幕中央应该会出现一个半透明的方块,显示音量为 25%。现在您应该配置 Volnoti,以便在每次音量更改时显示通知。

配置

Xbindkeys

以下配置将使用 Volnoti、AlsaXbindkeys 在按下热键时显示音量变化;此示例将假定 Xbindkeys 已按照其页面中的描述安装和配置。

在文本编辑器中打开 ~./xbindkeysrc,并在字符串 # End of xbindkeys configuration 之前添加以下行

# Increase volume
"amixer set Master 5%+ && volnoti-show $(amixer get Master | grep -Po "[0-9]+(?=%)" | tail -1)"
   XF86AudioRaiseVolume
# Decrease volume
"amixer set Master 5%- && volnoti-show $(amixer get Master | grep -Po "[0-9]+(?=%)" | tail -1)"
   XF86AudioLowerVolume
# Toggle volume
"amixer set Master toggle; if amixer get Master | grep -Fq "[off]"; then volnoti-show -m; else volnoti-show $(amixer get Master | grep -Po "[0-9]+(?=%)" | tail -1); fi"
   XF86AudioMute

前两个命令将在按下相应的特殊按键时增加或降低音量,读取新的音量级别并将其作为参数发送给 volnoti-show;第三个命令将切换音量并显示 Volnoti 的相应通知(根据音量是静音还是取消静音)。

现在您可以使用 kill -1 $(pidof xbindkeys) 重启 Xbindkeys 并测试您的配置。

i3

将以下三行添加到您的 i3 配置文件

bindsym XF86AudioRaiseVolume exec --no-startup-id "amixer set Master 2%+ && volnoti-show $(amixer get Master | grep -Po '[0-9]+(?=%)' | head -1)"
bindsym XF86AudioLowerVolume exec --no-startup-id "amixer set Master 2%- && volnoti-show $(amixer get Master | grep -Po '[0-9]+(?=%)' | head -1)"
bindsym XF86AudioMute exec --no-startup-id "amixer set Master toggle && if amixer get Master | grep -Fq '[off]'; then volnoti-show -m; else volnoti-show $(amixer get Master | grep -Po '[0-9]+(?=%)' | head -1); fi"