Skip to content

Latest commit

 

History

History
275 lines (152 loc) · 8.07 KB

rainmeter笔记.md

File metadata and controls

275 lines (152 loc) · 8.07 KB

rainmeter笔记

一:介绍

rainmeter是一款桌面美化软件,可以编写皮肤,装饰于自己的桌面

1.1 相关名词

二:皮肤的组成

有素材和配置文件(主要是ini组成)

配置文件又包含

  1. Meters 用于显示
  2. Measures 用于从系统或互联网收集信息
  3. Plugins 用于从系统或互联网收集信息

配置文件可能有多个,当一个皮肤有多个配置文件时,每个配置文件的所生效的皮肤被视为该皮肤的一种变体。

每次只能显示皮肤的一种变体,也就是说,每次只能使一个配置文件生效,当然,你可以在皮肤右击弹出的选项中更改配置文件。

皮肤配置文件示例

[Section1]
Key1=Value
Key2=Value
Key3=Value

[Section2]
Key1=Value
Key2=Value
Key3=Value

其中

类似于[Section2]这种用[]括起来的代码叫做皮肤的属性

里面有Key1=Value,这个就是键值对了,用于指定某些配置或属性

三,创建一个皮肤

前提:有一个文本编辑器,并且安装了rainmeter

开始创建

  1. 在rainmeter的皮肤选项卡上,点击创建新皮肤,弹出一个框,再点击添加文件夹,起一个你喜欢的皮肤名字,然后添加上去,关闭后,在rainmeter的皮肤列表里,就可以看到你新建的皮肤了

    其实就是在皮肤文件夹里面,创建一个新的文件夹,并以这个文件夹名,在里面再创建一个文件夹名.ini的配置文件罢了

    得到的配置文件如下

    [Rainmeter]
    Update=1000
    AccurateText=1
    ;皮肤本身的描述
    [Metadata]
    Name=皮肤的名称
    Author=作者是
    Information=信息
    Version=版本
    License=许可证
    
    [Variables]
    
    [MeterString]
    Meter=String
    
  2. 修改配置文件,我们在MeterString属性下面再添加一个Text键值对属性

    里面的值随便填,反正是用于显示

  3. 保存配置文件,并使皮肤生效

四:配置文件详解

所谓属性什么的,不要想太多,就把它当做配置项。

属性下面的键值对,就是配置子项

毕竟ini本来就是配置文件

配置文件的组成就如上面的创建一个新皮肤所给示例一样。

无非就两种语法,一种是用于声明皮肤的某些选项属性,用[]包起来

以下用select代表[xxxx],用select名称代表里面的xxxx

一种是键值对配置,如key=value

键值对配置一般是包含在select里面的,不能单独存在的。

至于select,有各种各样的select,用select下面的键值对配置meter=xxx来区分

属性名,也就是[xxxx],里面的xxxx可以随便填

但有几种字符串,是用于标识特定的属性的,下面介绍这些特殊select名称

  1. Rainmeter 皮肤的全局配置
  2. Metadata 皮肤的信息,比如说作者什么的
  3. Variables 皮肤的变量,一旦用key=value定义了这个变量,就可以用#key#引用这个变量了

几个注意点

  1. 属性[xxxx]里面的xxxx,在一个配置文件里面,必须是唯一的
  2. 属性里面的键值对配置,其中的key,在一个属性中,必须是唯一的
  3. 上文提到的xxxx和key,必须只包含字母数字字符,不可有空格和标点符号
  4. 一行一个key=value配置

4.1 Rainmeter属性

这个属性是用于定义整个皮肤的属性

也就是配置文件里面的[Rainmeter]

  1. Update 更新时间,单位是毫秒,更新是皮肤对信息变化的反应

    每次更新,这个皮肤会

    1. 更新皮肤里面所有的度量,比如说时间,cpu什么的,数据都会重新再获取一遍

    2. 按照配置文件里面的配置,更新仪表值,也就是用于显示的那部分的值

    3. 重新绘制皮肤的界面,根据在配置文件中的仪表配置的顺序绘制出来,可能会把绘制出来的数据给重叠了

      所以小心仪表配置的顺序以及位置

4.2 一般的属性

一般的属性,就是[xxxxx]

这个属性下面可以定义一些子属性,或者说,键值对

  1. Meter = xxxx 这个键值对对于普通的属性是必须的,用于描述这个属性是什么类型,可以选择的值的是

    1. String 字符串属性,用于显示字符串
  2. AntiAlias 可选属性,用于平滑Meter的边缘

    如果Meter的类型是显示类型的话,比如说String

4.3 显示属性(仪表)

当一个select下面的Meter所配置的select 类型是用于显示的类型时(比如说,String)

那么这个属性就是显示属性

以下是显示属性的几个通用的键值对配置

MouseOverAction 值是一个用[]包含的执行语句。顾名思义,就是鼠标移动到皮肤的时候,执行语句咯

MouseLeaveAction这个就是鼠标离开啦

LeftMouseUpAction 这个是鼠标点击啦

xy对于整个皮肤,这个显示属性的相对位置

SolidColor=0,0,0,1 将这个显示元素一个实心,不可见的框包含起来,以方便作为点击元素

4.3.1 字符串属性

这个属性要求属性下面的Meter键值对设置为String

这个属性主要是用于显示字符串用的,因此,有自己特定的键值对配置

  1. FontColor=255,255,255 字体颜色,这个数字是RGB,应该熟悉吧?

  2. FontFace=Segoe UI字符串显示的字体,可以用windows自带的,也可以使用@Resources文件里面的字体

  3. FontSize=20 字体的大小

  4. Text 用于配置显示的文字,一般用于显示静态文字,或者用其他select得到的数据再加上自己的数据组成新的数据,再用来显示

    如果只是单纯的显示select给的数据,则可不用Text,而是用MeasureName=select名称来直接显示就行

4.3.2 图像属性

这个属性要求属性下面的Meter键值对设置为Image

该属性拥有的键值对属性如下

  1. ImageName 可以指定一个图片路径

    通常用相对路径表示

    做法是在皮肤配置文件夹里面,创建一个@Resources文件夹

    然后在配置的路径里面,就可以用#@#来代表资源文件夹了

    给一个示例配置ImageName=#@#Images\一本正经.jpg

  2. w h 设置图像的宽度高度,如果不设置的话,默认就是图像的大小

  3. x y 相对位置

4.4 全局的样式设置

首先声明一个属性,也就是写一个[xxxx],这个xxxx作为样式名

然后在里面写子配置,如

FontFace=Arial
FontSize=12
FontColor=255,255,255,255
AntiAlias=1

想引用这个全局配置的话,只需要在想引用的那个select项目。

写上一个配置

MeterStyle=样式名即可

4.5 用于测量的属性(度量)

该属性可用的键值对配置有

  1. Measure 测量的类型,比如说Measure=Time

  2. Format对测量出来的数据进行格式化,配置的示例是Format=%A, %B %#d, %Y %#I:%M %p

  3. UpdateDivider 可以配置此项以便在皮肤更新几遍后,再重新获取测量的值,而不是每次皮肤更新,都更新度量的值

  4. IfCondition 值是一个布尔表达式,如MeasureCPU> 60

  5. IfTrueAction的值是一个用[]包含起来的执行语句,当IfCondition 判断的条件是true时,这个执行语句将生效

    IfFalseAction同理,这里就不解释了

    提几个执行语句

    !SetOption MeterCPU FontColor "255,0,0" 设置MeterCPU 的select的字体颜色为红色

4.6 注释

ini配置文件中,注释的语句用;开头

4.7 命令

在前文中,我们介绍了几个在配置文件中使用的命令。

主要是用于LeftMouseUpAction MouseLeaveAction 等动作的触发上

可以触发的命令有几种,

一种就是rainmeter的内部命令,被称为Bangs,它主要用于在皮肤上做各种各样的事情,比如说改字体颜色啦等等

比如说前面提到的!SetOption MeterCPU FontColor "255,0,0"

一种就是外部命令,比如说,打开记事本,或者打开网站

举几个例子

打开某个应用程序:MouseLeaveAction=[!SetOption MeterCPU FontColor "0,255,0"]

打开某个网站LeftMouseUpAction=["http://cnn.com"]