taffybar: refine tray icon priorities and icon lookup
This commit is contained in:
@@ -19,6 +19,8 @@ priorities:
|
||||
priority: 0
|
||||
- key: item-id:udiskie
|
||||
priority: 0
|
||||
- key: icon-name:audio-volume-low
|
||||
priority: -1
|
||||
- key: item-id:blueman
|
||||
priority: -1
|
||||
- key: item-id:chrome_status_icon_1
|
||||
@@ -27,6 +29,8 @@ priorities:
|
||||
priority: -1
|
||||
- key: item-id:systray_6518
|
||||
priority: -1
|
||||
- key: process:tailscale
|
||||
priority: -1
|
||||
- key: item-id:spotify-client
|
||||
priority: -2
|
||||
- key: item-id:systray_6428
|
||||
|
||||
@@ -61,7 +61,6 @@ import System.Taffybar.Widget.SNITray.PrioritizedCollapsible
|
||||
import qualified System.Taffybar.Widget.ScreenLock as ScreenLock
|
||||
import System.Taffybar.Widget.Util (backgroundLoop, buildContentsBox, buildIconLabelBox, loadPixbufByName, widgetSetClassGI)
|
||||
import qualified System.Taffybar.Widget.Wlsunset as Wlsunset
|
||||
import qualified System.Taffybar.Widget.Workspaces.Hyprland as Hyprland
|
||||
import qualified System.Taffybar.Widget.Workspaces as Workspaces
|
||||
import System.Taffybar.WindowIcon (pixBufFromColor)
|
||||
import Text.Printf (printf)
|
||||
@@ -171,13 +170,25 @@ isPathCandidate name =
|
||||
T.isInfixOf "/" name
|
||||
|| any (`T.isSuffixOf` name) [".png", ".svg", ".xpm"]
|
||||
|
||||
workspaceCandidateInfo :: Text -> WorkspaceModel.WindowInfo
|
||||
workspaceCandidateInfo name =
|
||||
WorkspaceModel.WindowInfo
|
||||
{ WorkspaceModel.windowIdentity = WorkspaceModel.HyprlandWindowIdentity "",
|
||||
WorkspaceModel.windowTitle = "",
|
||||
WorkspaceModel.windowClassHints = [name],
|
||||
WorkspaceModel.windowPosition = Nothing,
|
||||
WorkspaceModel.windowUrgent = False,
|
||||
WorkspaceModel.windowActive = False,
|
||||
WorkspaceModel.windowMinimized = False
|
||||
}
|
||||
|
||||
workspaceIconFromCandidate :: Int32 -> Text -> TaffyIO (Maybe Gdk.Pixbuf)
|
||||
workspaceIconFromCandidate size name
|
||||
| isPathCandidate name =
|
||||
liftIO $ getPixbufFromFilePath (T.unpack name)
|
||||
| otherwise =
|
||||
maybeTCombine
|
||||
(Hyprland.getWindowIconFromDesktopEntryByAppId size (T.unpack name))
|
||||
(Workspaces.getWindowIconPixbufFromDesktopEntry size (workspaceCandidateInfo name))
|
||||
(liftIO $ loadPixbufByName size name)
|
||||
|
||||
workspaceManualIconGetter :: Workspaces.WindowIconPixbufGetter
|
||||
@@ -559,7 +570,7 @@ mkSimpleTaffyConfig hostName backend cssFiles =
|
||||
centerWidgets = [clockWidget],
|
||||
endWidgets = endWidgetsForHost hostName,
|
||||
barLevels = Nothing,
|
||||
barPosition = Top,
|
||||
barPosition = Bottom,
|
||||
widgetSpacing = 0,
|
||||
barPadding = 4,
|
||||
barHeight = ScreenRatio $ 1 / 33,
|
||||
|
||||
Reference in New Issue
Block a user