我找到了非常好的Pinterest图片,我想在桌面上随机显示。我已经有一个脚本可以从目录中随机调用 conky 配置。(然后我手动制作 bash 脚本,一次调用 1 到 3+ conkies(
尝试做一些python脚本,但它没有...我把它复杂化了。以下是 GIT 文件:
我打算展示我的代码,但它太大了,太乱了。
最初,我只是读取所有图像及其宽度,高度,路径和文件名以分隔txt文件。如宽度.txt、路径.txt等。看起来像这些(这些是路径.txt(:
/home/omarali/scripts/conky/conky-sets/images/record.jpg
/home/omarali/scripts/conky/conky-sets/images/subtle.jpg
/home/omarali/scripts/conky/conky-sets/images/trust.jpg
然后我有一个python脚本将数据转换为数组,然后一个接一个地构建文件。不知何故,我遇到了语法错误等。我没有在这里包含代码,因为它太长了,我正在考虑从头开始。
本质上,我会制作一个与图像同名的新文件,然后将下面的配置变量(宽度、高度等(替换为图像大小和路径。
模板康基配置:
conky.config = {
--Various settings
double_buffer = true, -- eliminates flicker
--Windows
own_window = true, -- create your own window to draw
own_window_argb_visual = true, -- use ARGB
own_window_type = 'override', -- keeps the image in the back
--Placement
alignment = 'middle_middle', -- position of the conky
--#########################################################################################
--######################## THE IMPORTANT CHANGABLE STUFF #######################
--#########################################################################################
minimum_width = WIDTH, -- minimum height of window
minimum_height = HEIGHT, -- minimum height of window
};
conky.text = [[
${image PATH -s SIZE}
]];
宽度- :图像的宽度
- 高度:图像的高度 路径
- :图像的路径
- 尺寸:宽度+"x"+图像高度
这是 conky 配置的最终结果。
conky.config = {
minimum_width = 800, -- minimum height of window
minimum_height = 1300, -- minimum height of window
};
conky.text = [[
${image /home/omarali/scripts/conky/conky-sets/images/record.jpg -s 800x1300}
]];
所以,只需要一种简单的方法来将图像放入一个conkies中,我以后可以从bash脚本调用它。Python或Bash脚本就可以了。
这是我正在寻找的:
- 从目录中的每个映像构建一个 conky 配置。 假设dir_pins
- 每个 conky 应与图像具有相同的名称。(这是我的问题(
- 可以是 python 或 bash 脚本,对想法持开放态度,但更喜欢这 2 个。
就是这样,如前所述,我已经有一个脚本来自动运行我的配置。非常感谢您的帮助。并对新想法持开放态度。
在Python中,你可以从所有文件中读取数据
all_widths = open('width.txt').read().splitlines()
all_heights = open('width.txt').read().splitlines()
all_pathes = open('path.txt').read().splitlines()
并使用zip()
将width
与path
分组
for width, height, path in zip(all_widths, all_height, all_pathes):
print(width, height, path)
# generate conky text
然后,您可以将文本与所有paragrath一起使用,并将{}
放在要放置数据以生成新文本的位置。因为它使用{}
来识别值的位置,所以它需要{{
和}}
才能正常{
,}
template = '''conky.config = {{
minimum_width = {WIDTH}, -- minimum height of window
minimum_height = {HEIGHT}, -- minimum height of window
}};
conky.text = [[
${{image {PATH} -s {WIDTH}x{HEIGHT}}}
]];'''
for width, height, path in zip(all_widths, all_height, all_pathes):
new_text = template.format(WIDTH=width, HEIGHT=height, PATH=path)
print(new_text)
现在你必须使用图像文件名为conky文件创建名称(我不知道它使用什么扩展名,所以我使用.txt
(
new_name = path.replace('.jpg', '.txt')
或仅路径的最后一部分
new_name = path.split('/')[-1].replace('.jpg', '.txt')
然后你可以保存文本
f = open(new_name, 'w')
f.write(new_text)
f.close()
完整代码,但未测试:
template = '''conky.config = {{
minimum_width = {WIDTH}, -- minimum height of window
minimum_height = {HEIGHT}, -- minimum height of window
}};
conky.text = [[
${{image {PATH} -s {WIDTH}x{HEIGHT}}}
]];'''
all_widths = open('width.txt').read().splitlines()
all_heights = open('width.txt').read().splitlines()
all_pathes = open('path.txt').read().splitlines()
for width, height, path in zip(all_widths, all_height, all_pathes):
new_text = template.format(WIDTH=width, HEIGHT=height, PATH=path)
#new_name = path.replace('.jpg', '.txt')
new_name = path.split('/')[-1].replace('.jpg', '.txt')
f = open(new_name, 'w')
f.write(new_text)
f.close()
顺便说一下:您可以使用os.listdir()
或os.walk()
直接从磁盘获取图像的路径。和模块PIL
获取图像的大小。
template = '''conky.config = {{
minimum_width = {WIDTH}, -- minimum height of window
minimum_height = {HEIGHT}, -- minimum height of window
}};
conky.text = [[
${{image {PATH} -s {WIDTH}x{HEIGHT}}}
]];'''
from PIL import Image
directory = '/home/omarali/scripts/conky/conky-sets/images/'
for filename in os.listdir(directory):
path = os.path.join(directory, filename)
width, height = Image.open(path).size
new_text = template.format(WIDTH=width, HEIGHT=height, PATH=path)
new_name = filename.replace('.jpg', '.txt')
f = open(new_name, 'w')
f.write(new_text)
f.close()