DeskBox v1.3.3
English
Hotkey Fixes & Search Hotkey Improvements
- Removed low-level keyboard hooks: Completely removed
WH_KEYBOARD_LLhooks from bothSearchHotkeyServiceandGlobalHotkeyService. 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 Win32RegisterHotKey+WM_HOTKEYmechanism. - 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 —
RegisterHotKeyremained active because the toggle handler set the setting value before callingSetEnabled, causingSetEnabled's early-return guard to skipRefreshRegistration. - 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.IsEnabledbefore 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
SettingsExpandercards — toggle in the header, shortcut capture/reset in the expandable body. - Clean exit: Hotkey services are now properly disposed during
ShutdownApplicationAsync, ensuringRegisterHotKeyis 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, andBingWallpaperService.
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_ISTREAMandTYMED_HGLOBALseparately forFileContents, 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
GetAsyncKeyStatewith 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 键)的每一次键盘事件,导致按键卡住、重复输入和延迟。现在只使用标准的 Win32RegisterHotKey+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 设备)