web-dev-qa-db-ja.com

Ubuntuの設定時間後に画面をロックするアプリケーション

定義された時間(例:30分)後にコンピューターをロックするUbuntu用のアプリケーションはありますか?子供たちが漫画を見る時間を制限するために必要です。例えば。 30分間視聴した後、親がロックを解除する必要があるPCロック。

Eyes Relaxアプリを使用したWindowsの場合、黒い画面と緑色の進行状況バー(PCのロックを解除するための残り時間)が表示され、ロックを上書きするにはパスワードが必要です。

10
Dmitriy

2018年6月4日更新

multi-timerと呼ばれる非常に優れたプログラムが作成されました。 異なるアラームを同時に設定するためのタイマー

ロック画面タイマー

systray.gif

サードパーティアプリケーションの代わりに独自の画面ロックタイマーを作成する

これを行うサードパーティアプリケーションがありますが、独自のアプリケーションを作成できます。手順の概要:

  • Geditを使用してスクリプトlock-screen-timerを作成します
  • このウィンドウからコードをコピーしてlock-screen-timerに貼り付けます
  • lock-screen-timerを実行可能としてマークする
  • 試して!
  • Nautilusを構成してbashスクリプトを実行する
  • デスクトップショートカットリンクを作成する
  • 残り時間を監視する

Edit 1(2016年11月19日):最終バージョン。メッセージとサウンドを使用して、15、10、5、3、2、および1分のロック警告が差し迫っています。 zenityを使用して分数を取得します(デフォルトは30)。

編集2(2016年11月20日):以前のスリープスクリプトを強制終了するためのコード変更。

Edit 3(2017年1月20日):以前のスクリプトコードの強制終了を修正します。以前のバージョンがすでに実行されていて終了した場合は、情報メッセージを追加します。

Edit 4(2017年2月4日):デスクトップアイコンを再クリックせずに、複数のカウントダウンをループで実行します。すなわち、洗濯の夜-すすぎサイクル(布地柔軟剤)に16分、乾燥機に13分、乾燥機から58分。

編集5(2017年2月11日):/tmp/lock-screen-timer-remainingに残りの時間を書き込みます。これにより、他のプログラムは画面がロックされるまでの時間を表示できます。

Edit 6(2017年8月7日):/tmp/ワークファイルを~/.に変更して、ネットワーク上の複数のユーザーをサポートします。

編集:スクリプトはリマインダーサウンドを再生するためにogg123に依存していることに注意してください。このプログラムは、ユニバースリポジトリのvorbis-toolパッケージの一部です。ここに示されているスクリプトは、 hotplugtvスクリプトはここにあります

Edit 8(2017年11月12日):WSL(Linux用Windows 10サブシステム)サポートを追加します。 WSLでLinux GUIを使用するには、VcXsrvubuntu-desktopまたはxubuntu-desktop(推奨)を追加する必要があることに注意してください。 Windows 10システムトレイ/通知領域の残り時間表示には、Linuxでのindicator-sysmonitorの機能を補完する必要があります。将来のpowershell.exeスクリプトは、Windows 10通知領域サポート用に計画されています。

Edit 9(2018年2月19日):回転するピザ "|、/、─、\"シーケンスから\が欠落しているアニメーションを修正。

Geditを使用してスクリプトlock-screen-timerを作成します

を使用してTerminalを開きます 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

分数の入力を求められます:

Lock Screen Timer

目的の分数を設定し、[OK]をクリックしてタイマーを開始します。 15分、10分、5分、3分、2分、1分残っていると、システムサウンドが聞こえ、画面がロックされるタイミングを知らせるメッセージバブルが表示されます。画面がロックされたら、パスワードを入力して画面のロックを解除する必要があります。

Nautilusを構成してbashスクリプトを実行する

Nautilusは、ファイル表示ウィンドウまたはデスクトップ上のリンクである実行可能スクリプトをダブルクリックしたときの動作を定義します。通常の動作では、geditを使用してスクリプトを編集します。この動作が実行されるように変更したいのです。

Nautilusを起動し、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はまだフォーカスがあります。そうでない場合は、スクリプトに移動し、スクリプトを1回左クリックしてフォーカスを与えます。次に使用します:

  • ファイルを右クリックすると、コンテキストメニューオプションが表示されます。
  • メニューからMake Linkを選択します。
  • Link to lock-screen-timerという新しいアイコンが表示されます。
  • 新しいアイコンを左クリックして、Nautilusからデスクトップにドラッグします。

デスクトップショートカットリンクをダブルクリックすると、スクリプトが実行されます。分数を取得するダイアログボックスが表示されます。 2つのボタンが表示されます Cancel そして OKXをクリックしてウィンドウを閉じると、選択と同じになります Cancel

タイマーの実行後、もう一度ダブルクリックすると、最初に実行されているコピーが「強制終了」されます。新しいスクレンロックカウントダウンを開始するか、クリックすることができます Cancel カウントダウンなし。

システムトレイ/通知領域の残り時間を表示する

ロック画面タイマーの実行中、ファイル~/.lock-screen-timer-remainingに残り時間を記録します。 watchコマンドでこのファイルを見るか、この回答の上部に示すようにUbuntuのシステムトレイ/アプリケーションインジケーターバーに表示できます。通知領域に残っている時間を表示するには、このQ&Aの指示に従ってください:( BASHはアプリケーションインジケーターとしてsystrayに表示できますか? )。

14

Mkahawa のようなものを使用することもできます。これは、インターネットカフェの管理に使用されます。

1
Chris Matenaers