This repository contains the Panorama (in-game UI) files for Harmony and a Python utility script for extracting Panorama files from code.pbin and packing modified files from the panorama/ directory into code_harmony.pbin.
Warning
In order for CS:GO to load custom code.pbin correctly, you have to use custom panorama.dll/panorama_[gl/vulkan]_client.so library which skips signature checks. If you plan using this project for Harmony, it already skips signature checking for code_harmony.pbin
Run the following command
python pbin.py unpack path/to/code.pbin- Get the Panorama code
- Unpack original
code.pbinfrom game files if you want to modify the original Panorama code. - Or use the existing Harmony Panorama files inside the
panoramafolder.
- Unpack original
- Make any acceptable changes to the panorama code.
- Run the following command:
python pbin.py packPackaged Panorama code will be output to code_harmony.pbin
Files from resources/ should go into csgo/panorama/, for example: resources/images/harmony_logo.png should be placed inside csgo/panorama/images/harmony_logo.png
Resource usage example: (Panorama XML)
<Image textureheight="32" texturewidth="-1" src="file://{resources}/images/harmony_logo.png" />Contributions to the project are welcome.
Before opening a pull request, make sure that:
- Your changes are related to Harmony Panorama code.
- The project still builds and works correctly.
- You have tested your changes where possible.
- You have described what was changed.
For larger changes, especially changes that may affect compatibility with Harmony, please explain what was changed and why.
Changes to the Panorama code should avoid breaking existing Harmony functionality.
If you are unsure about a change, feel free to open an issue before working on it.
- Panorama API - Valve Developer Community
- Panorama CSS Properties - Valve Developer Community
- PKZip File Structure - Florian Buchholz