This simple split tracker was hacked together by 3snow p7im. It was originally written because there were no exisiting solutions for split tracking with a delayed start available on *nix platforms.
Urn requires libgtk+-3.0
, x11
and libjansson
.
Initially the window is undecorated. You can toggle window decorations
by pressing right Control
.
The timer is controlled by key presses:
Key | Stopped | Started |
---|---|---|
Spacebar | Start | Split |
Backspace | Reset | Stop |
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 forgot to split, or accidentally split twice, you can manually change the current split:
Key | Action |
---|---|
Page Up | Unsplit |
Page Down | Skip split |
Keybinds can be configured by changing your gsettings.
Currently there is no settings dialog, but you can change
the values in wildmouse.urn
path with gsettings
.
Key | Type | Description |
---|---|---|
start-decorated | Boolean | Start with window decorations |
hide-cursor | Boolean | Hide cursor in window |
global-hotkeys | Boolean | Enables global hotkeys |
theme | String | Default theme name |
theme-variant | String | Default theme variant |
keybind-start-split | String | Start/split keybind |
keybind-stop-reset | String | Stop/Reset keybind |
keybind-cancel | String | Cancel keybind |
keybind-unsplit | String | Unsplit keybind |
keybind-skip-split | String | Skip split keybind |
keybind-toggle-decorations | String | Toggle window decorations keybind |
Keybind strings should be parseable by gtk_accelerator_parse.
The color of a time or delta has 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 |
- Stored as well-formed json
- Must contain one main object
- All keys are optional
- Times are strings in HH:MM:SS.mmmmmm format
Key | Value |
---|---|
title | Title string at top of window |
start_delay | Non-negative delay until timer starts |
world_record | Best known time |
splits | Array of split objects |
theme | Window theme |
theme_variant | Window theme variant |
width | Window width |
height | Window height |
Key | Value |
---|---|
title | Split title |
time | Split time |
best_time | Your best split time |
best_segment | Your best segment time |
Create a theme stylesheet and place it
in ~/.urn/themes/<name>/<name>.css
where name
is the name of your theme. You can set the global theme by
changing the theme
value in gsettings. Theme variants
should follow the pattern <name>-<variant>.css
.
Your splits can apply their own themes by specifying
a theme
key in the main object.
For a list of supported CSS properties, see GtkCssProvider.
Class |
---|
.window |
.header |
.title |
.attempt-count |
.time |
.delta |
.timer |
.timer-seconds |
.timer-millis |
.delay |
.splits |
.split |
.current-split |
.split-title |
.split-time |
.split-delta |
.split-last |
.done |
.behind |
.losing |
.best-segment |
.best-split |
.footer |
.prev-segment-label |
.prev-segment |
.sum-of-bests-label |
.sum-of-bests |
.personal-best-label |
.personal-best |
.world-record-label |
.world-record |
If a split has a title
key, its UI element receives a class
name derived from its title. Specifically, the title is lowercased
and all non-alphanumeric characters are replaced with hyphens, and
the result is concatenated with split-title-
. For instance,
if your split is titled "First split", it can be styled by
targeting the CSS class .split-title-first-split
.