From f48ce23c89e7821e126c5b8c67d04b60d311f5b6 Mon Sep 17 00:00:00 2001 From: Ivan Malison Date: Sun, 10 Sep 2017 18:20:04 -0700 Subject: [PATCH] [taffybar] Add a fallback icon when none can be found --- dotfiles/config/taffybar/taffybar.hs | 24 ++++++++++++------------ dotfiles/lib/resources/exe-icon.png | Bin 0 -> 168190 bytes 2 files changed, 12 insertions(+), 12 deletions(-) create mode 100644 dotfiles/lib/resources/exe-icon.png diff --git a/dotfiles/config/taffybar/taffybar.hs b/dotfiles/config/taffybar/taffybar.hs index bfc10e35..231a7ec7 100644 --- a/dotfiles/config/taffybar/taffybar.hs +++ b/dotfiles/config/taffybar/taffybar.hs @@ -126,16 +126,20 @@ main = do homeDirectory <- getHomeDirectory let resourcesDirectory = homeDirectory ".lib" "resources" inResourcesDirectory file = resourcesDirectory file - makeIcon = IIFilePath . inResourcesDirectory - myCustomIcon title klass + makeIcon = return . IIFilePath . inResourcesDirectory + myGetIconInfo w@WindowData {windowTitle = title, windowClass = klass} | "URxvt" `isInfixOf` klass = makeIcon "urxvt.png" - | "Termite" `isInfixOf` klass = makeIcon "urxvt.png" + | "Termite" `isInfixOf` klass = makeIcon "urxvt.png" | "Kodi" `isInfixOf` klass = makeIcon "kodi.png" | "@gmail.com" `isInfixOf` title && - "chrome" `isInfixOf` klass && - "Gmail" `isInfixOf` title = makeIcon "gmail.png" - | otherwise = IINone - myGetIconInfo = windowTitleClassIconGetter True myCustomIcon + "chrome" `isInfixOf` klass && "Gmail" `isInfixOf` title = + makeIcon "gmail.png" + | otherwise = do + res <- defaultGetIconInfo w + return $ + case res of + IINone -> IIFilePath $ inResourcesDirectory "exe-icon.png" + _ -> res (_, monNumber) = case monEither of Left _ -> (allMonitors, 0) @@ -182,14 +186,11 @@ main = do netMonitor = netMonitorMultiNew 1.5 interfaceNames pagerConfig = defaultPagerConfig - { useImages = True - , windowSwitcherFormatter = myFormatEntry - } + {useImages = True, windowSwitcherFormatter = myFormatEntry} -- pager = taffyPagerNew pagerConfig makeUnderline = underlineWidget hudConfig pgr <- pagerNew pagerConfig tray2 <- movableWidget tray - let hud = buildWorkspaceHUD hudConfig pgr los = makeUnderline (layoutSwitcherNew pgr) "red" wnd = makeUnderline (windowSwitcherNew pgr) "teal" @@ -209,7 +210,6 @@ main = do , barHeight = 50 , widgetSpacing = 5 } - withToggleSupport taffyConfig -- Local Variables: diff --git a/dotfiles/lib/resources/exe-icon.png b/dotfiles/lib/resources/exe-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7738da84098c13ff5c1a7d860d9b7759e71e2a42 GIT binary patch literal 168190 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 G$NvGY(cX&y literal 0 HcmV?d00001