3 stable releases
1.19.0 | Aug 5, 2024 |
---|---|
1.3.2 | Dec 13, 2020 |
1.2.8 | Dec 12, 2020 |
#15 in Games
197 downloads per month
210KB
4K
SLoC
mist
a minimal, improved speedrun timer
features
mist does most of what you would expect your speedrun timer to do as far as timing and operation, but beyond that:
- Cross platform
- Linux
- Windows
- MacOS (builds, at least)
- Human-readable split file (using ron)
- customizability
- fonts/font sizes
- colors
- keybinds
- background images
- panels (sum of best etc)
- time rounding (any framerate)
- inline splits or use two rows
- splits editor
- convert lss to msf (mostly effective)
- hot reloading
- split file reloading
- config reloading
- save and restore current timer state from a file
- plugins
simple installation
Get the latest release from the releases page. Linux users will need to install SDL2, SDL2_Image, SDL2_GFX, SDL2_TTF on their system to run it.
You can also install from crates.io, i.e. cargo install mist
.
compiling from source
To build this, you will need SDL2, and SDL2_TTF as well as potentially SDL2_Image and SDL2_GFX depending on your configuration. On Linux, get them from your system package manager. On macOS, you could use homebrew to install them.
cargo features
bg
: enables timer background images. Requires SDL2_GFX and SDL2_Image.icon
: enables app icon. Requires SDL2_Image.plugins
: enables plugin loading and running.portable
: changes config and plugin directories to be adjacent to the executable rather than platform-specificinstant
: enables custom implementation ofstd::time::Instant
frommist-core
.
windows
Setting up your build on windows kinda sucks. What I did is use vcpkg to build all of the necessary DLLs and LIBs and then copied them to the path specified here in step 3.
Compile with cargo build --release
then move the exe as well as the sdl related dlls into the same folder to run.
usage
The default keybinds are:
- F1: Open new split file
- F2: Open a new config file
- F3: Dump timer state to a file
- F4: Load timer state from a file
- Space: Start/split/stop
- Enter: Pause/unpause
- Backspace: Unsplit
- R: Reset
- RightShift: Skip split
- ←: Previous comparison
- →: Next comparison
- Mousewheel: Scroll splits up/down (if there are more than fit in the window)
configuration
mist reads its configuration from the user configuration directory, specific to each operating system:
- Linux:
$XDG_CONFIG_HOME/mist/mist.cfg
or$HOME/.config/mist/mist.cfg
- Windows:
C:\Users\YourUser\AppData\Roaming\mist\mist.cfg
- MacOS:
$HOME/Library/Application Support/mist/mist.cfg
Alternatively, if you have a portable build, mist will look for mist.cfg
in the directory where the executable is stored.
about plugins
Plugins are dynamic libraries that mist loads at runtime. You can find information on how to develop plugins here.
If plugins are enabled, they will be loaded from the directory plugins
in either the platform-specific configuration location
above, or in the executable's directory on a portable build.
This will be eventually a list of interesting plugins but for now there is one:
Licensing
Like Rust itself, mist is licensed under MIT or Apache 2.0, at your option. Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~21MB
~364K SLoC