github Tianyu199509/DeskBox v1.3.3
DeskBox 1.3.3

latest releases: v1.5.9, v1.5.8, v1.5.7...
3 months ago

DeskBox v1.3.3

English

Hotkey Fixes & Search Hotkey Improvements

  • Removed low-level keyboard hooks: Completely removed WH_KEYBOARD_LL hooks from both SearchHotkeyService and GlobalHotkeyService. These hooks intercepted every keystroke of the gesture key (e.g. 'D'), causing stuck keys, repeated characters, and input latency. Now uses only the standard Win32 RegisterHotKey + WM_HOTKEY mechanism.
  • RDP Alt-stuck fix: After a hotkey fires, the app immediately synthesizes key-up events for all modifier keys (Alt, Ctrl, Shift) via keybd_event. This clears the "stuck Alt" state that Remote Desktop Protocol (RDP) causes when the modifier key-up event is lost or delayed — previously, every subsequent press of the gesture key (e.g. 'D') was intercepted as Alt+D, making the key appear dead.
  • Search hotkey toggle bug fix: Fixed a bug where disabling the search hotkey in Settings had no effect — RegisterHotKey remained active because the toggle handler set the setting value before calling SetEnabled, causing SetEnabled's early-return guard to skip RefreshRegistration.
  • Search widget hotkey linkage: When the search feature widget is disabled, the search hotkey can no longer invoke the search popup. The popup toggle now checks FeatureWidgetSettings.IsEnabled before proceeding.
  • Search hotkey settings relocated: Moved the search hotkey configuration from the Search settings section (three-level nested menu) to the top-level "Shortcuts & Interaction" → "Hotkeys" page, alongside the global hotkey settings.
  • Accordion hotkey cards: Both the global hotkey and search hotkey settings are now presented as collapsible SettingsExpander cards — toggle in the header, shortcut capture/reset in the expandable body.
  • Clean exit: Hotkey services are now properly disposed during ShutdownApplicationAsync, ensuring RegisterHotKey is unregistered before the process exits.

Search Settings Polish

  • Removed redundant title: The "Search" section title in the search settings page has been removed since the breadcrumb already indicates the section name.

Image Widget Removed

  • Album/photo widget deleted: Completely removed the image gallery widget (ImageWidget) and all associated code (~3,500 lines): ImageWidgetData, ImageWidgetViewModel, ImageWidgetContent, ImageSettingsDialog, ImageManagerDialog, ImagePickerService, WallpaperHelper, ImageWidgetStore, ImageWidgetContentProvider, ImageWidgetContentAdapter, and BingWallpaperService.

Drag & Drop Enhancements

  • WeChat file drag-drop: Drag files and images directly from WeChat chat windows into grid items.
  • Browser URL drag-drop: Dragging images or file links from browsers (Chrome, Edge, Firefox) now downloads the URL and imports it automatically.
  • Folder drop support: Files dragged onto a folder item within a grid are transferred into that folder.
  • Virtual file fix: NativeDropTarget now tries TYMED_ISTREAM and TYMED_HGLOBAL separately for FileContents, fixing silent failures on browser virtual file drops.

Stack Group Management

  • Rename stacks: Right-click a stack group header to rename it with an inline text box. Custom names persist across restarts.
  • Reorder stacks: Move stack groups up or down via the right-click context menu.
  • Disable/restore stacks: "Don't stack this group" dissolves a stack so its members display as loose items.

Weather Data Source

  • MSN Weather (default): Added MSN Weather API as the default data source — the same source used by the Windows weather widget. Provides current conditions, hourly and daily forecasts, sunrise/sunset, and UV index.
  • Open-Meteo fallback: If the primary source fails, the app automatically falls back to Open-Meteo. Manually selectable in Settings → Weather.

F7 Z-Order Reliability Fix

  • Silent restore fix: Fixed silent restore where state changed but visuals didn't, causing "flicker without collapse" on the next F7 press.
  • Cross-process click detection: Replaced unreliable low-bit GetAsyncKeyState with a 50ms high-bit mouse sampler for reliable click detection.

Search Widget Refinements

  • Clear history button: Added a clear button in the search widget footer.
  • Live sync: The search widget auto-refreshes when search history changes in the popup.
  • Removed auto-generated recommendations: The widget body shows only items the user actually opened.

UI / UX Polish

  • Tray icon label fix: Fixed swapped "Black" and "White" tray icon labels.
  • Collapsed preview chevron: Hidden the chevron icon in collapsed stack preview mode.
  • Search popup: Removed "Recommended apps" section header; minor padding adjustment.

Localization

  • New strings for all features across zh-CN, en-US, ja-JP, de-DE, pt-BR.
  • Fixed tray icon color labels in all languages.
  • 💕Special thanks to @https://github.com/magisph for providing Brazilian Portuguese localization support.💕

中文

热键修复与搜索快捷键改进

  • 移除低级键盘钩子:完全移除 SearchHotkeyService 和 GlobalHotkeyService 中的 WH_KEYBOARD_LL 低级键盘钩子。这些钩子会拦截手势键(如 D 键)的每一次键盘事件,导致按键卡住、重复输入和延迟。现在只使用标准的 Win32 RegisterHotKey + WM_HOTKEY 机制。
  • 远程桌面 Alt 卡键修复:热键触发后,应用立即通过 keybd_event 合成释放所有修饰键(Alt、Ctrl、Shift)事件。这清除了远程桌面协议(RDP)中因修饰键抬起事件丢失或延迟而导致的"Alt 卡住"状态——此前,后续每次按手势键(如 D)都会被系统误判为 Alt+D 并被 RegisterHotKey 拦截,导致该按键完全失效。
  • 搜索热键开关 Bug 修复:修复了在设置中关闭搜索热键后无效的问题——RegisterHotKey 注册仍然保持活跃,因为开关处理器在调用 SetEnabled 之前就设置了设置值,导致 SetEnabled 的早退检查跳过了 RefreshRegistration。
  • 搜索格子快捷键联动:当搜索功能格子被关闭时,搜索快捷键不能再唤起搜索弹窗。弹窗切换方法现在会先检查 FeatureWidgetSettings.IsEnabled。
  • 搜索快捷键设置位置调整:将搜索快捷键配置(开关、自定义快捷键捕获、重置)从搜索设置页(三级嵌套菜单)移至一级菜单「快捷与交互」→「热键」页面,与全局快捷键设置并列。
  • 风琴卡片式热键设置:全局快捷键和搜索快捷键设置现在以可折叠的 SettingsExpander 风琴卡片呈现——开关在外层,快捷键捕获/重置控件在展开内容中,减少视觉杂乱。
  • 退出清理:热键服务现在在 ShutdownApplicationAsync 中被正确 Dispose,确保 RegisterHotKey 在进程退出前被注销、子类被移除。

搜索设置打磨

  • 移除冗余标题:搜索设置页(三级菜单)中的"搜索"章节标题已被移除,因为面包屑导航已经指示了当前所在位置。

删除相册功能

  • 图片格子完全移除:完全删除了图片画廊格子(ImageWidget)及其所有关联代码(约 3,500 行):ImageWidgetData、ImageWidgetViewModel、ImageWidgetContent、ImageSettingsDialog、ImageManagerDialog、ImagePickerService、WallpaperHelper、ImageWidgetStore、ImageWidgetContentProvider、ImageWidgetContentAdapter、BingWallpaperService。

拖拽增强

  • 微信文件拖拽:可直接从微信聊天窗口拖拽文件和图片到格子内。后台轮询线程可靠检测 OLE 拖拽时的鼠标释放。
  • 浏览器链接拖拽:从浏览器拖拽图片或文件链接时,自动下载 URL 到临时文件并导入。
  • 文件夹投放支持:拖拽文件到格子内的文件夹项目上时,文件会直接传输到该文件夹中。
  • 虚拟文件修复:NativeDropTarget 现在分别尝试 TYMED_ISTREAM 和 TYMED_HGLOBAL 获取 FileContents,修复浏览器虚拟文件拖拽静默失败的问题。

叠放组管理

  • 重命名叠放组:右键叠放组标题可使用内联文本框重命名,自定义名称跨重启保存。
  • 叠放组排序:通过右键菜单上移/下移叠放组。
  • 取消/恢复折叠:可选择"不再折叠此分组",将叠放组成员显示为散列项目。

天气数据源

  • MSN 天气(默认):新增 MSN 天气 API 作为默认数据源,与 Windows 天气小组件同源。提供实时天气、逐小时和逐日预报、日出日落和 UV 指数。
  • Open-Meteo 备用源:主源请求失败时自动切换到 Open-Meteo。用户也可在设置 → 天气中手动选择数据源。

F7 层级可靠性修复

  • 静默回落修复:修复静默回落(状态变了但画面没变)导致下次按 F7 时"闪烁不收起"的问题。
  • 跨进程点击检测:用 50ms 高位 GetAsyncKeyState 采样器替代不可靠的低位检测,可靠检测对外部窗口的点击。

搜索格子改进

  • 清空历史按钮:搜索格子底部新增清空按钮,可清除最近搜索和结果卡片,保留收藏项。
  • 实时同步:搜索弹窗中历史变化时,搜索格子自动刷新。
  • 移除自动推荐:格子主体现在只显示用户实际打开过的项目。

界面/体验打磨

  • 托盘图标标签修复:"黑色"和"白色"托盘图标标签此前是反的,现已修正。
  • 折叠预览箭头:折叠叠放组预览中隐藏了箭头图标,更简洁。
  • 搜索弹窗:移除"推荐应用"分区标题;微调内边距。

本地化

  • 在全部五种语言(zh-CN、en-US、ja-JP、de-DE、pt-BR)中新增全部功能翻译字符串。
  • 修复全部语言中托盘图标颜色标签颠倒的问题。
  • 💕特别感谢@https://github.com/magisph 提供的巴西巴西葡萄牙语本地化支持。💕

Downloads

  • DeskBox_Setup_1.3.3_x64.exe — x64 installer (auto-detects and downloads .NET 10 Runtime + Windows App Runtime if missing)
  • DeskBox_Setup_1.3.3_arm64.exe — ARM64 installer (Surface, Snapdragon, and other ARM64 PCs)

下载

  • DeskBox_Setup_1.3.3_x64.exe — x64 安装包(自动检测并下载 .NET 10 运行时 + Windows App Runtime)
  • DeskBox_Setup_1.3.3_arm64.exe — ARM64 安装包(Surface、骁龙等 ARM64 设备)

Don't miss a new DeskBox release

NewReleases is sending notifications on new releases.