为MPRIS D-Bus接口提供持久性的i3blocks块
项目描述
i3blocks-mpris
为MPRIS D-Bus接口提供持久性的i3blocks块。
点击上面的图片观看屏幕录像。
该项目之前被称为 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
目录中。
依赖关系
必需(自动安装)
可选(手动安装)
- Font Awesome(用于状态图标)
用法
将以下行添加到您的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
,其中之一是 枚举值:Playing
、Paused
、Stopped
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+ 格式规范,这里有一些示例。
特别是,可以通过几种方式缩短长 artist
或 title
名称。如果字符串被缩短,则可以添加后缀,此情况的语法为 .<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字符(更具体地说,属于 Cc
、Cs
、Co
和 Cn
的字符 通用类别)。有关详细信息,请参阅 问题 #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。
许可证
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定要选择哪一个,请了解有关 安装包 的更多信息。
源分发
构建分发
i3blocks_mpris-2.2.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5b03cb6320a2d4c20191df3b6a996e537a908cf051311b7f9676d23a12a2fecd |
|
MD5 | 3f18cbf76e3df814060199e99a1cad6c |
|
BLAKE2b-256 | 8d4757de0b44695d3f98c7e6169ecd49012bcb582130bef8f17c77a349702633 |
i3blocks_mpris-2.2.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ed42bd28e8554286330d8cb4d590622752468d4dde04eb2fcb9b75cc2728a500 |
|
MD5 | b363da996b384b1f3f885786b59a2e55 |
|
BLAKE2b-256 | 487abee775125a6f89983b6c8554bc2e5ebacf675dff1f95855e10ed85195364 |