mirror of
https://codeberg.org/dnkl/yambar.git
synced 2025-04-20 11:35:42 +02:00
module/mpris: Added a man page
This commit is contained in:
parent
0d8ef94921
commit
e04024a16b
3 changed files with 96 additions and 8 deletions
|
@ -34,6 +34,9 @@ endif
|
||||||
if plugin_mpd_enabled
|
if plugin_mpd_enabled
|
||||||
plugin_pages += ['yambar-modules-mpd.5.scd']
|
plugin_pages += ['yambar-modules-mpd.5.scd']
|
||||||
endif
|
endif
|
||||||
|
if plugin_mpris_enabled
|
||||||
|
plugin_pages += ['yambar-modules-mpris.5.scd']
|
||||||
|
endif
|
||||||
if plugin_i3_enabled
|
if plugin_i3_enabled
|
||||||
plugin_pages += ['yambar-modules-i3.5.scd']
|
plugin_pages += ['yambar-modules-i3.5.scd']
|
||||||
plugin_pages += ['yambar-modules-sway.5.scd']
|
plugin_pages += ['yambar-modules-sway.5.scd']
|
||||||
|
|
85
doc/yambar-modules-mpris.5.scd
Normal file
85
doc/yambar-modules-mpris.5.scd
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
yambar-modules-mpris(5)
|
||||||
|
|
||||||
|
# NAME
|
||||||
|
mpris - This module provides MPRIS status such as currently playing artist/album/song
|
||||||
|
|
||||||
|
# TAGS
|
||||||
|
|
||||||
|
[[ *Name*
|
||||||
|
:[ *Type*
|
||||||
|
:< *Description*
|
||||||
|
| state
|
||||||
|
: string
|
||||||
|
: One of *offline*, *stopped*, *paused* or *playing*
|
||||||
|
| shuffle
|
||||||
|
: bool
|
||||||
|
: True if the *shuffle* flag is set
|
||||||
|
| repeat
|
||||||
|
: string
|
||||||
|
: One of *none*, *track* or *paylist*
|
||||||
|
| volume
|
||||||
|
: range
|
||||||
|
: Volume in percentage
|
||||||
|
| album
|
||||||
|
: string
|
||||||
|
: Currently playing album
|
||||||
|
| artist
|
||||||
|
: string
|
||||||
|
: Artist of currently playing song
|
||||||
|
| title
|
||||||
|
: string
|
||||||
|
: Title of currently playing song
|
||||||
|
| file
|
||||||
|
: string
|
||||||
|
: Filename or URL of currently playing song
|
||||||
|
| pos
|
||||||
|
: string
|
||||||
|
: *%M:%S*-formatted string describing the song's current position
|
||||||
|
(also see _elapsed_)
|
||||||
|
| end
|
||||||
|
: string
|
||||||
|
: *%M:%S*-formatted string describing the song's total length (also
|
||||||
|
see _duration_)
|
||||||
|
| elapsed
|
||||||
|
: realtime
|
||||||
|
: Position in currently playing song, in milliseconds. Can be used
|
||||||
|
with a _progress-bar_ particle.
|
||||||
|
|
||||||
|
# CONFIGURATION
|
||||||
|
|
||||||
|
[[ *Name*
|
||||||
|
:[ *Type*
|
||||||
|
:[ *Req*
|
||||||
|
:< *Description*
|
||||||
|
| identity
|
||||||
|
: string
|
||||||
|
: yes
|
||||||
|
: Identity if the target MPRIS client
|
||||||
|
| query-timeout
|
||||||
|
: int
|
||||||
|
: no
|
||||||
|
: Timeout for MPRIS clients to respond to queries. Defaults to 500
|
||||||
|
|
||||||
|
# EXAMPLES
|
||||||
|
|
||||||
|
```
|
||||||
|
bar:
|
||||||
|
center:
|
||||||
|
- mpris:
|
||||||
|
identity: "spotify"
|
||||||
|
content:
|
||||||
|
- map:
|
||||||
|
conditions:
|
||||||
|
state != offline && state != stopped:
|
||||||
|
- list:
|
||||||
|
items:
|
||||||
|
- string: {text: "{artist}", max: 30 }
|
||||||
|
- string: {text: "-" }
|
||||||
|
- string: {text: "{title}", max: 30 }
|
||||||
|
- string: {text: "|" }
|
||||||
|
- string: {text: "{pos} / {end}", max: 30 }
|
||||||
|
```
|
||||||
|
|
||||||
|
# SEE ALSO
|
||||||
|
|
||||||
|
*yambar-modules*(5), *yambar-particles*(5), *yambar-tags*(5), *yambar-decorations*(5)
|
|
@ -475,7 +475,7 @@ content(struct module *mod)
|
||||||
tag_new_string(mod, "pos", tag_pos_value),
|
tag_new_string(mod, "pos", tag_pos_value),
|
||||||
tag_new_string(mod, "end", tag_end_value),
|
tag_new_string(mod, "end", tag_end_value),
|
||||||
tag_new_int_realtime(
|
tag_new_int_realtime(
|
||||||
mod, "elapsed", elapsed_us / 1000 / 1000, 0, length_us / 1000 / 1000, TAG_REALTIME_SECS),
|
mod, "elapsed", elapsed_us / 1000, 0, length_us / 1000, TAG_REALTIME_SECS),
|
||||||
},
|
},
|
||||||
.count = 10,
|
.count = 10,
|
||||||
};
|
};
|
||||||
|
@ -874,7 +874,7 @@ refresh_in_thread(void *arg)
|
||||||
long milli_seconds = ctx->milli_seconds;
|
long milli_seconds = ctx->milli_seconds;
|
||||||
free(ctx);
|
free(ctx);
|
||||||
|
|
||||||
LOG_DBG("going to sleep for %ldms", milli_seconds);
|
/*LOG_DBG("going to sleep for %ldms", milli_seconds);*/
|
||||||
|
|
||||||
/* Wait for timeout, or abort signal */
|
/* Wait for timeout, or abort signal */
|
||||||
struct pollfd fds[] = {{.fd = abort_fd, .events = POLLIN}};
|
struct pollfd fds[] = {{.fd = abort_fd, .events = POLLIN}};
|
||||||
|
@ -888,7 +888,7 @@ refresh_in_thread(void *arg)
|
||||||
/* Aborted? */
|
/* Aborted? */
|
||||||
if (r == 1) {
|
if (r == 1) {
|
||||||
assert(fds[0].revents & POLLIN);
|
assert(fds[0].revents & POLLIN);
|
||||||
LOG_DBG("refresh thread aborted");
|
/*LOG_DBG("refresh thread aborted");*/
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -905,7 +905,7 @@ refresh_in(struct module *mod, long milli_seconds)
|
||||||
|
|
||||||
/* Abort currently running refresh thread */
|
/* Abort currently running refresh thread */
|
||||||
if (m->refresh_thread_id != 0) {
|
if (m->refresh_thread_id != 0) {
|
||||||
LOG_DBG("aborting current refresh thread");
|
/*LOG_DBG("aborting current refresh thread");*/
|
||||||
|
|
||||||
/* Signal abort to thread */
|
/* Signal abort to thread */
|
||||||
assert(m->refresh_abort_fd != -1);
|
assert(m->refresh_abort_fd != -1);
|
||||||
|
@ -1109,13 +1109,13 @@ static struct module *
|
||||||
from_conf(const struct yml_node *node, struct conf_inherit inherited)
|
from_conf(const struct yml_node *node, struct conf_inherit inherited)
|
||||||
{
|
{
|
||||||
const struct yml_node *identity_node = yml_get_value(node, "identity");
|
const struct yml_node *identity_node = yml_get_value(node, "identity");
|
||||||
const struct yml_node *poll_node = yml_get_value(node, "poll");
|
const struct yml_node *query_node = yml_get_value(node, "query-timeout");
|
||||||
const struct yml_node *c_node = yml_get_value(node, "content");
|
const struct yml_node *c_node = yml_get_value(node, "content");
|
||||||
|
|
||||||
const char *identity = yml_value_as_string(identity_node);
|
const char *identity = yml_value_as_string(identity_node);
|
||||||
const uint32_t poll = (poll_node != NULL) ? yml_value_as_int(poll_node) : 500;
|
const uint32_t query = (query_node) ? yml_value_as_int(query_node) : 500;
|
||||||
|
|
||||||
return mpris_new(identity, poll, conf_to_particle(c_node, inherited));
|
return mpris_new(identity, query, conf_to_particle(c_node, inherited));
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
|
@ -1123,7 +1123,7 @@ verify_conf(keychain_t *chain, const struct yml_node *node)
|
||||||
{
|
{
|
||||||
static const struct attr_info attrs[] = {
|
static const struct attr_info attrs[] = {
|
||||||
{"identity", true, &conf_verify_string},
|
{"identity", true, &conf_verify_string},
|
||||||
{"poll", false, &conf_verify_unsigned},
|
{"query-timeout", false, &conf_verify_unsigned},
|
||||||
MODULE_COMMON_ATTRS,
|
MODULE_COMMON_ATTRS,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue