简介
Linux QQ的后台托盘,在chromeOS上一直是一个问题,本文将介绍一种目前看来可能是最好的解决方案。
这个方案可以实现从chromeOS的消息托盘唤起QQ主界面或者QQ托盘菜单。
以下是具体操作步骤
首先安装好LinuxQQ
然后参考此文章安装Stalonetray
在创建配置文件那一步,请将配置文件更改为:
background "#777777"
decorations all
geometry 1x1+0+0
icon_gravity NE
icon_size 48
然后,安装xdotool和notify-send
sudo apt install xdotool
sudo apt install libnotify-bin
接下来,创建qq后台守护程序
sudo vim /usr/bin/qqd
复制以下内容
#!/bin/bash
while true; do
if xdotool search --name QQ > /dev/null; then
echo 'qq is on'
if ! xdotool search --name stalonetray > /dev/null;then
echo 'start stalonetray'
stalonetray&sleep 0.3&&xdotool search --name stalonetray windowunmap
fi
if ! xdotool search --onlyvisible --name QQ > /dev/null; then
echo 'qq window off'
# 发送通知并获取返回状态
status=`notify-send 关闭消息打开QQ -A 点击打开菜单`
# 根据状态执行不同的点击操作
if [ "$status" == "0" ]; then
xdotool search --name stalonetray windowmap & sleep 0.3 && output=$(xwininfo -name stalonetray)&&X=$(echo "$output" | awk '/Absolute upper-left X:/ {print $4 + 20}')&&Y=$(echo "$output" | awk '/Absolute upper-left Y:/ {print $4 + 20}') && xdotool mousemove $X $Y click 3 &
else
xdotool search --name stalonetray windowmap & sleep 0.3 &&output=$(xwininfo -name stalonetray)&&X=$(echo "$output" | awk '/Absolute upper-left X:/ {print $4 + 20}')&&Y=$(echo "$output" | awk '/Absolute upper-left Y:/ {print $4 + 20}')&& xdotool mousemove $X $Y click 1 && xdotool search --name stalonetray windowunmap
fi
else
xdotool search --name stalonetray windowunmap
echo 'hide stalonetary'
fi
fi
sleep 5
done
粘贴到终端中(通常是Ctrl+Shift+C)
按下 i 进入编辑模式
然后依次按下[ESC][ : ][W][Q][Enter]
然后给予运行权限
sudo chmod +x /usr/bin/qqd
最后需要设置这个程序为开机自启动
sudo vim ~/.sommelierrc
文件末尾加入一行
(vim中,按下i进入编辑模式)
sleep 2 &&stalonetray&
sleep 4 && xdotool search --name stalonetray windowunmap&
sleep 7&&qqd&
依次按下
[ESC][ : ][W][Q][Enter]
最后重启Linux
右键你务栏中的Linux图标,选择关闭Linux,然后再重新打开。
使用方法
这个程序会在后台循环检测QQ的运行状态,并在检测到qq启动且窗口关闭时发送通知。
点击通知的空白处以隐藏通知
点叉或者右划通知以显示QQ界面
点击蓝色的"点击打开菜单"以打开QQ托盘菜单