Millennium is an open-source low-code modding framework to create, manage and use themes/plugins for the desktop Steam Client without any low-level internal interaction or overhead.
If you enjoy this tool, please consider starring the project ⭐
Installing Millennium is only a few steps. See this page for a more detailed guide.
For normal users, installing via the installers makes the most sense. However when wanting to either develop Millennium, or when the installers do not work, this option can be used. Check our documentation for a guide on how to do this.
-
- TypeScript (React) frontend container in Steam
- Python backend container in usermode
- Foreign function interface binding from Python to JavaScript and vice versa
- Hook modules in the Steam web browser
- Overwrite/Modify HTTP requests
- Load custom JavaScript (Native) into web browser
- Load custom StyleSheets into web browser
-
- Manage and load custom user themes into Steam
- Manage custom plugins for steam
- Maintain theme & plugin versions.
- Manage embedded Python installation
- Manage Millennium Python Developer Tools
- Custom package manager for all plugins
Take a look here, it quickly covers what files you'll need to edit in order to add your spoken language to Millennium!
Creating themes and plugins for Millennium is relatively straight foward. Our documentation goes over the basics of both, and we have examples for both in examples
Supported Platforms:
- Windows (x86/x64/ARM) NT (10 and newer)
- Linux (x86/x86_64/i686/i386)
- OSX (Support planned, WIP)
/
├─ usr/
│ ├─ lib/
│ │ ├─ millennium/
│ │ │ ├─ libMillennium.so # millennium
│ │ │ ├─ libpython-3.11.8.so # dynamically linked to millennium, allows user plugin backends to run
│ ├─ share/
│ │ ├─ assets/ # builtin plugin that provides base functionality for millennium.
│ │ ├─ shims/
├─ home/
│ ├─ $user/
│ │ ├─ .local/share
│ │ │ ├─ millennium/
│ │ │ │ ├─ .venv/
│ │ │ │ ├─ logs/
│ │ │ │ ├─ plugins/ # user plugins
│ │ ├─ .config/
│ │ │ ├─ millennium/ # config files
-
Download and install MSYS2
-
Download and install Visual Studio Build Tools
-
Download and install Visual Studio Code
-
Open the MinGW32 shell and run
cd somewhere/you/want/to/put/millennium pacman -Syu && pacman -S --needed git mingw-w64-i686-cmake base-devel mingw-w64-i686-toolchain git clone https://github.com/SteamClientHomebrew/Millennium --recursive cd Millennium ./vendor/vcpkg/bootstrap-vcpkg.sh
-
Download Millennium's python backend for Windows, and copy the files to
%MILLENNIUM_SRC_DIR%/vendor/python
-
Build Millennium
code .
In Visual Studio Code, make sure you have:
- C/C++ Extension Pack
- Prettier
Then use CTRL+SHIFT+B This will build Millennium and all of its submodules. You can then run Steam with Millennium.
Note
This guide assumes you're using Visual Studio Code to develop. If you're using an IDE like CLion or Code::Blocks, steps are probably similar but they aren't documented here yet.
If you're using just a basic code editor like emacs, vim, micro, etc. you'll need to run build commands manually.
-
Setup
In Visual Studio Code, make sure you have:
* C/C++ Extension Pack * Prettier
-
Clone and Setup Repository
cd somewhere/you/want/to/put/millennium git clone https://github.com/SteamClientHomebrew/Millennium --recursive cd Millennium ./vendor/vcpkg/bootstrap-vcpkg.sh
-
Build Millennium
Use CTRL+SHIFT+B
This will build Millennium and all of its submodules. You can then run Steam with Millennium.