给dwm添加一个灵活的系统托盘:tray-tui

前言

在dwm里,如果你要显示系统托盘,主流的方法是在dwm打一个systray补丁来在状态栏显示系统托盘,但是这个方案我认为不是很好,所以我这几天在github找到了一个更加完美的方案:tray-tui

为什么我不想用systray补丁

首先我的状态栏的配色和主题还有字体都是统一协调的,但是打上systray补丁后事情就不一样了,那些系统托盘的后台应用是奇形怪状不统一的,有的是圆形,有的是带圆角的正方形,有的就完全是一个字母或不可描述的图标,这些东西加在状态栏里让状态栏变得丑陋无比,这是我不能接受的,而且这个补丁还不能随时的隐藏,使用系统托盘又不是每时每刻需要的,在不需要使用的时候看状态栏就显得杂乱无比,注意力全被这几个不统一的图标分散

苦海中的救世主

而我这几天在github找到了一个更加完美的方案,也就是tray-tui,这个项目很好的解决了我的痛点,而安装也十分简单,尤其是arch用户,只需要
yay -S tray-tui

就可以安装完成了,要使用只需要在终端输入tray-tui 就会出现一个tui的系统托盘界面,支持鼠标操作,不过这可能需要终端支持,不需要使用的时候只需要按q退出就可以了,十分的灵活,要使用就打开终端,不使用就关闭终端,十分无感,这样我dwm的状态栏就不会用那些奇形怪状不统一的图标了,下面是这个项目的链接:
https://github.com/Levizor/tray-tui

一些问题

前面说了它的优点,但是它也是有不足的,在相关视频发布后评论区有人评论”请问下xwechat的tray是如何被包含的,xwechat使用的是XEmbed协议但是我看tray-tui支持的貌似只有SNI,是有什么转接层在吗”

我经过测试发现微信在没有打开tray-tui打开登录后再打开tray-tui是没有相关选项的,除非在打开登录微信之前开启tray-tui才很显示相关选项,等于说需要在如果要让微信显示在tray-tui需要在打开微信之前先让tray-tui在后台挂着,而qbittorrent也出现了相关问题,如果这个项目可以做成类似mpd这种有一个后端挂着,前端使用tui可能会更好,本人也不是什么专业人员,只是一个学生,所以这仅仅是个人的看法,如果有错误请在评论区指正

后续

基于这个问题Eraseit45大佬fork了一份vibe了下,把daemon和client分开了,把daemon放在.xinitrc里先启动了就方便了很多,使用这个版本成功解决上面提到的问题,这里十分感谢Eraseit45大佬 ,下面是项目链接:
https://github.com/Eraseit45/tray-tuid

感兴趣的可以克隆下来编译安装使用