deepin切换壁纸小工具

切换壁纸小工具(python脚本)

切换壁纸这种事,找到接口,一行代码就可以解决,本来打算用bash脚本,但是考虑到随机选取壁纸等因素,用python的os模块完成任务。

一、思路

  • 找到切换壁纸的接口
  • 设置壁纸库(文件夹)
  • python脚本完成功能
  • 半小时自动切换壁纸

二、实现过程

1、切换壁纸接口

本脚本只在linux下使用。

在linux下(准确说是GNOME桌面),通过gsettings set指令完成对特定值(壁纸文件位置)进行修改,即可修改壁纸。

#Ubuntu下切换指令(注意有个file)
gsettings set org.gnome.desktop.background picture-uri "file:/home/user/Desktop/1.jpg"

#Deepin下切换指令(注意没有file)
gsettings set com.deepin.wrap.gnome.desktop.background picture-uri "/home/user/Desktop/1.jpg"

2、设置壁纸库

这步没什么好说的啊,把喜欢的壁纸放在一个文件夹下,方便之后的存取使用。

3、python完成功能

直接上代码,看代码注释就好了。

# -*- coding: utf-8 -*-
# @Date    : 2018-05-21 12:07:17
# @Author  : Light ([email protected])
# @Link    : ${link}
# @Version : $Id$

import os
import random

"""
TODO([email protected]):Change the wallpaper by changing the time
利用linux下的crontab工具实现半小时切换一次,
*/30 * * * * python /xxx/changebackground.py
"""

# 更换壁纸指令,此为deepin更换指令,不代表所有linux发行版更换指令
cmd = "gsettings set com.deepin.wrap.gnome.desktop.background picture-uri "
# 图片目录,用户可自主更换
path = "/home/light/Documents/code/spider-on-lol/lolSpider/lolSpider/img/hero_skin_img/full/"

# 利用os.listdir()方法获取图片目录下的所有文件名的列表
pic_list = os.listdir(path)

# 确切的文件位置,以及确切的更换指令
real_path = path + str(random.choices(pic_list))[2:-2]
real_cmd = cmd + "\"" + real_path +"\""

# 执行
os.system(real_cmd)

4、自动切换壁纸

利用linux下的crontab完成定时任务。

可以参考:
crontab 定时任务
linux定时任务的设置 crontab 配置指南

在这个工具中,配置文件就这么写:

*/30 * * * * python /home/user/1.py

三、总结

在这个脚本制作中,学到了
- python的os模块
- python的random模块
- linux的壁纸切换接口
- linux的crontab定时任务
另一种实现自动切换的思路:
- 将脚本执行定为守护进程
- 在脚本内写上时间控制代码
- 但感觉没crontab定时任务方便,毕竟只是一个切换壁纸的脚本,没必要一直在后台运行,用完就结束

你可能感兴趣的:(python)