Tags give the ability to mark specific points in history as being important
  • v1.4.0
    2270190d · Get versions in sync ·
    Release v1.4.0

    Enhancements

    • Add combos to stats

    Now tracked, you can see how how many consecutive letters you hit in a row! Check in your stats box to see what you've currently got.

    • Getting even 🌠fancier💫 with colors

    Why just add combos, but no indicator of how you're doing? Got a combo of (currently) over 60? The color of all borders will light up to a different color to show you're doing great! The color will change based on whether or not you have made any errors, and whether or not you are in instant death mode.

    • Add ability to disable dynamic colors

    We recognize not everyone will like flashy colors (although they should only change once or twice per game), and so a way to disable having the border change colors at all has been provided.

    Toggle: display_settings.simple_borders = true in your config file and the borders will never change from their starting colors.

    • About page is now more version aware

    Now you can browse the release notes for just the version you downloaded rather than every version under the sun. Links to version aware docs are included too.

    Internal Enhancements

    • Border styles are now contained in the styles module

    Somehow it wasn't there before, but it is now.

    Binary for x86_64 Linux:

    macOS:

  • v1.3.3
    Release v1.3.3

    Enhancements

    • Getting 🌟fancy🌟 with colors

    Instant death mode now surrounds the borders of all in game boxes with red to notify you you're in instant death mode. Playing in normal mode will have the boxes surrounded by green until the user makes an error. Can you keep them green forever?

    Binary for x86_64 Linux:

  • v1.3.2
    Release v1.3.2

    Enjoying my funemployment

    Enhancements

    • Adds a new instant death mode available through the CLI: typeracer --instant-death

    Like typeracer.com's instant death mode, if you make a mistake, you instantly "fail" the passage. With the last few changes and refactors pushed through, it took surprisingly little work to add this :D

    Binary for x86_64 Linux:

    macOS:

    • You know the drill
  • v1.3.1
    Release v1.3.1

    Small maintenance release

    Bug Fixes

    • About page does not "freeze" the UI if user has completed passage

    When triggering the about page, if the user had finished the passage, once they tried to leave typeracer would look like it ignored the ^C because it thinks it's done rendering the UI. We ask it to render one more time if this scenario happens.

    Internal Enhancements

    • Do much less unnecessary copying and slicing

    In the line rendering mode, we've been able to cut out much of the slicing and recopying of vectors. You might not notice it, but typing should be a little faster now! In the future I'd like to be able to remove all to_vec and just use slices, but we aren't there yet.

    Binary for x86_64 Linux:

    Binary for macOS:

    • Coming soon.

    I left my current job and do not have access to a Mac. Will have access again in 2 weeks...

  • v1.3.0
    Release v1.3.0

    Enhancements

    • New line rendering mode allows terminals of all sized to be supported

    Somehow have a terminal made with only 30 characters of width and not much height? Previously you would lose most of the passage you were typing to the depths below the text box with no way to see what was next.

    With the new line rendering mode, the word you're currently typing will always be on the left and when you're done typing it, it will disappear. This new mode is enabled by default and means terminals and passages of all sizes (even some of the most ridiculous sized ones) are now supported.

    If for some reason you don't like the new mode, you can revert to the old mode via config file with:

    [display_settings]
    always_full=true

    Internal Enhancements

    • Remove duplicate legacy logic in game module

    There was a bit of hairy legacy logic that actually wasn't being run anymore! This has since been removed, and the rest that was kept was cleaned up a fair bit.

    Binary for x86_64 Linux:

    Binary for macOS:

    • Coming soon.

    I left my current job and do not have access to a Mac. Will have access again in 2 weeks...

  • v1.2.3
    Release v1.2.3

    Enhancements

    • Bad config will no longer not let you play

    Taking a page out of how vim does it, if your config is bad, you will be alerted on start, but you can ignore it and run with default configs if you so please.

    • Shrunk down help text on game page

    The text was just a little too big and on smaller terminals would get crunched off and be impossible to read. The text has been squished down to a tiny 67 characters so it should fit on all standard sized terminals now.

    • Added about page

    Creators need love too sometimes :)

    Internal Enhancements

    • The config system is reworked a little

    Once you pull from config, you are no longer tossing around options and making defaults in weird places, everything is initialized from the config, and anything not initialized is set to a default.

    Binary for x86_64 Linux:

    Binary for macOS:

    • Coming soon.

    I left my current job and do not have access to a Mac. Will have access again in 2 weeks...

  • v1.2.2
    40607956 · Update cargo.lock ·
    Release v1.2.2

    Enhancements

    • typeracer UI finally scales with terminal sizes!

    We no longer have a check for certain terminal sizes and warn the user if the terminal is "too small." With that said, the debug layout starts to shrink when the terminal gets smaller. This seems like a reasonable tradeoff.

    • Bigger layouts!

    In addition to scaling the UI better, the UI takes up a little more space. There's still a comfortable amount of padding especially with bigger layouts, but you should notice more space for the layouts you care about.

    • Configurable lang pack version!

    Did you have a favorite lang_pack version you want to go back to? Well now it's configurable! Likewise, if you're using a custom lang pack repo, you probably don't want to have to watch the official lang pack repo for version updates and have to update the latest branch each time it updates.

    Binary for x86_64 Linux:

    Binary for macOS:

  • v1.2.1
    Release v1.2.1

    Enhancements

    • Lang pack is now configurable!

    Got your own set of language packs and don't want to use the stock one? Pass in your lang_pack url with: repo = "https://example.com/your-lang-pack.git" Note that the versioning has to match the official lang pack versioning to work properly right now.

    Bug Fixes

    • User can restart when a passage ends

    This was a regression in a previous release where we lost the ability to restart a passage at the very end of the passage. This has since been fixed.

    Binary for x86_64 Linux:

  • v1.2.0
    Release v1.2.0

    Enhancements:

    • Config file has been added!

    There have been requests to enable or disable specific features on typeracer, and to persist across sessions, we needed some kind of configuration file. For now the only thing you can do with it is enable or disable language packs, but more options are coming in the future!

    • See what language packs are available/enabled!

    Now with a typeracer -s you can see your currently enable language packs and all available language packs. The flag listens to what you do and don't have enabled in your config file to tell you what's enabled.

    • Lang pack has been upgraded lang-0.2 -> lang-0.3

    There were numerous complaints about the number of quotation marks from harry potter based quotes. As such, all quotation marks in the harry potter quotes have been removed.

    Binary for x86_64 Linux:

    Binary for macOS:

  • v1.1.1
    Release v1.1.1

    Bug fixes:

    • Fix cases where update lang pack might not always be downloaded

    Enhancements:

    • Lang pack interface now follows design patterns of other interfaces
    • Support for arbitrary language packs!

    Typeracer will now consume any language pack in the lang-packs folder. More details and configurability coming soon!

    Binary for x86_64 Linux:

    Binary for macOS:

  • v1.1.0
    Release v1.1.0

    Bug fixes:

    • Fix crash for new users

    Any new users who installed 1.0.9 or 1.0.10 without installing 1.0.8 first would get a crash on startup. Sorry to any users who may have installed either of those two versions!

    Enhancements:

    • Language pack will now update when there is a new version
    • Binary size is less than half as large now (1.9Mi!)

    Internal enhancements:

    • Compile times are down by more than 3 minutes

    Switch from reqwest -> libgit2-rs. Unfortunately this has broken Linux -> macOS cross compile.

    Binary for x86_64 Linux:

  • v1.10.0
    Release v1.10.0

    BUG:

    MUST UPGRADE FROM v1.0.8 OR EARLIER, OTHERWISE WILL CRASH ON START


    Thanks to Jeffas for continued contributions! There wouldn't be nearly as many releases without them.

    Enhancements:

    • Typing box is completely green on complete
    • Error count has been added to WPM box

    Look forward to more stats in the future!

    • New restart command! ^R

    Like the passage you just did? You can replay it now!

    Tired of having to download from this releases page or compile everything in here by hand? Now you can just do cargo install typeracer for the latest version.

    Internal Enhancements:

    • Some doc comments have been added. We'll probably add more later.

    Binary for x86_64 Linux:

    Binary for macOS:

  • v1.0.9
    f851d5a7 · Update cargo.lock ·
    Release v1.0.9

    BUG:

    MUST UPGRADE FROM v1.0.8 OR EARLIER, OTHERWISE WILL CRASH ON START


    Thanks again to Jeffas for the contributions and code reviews!

    Enhancements:

    • Passage history!

    Liked the last passage you just did? Now you can play it again with ^P! In fact more than just the last passage is saved, the last 20 passages are saved! Scroll back and replay the same passage again and again until you get a score high enough to show off to your friends.

    Internal Enhancements:

    • Tests tests tests tests

    There are now tests almost everywhere. You shouldn't have to worry much anymore if you change a part of the code. You'll probably catch a test failure before you get to the point where you can deploy something broken.

    • Rendering pipelines are now fully separate of logic pipelines.
    • All structs have debug/clone
    • Move WPM to its own module

    Will allow to more easily add different stats

    Binary for x86_64 Linux:

    Binary for macOS:

  • v1.0.8
    Release v1.0.8

    Shoutout to Jeffas for all of their contributions!

    Enhancements:

    • The two dashes -- in each of the author names no is no longer in the quote pack!
    • Binary is now smaller (a whole megabyte off on Linux, and 2 on macOS!) and a little faster
    • Shortcuts are unified (no more ^A sometimes and ^N sometimes)

    Bugfixes:

    • The erratic cursor movement for user input has been fixed!

    Internal enhancements:

    • Debug builds are now clearly stated as such

    Binary for x86_64 Linux:

    Binary for macOS:

  • v1.0.7
    c6f22b9f · Update README ·
    Release v1.0.7

    Enhancements:

    • Debug mode is now included. If you want to see what is going on under the hood, you can now run with typeracer -d

    If you are running in with cargo run (e.g. not release mode) debug mode will always be enabled

    • Memory usage enhancements

    You probably won't notice it, but ya boi learned more about lifetimes, and now there is no usage of 'static. If you happened to run a release older than this for a couple years, you might eventually notice you would run out of memory. This will no longer be the case!

    Internal enhancements:

    • Tests added for some of the main logic used in the game

    Not all of the methods have tests. I need an easy way to compare the styled texts from the output I use before I can add tests for the rest of the methods.

    • Rendering logic and game logic is generally separated now!

    Most of the tui and termion logic has now been farmed out to a separate module game/game_render.rs So less to worry about messing up when coding!

    Binary for x86_64 Linux:

    Binary for macOS:

  • v1.0.6
    a6ae3ba9 · Update asset and README ·
    Release v1.0.6

    Thanks for all of the bug reports and feature requests! Keep them coming!

    Enhancements:

    • A number of users complained highlighting the word at the bottom was not nearly noticeable enough on error, so the entire box is highlighted red on error now.
    • We do less unnecessary object copying. You should notice a smaller memory footprint now.

    Bugfixes:

    • The cursor wouldn't always highlight the top box when you made an error, now it always will!

    Internal enhancements:

    • We now run Clippy and all of the clippy warnings have been fixed.
    • We use fewer tuples and more structs. The data you're dealing with should be much clearer now.
    • A number of smaller refactors for clarity: Most specifically some hairy indexing is gone.

    Binary for x86_64 Linux:

    Binary for macOS:

  • v1.0.5
    Release v1.0.5

    Enhancements:

    • ^U readline binding added!

    I may be adding more readline bindings in the future.

    Bugfixes:

    • All linting warnings are gone and we're doing less copying.

    You might not notice a difference, but terminal typeracer is now faster and more memory efficient!

    Linux x86_64:

    typeracer

    macOS:

    typeracer

  • v1.0.4
    Release v1.0.4

    Bugfix/Enhancement

    • Use real WPM algorithm

    It turns out words per minute actually isn't generally calculated with words/minute, it's generally one word=5 characters typed. Go figure! I wondered why my scores here were always a little burstier and sometimes vastly higher than typeracer.

    For the sake of accuracy, the default words per minute algorithm has been switched to (characters/5)/minute.

    With that said, if you liked the old algorithm (it was burstier and you could show your friends higher numbers if the passage was short) run with the -l flag.

    $ typeracer --help
    ...
        -l, --legacy-wpm    Derive words per minute as actual words/minute instead of letters/5 over minute
    ...
    $ typeracer -l

    Binaries for...

    Linux x86_64:

    macOS:

  • v1.0.3
    Release v1.0.3

    Enhancments:

    • Add cross compile from Linux to macOS target. Releases will now have a mac binary from here on out!

    Sorry Windows users. I don't even know if this works on Windows. We'll see when the new terminal comes out.

    Bug fixes:

    • Removing the requirement for hitting space at the end meant the last character of every passage stopped getting highlighted, this has since been fixed!

    x86_64 Linux:

    typeracer

    macOS:

    typeracer

  • v1.0.2
    ee522359 · Update cargo.lock ·
    Release v1.0.2

    Enhancements:

    • All available keyboard shortcuts on the main screen are shown before the user starts typing

    Bug fixes:

    • Quotes are finally sanitized! To get the latest quotes, delete the data dir
    # Linux
    rm -rf ~/.local/share/typeracer/quote-pack
    # macOS
    rm -rf ~/Library/Application\ Support/org.darrienglasser.com.typeracer/quote-pack

    and re-run typeracer.

    Internal enhancements:

    • A new set of action enums now exist. This will allow us to have finer grained control over how screens transition
    • versioning added to quote pack (via version file included). This will allow us to tell the user their quote-pack version and possibly find the latest version for easier updating

    As usual, binary included for x86_64 Linux:

    typeracer

    And for macOS:

    typeracer

    Happy typing!