序言

Arch Linux 被Arch的开发团队人为的提高的安装门槛, 所以因为Arch的安装相对与其他Linux desktop较为复杂,也难住了不少想用Arch的新Linux用户.

因此网上关于Arch Linux 的文章相对其他发行版还是比较少, 但这并不是缺点,因为Arch的用户质量较高(相对而言),网上关于Arch的文章虽然少, 但是质量都是蛮不错的,百度一大抄的情况比较少, 并且你的大多数问题在Arch 的wiki中都能找到答案~

这段时间使用Arch 的感受

Arch 的可定制化极高. 当你安装好了桌面环境后, 不需要在额外安装插件,仅仅是安装号桌面环境和桌面管理器sddm后就能给你提供很好的定制体验,这是我现在的桌面

desktop123_副本_副本.jpg
我的Arch 完全是用来工作使用的,所以我的桌面是按照方便配置的, 有兴趣可以看看B站大佬们的Arch的桌面你就知道Arch能够多么的花里胡哨. 我感觉我的桌面完全够用,而且工作电脑也没必要搞成那样,就目前还没去研究,

自定义状态栏

Arch的状态栏自定义, 简直无敌,超级好评, 你可以随意添加,并且支持非常高的扩展性, 这是我的状态栏布局

desktop123123.png

Arch 自带的命令行终端也很不错, 不过Linux的终端也垃圾不到那里去
我安装的KDE桌面, 自带好多款小游戏,我也重来没点开过, 也没去卸载,没管它.

自定义程序

使用Linux 你可以自己编写一些小脚本来方便你的工作, 这不限于Arch的每个linux dosktop 都可以很轻松的实现,比如我现在使用的2个脚本

  • 检查IP
    使用Python编写的,在上篇文章中放出代码了,就是监控剪切板中的IP,然后主动查询归属地等信息再由系统通知打印出来

2020-01-17_14-20.png

  • 自动上传文件到对象存储
    写这个的背景是我使用的typroa记录笔记时会时长插入图片,直接调用本地地址在其他设备查看的时候会出现问题,最佳的方法就是插入URl外链, TX的cos对象存储有50GB的免费空间 10GB的免费流量,也够我使用了,并且cos提供了命令行上传工具,所以我就写了shell脚本,自动监控指定目录下的文件,出现新增的文件后就自动上传,然后在由系统通知吧文件的外网源地址打印出来,我就能直接复制使用了

2020-01-17_14-22_1.png

脚本存在的问题:目前是通过新出现的文件名判断新文件的,也就是说文件更新,覆盖源文件的情况下,是不会自动上传的,这个后面可以用Python改成判断md5来检测新文件 已经处理

代码

#!/usr/bin/env python3
import  subprocess
import  time
import hashlib
import  os
import re

while 1:
    dir_path = r'/home/jerry/Meleuo/截图/'
    file_name = os.listdir(dir_path)
    file_log = r'/opt/img-upload/file.log'
    def coscmd(file_path, i):
        cmd = '/usr/bin/coscmd upload %s /note/%s' %(file_path, i)
        result = subprocess.Popen(cmd,shell=True,stderr=subprocess.PIPE)
        result = result.stderr.read().decode('utf-8')
        print(result)
        sed(result,i)
    def sed(result,i):
        cmd = 'notify-send -a coscmd -i /opt/img-upload/logo.png "新的图片被已被上传" "URL: https://img.zheli.ink/note/%s"' %(i)
        subprocess.Popen(cmd,shell=True)
    def res_md5(file_path):
        md5 = hashlib.md5()
        with open(file_path, 'rb') as f:
            while True:
                text = f.read(1024)
                if text:
                    md5.update(text)
                else:
                    break
        return  md5.hexdigest()
    file_f = open(file_log, 'r')
    old_file = file_f.readlines()
    file_f.close()

    new_file = []
    for i in file_name:
        file_path = dir_path + i
        new_name = i
        file_md5 = res_md5(file_path)
        if  not re.search(i,str(old_file)):
            print("%s 新文件" % file_path)
            coscmd(file_path,i)
        else:

            for old in old_file:
                old_md5_name = tuple(old.strip().split('-'))
                if old_md5_name[1] == file_path and old_md5_name[0] != file_md5:
                    print("\033[31m%s 修改过了\033[0m" % new_name)
                    coscmd(file_path, i)
        new_file.append('%s-%s\n'%(file_md5,file_path))

    new_file_open = open(file_log,'w')
    for i in new_file:
        new_file_open.write(i)
    new_file_open.close()
    time.sleep(2)

Last modification:January 17th, 2020 at 02:29 pm