Fedora GNOME 下 Flatpak Spotify + Spicetify 最终笔记


Fedora GNOME 下 Flatpak Spotify + Spicetify 最终笔记

目标

解决这几类问题:


一、确认安装的是用户级 Flatpak Spotify

1. 查找 Spotify 安装路径

find /var/lib/flatpak ~/.local/share/flatpak -type d 2>/dev/null | grep '/com.spotify.Client/.*/files/extra/share/spotify$'

如果输出是 /var/lib/flatpak/...

说明是系统级安装,Spicetify 可能没有权限修改。

如果输出是 ~/.local/share/flatpak/...

说明是用户级安装,推荐使用这个。


2. 如果是系统级,改装为用户级

先卸载系统级:

flatpak uninstall com.spotify.Client

如果还没添加 Flathub,先加:

flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

再安装用户级:

flatpak install --user flathub com.spotify.Client

启动一次:

flatpak run com.spotify.Client

然后关闭。


二、配置 Spicetify

1. 设置 prefs_path

spicetify config prefs_path /home/你的用户名/.var/app/com.spotify.Client/config/spotify/prefs

例如:

spicetify config prefs_path /home/ogumo/.var/app/com.spotify.Client/config/spotify/prefs

2. 查找用户级 spotify_path

find ~/.local/share/flatpak -type d 2>/dev/null | grep '/com.spotify.Client/.*/files/extra/share/spotify$'

例如可能得到:

/home/ogumo/.local/share/flatpak/app/com.spotify.Client/x86_64/stable/哈希值/files/extra/share/spotify

3. 设置 spotify_path

spicetify config spotify_path 你上一步找到的路径

例如:

spicetify config spotify_path /home/ogumo/.local/share/flatpak/app/com.spotify.Client/x86_64/stable/d5ba61e0e06ba34e0dd2f9bd61c71fd1f41db0e2dfcafb4043856623458b6076/files/extra/share/spotify

4. 检查配置

spicetify config

至少确认这两项正确:

prefs_path = /home/ogumo/.var/app/com.spotify.Client/config/spotify/prefs
spotify_path = /home/ogumo/.local/share/flatpak/app/com.spotify.Client/.../files/extra/share/spotify

三、应用 Spicetify

先关闭 Spotify:

flatpak kill com.spotify.Client 2>/dev/null
pkill spotify 2>/dev/null

首次应用:

spicetify backup apply

如果已经做过备份并应用过,再用:

spicetify apply

常见错误:permission denied

如果报类似:

fatal unlinkat ... permission denied

说明你在改系统级 Flatpak 路径 /var/lib/flatpak/...
解决方法:改用用户级 Flatpak 安装


四、安装 Marketplace

安装脚本:

curl -fsSL https://raw.githubusercontent.com/spicetify/marketplace/main/resources/install.sh | sh

再应用:

spicetify apply

检查 Marketplace 是否存在:

ls ~/.config/spicetify/CustomApps

应看到:

marketplace

五、关于“没有任何样式变化”

这通常不是失败,而是:

Marketplace 更像“主题/扩展商店”,不会自动把界面改得很夸张。

如果想要明显变化:

  1. 打开 Spotify
  2. 进入 Marketplace
  3. 安装一个主题

也可以看本地主题:

ls ~/.config/spicetify/Themes

六、GNOME Wayland 下 Spotify 蓝色系统边框修复

问题现象

Spotify 更新后,在 GNOME Wayland 下出现很丑的系统标题栏/蓝色边框。
这不是 Spicetify 的问题,而是 Spotify 窗口行为更新导致的。


解决思路

对 Flatpak Spotify 的桌面启动器加参数,强制它走 X11/XWayland:


1. 找到并复制 desktop 文件

用户级 Flatpak 一般用这个:

~/.local/share/flatpak/exports/share/applications/com.spotify.Client.desktop

复制到本地应用目录:

mkdir -p ~/.local/share/applications
cp ~/.local/share/flatpak/exports/share/applications/com.spotify.Client.desktop ~/.local/share/applications/

2. 确认原始 Exec=

grep '^Exec=' ~/.local/share/applications/com.spotify.Client.desktop

原始内容一般像这样:

Exec=/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=spotify --file-forwarding com.spotify.Client @@u %U @@

3. 备份 desktop 文件

cp ~/.local/share/applications/com.spotify.Client.desktop ~/.local/share/applications/com.spotify.Client.desktop.bak

4. 修改 Exec=

执行:

sed -i 's#^Exec=.*#Exec=env WAYLAND_DISPLAY= /usr/bin/flatpak run --branch=stable --arch=x86_64 --command=spotify com.spotify.Client --ozone-platform=x11 --disable-features=UseOzonePlatform %U#' ~/.local/share/applications/com.spotify.Client.desktop

检查是否写入成功:

grep '^Exec=' ~/.local/share/applications/com.spotify.Client.desktop

应看到:

Exec=env WAYLAND_DISPLAY= /usr/bin/flatpak run --branch=stable --arch=x86_64 --command=spotify com.spotify.Client --ozone-platform=x11 --disable-features=UseOzonePlatform %U

5. 刷新缓存并关闭 Spotify

update-desktop-database ~/.local/share/applications 2>/dev/null
flatpak kill com.spotify.Client 2>/dev/null
pkill spotify 2>/dev/null

6. 启动测试

可以先用:

gtk-launch com.spotify.Client

如果这样启动标题栏正常,说明修复成功。

之后从 GNOME 应用菜单打开 Spotify 即可。


7. 如果图标启动还是旧效果

这通常是 GNOME/Dock 缓存问题。

解决办法:

或者简单移动/刷新图标,有时也会生效。


8. 恢复默认启动方式

如果以后想恢复:

cp ~/.local/share/applications/com.spotify.Client.desktop.bak ~/.local/share/applications/com.spotify.Client.desktop
update-desktop-database ~/.local/share/applications 2>/dev/null

七、常用检查命令

查看 Spicetify 配置

spicetify config

查看 Marketplace 是否安装

ls ~/.config/spicetify/CustomApps

查看主题列表

ls ~/.config/spicetify/Themes

查看当前 desktop 启动参数

grep '^Exec=' ~/.local/share/applications/com.spotify.Client.desktop

查找 Spotify 的 desktop 文件

find /var/lib/flatpak ~/.local/share/flatpak /var/lib/flatpak/exports ~/.local/share/flatpak/exports -name 'com.spotify.Client.desktop' 2>/dev/null

八、最终关键命令汇总

Spicetify 配置

spicetify config prefs_path /home/ogumo/.var/app/com.spotify.Client/config/spotify/prefs
spicetify config spotify_path /home/ogumo/.local/share/flatpak/app/com.spotify.Client/x86_64/stable/你的哈希/files/extra/share/spotify

首次应用

flatpak kill com.spotify.Client 2>/dev/null
pkill spotify 2>/dev/null
spicetify backup apply

之后重新应用

spicetify apply

安装 Marketplace

curl -fsSL https://raw.githubusercontent.com/spicetify/marketplace/main/resources/install.sh | sh
spicetify apply

修复 GNOME 蓝色标题栏

mkdir -p ~/.local/share/applications
cp ~/.local/share/flatpak/exports/share/applications/com.spotify.Client.desktop ~/.local/share/applications/
cp ~/.local/share/applications/com.spotify.Client.desktop ~/.local/share/applications/com.spotify.Client.desktop.bak
sed -i 's#^Exec=.*#Exec=env WAYLAND_DISPLAY= /usr/bin/flatpak run --branch=stable --arch=x86_64 --command=spotify com.spotify.Client --ozone-platform=x11 --disable-features=UseOzonePlatform %U#' ~/.local/share/applications/com.spotify.Client.desktop
update-desktop-database ~/.local/share/applications 2>/dev/null
flatpak kill com.spotify.Client 2>/dev/null

测试启动:

gtk-launch com.spotify.Client

九、经验总结

这次问题的本质

  1. Spicetify 权限问题:因为最开始是系统级 Flatpak,普通用户不能修改 /var/lib/flatpak/...
  2. GNOME 标题栏问题:是 Spotify 更新后在 Wayland 下的窗口行为变化,不是 Spicetify 弄坏的
  3. 图标启动不生效:是 GNOME/Dock 缓存问题,不是修复失败

如果你愿意,我还可以再帮你把这份笔记整理成一个更短的 “只保留关键命令版”速查表