#spotify #gnome #client #desktop #native #gtk #user

app xou816/spot

GNOME桌面上的原生Spotify客户端

19个版本

0.3.2 2022年3月28日
0.2.2 2021年11月10日
0.1.15 2021年6月30日
0.1.11 2021年3月17日

#134音频

1,720 星 & 19 关注者

MIT 许可证

590KB
16K SLoC

Spot spot-snapshots

Gtk/Rust原生Spotify客户端,适用于GNOME桌面。 仅适用于高级账户!

基于 librespot

Matrix 上加入讨论。

Spot screenshot

安装

Download on Flathub

使用说明

凭证

建议安装一个符合libsecret规范的密钥环应用程序,例如 GNOME Keyring(也称为seahorse)。这将允许在启动之间安全地保存您的密码。

在GNOME中,应该可以直接使用。在其他DE中可能需要一些技巧才能使用:请参阅此 ArchWiki条目 以了解如何自动与您的会话一起启动守护进程的详细说明。

请注意,要启用自动登录,您可能需要使用与用户账户相同的密码作为密钥环的密码,并且密钥环可能需要被 设置为默认值

有关更多详细信息,请参阅 此评论

使用Facebook登录

...不受支持。但是,您可以更新您的账户,以便能够使用用户名和密码 如在此问题中所述 登录。

设置

如果您想更改音频后端、歌曲比特率等,Spot也可以通过 gsettings 进行配置。

搜索条形图变形

可以通过点击进度条来跳转到歌曲的相应位置。如果遇到无法正常工作的问题,您可能需要将 gtk-primary-button-warps-slider 设置为 false。为了解决这个问题,请将您的 gtk 配置中的值设置为 true。

Scrobbling

Spot 并不支持直接的 Scrobbling。然而,您可以使用如 rescrobbled (查看 #85) 这样的工具。

歌词

同样,Spot 也不会显示歌曲的歌词,但您可以使用 osdlyrics (查看 #226)。

Gtk 主题

Spot 默认使用深色主题变体;您可以在设置中更改它。

如果您正在使用 flatpak 版本,别忘了也要用 flatpak 安装您的主题。有关详细信息,请参阅 此评论

同样,snap 也需要您安装相应主题的 snap。有关详细信息,请参阅 此评论

功能

仅适用于高级账户!

  • 播放控制(播放/暂停、上一曲/下一曲、快进、随机播放、重复(无、全部、歌曲))
  • 选择模式:轻松浏览并选择多首曲目以将它们排队
  • 浏览您保存的专辑和播放列表
  • 搜索专辑和艺术家
  • 查看艺术家的发行作品
  • 查看用户的播放列表
  • 查看专辑信息
  • 使用 Secret Service 进行凭证管理
  • MPRIS 集成
  • 播放列表管理(创建和编辑)
  • 喜欢的曲目

计划中

  • GNOME 搜索提供者?
  • 改进的搜索?(曲目结果)
  • 推荐?

贡献

欢迎贡献!如果您愿意,在提交您的贡献时,请将您的名字添加到 AUTHORS 文件中。

对于任何大型功能/变更,首先提出一个问题以讨论实现和设计决策。

翻译

使用 gettext 进行翻译,并在 po/ 子目录中提供。

请使用 POEditor 提交翻译。

如果您愿意,欢迎您打开一个 PR 以将其添加到 TRANSLATORS 文件中!

构建

使用 GNOME Builder 和 flatpak

先决条件:使用 flatpak 安装 org.freedesktop.Sdk.Extension.rust-stable SDK 扩展。Builder 可能会自动执行此操作,但会安装较旧版本;请确保安装的版本与 Freedesktop SDK GNOME 使用的版本相匹配。

在 GNOME Builder 中打开项目,并激活 dev.alextren.Spot.development.json 配置。然后构建 :)

手动

需要 Rust(稳定版)、GTK4 和一些其他东西。还需要 libadwaitablueprint-compiler:它们目前并未在所有发行版中打包,您可能需要自己构建它们!

使用 meson

meson target -Dbuildtype=debug -Doffline=false --prefix="$HOME/.local"
ninja install -C target
# to run test/linter/etc
meson test -C target  --verbose

这将安装一个 .desktop 文件以及其他一些东西,并将 spot 可执行文件放在 .local/bin 中(您可能想将其添加到您的路径中)。

要构建优化后的发布版本,请使用-Dbuildtype=release

重新生成pot文件

在添加新的msgids时,别忘了重新生成/更新pot文件。

ninja spot-pot -C target
ninja spot-update-po -C target

从POEditor拉取更新的字符串

我们现在使用POEditor和出色的poeditor-sync工具。

poeditor pull

为flatpak重新生成源文件

使用flatpak-cargo-generator.py

ninja cargo-sources.json -C target

调试

RUST_LOG环境变量设置为适当的级别。

调试构建(flatpak)可在Github的master分支上获得(见spot-snaphots动作)。

Spot在~/.cache/spot中缓存图像和HTTP响应。

Spot使用isahc,它使用libcurl,因此您可以设置https_proxy环境变量以帮助调试。在调试模式下,Spot跳过SSL证书验证。

依赖项

~82MB
~1.5M SLoC