Snap 应用程序与 Ubuntu、KDE ​​Wayland 和 ZSH 不兼容

Snap 应用程序与 Ubuntu、KDE ​​Wayland 和 ZSH 不兼容

我遇到的问题

  • 通过启动时的图标snap run <appname>是默认的 X 图标,而不是 snap 提供的图标
  • 尝试让 OAuth 与 Todoist 之类的东西一起工作(浏览器中的 Google SSO,重定向回应用程序)时出现问题,出现错误,提示我 KIO 客户端不理解协议。
  • 尝试使用emulate sh -c 'source /etc/profile.d/apps-bin-path.sh'在我的~/.zshrc
  • 我不愿意使用emulate sh -c 'source /etc/profile'
  • 添加snap到 bin 路径不工作解决任何问题
  • KRunner 无法找到快速安装的应用程序
  • 安装的任何启动器都无法找到快速安装的应用程序
  • 手动将启动器添加到 Latte Dock 存在错误

答案1

好吧,实际上没有解决方案对我有用。我一切其他人都说过(添加到/etc/environment,模拟命令,一切)。

我正在使用 ZSH 运行 Kubuntu 20.04。我的解决方案是将本地应用程序文件夹与 snap 文件夹同步。

作为脚本

将此文件添加到“bin”路径中的任何文件夹中。对我来说,我有~/.local/bin,但你可能有其他东西。确保无论你使用什么目录是路径变量的一部分。我已将此文件添加到~/.local/bin/sync-snap-apps我的系统中。

#! /bin/zsh

shareApps="$HOME/.local/share/applications"
snapApps="/var/lib/snapd/desktop/applications"

# Detect all installed applications by snap
for file in $snapApps/*.desktop
do
  # Get a not-ugly version of the .desktop 
  # Example: todoist_todoist.desktop -> todoist.desktop
  link="$shareApps/$(echo $file | cut -d '_' -f2)"

  # Create new link if none exists
  [[ -f $link ]] || ln -s $file $link
done


# NOTE: Remove this if you do NOT want automatic broken symbolic link cleanup
for link in $shareApps/*.desktop; do
  # Remove any broken *.desktop symbolic links
  [[ -e $link ]] || rm $link
done

现在此文件已添加到您的系统中,将其附加sync-snap-apps到您的末尾~/.zshrc并启动一个新终端。它将自动同步您的 snap 应用程序。

作为 zshrc 的补充

~/.zshrc将其放在文件底部

shareApps="$HOME/.local/share/applications"
snapApps="/var/lib/snapd/desktop/applications"

# Detect all installed applications by snap
for file in $snapApps/*.desktop
do
  # Get a not-ugly version of the .desktop 
  # Example: todoist_todoist.desktop -> todoist.desktop
  link="$shareApps/$(echo $file | cut -d '_' -f2)"

  # Create new link if none exists
  [[ -f $link ]] || ln -s $file $link
done


# NOTE: Remove this if you do NOT want automatic broken symbolic link cleanup
for link in $shareApps/*.desktop; do
  # Remove any broken *.desktop symbolic links
  [[ -e $link ]] || rm $link
done

最后说明

请注意,这为我解决了以下问题:

  1. KIO 客户端错误,我无法使用 Google Auth 重定向到 Snap 应用程序,类似于这个问题这个 github 问题
  2. 应用程序不在启动器中,类似于这篇 Reddit 帖子这个问题。 相关此论坛帖子在 SnapCraft 上。

解决方案来自这个答案,并且比这个答案在同一个线程上。

答案2

对于我来说,添加上述内容emulate sh -c 'source /etc/profile.d/apps-bin-path.sh'/etc/zsh/zprofile行了。(我正在使用 KUbuntu 23.10、zsh v5.9)我向其他人建议了这一点,他也复制了这一点。

相关内容