実際のアプリケーションの代わりにKDEでスクリプトラッパーを実行する

実際のアプリケーションの代わりにKDEでスクリプトラッパーを実行する

私は子供たちが自宅のコンピュータ(Debian 11 Bullseye)でMinecraftをプレイする時間を制限しようとしています。家族全員が時々使用しているコンピュータなので、常にシングルユーザーアカウントでログインします。

この問題を軽減するために、現在の時間を確認して範囲を超えた場合は、ゲームを開始するのではなくメッセージボックスを表示する小さなbashスクリプトを作成しました。しかし、今はKDEのアイコンに対して設定されたコマンドを置き換える方法について混乱しています。 Execを変更しても/usr/share/applications/minecraft-launcher.desktop効果がないようで、ゲームはスクリプトなしで実行されます。設定を編集するには?

私のスクリプトを次のように編集します。

#!/bin/bash
logger "Starting Minecraft"
currenttime=$(date +%H:%M)
if [[ "$currenttime" > "21:00" ]] || [[ "$currenttime" < "12:30" ]]; then
  logger 'Attempting to start Minecraft ouside of allowed hours'
  notify-send 'Minecraft' 'Minecraft is disabled at this time. System administrator has been notified.'
else
  minecraft-launcher
fi

「bash /usr/bin/minecraft-starter」をコマンドとして指定し、デスクトップアイコン内で動作するようにしました。しかし、KDEメインメニューのランチャーではまだ機能しません。私が何をしても、システムは元のランチャーを実行します。

ベストアンサー1

予期される回避策 - デスクトップまたはメニューからすべてのランチャーを検索しますか?それとも、子供は親の目立たないいくつかのフォルダにコピーしますか? :) 実行プログラムのコマンドをスクリプトに変更します。

別の解決策は、実際の起動バイナリがある場所に移動して名前を別の名前に変更することです(例mv minecraft craftmine:)。スクリプトをインポートし、それに応じてゲームの開始バイナリを変更します。ゲームの前の場所にスクリプトを配置します。

このソリューションを使用すると、デスクトップ/メニューランチャーをそのまま維持でき、minecraft端末で実行してもスクリプトに移動します。

3つの質問が必要です。

  • ゲームを更新するたびにスクリプトが上書きされ、繰り返し交換する必要があります。毎回更新されます。
  • ゲームの起動バイナリ(不明minecraft)は起動時に名前を確認したり、他の目的に使用したりできるため、バイナリの名前を変更した後もまだ機能していることを確認してください。
  • 子供はパズルを解き、スクリプトをcraftmineバイパスすることができます:)

おすすめ記事