Por que um novo atalho de VPN não recupera as configurações perdidas
Um lançador decide como um programa inicia, não onde ele guarda as suas preferências. Compare o contexto do executável, do utilizador e da configuração antes de culpar o ícone.
Entradas de menu em falta e preferências que desaparecem são corrigidas com o mesmo reflexo, e são problemas sem relação. Um é a integração com o ambiente de trabalho, o outro é o estado da aplicação, e um ícone novo não muda nenhum dos dois por si só. Separar os dois custa uma experiência e explica a maior parte da confusão que as pessoas trazem a este tema. O lançador inicia um programa; o programa decide o que recorda.
Duas tarefas que só parecem uma
A integração com o ambiente de trabalho significa que o ambiente consegue encontrar um executável, apresentar um nome e um ícone e passar os argumentos certos. O estado da aplicação significa que o programa escreve um perfil num local duradouro e volta a lê-lo no arranque seguinte. Nenhum implica o outro, e é por isso que um atalho funcional pode lançar um cliente que se esqueceu de tudo.
Altere uma preferência de visualização inofensiva através dos próprios controlos da aplicação, depois feche-a e reabra-a da mesma forma. Se a preferência voltar, a persistência funciona e a queixa restante é sobre encontrar a janela e não sobre guardar dados. Se desaparecer, o atalho é uma distração e a verdadeira pergunta é onde esse processo guarda os seus ficheiros. Teste uma preferência de cada vez, porque um cliente que volta a pedir a palavra-passe pode estar a proteger um segredo em vez de perder uma configuração.
Compare as entradas de arranque antes de reinstalar
Comece pela entrada do ambiente de trabalho e leia o que ela faz realmente, porque um arranque pelo menu não é automaticamente o mesmo ambiente de processo que um arranque pelo terminal. As chaves que importam são Exec, Path e, indiretamente, o ambiente que a sessão fornece. Um script envolvente em Exec pode definir uma variável, mudar de diretório ou invocar um auxiliar privilegiado que o menu nunca mostra. Reinstalar substitui ficheiros que a aplicação já tinha, e essa raramente é a variável que mudou.
grep -h '^Exec=' ~/.local/share/applications/*.desktop
desktop-file-validate ~/.local/share/applications/client.desktop
Veja o ficheiro em ~/.local/share/applications antes do que está em /usr/share/applications, porque uma cópia de utilizador faz sombra à cópia do sistema. Execute desktop-file-validate quando a entrada se comportar mal e procure uma cópia obsoleta que ainda aponta para um caminho removido. A maioria dos ambientes de trabalho continua a preferir uma cópia de utilizador inválida, por isso um ficheiro quebrado pode retirar a entrada do menu enquanto o ficheiro do pacote permanece válido. Depois execute o mesmo comando à mão e compare o que os dois arranques produzem.
Onde vive realmente uma preferência
As aplicações que seguem as regras de diretórios base XDG colocam a configuração em $XDG_CONFIG_HOME, o estado duradouro em $XDG_STATE_HOME e os dados descartáveis em $XDG_CACHE_HOME, usando ~/.config, ~/.local/state e ~/.cache por omissão quando essas variáveis não estão definidas. Os três são papéis e não promessas, por isso um produto VPN concreto pode documentar algo completamente diferente. Ler a documentação do próprio fornecedor é melhor do que adivinhar um caminho a partir de um nome de diretório. Quando a documentação é escassa, observe o processo em vez do sistema de ficheiros.
Um rastreio filtrado por aberturas de ficheiros mostra cada caminho de configuração que o cliente tenta, incluindo o que escreve ao sair. Execute-o como o mesmo utilizador e com o mesmo ambiente, e depois compare esses caminhos com os diretórios que esperava.
strace -f -e trace=openat,stat -o /tmp/vpn.log vpn-client
Segredos e perfis têm donos diferentes
Um perfil guardado e uma credencial guardada são objetos separados, muitas vezes com armazenamento separado. Um pode viver num ficheiro de configuração enquanto o outro fica num porta-chaves que se desbloqueia por sessão, por isso um cliente que volta a pedir a palavra-passe pode estar simplesmente a fazer aquilo para que foi concebido. Apagar o perfil para parar o pedido é como as pessoas perdem uma configuração que funcionava.
Os arranques privilegiados complicam ainda mais, porque um arranque através de sudo ou de um auxiliar PolicyKit pode apresentar um diretório pessoal diferente e, portanto, um conjunto de configuração diferente. Corrija a propriedade no ficheiro específico que a aplicação documenta em vez de o fazer recursivamente por todo o diretório pessoal, depois decida que identidade deve possuir o perfil daqui em diante e mantenha os arranques futuros coerentes com ela.
O que o ícone pode e não pode dizer-lhe
Um ícone prova que um ficheiro de lançador se resolve, e nada mais. O estado da ligação pertence ao cliente, por isso a única verificação fiável é a interface, a rota ou a própria saída de estado do cliente. Um applet da bandeja que não arrancou pode fazer um túnel funcional parecer avariado, enquanto um applet desatualizado pode fazer um avariado parecer bem. Teste a ligação e o lançador em separado e depois anote qual dos dois reparou realmente.
Se ambos estavam avariados, resista a tratar a reparação como uma única alteração. Corrija a entrada, confirme o arranque, confirme depois o túnel e anote o resultado de cada passo. Esse registo é o que torna o próximo relatório de configurações perdidas diagnosticável em vez de uma repetição deste, e também é o que diz à pessoa seguinte qual metade do problema era real.