실제 응용 프로그램 대신 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터미널에서 실행해도 스크립트로 이동됩니다.

세 가지 질문만 하면 됩니다:

  • 게임을 업데이트할 때마다 스크립트가 덮어쓰기되어 반복적으로 교체해야 합니다. 매번 업데이트됩니다.
  • 게임 시작 바이너리(확실하지는 않음 minecraft)는 시작 시 이름을 확인하거나 다른 용도로 사용할 수 있으므로 바이너리 이름을 바꾼 후에도 여전히 작동하는지 확인하세요.
  • 아이는 퍼즐을 풀고 craftmine스크립트를 우회할 수 있습니다 :)

관련 정보