Source code for i3pystatus.pianobar

from i3pystatus import IntervalModule


[docs]class Pianobar(IntervalModule): """ Shows the title and artist name of the current music In pianobar config file must be setted the fifo and event_command options (see man pianobar for more information) For the event_cmd use: https://github.com/jlucchese/pianobar/blob/master/contrib/pianobar-song-i3.sh Mouse events: - Left click play/pauses - Right click plays next song - Scroll up/down changes volume """ settings = ( ("format"), ("songfile", "File generated by pianobar eventcmd"), ("ctlfile", "Pianobar fifo file"), ("color", "The color of the text"), ) format = "{songtitle} -- {songartist}" required = ("format", "songfile", "ctlfile") color = "#FFFFFF" on_leftclick = "playpause" on_rightclick = "next_song" on_upscroll = "increase_volume" on_downscroll = "decrease_volume" def run(self): with open(self.songfile, "r") as f: contents = f.readlines() sn = contents[0].strip() sa = contents[1].strip() self.output = { "full_text": self.format.format(songtitle=sn, songartist=sa), "color": self.color } def playpause(self): open(self.ctlfile, "w").write("p") def next_song(self): open(self.ctlfile, "w").write("n") def increase_volume(self): open(self.ctlfile, "w").write(")") def decrease_volume(self): open(self.ctlfile, "w").write("(")