Compare commits
3 Commits
0a32e075d4
...
4984001bf1
Author | SHA1 | Date |
---|---|---|
Bauke | 4984001bf1 | |
Bauke | 9ac811a163 | |
Bauke | 1d291bd39f |
|
@ -1,5 +1,5 @@
|
||||||
import { Command } from "./dependencies.ts";
|
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 hiddenApi = "http://127.0.0.1:7813";
|
||||||
const remoteApi = "http://127.0.0.1:7814/api1";
|
const remoteApi = "http://127.0.0.1:7814/api1";
|
||||||
|
@ -8,7 +8,7 @@ async function main(): Promise<void> {
|
||||||
const { options } = await new Command()
|
const { options } = await new Command()
|
||||||
.name("tauon-controls")
|
.name("tauon-controls")
|
||||||
.description("Small remote control CLI for Tauon Music Box!")
|
.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("--next-song", "Play the next song.")
|
||||||
.option("--play-pause", "Toggle play or pause.")
|
.option("--play-pause", "Toggle play or pause.")
|
||||||
.option("--previous-song", "Play the previous song.")
|
.option("--previous-song", "Play the previous song.")
|
||||||
|
@ -21,7 +21,7 @@ async function main(): Promise<void> {
|
||||||
.parse(Deno.args);
|
.parse(Deno.args);
|
||||||
|
|
||||||
if (options.currentSong) {
|
if (options.currentSong) {
|
||||||
await notifyCurrentSong();
|
await getCurrentSong();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options.nextSong) {
|
if (options.nextSong) {
|
||||||
|
@ -85,6 +85,7 @@ type Status = {
|
||||||
artist: string;
|
artist: string;
|
||||||
id: number;
|
id: number;
|
||||||
progress: number;
|
progress: number;
|
||||||
|
status: "playing" | "paused";
|
||||||
title: string;
|
title: string;
|
||||||
track: {
|
track: {
|
||||||
duration: number;
|
duration: number;
|
||||||
|
@ -96,12 +97,14 @@ async function getStatus(): Promise<Status> {
|
||||||
return await (await fetch(`${remoteApi}/status`)).json();
|
return await (await fetch(`${remoteApi}/status`)).json();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Run a `notify-send` with the current song's artist and title. */
|
/** Print the current song's artist and title. */
|
||||||
async function notifyCurrentSong(): Promise<void> {
|
async function getCurrentSong(): Promise<void> {
|
||||||
const status = await getStatus();
|
const status = await getStatus();
|
||||||
await runCommand("notify-send", {
|
if (status.status === "paused") {
|
||||||
args: [status.title, status.artist],
|
return;
|
||||||
});
|
}
|
||||||
|
|
||||||
|
console.log(`${status.artist} - ${status.title}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (import.meta.main) {
|
if (import.meta.main) {
|
||||||
|
|
|
@ -56,7 +56,7 @@ bar {
|
||||||
i3bar_command i3bar --transparency
|
i3bar_command i3bar --transparency
|
||||||
output primary
|
output primary
|
||||||
position bottom
|
position bottom
|
||||||
separator_symbol "/"
|
separator_symbol "•"
|
||||||
status_command i3status-rs
|
status_command i3status-rs
|
||||||
tray_output primary
|
tray_output primary
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,15 @@
|
||||||
[icons]
|
[icons.overrides]
|
||||||
icons = "emoji"
|
bear = "🐻"
|
||||||
|
bell = "🔔"
|
||||||
|
bunny = "🐇"
|
||||||
|
music = "▶️"
|
||||||
|
|
||||||
|
[[block]]
|
||||||
|
block = "custom"
|
||||||
|
command = "tauon-controls --current-song"
|
||||||
|
format = "^icon_music $text.pango-str()"
|
||||||
|
interval = 15
|
||||||
|
hide_when_empty = true
|
||||||
|
|
||||||
[[block]]
|
[[block]]
|
||||||
block = "custom"
|
block = "custom"
|
||||||
|
@ -7,15 +17,18 @@ command = "miniflux-unread-entries"
|
||||||
format = "^icon_bell <span color='#D2B83A'>$text.pango-str()</span>"
|
format = "^icon_bell <span color='#D2B83A'>$text.pango-str()</span>"
|
||||||
interval = 600
|
interval = 600
|
||||||
hide_when_empty = true
|
hide_when_empty = true
|
||||||
|
[[block.click]]
|
||||||
|
button = "left"
|
||||||
|
cmd = "xdg-open https://rss.azedia.lan"
|
||||||
|
|
||||||
[[block]]
|
[[block]]
|
||||||
block = "time"
|
block = "time"
|
||||||
format = "$timestamp.datetime(f:'%H:%M')"
|
format = "^icon_bunny $timestamp.datetime(f:'%H:%M')"
|
||||||
interval = 5
|
interval = 5
|
||||||
timezone = "US/Central"
|
timezone = "US/Central"
|
||||||
|
|
||||||
[[block]]
|
[[block]]
|
||||||
block = "time"
|
block = "time"
|
||||||
format = "$timestamp.datetime(f:'%H:%M')"
|
format = "^icon_bear $timestamp.datetime(f:'%H:%M')"
|
||||||
interval = 5
|
interval = 5
|
||||||
timezone = "Europe/Brussels"
|
timezone = "Europe/Brussels"
|
||||||
|
|
Loading…
Reference in New Issue