🐵 Monkeytype, but for desktop

Overview

Monkeytype Desktop

crates.io github.com

Monkeytype desktop is a desktop client for monkeytype.com with various quality-of-life features such as a Discord Rich Presence.

You might know my for authoring the original monkey-type-desktop client which was written using Electron. This is a rewrite of that client in Rust which aims to be more lightweight and an improvement over the original.

Usage

There aren't any official installation avenues at the moment, but in the future Moneytype Desktop will come with an auto-updater and installation will be as simple as downloading a binary or using Cargo.

If you really want to try it out, you can clone this repository and build it yourself using Tauri and Cargo.

Pre-requisites

Just clone this repository, cd into it, and run cargo tauri dev to launch a development server.

License

This project is licensed with the GNU General Public License v3.0.

You might also like...
Easy c̵̰͠r̵̛̠ö̴̪s̶̩̒s̵̭̀-t̶̲͝h̶̯̚r̵̺͐e̷̖̽ḁ̴̍d̶̖̔ ȓ̵͙ė̶͎ḟ̴͙e̸̖͛r̶̖͗ë̶̱́ṉ̵̒ĉ̷̥e̷͚̍ s̷̹͌h̷̲̉a̵̭͋r̷̫̊ḭ̵̊n̷̬͂g̵̦̃ f̶̻̊ơ̵̜ṟ̸̈́ R̵̞̋ù̵̺s̷̖̅ţ̸͗!̸̼͋

Rust S̵̓i̸̓n̵̉ I̴n̴f̶e̸r̵n̷a̴l mutability! Howdy, friendly Rust developer! Ever had a value get m̵̯̅ð̶͊v̴̮̾ê̴̼͘d away right under your nose just when

Turn any web page into a desktop app (but, lightweight 1MB)

Intro Turn any web page into a desktop app (but, lightweight 1MB) The bundle will be less than 2MB Demo: https://i.imgur.com/BLr03oF.mp4 Install carg

Desktop GUI Framework

Azul - Desktop GUI framework WARNING: The features advertised in this README may not work yet. Azul is a free, functional, immediate mode GUI framewor

Build beautiful desktop apps with flutter and rust. 🌠 (wip)
Build beautiful desktop apps with flutter and rust. 🌠 (wip)

flutter-rs Build flutter desktop app in dart & rust. Get Started Install requirements Rust flutter sdk Develop install the cargo flutter command cargo

Build smaller, faster, and more secure desktop applications with a web frontend.
Build smaller, faster, and more secure desktop applications with a web frontend.

TAURI Tauri Apps footprint: minuscule performance: ludicrous flexibility: gymnastic security: hardened Current Releases Component Descrip

The best open source remote desktop software
The best open source remote desktop software

The best open-source remote desktop software, written in Rust. Works out of the box, no configuration required. Great alternative to TeamViewer and AnyDesk! You have full control of your data, with no concerns about security. You can use our rendezvous/relay server, set up your own, or write your own rendezvous/relay server.

Pixel-Perfect, 2D Renderer for Bevy that Seamlessly Targets Desktop and Web
Pixel-Perfect, 2D Renderer for Bevy that Seamlessly Targets Desktop and Web

bevy_retro ( Screenshot of Bounty Bros. game made with Bevy Retro and Skip'n Go ) Bevy Retro is a 2D, pixel-perfect renderer for Bevy that can target

An application for creating encrypted vaults for the GNOME desktop.
An application for creating encrypted vaults for the GNOME desktop.

Vaults An application for creating encrypted vaults for the GNOME desktop. It currently uses gocryptfs and CryFS for encryption. Please always keep a

client-server notification center for dbus desktop notifications

tsuchita A client-server notification center for dbus desktop notifications. Specifically org.freedesktop.Notifications dbus messages. Motivation I ju

Yew Tauri Desktop App Template

Yew Tauri Desktop App Template This is Template App for Desktop App. Run Develop $ cargo tauri dev Build App $ cargo tauri build Setup yew setup Using

SixtyFPS is a toolkit to efficiently develop fluid graphical user interfaces for any display: embedded devices and desktop applications. We support multiple programming languages, such as Rust, C++ or JavaScript.
SixtyFPS is a toolkit to efficiently develop fluid graphical user interfaces for any display: embedded devices and desktop applications. We support multiple programming languages, such as Rust, C++ or JavaScript.

SixtyFPS is a toolkit to efficiently develop fluid graphical user interfaces for any display: embedded devices and desktop applications. We support multiple programming languages, such as Rust, C++ or JavaScript.

The Mullvad VPN client app for desktop and mobile

Mullvad VPN desktop and mobile app Welcome to the Mullvad VPN client app. This repository contains all the source code for the desktop and mobile vers

Gtk/Rust native Spotify client for the GNOME desktop.
Gtk/Rust native Spotify client for the GNOME desktop.

Gtk/Rust native Spotify client for the GNOME desktop.

A third-party iTunes addon to show the lyrics on the desktop.
A third-party iTunes addon to show the lyrics on the desktop.

iTunes Desktop Lyrics for Windows A third-party iTunes addon to show the lyrics on the desktop. Preview Prerequisites iTunes Usage Download the binary

A third-party iTunes addon to show the lyrics on the desktop.
A third-party iTunes addon to show the lyrics on the desktop.

iLyrics A third-party iTunes addon to show the lyrics on the desktop. Preview Prerequisites iTunes Usage Download the binary or build from source. Run

ZeroTier Desktop Tray Application and UI

ZeroTier Desktop Tray Application and User Interface This is (as of ZeroTier 1.8) the system tray application and user interface for controlling a loc

 Better GNOME Desktop Experience
Better GNOME Desktop Experience

Better GNOME Desktop Experience Tired of having the best feeling DE with the worst defaults? This app is for you. Transform the default GNOME look to:

A react-inspired UI library for building multimedia desktop apps with rust and vulkan.
A react-inspired UI library for building multimedia desktop apps with rust and vulkan.

narui A react-inspired UI library for building multimedia desktop apps with rust and vulkan. declarative UI with Ergonomics similar to React with hook

Modular IPC-based desktop launcher service

Pop Launcher Modular IPC-based desktop launcher service, written in Rust. Desktop launchers may interface with this service via spawning the pop-launc

Comments
  • build(deps): bump tauri from 1.0.5 to 1.0.6 in /src-tauri

    build(deps): bump tauri from 1.0.5 to 1.0.6 in /src-tauri

    Bumps tauri from 1.0.5 to 1.0.6.

    Release notes

    Sourced from tauri's releases.

    tauri v1.0.6

    Fetching advisory database from `https://github.com/RustSec/advisory-db.git`
          Loaded 457 security advisories (from /home/runner/.cargo/advisory-db)
        Updating crates.io index
        Scanning Cargo.lock for vulnerabilities (446 crate dependencies)
    Crate:     ansi_term
    Version:   0.12.1
    Warning:   unmaintained
    Title:     ansi_term is Unmaintained
    Date:      2021-08-18
    ID:        RUSTSEC-2021-0139
    URL:       https://rustsec.org/advisories/RUSTSEC-2021-0139
    Dependency tree:
    ansi_term 0.12.1
    └── tracing-subscriber 0.3.15
        └── loom 0.5.6
            └── state 0.5.3
                └── tauri 1.0.6
                    ├── tauri 1.0.6
                    ├── restart 0.1.0
                    └── app-updater 0.1.0
    

    Crate: xml-rs Version: 0.8.4 Warning: unmaintained Title: xml-rs is Unmaintained Date: 2022-01-26 ID: RUSTSEC-2022-0048 URL: https://rustsec.org/advisories/RUSTSEC-2022-0048 Dependency tree: xml-rs 0.8.4 ├── winrt-notification 0.5.1 │ └── notify-rust 4.5.8 │ └── tauri 1.0.6 │ ├── tauri 1.0.6 │ ├── restart 0.1.0 │ └── app-updater 0.1.0 └── plist 1.3.1 └── tauri-codegen 1.0.4 ├── tauri-macros 1.0.4 │ └── tauri 1.0.6 └── tauri-build 1.0.4 └── app-updater 0.1.0

    warning: 2 allowed warnings found

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • build(deps): bump tokio from 1.21.0 to 1.24.1 in /src-tauri

    build(deps): bump tokio from 1.21.0 to 1.24.1 in /src-tauri

    Bumps tokio from 1.21.0 to 1.24.1.

    Release notes

    Sourced from tokio's releases.

    Tokio v1.24.1

    This release fixes a compilation failure on targets without AtomicU64 when using rustc older than 1.63. (#5356)

    #5356: tokio-rs/tokio#5356

    Tokio v1.24.0

    The highlight of this release is the reduction of lock contention for all I/O operations (#5300). We have received reports of up to a 20% improvement in CPU utilization and increased throughput for real-world I/O heavy applications.

    Fixed

    • rt: improve native AtomicU64 support detection (#5284)

    Added

    • rt: add configuration option for max number of I/O events polled from the OS per tick (#5186)
    • rt: add an environment variable for configuring the default number of worker threads per runtime instance (#4250)

    Changed

    • sync: reduce MPSC channel stack usage (#5294)
    • io: reduce lock contention in I/O operations (#5300)
    • fs: speed up read_dir() by chunking operations (#5309)
    • rt: use internal ThreadId implementation (#5329)
    • test: don't auto-advance time when a spawn_blocking task is running (#5115)

    #5186: tokio-rs/tokio#5186 #5294: tokio-rs/tokio#5294 #5284: tokio-rs/tokio#5284 #4250: tokio-rs/tokio#4250 #5300: tokio-rs/tokio#5300 #5329: tokio-rs/tokio#5329 #5115: tokio-rs/tokio#5115 #5309: tokio-rs/tokio#5309

    Tokio v1.23.1

    This release forward ports changes from 1.18.4.

    Fixed

    • net: fix Windows named pipe server builder to maintain option when toggling pipe mode (#5336).

    #5336: tokio-rs/tokio#5336

    Tokio v1.23.0

    Fixed

    • net: fix Windows named pipe connect (#5208)
    • io: support vectored writes for ChildStdin (#5216)
    • io: fix async fn ready() false positive for OS-specific events (#5231)

    ... (truncated)

    Commits
    • 31c7e82 chore: prepare Tokio v1.24.1 (#5357)
    • 8d8db27 tokio: add load and compare_exchange_weak to loom StaticAtomicU64 (#5356)
    • dfe252d chore: prepare Tokio v1.24.0 release (#5353)
    • 21b233f test: bump version of async-stream (#5347)
    • 7299304 Merge branch 'tokio-1.23.x' into master
    • 1a997ff chore: prepare Tokio v1.23.1 release
    • a8fe333 Merge branch 'tokio-1.20.x' into tokio-1.23.x
    • ba81945 chore: prepare Tokio 1.20.3 release
    • 763bdc9 ci: run WASI tasks using latest Rust
    • 9f98535 Merge remote-tracking branch 'origin/tokio-1.18.x' into fix-named-pipes-1.20
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • build(deps): bump tauri from 1.0.5 to 1.0.8 in /src-tauri

    build(deps): bump tauri from 1.0.5 to 1.0.8 in /src-tauri

    Bumps tauri from 1.0.5 to 1.0.8.

    Release notes

    Sourced from tauri's releases.

    tauri v1.0.8

    Updating crates.io index

    Cargo Audit

    Fetching advisory database from `https://github.com/RustSec/advisory-db.git`
          Loaded 474 security advisories (from /home/runner/.cargo/advisory-db)
        Updating crates.io index
        Scanning Cargo.lock for vulnerabilities (452 crate dependencies)
    Crate:     xml-rs
    Version:   0.8.4
    Warning:   unmaintained
    Title:     xml-rs is Unmaintained
    Date:      2022-01-26
    ID:        RUSTSEC-2022-0048
    URL:       https://rustsec.org/advisories/RUSTSEC-2022-0048
    Dependency tree:
    xml-rs 0.8.4
    └── plist 1.3.1
        └── tauri-codegen 1.0.4
            ├── tauri-macros 1.0.4
            │   └── tauri 1.0.8
            │       ├── tauri 1.0.8
            │       ├── restart 0.1.0
            │       └── app-updater 0.1.0
            └── tauri-build 1.0.4
                └── app-updater 0.1.0
    

    warning: 1 allowed warning found

    [1.0.8]

    • Fix the filesystem scope allowing sub-directories of the directory picked by the dialog when recursive option was false.
      • f0602e7c Merge pull request from GHSA-6mv3-wm7j-h4w5 on 2022-12-22

    Cargo Publish

    Updating crates.io index
       Packaging tauri v1.0.8 (/home/runner/work/tauri/tauri/core/tauri)
       Verifying tauri v1.0.8 (/home/runner/work/tauri/tauri/core/tauri)
     Downloading crates ...
      Downloaded alloc-no-stdlib v2.0.4
      Downloaded futures-executor v0.3.25
      Downloaded http v0.2.8
      Downloaded typenum v1.16.0
      Downloaded waker-fn v1.1.0
      Downloaded xattr v0.2.3
      Downloaded rand_core v0.5.1
      Downloaded rand_pcg v0.2.1
      Downloaded brotli-decompressor v2.3.2
    </tr></table> 
    

    ... (truncated)

    Commits
    • 72389b0 Merge pull request from GHSA-6mv3-wm7j-h4w5
    • 4f2fd4d chore: run cargo fmt
    • cf09864 chore(cli): fix clippy warnings
    • d7ffa7f chore: addition to previous commit
    • 0150207 chore: fix clippy warnings
    • a02c6c4 chore(deps) Update Rust crate toml to 0.5.10 (#5836)
    • cd8c074 feat(cli): add support for Cargo's workspace inheritance for the package vers...
    • f7a080a fix(bench): Result interpretation problems (#5798)
    • bca09f7 feat(tauri-build): add option to specify Windows manifest, closes #5584 (#5730)
    • 2bf9c27 fix(ci): use client-payload input to trigger cli.js publish workflow
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
Owner
Fuwn
Avid Rust Enthusiast and a Docker fanatic of sorts... 18. Embedded Systems Engineering Technology, B.S.
Fuwn
A Conway's Game Of Life application for the gnome desktop

Game Of Life A simple Conway's game of life simulator for the Gnome desktop Installation The easieast way to install is from Flathub. Using Gnome Buil

Andrea Coronese 7 Dec 30, 2022
Bevy virtual Joystick for mobile games (Works with mouse on desktop)

Bevy Virtual Joystick Create and use a Virtual Joystick in a UI for bevy Game Engine. Versions Aviable and compatible versions bevy VirtualJoystick 0.

Sergio Alejandro Ribera Costa 7 Apr 16, 2023
The Bloat-Free Browser Game in Rust but in C and in UEFI

rust-browser-game but in UEFI instead of browser quick start deps rust gnu-efi gcc make build process $ make running after building everything you wil

bit6tream 12 Nov 7, 2022
rust-browser-game but native and rendered with ncurses in C without the Browser

Spin-off of rust-browser-game-but-sdl but with ncurses Nothing much to say. Just see rust-browser-game-but-sdl and rust-browser-game. Quick Start $ ma

Tsoding 8 Apr 21, 2022
The Bloat-Free Browser Game in Rust but in C and not in a Browser

rust-browser-game but native and rendered with SDL in C without the Browser The original idea of rust-browser-game is that the game.wasm module is com

Tsoding 12 Sep 26, 2022
A tetris game I wrote in rust using ncurses. I'm sure that there's a better way to write a tetris game, and the code may be sus, but it techinically works

rustetris A tetris game I wrote in rust using ncurses. I'm sure that there's a better way to write a tetris game, and the code may be sus, but it tech

Eric G 3 Oct 15, 2022
Like minecraft, but crispier!

crispycraft Like minecraft, but crispier! Links Library documentation WebGPU: https://docs.rs/wgpu/0.12.0/wgpu/ building_blocks: https://docs.rs/build

null 1 Jan 15, 2022
API tool,but egui style and rusty

WEAVER About Weaver is a simple,easy-to-use and cross-platform API tool.Inspired by hoppscotch . It uses the Rust egui GUI library. Features Get,Post

will 14 Dec 11, 2022
Wordle, but with ZK proofs!

Zordle: ZK Wordle Zordle is Wordle, but with zero-knowledge proofs. Zordle uses ZK proofs to prove that a player knows words that map to their shared

Nalin 177 Jul 2, 2023
It's like monkeytype but from your terminal

DoggyType It's like monkeytype but from ur terminal (ik very unoriginal lmao) Preview doggytype-preview.mp4 Requirements: Rust Build: git clone https:

Nirlep 6 Aug 29, 2023