forked from colonelpanic/dotfiles
		
	[taffybar] Simplify taffybar.hs
This commit is contained in:
		| @@ -27,11 +27,12 @@ extra-deps: | ||||
| - gi-gdkx11-3.0.2 | ||||
| - gi-gio-2.0.16 | ||||
| - gi-gtk-3.0.21 | ||||
| - gi-gtk-hs-0.3.6.1 | ||||
| - gi-pango-1.0.16 | ||||
| - gi-xlib-2.0.2 | ||||
| - gio-0.13.4.1 | ||||
| - gtk-sni-tray-0.1.3.0 | ||||
| - gtk-strut-0.1.2.0 | ||||
| - gtk-sni-tray-0.1.3.1 | ||||
| - gtk-strut-0.1.2.1 | ||||
| - gtk-traymanager-1.0.1 | ||||
| - gtk3-0.14.9 | ||||
| - haskell-gi-0.21.2 | ||||
|   | ||||
 Submodule dotfiles/config/taffybar/taffybar updated: 441f16f381...e6f0bf2e08
									
								
							| @@ -1,17 +1,35 @@ | ||||
| @define-color bg-color #000000; | ||||
| @define-color bg-tone #1E1E20; | ||||
| @define-color active-window-color #374140; | ||||
| @define-color urgent-window-color #D9CB9E; | ||||
| @define-color font-color #FFFFFF; | ||||
| @define-color transparent rgba(0.0, 0.0, 0.0, 0.0); | ||||
| @define-color white #FFFFFF; | ||||
| @define-color black #000000; | ||||
| @define-color taffy-blue #0c7cd5; | ||||
|  | ||||
| .InnerPad { | ||||
| @define-color active-window-color @white; | ||||
| @define-color urgent-window-color @taffy-blue; | ||||
| @define-color font-color @white; | ||||
| @define-color menu-background-color @white; | ||||
| @define-color menu-font-color @black; | ||||
|  | ||||
| /* Top level styling */ | ||||
|  | ||||
| .taffy-window * { | ||||
| 	font-family: "Noto Sans", sans-serif; | ||||
| 	font-size: 10pt; | ||||
| 	color: @font-color; | ||||
| } | ||||
|  | ||||
| .taffy-box { | ||||
| 	border-radius: 10px; | ||||
| 	background-color: rgba(0.0, 0.0, 0.0, 0.3); | ||||
| } | ||||
|  | ||||
| .inner-pad { | ||||
| 	padding-bottom: 5px; | ||||
| 	padding-top: 5px; | ||||
| 	padding-left: 2px; | ||||
| 	padding-right: 2px; | ||||
| } | ||||
|  | ||||
| .Contents { | ||||
| .contents { | ||||
| 	padding-bottom: 4px; | ||||
| 	padding-top: 4px; | ||||
| 	padding-right: 2px; | ||||
| @@ -20,94 +38,84 @@ | ||||
| 	border-radius: 5px; | ||||
| } | ||||
|  | ||||
| .Active .Contents, .Visible .Contents { | ||||
| /* Workspaces styling */ | ||||
|  | ||||
| .workspace-label { | ||||
| 	padding-right: 3px; | ||||
| 	padding-left: 2px; | ||||
| 	font-size: 12pt; | ||||
| } | ||||
|  | ||||
| .active .contents { | ||||
| 	background-color: rgba(0.0, 0.0, 0.0, 0.5); | ||||
| } | ||||
|  | ||||
| .WorkspaceLabel { | ||||
| 	padding-right: 3px; | ||||
| 	padding-left: 2px; | ||||
| 	font-size: 10pt; | ||||
| .visible .contents { | ||||
| 	background-color: rgba(0.0, 0.0, 0.0, 0.2); | ||||
| } | ||||
|  | ||||
| .Windows * { | ||||
| 	color: @bg-color; | ||||
| 	border-color: @bg-color; | ||||
| } | ||||
|  | ||||
| .TrayContainer { | ||||
| 	background-color: @urgent-window-color; | ||||
| 	padding: 20px; | ||||
| } | ||||
|  | ||||
| .TrayWidget { | ||||
| 	background-color: @urgent-window-color; | ||||
| 	padding: 20px; | ||||
| } | ||||
|  | ||||
| .TrayWidgetContainer { | ||||
| 	background-color: @urgent-window-color; | ||||
| 	padding: 20px; | ||||
| } | ||||
|  | ||||
| .TaffyBox { | ||||
| 	border-bottom: solid; | ||||
| 	border-width: 1px; | ||||
| 	border-color: #FFFFFF; | ||||
| 	background-color: rgba(0.0, 0.0, 0.0, 0.3); | ||||
| } | ||||
|  | ||||
| .Taffybar * { | ||||
| 	font-family: "Noto Sans", sans-serif; | ||||
| 	font-size: 10pt; | ||||
| 	color: @font-color; | ||||
| } | ||||
|  | ||||
| .Menu * { | ||||
| 	color: #FFFFFF; | ||||
| 	background-color: rgba(1.0, 1.0, 1.0, 1.0); | ||||
| } | ||||
|  | ||||
| .OuterPad * { | ||||
| 	background-color: rgba(1.0, 0.0, 0.0, 0.0); | ||||
| } | ||||
|  | ||||
| .OuterPad:focus { | ||||
| 	background-color: rgba(0.0, 0.0, 0.0, 0.3); | ||||
| 	box-shadow: inset 0 -3px #0c7cd5; | ||||
| } | ||||
|  | ||||
| .OuterPad *:hover { | ||||
| 	box-shadow: inset 0 -3px #0c7cd5; | ||||
| } | ||||
|  | ||||
| .IconImage { | ||||
| 	transition: opacity .5s, background-color .5s; | ||||
| 	opacity: 1; | ||||
| 	padding-bottom: 1px; | ||||
| 	padding-top: 1px; | ||||
| } | ||||
|  | ||||
| .IconContainer { | ||||
| 	border-bottom: 0px; | ||||
| 	transition: opacity .5s, box-shadow 1s; | ||||
| 	padding-bottom: 4px; | ||||
| .window-icon-container { | ||||
| 	transition: opacity .5s, box-shadow .5s; | ||||
| 	opacity: 1; | ||||
| } | ||||
|  | ||||
| .IconContainer.Active { | ||||
| 	border-color: rgba(255, 255, 255, 1.0); | ||||
| 	/* background-color: rgba(255, 255, 255, 0.3); */ | ||||
| 	border-radius: 0px; | ||||
| 	opacity: 1; | ||||
| 	box-shadow: inset 0 -1px #FFFFFF; | ||||
| /* This gives space for the box-shadow (they look like underlines) that follow. | ||||
|    This will actually affect all widgets, (not just the workspace icons), but | ||||
|    that is what we want since we want the icons to look the same. */ | ||||
| .auto-size-image, .sni-tray  { | ||||
| 	padding-top: 3px; | ||||
| 	padding-bottom: 3px; | ||||
| } | ||||
|  | ||||
| .IconContainer.Urgent { | ||||
| .window-icon-container.active { | ||||
| 	box-shadow: inset 0 -3px @white; | ||||
| } | ||||
|  | ||||
| .window-icon-container.urgent { | ||||
| 	box-shadow: inset 0 -3px @urgent-window-color; | ||||
| } | ||||
|  | ||||
| .IconContainer.Minimized .IconImage { | ||||
| 	transition: opacity .5s; | ||||
| .window-icon-container.inactive .window-icon { | ||||
|   padding: 0px; | ||||
| } | ||||
|  | ||||
| .window-icon-container.minimized .window-icon { | ||||
| 	opacity: .3; | ||||
| } | ||||
|  | ||||
| .window-icon { | ||||
| 	opacity: 1; | ||||
| 	transition: opacity .5s; | ||||
| } | ||||
|  | ||||
| /* Button styling */ | ||||
|  | ||||
| button { | ||||
| 	background-color: @transparent; | ||||
| 	border-width: 0px; | ||||
| 	border-radius: 0px; | ||||
| } | ||||
|  | ||||
| button:checked, button:hover .Contents:hover { | ||||
| 	box-shadow: inset 0 -3px @taffy-blue; | ||||
| } | ||||
|  | ||||
| /* Menu styling */ | ||||
|  | ||||
| /* The ".taffy-window" prefixed selectors are needed because if they aren't present, | ||||
|    the top level .Taffybar selector takes precedence */ | ||||
| .taffy-window menuitem *,  menuitem * { | ||||
| 	color: @menu-font-color; | ||||
| } | ||||
|  | ||||
| .taffy-window menuitem, menuitem { | ||||
| 	background-color: @menu-background-color; | ||||
| } | ||||
|  | ||||
| .taffy-window menuitem:hover, menuitem:hover { | ||||
| 	background-color: @taffy-blue; | ||||
| } | ||||
|  | ||||
| .taffy-window menuitem:hover > label, menuitem:hover > label { | ||||
| 	color: @white; | ||||
| } | ||||
|   | ||||
| @@ -1,28 +1,17 @@ | ||||
| {-# LANGUAGE PackageImports #-} | ||||
| module Main where | ||||
|  | ||||
| import qualified        Control.Concurrent.MVar as MV | ||||
| import                  Control.Exception.Base | ||||
| import                  Control.Monad | ||||
| import                  Control.Monad.IO.Class | ||||
| import                  Control.Monad.Trans.Class | ||||
| import                  Control.Monad.Trans.Reader | ||||
| import qualified        Data.ByteString.Char8 as BS | ||||
| import                  Data.GI.Base | ||||
| import                  Data.GI.Base.ManagedPtr | ||||
| import                  Data.List | ||||
| import                  Data.List.Split | ||||
| import qualified        Data.Map as M | ||||
| import                  Data.Maybe | ||||
| import                  Debug.Trace | ||||
| import                  Foreign.ForeignPtr | ||||
| import                  Foreign.Ptr | ||||
| import qualified        GI.Gtk as GI | ||||
| import qualified        GitHub.Auth as Auth | ||||
| import qualified "gtk3" Graphics.UI.Gtk as Gtk | ||||
| import qualified "gtk3" Graphics.UI.Gtk.Abstract.Widget as W | ||||
| import qualified "gtk3" Graphics.UI.Gtk.Layout.Table as T | ||||
| import                  Graphics.UI.Gtk.Types | ||||
| import                  StatusNotifier.Tray | ||||
| import                  System.Directory | ||||
| import                  System.Environment | ||||
| @@ -38,7 +27,6 @@ import                  System.Taffybar.Compat.GtkLibs | ||||
| import                  System.Taffybar.DBus | ||||
| import                  System.Taffybar.DBus.Toggle | ||||
| import                  System.Taffybar.Hooks | ||||
| import                  System.Taffybar.IconImages | ||||
| import                  System.Taffybar.Information.CPU | ||||
| import                  System.Taffybar.Information.EWMHDesktopInfo | ||||
| import                  System.Taffybar.Information.Memory | ||||
| @@ -51,18 +39,6 @@ import                  System.Taffybar.Widget.Util | ||||
| import                  System.Taffybar.Widget.Workspaces | ||||
| import                  Text.Printf | ||||
| import                  Text.Read hiding (lift) | ||||
| import                  Unsafe.Coerce | ||||
|  | ||||
| buildContentsBox widget = liftIO $ do | ||||
|   contents <- Gtk.hBoxNew False 0 | ||||
|   Gtk.containerAdd contents widget | ||||
|   _ <- widgetSetClass contents "Contents" | ||||
|   Gtk.widgetShowAll contents | ||||
|   buildPadBox contents | ||||
|  | ||||
| setMinWidth width widget = liftIO $ do | ||||
|   Gtk.widgetSetSizeRequest widget width (-1) | ||||
|   return widget | ||||
|  | ||||
| mkRGBA (r, g, b, a) = (r/256, g/256, b/256, a/256) | ||||
| blue = mkRGBA (42, 99, 140, 256) | ||||
| @@ -76,7 +52,7 @@ myGraphConfig = | ||||
|   { graphPadding = 0 | ||||
|   , graphBorderWidth = 0 | ||||
|   , graphWidth = 75 | ||||
|   , graphBackgroundColor = (1.0, 1.0, 1.0, 0.0) | ||||
|   , graphBackgroundColor = (0.0, 0.0, 0.0, 0.0) | ||||
|   } | ||||
|  | ||||
| netCfg = myGraphConfig | ||||
| @@ -112,19 +88,20 @@ workspaceNamesLabelSetter workspace = | ||||
|             liftX11Def [] getFullWorkspaceNames | ||||
|  | ||||
| logDebug = do | ||||
|   handler <- streamHandler stdout DEBUG | ||||
|   logger <- getLogger "System.Taffybar" | ||||
|   logger <- getLogger "System.Taffybar.Widget.Generic.AutoSizeImage" | ||||
|   saveGlobalLogger $ setLevel DEBUG logger | ||||
|   logger2 <- getLogger "StatusNotifier.Tray" | ||||
|   saveGlobalLogger $ setLevel DEBUG logger2 | ||||
|   workspacesLogger <- getLogger "System.Taffybar.Widget.Workspaces" | ||||
|   saveGlobalLogger $ setLevel WARNING workspacesLogger | ||||
|  | ||||
| github = do | ||||
|   Right (token, _) <- passGet "github-token" | ||||
|   githubNotificationsNew $ defaultGithubConfig $ Auth.OAuth $ BS.pack token | ||||
| -- github = do | ||||
| --   Right (token, _) <- passGet "github-token" | ||||
| --   githubNotificationsNew $ defaultGithubConfig $ Auth.OAuth $ BS.pack token | ||||
|  | ||||
| main = do | ||||
|   homeDirectory <- getHomeDirectory | ||||
|   logDebug | ||||
|   -- logDebug | ||||
|   let resourcesDirectory = homeDirectory </> ".lib" </> "resources" | ||||
|       inResourcesDirectory file = resourcesDirectory </> file | ||||
|       highContrastDirectory = | ||||
| @@ -155,7 +132,7 @@ main = do | ||||
|         , minWSWidgetSize = Nothing | ||||
|         , minIcons = 1 | ||||
|         , getIconInfo = myGetIconInfo | ||||
|         , windowIconSize = 31 | ||||
|         -- , windowIconSize = 31 | ||||
|         , widgetGap = 0 | ||||
|         , showWorkspaceFn = hideEmpty | ||||
|         , updateRateLimitMicroseconds = 100000 | ||||
| @@ -170,22 +147,25 @@ main = do | ||||
|           , textBatteryNew "$percentage$% ($time$)" | ||||
|           , batteryIconNew | ||||
|           , sniTrayNew | ||||
|           , github | ||||
|           -- , github | ||||
|           , cpu | ||||
|           , mem | ||||
|           , networkGraphNew netCfg Nothing | ||||
|           -- , networkMonitorNew defaultNetFormat Nothing >>= setMinWidth 200 | ||||
|           , fsMonitorNew 60 ["/dev/sdd2"] | ||||
|           -- , fsMonitorNew 60 ["/dev/sdd2"] | ||||
|           , mpris2New | ||||
|           ] | ||||
|         , barPosition = Top | ||||
|         , barPadding = 0 | ||||
|         , barHeight = 55 | ||||
|         , barPadding = 5 | ||||
|         , barHeight = 50 | ||||
|         , widgetSpacing = 0 | ||||
|         } | ||||
|       simpleTaffyConfig = | ||||
|         baseConfig | ||||
|   dyreTaffybar $ withBatteryRefresh $ withLogServer $ withToggleServer $ | ||||
|         -- { endWidgets = [] | ||||
|         -- , startWidgets = [flip widgetSetClass "Workspaces" =<< workspaces] | ||||
|         -- } | ||||
|   startTaffybar $ withBatteryRefresh $ withLogServer $ withToggleServer $ | ||||
|                 toTaffyConfig simpleTaffyConfig | ||||
|  | ||||
| -- Local Variables: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user