?> 本章内容也适用于原版的小小输入法,可以看成是对原版文档(程序目录/doc/yong.chm
)的重点总结和补充。
小小输入法 Windows/Linux 版的皮肤文件位于 程序目录/skin
目录下,可以是文件夹,也可以是 zip 压缩包。
使用压缩包便于发布和维护,但是所有图片必须用png格式,且压缩包文件名不能含中文,才能被小小输入法识别。
你可以先以文件夹的形式制作皮肤,完成后再打包成压缩包
每个皮肤文件夹里除了包含若干图片(建议用 png 格式),还包含配置文件(ini 格式,UTF-8 编码)。
最多可以有四个配置文件,名字分别为 skin.ini
,skin0.ini
,skin1.ini
,skin2.ini
,分别代表四种不同的风格。
按照习惯,我一般会制作 4 个配置文件,分别对应默认(即双行)、双行、单行、多行风格。
你可以移植其他输入法的皮肤,也可以自制皮肤。下面是一些常用的输入法皮肤下载站:
- 小小论坛:http://yong.dgod.net/
- 萌娘资源站:http://moe.005.tv/style/srf/
- 百度输入法:https://shurufa.baidu.com/skin
- 2345输入法:http://pinyin.2345.cc/skin_category.php
从某一版本开始,搜狗和QQ输入法的皮肤进行了加密处理,无法提取素材。百度输入法的皮肤目前仍可以解压提取素材。
在 ini 文件中,#
号表示注释。下面以注释的形式,讲解了各选项(键值对)的作用。这些选项不是必须的,请按需选用。
[about]
#name=该皮肤在输入法设置里显示的名称。我的习惯是,对于skin.ini,该值为皮肤名称;对于skin0.ini,该值为`两行`;对于skin1.ini,该值为`单行`;对于skin2.ini,该值为`多行`
#preview=皮肤预览图。格式为`状态栏预览.png,候选窗预览.png`
[tray]
#icon=托盘图标(要在输入法设置中开启显示托盘图标才能看到)。格式为`激活时的图标.png 不激活时的图标.png`
[main] #本节是关于状态栏的设置。状态栏中的一切图片(按钮、背景等)都用原始尺寸,不支持缩放
#scale=缩放模式。0为跟随系统缩放,1为不缩放
#bg=状态栏背景。可以是图片(`a.png`),也可以是颜色(`#ffffff`)
#size=状态栏尺寸,仅bg为颜色时有效。格式为`宽度,高度`,单位是像素,下同
#line_width=边框宽度,仅bg为颜色时有效。可以是1~2的数字(可为小数)
#border=边框颜色,仅bg为颜色时有效
#move=拖动按钮的位置和尺寸。格式为`左上角点x,左上角点y,宽度,高度`,若不设,则空白处均可拖动
#tran=状态栏透明度。可以是0~255的整数,默认为0
#lang=中英切换按钮的左上角点。格式为`x,y`
#lang_cn=中文状态按钮的三种状态(默认,高亮,按下)图片,逗号分隔
#lang_en=英文状态按钮的三种状态(默认,高亮,按下)图片,逗号分隔
#corner=全半角切换按钮的左上角点。格式为`x,y`
#corner_half=半角状态按钮的三种状态(默认,高亮,按下)图片,逗号分隔
#corner_full=全角状态按钮的三种状态(默认,高亮,按下)图片,逗号分隔
#biaodian=中英标点切换按钮的左上角点。格式为`x,y`
#biaodian_cn=中文状态按钮的三种状态(默认,高亮,按下)图片,逗号分隔
#biaodian_en=英文状态按钮的三种状态(默认,高亮,按下)图片,逗号分隔
#s2t=简繁状态切换按钮的左上角点。格式为`x,y`
#s2t_s=简体状态按钮的三种状态(默认,高亮,按下)图片,逗号分隔
#s2t_t=繁体状态按钮的三种状态(默认,高亮,按下)图片,逗号分隔
#menu=菜单按钮的左上角点。格式为`x,y`
#menu_img=菜单按钮的三种状态(默认,高亮,按下)图片,逗号分隔
#name=方案切换按钮的左上角点。格式为`x,y`
#name_img=方案切换按钮的三种状态(默认,高亮,按下)图片,逗号分隔
#name_font=方案切换按钮上,方案名称的字体,格式如`Monospace 12`,或`Monospace Bold 12`
#name_color=方案切换按钮上,方案名称的颜色
#keyboard=软键盘按钮的左上角点。格式为`x,y`
#keyboard_img=软键盘按钮的三种状态(默认,高亮,按下)图片,逗号分隔
[input] #候选窗,其背景可以为颜色或图片
# 下面是背景为颜色时,可以使用的选项
#line=模式。0为两行(一行编码,一行候选项),1为单行(一行候选项),2为多行(一行编码,多行候选项)
#bg=候选窗背景色。
#line_width=边框宽度。可以是1~2的数字(可为小数)
#border=边框颜色
#size=候选窗最小高度(即只有一个候选项时的高度)。格式为`0,高度`。单行高度建议取25,两行或多行取50。
#msize=候选窗最小宽度(即只有一个候选项时的宽度)。格式为`宽度,0`。
#单行模式下,候选窗宽度随着`编码宽度+候选项宽度`自适应,高度固定在最小高度;两行模式下,候选窗宽度随着`max(编码宽度,候选项宽度)`自适应,高度固定在最小高度;多行模式下,候选窗宽度随着`max(编码宽度,候选项宽度)`自适应,高度随着`编码高度+候选项高度`自适应。
#sep=分割线颜色。分割线位于候选窗最小高度的一半处。单行模式下无效。若不设定,则取border值
# 下面是背景为图片时,可以使用的选项
#line=模式。0为两行(一行编码,一行候选项),1为单行(一行候选项),2为多行(一行编码,多行候选项)
#bg=候选窗背景图。单行、两行模式下,高度是固定的;多行模式下,高度可自适应。不论何种模式,宽度均可自适应
#msize=候选窗最小宽度,不得小于背景图宽度。格式为`宽度,0`。
#单行、两行模式下,候选窗的最小高度等于背景图片高度;多行模式下,候选窗的最小高度由最大候选项数量决定。
#stretch=候选窗背景九宫格切图参数。格式为`到左边缘的距离,到右边缘的距离 到上边缘的距离,到下边缘的距离`。在多行模式下,到下边缘的距离最好调大点,否则可能会拉伸失败。
#work=在候选窗背景图上,定义一个工作范围。对于单行或双行模式,格式为`0,到右边缘的距离`;对于多行模式,格式为`0,到右边缘的距离 到下边缘的距离`。当编码和候选项的尺寸超出此范围,就会触发stretch拉伸背景图,最终调节到编码和候选项刚好都在此范围内。
#单行模式下,候选窗宽度随着`编码宽度+候选项宽度`与工作范围的关系自适应,高度固定在最小高度;两行模式下,候选窗宽度随着`max(编码宽度,候选项宽度)`与工作范围的关系自适应,高度固定在最小高度;多行模式下,候选窗宽度随着`max(编码宽度,候选项宽度)`与工作范围的关系自适应,高度随着`编码高度+候选项高度`与工作范围的关系自适应。
# 不管背景是图片还是颜色,都可以设置的公共选项
#scale=缩放模式。0为跟随系统缩放,1为不缩放
#offset=候选窗的左上角点相对于光标位置的偏移量。格式为`x,y`
#tran=候选窗透明度。可以是0~255的整数
#font=所有字体的样式。格式为`字体名称(即使有空格也不需引号包裹) Bold 字号`
#color=候选项、首候选项、编码提示、光标、页码、编码的颜色。用逗号分隔
#code=编码的左上角点相对于候选窗左上角点的偏移。格式为`x,y`。当为负数时,会被候选窗左边缘裁剪。建议不要超过候选窗的最小尺寸,否则表现无法预期。
#cand=单行模式下,表示候选项相对于编码右端的横向偏移和相对于候选窗顶端的纵向偏移。双行或多行模式下,表示候选项相对于候选窗左上角点的偏移。格式为`x,y`。当为负数时,会被候选窗左边缘裁剪。建议不要超过候选窗的最小尺寸,否则表现无法预期。
#cand_max=候选项最大数量,一般可不设
#space=候选项间距
#no=是否隐藏候选项序号。取0或1(0为否,1为是,下同)
#caret=是否显示编码右边的光标。取0或1,单行模式下建议取0,不然会出现干扰(未验证)
#page=是否显示右上角的页码。取0或1
配置文件编辑完成并保存后,在输入法设置里切换到你的皮肤,然后热重启输入法,预览皮肤效果。
欢迎贡献你的成果到本项目:https://github.com/xkinput/xxxk-skin-pc
候选窗背景使用颜色,字体设为 Monospace 12,可以比较好地适应用户自定义字体。此类皮肤范例:芳味。
有的皮肤设计很好,即使是图片背景,不管字体设为 Monospace 12,还是 HiraginoSansGB-W3 14 或微软雅黑 14,都可以比较好地适应。此类皮肤范例:DarkAbrasive,iType,MetalTech等。
有的皮肤,默认字体为 Monospace 12,但是改成微软雅黑 14后,需要把纵坐标上移 3 个像素,例如WhiteTexture。