Rust implementation for Wlroots (Sway, Wayfire, Hikari, River, etc.) of Gnome Screenshot and Idle DBUS Server, which Upwork uses to capture the screen as proof of work.

Overview

πŸš€ upwork-wlroots-bridge πŸš€

Rust Implementation for Wlroots (Sway, Wayfire, Hikari, River, etc.) of Gnome Screenshot and Idle DBUS Server (with extra features), which Upwork uses to capture the screen as proof of work.

This work was inspired by the python implementation of the Gnome Screenshot DBUS Server made by MarSoft, which can be found here.

⏳ Quick Start

this section will cover the minimum amount of information to get you up and running.

πŸ’» Installation

First, you must install the required packages from your distribution package manager. These packages are:

  • Rust => to use cargo.
  • Grim => screenshot tool used.
  • Swayidle => to calculate idle time.
Arch Linux
sudo pacman -S swayidle grim rust
Debian, Ubuntu & Derivatives
sudo apt install swayidle grim rust-all
Fedora & Derivatives
sudo dnf install swayidle grim rust

Cargo install

Right now, the more straightforward method of installation is via cargo with the command:

cargo install upwork-wlroots-bridge

✏️ Usage

You can use upwork-wlroots-bridge with no options at all and launch it as is. In this mode, you will receive no feedback, but that's it. You can now use Upwork desktop client as normal once you have launched the server.

upwork-wlroots-bridge

Besides that, upwork-wlroots-bridge comes with some valuable flags like -w, which will present a warning dialog and sound through zenity, and pw-play when a screenshot is incoming (so you can refocus your work and not be surprised by those annoying "surprise" screenshots).

upwork-wlroots-bridge -wD   # The D stands for Debug, which will present some more info

When you are done choosing your ideal flags, then you can daemonize the server in your preferred way (tmux, systemd services, nohup).

You might also like...
Beanstalk is a simple, fast work queue.

beanstalkd Simple and fast general purpose work queue.

A Rust proc-macro crate which derives functions to compile and parse back enums and structs to and from a bytecode representation

Bytecode A simple way to derive bytecode for you Enums and Structs. What is this This is a crate that provides a proc macro which will derive bytecode

πŸ“¦  Crate Protocol allows anyone to create, manage, and trade a tokenized basket of assets, which we refer to as a Crate.
πŸ“¦ Crate Protocol allows anyone to create, manage, and trade a tokenized basket of assets, which we refer to as a Crate.

πŸ“¦ Crate Protocol Crate Protocol allows anyone to create, manage, and trade a tokenized basket of assets, which we refer to as a Crate. A Crate is alw

Pbot - pan93412's extensible userbot, which is full-documented, enginnered and based on Actor model.

pbot pan93412's extensible user bot, which is full-documented, engineered and based on Actor model. Usage Run cargo run --release [--features modules

Ampseer examines reads in fastq format and identifies which multiplex PCR primer set was used to generate the SARS-CoV-2 sequencing library they are read from.

Ampseer examines reads in fastq format and identifies which multiplex PCR primer set was used to generate the SARS-CoV-2 sequencing library they are read from.

A language server implementation for the WGSL shading language

wgsl-analyzer wgsl-analyzer is a language server plugin for the WGSL Shading language. It comes with a VS Code plugin located in ./editors/code, but d

TAT agent is an agent written in Rust, which run in CVM or Lighthouse instances.

TAT agent is an agent written in Rust, which run in CVM, Lighthouse or CPM 2.0 instances. Its role is to run commands remotely without ssh login, invoked from TencentCloud Console/API. Commands include but not limited to: Shell, PowerShell, Python. TAT stands for TencentCloud Automation Tools. See more info at https://cloud.tencent.com/product/tat.

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.

Buildomat manages the provisioning of ephemeral UNIX systems on which to run software builds
Buildomat manages the provisioning of ephemeral UNIX systems on which to run software builds

B U I L D O M A T a software build labour-saving device Buildomat manages the provisioning of ephemeral UNIX systems (e.g., instances in AWS EC2) on w

Releases(0.1.3)
Owner
Daniel Moretti V.
Toss A Coin To Your Witcher ❀ | Software Developer by day, Bug Bounty Hunter by night :pirate_flag:
Daniel Moretti V.
Swayidle alternative to handle wayland idle notifications, sleep and lock events in Rust with Lua scripting based configuration language

swayidle-rs This is intended as a replacement of sway's idle management daemon. I use it as a tool to understand rust message passing and state manage

Reza Jelveh 8 Nov 27, 2023
Alternative basic focus movement for the sway and i3 window managers.

sway-overfocus Alternative basic focus movement for the sway and i3 window managers. The primary goal of this program is to create one set of keybinds

null 42 Oct 23, 2022
Shows my Spotify status on a small screen. Powered by ESP-IDF & built with 🧑 in Rust! πŸ¦€

ESP Display A small embedded project that shows what I'm listening to on Spotify by using my Spotify service. Example Notable Features ESP32-S3 board

Isaiah Gamble 3 Apr 10, 2024
Building a better screen reader for the Linux desktop, one step at a time.

Building a better screen reader for the Linux desktop, one step at a time.

Odilia 44 Dec 31, 2022
Edgelord is a library for Cloudflare Workers. You can scaffold a basic bot for discord, slack, etc.

Edge Computing + chūnibyō = Edgelord ✨ ?? Edgelord Edgelord is now working. You can contribute for it. Edgelord is a Rust library for cloudflare worke

null 23 Dec 26, 2022
twilight-interactions is a set of macros and utilities to work with Discord Interactions using twilight.

Twilight interactions twilight-interactions is a set of macros and utilities to work with Discord Interactions using twilight. Note: This crate is not

null 24 Dec 26, 2022
A range proof SNARK using Spartan

R1CS Gadgets This repository contains R1CS gadgest I have built using (a slightly modified version of) Spartan. Currently, the two gadgets included ar

Imran Khaliq 4 Sep 21, 2022
Moonshine CSS - πŸ₯ƒ High-proof atomic CSS framework

Moonshine CSS - ?? High-proof atomic CSS framework

Econify 25 Nov 25, 2022
a simple compiled language i made in rust. it uses intermediate representation (IR) instead of an abstract syntax tree (AST).

a simple compiled language i made in rust. it uses intermediate representation (IR) instead of an abstract syntax tree (AST).

null 4 Oct 3, 2022
A Discord bot for sending GeoGuessr challenge links that uses the GeoGuessr API written in rust.

GeoGuessr-bot-rs This is a simple implementation of a discord bot that send GeoGuessr-challenge links on demand. Features: Slash-commands Lightning-fa

Luukas PΓΆrtfors 6 Nov 18, 2022