Ứng dụng sẽ khóa màn hình sau một khoảng thời gian đã đặt cho Ubuntu


10

Có ứng dụng nào cho Ubuntu sẽ khóa máy tính sau một khoảng thời gian xác định (ví dụ 30 phút). Tôi cần nó cho trẻ em để hạn chế thời gian chúng xem phim hoạt hình. Ví dụ: 30 phút xem và sau đó khóa PC yêu cầu cha mẹ mở khóa.

Đối với Windows, tôi đã sử dụng ứng dụng Eyes Relax, nó hiển thị màn hình đen và thanh tiến trình màu xanh lá cây (thời gian còn lại để mở khóa PC) và yêu cầu mật khẩu để ghi đè khóa.


Chỉ tò mò nếu bất kỳ câu trả lời dưới đây làm việc cho bạn?
WinEunuuchs2Unix

Tôi sẽ kiểm tra chúng khi tôi có cơ hội và đánh dấu câu trả lời
Dmitriy

Tôi vừa phát hiện ra những Câu hỏi và Câu trả lời tương tự có thể được sử dụng 1) askubfox.com/questions/715721/ Lần 2) askubfox.com/questions/68918/ và 3) Askubfox.com/questions/696620/ Khăn
WinEunuuchs2Unix

Câu trả lời:


15

Cập nhật ngày 4 tháng 6 năm 2018

Một chương trình ưu việt hơn nhiều multi-timerđã được tạo ra: Một bộ đếm thời gian để thiết lập các báo thức khác nhau đồng thời

Khóa màn hình hẹn giờ

systray.gif

Tạo Bộ đếm thời gian Khóa màn hình của riêng bạn thay vì các ứng dụng của bên thứ 3

Mặc dù có các ứng dụng của bên thứ 3 để thực hiện việc này, bạn có thể tạo ứng dụng của riêng mình. Tóm tắt các bước:

  • Sử dụng gedit để tạo tập lệnh lock-screen-timer
  • Sao chép và dán mã từ cửa sổ này vào lock-screen-timer
  • Đánh dấu lock-screen-timerlà một thực thi
  • Kiểm tra nó!
  • Cấu hình Nautilus để thực thi các tập lệnh bash
  • Tạo liên kết phím tắt trên màn hình
  • Theo dõi thời gian còn lại

Chỉnh sửa 1 (ngày 19 tháng 11 năm 2016): Phiên bản cuối cùng. Cảnh báo khóa sắp xảy ra ở 15, 10, 5, 3, 2 và 1 phút còn lại bằng tin nhắn và âm thanh. Sử dụng tiện nghi để có được số phút (mặc định là 30).

Chỉnh sửa 2 (ngày 20 tháng 11 năm 2016): Thay đổi mã để giết tập lệnh ngủ trước đó.

Chỉnh sửa 3 (ngày 20 tháng 1 năm 2017): Sửa lại việc giết mã tập lệnh trước đó. Thêm thông báo nếu phiên bản trước đã chạy và kết thúc.

Chỉnh sửa 4 (Tháng Hai 4.2017): Chạy trong vòng lặp để đếm ngược nhiều lần mà không cần phải nhấp lại vào biểu tượng máy tính để bàn. tức là đêm giặt - 16 phút để xả chu trình (nước xả vải), 13 phút để tải máy sấy, 58 phút để lấy ra khỏi máy sấy.

Chỉnh sửa 5 (ngày 11 tháng 2 năm 2017): Viết số phút còn lại để /tmp/lock-screen-timer-remaining. Điều này cho phép các chương trình khác hiển thị lượng thời gian trước khi màn hình bị khóa.

Chỉnh sửa 6 (ngày 07 tháng 8 năm 2017): Thay đổi /tmp/tệp công việc ~/.để hỗ trợ nhiều người dùng trên mạng.

EDIT: Lưu ý rằng tập lệnh phụ thuộc vào ogg123 để phát âm thanh nhắc nhở. Chương trình này là một phần của gói công cụ vorbis từ kho vũ trụ. Kịch bản như được trình bày ở đây cũng cố gắng sử dụng tập lệnh hotplugtv được tìm thấy ở đây.

Chỉnh sửa 8 (ngày 12 tháng 11 năm 2017): Thêm hỗ trợ WSL (Hệ thống con Windows 10 cho Linux). Lưu ý bạn cần thêm VcXsrvubuntu-desktophoặc xubuntu-desktop(ưu tiên) để sử dụng GUI Linux trong WSL. Hiển thị thời gian còn lại của khay hệ thống / khay thông báo của Windows 10 yêu cầu bổ sung cho những gì indicator-sysmonitortrong Linux. Một powershell.exekịch bản trong tương lai được lên kế hoạch cho hỗ trợ khu vực thông báo Windows 10.

Chỉnh sửa 9 (ngày 19 tháng 2 năm 2018): Sửa lỗi hoạt hình thiếu trình tự \quay bánh pizza "|, /, ─, \".

Sử dụng gedit để tạo tập lệnh lock-screen-timer

Mở Terminalbằng Ctrl+ Alt+ Tvà gõ:

gedit lock-screen-timer

Sao chép và dán mã từ cửa sổ bên dưới để lock-screen-timer

Chuyển trở lại màn hình này và sao chép mã sau bằng cách tô sáng nó và nhấn 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.

Sau đó chuyển trở lại geditcửa sổ trống và dán mã bằng Ctrl+ V. Lưu tệp và thoát trình chỉnh sửa trở lại dấu nhắc lệnh.

Đánh dấu lock-screen-timerlà một thực thi

Bây giờ chúng ta cần làm cho tập lệnh thực thi bằng cách gõ:

chmod +x lock-screen-timer

Kiểm tra nó!

Trước khi gọi tập lệnh từ GUI, chúng tôi sẽ gọi nó từ thiết bị đầu cuối để chúng tôi có thể xem liệu có bất kỳ thông báo lỗi nào được hiển thị không:

~/lock-screen-timer

Bạn được nhắc về số phút:

Khóa màn hình hẹn giờ

Đặt số phút mong muốn và nhấp OK để bắt đầu hẹn giờ. Khi có 15, 10, 5, 3, 2 và 1 phút để lại âm thanh hệ thống và một bong bóng thông báo xuất hiện thông báo khi màn hình sẽ bị khóa. Sau khi màn hình bị khóa, bạn cần nhập mật khẩu để mở khóa màn hình.

Cấu hình Nautilus để thực thi các tập lệnh bash

Nautilus định nghĩa những gì xảy ra khi chúng ta nhấp đúp vào tập lệnh thực thi khi cửa sổ hiển thị tệp hoặc liên kết trên màn hình. Hành vi bình thường là chỉnh sửa tập lệnh bằng cách sử dụng gedit. Chúng tôi muốn thay đổi hành vi này để nó được thực thi.

Bắt đầu Nautilus và điều hướng đến thư mục chứa lock-screen-timer. Nhấp chuột trái vào nó một lần để tập trung vào nó. Di chuột qua thanh menu trên cùng cho đến khi menu "Chỉnh sửa tệp ..." xuất hiện, sử dụng:

  1. Nhấp vào Editmenu thả xuống
  2. Bấm Propertiestùy chọn
  3. Bấm vào Behaviortab
  4. Quan sát các nút tùy chọn radio bên dưới Executable Text Files
  5. Kiểm tra nút radio Run executable text files when they are opened

Tạo liên kết phím tắt trên màn hình

Từ phần trước lock-screen-timervẫn có trọng tâm. Nếu không, điều hướng đến tập lệnh và nhấp chuột trái vào tập lệnh một lần để tập trung vào nó. Sau đó sử dụng:

  • Nhấp chuột phải vào tập tin và các tùy chọn menu ngữ cảnh xuất hiện.
  • Từ menu chọn Make Link.
  • Một biểu tượng mới xuất hiện được gọi là Link to lock-screen-timer.
  • Nhấp chuột trái vào biểu tượng mới và kéo nó từ Nautilus vào máy tính để bàn của bạn.

Bây giờ bạn có thể nhấp đúp vào liên kết phím tắt trên màn hình và tập lệnh được chạy. Một hộp thoại xuất hiện để lấy số phút. Hai nút được trình bày CancelOK. Nếu bạn bấm vào Xđể đóng cửa sổ, nó giống như chọn Cancel.

Sau khi bộ đếm thời gian đang chạy và bạn nhấp đúp chuột vào nó một lần nữa, bản sao đang chạy đầu tiên bị "giết". Bây giờ bạn có thể bắt đầu đếm ngược khóa mới hoặc nhấp vào Cancelđể không đếm ngược.

Thời gian hiển thị còn lại trong vùng systray / thông báo

Trong khi bộ đếm thời gian màn hình khóa đang chạy, nó ghi lại bao nhiêu phút còn lại vào tệp ~/.lock-screen-timer-remaining. Bạn có thể xem tệp này bằng watchlệnh hoặc hiển thị nó trên thanh chỉ báo ứng dụng / khay hệ thống của Ubuntu như được hiển thị ở đầu câu trả lời này. Để hiển thị thời gian còn lại trong khu vực thông báo, hãy làm theo các hướng dẫn trong Hỏi & Đáp này: ( BASH có thể hiển thị trong systray làm chỉ báo ứng dụng không? ).


Kids-tv-timer 1 cung cấp cho trẻ em-tv-timer: không tìm thấy lệnh. Có cách nào để tạo một phím tắt trên máy tính để bàn hoặc trong thanh tác vụ không? Để chỉ cần nhấp vào nó và kích hoạt ứng dụng?
Dmitriy

tập tin ở đó, nếu tôi nhấp đúp vào nó, nó sẽ mở trong gedit. Tôi đã thực hiện tất cả các lệnh của bạn
Dmitriy

Tôi đã thay đổi dòng cuối cùng thành ~/kids-tv-timer 1. Xin lỗi con đường đã bị mất ở phía trước. Hãy thử điều đó.
WinEunuuchs2Unix

vâng, điều đó đã giúp Nhưng bạn đã không trả lời câu hỏi thứ 2? :)
Dmitriy

@geotavros Một màn hình hiển thị tiến trình nằm trên video sẽ yêu cầu một cách tiếp cận hoàn toàn khác với sleeplệnh được sử dụng trong kids-tv-timertập lệnh bash. Có thể tạo một vòng lặp trong đó mỗi phút một bong bóng thông báo tồn tại trong khoảng 10 giây xuất hiện trên video với nội dung "còn lại 29 phút", sau đó "còn 28 phút", v.v. Tuy nhiên, để ghi đè bạn vẫn phải làm gián đoạn video, giết kids-tv-timervà khởi động lại nó với sự phân bổ thời gian mới. Nó gần như dễ dàng hơn cho phép thời gian hết hạn, đăng nhập và khởi động lại kids-tv-timerHãy cho tôi biết.
WinEunuuchs2Unix

1

Bạn có thể muốn sử dụng một cái gì đó như Mkahawa , được sử dụng để quản lý các quán cà phê internet.


1
Cái này nhìn phức tạp quá. Có máy chủ và máy khách. Làm thế nào để tôi cài đặt nó?
Dmitriy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.