Skip to content

LibreSplit/LibreSplit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LibreSplit

About

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

Features

  • 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.

Installation

  • Arch-based Distros

    • yay libresplit-git
    • paru libresplit-git

    See the libresplit-git package on the Arch User Repository (AUR).

  • NixOS

    See the libresplit package, courtesy of @fgaz.

Building

LibreSplit requires the following dependencies on your system to compile:

  • git
  • meson
  • libgtk+-3.0
  • x11
  • libjansson
  • luajit

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 LibreSplit

Now compile and install:

meson setup build -Dbuildtype=release
meson compile -C build
meson install -C build

All done! Now you can start the desktop LibreSplit or run /usr/local/bin/libresplit.


Usage

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.

Default Keybinds

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

Colors

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

Settings and Keybinds

If you want to change the default settings or keybinds, you can check the Settings and Keybinds documentation


Auto Splitters

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

Split files in LibreSplit are stored as well-formed JSON.

Check the Split Files documentation for more information.


Themes

You can customize LibreSplit to your liking using themes.

For more information, check the Themes documentation.


FAQ

  • How do I resize the application window?

    You can edit the width and height properties in the Split JSON File

  • How do I change the default keybinds?

    You can change the keybinds using the gsettings command.

    See Settings and Keybinds for some examples and more information.

  • How do I make the keybinds global?

    You can set the global-hotkeys property as true using gsettings. 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 icon key 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:


Uninstall LibreSplit

You can uninstall LibreSplit using your package manager or, if you built it manually, by running

cd build
sudo ninja uninstall

About

Free speedrun timer with auto splitting and load removal for Linux.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors 11