If /home/myuser/.local/share doesn’t exist on your system, the app data will be moved to /home/myuser/karaokemugen-app/app as last resort.
Une raison particulière de ne pas respecter la spec xdg entièrement sur ce point là ?
If, when attempting to write a file, the destination directory is non-existent an attempt should be made to create it with permission 0700. If the destination directory exists already the permissions should not be changed. The application should be prepared to handle the case where the file could not be written, either because the directory was non-existent and could not be created, or for any other reason. In such case it may choose to present an error message to the user.
En général, $HOME/.local/share existe parce qu’on a justement d’autres applications qui l’ont déjà créé, mais si la première application respectant XDG qui est installée sur une nouvelle machine est KM, c’est dommage que le répertoire se retrouve dans $HOME/karaokemugen-app/app.
La manière attendue serait plutôt:
If $XDG_DATA_HOME is set, it will be $XDG_DATA_HOME/karaokemugen-app/app.
If not, it will be $HOME/.local/share/karaokemugen-app/app
Et seulement si on arrive pas à créer ce répertoire, alors un message d’erreur similaire à celui qui est affiché pour Windows/macOS lorsque le répertoire ne peut pas être créé.
Je trouve également dommage que la configuration ne se retrouve pas dans ${XDG_CONFIG_HOME:-$HOME/.config} et les logs dans ${XDG_STATE_HOME:-$HOME/.local/state}, même si c’est certainement plus facile dans un premier temps qu’ils restent avec tout le reste.
J’ai pas lu la spec en entier mais si c’est OK de créer le dossier alors c’est comme ça que ça sera fait.
Par contre mettre la config aillerus et les logs ailleurs c’est vraiment très linuxien comme façon de penser. Le problème c’est que si tu veux reset ton installationt 'es obligé de virer les trucs un peu partout sur le filesystem parce que ça s’étale et je trouve ça super con pour le cas d’une application desktop.