Themer是用于桌面的配色方案生成器和管理器。
Themer的Python项目详细描述
Themer
==
*Themer是一个用于Linux桌面的配色方案生成器和管理器。*
/>例如'trizen':
$trizen-s python themer git
pypi存储库也是。您可以使用"pip"来安装它:
$pip install themer
\r手动安装
首先,查看git存储库:
$git clone https://github.com/s-ol/themer.git
install with"python setup.py install`
$cd themer
$sudo python setup.py install
配置
----
您可以在`~/.config/themer/templates`中为"themer"创建多个模板目录。
默认模板为"i3";有关默认配置,请参见[数据/默认](数据/默认)。
——
简而言之,
的内容是从"templates"创建的,并以"current"结束。
这是生成新主题的位置。
-任意数量的主题(即目录)。它们保存专门为此主题生成的配置文件。(它们还包含一个名为"colors.yaml"的文件,您可以在其中查找和更改主题中使用的变量。)这些主题主要是供内部使用的,虽然您可以手动创建这些主题,但大多数情况下您不会创建。
-"current"是指向当前AC的符号链接活动主题目录。
如果您想切换de或窗口管理器的一般外观,您可能需要添加更多的窗口管理器。如果您只对颜色和
墙纸之类的小变化感兴趣(这些变化不会改变配置的结构,只有
详细信息),那么您可能可以使用它们。(这是一个抽象层
,由于历史原因而存在,并可能在
将来被删除)。
一个有用的模板包含:
-一个或多个文件模板。它们应该(但不一定)以
`.tpl'结尾并包含您的配置。变量的格式应该是{{
variable_name},当它们呈现时,将被它们的值替换。
-插件的(可能是空的)目录。如果插件放在这里,可以通过在"config.yaml"
-`config.yaml`中提到它们来激活它们,后者告诉用户如何使用其他文件。
`config.yaml`有3个部分:
-`variables`,其中"primary:red"表示将呈现下面列出的文件将{primary}`替换为'red`
-`plugins`,分为'parsers`和'activators`,每个都有一个激活的插件列表。
-`files`,其中'fromfile:to file`表示'fromfile`(应该是文件模板的名称)在t中呈现为'tofile`
他呈现了主题。
usage
----
在de中使用的工具中,
您需要告诉de有关"themer"的信息。咖喱NT主题将在`$xdg_home/themer/current`(通常
`.config/themer/current`)中始终可用。要使用"themer",请将独立的
文件从那里符号链接到它们的目标。
例如,这是如何使用"themer"设置"i3":
$mkdir-p.i3
$ln-s~/.config/themer/current/i3.conf.i3/config
墙纸:
$themer generate themename wallpaper.png
……或者从"sweyla.com"安装配色方案:
$themer generate themename 693812
(这将安装[http://sweyla.com/themes/seed/693812/](http://sweyla.com/themes/seed/693812/)
还可以使用xresources样式的文件:
$themer generate themename/home/me/.xresources
[plugins](plugins)使您能够从其他源生成主题
,请参见下文。
列表:
$themer list
themeone
themewo
\Themer.parsers.sweylacolorparser
Themer.parsers.kmeanscolorparser
Themer.parsers.cachedcolorparser
Themer.colorparser
这将把所有定义的模板符号链接到
`~/.config/themer/current`。您应该依次将所有
全局配置文件符号链接到那里。例如i3:
$ln-s~/.config/themer/current/i3.conf~/.i3/config
相反,使用
`themer render`更新配置:
$themer render sometheme
/>
[](http://i.imgur.com/dxpxpz.png)
![](http://i.imgur.com/axuuxbf.png)
![](http://media.charlesleifer.com/blog/photos/candybean.png)
![](http://media.charlesleifer.com/blog/photos/bloom.png)
![](http://media.charlesleifer.com/blog/photos/waves.png)
![](http://media.charlesleifer.com/blog/photos/waves2.png)
![](http://i.imgur.com/7gisqhw.png)
![](http://i.imgur.com/cuts0s7.png)
plugins
----
plugins可以安装在pythonpath中的任何位置,但是used template dir下的"plugins"目录会自动添加到"sys.path"中,因此您可能需要将它们放在那里(通常是`/.config/themer/templates/i3/plugins`).
它们通过其python模块加载一个类名字符串,例如"mymodule.activator.myactivator"。
插件是基于模板目录在"config.yaml"文件(默认值` ~/.config/themer/templates/i3/config.yaml`)中配置的。
插件:**activators**和**parsers**。
activators应该继承自"themer.themeactivator",解析器应该继承自"themer.colorparser"。
使用它们重新加载配置文件、设置桌面墙纸等。
每个激活器都应实现"activate"方法。
向构造函数传递"theme""name"、"theme""dir"和"logger"的值。
e和"colors"可以通过实例的属性访问。
/>###` ColorParser的
解析器用于从文件和字符串生成颜色方案。
每个ColorParser都应该实现"read"方法,该方法应该返回从"self.data"中的输入字符串生成的颜色字典(或通过构造函数的第一个参数获得的颜色字典)。
a colorparser还可以通过将"self.wallpaper"设置为"none"以外的任何内容来返回要使用的墙纸的路径。
此外,解析器需要有一个"check"属性。它用于确定解析器是否应用于给定的颜色源。` check`可以是一个函数,在这种情况下,它被传递给颜色源字符串,如果它想处理该颜色源,则需要返回truthy值,也可以是一个字符串。
如果它是一个字符串,则它将用作正则表达式并与颜色源字符串匹配。
ile_regex`helper可用于构建一个"check"函数,该函数根据regex检查文件名,并验证文件系统上是否存在这些文件名。
向构造函数传递"data"、"config"和"logger"的值。
可以通过实例的属性访问所有这些值。
fault constructor还将"self.colors"设置为新字典,将"self.wallpaper"设置为"none"。
d(self):
以open(self.data)作为fh:从yaml文件加载颜色
self.colors=yaml.load(fh)
返回self.colors
credits
----
由[s ol bekic]进一步扩展(https://github.com/s-ol)
==
*Themer是一个用于Linux桌面的配色方案生成器和管理器。*
/>例如'trizen':
$trizen-s python themer git
pypi存储库也是。您可以使用"pip"来安装它:
$pip install themer
\r手动安装
首先,查看git存储库:
$git clone https://github.com/s-ol/themer.git
install with"python setup.py install`
$cd themer
$sudo python setup.py install
配置
----
您可以在`~/.config/themer/templates`中为"themer"创建多个模板目录。
默认模板为"i3";有关默认配置,请参见[数据/默认](数据/默认)。
——
简而言之,
的内容是从"templates"创建的,并以"current"结束。
这是生成新主题的位置。
-任意数量的主题(即目录)。它们保存专门为此主题生成的配置文件。(它们还包含一个名为"colors.yaml"的文件,您可以在其中查找和更改主题中使用的变量。)这些主题主要是供内部使用的,虽然您可以手动创建这些主题,但大多数情况下您不会创建。
-"current"是指向当前AC的符号链接活动主题目录。
如果您想切换de或窗口管理器的一般外观,您可能需要添加更多的窗口管理器。如果您只对颜色和
墙纸之类的小变化感兴趣(这些变化不会改变配置的结构,只有
详细信息),那么您可能可以使用它们。(这是一个抽象层
,由于历史原因而存在,并可能在
将来被删除)。
一个有用的模板包含:
-一个或多个文件模板。它们应该(但不一定)以
`.tpl'结尾并包含您的配置。变量的格式应该是{{
variable_name},当它们呈现时,将被它们的值替换。
-插件的(可能是空的)目录。如果插件放在这里,可以通过在"config.yaml"
-`config.yaml`中提到它们来激活它们,后者告诉用户如何使用其他文件。
`config.yaml`有3个部分:
-`variables`,其中"primary:red"表示将呈现下面列出的文件将{primary}`替换为'red`
-`plugins`,分为'parsers`和'activators`,每个都有一个激活的插件列表。
-`files`,其中'fromfile:to file`表示'fromfile`(应该是文件模板的名称)在t中呈现为'tofile`
他呈现了主题。
usage
----
在de中使用的工具中,
您需要告诉de有关"themer"的信息。咖喱NT主题将在`$xdg_home/themer/current`(通常
`.config/themer/current`)中始终可用。要使用"themer",请将独立的
文件从那里符号链接到它们的目标。
例如,这是如何使用"themer"设置"i3":
$mkdir-p.i3
$ln-s~/.config/themer/current/i3.conf.i3/config
墙纸:
$themer generate themename wallpaper.png
……或者从"sweyla.com"安装配色方案:
$themer generate themename 693812
(这将安装[http://sweyla.com/themes/seed/693812/](http://sweyla.com/themes/seed/693812/)
还可以使用xresources样式的文件:
$themer generate themename/home/me/.xresources
[plugins](plugins)使您能够从其他源生成主题
,请参见下文。
列表:
$themer list
themeone
themewo
\Themer.parsers.sweylacolorparser
Themer.parsers.kmeanscolorparser
Themer.parsers.cachedcolorparser
Themer.colorparser
这将把所有定义的模板符号链接到
`~/.config/themer/current`。您应该依次将所有
全局配置文件符号链接到那里。例如i3:
$ln-s~/.config/themer/current/i3.conf~/.i3/config
相反,使用
`themer render`更新配置:
$themer render sometheme
/>
[](http://i.imgur.com/dxpxpz.png)
![](http://i.imgur.com/axuuxbf.png)
![](http://media.charlesleifer.com/blog/photos/candybean.png)
![](http://media.charlesleifer.com/blog/photos/bloom.png)
![](http://media.charlesleifer.com/blog/photos/waves.png)
![](http://media.charlesleifer.com/blog/photos/waves2.png)
![](http://i.imgur.com/7gisqhw.png)
![](http://i.imgur.com/cuts0s7.png)
plugins
----
plugins可以安装在pythonpath中的任何位置,但是used template dir下的"plugins"目录会自动添加到"sys.path"中,因此您可能需要将它们放在那里(通常是`/.config/themer/templates/i3/plugins`).
它们通过其python模块加载一个类名字符串,例如"mymodule.activator.myactivator"。
插件是基于模板目录在"config.yaml"文件(默认值` ~/.config/themer/templates/i3/config.yaml`)中配置的。
插件:**activators**和**parsers**。
activators应该继承自"themer.themeactivator",解析器应该继承自"themer.colorparser"。
使用它们重新加载配置文件、设置桌面墙纸等。
每个激活器都应实现"activate"方法。
向构造函数传递"theme""name"、"theme""dir"和"logger"的值。
e和"colors"可以通过实例的属性访问。
/>###` ColorParser的
解析器用于从文件和字符串生成颜色方案。
每个ColorParser都应该实现"read"方法,该方法应该返回从"self.data"中的输入字符串生成的颜色字典(或通过构造函数的第一个参数获得的颜色字典)。
a colorparser还可以通过将"self.wallpaper"设置为"none"以外的任何内容来返回要使用的墙纸的路径。
此外,解析器需要有一个"check"属性。它用于确定解析器是否应用于给定的颜色源。` check`可以是一个函数,在这种情况下,它被传递给颜色源字符串,如果它想处理该颜色源,则需要返回truthy值,也可以是一个字符串。
如果它是一个字符串,则它将用作正则表达式并与颜色源字符串匹配。
ile_regex`helper可用于构建一个"check"函数,该函数根据regex检查文件名,并验证文件系统上是否存在这些文件名。
向构造函数传递"data"、"config"和"logger"的值。
可以通过实例的属性访问所有这些值。
fault constructor还将"self.colors"设置为新字典,将"self.wallpaper"设置为"none"。
d(self):
以open(self.data)作为fh:从yaml文件加载颜色
self.colors=yaml.load(fh)
返回self.colors
credits
----
由[s ol bekic]进一步扩展(https://github.com/s-ol)