AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1524300
Accepted
JamesC
JamesC
Asked: 2024-08-24 17:09:45 +0800 CST2024-08-24 17:09:45 +0800 CST 2024-08-24 17:09:45 +0800 CST

家长控制帮助年迈父母沉迷于一款应用

  • 772

我的一位年迈父母(80 多岁)患有痴呆症,对一两款游戏(Aisleriot Solitaire 和 Mahjong)非常痴迷。他们沉迷其中,会连续玩几个小时。(好吧,这就是他们的生活。)然而,我们希望开始监控他们,让他们意识到自己在这样做。

是否有某种家长控制软件或类似软件,可以让我们对某个特定应用程序设定一个时间配额,然后一旦当天的配额过去,就会弹出一个对话框,此后每 30 分钟显示一次他们当天玩的总时间?

我不想完全锁定屏幕或做任何事情(出于安全考虑),也不想停止游戏(太幼稚了),只是让他们必须在显示总时间或其他内容的弹出窗口上单击“确定”(如果上一个窗口显然已被关闭,以防他们刚刚离开游戏)。如果我们可以控制消息就更好了。

我知道时间限制脚本可以限制运行时间,但实际上并没有其他方面。

对于可以实现这一目标的任何建议或更好的、不太幼稚的解决方案?

[编辑:建议的家长控制应用程序不提供上述建议的功能(有些无法在当前的 Ubuntu 22.04 和 24.04 中运行)。建议的计时器小程序不提供必要的功能,各种警报解决方案也不提供,这些解决方案可能会让相关老年人感到困惑。我距离有问题的计算机有几千英里远,只想在上面概述的条件下弹出一个提醒,提醒他们当天玩某个特定游戏的时间总计。我们不想让父母感到苦恼。(我还要指出,随着使用 ubuntu 的人群年龄增长到 80 多岁及以上,这种事情可能会成为一个更常见的问题。)]

games
  • 2 2 个回答
  • 144 Views

2 个回答

  • Voted
  1. user68186
    2024-10-04T11:00:55+08:002024-10-04T11:00:55+08:00

    我在 Ubuntu 24.04 和 Mahjong 中测试了这一点。

    您需要创建两个文件。第一个是 bash 脚本,它将启动计时器并调用 Mahjong。第二个是桌面启动器,它将允许您创建游戏 Mahjong 的快捷方式,以便它从脚本启动而不是直接启动。

    1. 剧本

    本脚本使用zenity。Zenity 在 Ubuntu 24.04 中默认安装。如果未安装,请使用以下命令:

    sudo apt install zenity
    

    该脚本假定您的计算机已安装 mahjong 的 deb 版本。如果您安装的是 snap 版本,则该脚本将无法运行。

    将下面的脚本复制并粘贴到bin用户主目录中名为 username 的文件夹/home/中/bin/my_mahjongg,其中username是您或您父母的用户名。

    #!/bin/bash
    # Date: Oct 4, 2024
    # Purpose: A wrapper script to show a pop up at an interval while playing Mahjongg
    
    SECONDS=0   # Initializing builtin seconds counter
    pop_sec=300 # First pop up in seconds (1 hr = 3600 sec)
    pop_sec2=$((pop_sec/2)) # Subsequent pop up in half the time of first pop up
    
    (/usr/games/gnome-mahjongg &)   # Starting Mahjongg
    while (pidof gnome-mahjongg >/dev/null 2>&1)    # While Mahjongg is running
    do
        if [[ $SECONDS -ge $pop_sec ]]; then    # check if it is time for a reminder
        hr_min=$(printf '%dh:%dm\n' $((SECONDS/3600)) $((SECONDS%3600/60)))
        zenity \
            --info \
            --text="<span size=\"xx-large\">You have played Mahjongg for $hr_min.</span>\n\nIt is time for a <b>break</b>. Close the game now.\n\n If you don't stop, I will remind again in $((pop_sec2/60)) minutes" \
            --title="Reminder" \
            --ok-label="OK, I will stop now!"
            --timeout=30
        pop_sec=$((SECONDS+pop_sec2))
        fi
        sleep 30s   # wait time before checking again if Mahjongg is running
    done
    

    修改脚本

    脚本变量pop_sec=300这是在第一次提醒弹出之前脚本运行的秒数。我已设置 300 秒 = 5 分钟进行测试。您可能希望将其设置为 3600,即 1 小时。后续提醒将弹出初始提醒时间的一半。

    启用日志记录Enable Logging

    如果您想记录每次玩麻将所花费的时间,请在脚本底部添加以下行。

    echo "Mahjong was open for $(printf '%dh:%dm\n' $((SECONDS/3600)) $((SECONDS%3600/60))) on $(date)" >> $HOME/My_Mahjongg.log
    

    My_Mahjongg.log这行代码将在每次玩麻将时向用户主文件夹中的日志文件添加一行。示例:

    Mahjong was open for 1h:23m on Sat Oct  5 09:35:30 AM EDT 2024
    

    使脚本可执行

    脚本必须可执行才能运行。

    任何一个

    右键单击脚本并选择属性。在下一个窗口中,打开可作为程序执行开关

    或者

    使用命令:

    chmod +x bin/my_mahjongg
    

    你不必同时做这两件事。

    尝试脚本

    现在您可以通过输入以下命令从终端启动脚本:

    my_mahjongg
    

    这将在后台启动脚本并打开 Mahjong。一小时后会弹出提醒窗口。

    在此处输入图片描述

    您可以通过单击OK窗口底部的按钮来关闭窗口。单击此按钮不会关闭 Mahjong。如果您不单击该按钮,提醒将在 30 秒后自动关闭。

    如果你关闭麻将,脚本就会退出。如果你继续玩,半小时后会再次弹出提醒。

    2. 创建启动器

    Mahjongg.desktop复制并粘贴以下位置调用的启动器文件:

    /home/username/.local/share/applications/Mahjongg.desktop
    

    替换username为您或您父母的用户名。以下是文件:

    [Desktop Entry]
    Name=My Mahjongg
    Comment=Disassemble a pile of tiles by removing matching pairs
    Keywords=game;strategy;puzzle;board;
    #Exec=gnome-mahjongg
    Exec=/home/sushenjit/bin/my_mahjongg
    Icon=org.gnome.Mahjongg
    Terminal=true
    Type=Application
    Categories=GNOME;GTK;Game;BoardGame;
    StartupNotify=true
    DBusActivatable=true
    

    修改 Launcher 文件

    您需要先编辑此文件才能使其正常工作。查找以 开头的行,Exec=...并将其替换username为您或您父母的用户名。

    如果一切顺利,当您搜索要玩的游戏时,您将看到 2 个麻将图标。第一个会显示“麻将”。这是标准图标。第二个会显示“我的麻将”,这将启动脚本,从而启动麻将。

    在 Dash 上创建快捷方式

    Dash 是 Ubuntu 桌面左侧的垂直栏,上面有可以启动的应用程序图标。您可能想在 Dash 上创建“我的麻将”的快捷方式,以便您或您的父母可以通过单击它来启动游戏。

    搜索应用程序“我的麻将”并将其拖放到码头上。

    在此处输入图片描述

    一些警告

    我已将脚本和启动器文件设置在一个用户的个人“主页”文件夹中。用户可以更改或删除这些文件。如果您的父母各自都有单独的用户帐户,并且您想为所有(两个)用户设置它,则您可以将文件保存在不同的更全局的位置。这将使用户更难在没有的情况下删除或修改文件sudo。

    该脚本更像是一个概念的演示,而不是成品。它在我的电脑上运行良好,但您的电脑可能有所不同。我想知道您是否遇到了任何问题,但我不能保证可以解决。

    待办事项

    目前,一旦您关闭麻将,计时器就会停止。我可以将当​​天的累计游戏时间保存在一个文件中,并将其用于提醒。例如,如果一个人每次打麻将 1 小时,共打了 4 个小时,脚本可以跟踪这一情况。这将增加脚本的复杂性。

    希望这有帮助

    • 2
  2. Best Answer
    Walter Wittel
    2024-08-28T02:44:47+08:002024-08-28T02:44:47+08:00

    +1:“我还要指出的是,随着使用 ubuntu 的人群年龄进入 80 多岁及以上,这种事情可能会成为一个更常见的问题。”

    虽然可能性不大,但考虑到他们只专注于一两款游戏,也许像这样(屏幕时间与应用程序时间)的方法同样有效,而且如果他们将注意力转移到其他游戏上,这种方法仍然有效:break-reminder-for-ubuntu

    注意到您远在千里之外,但您或其他家庭成员是否与他们的医疗保健提供者保持联系?他们可能会提出建议(可能简单到像沙漏一样),并可能能够就这种行为的后果有多严重提出建议。

    • 1

相关问题

  • 任何人都可以在 Ubuntu 10.04 上正常使用 DOOM 3 音频吗?[关闭]

  • 创建一个启动器(用于 Mechinarium)

  • 如何在 Ubuntu 上安装依赖于 libgtk1.2 的 Wolfenstein Enemy Teritory?

  • 如何安装 Steam?

  • 如何安装 Windows 软件或游戏?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve