更新:本文乃根据过时的信息写成,其中绝大部分结论在现在已经完全不成立。请不要浪费时间阅读本文,也不要采纳任何结论。
=============我是过时的分隔线===============
这两天中文社区对于GNOME 3.6计划中的IBus/XKB整合特性提出了异议。在没有充分了解技术细节的情况下爆发了所谓“圣战”。许多人在根本不知道是什么回事的情况下认为GNOME此举将导致自己无法自由更换输入法,并表示严重抗议。为此我草草查阅了一下该特性相关的技术细节,并给出我的结论。由于我不是输入法开发者,有些技术细节可能是我理解错误,发现了请指出。
为了迎合那些没有耐心看长文的人,我先说出我的结论:GNOME对IBus的整合不会影响选择其他输入法的自由,也不会强制安装IBus。
以下是具体分析。要说明的是,本文所指的“输入法”均是指输入法框架而不是输入法引擎。
WPS要出Linux版的消息传了很久了,很多人一直在期待有实物出来。前两天终于发出了内测邀请。我有幸拿到了一个内测邀请,赶紧试用一番。
今天(1-19)是女友@Christinedog的生日,特地发新版本,祝她生日快乐:)
注:在发布不久后很悲剧地发现,在glib 2.31下编译不通过,于是急忙发了个补丁。目前各大发行版使用的glib是2.30,不会受到影响,不过2012年的新发行版本会有问题。这个bug只影响到编译,因此如果是下载安装包而不是自己编译的话,是不会有问题的。
下面是新版本功能介绍。
由于本子突然挂了,修好要一段时间,只好转用家里的机子。Windows自然是用不惯的,于是趁着这个机会装了个Linux Deepin试试。
从亲戚那里得到了一对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是不是也有这么贴心的设计。
Update:
OSD Lyrics 0.5计划中的一项新特性就是提供一个HTTP Player接口,使得可以方便地实现网络播放器支持。
作为其副产品之一,豆瓣电台的支持已经初步实现了。代码库在 https://github.com/osdlyrics/osdlyrics-doubanfm。
不过目前OSD Lyrics 0.5还不能正常使用,需要一系列麻烦的操作运行HTTP Server。当然最终0.5版发布时,一定会做到和0.4版一样简单。
上两张效果图:
桌面歌词模式
滚动歌词模式
将来或许会有虾米/1g1g/等等的支持,等我把0.5做得差不多先。(为什么豆瓣的先出来了?因为我自己用嘛:P)
OSD Lyrics 0.4.1发布,加入一些0.4.0没来得及实现的特性:
Update:
以前说过GNOME3的一个缺点,在通知栏聊天时,无法看到ibus的候选词界面,确切地说是候选词界面被通知栏聊天界面挡住了。这是GNOME Shell的架构所决定的,目前没有方法可以绕过(除非修改GNOME Shell)本身。唯一的解决方法就是将ibus的界面用GNOME Shell的那一套(Shell Toolkit, St)实现。
时隔整整一年,OSD Lyrics 终于更新到了0.4.0。该版本带来了一系列新特性: