Breeze shell
An alternative Windows context menu, and more.
[Join Discord](https://discord.gg/MgpHk8pa3d) [中文简介 →](./README_zh.md) The project is written primarily in C++, distributed under the GNU Affero General Public License v3.0 license, first published in 2024. It has gained significant community traction with 3,244 stars and 57 forks on GitHub. Key topics include: context-menu, explorer, onecommander, shell, windows.
<div align=center> <img src=./resources/icon.webp width=300 /> <h1>Breeze Shell</h1> <h5>Bring fluency & delication back to Windows</h5> <div> <img src=https://github.com/user-attachments/assets/7da2bbba-2270-496b-995e-dbb56f9049ef /> </div> </div>[!WARNING]
This project is still in active development. File a bug report if you meet any!
此项目仍在开发阶段,如果遇到问题请发送 IssueBoth English and Chinese issues are accepted
Issue 中使用中文或英文均可
Breeze is an alternative context menu for Windows 10 and Windows 11.
Fluent
Breeze is designed with animations in mind.
<div> <img height="419" alt="image" src="https://github.com/user-attachments/assets/6947fd60-c4f7-4488-9dce-0e8350031d0f" /> <img width="255" height="419" alt="image" src="https://github.com/user-attachments/assets/731b121d-c977-4244-b800-2696def619fa" /> </div>All animations are configurable and can be scaled and disabled as you want.
Extensible
Empowered by the embedded JavaScript script api, Breeze enables you to extend
the functionalities of your context menu in a few lines of code.
javascriptshell.menu_controller.add_menu_listener((e) => { e.menu.add({ type: "button", name: "Shuffle Buttons", action: () => { for (const item of menus) { item.set_position(Math.floor(menus.length * Math.random())); } }, }, 0); });
Send pull requests to this repo to add your script to the plugin market!
Configurable
Breeze shell exposed a bunch of configurations ranging from item height to background radius method. Customize them as you need.
The config menu of breeze-shell can be found as you open your Data Folder and right-click anywhere inside it.
Lightweight & Fast
Breeze uses breeze_ui, which is implemented to be a cross-platform, simple,
animation-friendly and fast ui library for modern C++, with the support of both
NanoVG and ThorVG render context. This allowed Breeze to have a delicated user
interface in ~2MiB.
Try it out!
Download and extract the zip, and Run breeze.exe.
Compatibility
| Name | ✳️ |
|---|---|
| Microsoft Explorer | ✅ |
| OneCommander | ☑️ |
<sub>✅ - Fully compatible; ☑️ - Mostly works</sub>
Building
Breeze uses xmake. You'd have to install xmake in your computer first. Then,
type xmake in the project dir and follow the instructions. Both clang-cl and
MSVC 2019+ can build this project.
Developing
After building successfully once, you can oprn the project dir in VSCode for
development. Install clangd plugin for full intellisense.
Credits
Third-party libraries
- https://github.com/std-microblock/blook
- https://github.com/quickjs-ng/quickjs
- https://github.com/ftk/quickjspp
- https://github.com/getml/reflect-cpp
- https://github.com/glfw/glfw
- https://github.com/Dav1dde/glad
- https://github.com/memononen/nanovg
- https://github.com/memononen/nanosvg
- https://github.com/freetype/freetype
- https://github.com/qlibs/reflect
Others
- @lipraty - Icon Design
- moudey/Shell - Inspiration
(All code in this rewrite is ORIGINAL and UNRELATED to moudey/Shell!)
Contributors
Showing top 11 contributors by commit count.
