Skip to content

Releases: std-microblock/breeze-shell

0.1.32

13 Dec 06:20

Choose a tag to compare

✨ Features

  • (ui) Reset font cache when launching with Shift key held
  • (ui) Update Breeze UI dependency
  • (config) Hide settings button (closes #290)
  • (js) Implement flex-shrink in JavaScript and fix layout issues
  • (js) Catch any error occurring in the JavaScript thread
  • (ui) Update Breeze UI to resolve layout problems
  • (general) Add left_click script for automated mouse clicking and logging
  • (ui) Update Breeze UI and enhance performance
  • (js) QuickJS sanitizer implementation
  • (build) Upgrade QuickJS and add ASAN (AddressSanitizer) build target
  • (js) Improve synchronization mechanism

🐛 Bug Fixes

  • (general) Occasional crash in JS_RunGC due to synchronization issues (fix #253, fix #288, fix #280, fix #237, fix #168)

📝 Documentation

  • (general) Update preview image

♻️ Code Refactoring

  • (js) Move QuickJS into source code and fix related bug
  • (js) Use atomic operations to notify JavaScript readiness

🚀 Continuous Integration

  • (general) Fix release upload workflow

🧹 Chores

  • (general) Disable debugging features in QuickJS

✨ 功能

  • (ui) 按住 Shift 键启动时重置字体缓存
  • (ui) 更新 Breeze UI 依赖
  • (config) 支持隐藏设置按钮
  • (js) 在 JavaScript 中实现 flex-shrink 并修复布局问题
  • (js) 捕获 JavaScript 线程中发生的任何错误
  • (ui) 更新 Breeze UI 以修复布局问题
  • (general) 添加 left_click 脚本用于自动化鼠标点击和日志记录
  • (ui) 更新 Breeze UI 并提升性能
  • (build) 升级 QuickJS 并添加 ASAN 构建目标
  • (js) 改进同步机制

🐛 错误修复

  • (general) 修复因同步问题导致 JS_RunGC 偶尔崩溃的问题

📝 文档

  • (general) 更新预览图片

♻️ 代码重构

  • (js) 将 QuickJS 移至源代码中并修复相关错误
  • (js) 使用原子操作来通知 JavaScript 就绪状态

🚀 持续集成

  • (general) 修复发布上传流程

🧹 维护

  • (general) 禁用 QuickJS 的调试功能

0.1.31

02 Nov 07:08

Choose a tag to compare

中文

✨ 功能

  • general: 在上下文菜单中按下 Shift 键时,刷新字体缓存
  • general: 新配置面板
  • general: 优化枚举处理并更新 breeze-ui 包配置
  • general: 支持 360FileBrowser
  • general: 设置渲染线程名称,更新 breeze-ui
  • general: 实现 breeze-taskbar (#271)
  • js: 实现屏幕侧边按钮
  • js: 向 menu_controller 添加 get_widget 方法
  • js: 为 breeze_ui::window::create_ex 添加 on_close 支持
  • js: 实现 breeze.set_can_reload_js
  • js: 实现 max_heightenable_scrollingenable_child_clippingcrop_overflow
  • js: flex grow, text max width
  • js: 在循环任务中执行 js 事件回调
  • js: 禁用最大堆栈大小检查
  • js: 实现 on_mouse_up 回调
  • js: 将 flex::spacer 绑定到 react
  • js: 将 alignItems/justifyContent/gap 绑定到 react
  • js: 添加 ctx.context.window_info.class_name #275
  • menu: 当通过 js 中的 show_at 显示时不再运行 js listener
  • menu: 向 menu_controller 添加 show_at 和 show_at_cursor 方法

🐛 错误修复

  • general: 修复有时除背景外无任何内容可见的问题
  • general: breeze_ui::window::create_ex 在浅色模式下现在会创建浅色窗口
  • general: 修复 insertBefore 逻辑以在渲染器中正确定位子元素
  • general: 修复上下文菜单 block_js_reload
  • general: 将 block_js_reload 从 atomic_bool 更改为 atomic_int 以便更好地控制
  • general: 不要在 widget 构造函数中访问 menu_render
  • general: 添加 #include
  • general: 构建修复
  • blook: 将 zasm 依赖版本降级至 2024.05.14
  • build: 使用日期而非提交哈希来指定版本
  • config: 确保只存在一个配置窗口
  • config: 更新 SVG_CONFIG 以基于主题使用动态填充颜色
  • inject: 移除 inject 目标的 UAC 策略设置
  • script: 改进监视文件中语法错误的错误日志记录
  • shell: 修复高分辨率屏幕中的菜单最大高度
  • shell: 上下文菜单布局

🎨 样式

  • general: 使用 clang-format 重新格式化所有代码

♻️ 代码重构

  • general: 将滚动实现移至 ui::flex_widget
  • general: 使用 children 而非 item_widgets 来存储 menu_widget 的项
  • general: breeze-ui 和 js 的线程逻辑
  • general: 移除不必要的空值检查
  • general: 移除重复的 \
  • menu_widget: 分离 scrollable_widget 用于处理滚动

📦 构建系统

  • general: 移除 lockfile 并手动锁定版本
  • CI: 使用最新 xmake

🧹 杂项

  • general: 添加 nushell 重建脚本并使 ps1 脚本兼容旧版 pwsh

English

✨ Features

  • general: Refresh font cache when Shift key is pressed in the context menu
  • general: New configuration panel
  • general: Optimized enumeration handling and updated breeze-ui package configuration
  • general: Support for 360FileBrowser
  • general: Set rendering thread name, updated breeze-ui
  • general: Implement breeze-taskbar (#271)
  • js: Implement screen side buttons
  • js: Added get_widget method to menu_controller
  • js: Added on_close support for breeze_ui::window::create_ex
  • js: Implement breeze.set_can_reload_js
  • js: Implement max_height, enable_scrolling, enable_child_clipping, crop_overflow
  • js: flex grow, text max width
  • js: Execute js event callbacks in loop tasks
  • js: Disable maximum stack size check
  • js: Implement on_mouse_up callback
  • js: Bind flex::spacer to react
  • js: Bind alignItems/justifyContent/gap to react
  • js: Added ctx.context.window_info.class_name #275
  • menu: No longer run js listener when shown via show_at in js
  • menu: Added show_at and show_at_cursor methods to menu_controller

🐛 Bug Fixes

  • general: Fixed issue where sometimes nothing was visible except the background
  • general: breeze_ui::window::create_ex now creates light mode windows in light mode
  • general: Fixed insertBefore logic to correctly position child elements in the renderer
  • general: Fixed context menu block_js_reload
  • general: Changed block_js_reload from atomic_bool to atomic_int for better control
  • general: Do not access menu_render in widget constructor
  • general: Added #include
  • general: Build fixes
  • blook: Downgraded zasm dependency version to 2024.05.14
  • build: Use date instead of commit hash for version specification
  • config: Ensure only one configuration window exists
  • config: Updated SVG_CONFIG to use dynamic fill color based on theme
  • inject: Removed UAC policy settings for inject targets
  • script: Improved error logging for syntax errors in watched files
  • shell: Fixed menu max height in high-resolution screens
  • shell: Context menu layout

🎨 Styles

  • general: Reformatted all code using clang-format

♻️ Code Refactoring

  • general: Moved scroll implementation to ui::flex_widget
  • general: Use children instead of item_widgets to store menu_widget items
  • general: Thread logic for breeze-ui and js
  • general: Removed unnecessary null checks
  • general: Removed duplicate \
  • menu_widget: Separated scrollable_widget for handling scrolling

📦 Build System

  • general: Removed lockfile and manually locked versions
  • CI: Use latest xmake

🧹 Miscellaneous

  • general: Added nushell rebuild script and made ps1 script compatible with older pwsh

0.1.30

28 Aug 00:24
6b6f90b

Choose a tag to compare

中文

  • fix(shell): 避免激活窗口 (#254)

English

  • fix(shell): prevent activating the window (#254)

0.1.29

28 Aug 00:23

Choose a tag to compare

中文

  • fix(shell): 避免激活窗口 (#254)

English

  • fix(shell): prevent activating the window (#254)

0.1.28

29 Jun 17:26
c45595c

Choose a tag to compare

中文

  • fix(shell): 在脚本新增的菜单超过长度限制时支持滚动
  • build(shell): 新增 yalantinglibs
  • fix(shell): create_detached 并未绑定任何菜单
  • feat(shell): 支持基础键盘操作(上下左右,回车)
  • feat(shell): 支持热键 (#206 #139 #113 #107 #20)
  • feat(shell): 极不完善的 OneCommander 支持
  • refactor(shell): 不创建占用整个屏幕的窗口以避免全屏优化和与 PixPin 冲突,与部分 RainMeter 插件冲突等问题 (#199 #172)
  • fix(shell): 检查是否可以成功获取到 ShellWindows 以避免崩溃

(0.1.27 忘记改版本号了,重发一版…)

English

  • fix(shell): Added support for scrolling when newly added menu items exceed the height limit
  • build(shell): Added yalantinglibs
  • fix(shell): create_detached was not bound to any menu
  • feat(shell): Added basic keyboard navigation support (up/down/left/right, enter)
  • feat(shell): Added hotkey support (#206 #139 #113 #107 #20)
  • feat(shell): Highly experimental OneCommander support
  • refactor(shell): Stopped creating full-screen windows to avoid conflicts with full-screen optimizations, PixPin, and some RainMeter plugins (#199 #172)
  • fix(shell): Added checks to ensure successful retrieval of ShellWindows to prevent crashes

0.1.26

14 Jun 10:20

Choose a tag to compare

上一版因为上游 break,CI 挂掉了,重发一下

中文

  • feat(injector): 不再在注入前重启资源管理器
  • fix(ui): 亚克力背景大小与组件大小不同步
  • feat(bindgen, js, qjspp): 支持嵌套类型,非限定名查找,继承,tuple
  • feat(js): 自定义组件
  • fix(shell): 修复某些系统版本上的不优先弹出 Breeze 菜单的问题 (#196)
  • fix(js): 在 setTimeout callback 内 setTimeout 导致崩溃
  • refactor(bindgen): 使用 clang 提供的 comment ast 来生成注释
  • refactor(bindgen): 将 JavaScript 运行时,bindgen 分别移动至单独的项目( https://github.com/breeze-shell/breeze-js-bindgen / https://github.com/breeze-shell/breeze-js
  • feat(shell): 更新 resid 查找方式,支持从菜单类型的资源中查找 resid

English

  • feat(injector): No longer restarts the resource manager before injection
  • fix(ui): Acrylic background size not syncing with component size
  • feat(bindgen, js, qjspp): Support for nested types, unqualified name lookup, inheritance, and tuples
  • feat(js): Custom components
  • fix(shell): Fixed issue where the Breeze menu did not prioritize popping up on certain system versions (#196)
  • fix(js): Crash caused by calling setTimeout inside a setTimeout callback
  • refactor(bindgen): Use Clang's comment AST to generate documentation
  • refactor(bindgen): Move the JavaScript runtime and bindgen to separate projects (https://github.com/breeze-shell/breeze-js-bindgen / https://github.com/breeze-shell/breeze-js)
  • feat(shell): Updated RESID lookup method to support finding RESID from menu-type resources

0.1.23

30 May 20:28

Choose a tag to compare

中文

  • feat(shell): 改用cpptrace处理异常
  • feat(shell): 恢复旧版Win11菜单补丁方法(使用try catch)(#196)
  • feat(injector): 若崩溃3次则停止注入
  • feat(injector): 类WinUI3风格按钮
  • feat(shell): 支持自绘边框与阴影
  • refactor(ui): 优化 UI 框架代码

English

  • feat(shell): use cpptrace for exception handler instead
  • feat(shell): restore old win11 menu patch method with try catch (#196)
  • feat(injector): stop injecting if crashed 3 times
  • feat(injector): winui3-like buttons
  • feat(shell): self drawn border & shadow

0.1.22

29 Apr 13:59

Choose a tag to compare

  • fix(shell): fix crash
  • 修复某处崩溃

请尽快更新到此版本!

Please update to this version ASAP!

若已经出现崩溃,请 Ctrl+Shift+Esc 调出任务管理器,杀死 breeze.exe 进程,然后使用任务管理器的 “运行新任务” 运行 explorer.exe。在此之后,下载此版本并替换 shell.dll

If a crash has already occurred, press Ctrl+Shift+Esc to bring up the Task Manager, kill the breeze.exe process, and then use the "Run new task" option in the Task Manager to run explorer.exe. After that, download this version and replace shell.dll.

突然被 Windows 更新创烂了 (┬┬﹏┬┬)
Got wrecked by a Windows update out of nowhere (┬┬﹏┬┬)

0.1.21

26 Apr 06:18

Choose a tag to compare

English

  • feat(shell): make experimental ownerdraw support optional (#190 #187)
  • fix(shell): create config dir automatically (#170)
  • fix(shell): improve menu construction performance (#153)
  • feat(js): notification apis
  • fix(shell): reinstall window proc hook
  • fix(shell): improve touchscreen support
  • feat(shell): scrollbar
  • fix(shell): submenu location with scroll
  • refactor(js): makeBreezeConfigMenu

中文

  • feat(shell):将实验性的自主绘制支持改为可选功能 (#190 #187)
  • fix(shell):自动创建配置目录 (#170) ,修复没有 Breeze 配置菜单的问题
  • fix(shell):优化菜单构建性能 (#153)
  • feat(js):通知相关API
  • fix(shell):重新安装窗口过程钩子
  • fix(shell):增强触屏支持
  • feat(shell):滚动菜单实现滚动条
  • fix(shell):带滚动功能的子菜单位置修正
  • refactor(js):提取出 makeBreezeConfigMenu

0.1.20

20 Apr 09:50
81c0419

Choose a tag to compare

中文

  • feat(js): 新增 is_key_down 及注册相关API
  • fix(shell): 为日志记录器添加互斥锁
  • fix(shell): 搜索时检查是否存在活动shell视图 (部分解决 #170)
  • fix(shell): Win11菜单补丁导致隐藏/扩展菜单异常显示问题 (#173)
  • feat(ui): 实验性触屏支持

English

  • feat(js): add is_key_down and register apis
  • fix(shell): add mutex to logger
  • fix(shell): check if has active shell view when searching (partially #170)
  • fix(js): also enable clear rubbish bin by name
  • fix(shell): win11 menu patch causes the hidden/extended menu to show up(#173)
  • feat(ui): experimental touchscreen support