क्रूड, न्यूनतम, कमांड लाइन तरीका:
sleep 1500; gnome-screensaver-command -l; sleep 300; killall gnome-screensaver
वह भी डेस्कटॉप शॉर्टकट में बदल सकता है या फ़ंक्शन में बदल सकता है .bashrc
क्यों 1500 और 300? क्योंकि वह सेकंड, 1500 सेकंड / 60 सेकंड प्रति मिनट = 25 मिनट है।
नीचे एक टाइमर के लिए एक स्क्रिप्ट है जो चर सत्र और ब्रेक समय सेट करने की अनुमति देता है, साथ ही ब्रेक को संकेत देने के तरीके भी।
याद रखें कि लिनक्स पर किसी भी स्क्रिप्ट को एक फ़ाइल के रूप में सहेजा जाना चाहिए और इसके साथ निष्पादन योग्य अनुमतियाँ होनी चाहिए 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 ###########