veket官方网站论坛

veket

 找回密码
 要注册
搜索
查看: 7374|回复: 4

icewm主题制作之三 - 其他icewm主题设定

[复制链接]
发表于 2009-4-30 17:15 | 显示全部楼层 |阅读模式
本帖最后由 perryfa 于 2010-12-29 05:50 编辑

在veket里,icewm主要管理的就是工具条和程序窗口。这两个部分我们已经做完了。现在我们要把剩下的零零碎碎的做完。

1. 主菜单背景和选择条

主菜单背景图片:menubg.xpm
选择条图片:menusel.xpm

(1)主菜单背景
主菜单背景图片是可大可小的,icewm程序默认是用很小的图片拼出大图来,要多大就拼多大。
这是一个没有定义渐变的菜单背景,用一个1x3的小图片拼接出来的菜单背景:
图一

                               
登录/注册后可看大图


如果我们在default.theme里面,把menubg.xpm放入Gradients参数,则程序就能够自动做出渐变来,如下图右边是个2x2的图片,放了4种颜色,在菜单背景里显示为:
图二

                               
登录/注册后可看大图

主菜单背景的效果就是这四种颜色的渐变。

所以,理论上menubg.xpm图片可以随便做,大小无所谓,只要填满颜色就行,透明是不支持的,如果图片的不透明度低于50,程序直接给你加上“美丽的”- 桃红色。
也许是我受过“小窗口”事件的刺激,从1.9版本开始使用veket的同学应该还记得这事,icewm主题做得太复杂、启动速度太慢,结果系统托盘启动出现了时间差问题,不能正常工作。所以,我每次做主题总在努力地把图片做小,每做一张稍大的图片我心里就会产生歉疚感。这个范例主题,因为一直都想把那种无规则的美丽纹理体现在主题里,所以,所有的图片都是偏大的。
菜单背景图片是无所谓大小的,所以想要纹理,放张大图片,要多细致就有多细致。作为教程,这没什么可演示的,找张风格合适的图片就好了,其实Perryfa-rusted的menubg.xpm就非常适合这个主题。而且颜色也不会太暗,不影响看菜单内容,是个很好的图片:
图三

                               
登录/注册后可看大图

就是太大了。这个主题启动慢应该有它一份功劳。那就做一个稍微小一点的图片。

打开主菜单拷个屏,把拷屏图像拿来量量,看看主菜单通常有多大,113x395,好吧,做一个一半大的图片,57x198, 让程序去放大拉伸好了。比例对了就没问题。
还是用图三主菜单底色的那块铁板当背景,从壁纸裁两条铆钉进去,为了比例协调稍微缩小一点铆钉,结果就是这样:
图四

                               
登录/注册后可看大图

看着还行就这样了。另存为:menubg.xpm

(2)主菜单选择条
这个图片我一般做20像素高,100宽就差不多了,让程序自己缩放。
老规矩,从壁纸素材切一块,缩放成合适的大小:
图五

                               
登录/注册后可看大图

保存成:menusel.xpm

(3)主菜单文字颜色及边框定义:
在default.theme有一些关于主菜单的参数定义。主要有:

主菜单文字颜色
# 一般菜单项的文字颜色,黑色
ColorNormalMenuItemText="rgb:00/00/00"
# 被选中的菜单项的文字颜色,白
ColorActiveMenuItemText="rgb:fa/fa/fa"
# 无法选择的菜单项文字颜色,深灰
ColorDisabledMenuItemText="rgb:31/2a/26"

主菜单背景色
因为我们已经使用了图片去定义主菜单背景,所以,此处的定义将体现在主菜单的边框和分割线。
# 一般菜单项背景色,亮灰(高光)
ColorNormalMenu="rgb:9c/9c/9c"
# 被选中的菜单项背景色,暗绿(阴影)
ColorActiveMenuItem="rgb:06/2e/05"
# 无法使用菜单项的背景颜色,淡灰
ColorDisabledMenuItemShadow="rgb:98/98/98"
要注意的是,在主菜单的外面一圈,会用一般菜单项和选中的菜单项背景色这两种颜色围出两圈细线,一般菜单项背景色在内,选中菜单项背景色在外。分割线也会出现两条,一般菜单项背景色在下,选中菜单项背景色在上。所以,我一般选前者为浅色高光,后者为暗色阴影,这样整个菜单就稍微有点凸出的感觉,如果想让它下陷,那就反过来。

最后别忘了把主菜单的两张图片放进Gradients参数里,不然就不能缩放了,会发生惨剧地:
Gradients="desktop.xpm icewm.xpm toolbuttonbg.xpm menubg.xpm menusel.xpm taskbuttonbg.xpm taskbuttonminimized.xpm taskbuttonactive.xpm workspacebuttonbg.xpm workspacebuttonactive.xpm"

2. dialog 窗口
什么是dialog窗口?我先前也不知道,只好老老实实学着别人依样画葫芦地做,做完了也不知道是咋回事。后来装了一个外来的主题,发现有些程序窗口很难看,研究了半天才发现是dialog窗口没有定义,icewm程序只能采用默认的,所以奇丑无比。这才算让我找到了。
点主菜单 - 图象处理 - Gcolor2 颜色选择器
打开这个程序你就知道dialog窗口是什么样了。似乎就是比一般窗口简单一点,少了一个最大化的按钮。
因为我用的这个模板主题已经做好所有图片的连接,所以,尽管我没做任何事情,窗口看上去仍然是基本正常的:
图六

                               
登录/注册后可看大图

只是右上角的按钮出了问题,因为按钮是一体做的,中间少了一个最大化按钮,按钮的色泽就不连贯了,这没什么办法。

通常对这个窗口要做的事情有二:
(1)窗口图片的连接
如果你非要重新做个窗口,我没意见,不过我通常就是照常规走,我琢磨了那么多网上的主题,没有一个人去专门做这个窗口的,全是连接。
怎么做连接? 把全部frame字头的图片都连接到dframe字头就行了。例如
frameAT.xpm 连接到 dframeAT.xpm
frameIBL.xpm 连接到 dframeIBL.xpm
.......
等等等等。这样就行了。
标题栏是默认和程序窗口一样的,不用做。

(2)default.theme文件定义
由于dialog窗口只是在边框上有自主权,所以,边框的尺寸是要定义的:
DlgBorderSizeX=6
DlgBorderSizeY=6
和程序窗口一样,宽度为6,因为我们使用了图片连接,图片就是照6像素做的。

另外还有一些参数,如果你不做图片连接,那么就可以派上用场了,对我们的主题没用:
# Dialog box color
ColorDialog="rgb:ff/ff/ff"
# Dialog Label color
ColorLabel="rgb:ff/ff/ff"
# Dialog Label text color
ColorLabelText="rgb:00/00/00"

3. ToolTip信息框
这个小东西一开始我都没主意到,所以早先的主题都没做。
就是这个,显示“文件搜索”提示信息的那个小框:
图七

                               
登录/注册后可看大图

还有,你把鼠标移到程序窗口的按钮时,也会有个小信息框出来告诉你,这个按钮是干什么的,“最大化”、“最小化”之类的。
这个信息框不需要做什么图片,在default.theme里定义一下背景色和文字色就可以了:
# ToolTip信息框背景色
ColorToolTip="rgb:2D/19/10"
# ToolTip信息框文字色
ColorToolTipText="rgb:ff/ff/ff"

4.程序窗口缩放指示图标设定
当我们把鼠标移到程序窗口角上时,会出现一个图标使我们能够同时改变窗口的高度和宽度。
图八

                               
登录/注册后可看大图

这个图标不是默认出现的,如果不特别定义,你只能或者改变窗口高度、或者改变窗口宽度,要做两次,不能同时做。
在default.theme里定义:
# Resize corner width
CornerSizeX=24 # 0-64
这样图标就能出现了,24定义图标的大小,表示是高宽各为24像素。

5. 图标
这里的“图标”指的是显示在工具条任务按钮以及程序窗口左上角的小图标。
在主题目录里有个icons子目录,似乎是干这个用的。不过,我自己也还没太弄明白。
按照设置主题参数的个人体会,icewm主题需要定义什么,不需要定义什么,并不是一定的,非常依赖于系统默认设定,甚至对于不同版本的veket也可能会不同。我不能确定风清扬是不是会在某个版本突然想起点什么,跑去改了icewm的系统默认设置。
在/root/.icewm/目录里有一些系统默认设定,像preferences和prefoverride这种文件,里面的设定是可以随便改的,每个系统可能不一样。
所以,从网上下载来的主题可能不一定完全适合veket,就算大家都在用同一个版本的icewm,系统默认设置不同,default.theme文件里需要的设置也不同。系统默认设置是拥有较高话语权的,例如字体和字号,无论我在default.theme里怎么设置都是没用的,因为preforverride文件里的设置是决定性的。所以,也许别人的系统是不需要某些设定的,而veket需要。又或者别人的某些设定对veket是多余的。
veket的默认设定是风清扬他们弄的,根据什么我也不知道。我只能去读,知道什么是被设定了,什么还没有,只有默认没设定的,我才能在default.theme设置。
按照prefernces文件对于图标路径的设定,icewm应该首先到:
/usr/local/lib/X11/mini-icons
/usr/local/lib/X11/pixmaps:/usr/share/icons
/usr/share/pixmaps
这三个目录寻找图标。如果没有找到才能到主题的icons目录里找,如果还没有就到系统主题默认图标目录里找(/usr/share/icewm/icons,在veket里是从/usr/local/lib/X11/mini-icons目录连接过来的)。
但是,事情好像不是这样。
目前我看到的情况是,application和fold这两个图标永远从各个主题的icons子目录取,而像firefox这个图标,以前是从不显示,不管是往系统默认目录里放还是在主题目录里放,都不显示。但是,由于我无意中升级了firefox,升到了firefox3.0.5,突然就显示图标了,但显示的图标是从哪个目录来的,我不知道,反正肯定不是主题icons目录里的,也不是系统默认图标目录里的,很神奇。
所以,我们可以做个icons目录玩,里面只放这几个图标就可以了:
app_32x32.xpm
app_16x16.xpm
fold_32x32.xpm
fold_16x16.xpm
大小其实是无所谓的,系统自己会缩放。文件名对就可以,由于不在乎图标大小,app和fold你只要放一个图标就行,另一个连接过去。省点空间也是好的。

6. 图形化数字时钟
这个东西我只做过一次,在Perryfa-DarkBrown主题里。工具条最右端显示的数字时钟的效果是这样的:
图九

                               
登录/注册后可看大图

由于我们的系统默认采用中文的时间格式,所以icewm程序就很困惑,只能勉为其难地显示了几个数字,时、分、秒之间的冒号显示不出来。
后来我一直都不做这个,显示得不好看,自己也没有什么特别的想法,相对于做图所花的精力,有点不值,所以就一直不做。
要做图像化的数字时钟,首先要在default.theme里开启这个功能:

# 右上角时间显示是否采用图形显示(1:采用,0:不采用)
TaskBarClockLeds=1 # 0 / 1

然后,在主题目录下加一个“ledclock”子目录,把图片放进去。一共可以做做18张图片,即,数字0-9,字母A、M、P,符号点“.”、冒号“:”、斜杠“/”、空格、百分号“%”(后面三个我没用过)。
图片的大小随意,但需要和工具条背景配合,高于背景肯定是会被切掉的。
文件命名:
数字:n0-9.xpm (9张图片)
字母:a.xpm, m.xpm, p.xpm
符号:colon.xpm(冒号),dot.xpm(点), slash.xpm(斜杠),space.xpm(空格),percent.xpm(百分号)
如果只显示数字时钟,只要做数字、字母和冒号、点,共15张图片就可以了。
图十

                               
登录/注册后可看大图


7.最小化窗口桌面图标
这个东西好玩了,相信大多数人都没玩过,因为在veket的默认设置里是不出现的。
我因为特别烦脑袋上顶个条条,又不肯延续windows的习惯把工具条放在下面,于是就想法子把工具条干掉,干掉不难,可是工具条上的很多功能真的有用啊。于是我就想办法一项一项地找替代的方法。还不错,都让我找到了。现在我可以完全不用工具条了。
最小化窗口桌面图标就是其中的一项替代品。因为没有了工具条,没有了任务按钮,那么程序窗口开多了找起来就不太方便,得到桌面左键菜单里去找,没那么直观。
于是,我在/root/.icewm/preferences文件里,激活了这个功能:
#  Display mini-icons on desktop for minimized windows
MinimizeToDesktop=1 # 0/1
默认是0。我改成了1。然后最小化的每个程序窗口都会在桌面左上角放个图标,我可以随时点。
图十一

                               
登录/注册后可看大图


定义这个图标很简单,就是背景色和文字色两种,一共4个参数:
#一般最小化窗口背景色
ColorNormalMinimizedWindow="rgb:4B/41/33"
#一般最小化窗口文字色
ColorNormalMinimizedWindowText="rgb:98/98/98"
#Active最小化窗口背景色
ColorActiveMinimizedWindow="rgb:21/1E/11"
#Active最小化窗口文字色
ColorActiveMinimizedWindowText="rgb:ff/ff/ff"

好了,这个主题就算是做完了。
当然,主题是做不完的,总会觉得这里那里不合适,改来改去。对于一个教程范例来说,我目前能介绍的也就是这些了。
要声明的是,到现在我也还没弄明白很多别人主题里的设置,有些是我还没找到显示效果的地方,有些是被gtk主题取代了。所以,现在我的每个主题里面都还有一些设置是很奇怪的,颜色和主题完全不协调,因为我总是在期望某天突然看到某个形状颜色都和主题格格不入的东西在桌面上出现,例如一个颜色古怪的窗口,然后我就知道某个设置是干什么的了,我做主题一直都是这样摸索的,不知道的东西就设置成某个醒目的、古怪的颜色,然后在使用系统的过程中等着它自己跳出来。说起来惭愧,我自己学做主题也才两三个月,也还在探索中呢,现在写教程真是有点托大了。

最后,贴图是王道,这是完成的主题:
图十二

                               
登录/注册后可看大图

发表于 2009-4-30 17:29 | 显示全部楼层
icewm主题制作之一:工具条制作
http://www.lucky8k.com/thread-64783-1-1.html
icewm主题制作之二 - 程序窗口制作
http://www.lucky8k.com/thread-64884-1-1.html
icewm主题制作之三 - 其他icewm主题设定
http://www.lucky8k.com/thread-64915-1-1.html

楼主辛苦了,我学得慢,要慢慢消化才成。
发表于 2009-4-30 20:44 | 显示全部楼层
好帖,不过还是要先学好gimp做特体字啊,先熟悉gimp才能做好这个主题,工作量不少,新手还是熟悉gimp再动手了。
发表于 2009-5-1 00:22 | 显示全部楼层
嗯,有些地方还得琢磨琢磨。
发表于 2009-5-1 09:04 | 显示全部楼层
收藏下来,暂时还未有能力做好。
您需要登录后才可以回帖 登录 | 要注册

本版积分规则

QQ|手机版|Archiver|veket官方网站论坛 ( 粤ICP备 11052856 )

GMT+8, 2024-4-29 22:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表