zoukankan      html  css  js  c++  java
  • Ubuntu在桌面壁纸上显示计算机名

    • 时间:2018-07-16 记录:byzqy

    介绍:

      在管理多台计算机时,将每台计算机的ID或者计算机名醒目的显示在电脑桌面,往往是一个不错的选择。下面记录一下在Ubuntu 16.04上使用Python2.7如何实现这一功能。

    工具/原料:

      操作系统:Ubuntu 16.04 ,

      编辑工具:gedit,

      开发语言:Python 2.7

      python库:Pillow-5.2.0-cp27-cp27mu-manylinux1_x86_64.whl

      Pillow是Python里的图像处理库(PIL:Python Image Library),提供了了广泛的文件格式支持,强大的图像处理能力,主要包括图像储存、图像显示、格式转换以及基本的图像处理操作等。 

    代码/逻辑:

      1、创建python脚本,脚本包含两个动作:利用电脑自带图片合成新的图片、将新的图片设置为当前桌面背景;

      2、创建desktop文件和bash脚本,用来执行调用python脚本,实现鼠标双击图标运行,方便操作;

      3、修改ubuntu系统开机运行文件:/etc/rc.local,实现电脑开机自运行更换壁纸的python脚本。

    文件:Create_Image.py

     1 import os
     2 import socket
     3 from PIL import Image,ImageDraw,ImageFont
     4 
     5 
     6 def ModifyImage(img_path, StationID):
     7   img = Image.open(img_path)
     8   print dir(img)
     9   draw = ImageDraw.Draw(img)
    10   draw_font = ImageFont.truetype('/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-L.ttf', 280)
    11   txtsize = draw_font.getsize(StationID)
    12   imgsize = img.size
    13   x = (imgsize[0] - txtsize[0]) / 2
    14   y = (imgsize[1] - txtsize[1]) / 2
    15   draw.text([x, y], StationID, font=draw_font)
    16   img.save('/home/user/CustomWallpaper/Temp/warty-final-ubuntu-temp.png')
    17   os.system('gsettings set org.gnome.desktop.background picture-uri file:/home/user/CustomWallpaper/Temp/warty-final-ubuntu-temp.png')
    18 
    19 
    20 if __name__ == '__main__':
    21   pc_name = socket.gethostname()
    22   pc_name = pc_name.upper()
    23   pc_name = pc_name.replace('-', '_')
    24   ModifyImage('/usr/share/backgrounds/warty-final-ubuntu.png', pc_name)

    文件:run_changewallpaper.sh

     1 #!/bin/bash -x
     2 CURR_DIR=`dirname $0`
     3 TEST_MODE=$1
     4 if [[ ! $CURR_DIR =~ ^/ ]]; then
     5   CURR_DIR="$PWD/$CURR_DIR"
     6 fi
     7 
     8 pkill -9f python
     9 cd $CURR_DIR
    10 python ./Create_Image.py

    文件:rc.local (修改后的)

     1 #!/bin/sh -e
     2 #
     3 # rc.local
     4 #
     5 # This script is executed at the end of each multiuser runlevel.
     6 # Make sure that the script will "exit 0" on success or any other
     7 # value on error.
     8 #
     9 # In order to enable or disable this script just change the execution
    10 # bits.
    11 #
    12 # By default this script does nothing.
    13 
    14 #auto change wallpaper
    15 /home/user/CustomWallpaper/ChangeWallpaper/run_changewallpaper.sh
    16 #auto change wallpaper
    17 
    18 exit 0

    打开终端(Terminal)输入:sudo gedit /etc/rc.local ,在文本编辑器中打开系统文件rc.local,在文件中 exit 0 的上方添加如下内容:

    #开机自动更换壁纸
    /home/user/CustomWallpaper/ChangeWallpaper/run_changewallpaper.sh
    #开机自动更换壁纸

    文件:ChangeWallpaper.desktop

     1 #!/usr/bin/env xdg-open
     2 
     3 [Desktop Entry]
     4 Version=1.0
     5 Type=Application
     6 Terminal=true
     7 Exec=/home/user/CustomWallpaper/ChangeWallpaper/run_changewallpaper.sh
     8 Name=Change Wallpaper
     9 Comment=Change Wallpaper
    10 Icon=/home/user/CustomWallpaper/ChangeWallpaper/wallpaper_128px.png
    11 Name[zh_CN]=Change Wallpaper

    此外,为了方便操作和部署,还创建了几个另外的desktop文件:

    文件:Install Pillow.desktop (双击安装pillow库的快捷方式文件)

     1 #!/usr/bin/env xdg-open
     2 
     3 [Desktop Entry]
     4 Version=1.0
     5 Type=Application
     6 Terminal=true
     7 Exec=sudo pip install '/home/user/CustomWallpaper/ChangeWallpaper/Pillow-5.2.0-cp27-cp27mu-manylinux1_x86_64.whl'
     8 Name=Install Pillow
     9 Comment=Install Pillow
    10 Icon=/home/user/CustomWallpaper/ChangeWallpaper/wallpaper_128px.png
    11 Name[en]=Install Pillow

    文件:Set Auto Start.desktop (用修改好的rc.local文件直接替换掉原来的文件)

     1 #!/usr/bin/env xdg-open
     2 
     3 [Desktop Entry]
     4 Version=1.0
     5 Type=Application
     6 Terminal=true
     7 Exec=sudo cp '/home/user/CustomWallpaper/ChangeWallpaper/rc.local' '/etc/rc.local'
     8 Name=Set Auto Ssart
     9 Comment=Set Auto Ssart
    10 Icon=/home/user/CustomWallpaper/ChangeWallpaper/wallpaper_128px.png
    11 Name[en]=Set Auto Ssart
    12 Name[en_US]=Set Auto Start

    备注:

      1、以上文件(脚本)在使用时,记得要打开可执行权限:在文件上鼠标右键,点击属性勾选可执行权限。否则无法使用;

      2、文件中出现的CustomWallpaper/ChangeWallpaperCustomWallpaper/Temp是我在/home/user目录下创建的文件夹,前者存放脚本,后者存放新的桌面背景;

      3、有时候会出现开机后电脑桌面没有更换的情况,观察发现python脚本有运行,新的图片也成功生成,但是设置为当前壁纸的时候没有成功,目前还没找到原因。遇到这种情况需要手动运行一下ChangeWallpaper.desktop文件便可成功更换壁纸。

    预览:

    更新:(2018-11-23)

    上面的代码中没有设置字体的颜色,默认为白色,当然也可以自定义颜色,只需对代码稍作修改:

    fillcolor = 'lightcyan'
    #red红色/blue蓝色/lightcyan浅蓝色/grey灰色/black黑色/gold金色/limegreen暗绿/white白色/...
    draw.text([x, y], StationID, font=draw_font, fill=fillcolor)

    --the end--

  • 相关阅读:
    QQ下面功能移动效果
    网页中选择功能
    自定义listview
    android的内存优化分析【转,超级推荐】
    animation的xml定义中的android:interpolator属性(转)
    HOME键与Notification配合使用的bug重现【原创】
    (转载)Android下Affinities和Task(开发者指南)
    职场加薪步步高升的五大法则(转)
    强引用,软引用和弱引用。
    更改字体的ttf。
  • 原文地址:https://www.cnblogs.com/jswl/p/9318614.html
Copyright © 2011-2022 走看看