openbox每日开机自动切换网络壁纸
目的
利用bing的每日一图, 每天切换壁纸
开干
联网后下载图片
-
利用networkmanage启动后执行脚本 netafter.sh
-
文件地址: /etc/NetworkManager/dispatcher.d/netafter.sh
#!/bin/sh INTERFACE=$1 # 状态发生变化的网络接口 STATUS=$2 # 网络接口的新状态:up, down, vpn-up, vpn-down echo "网络状态: $STATUS" > /tmp/netstatus.log #echo "网络状态$INTERFACE" >> /tmp/netstatus.log ping -c 1 114.114.114.114 > /dev/null 2>&1 if [ $? -eq 0 ];then echo 检测网络正常 >> /tmp/netstatus.log #这里还没有开启图形界面,所以不能更换背景图片 nohup python /home/lx7ly/workspace/python/utils/bingimg.py >> /tmp/netstatus .log 2>&1 & else echo 检测网络连接异常 >> /tmp/netstatus.log fi
-
-
python下载图片脚本
import urllib.request import requests import os.path # import ctypes import re import time def save_img(img_url,dirname): #保存图片到磁盘文件夹dirname try: if not os.path.exists(dirname): print ('文件夹',dirname,'不存在,重新建立') #os.mkdir(dirname) os.makedirs(dirname) #获得图片文件名,包括后缀 regex = re.compile('\?[^&]*') timestr = time.strftime('%Y%m%d',time.localtime(time.time())) basename = str(regex.search(img_url).group()).replace("?id=", "_") basename=timestr+basename # basename = os.path.basename(img_url) #拼接目录与文件名,得到图片路径 filepath = os.path.join(dirname, basename) # print(filepath) #下载图片,并保存到文件夹中 urllib.request.urlretrieve(img_url,filepath) except IOError as e: print ('文件操作失败',e) except Exception as e: print ('错误 :',e) print("Save", filepath, "successfully!") return filepath # 请求网页,跳转到最终 img 地址 def get_img_url(raw_img_url = "https://area.sinaapp.com/bingImg/"): r = requests.get(raw_img_url) img_url = r.url # 得到图片文件的网址 # print('img_url:', img_url) return img_url # 设置图片绝对路径 filepath 所指向的图片为壁纸 def set_img_as_wallpaper(filepath): ctypes.windll.user32.SystemParametersInfoW(20, 0, filepath, 0) if __name__ == "__main__": dirname = "/home/lx7ly/Pictures/bingImg" # 图片要被保存在的位置 img_url = get_img_url() filepath = save_img(img_url, dirname) # 图片文件的的路径 # set_img_as_wallpaper(filepath)
加载界面后切换图片
- 利用openbox启动界面后更新背景图 autostart中加入bingimg.sh
注意
联网后执行脚本的路径是确定的,必须放入到networkmanager/dispatcher目录下
python脚本是参考网上一小伙伴,拿出来跟大家分享了