Skip to content

feat(desktop): 实现关闭窗口后系统托盘后台运行,并支持代理实例持久化#35

Open
sysfox wants to merge 8 commits into
XDSEC:masterfrom
sysfox:master
Open

feat(desktop): 实现关闭窗口后系统托盘后台运行,并支持代理实例持久化#35
sysfox wants to merge 8 commits into
XDSEC:masterfrom
sysfox:master

Conversation

@sysfox

@sysfox sysfox commented Jul 12, 2026

Copy link
Copy Markdown

实现功能

关闭窗口后系统托盘后台运行,并支持代理实例持久化

屏幕截图验证

Snipaste_2026-07-12_19-54-42 image Snipaste_2026-07-12_21-36-06

应用后台运行后链接依然维持

image

sysfox added 6 commits July 12, 2026 19:45
将托盘相关的窗口隐藏逻辑抽离为hide_to_tray函数,统一两处关闭窗口的处理流程,修复部分平台下hide()被误判为关闭导致程序退出的问题,同时优化窗口恢复显示的逻辑
调整弹窗窗口的显示逻辑,先设置窗口可见再取消最小化状态,确保弹窗可以正确弹出
新增实例配置保存与加载功能,支持程序退出后保存当前代理实例列表,重启时自动恢复之前的代理配置,包括监听地址、远程地址、标签和作用域主机信息。

@Reverier-Xu Reverier-Xu left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hi, thanks for contributing!

the support for linux in tray-icon crate depends on x11 which use xdotool for system operations ( won't working well on wayland), so we'd better not import it as our tray solution.

slint has it's own tray implementation here https://docs.slint.dev/latest/docs/slint/reference/window/systemtrayicon/

@sysfox
sysfox requested a review from Reverier-Xu July 12, 2026 16:20
@sysfox

sysfox commented Jul 12, 2026

Copy link
Copy Markdown
Author

总结:原来遇到的一堆玄学bug是slint没有从1.15 升级到 1.17导致的

SystemTrayIcon 在 Slint 1.17 才正式稳定,1.15 中为实验性功能
且存在实现缺陷,导致托盘图标创建后不可见。升级至 1.17 并
启用 system-tray feature 即可解决。
@Reverier-Xu

Copy link
Copy Markdown
Member

似乎忘记去重了,在设置界面反复开关即可得到
image

@sysfox

sysfox commented Jul 12, 2026

Copy link
Copy Markdown
Author

@Reverier-Xu 我这里复现不了,你可以试试build以后安装下试试

QQ20260713-004337.mp4

@sysfox

sysfox commented Jul 12, 2026

Copy link
Copy Markdown
Author

似乎忘记去重了,在设置界面反复开关即可得到

image

等等你这好像是KDE环境!?
这个我暂时没法复现

@Reverier-Xu

Copy link
Copy Markdown
Member

挠头,似乎是 wayland 带来的问题,这个我明天晚上看看吧,稍后合入

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants