Skip to content

Latest commit

 

History

History
133 lines (104 loc) · 10.6 KB

develop-skin-pc.md

File metadata and controls

133 lines (104 loc) · 10.6 KB

定制皮肤(PC)

?> 本章内容也适用于原版的小小输入法,可以看成是对原版文档(程序目录/doc/yong.chm)的重点总结和补充。

了解皮肤结构

小小输入法 Windows/Linux 版的皮肤文件位于 程序目录/skin 目录下,可以是文件夹,也可以是 zip 压缩包。

使用压缩包便于发布和维护,但是所有图片必须用png格式,且压缩包文件名不能含中文,才能被小小输入法识别。

你可以先以文件夹的形式制作皮肤,完成后再打包成压缩包

每个皮肤文件夹里除了包含若干图片(建议用 png 格式),还包含配置文件(ini 格式,UTF-8 编码)。

最多可以有四个配置文件,名字分别为 skin.iniskin0.iniskin1.iniskin2.ini,分别代表四种不同的风格。

按照习惯,我一般会制作 4 个配置文件,分别对应默认(即双行)、双行、单行、多行风格。

获取皮肤素材

你可以移植其他输入法的皮肤,也可以自制皮肤。下面是一些常用的输入法皮肤下载站:

从某一版本开始,搜狗和QQ输入法的皮肤进行了加密处理,无法提取素材。百度输入法的皮肤目前仍可以解压提取素材。

修改配置文件

在 ini 文件中,# 号表示注释。下面以注释的形式,讲解了各选项(键值对)的作用。这些选项不是必须的,请按需选用。

# 所有坐标位置以左上角为坐标原点(0,0);长度单位为像素;颜色使用 16 进制色值,如 #FFFFFF。

[about]
name=皮肤在 yong-config 里显示的名称。我的习惯是,对于 skin.ini,该值为皮肤名称;对于 skin0.ini,该值为`两行`;对于 skin1.ini,该值为`单行`;对于 skin2.ini,该值为`多行`。
preview=皮肤在 yong-config 里的预览图。格式为`状态栏预览.png,候选窗预览.png`。

[tray]
icon=托盘图标(需要配置文件 [main]tray=1 才能看到)。格式为`激活时的图标.png 不激活时的图标.png`。

# 本段是关于状态栏在浅色模式下的设置。状态栏中的一切图片(按钮、背景等)都用原始尺寸,不支持缩放。
[main]
scale=缩放模式。0为跟随系统缩放,1为不缩放。如果 [main]bg 是图片,该值默认是1,否则默认为0。
bg=状态栏背景。可以是图片(`a.png`),也可以是颜色(`#ffffff`)。
size=状态栏尺寸,仅 [main]bg 为颜色时有效。格式为`宽度,高度`。
line_width=边框厚度,仅 [main]bg 为颜色时有效。可以是1~2的数字(可为小数)。
border=边框颜色,仅 [main]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=方案切换按钮上显示的方案名称的字体,格式为`字体名称(即使有空格也不需引号包裹) Bold(可选) 字号`,如`Monospace 12`。
name_color=方案切换按钮上显示的方案名称的颜色。
keyboard=软键盘按钮的左上角点坐标。格式为`x,y`。
keyboard_img=软键盘按钮的三种状态(默认,高亮,按下)图片,逗号分隔。
radius=候选窗圆角半径。可以是0~7的数字。
dark=忽略 yong-config 的设置,强制使用浅色模式(0)或深色模式(1)。

# 本段是关于状态栏在深色模式下的设置。当在 yong-config 或 [main]dark 中开启深色模式时,本段中未设置的项目会继承 [main] 段,本段设置的项目会覆盖 [main] 段。仅支持 Win10+ 或 gnome 桌面。
[main-dark]
# ……

#候选窗在浅色模式下的设置。
[input]
# 不管背景是图片还是颜色,都会生效的选项。
scale=缩放模式。类似于 [main]scale。
offset=候选窗的左上角点相对于光标位置的偏移量。格式为`x,y`。可在配置文件 [input]offset 中进行覆盖。
tran=候选窗透明度。可以是0~255的整数。
font=候选窗中字体的样式。类似于 [main]name_font。
color=候选项、首候选项、编码提示、光标、页码、编码、缓冲区(如联想提示、手动造词的编码等)的文字颜色。用逗号分隔。
code=编码的左上角点相对于候选窗左上角点的偏移。格式为`x,y`。当为负数时,会被候选窗左边缘裁剪。建议不要超过候选窗的最小尺寸,否则表现无法预期。
cand=单行模式下,表示候选项相对于编码右端的横向偏移和相对于候选窗顶端的纵向偏移。双行或多行模式下,表示候选项相对于候选窗左上角点的偏移。格式为`x,y`。当为负数时,会被候选窗左边缘裁剪。建议不要超过候选窗的最小尺寸,否则表现无法预期。
cand_max=候选项最大数量,一般可不设。
space=候选项间距。
no=是否隐藏候选项序号。0为否,1为是。
caret=是否在编码右边显示光标。0为否,1为是。单行模式下建议取0,不然会出现干扰(未验证)。
page=是否显示右上角的页码。0为否,1为是。
line=候选窗行数。0为两行(一行编码,一行候选项),1为单行(一行候选项),2为多行(一行编码,多行候选项)。
radius=候选窗圆角半径。类似于 [main]radius。
bg=格式为`候选窗背景,[首选项背景色]`。第一个参数可以是图片或颜色。第二个参数只能是颜色,可不设。
pad=在 [input]bg 里设置了首选项背景色填充时,首选项背景色溢出首选项文本的厚度,格式为`上,右,下,左`或者`上下,左右`。
page=页码细节,格式为`是否显示 符号 大小 无效时颜色`,例如`1 ◀▶ 0.7 #bbbbbb`。

# 下面是背景为颜色时,才会生效的选项。
line_width=边框厚度,类似于 [main]line_width。
border=边框颜色,类似于 [main]border。
size=候选窗最小高度(即只有一个候选项时的高度)。格式为`0,高度`。显示效果与文字大小有关,需要不断尝试调整,单行高度建议取 25,两行或多行取 50。
msize=候选窗最小宽度(即只有一个候选项时的宽度)。格式为`宽度,0`。
#单行模式下,候选窗宽度随着`编码宽度+候选项宽度`自适应,高度固定在最小高度;两行模式下,候选窗宽度随着`max(编码宽度,候选项宽度)`自适应,高度固定在最小高度;多行模式下,候选窗宽度随着`max(编码宽度,候选项宽度)`自适应,高度随着`编码高度+候选项高度`自适应。
sep=分割线颜色。分割线位于候选窗最小高度的一半处。单行模式下无效。若不设定,则取 border 值。

# 下面是背景为图片时,才会生效的选项。
msize=候选窗最小宽度,不得小于背景图宽度。格式为`宽度,0`。
#单行、两行模式下,候选窗的最小高度等于背景图片高度;多行模式下,候选窗的最小高度由最大候选项数量决定。
stretch=候选窗背景九宫格切图参数。格式为`到左边缘的距离,到右边缘的距离 [到上边缘的距离,到下边缘的距离]`。在多行模式下,到下边缘的距离最好调大点,否则可能会拉伸失败。
work=在候选窗背景图上,定义一个工作范围。对于单行或双行模式,格式为`0,到右边缘的距离`;对于多行模式,格式为`0,到右边缘的距离 到下边缘的距离`。当编码和候选项的尺寸超出此范围,就会触发 stretch 拉伸背景图,最终调节到编码和候选项刚好都在此范围内。
#单行模式下,候选窗宽度随着`编码宽度+候选项宽度`与工作范围的关系自适应,高度固定在最小高度;两行模式下,候选窗宽度随着`max(编码宽度,候选项宽度)`与工作范围的关系自适应,高度固定在最小高度;多行模式下,候选窗宽度随着`max(编码宽度,候选项宽度)`与工作范围的关系自适应,高度随着`编码高度+候选项高度`与工作范围的关系自适应。

# 本段是关于状态栏在深色模式下的设置。当在 yong-config 或 [main]dark 中开启深色模式时,本段中未设置的项目会继承 [input] 段,本段设置的项目会覆盖 [input] 段。仅支持 Win10+ 或 gnome 桌面。
[input-dark]
# ……

预览皮肤效果

配置文件编辑完成并保存后,在输入法设置里切换到你的皮肤,然后热重启输入法,预览皮肤效果。

欢迎贡献你的成果到本项目:https://github.com/xkinput/xxxk-skin-pc

分享一些经验

候选窗背景使用颜色,字体设为 Monospace 12,可以比较好地适应用户自定义字体。此类皮肤范例:芳味。

有的皮肤设计很好,即使是图片背景,不管字体设为 Monospace 12,还是 HiraginoSansGB-W3 14 或微软雅黑 14,都可以比较好地适应。此类皮肤范例:DarkAbrasive,iType,MetalTech等。

有的皮肤,默认字体为 Monospace 12,但是改成微软雅黑 14后,需要把纵坐标上移 3 个像素,例如WhiteTexture。