modules/decky-loader: Add experimental decky-plugins support#500
modules/decky-loader: Add experimental decky-plugins support#500YvesStraten wants to merge 10 commits intoJovian-Experiments:developmentfrom
Conversation
0d209b2 to
cc064f9
Compare
|
Converting to draft, decky loader crashes too much, seems to be related to this: and this (I can't get the full trace from within gamemode) Which then causes CEF to crash |
|
Hey. Are you still working on this? I'll gladly help. |
|
I still am, and for the most part, it should be finished. The only thing that remains in the way is Decky being unstable. I have the feeling that it is either related to me using systemd tmpfiles to make symlinks or the fact that Decky doesn't like symlinks. I should be able to open the PR for collaboration. Allow me to see. |
|
Is open for edits |
|
I made a fork of your fork for testing it out alongside the newer commits that have been added to jovian nixos. From what I currently tested, it seemed to work well. A system restart was needed to make decky loader show the updated plugin list, but other than that the plugins seemed to work. But I'm gonna test more. Maybe run the plugins update command while I'm at it. But good work honestly! |
@Skullman-G Thanks for testing for me further. I am happy to hear that so far, everything seems to work as expected. I will try to test, but might not be able to as to update I need to rebuild the entire steam deck kernel, which on a 16 core machine takes 1hr +. I will reopen this PR, as maybe the crashing was just for my steam client. |
|
I was experimenting with the hot reload feature for decky loader a bit to see if we could use it with nix so that we wouldn't have to restart the system everytime. But even when I'm not using nix and only copy and paste the plugin folders in and out, it sometimes detects when plugins get added, but it does not realize when they are getting removed. So I guess it's not an issue with symlinks. |
Yeah that's what I have noticed as well. A reload of the steam deck UI is needed for Decky to realize that plugins have been removed |
cc064f9 to
6e24a6a
Compare
|
Updated fork |
b9fd550 to
97ebd2c
Compare
|
I created an issue in decky loader to see if it would be possible to implement the reloading feature there but they said that removing plugins directly from the folder is unsave because the plugin needs to do a cleanup procedure first. I wonder if we could make that work through the nix configuration. On the other hand, maybe the rebuild of nixos already takes care of the cleanup. |
|
I now have had time with testing my fork with new changes from Jovian. At least css loader and proton db badges work flawlessly. The problems seem to be gone. |
|
I am not sure whether this is related, the mouse pads of the deck seem to not actively request for permission anymore (might be completely unrelated) |
599a53c to
60107e0
Compare
309a786 to
165e1e7
Compare
|
Just ran into this issue today, excited to see you still working on this :D |
Thanks. Its mostly just updates to make it closer to upstream. However, I feel like it is now stable enough to be merged. |
|
@K900 I think this should be good to go. Could this please be merged? Thanks a lot in advance. Happy new year to everyone as well! |
|
I still need to actually look at the code, especially given my Haskell is uhh rusty (heh). |
No problem, I was not aware of this. Take your time. I've tried to make it as clean as possible, although that was my first time I had ever used haskell |
165e1e7 to
21bdde9
Compare
|
Hi, I've been testing these commits on a fork with the latest commits from the main project and it seems to be pretty stable in so far. But I also noticed that CSS Loader themes are being downloaded to /var/lib/decky-loader/themes for some reason, would it possible to configure these in a declarative way as well? |
Hey, sorry for the astronomically late reply. To answer your question, unfortunately no. The generator is needed to get the hashes for the plugins so that nix can download them declaratively, and because of themes not being handled, nix does not know how to fetch them. I unfortunately do not have time right now to take care of this as I mostly take care of projects like these during my free time off university. However, if you know Haskell, or any other language with which you can make derivations out of the themes, you are more than welcome to make a fork of my fork or a fork from the main project and implement it there. Feel free to take inspiration from my generator if you wish to. Hope that this helps. |
This PR introduces 3 changes:
There are 2 caveats to this however:
./override.nixfileTests:
I have tested 2 plugins right on my steam deck,
Css_loaderandSimple timer, after doing point 3 above, they work flawlessly. However, it would be nice if further testing could be undertaken.