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...

A lightweight Apple Music client for Windows, built with MusicKit JS, Edge WebView2 and React.

A lightweight Apple Music client for Windows, built with MusicKit JS, Edge WebView2 and React.

Lito Music English | 中文 Lito (/laɪto/) Music is a lightweight Apple Music client for Windows, built with MusicKit JS, Edge WebView2 and React. System

Dec 30, 2022

HTML CSS & React - Client side dynamic e-commerce website (stripe integrated)

HTML CSS & React - Client side dynamic e-commerce website (stripe integrated)

Furniture E-Commerce Project Description React front-end full operating dynamic and responsive E-Commerce shop including payment connection (stripe) B

Dec 27, 2022

A basic React/NextJS project showing how to use the Flow Client Library (FCL)

A basic React/NextJS project showing how to use the Flow Client Library (FCL)

How to use the Flow Client Library (FCL) with SvelteKit Everything you need to build a SvelteKit project with the Flow Client Library (FCL). For a Sve

Sep 24, 2022

Mirrors the functionality of Apollo client's useQuery hook, but with a "query" being any async function rather than GQL statement.

useAsyncQuery Mirrors the functionality of Apollo client's useQuery hook, but with a "query" being any async function rather than GQL statement. Usage

Nov 16, 2022

This repo is for educational and demonstration purposes only, this project is to demonstrate usage of apollo/client and github API and firebase.

This repo is for educational and demonstration purposes only, this project is to demonstrate usage of apollo/client and github API and firebase.

Gissues Gissues is a web application that allows you to search for issues in GitHub. It is built for new developers who want to learn more about GitHu

Oct 1, 2022

You can use this CLI Tool to clean your iOS and Android projects and keep them updated.

You can use this CLI Tool to clean your iOS and Android projects and keep them updated.

Mobile App Cleaner You can use this CLI Tool to clean your iOS and Android projects and keep them updated. This tool automatizes these items below; Cl

Mar 19, 2022

A simple tool that tells you what food is safe for your dog.

A simple tool that tells you what food is safe for your dog.

Can My Dog Eat A simple tool that tells you what food is safe for your dog. View website Features Can My Dog Eat is a simple website where you can loo

Dec 11, 2022

An interactive CLI automation tool 🛠️ for creating react.js and next.js projects most fast and efficiently. ⚛️

An interactive CLI automation tool 🛠️ for creating react.js and next.js projects most fast and efficiently. ⚛️

An interactive CLI automation tool 🛠️ for creating react.js and next.js projects most fast and efficiently. ⚛️ About ℹ️ ReexJs CLI is an interactive

Apr 12, 2022

A small tool to help you check package duplicates in `yarn.lock`

A small tool to help you check package duplicates in `yarn.lock`

Yarn Duplicate A small tool to help you check duplicate package and package size in yarn.lock. Usage Change to your project root folder, which have a

Aug 11, 2021
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
Steam Deck Homebrew
Steam Deck Homebrew
Grid-tool - Small tool that allows you to integrate a predefined or generated grid into your front-end development environment.

Grid tool Small tool that allows you to integrate a predefined or generated grid into your front-end development environment. Tool installation includ

hmongouachon 2 Jan 4, 2022
Twitter-client - client for twitter-clone

Twitter (Client-Side Rendering) Please star this repo if you like ⭐ It's motivates me a lot! Getting Started This project was bootstrapped with Create

Ruslan Shvetsov 3 Jul 29, 2022
A set of higher-order components to turn any list into an animated, accessible and touch-friendly sortable list✌️

A set of higher-order components to turn any list into an animated, accessible and touch-friendly sortable list Examples available here: http://claude

Claudéric Demers 10.3k Jan 2, 2023
Transform SVGs into React components 🦁

Transform SVGs into React components ?? Try it out online! Watch the talk at React Europe SVGR transforms SVG into ready to use components. It is part

Greg Bergé 9.3k Jan 3, 2023
Tina is an open source editor that brings visual editing into React websites. Tina empowers developers to give their teams a contextual and intuitive editing experience without sacrificing code quality.

Tina is an open-source toolkit for building content management directly into your website. Community Forum Getting Started Checkout the tutorial to ge

Tina 8.2k Jan 1, 2023
A simple stepper provides a wizard-like workflow by dividing content into logical steps.

react-basic-stepper A simple stepper provides a wizard-like workflow by dividing content into logical steps. Install npm install --save react-basic-st

Jose Alejandro Concepción Álvarez 3 May 2, 2022
🌀 Insert Awesome Shapes into Your React Site with Ease

React Awesome Shapes ?? Insert Awesome Shapes into Your React Site with Ease. Loved the project? Please consider donating to help it improve! Consider

Ashutosh Hathidara 608 Dec 30, 2022
A web-app built with next.js that can automatically install mods into a new Minecraft or MultiMC Launcher Profile using the File System Access API

Mod Installer This is a Next.js App which automatically installs fabric mods on your PC and creates a Minecraft Launcher Profile for you. Idea & Inspi

Emma Böcker 18 Nov 27, 2022
A simple Web AI model deployment tool using JavaScript based on OpenCV.js and ONNXRuntime

WebAI.js 1. 简介 WebAI.js 是一个基于 OpenCV.js 和 ONNXRuntime 开发的一个 Web 前端 AI 模型部署工具 可通过在线体验网站 Hello WebAI.js 进行快速的体验试用 2. 特性 WebAI.js 支持 HTML script 标签引入和 no

AgentMaker 26 Nov 28, 2022
Drop-in replacements for @apollo/client's useQuery, useMutation and useSubscription hooks with reduced overhead and additional functionality.

apollo-augmented-hooks Drop-in replacements for @apollo/client's useQuery, useMutation and useSubscription hooks with reduced overhead and additional

appmotion Devs 57 Nov 18, 2022