A tool to inject javascript into the Steam Deck client.

Overview

Steam Deck UI Inject

A tool to inject javascript into the Steam Deck client.

 

How it works

This tool works by taking advantage of the remote debugging capabilities of the Chromium Embedded Framework. It fetches all the tabs currently loaded, connects to their debug endpoints via websocket and then evaluates javascript loaded from an external file. This way it can place and replace content on the various UI elements, without modifying any files on the steam installation. So far the only script I have created is a Mopidy client that replaces the Help tab on the Quick Menu.

Are these changes persistent ?

No. Scripts are injected once on startup directly into the browser sessions of the Steam client. If you want to revert, simply disable the devtools-inject service and reboot your Deck.

Is this safe ?

Probably ? Obviously having remote debugging enabled has its own risks, and could in some cases result in leaked steam keys and what not, but then again the -cef-enable-debugging flag by default only allows access from the device itself (not even the local network). This means the device would have to be already compromised to pose any real danger, and by then I'm sure there are bigger problems. At any rate, use at your own risk.
 

How to use

Run all these in /home/deck

git clone https://github.com/marios8543/steamdeck-ui-inject.git
cd steamdeck-ui-inject

sudo steamos-readonly disable

curl https://bootstrap.pypa.io/get-pip.py > get-pip.py
sudo python get-pip.py
sudo python -m pip install -r requirements.txt

sudo ./patch-gamescope-session.sh
sudo cp devtools-inject.service /etc/systemd/system/
sudo systemctl enable --now devtools-inject

sudo steamos-readonly enable

Create a new folder in scripts and add a file named main.js
The first line should be a commented-out JSON string with target_tab parameter and an optional enabled parameter. Preferably, put your code in a self-calling function. Check scripts/example.

You might also like...

Microsoft SQL Server client for Node.js

node-mssql Microsoft SQL Server client for Node.js Supported TDS drivers: Tedious (pure JavaScript - Windows/macOS/Linux, default) Microsoft / Contrib

Jan 4, 2023

Couchbase Node.js Client Library (Official)

Couchbase Node.js Client The Node.js SDK library allows you to connect to a Couchbase cluster from Node.js. It is a native Node.js module and uses the

Nov 13, 2022

Node.js client for the Aerospike database

Aerospike Node.js Client An Aerospike add-on module for Node.js. The client is compatible with Node.js v8.x, v10.x (LTS), v12.x (LTS), and v14.x (LTS)

Dec 30, 2022

A web client port-scanner written in GO, that supports the WASM/WASI interface for Browser WebAssembly runtime execution.

A web client port-scanner written in GO, that supports the WASM/WASI interface for Browser WebAssembly runtime execution.

WebAssembly Port Scanner Written in Go with target WASM/WASI. The WASM main function scans all the open ports in the specified range (see main.go), vi

Dec 27, 2022

Pulsar Flex is a modern Apache Pulsar client for Node.js, developed to be independent of C++.

PulsarFlex Apache Pulsar® client for Node.js Report Bug · Request Feature About the project Features Usage Contributing About PulsarFlex is a modern A

Aug 19, 2022

An open letter against Apple's new privacy-invasive client-side content scanning.

Apple Privacy Letter An open letter against Apple's new privacy-invasive client-side content scanning technology. View the letter Sign the letter This

Dec 19, 2022

Reseda - reseda-client for the reseda-vpn network

Reseda - reseda-client for the reseda-vpn network

Usage Create an App # with npx $ npx create-nextron-app my-app --example with-typescript # with yarn $ yarn create nextron-app my-app --example with-

Dec 28, 2022

Starter template for NestJS 😻 includes GraphQL with Prisma Client, Passport-JWT authentication, Swagger Api and Docker

Instructions Starter template for 😻 NestJS and Prisma. Checkout NestJS Prisma Schematics to automatically add Prisma support to your Nest application

Jan 4, 2023
Comments
  • Added requirements.txt for required python packages

    Added requirements.txt for required python packages

    Hi! I've been really looking forward to something like this, I really hope to improve on this!

    The readme was missing some instructions about disabling the read-only rootfs and installing pip / some libraries. This PR adds a requirements.txt listing those libraries and improves the install guide a little bit.

    opened by WerWolv 3
Owner
marios
marios
curl for GraphQL with autocomplete, subscriptions and GraphiQL. Also a dead-simple universal javascript GraphQL client.

graphqurl graphqurl is a curl like CLI for GraphQL. It's features include: CLI for making GraphQL queries. It also provisions queries with autocomplet

Hasura 3.2k Jan 3, 2023
Add hic et nunc data into your websites and Node.js scripts

hic et nunc API Guide Build websites and Node.js scripts with hic et nunc data hic et nunc is a decentralized NFT marketplace built on the Tezos block

Ian Petrarca 34 May 3, 2022
Zotero plugin for syncing items into a Notion database

Notero A Zotero plugin that syncs items into a Notion database when added to a specific collection. Scaffolded with generator-zotero-plugin and built

David Vanoni 991 Jan 9, 2023
The Wholesome App. A project that allows you to upload images directly to MongoDB Atlas into your collection, a faster cloud database.

The Wholesome App. A project that allows you to upload images directly to MongoDB Atlas into your collection, a faster cloud database. To upload your cute and wholesome images.

Gourav Singh Rawat 2 Jul 17, 2022
a Node.JS script to auto-import USB drives that are attached to a computer. Use it to turn your NAS into a smart photo / file importer.

File Vacuum 5000 ⚠️ ⚠️ ⚠️ ⚠️ ⚠️ ⚠️ ⚠️ ⚠️ ⚠️ ⚠️ ⚠️ ⚠️ WARNING: This script is designed to manipulate files on both an external drive and another specif

null 46 Jan 10, 2022
Converts a MSSQL Result set into a markdown table, directly to stdout

mssql-result-to-md-table Tired of formating all the results of a SQL Server query into a markdown table? Well, well, well your problems are gone! Just

Deividy Metheler 2 Feb 12, 2022
📄 Easily implement pagination into your Knex.js project.

knex-pagination Easily implement pagination into your application. Usage const knex = require('knex'); const paginate = require('knex-pagination'); co

Snoot 2 Apr 16, 2022
PostgreSQL client for node.js.

node-postgres Non-blocking PostgreSQL client for Node.js. Pure JavaScript and optional native libpq bindings. Monorepo This repo is a monorepo which c

Brian C 10.9k Jan 9, 2023
A PostgreSQL client with strict types, detailed logging and assertions.

Slonik A battle-tested PostgreSQL client with strict types, detailed logging and assertions. (The above GIF shows Slonik producing query logs. Slonik

Gajus Kuizinas 3.6k Jan 3, 2023
🚀 A robust, performance-focused and full-featured Redis client for Node.js.

A robust, performance-focused and full-featured Redis client for Node.js. Supports Redis >= 2.6.12 and (Node.js >= 6). Completely compatible with Redi

Zihua Li 11.6k Jan 8, 2023