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
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 feh | 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]}}'`
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 时间后,关闭提示图片
echo "ps -ef | grep feh | 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 番茄时钟 定时 取消 快捷方式的更多相关文章

  1. linux 实时时钟(RTC)驱动【转】

    转自:http://blog.csdn.net/yaozhenguo2006/article/details/6820218 这个是linux内核文档关于rtc实时时钟部分的说明,此文档主要描述了rt ...

  2. Linux中的定时自动执行功能(at,crontab)

    Linux中的定时自动执行功能(at,crontab) 概念 在Linux系统中,提供了两种提前对工作进行安排的方式 at 只执行一次 crontab 周期性重复执行 通过对这两个工具的应用可以让我们 ...

  3. linux下mysql定时备份数据库

    linux下mysql定时备份数据库 (2010-10-21 12:40:17) 转载▼ 标签: 杂谈   一.用命令实现备份 首页进入mysql的bin目录 1.备份数据#mysqldump -uu ...

  4. Linux 系统时钟(date) 硬件时钟(hwclock)

    /********************************************************************* * Linux 系统时钟(date) 硬件时钟(hwclo ...

  5. linux 通用时钟框架CCF

    linux CCF 时钟框架 简单介绍 这里讲的时钟是给soc各组件提供时钟的树状框架,并非内核使用的时间,和其它模块一样,clk也有框架,用以适配不同的平台.适配层之上是客户代码和接口,也就是各模块 ...

  6. linux中服务器定时程序设定

    服务器不重启的情况下定时自动重启apache及mysql服务,其实也大同小异.具体步骤如下:  一.每天的12点及16点重启apache及mysql服务 [root@www bin]# cd /opt ...

  7. 如何使用Linux的Crontab定时执行PHP脚本的方法[转载]

    首先说说cron,它是一个linux下的定时执行工具.根用户以外的用户可以使用 crontab 工具来配置 cron 任务.所有用户定义的 crontab 都被保存在/var/spool/cron 目 ...

  8. Linux系统时钟的更改

    linux系统时钟有两个,一个是硬件时钟,即BIOS时间,就是我们进行CMOS设置时看到的时间,另一个是系统时钟,是linux系统Kernel时间. 查看.设置硬件时间: 查看系统硬件时钟 hwclo ...

  9. 【Java并发编程】20、DelayQueue实现订单的定时取消

    当订单定时取消需要修改数据库订单状态,但是怎么确定订单什么时候应该改变状态,解决方案有下面两种: 第一种,写个定时器去每分钟扫描数据库,这样更新及时,但是如果数据库数据量大的话,会对数据库造成很大的压 ...

随机推荐

  1. 解决Vue中文本输入框v-model双向绑定后数据不显示的问题

    前言 项目中遇到一个问题就是在Vue中双向绑定对象属性时,手动赋值属性后输入框的数据不实时更新的问题. <FormItem label="地址" prop="eve ...

  2. Integer和int及String的总结

    秉承着总结发表是最好的记忆,我把之前遇到的问题在这里总结和大家分享一下,希望大家共同进步: 一.Integer和int首先说下自动拆装箱,基本数据类型转换为包装类型的过程叫装箱,反之则是拆箱,其中最特 ...

  3. php接口开发经验总结

    接口开发采用jwt方式验证: 接口开发最好留多几个返回方式,方便本地调用: 待更新.............

  4. oracle常用数学函数

    数学函数 ABS:(返回绝对值) --返回绝对值 select abs(-1.11) from dual; CEIL:(向上取整) --向上取整 select ceil(3.1415) from du ...

  5. 【FreeRTOS学习06】深度解剖中断与任务之间同步的具体使用场景

    嵌入式系统中中断是必不可少的一部分: [FreeRTOS实战汇总]小白博主的RTOS学习实战快速进阶之路(持续更新) 文章目录 1 前言 2 中断特点 3 延迟中断处理 3.1 信号量的使用 3.2 ...

  6. Git使用教程之新手也能看懂(一)

    首先我写这篇文章的初衷是因为 有一段时间没用Git了,现在突然用起来,很多命令都忘记了,导致去上网查了各种资料和文档(其中廖雪峰老师的文章给我的帮助很大,非常感谢!),花费了大量的时间,等于是又重新学 ...

  7. dp规划之矩阵连乘问题

    问题描述:给定n个矩阵{A1,A2,...,An},其中Ai与Ai+1是可乘的,我们要计算这n个矩阵的最少计算次数.  将多个矩阵连乘抽象为最后一次计算即两个矩阵相乘. public static v ...

  8. ssh chroot 设置

    目的 让特定的用户登录linux服务器后,对其操作权限进行限制: 不能使用任何方式杀掉服务器现有的进程 最好只能查看相关的目录和文件 最好只能运行特定的命令,比如cat.ls.tail等 场景模拟 一 ...

  9. javaweb学习之路(1)request

    1.本次练习写一个简单的注册页面 准备工作:首先搭建好服务器tomcat环境,使用的编译软件是eclipse 2.在eclipse中创建一个web工程 3.在webContent文件夹下创建一个reg ...

  10. SpringMVC 类型转换错误自定义返回

    在SpringMVC捕获异常只需要实现接口org.springframework.web.servlet.HandlerExceptionResolver,即可自定义返回异常,如:属性转换异常 @Re ...