From 09141b9a589404fbfa1fabb34c458c7d03edd3f9 Mon Sep 17 00:00:00 2001 From: jao Date: Sun, 27 Jan 2019 23:12:27 +0000 Subject: Using monitor combiners to auto-switch mpd/mpris --- src/Bottom.hs | 8 +++----- src/lib/Bottom.hs | 2 +- src/lib/Config.hs | 6 +++++- src/lib/MPD.hs | 2 +- src/lib/Monitors.hs | 3 +-- src/lib/Mpris.hs | 4 ++-- src/lib/Music.hs | 16 ++++++++++++++++ 7 files changed, 29 insertions(+), 12 deletions(-) create mode 100644 src/lib/Music.hs (limited to 'src') diff --git a/src/Bottom.hs b/src/Bottom.hs index 4ff7265..a13662b 100644 --- a/src/Bottom.hs +++ b/src/Bottom.hs @@ -1,14 +1,12 @@ import Xmobar import Config -import qualified MPD -import qualified Mpris +import qualified Music import System.Environment (getArgs) + main :: IO () main = do args <- getArgs let mpris = if null args then "spotify" else last args - if mpris == "mpd" - then palette >>= configFromArgs . MPD.config >>= xmobar - else palette >>= configFromArgs . (Mpris.config mpris) >>= xmobar + palette >>= configFromArgs . Music.config mpris >>= xmobar diff --git a/src/lib/Bottom.hs b/src/lib/Bottom.hs index 1bbf359..176c3b3 100644 --- a/src/lib/Bottom.hs +++ b/src/lib/Bottom.hs @@ -7,7 +7,7 @@ import Monitors config cs tpl p = (baseConfig p) { position = BottomSize C 100 defaultHeight , textOffset = defaultHeight - 6 - , textOffsets = [defaultHeight - 5, defaultHeight - 6] + , textOffsets = [defaultHeight - 5, defaultHeight - 6, -1, defaultHeight - 5] , border = TopB , template = "|tray| \ \|tun0||wlp2s0wi| \ diff --git a/src/lib/Config.hs b/src/lib/Config.hs index 8351cce..7930a60 100644 --- a/src/lib/Config.hs +++ b/src/lib/Config.hs @@ -54,7 +54,11 @@ baseConfig p = defaultConfig { , borderColor = pBorder p , fgColor = (pForeground p) , bgColor = (pBackground p) - , additionalFonts = ["xft:Hack-7", "xft:Symbola-9", "xft:Symbola-8"] + , additionalFonts = [ "xft:Hack-7" + , "xft:Symbola-9" + , "xft:Symbola-8" + , "xft:IPA Gothic-10" + ] , border = NoBorder , alpha = (pAlpha p) , overrideRedirect = True diff --git a/src/lib/MPD.hs b/src/lib/MPD.hs index 6079bd3..986ce0d 100644 --- a/src/lib/MPD.hs +++ b/src/lib/MPD.hs @@ -2,6 +2,7 @@ module MPD where import Xmobar import Config (palette, defaultHeight) +import Monitors import qualified Bottom (config) mpd = MPD [ "-W", "12", "-b", "░", "-f", "▒", "-t" @@ -14,7 +15,6 @@ autoMPD = AutoMPD [ "-T", "150", "-E", "...", "-W", "10", "-t" \ \ \ "] - config p = (Bottom.config [Run mpd, Run autoMPD] "|mpd| |autompd|" p) { textOffsets = [defaultHeight - 7, defaultHeight - 6] diff --git a/src/lib/Monitors.hs b/src/lib/Monitors.hs index fb51893..d118ba7 100644 --- a/src/lib/Monitors.hs +++ b/src/lib/Monitors.hs @@ -86,8 +86,7 @@ diskU p = 20 diskIO p = - DiskIO [("dm-1" - , " ")] + DiskIO [("dm-1" , " ")] (p <~> ["-f", "░", "-b", " ", "-L", "200000", "-H" , "10000000" , "-W", "5", "-w", "5", "-p", "3"]) 10 diff --git a/src/lib/Mpris.hs b/src/lib/Mpris.hs index 4ae98d1..35caa51 100644 --- a/src/lib/Mpris.hs +++ b/src/lib/Mpris.hs @@ -6,9 +6,9 @@ import qualified Bottom (config) mpris client = Mpris2 client -- "clementine" -- - ["-t", " \ + ["-t", " \ \ <fc=sienna4><artist></fc>\ - \ <album> <length>" + \ <album> <length></fn>" , "-T", "180", "-E", "...", "-M", "100", "-x", ""] 10 config client p = Bottom.config [Run (mpris client)] "|mpris2|" p diff --git a/src/lib/Music.hs b/src/lib/Music.hs new file mode 100644 index 0000000..480d419 --- /dev/null +++ b/src/lib/Music.hs @@ -0,0 +1,16 @@ +module Music where + +import Xmobar +import Mpris +import MPD +import Monitors +import qualified Bottom + +compMPD = concatMonitor " " mpd autoMPD + +alt x = altMonitor (Mpris.mpris x) compMPD + +config cl = + if cl == "mpd" + then MPD.config + else Bottom.config [Run (alt cl)] "|mpris2_mpd_autompd|" -- cgit v1.2.3