diff --git a/.bauke/scripts/tauon-controls.ts b/.bauke/scripts/tauon-controls.ts index dcfe0b0..880808d 100644 --- a/.bauke/scripts/tauon-controls.ts +++ b/.bauke/scripts/tauon-controls.ts @@ -1,5 +1,5 @@ import { Command } from "./dependencies.ts"; -import { pathExists, runCommand } from "./utilities.ts"; +import { pathExists } from "./utilities.ts"; const hiddenApi = "http://127.0.0.1:7813"; const remoteApi = "http://127.0.0.1:7814/api1"; @@ -8,7 +8,7 @@ async function main(): Promise { const { options } = await new Command() .name("tauon-controls") .description("Small remote control CLI for Tauon Music Box!") - .option("--current-song", "Send a notification with the current song.") + .option("--current-song", "Get the currently playing song.") .option("--next-song", "Play the next song.") .option("--play-pause", "Toggle play or pause.") .option("--previous-song", "Play the previous song.") @@ -21,7 +21,7 @@ async function main(): Promise { .parse(Deno.args); if (options.currentSong) { - await notifyCurrentSong(); + await getCurrentSong(); } if (options.nextSong) { @@ -85,6 +85,7 @@ type Status = { artist: string; id: number; progress: number; + status: "playing" | "paused"; title: string; track: { duration: number; @@ -96,12 +97,14 @@ async function getStatus(): Promise { return await (await fetch(`${remoteApi}/status`)).json(); } -/** Run a `notify-send` with the current song's artist and title. */ -async function notifyCurrentSong(): Promise { +/** Print the current song's artist and title. */ +async function getCurrentSong(): Promise { const status = await getStatus(); - await runCommand("notify-send", { - args: [status.title, status.artist], - }); + if (status.status === "paused") { + return; + } + + console.log(`${status.artist} - ${status.title}`); } if (import.meta.main) { diff --git a/.config/i3status-rust/config.toml b/.config/i3status-rust/config.toml index cc26c96..d06db7a 100644 --- a/.config/i3status-rust/config.toml +++ b/.config/i3status-rust/config.toml @@ -1,6 +1,13 @@ [icons] icons = "emoji" +[[block]] +block = "custom" +command = "tauon-controls --current-song" +format = "^icon_music_play $text.pango-str()" +interval = 15 +hide_when_empty = true + [[block]] block = "custom" command = "miniflux-unread-entries"