跳转到主要内容

为MPRIS D-Bus接口提供持久性的i3blocks块

项目描述

i3blocks-mpris

为MPRIS D-Bus接口提供持久性的i3blocks块。

screenshot

点击上面的图片观看屏幕录像

该项目之前被称为 i3blocks-spotify-persist

功能

  • 由于事件驱动模型,几乎立即更新:块是一个持续运行的过程,接收D-Bus信号
  • 可配置输出
  • 可配置鼠标点击动作(需要i3blocks 版本1.5或更高版本)

安装

需要Python 3.8或更高版本。

可以使用pip从PyPI安装块

python3 -m pip install [--user] i3blocks-mpris

安装包后,将会有一个名为i3blocks-mpris的块脚本,具体位置取决于是否有--user pip标志(例如,/usr/local/bin/i3blocks-mpris~/.local/bin/i3blocks-mpris)。

为了避免依赖问题,可以使用pipx

pipx install i3blocks-mpris

在这种情况下,块脚本将被放置在~/.local/bin目录中。

依赖关系

必需(自动安装)

可选(手动安装)

用法

将以下行添加到您的i3blocks配置中

[mpris]
command=/path/to/bin/i3blocks-mpris -c /path/to/config.json
interval=persist

配置

可以通过JSON配置文件和/或命令行参数来配置块。唯一必需的参数是 player。它必须通过配置或命令行参数指定。其他配置参数和配置本身都是可选的。

配置参数

player

类型: 字符串

默认值: 没有默认值,必须指定

播放器的名称,可以是完整的总线名称 — org.mpris.MediaPlayer2.<player>[.<instance>] — 或者它的 <player>[.<instance>] 部分。

示例

  • org.mpris.MediaPlayer2.spotify
  • org.mpris.MediaPlayer2.vlc.instance7389
  • spotify
  • vlc.instance7389

format

类型: 字符串

默认值: {status}: {artist} – {title}

一个带有占位符的模板字符串。占位符格式为 {field}{field:filter}

支持的字段

  • status,其中之一是 枚举值PlayingPausedStopped
  • artist
  • title

支持的过滤器

过滤器 描述 示例
upper str.upper “lorem Ipsum DOLor” → “LOREM IPSUM DOLOR”
lower str.lower “lorem Ipsum DOLor” → “lorem ipsum dolor”
capitalize str.capitalize “lorem Ipsum DOLor” → “Lorem ipsum dolor”
title str.title “lorem Ipsum DOLor” → “Lorem Ipsum Dolor”
icon 将文本 status 转换为图标,请参阅下面的 status_icons 选项 “Paused” → “⏸”

也支持任何其他 Python 3.8+ 格式规范,这里有一些示例

特别是,可以通过几种方式缩短长 artisttitle 名称。如果字符串被缩短,则可以添加后缀,此情况的语法为 .<max_length>,<suffix>,并且此表中的最后几行示例使用它

艺术家/标题 格式 结果
长剧院 {artist:.9} 长剧院
Toooooooooooool {artist:…<10.9} Toooooooo…
Godzilla / Golderia {artist: ^10} - {title: ^10.4} Godzilla - Gold
Apparatus Superiority / Player Two {artist:…<16.15} - {title:>15} Apparatus Super… - Player Two
In Fire / Lan Connected {artist:.10,…} - {title:.10,…} In Fire - Lan Connec…

占位符

类型: 字符串

默认值: 空字符串

当没有播放器时显示的消息。如果为空字符串(默认),则块完全消失。

markup_escape

类型: 布尔值

默认值: false

此选项指定是否使用相应的 XML 实体来转义特殊字符(如 <>&)。如果使用 Pango 标记(在您的 i3blocks 配置中 markup=pango),则设置为 true,否则为 false

status_icons

类型: 对象

默认值: {"Playing": "\uf04b", "Paused": "\uf04c", "Stopped": "\uf04d"}

此选项为 icon 过滤器提供映射(见上文)。默认值使用来自 Font Awesome 的图标。

mouse_buttons

类型: 对象

默认值: {"1": "PlayPause"}

此选项将 X11 鼠标按钮编号映射到 MPRIS 方法。您可以使用 xev 程序来确定按钮编号。

sanitize_unicode

类型: 布尔值

默认值: true

如果此选项设置为 true,则块组件将删除一些Unicode字符(更具体地说,属于 CcCsCoCn 的字符 通用类别)。有关详细信息,请参阅 问题 #9

dedupe

类型: 布尔值

默认值: true

由于某种原因,Spotify应用程序对单个动作/事件发出几个相同的信号(例如,在播放或暂停曲目时产生 四个 PropertiesChanged 信号)。如果此选项设置为 true,则块组件将比较更新消息与之前的消息,并且仅在它已更改时打印它。除非进行调试,否则没有理由关闭去重。

配置示例

{
    "player": "spotify",
    "format": "<span font_family='monospace' color='#ffa651' weight='bold'>{status:icon} {status:upper}</span> <span color='#72bf44' weight='bold'>{artist}</span><span color='#ffa651'>᛫</span><span color='#b2d235'>{title}</span>",
    "markup_escape": true,
    "status_icons": {
        "Playing": "|>",
        "Paused": "||",
        "Stopped": "[]"
    },
    "mouse_buttons": {
        "1": "PlayPause",
        "9": "Previous",
        "8": "Next"
    }
}

命令行参数

  • -h--help — 显示所有命令行参数并退出
  • -c--config — 配置文件的路径(见上文)

以下参数覆盖相应的配置选项或默认值(即命令行参数具有最高优先级)

  • -p--player
  • -f--format
  • --markup-escape / --no-markup-escape
  • --sanitize-unicode / --no-sanitize-unicode
  • --dedupe / --no-dedupe

更新日志

请参阅 CHANGELOG.md

许可证

MIT许可证

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定要选择哪一个,请了解有关 安装包 的更多信息。

源分发

i3blocks_mpris-2.2.0.tar.gz (10.6 kB 查看哈希值)

上传时间

构建分发

i3blocks_mpris-2.2.0-py3-none-any.whl (10.9 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面