Tenho um programa que tenta acionar um bloqueio de tela usando os seguintes comandos:
xdg-screensaver lock
xscreensaver -lock
cinnamon-screensaver-command --lock
O problema é que estou usando o Arch e não nenhum dos programas de bloqueio de tela listados acima. Preciso de um dos comandos acima para acionar meu script swaylock.
É possível usar um comando com um argumento para acionar um alias do bash? Por exemplo:
alias xscreensaver -lock="cd ~/.config/hypr/scripts && ./lockscreen"
Existem muitos posts sobre o uso de funções para passar argumentos, mas não consegui encontrar nenhuma informação sobre como usar um argumento no comando que aciona o alias. Suponho que isso não seja possível, mas talvez alguém tenha algumas sugestões alternativas para obter o mesmo efeito.
"Programas" (como em "não scripts") geralmente não analisam os arquivos RC dos usuários. Portanto, se o seu "programa" não for um script que possa ser facilmente modificável, provavelmente ele inspecionará
PATH
para encontrar o caminho para esses executáveis ou verificará a presença desses executáveis em caminhos específicos.Se o seu programa ler
PATH
para encontrar o caminho para esses executáveis, uma maneira de fazer isso seria:PATH
que inclui/home/<your_username>/config/hypr/scripts
Quanto ao ponto 2 especificamente: isso depende de como o seu programa é invocado atualmente. Posso tornar isso mais específico dependendo do seu caso, mas a maneira geral de fazer isso seria, em vez de executar
program
, executarMas isso pode ou não ser aplicável ao seu caso, dependendo de como o seu programa é invocado e, novamente, dependendo se o seu programa lê
PATH
para encontrar o caminho para esses executáveis.Essa outra forma é um hack e deve ser usada apenas se a solução acima não for aplicável ou se o seu programa não ler
PATH
para encontrar o caminho para esses executáveis. Veja a advertência abaixo.Outra maneira de fazer isso, já que você não deveria ter nenhum desses executáveis instalados em seu sistema, seria:
xdg-screensaver
;/usr/bin/
;root:root
/0755
;A advertência óbvia é: tudo bem, desde que algum outro programa não tente confiar em
xdg-screensaver
algo. Essencialmente, isso pode quebrar outras coisas, porque de repente um programa já instalado (ou um programa que você instalará no futuro) pode encontrar umxdg-screensaver
executável disponível para uso e executá-lo. Como acho que seu script não é um substituto completo paraxdg-screensaver
, isso pode interromper o programa que tenta usá-lo.Então, novamente, isso é um truque e deve ser usado com cuidado.
Primeiro uma observação: acho melhor dar um novo nome a esta função, diferente dos comandos existentes.
Agora a função: