ibus的GNOME Shell扩展

Happy hacking: 给Gnome Shell的音量菜单加上设备选择

Tiger Soldier posted @ 2012年1月11日 10:03 in 程序设计 with tags gnome shell , 4939 阅读

从亲戚那里得到了一对USB小音箱,正好弥补本本的声音太小的不足。本本的音量接口长年接着耳机,怕打扰到别人的时候用耳机,平时开音箱。

然而切换耳机和音箱太麻烦了。USB音箱的本质是一块USB声卡,要在这两个设备之间切换,就是在内置声卡和USB声卡之间切换。在Gnome Shell下,最快的切换路径应该是右上角的音量指示器->声音设置->输出->选择输出设备。对于要经常切换的人来说每次都要执行这么大一步是很痛苦的。稍微好一点的方案就是打开声音设置后不关闭,每次要切换就切换到声音设置窗口,然后直接切换设置。但是……有谁愿意整天开着个基本没用的窗口呢?

于是在重复了数十次这样的操作后,我终于受不了了。为什么不直接在音量菜单上加上设备切换的功能呢?我决定把Gnome Shell的音量指示器给hack一下,满足我的需求。

Gnome的音量指示器代码在/usr/share/gnome-shell/js/ui/status/volume.js文件里,主要用到一个叫Gvc的组件,这个组件没有文档,只好看gnome shell里的代码。研究了一晚上,基本实现了我的需求:当设备小于2个时,和系统自带的音量菜单没有区别;当设备大于等于2个时,在音量条下方会显示所有的设备,单击即可切换。如下图所示:

我把改动做成了扩展的形式,启用后会替代原有的音量指示器给原来的音量菜单加上输出设备切换项,禁用后还原。扩展已经提交到Gnome Shell Extension网站上了,地址是https://extensions.gnome.org/extension/142/output-device-chooser-on-volume-menu/目前还在审核中已经通过审核。

代码依旧托管在github上,地址为https://github.com/tigersoldier/Output-device-chooser-on-volume-menu

PS:在研究代码时发现可以直接用滚轮在音量图标上调整音量大小,不必打开音量菜单。@csslayer表示KDE一直有这个功能,我用gnome2的时候一直没试过,不知道gnome2和ubuntu的sound indicator是不是也有这么贴心的设计。

  • 无匹配
Avatar_small
λ 说:
Jan 11, 2012 10:50:12 AM

Gnome2也有这个滚轮功能。我也看看Gnome2怎么hack……

Mike 说:
Jan 15, 2012 12:58:32 PM

能不能做一个搜索窗口的功能呢?这对打开一堆窗口的家伙来说很实用啊

Head_small
Tiger Soldier 说:
Jan 15, 2012 07:52:15 PM

@Mike: 按什么搜索?窗口标题?如果是按程序名称搜索的话,已经有这个功能了

Justin Wong 说:
Jan 31, 2012 03:31:57 AM

为何要替换掉原有的volume menu呢?不能直接加进去?

Head_small
Tiger Soldier 说:
Jan 31, 2012 10:55:10 AM

@Justin Wong: 新的版本已经是直接加进去了


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter