AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 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

Controle parental para pais idosos obcecados por um aplicativo

  • 772

Um dos meus pais idosos (final dos 80 anos) tem demência e fica obcecado com um ou dois jogos. (Aisleriot Solitaire e Mahjong). Eles ficam fixados nele e jogam por horas. (Tudo bem, é a vida deles.) No entanto, queremos começar a monitorar isso, deixando-os cientes de que estão fazendo isso.

Existe algum software de controle parental ou similar que nos permita ter uma cota de tempo para um aplicativo específico e, depois que a cota for ultrapassada, uma janela de diálogo aparecerá informando o tempo total que eles jogaram naquele dia a cada 30 minutos?

Não quero bloquear a tela completamente ou algo assim (questões de segurança) e não quero parar o jogo (infantilizando de forma insultuosa), apenas fazer com que eles tenham que clicar em Ok em uma janela pop-up mostrando o tempo total ou algo assim (se a janela anterior foi descartada, obviamente, caso eles tenham acabado de sair do jogo). Melhor ainda se pudermos controlar a mensagem.

Eu sei que o script de limite de tempo pode limitar o tempo de execução, mas isso não tem realmente os outros aspectos.

Alguma sugestão de algo que faça isso ou soluções melhores que não sejam muito infantilizantes?

[Edição: Os aplicativos de controle parental sugeridos não fornecem a funcionalidade sugerida acima (e alguns não funcionam no Ubuntu 22.04 e 24.04 atuais). O timer-applet sugerido não fornece a funcionalidade necessária, nem várias soluções de alarme que provavelmente confundirão o idoso em questão. Estou a muitos milhares de quilômetros de distância do computador em questão e só quero um lembrete pop-up de quanto tempo eles estão jogando aquele jogo específico naquele dia com as condições descritas acima. Não queremos angustiar os pais. (Eu também observaria que, à medida que a população que usa o Ubuntu envelhece para o final dos 80 anos e acima, esse tipo de coisa pode se tornar uma pergunta mais comum.)]

games
  • 2 2 respostas
  • 144 Views

2 respostas

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

    Testei isso no Ubuntu 24.04 e no Mahjong.

    Você precisa criar dois arquivos. O primeiro é um script bash que iniciará o timer e chamará Mahjong. O segundo é o inicializador de desktop que permitirá que você crie um atalho do jogo Mahjong para que ele inicie com o script em vez de diretamente.

    1. O Roteiro

    Este script usa zenity. O Zenity é instalado por padrão no Ubuntu 24.04. Se não estiver instalado, use o comando:

    sudo apt install zenity
    

    O script assume que seu computador tem a versão deb do mahjong instalada. Se você tem a versão snap, o script não funcionará.

    Copie e cole o script abaixo na binpasta da página inicial do usuário com o nome /home/username/bin/my_mahjongg , onde username é o seu nome de usuário ou o nome do seu pai/mãe.

    #!/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
    

    Modificar o script

    O script é uma variável pop_sec=300Este é o número de segundos que o script executará antes do primeiro lembrete aparecer. Eu configurei 300 segundos = 5 minutos para teste. Você pode querer configurá-lo para 3600, ou seja, 1 hora. Os lembretes subsequentes aparecerão metade do tempo do lembrete inicial.

    Habilitar registro

    Adicione a seguinte linha no final do script se quiser registrar o tempo gasto em cada sessão de Mahjong.

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

    Esta linha de código adicionará uma linha ao arquivo de log My_Mahjongg.logna pasta home do usuário toda vez que Majongg for tocado. Um exemplo:

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

    Tornar o script executável

    Um script precisa ser executável antes que você possa executá-lo.

    Qualquer

    clique com o botão direito no script e selecione Propriedades . Na próxima janela, ative a opção Executável como um programa

    Ou

    use o comando:

    chmod +x bin/my_mahjongg
    

    Você não precisa fazer as duas coisas.

    Experimente o script

    Agora você pode iniciar o script no terminal digitando:

    my_mahjongg
    

    Isso iniciará o script em segundo plano e abrirá o Mahjong. Após uma hora, uma janela de lembrete aparecerá.

    insira a descrição da imagem aqui

    Você poderá fechar a janela clicando no OKbotão na parte inferior da janela. Clicar neste botão não fechará o Mahjong. Se você não clicar no botão, o lembrete fechará sozinho em 30 segundos.

    Se você fechar o Mahjong, o script sairá. Se você continuar a jogar, o lembrete aparecerá novamente em meia hora.

    2. Crie um iniciador

    Copie e cole o arquivo do iniciador chamado Mahjongg.desktopno seguinte local:

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

    Substitua usernamepelo seu nome de usuário ou o nome de usuário dos seus pais. Aqui está o arquivo:

    [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
    

    Modificar o arquivo do Launcher

    Você precisará editar este arquivo antes que ele funcione. Procure a linha que começa com Exec=...e substitua usernamepelo seu nome de usuário ou do seu pai/mãe.

    Se tudo correr bem, você verá 2 ícones de Mahjong quando procurar o jogo para jogar. O primeiro dirá "Mahjong". Este é o padrão. O segundo dirá "My Mahjong", isso iniciará o script que iniciará o Mahjong.

    Crie um atalho no Dash

    Dash é a barra vertical no lado esquerdo do desktop do Ubuntu com ícones de aplicativos que podem ser iniciados. Você pode querer criar um atalho de "My Mahjong" no Dash para que você ou seus pais possam iniciar o jogo clicando nele.

    Procure o aplicativo "my Mahjong" e arraste e solte no dock.

    insira a descrição da imagem aqui

    Algumas advertências

    Eu configurei o script e o arquivo do launcher nas pastas pessoais "Home" de um usuário. O usuário pode alterar ou remover esses arquivos. Se cada um dos seus pais tiver contas de usuário separadas e você quiser configurá-lo para todos (ambos) os usuários, você manteria os arquivos em um local diferente e mais global. Isso tornará mais difícil para os usuários removerem ou modificarem os arquivos sem sudo.

    O script é mais uma demonstração de um conceito do que um produto finalizado. Ele funciona no meu computador, mas o seu pode ser diferente. Gostaria de saber se você tem algum problema com ele, mas não posso garantir uma correção.

    Pendência

    Atualmente, o cronômetro para quando você fecha o Mahjong. Eu poderia salvar o tempo de jogo acumulado do dia em um arquivo e usá-lo no lembrete. Por exemplo, se alguém joga Mahjong por 4 horas em sessões de 1 hora cada, o script poderia manter o controle disso. Isso adicionará mais complexidade ao script.

    Espero que isso ajude

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

    +1 para: "Eu também observaria que, à medida que a população que usa o Ubuntu envelhece, chegando aos 80 e tantos anos ou mais, esse tipo de coisa pode se tornar uma pergunta mais comum."

    Tiro longo, mas considerando que eles estão focados em apenas um ou dois jogos, talvez algo assim (tempo de tela vs. tempo de aplicativo) funcionaria tão bem e ainda funcionaria se eles mudassem o foco para outros jogos: break-minder-for-ubuntu

    Notei que você está a milhares de quilômetros de distância, mas você ou outro membro da família está em contato com o provedor de cuidados de saúde? Eles podem ter sugestões (talvez tão simples quanto uma ampulheta, e podem aconselhar sobre quão sérias são as consequências desse comportamento.

    • 1

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

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

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve