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