[software development] 如果想要在deepin窗口左右边缘实现滚轮调节音量怎么搞? Resolved
Tofloor
poster avatar
comicfans
deepin
2025-08-04 22:22
Author

windows下有一个软件是MouseInk,作用是鼠标自定义功能,其中一个比较实用的是,在桌面窗口左右边框可以滚轮调节音量

相对来说比点开角标再调节省事一些。

在deepin下不知道怎么实现这一功能

问了一下AI提供了两个策略

方法1:使用现有的工具

使用 xbindkeysamixer

  1. 安装xbindkeys

打开终端,输入以下命令来安装 xbindkeys

sudo apt install xbindkeys
  1. 配置xbindkeys

创建一个配置文件(例如 ~/.xbindkeysrc),添加以下内容来映射鼠标滚轮事件:

"amixer -D pulse sset Master 1%+"b:4 + Release"amixer -D pulse sset Master 1%-"b:5 + Release

这里,b:4代表鼠标滚轮向上,b:5代表鼠标滚轮向下。

  1. 启动xbindkeys

在终端中运行:

xbindkeys

或者将其加入到你的启动应用程序中。

方法2:使用 xautomationqdbus(针对Deepin特有的窗口控制)

如果你希望只在特定窗口边缘触发音量调节,可以考虑使用 xdotoolqdbus。这种方法可以更精确地控制哪些窗口触发音量调节。

  1. 安装xdotool
sudo apt install xdotool
  1. 编写脚本

创建一个脚本文件(例如 volume_control.sh),内容如下:

#!/bin/bashWINDOW_WIDTH=$(xdotool getwindowgeometry %@ | grep Geometry | awk '{print $3}')WINDOW_X=$(xdotool getmouselocation --shell | awk '{print $3}')WINDOW_RIGHT_EDGE=$(xdotool getwindowgeometry %@ | grep Geometry | awk '{print $3}')if [ $WINDOW_X -gt $(($WINDOW_RIGHT_EDGE - 50)) ]; then    amixer -D pulse sset Master 1%+elif [ $WINDOW_X -lt 50 ]; then    amixer -D pulse sset Master 1%-fi

这里,我们检查鼠标指针是否在窗口右侧50像素以内,如果是,则增加音量;如果是左侧50像素以内,则减少音量。

  1. 使脚本可执行
chmod +x volume_control.sh
  1. 使用xbindkeys调用脚本

修改 .xbindkeysrc文件,添加:

"/path/to/volume_control.sh"b:4 + Release"/path/to/volume_control.sh"b:5 + Release

然后重新启动 xbindkeys

我使用的第一个方式,但库里没有xbindkeys,我用ace加载安装,但难以在根目录增加配置文件,不知道是不是磐石的缘故。看到第二个方式同样需要根目录配置。

问问大佬们有没有更可行的方式,或者有成熟软件可以实现这一功能。

Reply Favorite View the author
All Replies
comicfans
deepin
2025-08-04 22:35
#1

当然uTools可以设置音量快捷键 但是增减幅度太大 很粗糙

Reply View the author
buyike
deepin
2025-08-04 22:55
#2

???是这功能吗?不是有了吗?

录屏_选择区域_20250804225448.gif

Reply View the author
comicfans
deepin
2025-08-04 23:41
#3
buyike

???是这功能吗?不是有了吗?

录屏_选择区域_20250804225448.gif

囧 我不知道啊

Reply View the author