文章标签 ‘Ubuntu’

Ibus-GJS主题制作

2012.04.29 | 天气: | 标签: , , ,

因为我的个人的电脑是12′小屏又高分辨率(1280×800),所以不改就看起来字就很小。而Ibus-GJS(Gnome JavaScript)版本用的前端是JS+CSS,这就给Ibus输入法主题定制提供了可能性(以前是代码里面写死的样式)

修改前


可以明显看出,连火狐的字体都比输入法的待选词框里的要大。不进行修改的话,打起字来很难受……

待修改文件

只有两个,ibus-gjs的版本是3

  1. /usr/share/gnome-shell/extensions/ibus-indicator@example.com/stylesheet.css
  2. /usr/share/gnome-shell/js/ui/status/ibus/candidatePanel.js

分析代码

不喜欢看的同学可以直接跳到:修改主题
文件1里面的内容是标准的CSS框架,文件2里面的是JS代码,写过网页前端的同学一定不会陌生这两个东西。
从文件2源代码看,选词框的结构是

candidate-panel > candidate-area > candidate-vertical > candidate-vcontent > *candidateTextStyle

当然,水平的选词框就把vertical换成horizontal就可以了。而candidateTextStyle之所以打星号,是因为在Ibus的源代码里并没有给这个应该有的属性添加上类别……因为标签本身就属于popup-menu,本身这样的标签是不必要的,但作者认为这样是很有效的,没办法,我们只能自己来改了。

style_class: 'popup-menu-item',
style: candidateTextStyle,

了解以后我们就可以通过修改CSS来更改Ibus的主题样式了。

修改主题

理论上应该用stylesheet.css来控制这些参数的,但就像我之前说的,作者觉得这样更方便……我会尽力做出更好的patch,让作者改变心意。
const里的candidateTextStyle值
添加

font-size:11pt;text-shadow:0 0 5px #69d6ff;

就可以改变候选词的样式成酷酷的发蓝光的样子,而且变大了~

同理,如果想改变候选编号的话就要改变candidateLabelStyle就可以了。
在stylesheet.css里面的参数基本是控制了整个候选区域的边框等,当然要是你有CSS经验,还可以加上背景图什么的都可以,这样一来相当于皮肤的功能就实现了

如何从源代码自动制作Deb规则&推送至Launchpad

2012.02.29 | 天气: | 标签: , ,

本文环境

OS:Ubuntu 11.10
已安装:build-essential、dh-make、dput等必要的库和软件
对象:不会却又想打Debian包的小白

本文目标

  1. 没有debian规则情况下,大部分自动化地创建debian规则
  2. 文件符合LaunchPad.net标准,上传至PPA

准备工作

  1. 去申请launchpad.net帐号
  2. 创建个人Open PGP密钥
  3. launchpad帐号加入Open PGP密钥
  4. 在LaunchPad.net上建立个人PPA

创建Debian规则

Linux的世界是源代码构成的,时时刻刻会多出很多新的,好玩的软件,但这些软件的作者并没有时间去写debian规则,而各位又想用deb包来安装的话就没办法了。跳过“又臭又长”的Debian打包指南,其实我们只需要一个软件就够了——dh_make。
这个软件会自动地根据makefile写出Debian规则来,执行一下就好了,够简单吧。

下面就用没有debian化的ibus-gjs来做例子:
git clone git@github.com:mengzhuo/ibus-gjs.git ibus-gjs-1 && cd ibus-gjs-1 && mv debian debian.backup
你会发现这时,ibus-gjs-1里面没有debian规则(只剩个备份文件夹啦),还有就是在路径底下直接用dh_make是不行的,因为我们的作者用的是autogen.sh,所以需要用以下命令来做出makefile
./autogen.sh --prefix=/usr && ./configure
成功后(没有任何依赖不足或错误)执行
dh_make -e "mengzhuo1203@gmail.com" -n -s
当然,你可以把email换成你自己的,具体参数是什么意思请问man哦,这时屏幕上应该出现:

图片里大意是叫你去修改一下debian规则,毕竟很多地方还是要人来做的嘛~一般改debian/control和删除一些不需要的*.ex脚本文件,具体怎么改就要看Debian的文档啦,不过本例的最后成品可以参考debian.backup文件夹里的文件。

创建、测试Deb包

上面改好之后,在ibus-gjs-1底下执行dh_make --createorig -s,来创建debuild所需的orig文件,放心按回车吧,那个提示是吓唬你的,因为你已经创建了debian规则,所以它会略过的。
现在,你已经可以自己创建一个deb包了,下面的命令会创建一个deb包,并清除编译产生的缓存。
debuild -b && debuild clean
然后你会发现下面的错误:
这是因为你还没指定你的密钥,如果你不需要上传到LaunchPad的话就可以忽视它啦。现在,返回上层,你就会发现你打好的DEB包啦。

源码上传

就3步:

  1. 获得Open PGP ID,例如我的ID是A0771E56,可以用下面的代码参看
    gpg --list-keys
    我的PGP

    pub 2048R/A0771E56 2011-11-21
    uid Meng Zhuo (For Email and EncryptedFile)
    sub 2048R/DF9E11A0 2011-11-21

  2. 在源代码目录执行
    debuild -S -sa -k[你的ID]
    例如:
    debuild -S -sa -kA0771E56
    来构建launchpad承认的源代码格式
  3. 返回上层目录,执行
    dput ppa:[你的PPA地址] source.changes结尾的文件
  4. 例如:
    dput ppa:mengzhuo1203/ibus-gjs ibus-gjs_1_source.changes
    好啦,现在就坐等LaunchPad给你排队编译这个东西了,大概1-2小时不等

总结

我们学了简单地从源代码制作debian规则和上传代码到LaunchPad,很简单吧,我可是摸索了……3天(业余时间),遥想当年手动写规则,简直是弱爆了。
当然,非常欢迎指正错误,或者是说出更好的方法哈~

如何让Ubuntu启动提速50%与Upstart使用

2011.08.18 | 天气: | 标签: , , ,


不得不说10.04以后的Canonical为了让Ubuntu启动速度加快下了相当大的功夫:不惜去掉传统的rc.X,init.d等,换成能并行启动处理的Upstart,还单独开发了ureadahead这个软件来预加载所有可能读到的文件。我觉得还是应该还真面目以正视听。我的机子按2011年的配置来说是相当老爷机和落伍了,可是启动经过调整后可以达到32秒
而且蓝牙、HAL、WIFI必须的程序没有移出启动队列
首先得说说我的基本配置:

ThinkPad X200s
CPU:Intel Core2 SU3500-1.40GHz[单核]
内存:DDR3 1333 4GB
硬盘:HDD WDC WD2500BEVS 250GB 5400RPM

软件与平台:

Ubuntu 10.04.3 LTS
ureadahead 0.100.0

那么怎么做到的呢?
阅读全文 »