우분투 설정 시간 후 화면을 잠그는 응용 프로그램


10

정해진 시간 (예 : 30 분) 후에 컴퓨터를 잠그는 Ubuntu 용 응용 프로그램이 있습니까? 아이들이 만화를 보는 시간을 제한해야합니다. 예를 들어 30 분 동안 시청 한 다음 PC 잠금을 해제하여 부모가 잠금을 해제해야합니다.

Windows의 경우 Eyes Relax 앱을 사용하면 검은 화면과 녹색 진행률 표시 줄 (PC 잠금을 해제하는 데 남은 시간)이 표시되고 잠금을 무시하려면 암호가 필요합니다.


아래 답변이 도움이 되었습니까?
WinEunuuchs2Unix

나는 기회를 얻을 때 그들을 테스트하고 답변을 표시합니다
Dmitriy

난 그냥 사용 1)이 될 수 있습니다 유사한 질문과 답변 발견했습니다 askubuntu.com/questions/715721/... 2) askubuntu.com/questions/68918/... 3) askubuntu.com/questions/696620/...을
WinEunuuchs2Unix

답변:


15

2018 년 6 월 4 일 업데이트

훨씬 우수한 프로그램 multi-timer이 만들어졌습니다. 동시에 여러 알람을 설정하는 타이머

잠금 화면 타이머

systray.gif

타사 응용 프로그램 대신 자신의 화면 잠금 타이머 만들기

이 작업을 수행하는 타사 응용 프로그램이 있지만 직접 만들 수 있습니다. 단계 요약 :

  • gedit를 사용하여 스크립트 만들기 lock-screen-timer
  • 이 창에서 코드를 복사하여 붙여 넣기 lock-screen-timer
  • 마크 lock-screen-timer실행으로
  • 그것을 테스트하십시오!
  • bash 스크립트를 실행하도록 노틸러스 구성
  • 바탕 화면 바로 가기 링크 만들기
  • 남은 모니터 시간

편집 1 (2016 년 11 월 19 일) : 최종 버전. 메시지와 소리를 사용하여 15, 10, 5, 3, 2 및 1 분에 잠금 경고가 임박했습니다. zenity를 사용하여 분 수를 가져 오십시오 (기본값은 30).

편집 2 (2016 년 11 월 20 일) : 이전 수면 스크립트를 종료하도록 코드를 변경합니다.

편집 3 (2017 년 1 월 20 일) : 이전 스크립트 코드 종료를 수정합니다. 이전 버전이 이미 실행 중이고 종료 된 경우 정보 메시지를 추가하십시오.

편집 4 (2017 년 2 월 4 일) : 데스크탑 아이콘을 다시 클릭하지 않고도 여러 카운트 다운을 반복 실행합니다. 즉, 세탁의 밤-16 분의 헹굼주기 (직물 연화제), 13 분의 건조기 장착, 58 분의 건조기 꺼내기.

편집 5 (2017 년 2 월 11 일) :에 남은 시간 (분 )/tmp/lock-screen-timer-remaining 입니다. 이를 통해 다른 프로그램이 화면이 잠기기 전에 시간을 표시 할 수 있습니다.

편집 6 (2017 년 8 월 7 일) : 네트워크에서 여러 사용자를 지원 /tmp/하도록 작업 파일을 변경하십시오 ~/..

편집 : 스크립트는 알림 사운드를 재생하기 위해 ogg123에 의존합니다. 이 프로그램은 유니버스 저장소의 vorbis-tool 패키지의 일부입니다. 여기에 제시된 스크립트는 여기에있는 hotplugtv 스크립트 를 사용하려고 시도합니다 .

편집 8 (2017 년 11 월 12 일) : WSL (Linux 용 Windows 10 서브 시스템) 지원을 추가하십시오. WSL에서 Linux GUI를 사용하려면 VcXsrvubuntu-desktop/ 또는 xubuntu-desktop선호하는 것이 필요합니다 . Windows 10 시스템 트레이 / 알림 영역 남은 시간 표시는 indicator-sysmonitorLinux에서 수행하는 작업을 보완해야합니다 . powershell.exeWindows 10 알림 영역 지원을위한 향후 스크립트가 계획되어 있습니다.

편집 9 (2018 년 2 월 19 일) :\ 회전 피자 "|, /, ─, \"시퀀스에서 애니메이션이 누락되는 문제 를 해결 합니다.

gedit를 사용하여 스크립트 만들기 lock-screen-timer

Terminalusing Ctrl+ Alt+를 열고 다음 을 T입력하십시오.

gedit lock-screen-timer

아래 창에서 코드를 복사하여 붙여 넣기 lock-screen-timer

이 화면으로 다시 전환하고 다음 코드를 강조 표시하고 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.

그런 다음 빈 gedit창으로 다시 전환 하고 Ctrl+를 사용하여 코드를 붙여 넣습니다 V. 파일을 저장하고 편집기를 명령 프롬프트로 다시 종료하십시오.

마크 lock-screen-timer실행으로

이제 다음을 입력하여 스크립트를 실행 가능하게 만들어야합니다.

chmod +x lock-screen-timer

그것을 테스트하십시오!

GUI에서 스크립트를 호출하기 전에 터미널에서 스크립트를 호출하여 오류 메시지가 표시되는지 확인할 수 있습니다.

~/lock-screen-timer

몇 분 동안 프롬프트가 표시됩니다.

잠금 화면 타이머

원하는 시간 (분)을 설정하고 확인을 클릭하여 타이머를 시작하십시오. 15, 10, 5, 3, 2 및 1 분이 남은 경우 시스템 사운드가 들리고 화면이 잠길 때 알림 메시지가 나타납니다. 화면이 잠긴 후 화면 잠금을 해제하려면 암호를 입력해야합니다.

bash 스크립트를 실행하도록 노틸러스 구성

노틸러스는 실행 가능한 스크립트가 파일 표시 창이거나 바탕 화면의 링크 인 경우 실행 스크립트를 두 번 클릭하면 어떻게되는지 정의합니다. 일반적인 동작은을 사용하여 스크립트를 편집하는 것 gedit입니다. 이 동작이 실행되도록 변경하려고합니다.

노틸러스를 시작하고를 포함하는 디렉토리로 이동하십시오 lock-screen-timer. 초점을 맞추려면 마우스 왼쪽 버튼을 한 번 클릭하십시오. "파일 편집 ..."메뉴가 나타날 때까지 상단 메뉴 표시 줄 위에 마우스를 올리면 다음을 사용하십시오.

  1. Edit드롭 다운 메뉴를 클릭하십시오
  2. Properties옵션을 클릭하십시오
  3. 클릭 Behavior
  4. 아래의 라디오 옵션 버튼을 확인하십시오 Executable Text Files
  5. 라디오 버튼 확인 Run executable text files when they are opened

바탕 화면 바로 가기 링크 만들기

이전 섹션에서 lock-screen-timer여전히 초점이 있습니다. 그렇지 않은 경우 스크립트를 탐색하고 마우스 왼쪽 버튼을 한 번 클릭하여 초점을 지정하십시오. 그런 다음 사용하십시오.

  • 파일을 마우스 오른쪽 버튼으로 클릭하면 상황에 맞는 메뉴 옵션이 나타납니다.
  • 메뉴에서을 선택하십시오 Make Link.
  • 라는 새로운 아이콘이 나타납니다 Link to lock-screen-timer.
  • 새 아이콘을 마우스 왼쪽 버튼으로 클릭하고 노틸러스에서 데스크탑으로 드래그하십시오.

이제 바탕 화면 바로 가기 링크를 두 번 클릭하면 스크립트가 실행됩니다. 수 분을 얻는 대화 상자가 나타납니다. 두 개의 버튼이 제시 Cancel하고 OK. 를 클릭하여 X창을 닫으면을 선택하는 것과 동일합니다 Cancel.

타이머가 실행되고 다시 두 번 클릭하면 첫 번째 실행 사본이 "killed"됩니다. 이제 새로운 scren lock 카운트 다운을 시작하거나 Cancel카운트 다운 없음을 클릭 할 수 있습니다 .

시스템 트레이 / 알림 영역에 남은 표시 시간

잠금 화면 타이머가 실행되는 동안 파일에 몇 분이 남았는지 기록합니다 ~/.lock-screen-timer-remaining. watch명령 으로이 파일 을 보거나이 답변의 맨 위에 표시된대로 Ubuntu의 시스템 트레이 / 응용 프로그램 표시기 막대에 파일을 표시 할 수 있습니다 . 알림 영역에 남은 시간을 표시하려면이 Q & A의 지시 사항을 따르십시오. (시스템 표시기에 BASH가 애플리케이션 표시기로 표시 될 수 있습니까? )


kids-tv-timer 1은 kids-tv-timer : 명령을 찾을 수 없습니다. 바탕 화면이나 작업 표시 줄에 바로 가기를 만드는 방법이 있습니까? 그것을 클릭하고 응용 프로그램을 활성화하려면?
Dmitriy

파일이 있습니다. 더블 클릭하면 gedit에서 열립니다. 모든 명령을 실행했습니다
Dmitriy

마지막 줄을로 변경했습니다 ~/kids-tv-timer 1. 길 앞에 빠진 죄송합니다. 해봐
WinEunuuchs2Unix

예, 도움이되었습니다. 그러나 당신은 두 번째 질문에 대답하지 않았다? :)
Dmitriy

@geotavros 비디오 위에있는 진행률 디스플레이 sleep에는 kids-tv-timerbash 스크립트에 사용 된 명령 과 완전히 다른 방법이 필요합니다 . "29 분 남음", "28 분 남음"등의 비디오 위에 약 10 초 동안 지속되는 알림 풍선이 나타나는 매 순간마다 루프를 만들 수 있습니다. 그러나 재정의하려면 여전히 비디오를 중단하고 kids-tv-timer새로운 시간 할당으로 비디오를 종료 했다가 다시 시작하십시오. 시간이 만료되고 로그온 한 후 다시 시작하는 것이 훨씬 쉽습니다 kids-tv-timer.
WinEunuuchs2Unix

1

인터넷 카페를 관리하는 데 사용되는 Mkahawa 와 같은 것을 사용하고 싶을 수도 있습니다 .


1
너무 복잡해 보입니다. 서버와 클라이언트가 있습니다. 어떻게 설치합니까?
Dmitriy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.