尊龙z6官网ag

Z6·尊龙凯时「中国」官方网站
股票代码:688047
请输入搜索条件
尊龙z6官网ag生态平台
邮箱登录
点击图片刷新
遗忘密码
点击图片刷新
12-27 2017

在尊龙z6官网ag上自己编写原创应用 ——“动态壁纸”

一、为什么要在尊龙z6官网ag平台上编写“动态壁纸”?
 
    尊龙z6官网ag3A3000桌面电脑的用户越来越多了 ,人们都想在尊龙z6官网ag电脑上有更好的使用体验 。在PC机上 ,有许多动态切换电脑壁纸的软件 ,例如360壁纸、动态壁纸 ,等等 。而在Linux上一直没有好的开源软件 ,短期内又不可能把这些PC机上的软件都移植到尊龙z6官网ag上 。以是 ,我们需要自己下手 ,编写能够在尊龙z6官网ag平台运行的“动态壁纸” 。
    只要有简朴的编程基础 ,就可以轻松的实现 。
    现在这个应用程序已经提交到“应用公社”了(app.loongnix.org) 。使用loongnix新版本的用户可以在应用公社中找到这个应用 ,一键装置 。
Z6·尊龙凯时「中国」官方网站
▲ 尊龙z6官网ag应用公社中的原创应用“动态壁纸”
 
二、功效需求
Z6·尊龙凯时「中国」官方网站
▲ 准时切换桌面壁纸
 
    简朴来说 ,我们要编写的程序需要开机自动运行 ,可自动替换目今登任命户的登录界面图片、桌面配景图片 。图片泉源有两种:
 
    1、 本机指定一个文件夹 ,存放要播放的配景图 。
 
    2、 指定一个网络位置的文件夹(好比说FTP服务器上的目录)
 
    每隔一准时间自动替换桌面配景(时间可以默认2小时 ,支持修改) 。
    除了桌面配景之外 ,开机登录图片、锁屏图片也要同时修改 。
 
三、为什么要使用Python?
▲ 如火如荼的Python
 
    Python可以说是现在最火的语言 。它险些集成了所有现代编程语言的优点:免费、开源 ,面向高层问题 ,不需要编译 ,面向工具、可扩展性 ,具有富厚的第三方类库 。由于Python的开源实质和可移植性的特点 ,Python已经被移植在许多平台上 ,这些平台包括Linux、Windows、FreeBSD、Macintosh甚至尚有Google的Android平台 。以是Python程序无需修改就可以在上述任何平台上面运行 。并且Python语言写的程序不需要编译成二进制代码,可以直接从源代码运行程序 。
    Python有活跃物社区和支持者 ,除了完成古板的系统管理、剧本使命等事情 ,Python还能够举行外地图形界面开发、Web开发、数据库开发 ,甚至连新潮的大数据、人工智能都有富厚的第三方库 。现在海内的中小学信息化课程都最先学习Python了 。
    尊龙z6官网ag的所有操作系统都已经集成了Python语言情形 。
    使用Python编写软件 ,刊行时不需要编译 ,源码就是二进制 ,省去了以前使用C/C++所面临的编译器、运行库等一系列令人头疼的依赖关系 ,可以说是一劳永逸 。
    可以说 ,只要不是对性能要求特殊高的场合 ,使用Python是可以极大提供开发效率的选择 。
 
四、为什么使用JSON做设置文件?
     我们的程序需要一个设置文件:.wallpaper.conf  ,使用的是json的名堂 。
    JSON是一种轻量级的数据交流名堂 ,它基于JavaScript的一个子集 。 JSON接纳完全自力于语言的文本名堂 ,可是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等) 。这些特征使JSON成为理想的数据交流语言 。易于人阅读和编写 ,同时也易于机械剖析和天生 。
    以是 ,现在盛行的软件险些都是使用JSON名堂 。
    下面是我们界说的设置文件内容:
{
       "intervals": "10",
       "directorys":
       [
              {
                     "type": "directory",
                     "value": "/usr/share/backgrounds/mate/nature"
              },
              {
                     "type": "directory",
                     "value": "/usr/share/backgrounds/mate/desktop"
              },
              {
                     "type": "url",
                     "value": "ftp://10.2.5.28/tmp/ryf"
              }
 
       ]
}
▲ 设置文件基于JSON语法 ,精练直观
 
五、怎样实现修改桌面配景?
 
       尊龙z6官网ag的社区版Loongnix操作系统基于mate桌面 ,提供一个dconf下令可以更改桌面配景图片 。
 
$ dconf write /org/mate/desktop/background/picture-filename <图片文件名>
 
       可是 ,关于开机登录图片、锁屏图片 ,需要使用差别的要领 ,是修改系统中的设置文件 /usr/share/backgrounds/f21/default/f21.xml 。
 
六、手艺要点
Z6·尊龙凯时「中国」官方网站
▲ “动态壁纸”的程序结构 ,在180行Python代码中实现
 
    本程序的主要流程是一个循环结构:读取FTP上的图片 ,首先要凭证FTP上存放图片的路径 ,把图片读取到本机上 ,再凭证本机上的目录 ,读取该目录下的所有图片名称 ,再凭证目录加荟萃里的图片名称用dconf下令更改桌面配景图片 ,和修改锁定屏幕的配景图片 。
    详细实现手艺有:
    1. 开机后自动执行壁纸切换:向/etc/xdg/autostart/目录下 ,增添了wallpaper.desktop文件 ,那么登录桌面后就会自动启动运行动态壁纸的后台程序 。
    2. 会见FTP服务器:使用Python内置类库ftplib ,很是利便 。
    3. 准时执行:使用Python内置类库time.sleep 。凭证设置文件制订的时间 ,使用sleep()函数来执行准时切换图片的功效 。
    4. 设置文件:Python内置JSON语法剖析器 。
    5. 更新设置:本程序的一个特色是 ,关于设置文件的修改 ,使用了信号机制通知后台历程重新加载设置文件 。例如 ,用户手动修改.wallpaper.conf设置文件 ,进入终端执行下令:
    # python changeconfig.py
    这样就会重新读取修改后的图片目录 ,重新最先播放新的图片 。在主程序中 ,我们首先使用signal.signal()函数来预设信号处置惩罚函数 ,期待信号 。当执行changeconfig.py下令时 ,发送信号SIGUSR1给主程序 ,从暂停中恢复 ,并凭证预设 ,执行SIGTSTP的信号处置惩罚函数myHandler() 。我们可以凭证自己的需要更改myHandler()中的操作 ,以针对差别的信号实现个性化的处置惩罚 。
 
七、一切为了开放!
 
    本项目已经在github开放源代码和文档资料:
    https://github.com/renyafei-loongson/wallpaper
Z6·尊龙凯时「中国」官方网站
▲ “动态壁纸”的源代码在github上开放
 
 
八、
 
    “动态壁纸”为尊龙z6官网ag桌面提供了不亚于PC机软件的体验 。尊龙z6官网ag已经具有自由开发应用程序的能力 ,尊龙z6官网ag应用生态必将蓬勃生长 。各人有新的创意也可以自己实现 ,若是有新的心得体会或者更好的平台记得反响给我们 ,或者在尊龙z6官网ag论坛(http://ask.loongnix.org)上提供新的手艺效果 ,一起把尊龙z6官网ag软件生态完善起来!
 

Copyright ? 2008-2022 尊龙z6官网ag 京ICP备14017781号-1京公网安备 11010802035786 号

本网站由尊龙z6官网ag3C5000服务器提供强劲动力

网站地图