Aplikasi yang akan mengunci layar setelah sejumlah waktu yang ditentukan untuk Ubuntu

10

Apakah ada aplikasi untuk Ubuntu yang akan mengunci komputer setelah waktu yang ditentukan (mis. 30 menit). Saya membutuhkannya untuk anak-anak untuk membatasi waktu mereka menonton kartun. Misalnya 30 menit menonton dan kemudian PC mengunci yang membutuhkan orangtua untuk membukanya.

Untuk Windows saya menggunakan aplikasi Eyes Relax, itu menunjukkan layar hitam dan bilah kemajuan hijau (waktu tersisa untuk membuka kunci PC) dan memerlukan kata sandi untuk mengganti kunci.

Dmitriy
sumber
Hanya ingin tahu apakah ada jawaban di bawah ini yang cocok untuk Anda?
WinEunuuchs2Unix
Saya akan menguji mereka ketika saya mendapatkan kesempatan dan menandai jawabannya
Dmitriy
Saya baru saja menemukan Pertanyaan dan Jawaban serupa yang mungkin berguna 1) askubuntu.com/questions/715721/… 2) askubuntu.com/questions/68918/… dan 3) askubuntu.com/questions/696620/…
WinEunuuchs2Unix

Jawaban:

15

Pembaruan 4 Juni 2018

Program yang jauh lebih unggul disebut multi-timertelah dibuat: Timer untuk mengatur alarm yang berbeda secara bersamaan

Timer Layar Kunci

systray.gif

Buat Timer Lock Screen Anda sendiri dan bukan aplikasi Pihak ke-3

Meskipun ada aplikasi Pihak ke-3 untuk melakukan ini, Anda dapat membuatnya sendiri. Ringkasan langkah-langkah:

  • Gunakan gedit untuk membuat skrip lock-screen-timer
  • Salin dan tempel kode dari jendela ini ke lock-screen-timer
  • Tandai lock-screen-timersebagai yang dapat dieksekusi
  • Menguji!
  • Konfigurasikan Nautilus untuk menjalankan skrip bash
  • Buat tautan pintasan desktop
  • Pantau sisa waktu

Sunting 1 (19 Nov 2016): Versi final. Peringatan kunci yang akan datang pada 15, 10, 5, 3, 2 dan 1 menit tersisa menggunakan pesan dan suara. Gunakan zenity untuk mendapatkan jumlah menit (default ke 30).

Sunting 2 (20 Nov.2016): Perubahan kode untuk mematikan skrip tidur sebelumnya.

Sunting 3 (Jan 20.2017): Merevisi pembunuhan kode skrip sebelumnya. Tambahkan pesan informasi jika versi sebelumnya sudah berjalan dan dihentikan.

Sunting 4 (4 Februari 2016): Jalankan dalam lingkaran untuk beberapa hitungan mundur tanpa harus mengklik kembali ikon desktop. yaitu malam laundry - 16 menit untuk membilas siklus (pelembut kain), 13 menit untuk memuat pengering, 58 menit untuk mengeluarkan pengering.

Sunting 5 (11 Feb.2017): Sisa menit untuk menulis /tmp/lock-screen-timer-remaining. Ini memungkinkan program lain untuk menampilkan jumlah waktu sebelum layar dikunci.

Sunting 6 (Agustus 07.2017): Ubah /tmp/file kerja ke ~/.untuk mendukung banyak pengguna di jaringan.

EDIT: Perhatikan bahwa skrip tergantung pada ogg123 untuk memutar suara pengingat. Program ini adalah bagian dari paket alat-vorbis dari repositori semesta. Skrip seperti yang disajikan di sini juga mencoba menggunakan skrip hotplugtv yang ditemukan di sini.

Sunting 8 (12 Nov.2017): Tambahkan dukungan WSL (Windows 10 Subsystem untuk Linux). Catatan Anda perlu menambahkan VcXsrvdan ubuntu-desktopatau xubuntu-desktop(lebih disukai) untuk menggunakan Linux GUI di WSL. Tampilan sisa waktu baki sistem Windows 10 sistem / area memerlukan pelengkap apa yang indicator-sysmonitorada di Linux. Sebuah masa depan powershell.exeskrip direncanakan untuk mendukung Windows 10 area notifikasi.

Sunting 9 (19 Feb.2018): Perbaiki animasi yang hilang \dari urutan pemintalan pizza "|, /, ─, \".

Gunakan gedit untuk membuat skrip lock-screen-timer

Buka + + Terminalmenggunakan dan ketik:CtrlAltT

gedit lock-screen-timer

Salin dan tempel kode dari jendela di bawah ke lock-screen-timer

Beralih kembali ke layar ini dan salin kode berikut dengan menyorotnya dan menekan 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.

Kemudian beralih kembali ke geditjendela kosong dan tempel kode menggunakan Ctrl+ V. Simpan file dan keluar dari editor kembali ke command prompt.

Tandai lock-screen-timersebagai yang dapat dieksekusi

Sekarang kita perlu membuat skrip dapat dieksekusi dengan mengetik:

chmod +x lock-screen-timer

Menguji!

Sebelum memanggil skrip dari GUI, kami akan memanggilnya dari terminal sehingga kami dapat melihat apakah ada pesan kesalahan yang ditampilkan:

~/lock-screen-timer

Anda diminta untuk jumlah menit:

Timer Layar Kunci

Atur jumlah menit yang diinginkan dan klik OK untuk memulai timer. Ketika ada 15, 10, 5, 3, 2 dan 1 menit tersisa suara sistem terdengar dan gelembung pesan muncul memberi tahu kapan layar akan dikunci. Setelah layar terkunci, Anda harus memasukkan kata sandi untuk membuka kunci layar.

Konfigurasikan Nautilus untuk menjalankan skrip bash

Nautilus mendefinisikan apa yang terjadi ketika kita mengklik dua kali pada skrip yang dapat dieksekusi ketika jendela tampilan file atau tautan di desktop. Perilaku normal adalah mengedit skrip menggunakan gedit. Kami ingin mengubah perilaku ini sehingga dijalankan.

Mulai Nautilus dan arahkan ke direktori yang berisi lock-screen-timer. Klik kiri sekali untuk memberi fokus. Arahkan mouse ke bilah menu atas hingga menu "File Edit ..." muncul, gunakan:

  1. Klik Editmenu tarik-turun
  2. Klik Propertiesopsi
  3. Klik Behaviortab
  4. Amati tombol opsi radio di bawah Executable Text Files
  5. Periksa tombol radio Run executable text files when they are opened

Buat tautan pintasan desktop

Dari bagian sebelumnya lock-screen-timermasih fokus. Jika tidak, navigasikan ke skrip dan klik kiri sekali untuk memberi fokus. Kemudian gunakan:

  • Klik kanan pada file dan opsi menu konteks muncul.
  • Dari menu pilih Make Link.
  • Ikon baru muncul yang disebut Link to lock-screen-timer.
  • Klik kiri pada ikon baru dan seret dari Nautilus ke desktop Anda.

Sekarang Anda dapat mengklik dua kali pada tautan pintasan desktop dan skrip dijalankan. Kotak dialog muncul untuk mendapatkan nomor menit. Dua tombol disajikan Canceldan OK. Jika Anda mengklik Xuntuk menutup jendela itu sama dengan memilih Cancel.

Setelah penghitung waktu berjalan dan Anda klik dua kali di atasnya lagi salinan berjalan pertama "terbunuh". Anda sekarang dapat memulai hitung mundur kunci scren baru atau klik Canceltanpa hitung mundur.

Tampilan Sisa Waktu di area systray / notifikasi

Saat pengunci layar berjalan, ia mencatat berapa menit yang tersisa dalam file ~/.lock-screen-timer-remaining. Anda dapat melihat file ini dengan watchperintah atau menampilkannya di baki sistem / indikator aplikasi Ubuntu seperti yang ditunjukkan di bagian atas jawaban ini. Untuk menampilkan waktu yang tersisa di area notifikasi, ikuti instruksi di T&J ini: ( Bisakah BASH tampil di systray sebagai indikator aplikasi? ).

WinEunuuchs2Unix
sumber
kids-tv-timer 1 memberikan kids-tv-timer: perintah tidak ditemukan. Apakah ada cara untuk membuat pintasan di desktop atau di bilah tugas? Untuk hanya mengkliknya dan mengaktifkan aplikasi?
Dmitriy
file ada di sana, jika saya klik dua kali itu terbuka di gedit. Saya telah menjalankan semua perintah Anda
Dmitriy
Saya mengubah baris terakhir menjadi ~/kids-tv-timer 1. Maaf jalannya hilang di depan. Coba itu.
WinEunuuchs2Unix
ya, itu membantu. Tetapi Anda tidak menjawab pertanyaan ke-2? :)
Dmitriy
@geotavros Tampilan progres yang duduk di atas video akan membutuhkan pendekatan yang sama sekali berbeda dari sleepperintah yang digunakan dalam kids-tv-timerskrip bash. Dimungkinkan untuk membuat lingkaran di mana setiap menit gelembung pemberitahuan yang berlangsung selama sekitar 10 detik muncul di atas video yang mengatakan "29 menit tersisa", lalu "28 menit tersisa", dll. Namun untuk mengesampingkan Anda masih harus interupsi video, bunuh kids-tv-timerdan mulai ulang dengan penjatahan waktu baru. Hampir mudah membiarkan waktu kedaluwarsa, masuk dan mulai ulang kids-tv-timerBiarkan saya tahu.
WinEunuuchs2Unix
1

Anda mungkin ingin menggunakan sesuatu seperti Mkahawa , yang digunakan untuk mengelola kafe internet.

Chris Matenaers
sumber
1
Ini terlihat terlalu rumit. Ada server dan klien. Bagaimana cara menginstalnya?
Dmitriy