关于我
 

xjpvictor's Blog
小老鼠,上灯台,两只耳朵竖起来

Archlinux moc 歌词


各种折腾·archlinuxgnomelinux

本文发表于超过180天以前,部分内容可能已经失效

archlinux下,用moc一样可以显示歌词。先来个效果图,再慢慢道来。

要做出这个,需要音乐播放器(废话嘛这不是。。),支持mpd, mocp, audacious, amarok, exaile, quodlibet, rhythmbox, mplayer这8种播放器。因为显示歌词的脚本是xiooli的。看这里

这个脚本用到了wget和bc,需要先安装。但是由于archlinux没有gnome-osd,所以采用cli方式。也就是在终端里显示歌词。终端选择的是gnome-terminal,因为用的是gnome桌面,胡哥指示,不折腾。

在panel上建一个启动器,输入如下命令

gnome-terminal --window-with-profile=lyrics --geometry=30x3 -x ~/files/scripts/lyrics

--geometry=30x3是说这个窗口是30个字的宽度,3个字的高度。
-x是执行后面那个script,就是xiooli那里的那个。
--window-with-profile=lyrics是说采用lyrics这个profile。需要在gnome-terminal中新建一个名叫profile的profile。在general tab里把show menubar取消掉。在title and command tab里设置initial title为Lyrics,注意大小写sensitive的,虽然最终不会看到这个窗口的边框,也就看不到名字,但这句是很重要的,待会分解。在colors tab里把背景设为黑色,字体设为黑色。在background tab里设为transparent background,透明度自己设定。在scrolling tab里把scrollbar设为disable,把scroll on output和keystroke都选上。

用compiz去掉窗口的边框。在window decoration里面的decoration windows里面添加规则

& !(title=Lyrics & class=Gnome-terminal & name=gnome-terminal)

这样就没有边框了。Lyrics是大小写sensitive的。现在知道为什么要在gnome那里把名字改成Lyrics了吧。原因就在于compiz。后面还有很多地方用到这句。

这样就好了。效果是有了。不过配合compiz,能得到更好的体验。继续分解。

首先,在ADD helper里面,misc options里面的window types中,加入

& !(title=Lyrics & class=Gnome-terminal & name=gnome-terminal)

也就是说,当gnome-terminal的名字叫Lyrics时,不要应用ADD helper。

然后在place windows里面,在fixed window placement中加入规则到windows with fixed position,positioned windows为

title=Lyrics & class=Gnome-terminal & name=gnome-terminal

X positions设为550,y positions设为21,选中keep in workarea。这样歌词窗口就会在x550和y21的地方显示出来了。

下一步在window rules里面修改。在skip taskbar,skip pager,above,sticky,no focus中加入

title=Lyrics & class=Gnome-terminal & name=gnome-terminal

也就是说这个歌词窗口不在任务栏窗口列表显示,skip pager就是说当show desktop时这个窗口不动,above就是总在最上,sticky就是在每个workspace都显示,no focus就是说不要聚焦到这个窗口,也就是不能左键点击。

但是还有一个问题,就是如果在那个窗口上点击,虽然不能聚焦,仍然会挡住后面的窗口。不能穿越这个歌词点击后面的窗口。compiz这时候发飙了。用compiz的ghost插件解决问题。

ubuntu的zhuqin介绍过这个插件,点这里,注意,不要猛击,轻点,保护鼠标。。总得来说就是把这个链接里的几个文件下载下来,放在一个目录下,cd进去,然后

make clean
make
make install

注意,不要sudo make install,用自己的帐户。compiz的version要是最新的0.7.8,其实这个插件在0.7.6上也是能工作的。

装好了ghost插件以后,在compiz的设置里面找到ghost,在extras类别里面。设置好快捷键,在window types里面输入

(title=Lyrics & class=Gnome-terminal & name=gnome-terminal)

然后把fade windows only on mousover选中,把opacity调低,我调到了30,其他都调到100,这样当鼠标移到那里的时候歌词窗口就变透明了,就不会挡住后面的窗口。而且这时候直接就可以点击后面的窗口而不会被挡住了。如果要退出歌词窗口,就用快捷键停止ghost,然后在歌词上点右键关闭窗口就行了。停止ghost以后还能把鼠标放在歌词上用滚轮回顾前面的歌词。再来一张图。变透明的。

现在是不是很完美呢。千千静听的歌词算什么,有这个好么?哼。。

-----------------------------------------华丽的分割线-------------------------------

当这样设置之后,emesene的notification总会抢焦点。比如说你正在打字,当emesene有notification出来时候,焦点就到了notification的窗口上去了。这个很讨厌。于是在compiz里的window rules里的no focus中加入

| (class=emesene & title=Controller.py)

最前面的 | 是因为前面已经写过了关于歌词窗口的规则,这两个规则是or的关系。同时在general options里面,把focus & raise behaviour中的focus prevention level设为off。因为这个会使得notification不能获得焦点的同时也不能总在最上了,于是会被当前窗口挡住,而且这个设置也会导致qq掉线的提示不能在最上,所以干脆off掉,把emesene notification的设置写在window rules里。

-------------------------------又是华丽的分割线--------------------------------------

gnome-terminal现在似乎是真透明了。以前是假的,只是把壁纸相应的部分显示出来,现在是真的了,而不是显示壁纸了。不错。

本文 "Archlinux moc 歌词" 由 K. Huang 首先发表于 xjpvictor's Blog 并以 CC BY-NC 4.0 许可证发布 © 2009
转载注明引用来源 https://blog.xjpvictor.info/2009/01/archlinux-moc-lyrics/

赞助我

评论

你的邮箱地址不会被公开。必填项以 * 标出

无意义或不相关评论将被删除

取消 上传图片 或拖拽上传

* Some files will not be uploaded. Only png, gif, jpg are allowed and maximum 10 images, each file less than 10M.

你可以添加 10 个 png/gif/jpg 图片 (每个文件小于 10M)

允许使用以下html标签:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

你可以上传文件,粘贴代码或长文至 Drop.it.r

更多相似文章