TL; DR na parte inferior.
Estou tentando fazer uma tela de bloqueio simples para o meu laptop executando Arch / BSPWM. Eu encontrei um programa chamado cmatrix que tem um sinalizador de tela que faz com que ele saia quando uma tecla é pressionada. Eu estou tentando encadear comandos bspc com cmatrix e vlock para fazer uma linha que pode ser executada para iniciar cmatrix fullscreen, executar vlock quando as teclas são pressionadas e, em seguida, sair após o vlock sair.
Meu único problema com isso é que, para que a tela de bloqueio seja eficaz, eu preciso sair do sxhkd para evitar que as pessoas simplesmente fechem a janela contendo cmatrix / vlock. Eu adicionei pkill sxhkd à cadeia de comandos e isso funciona. A parte quebrada está iniciando o sxhkd novamente. Simplesmente colocar o sxhkd no final não funciona, pois a janela do terminal não fecha até que o sxhkd termine, o que nunca acontece. Além disso, se a janela do terminal estiver fechada, o sxhkd pára porque estava sendo executado.
Eu tentei usar "sxhkd &", mas por algum motivo isso faz com que a coisa toda não seja executada.
Aqui está o comando quase funcional que tenho até agora:
urxvtc -e bash -c "sleep 0.1; pkill sxhkd; sleep 0.1; bspc window -t fullscreen=on; sleep 0.1; cmatrix -u 9 -s; sleep 0.1; vlock; sleep 0.1; sxhkd"
Os comandos sleep são para que os programas não apareçam na ordem errada (às vezes o prompt de senha do vlock aparece antes que o cmatrix seja executado)
O que ele faz atualmente é iniciar uma nova janela do urxvt (importante se eu quiser minha fonte terminal para o cmatrix) e mata o sxhkd para impedir que alguém feche a janela. Faz a tela cheia usando o bspc e roda o cmatrix. Quando uma tecla é pressionada, o cmatrix sai e os prompts de senha do vlock aparecem. Quando a senha é digitada corretamente, ela tenta reiniciar o sxhkd, mas eles permanecem acoplados.
Qualquer ajuda seria muito apreciada!
TL; DR
Como eu posso, com um comando (geralmente executado a partir de um script), abrir uma janela de terminal que executa outros comandos e iniciar um aplicativo (como um aplicativo gui), a janela do terminal fecha, mas o aplicativo gui continua em execução?
Exemplos de comandos mais simples :
urxvtc -e bash -c "echo hello!; sleep 3; pavucontrol"
Isso deve imprimir olá !, aguarde 3 segundos, em seguida, inicie o pavucontrol e feche o terminal, deixando o pavucontrol. Em vez disso, o terminal fica aberto porque o pavucontrol está funcionando.
urxvtc -e bash -c "echo hello!; sleep 3; pavucontrol &"
Isso deve imprimir olá !, aguarde 3 segundos, em seguida, inicie o pavucontrol e feche o terminal, deixando o pavucontrol. Quando o terminal fecha após 3 segundos, no entanto, o pavucontrol está longe de ser visto.