Por que un novo atallo VPN non recupera os axustes perdidos
Un lanzador decide como arrinca un programa, non onde garda as súas preferencias. Compare o contexto do executábel, do usuario e da configuración antes de culpar a icona.
Entradas de menú que faltan e preferencias que desaparecen arranxan co mesmo reflexo, e son problemas sen relación. Un é a integración co escritorio, o outro é o estado da aplicación, e unha icona nova non cambia ningún dos dous por si soa. Separaos custa un experimento e explica a maior parte da confusión que a xente trae a este tema. O lanzador inicia un programa; o programa decide que recorda.
Dúas tarefas que só parecen unha
A integración co escritorio significa que a contorna pode atopar un executábel, presentar un nome e unha icona e pasar os argumentos correctos. O estado da aplicación significa que o programa escribe un perfil nun lugar duradeiro e volve lelo no seguinte arrinque. Ningún implica o outro, e por iso un atallo que funciona pode lanzar un cliente que o esqueceu todo.
Cambie unha preferencia de visualización inocua cos propios controis da aplicación, logo péchea e volva abrila do mesmo xeito. Se a preferencia volve, a persistencia funciona e a queixa restante trata de atopar a ventá, non de gardar datos. Se desaparece, o atallo é unha distracción e a verdadeira pregunta é onde garda os seus ficheiros ese proceso. Probe unha preferencia de cada vez, porque un cliente que volve pedir o contrasinal pode estar protexendo un segredo en lugar de perder unha configuración.
Compare as entradas de arrinque antes de reinstalar
Empece pola entrada de escritorio e lea o que fai realmente, porque un arrinque desde o menú non é automaticamente a mesma contorna de proceso que un arrinque desde o terminal. As claves que importan son Exec, Path e, indirectamente, a contorna que proporciona a sesión. Un script envoltorio en Exec pode definir unha variable, cambiar de directorio ou invocar un axudante privilexiado que o menú nunca mostra. Reinstalar substitúe ficheiros que a aplicación xa tiña, e esa raramente é a variable que cambiou.
grep -h '^Exec=' ~/.local/share/applications/*.desktop
desktop-file-validate ~/.local/share/applications/client.desktop
Mire o ficheiro de ~/.local/share/applications antes ca o de /usr/share/applications, porque unha copia de usuario fai sombra á copia do sistema. Execute desktop-file-validate cando a entrada se comporta mal e busque unha copia obsoleta que aínda apunta a unha ruta eliminada. A maioría dos escritorios seguen preferindo unha copia de usuario non válida, así que un ficheiro roto pode quitar a entrada do menú mentres o ficheiro do paquete segue sendo válido. Despois execute o mesmo comando a man e compare que producen os dous arrinques.
Onde vive realmente unha preferencia
As aplicacións que seguen as regras de directorios base XDG poñen a configuración en $XDG_CONFIG_HOME, o estado duradeiro en $XDG_STATE_HOME e os datos dun só uso en $XDG_CACHE_HOME, con ~/.config, ~/.local/state e ~/.cache por defecto cando esas variables non están definidas. Os tres son papeis e non promesas, así que un produto VPN concreto pode documentar algo completamente distinto. Ler a documentación do propio provedor é mellor que adiviñar unha ruta a partir dun nome de directorio. Cando a documentación é escasa, observe o proceso en lugar do sistema de ficheiros.
Un rastro filtrado por aperturas de ficheiros mostra cada ruta de configuración que proba o cliente, incluída a que escribe ao saír. Execúteo como o mesmo usuario e coa mesma contorna, e despois compare esas rutas cos directorios que esperaba.
strace -f -e trace=openat,stat -o /tmp/vpn.log vpn-client
Os segredos e os perfís teñen donos distintos
Un perfil gardado e unha credencial gardada son obxectos separados, a miúdo con almacenamento separado. Un pode vivir nun ficheiro de configuración mentres o outro senta nun anel de chaves que se desbloquea por sesión, así que un cliente que volve pedir o contrasinal quizais só está a facer o que foi deseñado para facer. Borrar o perfil para deter a petición é como a xente perde unha configuración que funcionaba.
Os arrinques privilexiados complícao aínda máis, porque un arrinque mediante sudo ou un axudante PolicyKit pode presentar un directorio persoal distinto e, por tanto, un conxunto de configuración distinto. Corrixa a propiedade no ficheiro concreto que documenta a aplicación en lugar de facelo de forma recursiva por todo o directorio persoal, logo decida que identidade debe posuír o perfil de aquí en diante e manteña os arrinques futuros coherentes con ela.
Que pode dicirlle a icona e que non
Unha icona demostra que un ficheiro de lanzador se resolve, e nada máis. O estado da conexión pertence ao cliente, así que a única comprobación fiable é a interface, a ruta ou a propia saída de estado do cliente. Unha miniaplicación da bandexa que non chegou a iniciarse pode facer que un túnel que funciona pareza roto, mentres que unha miniaplicación obsoleta pode facer que un roto pareza ben. Probe a conexión e o lanzador por separado e despois anote cal dos dous arranxou realmente.
Se ambos estaban rotos, resista tratar a reparación como un só cambio. Arranxe a entrada, confirme o arrinque, confirme despois o túnel e anote o resultado de cada paso. Ese rexistro é o que fai que o próximo informe de axustes perdidos sexa diagnosticábel en lugar dunha repetición deste, e tamén é o que lle di á seguinte persoa que metade do problema era real.