alexozer / flitter

A LiveSplit-inspired speedrunning split timer for Linux/macOS terminal. Supports global hotkeys.
MIT License
132 stars 11 forks source link
command-line command-line-tool hacktoberfest livesplit rainbow rust speedrun speedrun-timer speedrunning terminal timer

Flitter

A LiveSplit-inspired speedrunning split timer for the terminal.

Animated demo GIF

Features

Install

Flitter is designed to work on macOS and Linux (X11). Windows is not currently supported.

Head over to the releases page for precompiled binaries and an installation one-liner.

Alternatively, to quickly build and install flitter from source, install Rust and then run:

cargo install --git https://github.com/alexozer/flitter.git

Global Hotkeys Setup

macOS

On recent versions of macOS, on first launch you will be prompted to enable accessibility permissions for your terminal. This is required for Flitter to read global hotkeys when the terminal is not focused. Go to System Settings -> Privacy & Security -> Accessibility and enable the toggle for your terminal.

Linux

Install the X11 development libraries.

Debian/Ubuntu:

sudo apt install libx11-dev

Fedora/RHEL/CentOS:

sudo dnf install xorg-x11-server-devel

Usage

Create your splits:

Copy examples/splits.json somewhere and add your game and split information. Skipped personal best segments and golds and represented by null.

Launch Flitter with your splits file:

$ flitter path/to/my-splits.json

Warning: Don't edit your splits file while Flitter is running, your changes will be overwritten.

Keybindings

Keybindings are all global hotkeys; they will work even when the terminal is not focused. The following table is the default keybindings:

Keys Action
Space Split
PageUp Undo split
End Delete split
Backspace Reset and save PB + best segments
Delete Reset and discard PB + best segments
Q Quit (not a global hotkey)

To change them, create $HOME/.config/flitter-timer/config.json and populate it with the example config. See the full list of keys for which key names you can use.

Contributing

Feel free to make an issue or a pull request!