Livesplit if it was bad (and cross platform).
Built using godot 4.4, the godot-rust bindings, and livesplit-core because I have completely lost it.
Features:
- Basically all the normal stuff livesplit does
- Working global hotkeys (on my system anyway, check if the global-hotkeys crate works on your system)
- Importing .lss files from livesplit
- Subsplits, working the same as in livesplit
- Customizable layout using godot's resource system - see Themes for more info (You can even write a shader for your timer background!!!!!)
- Full autosplitter support (WIP by which I mean literally does not exist)
WIP: NO RELEASE BUILDS YET
this project is primarily for my own use and has been only tested on my system (fedora cinnamon spin). it probably doesn't work on other platforms, but hey, you can try building it and see what happens.
The app will open as a borderless window similar to livesplit. Clicking and dragging will move the window. Right-clicking on the window will open a settings popup which you can use to edit the timer and hotkeys used to control it.
Themes can be loaded in settings by selecting a .zip file to open. Creating themes requires a bit more effort (maybe at some point a settings ui could be added for this).
To create a theme:
- Download at least the dead_split_gd folder from this repository, you probably want to clone the whole thing and build the rust code as well so you can test out the timer in the editor, though.
- Install the godot editor v4.4 beta4
- Open the project inside dead_split_gd
- Edit the resources located inside the DefaultTheming folder to your liking
- You can ruin the main scene to test out the timer. Once you're finished, open theme_dumper.tscn (in the ThemeDumper folder)
- Run the scene and select a location to save the .zip file in, and a .zip containing the new theme will be placed there. It can be loaded as normal from there.
- Install cargo, godot 4.4 (whatever the latest beta is, this will be kept up to date), and install any needed export templates in the godot editor.
- Run
cargo build
andcargo build --release
in the dead_split_rs folder, then move the generated library files into somewhere inside the dead_split_gd folder and update dead_split_rs.gdextension appropriately. - Finally, export the project in the godot editor as usual.