在 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绕过你的脚本:)

相关内容