picom-xrdesktop-companion is a program that runs alongside picom, that mirrors your desktop windows to the VR/XR space.

Overview

picom-xrdesktop-companion

What is this

picom-xrdesktop-companion is a program that runs alongside picom, that mirrors your desktop windows to the VR/XR space.

To see what it would look like, you can watch this video by the developers of xrdesktop:

xrdesktop

There are also a bunch of example videos in this article.

How to use

First, you need to build this program

To use this program, you must have picom installed on your system. For now, only the latest git version of picom is supported. (AUR).

First, make sure picom is running with dbus support enabled:

picom --dbus

Then, make sure SteamVR is running. And after that, start this program. You should see your windows mirrored.

Installation

Dependencies

Building

Simply run

cargo build --release

The resulting binary will be at ./target/release/app

Limitations

Bugs

Both this program and xrdesktop are in their early stages, so bugs and crashes can often happen. Feel free to open an issue here for problems you have encountered.

Window stacking

When you move your pointer over a window in VR, the corresponding window must to raised to the top of the window stack to make sure it is not obscured and is able to receive input. This program makes best effort attempt to do that, but it might not work well with all window managers or programs.

It also changes how your windows are stacked and doesn't attempt to restore it after you stop window mirroring.

Questions

Why picom?

Believe it or not, this has nothing to do with picom being a compositor. Let me explain.

X has a very low level concept of "windows" and is not at all what we users would consider "windows". A set of conventions have developed over the decades to establish what we would consider as a window. These conventions are used by window managers to establish their internal knowledge of windows. Unfortunately this knowledge is only internal to the window manager, and if you want to, say, know what windows are open at the moment, you need to replicate at least part of what the window manager is doing.

And believe me, what it does is arcane. Besides that, your program also has to interact with the window manager and interpret its manipulations of windows correctly. The whole thing is really complex and complicated and you really don't want to do it. That's why xrdesktop developers chose to only integrate xrdesktop as part of the window manager (i.e. as a plugin, or by patching the window manager), instead of making it standalone. (BTW, please stop using X and switch to a wayland compositor if you can).

OTOH, picom, as a compositor, has already implemented the arcane window managing functionality just to function as a compositor. And fortunately, it also has a dbus interface that exposes its knowledge regarding windows. And that's what this program uses to mirror your windows. That's the only part of picom this program needs, so you don't even have to run picom as your compositor. If you want, you can run:

picom --dbus --experimental-backends --backend dummy

this way picom will provide the window information but not run as a compositor.

Acknowledgements

Thanks to the good people at Collabora that made xrdesktop. They also make a ton of interesting stuff and you have probably already heard of them if you are into Linux gaming, so check them out.

Comments
  • failed to load source for dependency `glium`

    failed to load source for dependency `glium`

    When running cargo build --release directly from Git, the error occurs:

     % cargo build --release
    error: failed to resolve patches for `https://github.com/rust-lang/crates.io-index`
    
    Caused by:
      failed to load source for dependency `glium`
    
    Caused by:
      Unable to update /home/happysmash27/Gits/picom-xrdesktop-companion/glium
    
    Caused by:
      failed to read `/home/happysmash27/Gits/picom-xrdesktop-companion/glium/Cargo.toml`
    
    Caused by:
      No such file or directory (os error 2)
    

    Even after running git submodule init and git submodule update --init --recursive, it does not pull in glium, but only gir-files.

    opened by happysmash27 5
  • Cargo build --release fails

    Cargo build --release fails

    Hi, i tried to build your software, only to be bombarded with errors

    Im running archlinux with

    • rust v1.65.0-nightly
    • gxr-git
    • gulkan-git
    • xrdesktop-git (i belive i used git versions because it the originals would not compile, and it was easier to make the git work with a few tweaks/patches)

    Here are the errors I recieved:

    Compiling xrd v0.15.0 (/home/jaryed/Documents/code/picom-xrdesktop-companion/xrd)
    error[E0407]: method `backtrace` is not a member of trait `std::error::Error`
      --> app/src/gl.rs:32:10
       |
    32 | #[derive(thiserror::Error, Debug)]
       |          ^^^^^^^^^^^^^^^^ not a member of trait `std::error::Error`
       |
       = note: this error originates in the derive macro `thiserror::Error` (in Nightly builds, run with -Z macro-backtrace for more info)
    
    error[E0599]: no method named `xlib_display` found for reference `&glium::glutin::window::Window` in the current scope
       --> app/src/gl.rs:111:59
        |
    111 |         let raw_display = self.glium.gl_window().window().xlib_display().unwrap();
        |                                                           ^^^^^^^^^^^^ method not found in `&glium::glutin::window::Window`
        |
        = help: items from traits can only be used if the trait is in scope
    help: the following trait is implemented but not in scope; perhaps add a `use` for it:
        |
    1   | use glium::glutin::platform::unix::WindowExtUnix;
        |
    
    error[E0308]: arguments to this function are incorrect
       --> app/src/gl.rs:135:23
        |
    135 |         let display = glium::Display::new(wb, cb, &el)?;
        |                       ^^^^^^^^^^^^^^^^^^^ --  --  --- expected struct `glium::glutin::event_loop::EventLoopWindowTarget`, found struct `glutin::event_loop::EventLoop`
        |                                           |   |
        |                                           |   expected struct `glium::glutin::ContextBuilder`, found struct `glutin::ContextBuilder`
        |                                           expected struct `glium::glutin::window::WindowBuilder`, found struct `glutin::window::WindowBuilder`
        |
        = note: perhaps two different versions of crate `winit` are being used?
        = note: expected struct `glium::glutin::ContextBuilder<'_, _>`
                   found struct `glutin::ContextBuilder<'_, glutin::NotCurrent>`
        = note: perhaps two different versions of crate `glutin` are being used?
        = note: expected reference `&glium::glutin::event_loop::EventLoopWindowTarget<_>`
                   found reference `&glutin::event_loop::EventLoop<()>`
    note: associated function defined here
       --> /home/jaryed/.cargo/git/checkouts/glium-77a94afc886844c8/3e143cf/src/backend/glutin/mod.rs:70:12
        |
    70  |     pub fn new<T: ContextCurrentState, E>(
        |            ^^^
    
    error[E0599]: no method named `get_egl_display` found for struct `std::cell::Ref<'_, impl Deref<Target = glium::glutin::ContextWrapper<glium::glutin::PossiblyCurrent, glium::glutin::window::Window>>>` in the current scope
       --> app/src/gl.rs:136:46
        |
    136 |         assert!(unsafe { display.gl_window().get_egl_display().is_none() });
        |                                              ^^^^^^^^^^^^^^^ method not found in `std::cell::Ref<'_, impl Deref<Target = glium::glutin::ContextWrapper<glium::glutin::PossiblyCurrent, glium::glutin::window::Window>>>`
        |
        = help: items from traits can only be used if the trait is in scope
    help: the following trait is implemented but not in scope; perhaps add a `use` for it:
        |
    1   | use glium::glutin::platform::ContextTraitExt;
        |
    
    error[E0599]: no method named `xlib_display` found for reference `&glium::glutin::window::Window` in the current scope
       --> app/src/gl.rs:211:59
        |
    211 |         let raw_display = self.glium.gl_window().window().xlib_display().unwrap();
        |                                                           ^^^^^^^^^^^^ method not found in `&glium::glutin::window::Window`
        |
        = help: items from traits can only be used if the trait is in scope
    help: the following trait is implemented but not in scope; perhaps add a `use` for it:
        |
    1   | use glium::glutin::platform::unix::WindowExtUnix;
        |
    
    error[E0599]: no method named `xlib_display` found for reference `&glium::glutin::window::Window` in the current scope
       --> app/src/gl.rs:337:59
        |
    337 |         let raw_display = self.glium.gl_window().window().xlib_display().unwrap();
        |                                                           ^^^^^^^^^^^^ method not found in `&glium::glutin::window::Window`
        |
        = help: items from traits can only be used if the trait is in scope
    help: the following trait is implemented but not in scope; perhaps add a `use` for it:
        |
    1   | use glium::glutin::platform::unix::WindowExtUnix;
        |
    
    error[E0599]: no method named `xlib_display` found for reference `&glium::glutin::window::Window` in the current scope
       --> app/src/gl.rs:424:59
        |
    424 |         let raw_display = self.glium.gl_window().window().xlib_display().unwrap();
        |                                                           ^^^^^^^^^^^^ method not found in `&glium::glutin::window::Window`
        |
        = help: items from traits can only be used if the trait is in scope
    help: the following trait is implemented but not in scope; perhaps add a `use` for it:
        |
    1   | use glium::glutin::platform::unix::WindowExtUnix;
        |
    
    error[E0599]: no method named `raw_handle` found for struct `std::cell::Ref<'_, impl Deref<Target = glium::glutin::ContextWrapper<glium::glutin::PossiblyCurrent, glium::glutin::window::Window>>>` in the current scope
       --> app/src/gl.rs:438:78
        |
    438 |                 if let RawHandle::Glx(glx) = unsafe { self.glium.gl_window().raw_handle() } {
        |                                                                              ^^^^^^^^^^ method not found in `std::cell::Ref<'_, impl Deref<Target = glium::glutin::ContextWrapper<glium::glutin::PossiblyCurrent, glium::glutin::window::Window>>>`
        |
        = help: items from traits can only be used if the trait is in scope
    help: the following trait is implemented but not in scope; perhaps add a `use` for it:
        |
    1   | use glium::glutin::platform::ContextTraitExt;
        |
    
    warning: unused import: `WindowExtUnix`
     --> app/src/gl.rs:3:23
      |
    3 |     unix::{RawHandle, WindowExtUnix},
      |                       ^^^^^^^^^^^^^
      |
      = note: `#[warn(unused_imports)]` on by default
    
    warning: unused import: `ContextTraitExt`
     --> app/src/gl.rs:4:5
      |
    4 |     ContextTraitExt,
      |     ^^^^^^^^^^^^^^^
    
    
    Some errors have detailed explanations: E0308, E0407, E0599.
    For more information about an error, try `rustc --explain E0308`.
    

    Hope you can help

    opened by Da-Boom 4
  • picom dbus service is labelled differently

    picom dbus service is labelled differently

    picom is labelling its X display as _0_0 in dbus - this softwere however is searching for the string _0.0

    i was able to fix this by adding another .replace('.', "_") on the end of line.

    here is a diff patch of what ive done:

    dbus_name_fix.patch.zip

    opened by Da-Boom 3
  • Fixed Picom DBus X Display Naming Discrepancy

    Fixed Picom DBus X Display Naming Discrepancy

    solves issue #5

    Picom in the latest builds seems to be naming its X Display _0_0 due to dbus service naming conventions

    Original code searched for _0.0 which is invalid for dbus conventions Added a replace() to replace the period with another underscore (_)

    opened by Da-Boom 1
  • Can't build after xrdesktop, gulkan, gxr update to 0.16 on AUR

    Can't build after xrdesktop, gulkan, gxr update to 0.16 on AUR

    xrdesktop-git, gxr-git and gulkan-git were all updated to 0.16 recently on the AUR.

    The build binary I was using failed because it couldn't find a .so file on my system any more (think it was libxrdesktop-0.16.so, but I deleted the binary so I can't check again).

    Trying to compile with cargo build --release gives this output:

        Skipping git submodule `https://github.com/gtk-rs/gir` due to update strategy in .gitmodules
        Skipping git submodule `https://github.com/gtk-rs/gir-files` due to update strategy in .gitmodules
        Skipping git submodule `https://github.com/gtk-rs/gir` due to update strategy in .gitmodules
        Skipping git submodule `https://github.com/gtk-rs/gir-files` due to update strategy in .gitmodules
       Compiling picom-xrdesktop-companion v0.1.0 (/home/theo/git/picom-xrdesktop-companion/app)
       Compiling gxr-sys v0.15.0 (/home/theo/git/picom-xrdesktop-companion/gxr/sys)
       Compiling gulkan-sys v0.15.0 (/home/theo/git/picom-xrdesktop-companion/gulkan/sys)
       Compiling xrd-sys v0.15.0 (/home/theo/git/picom-xrdesktop-companion/xrd/sys)
       Compiling gobject-sys v0.17.0 (https://github.com/gtk-rs/gtk-rs-core#8f989cc2)
       Compiling cairo-sys-rs v0.17.0 (https://github.com/gtk-rs/gtk-rs-core#8f989cc2)
       Compiling graphene-sys v0.17.0 (https://github.com/gtk-rs/gtk-rs-core#8f989cc2)
    The following warnings were emitted during compilation:
    
    warning: `"pkg-config" "--libs" "--cflags" "gulkan-0.15" "gulkan-0.15 >= 0.15"` did not exit successfully: exit status: 1
    
    error: failed to run custom build command for `gulkan-sys v0.15.0 (/home/theo/git/picom-xrdesktop-companion/gulkan/sys)`
    
    Caused by:
      process didn't exit successfully: `/home/theo/git/picom-xrdesktop-companion/target/release/build/gulkan-sys-76430b28aad475cc/build-script-build` (exit status: 1)
      --- stdout
      cargo:rerun-if-env-changed=GULKAN_0.15_NO_PKG_CONFIG
      cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-unknown-linux-gnu
      cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_unknown_linux_gnu
      cargo:rerun-if-env-changed=HOST_PKG_CONFIG
      cargo:rerun-if-env-changed=PKG_CONFIG
      cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-unknown-linux-gnu
      cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_unknown_linux_gnu
      cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
      cargo:rerun-if-env-changed=PKG_CONFIG_PATH
      cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-unknown-linux-gnu
      cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_unknown_linux_gnu
      cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
      cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
      cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-unknown-linux-gnu
      cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_unknown_linux_gnu
      cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
      cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
      cargo:warning=`"pkg-config" "--libs" "--cflags" "gulkan-0.15" "gulkan-0.15 >= 0.15"` did not exit successfully: exit status: 1
      error: could not find system library 'gulkan-0.15' required by the 'gulkan-sys' crate
    
      --- stderr
      Package gulkan-0.15 was not found in the pkg-config search path.
      Perhaps you should add the directory containing `gulkan-0.15.pc'
      to the PKG_CONFIG_PATH environment variable
      Package 'gulkan-0.15', required by 'virtual:world', not found
      Package 'gulkan-0.15', required by 'virtual:world', not found
    
    warning: build failed, waiting for other jobs to finish...
    The following warnings were emitted during compilation:
    
    warning: `"pkg-config" "--libs" "--cflags" "gxr-0.15" "gxr-0.15 >= 0.15"` did not exit successfully: exit status: 1
    
    error: failed to run custom build command for `gxr-sys v0.15.0 (/home/theo/git/picom-xrdesktop-companion/gxr/sys)`
    
    Caused by:
      process didn't exit successfully: `/home/theo/git/picom-xrdesktop-companion/target/release/build/gxr-sys-febd531d06147524/build-script-build` (exit status: 1)
      --- stdout
      cargo:rerun-if-env-changed=GXR_0.15_NO_PKG_CONFIG
      cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-unknown-linux-gnu
      cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_unknown_linux_gnu
      cargo:rerun-if-env-changed=HOST_PKG_CONFIG
      cargo:rerun-if-env-changed=PKG_CONFIG
      cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-unknown-linux-gnu
      cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_unknown_linux_gnu
      cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
      cargo:rerun-if-env-changed=PKG_CONFIG_PATH
      cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-unknown-linux-gnu
      cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_unknown_linux_gnu
      cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
      cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
      cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-unknown-linux-gnu
      cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_unknown_linux_gnu
      cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
      cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
      cargo:warning=`"pkg-config" "--libs" "--cflags" "gxr-0.15" "gxr-0.15 >= 0.15"` did not exit successfully: exit status: 1
      error: could not find system library 'gxr-0.15' required by the 'gxr-sys' crate
    
      --- stderr
      Package gxr-0.15 was not found in the pkg-config search path.
      Perhaps you should add the directory containing `gxr-0.15.pc'
      to the PKG_CONFIG_PATH environment variable
      Package 'gxr-0.15', required by 'virtual:world', not found
      Package 'gxr-0.15', required by 'virtual:world', not found
    
    The following warnings were emitted during compilation:
    
    warning: `"pkg-config" "--libs" "--cflags" "xrdesktop-0.15" "xrdesktop-0.15 >= 0.15"` did not exit successfully: exit status: 1
    
    error: failed to run custom build command for `xrd-sys v0.15.0 (/home/theo/git/picom-xrdesktop-companion/xrd/sys)`
    
    Caused by:
      process didn't exit successfully: `/home/theo/git/picom-xrdesktop-companion/target/release/build/xrd-sys-eef7c4941780ecae/build-script-build` (exit status: 1)
      --- stdout
      cargo:rerun-if-env-changed=XRDESKTOP_0.15_NO_PKG_CONFIG
      cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-unknown-linux-gnu
      cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_unknown_linux_gnu
      cargo:rerun-if-env-changed=HOST_PKG_CONFIG
      cargo:rerun-if-env-changed=PKG_CONFIG
      cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-unknown-linux-gnu
      cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_unknown_linux_gnu
      cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
      cargo:rerun-if-env-changed=PKG_CONFIG_PATH
      cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-unknown-linux-gnu
      cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_unknown_linux_gnu
      cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
      cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
      cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-unknown-linux-gnu
      cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_unknown_linux_gnu
      cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
      cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
      cargo:warning=`"pkg-config" "--libs" "--cflags" "xrdesktop-0.15" "xrdesktop-0.15 >= 0.15"` did not exit successfully: exit status: 1
      error: could not find system library 'xrdesktop-0.15' required by the 'xrd-sys' crate
    
      --- stderr
      Package xrdesktop-0.15 was not found in the pkg-config search path.
      Perhaps you should add the directory containing `xrdesktop-0.15.pc'
      to the PKG_CONFIG_PATH environment variable
      Package 'xrdesktop-0.15', required by 'virtual:world', not found
      Package 'xrdesktop-0.15', required by 'virtual:world', not found
    

    Not sure if there is a workaround to build the app against the new versions.

    opened by duckbytes 11
  • No windows appear in xrdesktop in LXDE

    No windows appear in xrdesktop in LXDE

    When launching SteamVR and then ./target/release/picom-xrdesktop-companion, no windows appear. Laser dots exist and the menu can be opened and interacted with, but nothing happens when any of the buttons are pressed other than them being indicated as being pressed and sometimes changing icons. My log, after opening and closing the menu a bunch of times and trying to see if the buttons do anything, is as follows:

     % ./target/release/picom-xrdesktop-companion
    ClientMode::Overlay
    Load manifest path /home/happysmash27/.cache/xrdesktop.openvr/actions.json
    Added controller for origin Right Hand Vive Controller Raw for action /actions/wm/in/hand_pose
    Added controller for origin Left Hand Vive Controller Raw for action /actions/wm/in/hand_pose
    Initializing buttons!
    Destroying buttons!
    Initializing buttons!
    Destroying buttons!
    Initializing buttons!
    Destroying buttons!
    Initializing buttons!
    Destroying buttons!
    Initializing buttons!
    Destroying buttons!
    Initializing buttons!
    Window 0 does not exist!
    Window 0 does not exist!
    Destroying buttons!
    Initializing buttons!
    Destroying buttons!
    Initializing buttons!
    Destroying buttons!
    Initializing buttons!
    Destroying buttons!
    Initializing buttons!
    Window 0 does not exist!
    Destroying buttons!
    Initializing buttons!
    Destroying buttons!
    Initializing buttons!
    Destroying buttons!
    Initializing buttons!
    Destroying buttons!
    Initializing buttons!
    Destroying buttons!
    ^C
    

    I believe this is a bug but am not quite sure. Maybe I am just doing something wrong and need to do something to make the windows appear. Launching a new Alacritty does not appear to make them appear in xrdesktop. In the process of debugging I also opened up an instance of Firefox which did not appear either, as well as xrd-settings.

    I am using LXDE and have Picom as the first auto-launch program in ~/.config/lxsession/LXDE/autostart, as: @picom --dbus -b

    Running: dpy=$(echo -n "$DISPLAY" | tr -c '[:alnum:]' _)

    And then:

    service="com.github.chjj.compton.${dpy}"
    interface='com.github.chjj.compton'
    object='/com/github/chjj/compton'
    type_win='uint32'
    type_enum='uint32'
    

    And then: dbus-send --print-reply --dest="$service" "$object" "${interface}.list_win"

    Correctly lists an array of windows as uint32.

    So it looks like everything is working theoretically, yet, no windows actually appear.

    opened by happysmash27 3
Owner
yshui
Slave of their creations
yshui
svgcleaner could help you to clean up your SVG files from the unnecessary data.

svgcleaner svgcleaner helps you clean up your SVG files, keeping them free from unnecessary data. Table of Contents Purpose Goals Alternatives Charts

Evgeniy Reizner 1.5k Jan 9, 2023
Level up your shader game with the GPU + Rust advantage!

Gravy (WIP) Ya know, my momma always said everything's better with Gravy... Gravy is a shader programming framework and toolkit built on the union of

Dr. Rubisco 8 Nov 7, 2023
Use Thunk to build your Rust program that runs on old Windows platforms, support Windows XP and more!

Use Thunk to build your Rust program that runs on old platforms. Thunk uses VC-LTL5 and YY-Thunks to build programs that support old platforms. So, ho

null 6 May 21, 2023
A terminal-based companion program for ComfyUI.

Yara Yara is a companion tool for ComfyUI, based in the terminal. It can: Pause queue generations by saving/loading them to files Cancel queued genera

null 3 Jul 27, 2023
Tool that mirrors questions and resolutions from other forecasting platforms to Manifold.

Tool that mirrors questions and resolutions from other forecasting platforms to Manifold. Managram commands People can interact with the bot by sendin

Joris Kerkhoff 3 Nov 7, 2023
A CLI companion tool for paste.misterio.me, allowing you to easily upload and manage your pastes

This is a CLI companion tool for paste.misterio.me, allowing you to easily upload and manage your pastes, as well as download any pastes you want.

Gabriel Fontes 1 Jan 26, 2022
Crabzilla provides a simple interface for running JavaScript modules alongside Rust code.

Crabzilla Crabzilla provides a simple interface for running JavaScript modules alongside Rust code. Example use crabzilla::*; use std::io::stdin; #[i

Andy 14 Feb 19, 2022
reth-indexer reads directly from the reth db and indexes the data into a postgres database all decoded with a simple config file and no extra setup alongside exposing a API ready to query the data.

reth-indexer reth-indexer reads directly from the reth db and indexes the data into a postgres database all decoded with a simple config file and no e

Josh Stevens 306 Jul 12, 2023
A simple space shooter game. Runs in the terminal using characters-based UI. Fully written in Rust, using the "ruscii" library.

Thrust - a terminal shooter game Originally created as a project for the "Missing Semester" course at JKU Linz (338.006). The game is entirely written

Mathias Wöß 3 Jan 16, 2023
A companion repository for my Rust Talk.

Building a microservice in rust This project is a companion to my talk at ConFoo about building a rust project. You should checkout a fully fleshed ou

Vagmi 4 Feb 27, 2023
Use Git installed in Bash on Windows/Windows Subsystem for Linux (WSL) from Windows and Visual Studio Code (VSCode)

WSLGit This project provides a small executable that forwards all arguments to git running inside Bash on Windows/Windows Subsystem for Linux (WSL). T

A. R. S. 1.1k Jan 3, 2023
That program use on platform windows. And if you write any text on uncorrect keyboard layout, that program for that.

?? This program is designed to translate text into the correct layout when typing is incorrect. ?? Example ghbdtn -> привет Just (by default) pressing

Gest Se 5 Jan 26, 2023
A pure, low-level tensor program representation enabling tensor program optimization via program rewriting

Glenside is a pure, low-level tensor program representation which enables tensor program optimization via program rewriting, using rewriting frameworks such as the egg equality saturation library.

Gus Smith 45 Dec 28, 2022
Distrod is a meta-distro for WSL 2 which runs Systemd as init process. You can run Ubuntu, Arch, and et.c with systemd in a minute. Distrod also has built-in auto-start feature on Windows startup and port forwarding abiltiy.

Distrod - WSL2 Distros with Systemd! Distrod is a systemd-based meta-distro for WSL2 that allows you to install Ubuntu, Arch Linux, Gentoo and many ot

Takaya Saeki 1.6k Jan 9, 2023
A tiling window manager for Windows 10 based on binary space partitioning

yatta BSP Tiling Window Manager for Windows 10 Getting Started This project is still heavily under development and there are no prebuilt binaries avai

Jade 143 Nov 12, 2022
Pure Rust Fault Proof Program that runs the rollup state-transition to verify an L2 output from L1 inputs.

palmtop palmtop is a fault proof program that runs the rollup state transition to verify an L2 output from L1 inputs. The verifiable L2 output can the

Anton Systems 5 Sep 26, 2023
osu-link is a program which links osu!stable beatmaps to osu!lazer's new store format, saving you disk space.

osu-link is a program which links osu!stable beatmaps to osu!lazer's new store format, saving you disk space.

LavaDesu 2 Nov 8, 2021
A program written in Rust, that allows the user to find the current location of the International Space Station and see it on a map.

ISS Location ViewFinder A program written in Rust, that allows the user to find the current location of the International Space Station and see it on

Suvaditya Mukherjee 2 Nov 8, 2021
A tiny program that locates and extracts public save files from Windows to your local directory!

Save Game Extractor | Download Save Game Extractor is a tool that automatically locates and copies save files for Windows games in public directories.

popcar2 6 Dec 23, 2021
MyCitadel Wallet app for Linux, Windows & MacOS desktop made with GTK+

MyCitadel Desktop Bitcoin, Lightning and RGB wallet MyCitadel is a wallet for bitcoin, digital assets and bitcoin finance (#BiFi) smart contracts. It

My Citadel 88 Jan 2, 2023