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)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在JBoss7.1中调试JSP。十、   Android中的switch语句中没有设置java数组   字符串替换Java文件中的特定表达式   java Floodfill StackOverFlow,IDEA   java如何检查向量向量中的位置是否超出边界?   java无法获取编码的XML字符串的值   正则表达式如何在Java中用lambda函数替换字符串   java在2D数组的行和列中生成非重复数字   java JFileChooser>“查找”奇怪的名称   Java中的对象共享集合锁定   Java绑定异常   MutableLiveData中的java Toast消息。观察()反复工作   sql在java的PrepareStatement中重用参数   使用Java处理跨浏览器的多次登录   java在安卓中处理网络请求响应