Timer, który automatycznie blokuje ekran, aby oderwać się od komputera?

63

Szukam programu graficznego lub wiersza polecenia, który zapewnia mi następujący przepływ pracy:

  1. Rozpocznij 25-minutową sesję
  2. Po 25 minutach ekran jest automatycznie blokowany na 5 minut (a może po prostu stał się czarny?)
  3. Teraz pomagam sobie zrobić przerwę, ponieważ nie mogę nic zrobić przed komputerem poza patrzeniem na czarny lub zablokowany ekran :)
  4. Po 5 minutach ekran automatycznie powraca i mogę kontynuować pracę

Czy istnieje program, który właśnie to robi?

orschiro
źródło
Masz na myśli domyślną funkcję?
orschiro,
Cześć Orschiro, gotowe! Zobacz ostatnią edycję ...
Jacob Vlijm
@JacobVlijm właśnie zainstalował wersję PPA. Co za piękna aplikacja, którą stworzyłeś. Jeszcze raz wielkie dzięki!
orschiro,
@orschiro Dziękuję za miłe pytanie! To była naprawdę świetna zabawa, a jeśli znajdziesz błędy lub masz sugestie, nie wahaj się wspomnieć o tym na starterze (link do błędu lub link do pytania).
Jacob Vlijm,

Odpowiedzi:

86

Zrób sobie przerwę

TakeaBreak jest teraz dostępny w starterze

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

Ostatnio (także) nalegaliśmy na 18.04 / 18.10 / 19.04


Oświadczenie: Jestem autorem

Możesz tutaj zgłaszać błędy itp. Lub komentować tutaj . Dzięki orschiro za miłe pytanie i Rinzwind za zachętę!


pozostałe przerwy (za pomocą opcji odliczania)

wprowadź opis zdjęcia tutaj

Ustawienia

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj


EDYTOWAĆ

Zintegrowana i zmodernizowana wersja Ubuntu Budgie jest już dostępna:

wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj


wprowadź opis zdjęcia tutaj


Ten aplet najprawdopodobniej będzie domyślnie dostępny w Ubuntu Budgie 19.04, ale teraz można go uzyskać tutaj jako eksperymentalny.

Jacob Vlijm
źródło
Komentarze nie są przeznaczone do rozszerzonej dyskusji; ta rozmowa została przeniesiona do czatu .
Thomas Ward
23

Możesz również rozważyć użycie Workrave , chociaż nie jest on już opracowywany. Uznałem, że jest łatwy w użyciu i wysoce konfigurowalny. Zawiera również bardzo ładne statystyki dotyczące korzystania z komputera i liczby przerw. Wreszcie, uważam, że może również synchronizować się między wieloma komputerami, co jest przydatne, jeśli na przykład pracujesz zarówno na laptopie, jak i na komputerze szkolnym.

monit przerwania przerwy w pracy

EDYCJA: Ma wiele innych funkcji, o których nie wspomniałem, takich jak sugerowanie ćwiczeń, które należy wykonać, gdy ekran jest zablokowany. I może brać pod uwagę tylko czas korzystania z komputera, więc nie poprosi Cię o przerwę po powrocie z toalety :)

EDYCJA 2:

Sprawdź tryb „Reading”!

Powyższą funkcję liczenia czasu, w którym aktywnie korzystasz z komputera, możesz uznać za błąd, jeśli nie robisz dużo (bez myszy, bez zdarzeń klawiatury), ponieważ spowoduje to przerwanie tylko po zsumowaniu 1 godziny użytkowania (lub ile czasu skonfigurowałeś). W takich sytuacjach włączenie trybu „Czytanie” spowoduje wyświetlenie monitu o dokładnej godzinie, niezależnie od użycia.

Ciprian Tomoiagă
źródło
Dzięki! Czy wśród funkcji może on czarny lub blokować ekran w czasie przerwy?
orschiro,
2
zdecydowanie może to zablokować. nie jestem pewien, czy to zaciemnisz.
Ciprian Tomoiagă,
To koszmar do zainstalowania.
bartekbrak
1
@bartekbrak sudo apt-get install workrave?
Ciprian Tomoiagă
12

Surowy, minimalistyczny, wiersz poleceń:

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

Można go również przekształcić w skrót na pulpicie lub w funkcję .bashrc

Dlaczego 1500 i 300? ponieważ to sekundy, 1500 sekund / 60 sekund na minutę = 25 minut.


Poniżej znajduje się skrypt dla timera, który umożliwia ustawienie zmiennej sesji i czasu przerwy, a także metody sygnalizowania przerwy.

Pamiętaj, że każdy skrypt w systemie Linux musi być zapisany jako plik i mieć ustawione uprawnienia do wykonywania chmod +x /path/to/script.sh. Gdy to zrobisz, możesz powiązać skrypt ze skrótem, jak pokazano w Jak powiązać pliki .sh z kombinacją klawiatury? lub utwórz skrót na pulpicie, jak pokazano w Jak utworzyć programy uruchamiające na pulpicie?

Po uruchomieniu skryptu powinieneś zobaczyć takie menu:

wprowadź opis zdjęcia tutaj

#!/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 ###########
Sergiy Kolodyazhnyy
źródło
Lubię patrzeć na różne sposoby, w jakie ludzie podchodzą do tych rzeczy. Przekonanie, że istnieje więcej niż jeden sposób na skórowanie kota, wydaje się właściwe. Może wymieszaj, jak go powiązać lub jak zrobić skrót na pulpicie? (Zakładając, że twoim celem jest kompletność).
KGIII
10

Oto inne narzędzie o nazwie Safe Eyes do tego samego celu.

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

Ekran krótkich przerw Safe Eyes

Cechy:

  • Krótkie przerwy z ćwiczeniami oka
  • Długie przerwy na zmianę pozycji fizycznej i rozgrzewkę
  • Ścisła przerwa dla osób uzależnionych od komputera
  • Nie przeszkadzaj podczas pracy z aplikacjami pełnoekranowymi (np .: oglądanie filmów)
  • Wyłącz klawiaturę podczas przerwy
  • Powiadomienia przed każdą przerwą
  • Obsługa wielu wyświetlaczy
  • Wstrzymaj automatycznie, jeśli system jest bezczynny
  • Opcjonalny alarm dźwiękowy na końcu przerw
  • Obsługa wielu języków

Aby uzyskać więcej informacji: https://github.com/slgobinath/SafeEyes

Gobinath
źródło
1
Tak bardzo to kocham!
Asalle
6

W tym celu używałem xwrits od wielu lat.

sudo apt-get install xwrits

Domyślnie jest to 5 minutową przerwą co 55 minut, ale w zależności od strony człowieka te czasy są konfigurowalne poprzez breaktimei typetimewiersza poleceń opcji, odpowiednio. Możesz również kontrolować, czy blokuje ekran, korzystając z +lockopcji. Więc aby ustawić go na 5-minutową przerwę co 25 minut, blokując cię, powinieneś uruchomić go w ten sposób

xwrits typetime=25 breaktime=5 +lock &
Michael Mandel
źródło