定制个性化码表技术 ibus
在不同用户的工作环境中,都会根据各自使用的字符集的不同,而需要定制优化各自的输入法码表,例如,在GB18030中的大量汉字,或许因为输入法码表的老旧,而难于利用自己熟悉的“五笔”方法快速录入,同样,需要面对简繁体操作的用户也是如此。
在SCIM中,如需定制或添加用户自定义码表,就需要了解一些相关知识和技术。首先,SCIM的码表目录是在“/usr/share/scim/tables/”中,里边已经存放了很多扩展名为“.bin”的码表文件,同以往其他系统一样,这些都是经过处理后的文件。之前介绍过如何得到一个码表文件的文本格式这就是说,只要将自己熟悉喜欢的码表文件转换为明码文件,就可以丰富定制自己的码表了。
利用SCIM提供的工具将已有码表转换为明码,就可看到SCIM下的码表文件结构。
# scim-make-table Wubi.bin -o NWubi.txt
从转换为明码的SCIM码表中可以看到基本结构如下:
SCIM_Generic_Table_Phrase_Library_TEXT
VERSION_1_0
### Begin Table definition.
BEGIN_DEFINITION
UUID = 98e4ca3b-8321-4903-a59d-84abce 22f95a
SERIAL_NUMBER = 20040227
ICON = /usr/share/scim/icons/Wubi.png
NAME = Wubi
NAME.zh_CN = 五笔字型
NAME.zh_HK = 五筆字型
NAME.zh_TW = 五筆字型
LANGUAGES = zh_CN,zh_SG,zh_TW,zh_HK
### AUTHOR =
STATUS_PROMPT = 中
KEYBOARD_LAYOUT = US_Default
VALID_INPUT_CHARS = abcdefghijklmnopqrstuvwxy
### KEY_END_CHARS =
SINGLE_WILDCARD_CHAR = z
MULTI_WILDCARD_CHAR = *
SPLIT_KEYS = apostrophe
COMMIT_KEYS = space
FORWARD_KEYS = Return
SELECT_KEYS = 1,2,3,4,5,6,7,8,9
PAGE_UP_KEYS = Page_Up,comma,minus
PAGE_DOWN_KEYS = Page_Down,period,equal
MODE_SWITCH_KEYS = Shift+KeyRelease+Shift_L,Shift+KeyRelease+Shift_R
FULL_WIDTH_PUNCT_KEYS = Control+period
FULL_WIDTH_LETTER_KEYS = Shift+space
MAX_KEY_LENGTH = 4
SHOW_KEY_PROMPT = FALSE
AUTO_SELECT = TRUE
AUTO_WILDCARD = TRUE
AUTO_COMMIT = TRUE
AUTO_SPLIT = FALSE
AUTO_FILL = FALSE
DISCARD_INVALID_KEY = TRUE
DYNAMIC_ADJUST = FALSE
ALWAYS_SHOW_LOOKUP = TRUE
USE_FULL_WIDTH_PUNCT = TRUE
DEF_FULL_WIDTH_PUNCT = TRUE
USE_FULL_WIDTH_LETTER = TRUE
DEF_FULL_WIDTH_LETTER = FALSE
BEGIN_CHAR_PROMPTS_DEFINITION
a 工
b 子
c 又
d 大
e 月
f 土
g 王
h 目
i 水
j 日
k 口
l 田
m 山
n 已
o 火
p 之
q 金
r 白
s 木
t 禾
u 立
v 女
w 人
x 纟
y 言
END_CHAR_PROMPTS_DEFINITION
END_DEFINITION
### Begin Table data.
BEGIN_TABLE
a 工 52175
b 了 65535
c 以 65535
……
yyyy 文言 63
yyyy 言谈话语 2
END_TABLE
SCIM的码表文件主要是由描述部分(BEGIN_DEFINITION……END_DEFINITION)和码表部分(BEGIN_TABLE……END_TABLE)两大块组成的。描述部分主要是输入法的一些基本的设置,如输入法的名字、输入法的图标等;码表部分就是各字、词对应的输入码。
如果将一些自己工作需要的码表文件中的对应此表部分,以相同的结构关系,添加到其中,这样就可制成自定义的SCIM码表文件了。其中码表文件的名字、说明等可以根据需要修改,如自设计了独特的图标文件(48x48大小png图片),也要复制到/usr/share/scim/icons中,并校正第七行的“ICON=”语句。在第五行是这个码表的UUID号码,这是该码表的唯一标识号,如果保留原来的码表,而将新的码表定制后重新命名,则需要给出新的UUID号,如:
[root@localhost tables]# uuidgen
38f7c0ff-a324-4848-a385-969d9c8507dc
[root@localhost tables]#
定制好的码表文件,还需要转换为“.bin”文件,使用同样命令逆向完成。
# scim-make-table NWubi.txt -b -o XWubi.bin
可以通过SCIM设置菜单中的“通用码表”组中的“码表管理”来添加,或手工将新的码表文件复制到如下目录即可。
cp XWubi.bin /usr/share/scim/tables
cp XWubi.png usr/share/scim/icons
重新启动X后,即可体验新的定制输入法功效
参考
http://wiki.ubuntu.org.cn/IBus
定制个性化码表技术 ibus的更多相关文章
- CSDDN特约专稿:个性化推荐技术漫谈
本文引自http://i.cnblogs.com/EditPosts.aspx?opt=1 如果说过去的十年是搜索技术大行其道的十年,那么个性化推荐技术将成为未来十年中最重要的革新之一.目前几乎所有大 ...
- Taro 2.2 全面插件化,支持拓展和定制个性化功能
自 2.2 开始,Taro 引入了插件化机制,允许开发者通过编写插件的方式来为 Taro 拓展更多功能或者为自身业务定制个性化功能,欢迎大家进行尝试,共同讨论~ 当前版本 2.2.1 官方插件 Tar ...
- 用Qt写软件系列四:定制个性化系统托盘菜单
导读 一款流行的软件,往往会在功能渐趋完善的时候,通过改善交互界面来提高用户体验.毕竟,就算再牛逼的产品,躲藏在糟糕的用户界面之后总会让用户心生不满.界面设计需综合考虑审美学.心理学.设计学等多因素, ...
- 定制个性化的FlashPaper生成的文件
1:找到已安装FlashPaper目录下的子目录Interface下的文件DefaultViewer2.swf,在此swf文件的基础上实现自己的修改. 2:利用swf反编译工具,这里推荐 硕思闪客精灵 ...
- Vagrant定制个性化CentOS7虚拟机模板
关于虚拟机模板 想用vagrant搭建hadoop集群,要完成以下准备工作: 三个虚拟机实例操作系统都是CentOS7的server版: 每个实例都要安装同样的应用.关闭防火墙.关闭swap等: 今天 ...
- 定制个性化的GUI
你现在还在使用SAP GUI710或者是GUI720,又或者更早的640等吗?那么古董先生,推荐您使用GUI730吧,您可能会730好在哪?那我建议您去百度或者Google问吧.对于新的GUI730, ...
- 如何用R来定制个性化PPT
ReporteRs包可以创建word,ppt,html文档.它可以格式化R的输出:如可编辑的矢量图,复杂的表格报告功能,企业模板文档的重用(.docx和.pptx).它是一个很好的自动化报告工具,并且 ...
- Quartz任务调度(2)CronTrigger定制个性化调度方案
Cron表达式 1. 时间字段与基本格式 Cron表达式有6或7个空格分割的时间字段组成: 位置 时间域名 允许值 允许的特殊字符 1 秒 0-59 ,-*/ 2 分支 0-59 ,-*?/ 3 小时 ...
- 开源方案搭建可离线的精美矢量切片地图服务-3.Mapbox个性化地图定制入门
1.简介 mapbox是一家非常牛的公司,比如像特斯拉.DJI大疆创新.孤独星球.Airbnb.GitHub.Cisco.Snap.飞猪.Keep.Bosch这些在国内外各自领域中响当当的企业都是它的 ...
随机推荐
- CSS过滤器
CSS过滤器(CSS filters)最初是为了向SVG矢量图提供不同的图片效果.现在,CSS filters 不在局限于在SVG中使用,也可以在图片.文字和其它元素上使用.CSS过滤器效果并不难理解 ...
- 中秋时候做了一个ppt画图插件
http://office.guanexcel.com/chart/chart.html PowerPoint里面简单的画图工具,输入数据选择图样即可插入到PPT中了
- 长沙市轨道交通工程BIM应用招标公告
摘要: 长沙市轨道交通集团有限公司对其长沙市轨道交通3号线一期工程建筑信息模型(BIM)技术应用项目进行国内公开招标 长沙市轨道交通集团有限公司对其长沙市轨道交通3号线一期工程建筑信息模型(BIM)技 ...
- 2014 项目中用到batik
现在手头上的项目用到batik编程,用的maven管理jar包,要在pom.xml中dependencies标签下添加一下配置(batik编程使用的顶层jar包) <dependency> ...
- SQLServer将表数据导出为Insert语句
从网上找到的方法,不过很不错,记录下来,也算是分享下~~ 有一个表,city,有列:cityID,cityName;将此表中所有数据,变为insert语句 select 'insert into ta ...
- javscript创建Emitter
本文简单叙述下javascript是如何建立一个Emitter构造函数的. /** * 定义Emitter构造函数 */ function Emitter() { } /** * 添加监听事件 */ ...
- 2016年4月面试题(Unity)
一. C#中值类型和引用类型的区别? A: 值类型的数据存储在内存的栈中:引用类型的数据存储在内存的堆中,而内存单元中只存放堆中对象的地址. 值类型存取速度快,引用类型存取速度慢 值类型表示实际数据, ...
- 用 pytube 爬取 youtube 视频
这个方法比直接用浏览器插件逼格高点 1. 简介 需要用到 pytube 这个第三方库:https://github.com/nficano/pytube 这里只是把这个页面捡重要部分翻译了一下. py ...
- js按钮浮动随手指方向移动而移动
window.document.getElementById("moveDIV").addEventListener("touchmove", function ...
- 第五章 搭建S3C6410开发板测试环境
开发板是开发和学习嵌入式技术的主要设备.在这章中介绍了S3C6410开发板,它是三星公司推出的一款低功耗.高性价比的RISC处理器.安装串口调试工具:minicom.它的安装步骤:第1步:检测当前系统 ...