Aktualizacja z 4 czerwca 2018 r
Utworzono znacznie lepszy program o nazwie multi-timer
: Zegar do jednoczesnego ustawiania różnych alarmów
Timer blokady ekranu
Utwórz własny Timer blokady ekranu zamiast aplikacji innych firm
Chociaż istnieją do tego aplikacje innych firm, możesz utworzyć własne. Podsumowanie kroków:
- Użyj gedit, aby utworzyć skrypt
lock-screen-timer
- Skopiuj i wklej kod z tego okna do
lock-screen-timer
- Oznacz
lock-screen-timer
jako plik wykonywalny
- Sprawdź to!
- Skonfiguruj Nautilus do wykonywania skryptów bash
- Utwórz skrót do pulpitu
- Pozostały czas monitorowania
Edycja 1 (19 listopada 2016 r.): Wersja ostateczna. Zbliżające się ostrzeżenia o blokadzie po 15, 10, 5, 3, 2 i 1 minutach pozostałych przy użyciu wiadomości i dźwięku. Użyj zenity, aby uzyskać liczbę minut (domyślnie 30).
Edycja 2 (20 listopada 2016): Zmiana kodu, aby zabić poprzedni skrypt uśpienia.
Edycja 3 (20 stycznia 2017 r.): Popraw zabijanie poprzedniego kodu skryptu. Dodaj komunikat informacyjny, jeśli poprzednia wersja była już uruchomiona i zakończona.
Edycja 4 (4 lutego 2017): Uruchom w pętli, aby odliczać wiele razy bez konieczności ponownego klikania ikony na pulpicie. tzn. Noc prania - 16 minut na cykl płukania (zmiękczacz do tkanin), 13 minut na załadowanie suszarki, 58 minut na wyjęcie z suszarki.
Edycja 5 (11 lutego 2017 r.): Napisz pozostałe minuty do
/tmp/lock-screen-timer-remaining
. Pozwala to innym programom wyświetlać czas, zanim ekran zostanie zablokowany.
Edycja 6 (07,2017 sierpnia): Zmień /tmp/
plik roboczy, ~/.
aby obsługiwał wielu użytkowników w sieci.
EDYCJA: Zauważ, że skrypt zależy od ogg123, aby odtworzyć dźwięk przypomnienia. Ten program jest częścią pakietu vorbis-tool z repozytorium wszechświata. Przedstawiony tutaj skrypt próbuje również użyć skryptu hotplugtv, który znajduje się tutaj.
Edycja 8 (12 listopada 2017 r.): Dodaj obsługę WSL (Windows 10 Subsystem for Linux). Pamiętaj, że musisz dodać VcXsrv
i ( ubuntu-desktop
lub xubuntu-desktop
preferowane), aby korzystać z GUI Linuksa w WSL. Pozostały czas w zasobniku systemowym / obszarze powiadomień systemu Windows 10 wymaga uzupełnienia działania indicator-sysmonitor
w systemie Linux. powershell.exe
Planowany jest przyszły skrypt do obsługi obszaru powiadomień Windows 10.
Edycja 9 (19 lutego 2018): Naprawiono brak animacji w \
sekwencji wirującej pizzy „|, /, ─, \”.
Użyj gedit, aby utworzyć skrypt lock-screen-timer
Otwórz za Terminal
pomocą Ctrl+ Alt+ Ti wpisz:
gedit lock-screen-timer
Skopiuj i wklej kod z okna poniżej do lock-screen-timer
Wróć do tego ekranu i skopiuj następujący kod, podświetlając go i naciskając Ctrl+ C:
#!/bin/bash
# NAME: lock-screen-timer
# PATH: $HOME/bin
# DESC: Lock screen in x minutes
# CALL: Place on Desktop or call from Terminal with "lock-screen-timer 99"
# DATE: Created Nov 19, 2016. Last revision May 30, 2018.
# UPDT: Updated to support WSL (Windows Subsystem for Linux)
# Remove hotplugtv. Replace ogg with paplay.
# Cohesion with multi-timer. New sysmonitor indicator style.
# NOTE: Time defaults to 30 minutes.
# If previous version is sleeping it is killed.
# Zenity is used to pop up entry box to get number of minutes.
# If zenity is closed with X or Cancel, no screen lock timer is launched.
# Pending lock warning displayed on-screen at set intervals.
# Write time remaining to ~/.lock-screen-timer-remaining
MINUTES="$1" # Optional parameter 1 when invoked from terminal.
# if no parameters set default MINUTES to 30
if [ $# == 0 ]; then
MINUTES=30
fi
DEFAULT="$MINUTES" # When looping, minutes count down to zero. Save deafult for subsequent timers.
# Check if lock screen timer already running
pID=$(pgrep -f "${0##*/}") # All PIDs matching lock-screen-timer name
PREVIOUS=$(echo "$pID" | grep -v ^"$$") # Strip out this running copy ($$$)
if [ "$PREVIOUS" != "" ]; then
kill "$PREVIOUS"
rm ~/.lock-screen-timer-remaining
zenity --info --title="Lock screen timer already running" --text="Previous lock screen timer has been terminated."
fi
# Running under WSL (Windows Subsystem for Linux)?
if cat /proc/version | grep Microsoft; then
WSL_running=true
else
WSL_running=false
fi
while true ; do # loop until cancel
# Get number of minutes until lock from user
MINUTES=$(zenity --entry --title="Lock screen timer" --text="Set number of minutes until lock" --entry-text="$DEFAULT")
RESULT=$? # Zenity return code
if [ $RESULT != 0 ]; then
break ; # break out of timer lock screen loop and end this script.
fi
DEFAULT="$MINUTES" # Save deafult for subsequent timers.
if [[ $MINUTES == 0 ]] || [[ $MINUTES == "" ]]; then
break ; # zero minutes considered cancel.
fi
# Loop for X minutes, testing each minute for alert message.
(( ++MINUTES ))
while (( --MINUTES > 0 )); do
case $MINUTES in 1|2|3|5|10|15|30|45|60|120|480|960|1920)
notify-send --urgency=critical --icon=/usr/share/icons/gnome/256x256/status/appointment-soon.png "Locking screen in ""$MINUTES"" minute(s)." ;
if [[ $WSL_running == true ]]; then
powershell.exe -c '(New-Object Media.SoundPlayer "C:\Windows\Media\notify.wav").PlaySync();'
else
paplay /usr/share/sounds/freedesktop/stereo/complete.oga ;
fi
;;
esac;
# Record number of minutes remaining to file other processes can read.
echo "Lock screen in: $MINUTES Minutes" > ~/.lock-screen-timer-remaining
sleep 60
done
rm ~/.lock-screen-timer-remaining # Remove work file others can see our progress with
if [[ $WSL_running == true ]]; then
# Call lock screen for Windows 10
rundll32.exe user32.dll,LockWorkStation
else
# Call screen saver lock for Ubuntu versions > 14.04.
dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock
fi
done # End of while loop getting minutes to next lock screen
exit 0 # Closed dialog box or "Cancel" selected.
Następnie przełącz się z powrotem do pustego gedit
okna i wklej kod za pomocą Ctrl+ V. Zapisz plik i zamknij edytor z powrotem do wiersza polecenia.
Oznacz lock-screen-timer
jako plik wykonywalny
Teraz musimy uczynić skrypt wykonywalnym, wpisując:
chmod +x lock-screen-timer
Sprawdź to!
Przed wywołaniem skryptu z GUI wywołamy go z terminala, abyśmy mogli zobaczyć, czy są wyświetlane komunikaty o błędach:
~/lock-screen-timer
Zostaniesz zapytany o liczbę minut:
Ustaw żądaną liczbę minut i kliknij OK, aby uruchomić stoper. Gdy pozostało 15, 10, 5, 3, 2 i 1 minuta, słychać dźwięk systemu i pojawia się dymek informujący, kiedy ekran zostanie zablokowany. Po zablokowaniu ekranu musisz wprowadzić hasło, aby odblokować ekran.
Skonfiguruj Nautilus do wykonywania skryptów bash
Nautilus określa, co się stanie, gdy klikniemy dwukrotnie skrypt wykonywalny, gdy jest to okno wyświetlania plików lub link na pulpicie. Normalnym zachowaniem jest edycja skryptu za pomocą gedit
. Chcemy zmienić to zachowanie, tak aby zostało wykonane.
Uruchom Nautilus i przejdź do katalogu zawierającego lock-screen-timer
. Kliknij raz lewym przyciskiem myszy, aby ustawić ostrość. Najedź myszką na górny pasek menu, aż pojawi się menu „Edycja pliku ...”, użyj:
- Kliknij
Edit
menu rozwijane
- Kliknij
Properties
opcję
- Kliknij
Behavior
zakładkę
- Obserwuj przyciski opcji radiowych pod
Executable Text Files
- Sprawdź przycisk opcji
Run executable text files when they are opened
Utwórz skrót do pulpitu
Z poprzedniej sekcji lock-screen-timer
wciąż się koncentruję. Jeśli nie, przejdź do skryptu i kliknij go raz lewym przyciskiem myszy, aby ustawić fokus. Następnie użyj:
- Kliknij plik prawym przyciskiem myszy, aby wyświetlić opcje menu kontekstowego.
- Z menu wybierz
Make Link
.
- Pojawi się nowa ikona o nazwie
Link to lock-screen-timer
.
- Kliknij lewym przyciskiem myszy nową ikonę i przeciągnij ją z Nautilus na pulpit.
Teraz możesz dwukrotnie kliknąć łącze skrótu na pulpicie, a skrypt zostanie uruchomiony. Pojawi się okno dialogowe z liczbą minut. Przedstawiono dwa przyciski Canceli OK. Kliknięcie przycisku, X
aby zamknąć okno, jest równoznaczne z wybraniem Cancel.
Po uruchomieniu stopera i dwukrotnym kliknięciu go pierwsza uruchomiona kopia zostanie „zabita”. Możesz teraz rozpocząć nowe odliczanie blokady scren lub kliknąć, Cancelaby nie odliczać.
Wyświetl pozostały czas w obszarze paska / obszaru powiadomień
Podczas działania timera blokady ekranu rejestruje, ile minut pozostało do pliku ~/.lock-screen-timer-remaining
. Możesz obejrzeć ten plik za pomocą watch
polecenia lub wyświetlić go na pasku zadań / paska narzędzi Ubuntu, jak pokazano na górze tej odpowiedzi. Aby wyświetlić pozostały czas w obszarze powiadomień, postępuj zgodnie z instrukcjami zawartymi w tym pytaniu : ( Czy BASH może wyświetlać się w pasku zadań jako wskaźnik aplikacji? ).