zoukankan      html  css  js  c++  java
  • Linux 番茄时钟 定时 取消 快捷方式

    shell 脚本

    clock.sh

    #!/bin/bash
    if [ $1 == 0 ]
    then
    at -d `atq | awk -v ORS=" " '{a[NR]=$1} END {for(i=1;i<=NR;i++){print a[i]}}'` 2> /dev/null
    kill `ps -ef | grep feh | grep -v grep | awk '{print $2}' | sed -n '1p'` 2>/dev/null
    espeak -v zh "取消"
    else
    time1=${1:-45}
    time2=$[$time1+5]
    espeak -v zh "$time1"
    echo "env DISPLAY=:1 feh -F ~/Downloads/icon/th.jpeg" | at now +$time1 minutes
    echo "env DISPLAY=:1 animate -backdrop ~/Downloads/icon/fd.gif" | at now +$time2 minutes
    echo "ps -ef | grep lazha2 | grep -v grep | awk '{print $2}' | sed -n '1p' | xargs kill 2> /dev/null" | at now +$time1 minutes
    feh ~/Downloads/icon/lazha2.jpg
    fi
    

    解释

    if [ $1 == 0 ]
    then
    # 取消刚才设定的闹钟
    at -d `atq | awk -v ORS=" " '{a[NR]=$1} END {for(i=1;i<=NR;i++){print a[i]}}'`
    # 关闭图片
    kill `ps -ef | grep feh | grep -v grep | awk '{print $2}' | sed -n '1p'` 2>/dev/null
    espeak -v zh "取消"
    else
    # 默认45分钟
    time1=${1:-45}
    # 如果到点后仍意犹未尽,那么5分钟后全屏提示
    time2=$[$time1+5]
    # 普通话读出时间,需要安装 espeak,可以玩一下
    espeak -v zh "$time1"
    # time1 时间后,在外接屏上显示指定图片,修改路径`~/Downloads/icon/th.jpeg`,按`Esc`关闭图片
    echo "env DISPLAY=:1 feh -F ~/Downloads/icon/th.jpeg" | at now +$time1 minutes
    # time2 时间后,在全部屏幕上显示指定gif动画,修改路径`~/Downloads/icon/fd.gif`,按`Esc`关闭图片
    echo "env DISPLAY=:1 animate -backdrop ~/Downloads/icon/fd.gif" | at now +$time2 minutes
    # time1 时间后,关闭提示图片,这里需要 grep lazha2(图片名),否则上面的 th.jpeg 可能不会显示就被关闭了
    echo "ps -ef | grep lazha2 | grep -v grep | awk '{print $2}' | sed -n '1p' | xargs kill 2> /dev/null" | at now +$time1 minutes
    # 因为有时候不知道是否已经开启,显示一张【提示图片】,修改路径`~/Downloads/icon/lazha2.jpg`
    feh ~/Downloads/icon/lazha2.jpg
    fi
    

    添加快捷方式

    1. /usr/share/applications/目录下添加 clock.desktop 文件
      sudo vim /usr/share/applications/clock.desktop
    [Desktop Entry]
    Name=Clock
    Exec=sh /home/lfp/bin/clock.sh
    Icon=/home/lfp/Downloads/icon/clock.png
    Type=Application
    StartupNotify=true
    
    Actions=time1;time2;cancel;
    
    [Desktop Action time1]
    Name=30分钟
    Exec=sh /home/lfp/bin/clock.sh 30
    
    [Desktop Action time2]
    Name=35分钟
    Exec=sh /home/lfp/bin/clock.sh 35
    
    [Desktop Action cancel]
    Name=取消时钟
    Exec=sh /home/lfp/bin/clock.sh 0
    
    
    

    需要自己修改的地方

    1. Exec 路径,修改为自己clock脚本所在路径
    2. Icon 路径,修改为你要显示的图片的路径
    3. Actions 可以自己添加或修改时间,修改之后需要重启dock
      alt + F2 打开对话框,输入 "r",回车重启生效
    1. 添加可执行权限
      sudo chmod +x /usr/share/applications/clock.desktop

    2. 此时在程序列表中就会显示该快捷方式

      可以右键添加到收藏夹快捷启动

    资源

    th.jpeg

    fd.gif

    clock.png

    lazha2.jpg

  • 相关阅读:
    Linux网络连接图标不见了
    使用fiddler4实现手机抓包的相关配置
    selenium之 时间日期控件的处理
    vue 上传文件示例
    从入门到自闭之Python解释器安装
    从入门到自闭--并发编程
    Python高阶操作--关于数据清洗
    Python高阶操作--数据分析的理解
    python --数据库、网络编程
    python基础
  • 原文地址:https://www.cnblogs.com/usmile/p/12901925.html
Copyright © 2011-2022 走看看