LibreSplit is a speedrun timer based on urn that adds support for Lua-based auto splitters that are easy to port from ASL.
If you are looking for the public repository of splits, auto splitters and themes. They are located here
- Split Tracking and Timing: Accurately track and time your speedruns with ease.
- Auto Splitter Support: Utilize Lua-based auto splitters to automate split timing based on in-game events.
- Customizable Themes: Customize your timer's appearance by creating and applying custom themes.
- Flexible Configuration: Configure keybindings and various settings to suit your preferences.
- Icon support for splits.
- Always on Top support.
- Support for in-game time.
-
Arch-based Distros
yay libresplit-gitparu libresplit-git
See the libresplit-git package on the Arch User Repository (AUR).
-
NixOS
See the libresplit package, courtesy of @fgaz.
LibreSplit requires the following dependencies on your system to compile:
gitmesonlibgtk+-3.0x11libjanssonluajit
Install the required dependencies:
-
Debian-based systems
sudo apt update sudo apt install build-essential libgtk3-dev libjansson-dev meson luajit
-
Arch-based systems
sudo pacman -Sy sudo pacman -S gtk3 jansson luajit git meson
Clone the project:
git clone https://github.com/LibreSplit/LibreSplit
cd LibreSplitNow compile and install:
meson setup build -Dbuildtype=release
meson compile -C build
meson install -C buildAll done! Now you can start the desktop LibreSplit or run /usr/local/bin/libresplit.
When you start LibreSplit for the first time, it will create the libresplit directory in your config directory (it will usually be ~/.config/libresplit). Such directory will contain:
- Splits.
- Auto Splitters.
- Themes.
All 3 directories will start empty, so you may want to download the resource repository first and clone it in ~/.config/libresplit/ before starting LibreSplit for the first time.
A file dialog will then appear, asking you to select a Split JSON file (see Split files).
Initially the window is undecorated. You can toggle window decorations by pressing the Right Control key.
The timer is controlled with the following keys (note that their action depends on the state of the timer):
| Key | Timer is Stopped | Timer is running |
|---|---|---|
| Spacebar | Start timer | Split |
| Backspace | Reset timer | Stop timer |
| Delete | Cancel | - |
Cancel will reset the timer and decrement the attempt counter. A run that is reset before the start delay is automatically cancelled.
If you forget to split, or accidentally split twice, you can manually change the current split:
| Key | Action |
|---|---|
| Page Up | Unsplit |
| Page Down | Skip Split |
The color of a time or delta has a special meaning.
| Color | Meaning |
|---|---|
| Dark red | Behind splits in PB and losing time |
| Light red | Behind splits in PB and gaining time |
| Dark green | Ahead of splits in PB and gaining time |
| Light green | Ahead of splits in PB and losing time |
| Blue | Best split time in any run |
| Gold | Best segment time in any run |
If you want to change the default settings or keybinds, you can check the Settings and Keybinds documentation
LibreSplit supports auto splitters written in Lua to automate split timing based on in-game events.
Feel free to make your own, Documentation can be found here
Split files in LibreSplit are stored as well-formed JSON.
Check the Split Files documentation for more information.
You can customize LibreSplit to your liking using themes.
For more information, check the Themes documentation.
-
How do I resize the application window?
You can edit the
widthandheightproperties in the Split JSON File -
How do I change the default keybinds?
You can change the keybinds using the
gsettingscommand.See Settings and Keybinds for some examples and more information.
-
How do I make the keybinds global?
You can set the
global-hotkeysproperty astrueusinggsettings. See Settings and Keybinds.Wayland users experienced crashes when enabled
global-hotkeys, so this settings is ignored for Wayland desktops. We are working towards a way to bring global hotkeys to everyone. -
Can I modify LibreSplit's appearance?
Yes. You can create your own theme or download themes online.
-
How can I make my own split file?
You can use any existing JSON split file as an example from our resource repository and refer to the Split Files Documentation for more information.
You can place the split files wherever you prefer, just open them when starting LibreSplit.
-
Can I define custom icons for my splits?
Yes! You can use local files or web urls. See the
iconkey in the split object.The default icon size is 20x20px, but you can change it like so:
.split-icon { min-width: 24px; min-height: 24px; background-size: 24px; }
-
Can I contribute?
Absolutely!
You can contribute in many ways:
- By making pull requests.
- By creating new themes, split files or auto splitters and add them to our resource repository.
- By reporting issues.
- By sending us suggestions, feature requests, improve the documentation and more. Feel free to join our discord server to follow LibreSplit's development up close.
You can uninstall LibreSplit using your package manager or, if you built it manually, by running
cd build
sudo ninja uninstall
