Deepin 切换壁纸小工具

2019/07/31 Python Linux 逃离CSDN

Deepin 切换壁纸小工具

切换壁纸这种事,找到接口,一行代码就可以解决,本来打算用 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 (halysl0817@gmail.com)
# @Link    : ${link}
# @Version : $Id$

import os
import random

"""
TODO(halysl0817@gmail.com):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 定时任务方便,毕竟只是一个切换壁纸的脚本,没必要一直在后台运行,用完就结束

Search

    Table of Contents