Giter VIP home page Giter VIP logo

overlaid's Introduction

OverLaid

This is a Decky plugin for creating custom Steam Deck in-game overlays

General

This plugin allows creating custom in-game overlays using the built-in overlay manager. Quickly enable and disable overlays from the Quick Access Menu. Each overlay has a list of widgets that can be individually manipulated. Text widgets show a textbox and image widgets show a local image. Widgets can be stored anywhere, but are more convenient to access in the ~/homebrew/overlays overlay directories. A directory will be created here automatically for each overlay created in the plugin. For positioning widgets, there is both anchoring, to "anchor" the origin of a widget with respect to display percentages, and coordinate offsets to adjust the relative positioning of said widget. The color of the text and image tint can be tweaked as well as the widget background color/opacity. PNG and JPEG images are supported.

Manual Usage

Each directory in ~/homebrew/overlays that contains an overlay.json file will be treated as an overlay with the directory name used as the name of said overlay. When using image widgets,

{
    "widgets": [
        {
            "id": "5073732620140945",
            "type": "text",
            "content": "Hello World! This is a big blob of test text that will surely word wrap correctly",
            "width": 200,
            "height": 60,
            "vertical_anchor": 0.5,
            "horizontal_anchor": 0.5,
            "x_offset": -100,
            "y_offset": -30,
            "color": [1, 1, 1, 1],
            "bg_color": [1, 0, 0, 0.5]
        },
        {
            "id": "008612669137711748",
            "type": "image",
            "content": "overlay_image.png",
            "width": 300,
            "height": 300,
            "vertical_anchor": 0,
            "horizontal_anchor": 0,
            "x_offset": 50,
            "y_offset": 50,
            "color": [1, 1, 1, 1],
            "bg_color": [0, 1, 0, 0.2]
        }
    ]
}

Building

Install pnpm and run pnpm i in the repo directory. Build with: pnpm run build. Run the build.sh script for compiling the backend if on a system with Bash, otherwise compile manually. Copying the project to the SDH plugins directory ~/homebrew/plugins at this point will install it. The contents of the backend/out need to be copied to OverLaid/bin when installing. The VSCode task handles copying the project to the Deck cleanly without any unnecessary files and handles file permissions.

overlaid's People

Contributors

thelogicmaster avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

futurepr0n

overlaid's Issues

Any plans for a release?

I know I should be able to compile it myself, but I keep running into errors when trying to build the backend.

I’m very interested in trying to make a stopwatch overlay for speedrunning using this framework. You’ve done a great job!

How to compile backend?

Hi there! Trying to build off your work and test out the example you made. I am trying to build the backend but having some trouble. Can you tell me, did you ever have this error and manage to get past it?

[ 88%] Linking CXX executable OverLaid
ld: warning: directory not found for option '-L/opt/homebrew/lib'
Undefined symbols for architecture x86_64:
  "_glfwGetX11Display", referenced from:
      _main in main.cpp.o
  "_glfwGetX11Window", referenced from:
      _main in main.cpp.o
ld: symbol(s) not found for architecture x86_64

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.