一个自动锁定屏幕的计时器可以让您脱离计算机吗?


63

我正在寻找一个图形或命令行程序,为我提供以下工作流程:

  1. 开始25分钟的课程
  2. 25分钟后,屏幕会自动锁定5分钟(或者可能只是变黑了?)
  3. 现在,我被帮助休息了一下,因为除了看黑屏或锁定屏幕外,我无法在计算机前执行任何操作:)
  4. 5分钟后,屏幕会自动返回,我可以继续工作

是否有一个程序可以做到这一点?


作为默认功能,您是说什么?
orschiro

嗨奥西罗,它完成了!查看最新的编辑...
Jacob Vlijm 2015年

@JacobVlijm刚刚安装了PPA版本。您创建的应用程序多么漂亮。再次非常感谢!
orschiro

@orschiro谢谢您的提问!进行这项工作真的很有趣,如果您发现错误或有任何建议,请不要在启动板上提及它(错误链接或问题链接)。
Jacob Vlijm

Answers:


86

休息一下

TakeaBreak现在在启动板上

sudo add-apt-repository ppa:vlijm/takeabreak
sudo apt-get update
sudo apt-get install takeabreak

最近(也)推动为18.04 / 18.10 / 19.04


免责声明:我是作者

请随时在此处提交错误等,或在此处发表评论。感谢orschiro的提问,并感谢Rinzwind的鼓励!


剩余的休息秒数(使用倒计时选项)

在此处输入图片说明

设定值

在此处输入图片说明

在此处输入图片说明


编辑

现已提供Ubuntu Budgie的集成和现代化版本:

在此处输入图片说明 在此处输入图片说明


在此处输入图片说明


此applet将最有可能是默认提供在Ubuntu 19.04虎皮鹦鹉,但现在可以实现作为实验之一。


评论不作进一步讨论;此对话已转移至聊天
托马斯·沃德

23

您可能还想考虑Workrave,尽管它不再处于开发中。我发现它易于使用且高度可定制。它还具有有关如何使用计算机以及需要休息多少时间的出色统计信息。最后,我相信它也可以在多台计算机之间进行同步,这对于例如在笔记本电脑和学校计算机上工作时很有用。

休息休息提示

编辑:它具有许多我没有提到的其他功能,例如建议您在屏幕被阻止时做一些练习。而且它仅考虑您使用计算机的时间,因此当您从厕所回来时,它不会提示您休息:)

编辑2:

确保您签出“阅读”模式!

如果您不做很多事情(没有鼠标,没有键盘事件),上述仅计算您一直在使用计算机的时间的功能可以视为一个错误,因为它只会在您累积使用1小时时提示您休息(或您设置了多少时间)。在这些情况下,启用“阅读”模式将使其在准确的时间提示,而不管其用法如何。


谢谢!在这些功能中,它可以因此在休息时间变黑或锁定我的屏幕吗?
orschiro 2015年

2
它绝对可以阻止它。不确定将其涂黑。
CiprianTomoiagă15年

安装是一场噩梦。
bartekbrak

1
@bartekbrak sudo apt-get install workrave吗?
CiprianTomoiagă17年

12

粗略,极简的命令行方式:

sleep 1500; gnome-screensaver-command -l; sleep 300; killall gnome-screensaver

也可以将其转换为桌面快捷方式或将其转换为功能 .bashrc

为什么是1500和300?因为那是秒,即1500秒/每60秒= 25分钟。


以下是计时器的脚本,该脚本允许设置可变的会话和中断时间,以及发出中断信号的方法。

请记住,Linux上的所有脚本都必须另存为文件,并具有设置的可执行权限chmod +x /path/to/script.sh。完成后,您可以将脚本绑定到快捷方式,如如何将.sh文件绑定到键盘组合中所示。或创建桌面快捷方式,如如何在桌面上创建启动器所示

启动脚本时,您应该会看到如下所示的菜单:

在此处输入图片说明

#!/bin/bash

# Author: Serg Kolo
# Date : Nov 17th, 2015
# Purpose: pomodoro timer script,
# with bunch of options
# Written for: https://askubuntu.com/q/696620/295286

#####################################################
# screenSaver function
# this one uses gnome-screensaver-command for locking
# and killall for unlocking the screen;
# $1 is provided from chooseBreakMethod function
#####################################################

function screenSaver
{
  gnome-screensaver-command -l; sleep $1 ; killall gnome-screensaver 
}


##############################################
# dialogBreak function
# this serves as "screensaver". The screen is never 
# actually locked but rather we open terminal window 
# with a simple command line dialog
# in full sccrean mode
# $1 provided in chooseBreakMethod function
##################################################
function dialogBreak
{
 gnome-terminal --full-screen  -e  "bash -c 'sleep $1 | dialog --progressbox \"TAKE A BREAK\" 100 100 ' "
}

#################################################################
# dimScreen function 
# dims the screen using xrandr; the --brightness 
# can be configured
# for full or partial dimming using decimal values
# from 1 to 0
# $1 is provided from chooseBreakMethod function
################################################################

function dimScreen
{
  xrandr  | awk '$2 == "connected" {print $1}' | xargs -I % xrandr --output % --brightness 0.5
  notify-send 'Take a Break'
  sleep $1
  xrandr  | awk '$2 == "connected" {print $1}' | xargs -I % xrandr --output % --brightness 1
}

##############################
# getSettings function
# This is where the user enters 
# the settings they want
# All the values must be integers
#############################
function getSettings
{
  FORM=$(zenity --forms \ --title="Sergiy's Tomato Script" --text="Choose this session options" \
   --add-entry="Number of Sessions (how many loops)" \
   --add-entry="Session time (minutes)" \
   --add-entry="Break time (minutes)" \
   --add-entry="Dim,dialog,or screensaver? (1,2,3)" \
   --separator=" " )  

  [ $? -eq 0 ] || exit 1

   echo $FORM
}

################################
# chooseBreakMethod function
# A helper function that calls appropriate
# break method, based on the value we got
# from getSettings function
# Because dialogBreak calls gnome-terminal
# this function exits, so it doesn't wait
# Therefore we need to add additional sleep
# command
###############################

function chooseBreakMethod
{

 # $1 is method passed from  ${SETS[3]}
 # $2 is break time passed from ${SETS[2]}
  case $1 in
    1) dimScreen $2 ;;
        2) dialogBreak $2 ; sleep $2 ;;
    3) screenSaver $2 ;;
  esac

}


function minutesToSeconds
{
  echo $(($1*60))
}

#################
# MAIN
#################

# get user settings and store them into array
# Item 0 : num sessions
# Item 1 : session duration
# Item 2 : break duration
# Item 3 : break method - lockscreen, dialog, or just
# turn off the screen 
# SETS == settings
SETS=( $(getSettings) )

COUNTER=${SETS[0]}

#######################################
# This is where most of the job is done
# we loop according to number of session
# specified in the  getSettings function
#########################################

notify-send 'Session started'
while [ $COUNTER -ne 0  ]; do

  sleep $( minutesToSeconds ${SETS[1]} ) # session timer
  chooseBreakMethod ${SETS[3]} $( minutesToSeconds ${SETS[2]} )
  COUNTER=$(($COUNTER-1))
done

notify-send "tomatoScript is done"
####### END OF SCRIT ###########

我喜欢看到人们处理这些事情的不同方式。关于用多种方法给猫皮剥皮的谚语似乎是适当的。也许弄丢了如何绑定它或如何制作桌面快捷方式?(假设完整性是您的目标。)
KGIII,2015年

10

这是出于相同目的的另一个称为“ 安全眼 ”的工具。

sudo add-apt-repository ppa:slgobinath/safeeyes
sudo apt-get update
sudo apt-get install safeeyes

安全眼睛短屏

特征:

  • 短暂休息并进行眼保健操
  • 长时间休息以改变身体姿势并进行热身
  • 对那些沉迷于计算机的人严格休息
  • 使用全屏应用程序时请勿打扰(例如:观看电影)
  • 休息时禁用键盘
  • 每次休息前通知
  • 支持多种显示
  • 系统空闲时自动暂停
  • 休息结束时的可选声音警报
  • 多国语言支持

有关更多详细信息:https : //github.com/slgobinath/SafeEyes


1
非常喜欢!
阿萨尔

6

为此,我已经使用xwrits多年了。

sudo apt-get install xwrits

默认情况下,每55分钟中断5分钟,但是根据手册页,这些时间分别可以通过breaktimetypetime命令行选项进行自定义。您还可以使用+lock选项控制它是否锁定屏幕。因此,要每25分钟将其设置为5分钟的休息时间,将您锁定在外,则应这样运行

xwrits typetime=25 breaktime=5 +lock &

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.