Transforma a tela preta de todas as telas conectadas (possivelmente adicionalmente)
Não tenho certeza se a solução abaixo é suficiente para você, mas como uma medida (adicional?), ela deve ajudar a dificultar pelo menos o acesso ao sistema.
Como de costume, é principalmente a combinação de medidas que dificulta o acesso acidental. Poderia, por exemplo, ser dificultado por:
- adicionando uma senha para "não" escurecer a tela
- um arquivo de registro para acompanhar as alterações no brilho da tela
- altere a tecla de atalho padrão para abrir o terminal, portanto, comandos de digitação "cegos" são improváveis.
Ao mesmo tempo, tenho certeza de que alguém com conhecimento real sempre encontrará uma maneira, se o tempo for suficiente, a menos que você bloqueie completamente todas as opções de conexão (por exemplo) sistema dentro de algum tipo de caixa. Pense apenas em reiniciar a partir de um meio externo.
O resultado é que você terá que decidir se é útil para você
A solução
Existe um script de segundo plano que uma vez por segundo:
- verifica todas as telas conectadas (também as recém-conectadas)
- verifica se todas as telas estão definidas para brilho
0.0
(ou 1.0
, veja mais abaixo)
- define todas as telas para brilho
0.0
, se não.
Além disso:
- o script lê o valor de brilho desejado de um arquivo oculto em seu diretório pessoal
- a solução inclui duas combinações de teclas de atalho para definir esse valor no arquivo como
1.0
(uso normal) ou 0.0
(tela preta).
Como mencionado, as chaves scortcut podem ser feitas para usar uma senha (em texto simples). Por favor mencione se você achar que é útil.
O script
#!/usr/bin/env python3
import subprocess
import time
import os
screen_brightness = os.environ["HOME"]+"/.screenset.txt"
if not os.path.exists(screen_brightness):
open(screen_brightness, "wt").write("0.0")
def read_set():
return open(screen_brightness).read()
def get(command):
return subprocess.check_output(["/bin/bash", "-c", command]).decode("utf-8")
def find_screens(screendata):
return [l.split()[0] for l in screendata.splitlines() if " connected" in l]
while True:
time.sleep(1)
curr_set = read_set()
screendata = get("xrandr --verbose")
n_screens = screendata.count(" connected")
n_dimmed = screendata.count("Brightness: "+curr_set)
if n_dimmed != n_screens:
screens = find_screens(screendata)
for scr in screens:
subprocess.Popen(["xrandr", "--output", scr, "--brightness", curr_set])
Como configurar
- Copie o script em um arquivo vazio, salve-o como
black_screen.py
-
Crie duas teclas de atalho (comandos):
echo 1.0 > ~/.screenset.txt
e:
echo 0.0 > ~/.screenset.txt
Escolha: Configurações do sistema > "Teclado" > "Atalhos" > "Atalhos personalizados". Clique no botão "+" e adicione os comandos a duas teclas de atalho diferentes.
-
Teste o script com o comando:
python3 /path/to/black_screen.py
-
Se tudo funcionar bem, adicione-o aos seus aplicativos de inicialização: Dash > Aplicativos de inicialização > Adicione o comando:
python3 /path/to/black_screen.py
Notas
Como mencionado, o script / setup pode ser mais seguro com uma senha (texto simples) e / ou um arquivo de log. Por favor, olhe se esta é uma direção útil.