From 37e55957fbf411b928184465acb2b1ecd5ca6852 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Fri, 17 Jan 2025 22:20:56 +0100 Subject: mako --- accounts/gkleen@sif/taffybar/src/taffybar.hs | 89 ---------------------------- 1 file changed, 89 deletions(-) delete mode 100644 accounts/gkleen@sif/taffybar/src/taffybar.hs (limited to 'accounts/gkleen@sif/taffybar/src/taffybar.hs') diff --git a/accounts/gkleen@sif/taffybar/src/taffybar.hs b/accounts/gkleen@sif/taffybar/src/taffybar.hs deleted file mode 100644 index 67ee942d..00000000 --- a/accounts/gkleen@sif/taffybar/src/taffybar.hs +++ /dev/null @@ -1,89 +0,0 @@ -{-# LANGUAGE OverloadedStrings #-} - -module Main where - -import System.Taffybar (startTaffybar) -import System.Taffybar.Context (TaffybarConfig(..)) -import System.Taffybar.Hooks -import System.Taffybar.SimpleConfig hiding (SimpleTaffyConfig(cssPaths)) -import System.Taffybar.Widget -import qualified System.Taffybar.Widget.Clock as MyClock -import System.Taffybar.Widget.TooltipBattery - -import Data.Time.Format -import Data.Time.LocalTime -import Data.Time.Calendar.WeekDate - -import qualified Data.Text as T - -import Control.Exception (SomeException, try) -import Control.Monad.Trans.Reader (mapReaderT) - -import Paths_gkleen_sif_taffybar - -import System.Log.Logger - - -main :: IO () -main = do - logger <- getLogger "System.Taffybar" - saveGlobalLogger $ setLevel INFO logger - - myCssPath <- getDataFileName "taffybar.css" - startTaffybar taffybarConfig{ cssPaths = pure myCssPath } - - -taffybarConfig :: TaffybarConfig -taffybarConfig = - let myWorkspacesConfig = - defaultWorkspacesConfig - { maxIcons = Just 0 - , widgetGap = 7 - , showWorkspaceFn = \case - -- Workspace{ workspaceState = Empty } -> False - Workspace{ workspaceName } | workspaceName == "NSP" -> False - _other -> True - , getWindowIconPixbuf = \i d -> either (\(_ :: SomeException) -> Nothing) id <$> mapReaderT try (defaultGetWindowIconPixbuf i d) - , urgentWorkspaceState = True - } - workspaces = workspacesNew myWorkspacesConfig - clock = MyClock.textClockNewWith MyClock.defaultClockConfig - { MyClock.clockUpdateStrategy = MyClock.RoundedTargetInterval 1 0.0 - , MyClock.clockFormat = \tl zt@ZonedTime{ zonedTimeToLocalTime = LocalTime{ localDay } } - -> let date = formatTime tl "%Y-%m-%d" localDay - weekdate = "W" <> show2 woy <> "-" <> show dow - where (_, woy, dow) = toWeekDate localDay - show2 :: Int -> String - show2 x = replicate (2 - length s) '0' ++ s - where s = show x - time = formatTime tl "%H:%M:%S%Ez" zt - in T.intercalate " " $ map T.pack [weekdate, date, time] - } - layout = layoutNew defaultLayoutConfig - windowsW = windowsNew defaultWindowsConfig - { getMenuLabel = truncatedGetMenuLabel 80 - , getActiveLabel = truncatedGetActiveLabel 80 - } - worktime = commandRunnerNew 60 "worktime" [] "worktime" - worktimeToday = commandRunnerNew 60 "worktime" ["today"] "worktime today" - -- See https://github.com/taffybar/gtk-sni-tray#statusnotifierwatcher - -- for a better way to set up the sni tray - -- tray = sniTrayThatStartsWatcherEvenThoughThisIsABadWayToDoIt - tray = sniTrayNew - myConfig = defaultSimpleTaffyConfig - { startWidgets = - workspaces : map (>>= buildContentsBox) [ layout, windowsW ] - , endWidgets = map (>>= buildContentsBox) $ reverse - -- , mpris2New - [ worktime, worktimeToday - , clock - , tray - , batteryIconTooltipNew "$status$ $percentage$%$if(time)$$if(rate)$ ($rate$W $time$)$else$ ($time$)$endif$$elseif(rate)$ ($rate$W)$endif$" - ] - , barPosition = Top - , barPadding = 2 - , barHeight = ExactSize 28 - , widgetSpacing = 10 - } - in withBatteryRefresh $ withLogServer $ - withToggleServer $ toTaffyConfig myConfig -- cgit v1.2.3