Skip to content

Add Custom Buttons - #276

Open
diemonic1 wants to merge 2 commits into
SteamClientHomebrew:mainfrom
diemonic1:custom-buttons-plugin
Open

diemonic1 wants to merge 2 commits into
SteamClientHomebrew:mainfrom
diemonic1:custom-buttons-plugin

Conversation

@diemonic1

Copy link
Copy Markdown
Contributor

Custom buttons

This plugin allows you to add additional custom buttons to the Steam client, which allow you to open any websites or apps on your computer - for example https://howlongtobeat.com/?q=%GAME_NAME% or S:\Programs\Epic Games\Launcher\Engine\Binaries\Win64\EpicGamesLauncher.exe

Old pull request #123 was automatically closed due to an error, so I'm opening PR again.
Plugin repository: https://github.com/diemonic1/Custom-buttons
This plugin allows you to add customizable buttons to the Steam interface.

Fixed

  • Migrated to the starlight template (millennium.toml), TS errors 253 → 0, dependencies reduced to starlight + React types.
  • Replaced deprecated AddWindowCreateHook / findElement and DOM cloning with Hooking API patches.
  • Removed noise logs (backend and frontend).
  • Language now follows the Steam client language; plugin language option removed.
  • Removed own sleep.
  • Top buttons: fixed CSS with 12px font; "Top buttons style" section removed in favour of QuickCSS (selectors documented in README).
  • Settings rebuilt with Millennium components, IconsModule icons, description props; buttons are edited in a modal.

Not changed (and why)

  • title on top buttons and app-page buttons: icon-only buttons have no other label, so the tooltip is the only way to know what a button does.
  • Settings stay in localStorage: avoids migrating existing user data; obsolete keys are ignored.
  • Text arrow in Store menu items (if confirmed): Steam's menu item name only accepts a string.
  • Anything that turns out impossible during implementation is added here with the reason.

Task Checklist

Developer

  • My plugin complies with the plugin submission guidelines
  • I am the original author or an authorized maintainer of this plugin.
  • I have complied with all license requirements for the libraries used, including providing appropriate notices where necessary.
  • My plugin is fully open source and does not depend on any external paid services, except for widely trusted and well-known platforms. Additionally, neither I nor anyone associated with me profits from any such services.
  • Generative AI was used for most of the plugin's code.

Plugin Functionality

  • I have tested the plugin on both the Stable and Beta Steam update channels.
  • My plugin is unique, or provides additional or alternative functionality to plugins already on the store.

Backend Configuration

  • I use a standard Millennium Lua backend in my plugin.
  • I use custom binaries that or rely on other FOSS projects that aren't written directly using Millennium's Lua backend.

Community Contribution

  • I have tested and left feedback on two other plugin pull requests.
  • I have added links to those feedback comments in this PR.

In the old pull request there were answers that the plugin was being tested: #123


Testing Instructions

  • Verified by a third party on Steam Client Stable.
  • Verified by a third party on Steam Client Beta.

@github-actions github-actions Bot changed the title Custom buttons plugin Add Custom Buttons Oct 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant