Thank you for all your help! I've finally found out what I did wrong. Gnome has it own way to enable/disable an extension which I followed here because of another bug. It is so annoying I am thinking about switching to lightdm permantly.
Unfortunately I can not login with GDM using X. I am having the same bug as in here :/ For wayland, I have both read/write permissions for my username.
Also I can use the PS5 controller as a mouse just fine. Another symptom I see is when I run xdotool mousemove 150 150, it will print Warning: XTEST extension unavailable on '(null)'. Some functionality may be disabled; See 'man xdotool' for more info.. The null here is concerning to me. Not sure how it says on other system.
No steam uses XTEST under the hood for controller. You can see a bug report here. You could try to disable the XTEST extensions and the steam client will crash if you connect with a controller.
For the symptom, If I do a xdpyinfo it will print a list of enabled extensions and no matter what i've tried it does not have the XTEST extension.
I've disabled everything and Steam still crashed. My wild guess is that my Steam client will crash when any controller is connected to the pc and not only the ps5 controller :/
If i start Steam client with -nojoy everything works fine but i can not use the controller with Steam :(
I have the same problem with navidrome so I've written a new Opensubsonic server in Rust with a permision model. You can check it out here: https://github.com/vnghia/nghe
Thank you very much for your kind word! I've seen that scanner already but decided to reimplement anyway because I want to choose a different design from the start and have the flexibility to add some new features myself (some kind of ML integration like immich and S3 integration). At worse case, I will still use this so no problems :D
IMHO, rust and go are two differents things. The reason I choose Rust is because it is fast and calling C code from rust is supported really well since Rust's goal is to become a system language. Navidrome is just calling the ffmpeg binary. While in my project, I've compiled the neccessary parts of ffmpeg myself (thanks to vcpkg) and call the function directly from Rust. It leads to smaller and fully static final binary (because no ffmpeg bin) as well as faster transcoding time since we don't have to wait for the ffmpeg binary to finish transcoding the whole file before load the result from the filesystem to the memory.
Would it have been impossible to submit your changes to Navidrome as pull requests?
You can see here. This is the biggest reason why I've decided to start my own implementation. Beside, I share my server with several friends so I want a mechanism to prevent mixing musics from different people.
Does this import the Navidrome database?
This could be a feature request in the future. I could add a python script to import users/songs/playlists/playcount/etc from Navidrome.
I dont think Ansible is a general templating engine ? I do templating for all most everything and not only docker compose, for example this for traefik configuration.
so you are also generating the docker-compose from code. I think I am looking for something that aware of both templating and docker-compose deployment because right now, at the end of the day, I am still have to run docker-compose up -f ... while helm can do both templating and deployment.
Thank you for all your help! I've finally found out what I did wrong. Gnome has it own way to enable/disable an extension which I followed here because of another bug. It is so annoying I am thinking about switching to lightdm permantly.
Thank you very much once again!