Show older

hhhhhhhh i got some cool ideas just gotta bang out some more spaghetti code

(oh it goes away when you go back from the protondb page i should fix that)

did some stuff :blobcatsleepless:

made a proton version manager (currently it only lets you install proton-ge versions), built in to the deck ui menu

(installing versions works, but I didnt make ui for it yet so it happens silently in the background)

added a custom page to the desktop library

new menu items added by mods, that usually go in the deck ui menu (see last post), will go here in desktop mode

getting close to having the proton-ge installed working in both deck and desktop modes

aaaaand there we go, the proton-ge updater can be used from the library now

(im too lazy to style the mods page rn lol)

the proton-ge installer is working pretty well now, I added progress dialogs

here it is running in both the desktop and the steam deck ui

not looking forward to cleaning up the pile of spaghetti I left behind :blobcatthisisfine:

refactored my spaghetti yesterday

I'm now working on fixing my resource patching script

Once I have that working, I can start building the api to mod the steam overlay and the deck quick access menu (from my testing, I think both are possible :ablobcatrainbow: )

ok using plain patches won't work (one of them already broke), will probably have to use semgrep or something for some files

turns out semgrep doesnt like 8 mb (160k lines) js files that much, but if I combine it with normal grep ill be unstoppable

I didnt do anything cool the past few days, mostly a bunch of refactors, and making it load more reliably. it now loads in even if you launch steam after launching crankshaft

(also I think im gonna call this crankshaft is that a good name)

(get it cause steam engines and stuff)

actually ig this is kinda cool

for mods that go in the steam deck's quick access menu, this is the equivalent spot for them in the desktop overlay

it's not functional yet though, I'm probably gonna work on dynamically loading mods first (which is important (and also kinda tricky))

esbuild makes dynamically loading mods a much saner process than it would be otherwise

esbuild is very nice and good

ok the only thing i got done on this today was making mods look better integrated into the menu in deck ui

(which isnt what i wanted to do today oops)

aaaaaaaaaaaaaaaaaaaaaaaaaaa dynamic plugin loading is working

I didn't port any of the current hardcoded "plugins" yet, but this is an example of what the API is like

(very simple, just export a load and (optional) unload function)

ill probably have a template with everything setup for making plugins quickly, but the requirements for plugins are pretty open

- folder in [xdg data]/crankshaft/plugins
- folder has a `plugin.toml` file
- folder has a `dist/index.js[x]` ESM file, that exports a `load` function

did i mention how great esbuild is because esbuild is great

(it has some cool options that lets making plugins be really simple)

one cool thing that it lets me do is have libraries that are shared across all internal scripts and plugins, so if most plugins use a library (for example, dom-chef), it'll only be included in scripts once

(it's also native and fast as heck so i can do these cool things at runtime)

ok that's enough esbuild appreciation for now

yay added some settings

(and more kinda janky code i need to refactor)

((and now its time for seepy cosy))

aaaaaaaaaa ok i really need to release something

will try to do that today, I basically just need to add a flag to differentiate development and production mode, and change if assets are built or just loaded from somewhere

(also i was finally able to order my steam deck yesterday :ablobcatrainbow: apparently it should arrive by next week according to other canada people who got it)

builds are working now :blobcathyper:

all dependencies are embedded in the binary, so it's just one file which is kinda cool

If anyone wants to try Crankshaft with the ProtonDB plugin, I put up instructions here [0]

keep in mind these are very rough steps, none of this has been well tested, and parts are janky or might be broken. I've tested on multiple Linux desktop computers though, so hopefully it works ok!

(running in steam's deck ui should work, but the ui is very janky right now, I have a lot of stuff to refactor in there)

[0] paste.sr.ht/~avery/ad839af6cb0

I've been working on redoing the deck ui stuff, today I was able to make this menu item a real menu item, with controller compatibility and everything! (I'm using a controller in the video)

(it doesn't do anything yet when you click it, but that part is easier)

yaaaaay plugins are working on the deck

(sorry about the awful quality and one handed filming)

i got it to run but i had to mess with a bunch of stuff. I need to do two things to make it work properly on decc:
- finish making a flatpak
- cache the patching of steam scripts, I was planning on doing this anyways, but the deck is waaaaaaay slower than my desktop at this

making this flatpak will be the end of me

oops i got busy and didn't do much but here's an update

- flatpak works well, and makes it super easy to install on the deck (I'll probably submit it to Flathub soon?)

- added a systemd unit that starts crankshaft on boot, also works great on the deck

- added a built-in plugin browser, so you can install new plugins directly from within Steam with one click!

(and this is still all fully compatible with normal linux desktop)

here's the plugin browser working on the deck (as usual, sorry about bad video quality):

finally submitted this thingy to flathub x.x

tried to improve the Steam Deck lock screen a bit, added a clock and battery status

this fixes an annoyance I had, if you left it charging in sleep mode, you would have to unlock it to check how full the battery is

(i also made a website cause i need one for flathub, not much there yet)
crankshaft.space/

main things i need to do for a Good experience on the deck:

- install an autostart systemd service (I just did this, but I probably need some ui to disable it)

- fix a bug where if you have lock screen enabled an injected script times out after a while jhfglashjfhsdjf

- when crankshaft/steam stops, replace patched steam scripts with the original scripts, otherwise steam always goes through a like 30 second update process when it starts

Follow

added quick access plugin support

didn't work on the desktop implementation yet, but I'll probably do that later, right now I want to get my instant replay/shadowplay thing working on deck

· · Web · 1 · 1 · 2

*by working I mean get a ui working, right now I'm running the recording commands over ssh

Sign in to participate in the conversation
Mastodon

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!