我正在尋找一個圖形或命令列程序,它為我提供以下工作流程:
- 開始 25 分鐘的課程
- 25 分鐘後,螢幕自動鎖定 5 分鐘(或可能只是變黑?)
- 現在我得到了休息,因為除了看著黑色或鎖定的螢幕之外,我在電腦前無法做任何事情:)
- 5分鐘後,螢幕自動返回,我可以繼續工作
有沒有一個程式可以做到這一點?
答案1
休息一下
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 的整合和現代化版本現已推出:
這個小程式很可能在 Ubuntu Budgie 19.04 中預設提供,但現在可以實現這裡作為一個實驗性的。
答案2
您可能還想考慮沃克雷夫。我發現它易於使用且高度可自訂。它還包含一些關於您如何使用計算機以及您休息了多少次的非常好的統計數據。最後,我相信它還可以在多台電腦之間同步,這在例如您同時在筆記型電腦和學校電腦上工作時很有用。
編輯:它還有許多我沒有提到的其他功能,例如建議您在螢幕被阻止時進行一些練習。而且它只能考慮你使用電腦的時間,所以當你從廁所回來時它不會提示你休息:)
編輯2:
請務必查看“閱讀”模式!
以上特徵如果你沒有做太多事情(沒有滑鼠,沒有鍵盤事件),只計算你積極使用計算機的時間可以被視為一個錯誤,因為它只會在你累積 1 小時的使用時間時提示你休息(或者如何你已經設定了很多時間)。在這些情況下,啟用「閱讀」模式將使其在準確的時間進行提示,無論使用情況如何。
答案3
粗暴、極簡、命令列方式:
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 ###########