在应用程序中,选择“文件 > 工作区 > 登录新工作区”会打开一个浏览器窗口。在浏览器中选择工作区后,它会返回到 Slack,但是却没有起作用。Slack 桌面版上什么都没有发生。
在链接过程中检查运行的命令时,看起来 KDE 修改了链接。我该怎么做才能解决这个问题?
在链接过程中检查运行的命令时,看起来 KDE 修改了链接。我该怎么做才能解决这个问题?
Boon的回答是正确的。我想在那个答案下留言,但显然需要50分才能评论,所以我只能添加新答案...
经过调查,似乎来自kde-cli-tools的kde-open5对URL的第一个元素进行了一些奇怪的小写处理(slack://A/B/C
变成了 slack://a/B/C
)。这听起来像是一个老问题:https://bugs.kde.org/show_bug.cgi?id=429408
我怀疑Slack在处理链接/链接方面发生了变化- 这与我的情况中Slack升级相吻合:slack-desktop:从4.22.0升级到4.23.0。
查看进程列表:
我已向Slack报告了所有详细信息,希望能够解决。
只是添加了一些细节,以补充(Boon建议)
while sleep .1; do ps aux | grep slack | grep -v grep | grep magic; done
kde-open5 slack://WORKSPACE_ID/magic-login/...
/usr/lib/slack/slack --enable-crashpad slack://workspace_id/magic-login/...
/usr/lib/slack/slack --enable-crashpad slack://WORKSPACE_ID/magic-login/...
/snap/bin/slack
。 - Aamir感谢这里对问题的优秀分析,我成功创建了一个脚本来解决这个问题。
#!/usr/bin/env bash
if [[ "${1:-}" = slack://* ]]; then
exec /usr/lib/slack/slack --enable-crashpad "$1"
fi
exec /usr/bin/xdg-open "$@"
将上述脚本保存为/usr/local/bin/xdg-open
并将脚本设置为可执行。就是这样!
我真的希望KDE团队能够关注这个如此基本的问题,特别是考虑到Slack的广泛使用。
ps
输出更精细的解决方案。在基于Kubuntu 22.04的系统上验证过了。如注释所述,如果您是通过slack.com官方的.deb包安装的,那么需要使用/usr/bin
前缀。 - ardnewxdg-open
,仅适用于 Slack。您只需要确保 slack
和原始的 xdg-open
的路径是正确的即可。我不想去处理字符串,因为我不确定它是否是混合大小写。 - ϹοδεMεδιϲ在 Kubuntu 20.04 和 Chrome 浏览器中遇到了同样的问题。火狐浏览器解决了这个问题。
在尝试了各种方法后,我注意到上面的tlvs8sasf
有可能是工作区 ID,在日志中通常会使用大写。
因此,我尝试通过将工作区 ID 转换为大写来更新深度链接,然后单击它。瞧,它对我起作用了。希望这也能帮助其他遇到同样问题的人。
每次重启计算机时,我几乎都会遇到这个问题,并且有约10个活跃的Slack工作区,所以我编写了一个快速的bash脚本来解决它。它并不是为了强大稳定而设计的,但它有效。如果对其他人有用的话,我会在这里留下它。
# Workaround to get slack to open workspaces correctly.
# Problem and workarond concept as described here:
# https://dev59.com/Y1EG5IYBdhLWcg3wMGTV
# Usage: Run this script, open slack as normal, and attempt to log into workspaces as normal. Once done, kill the script.
while sleep .1; do
line=$(ps ax | grep slack | grep -v grep | grep magic | awk '{ print $NF }')
WD=$(echo $line | cut -d '/' -f 3 | tr [:lower:] [:upper:])
LN=$(echo $line | cut -d '/' -f 5)
if [ "$WD" != "" ]; then
echo "got $line"
line2="slack://$WD/magic-login/$LN"
echo "Attempting to open $line2"
/usr/lib/slack/slack --enable-crashpad $line2
fi
done | grep -v "^$"