diff options
| author | Arpit Chakladar <arpit@chakladar.me> | 2026-10-10 05:13:35 +0530 |
|---|---|---|
| committer | Arpit Chakladar <arpit@chakladar.me> | 2026-10-10 05:13:35 +0530 |
| commit | 89115e2fd99176f0a9942c1cdbb1ea18c684a152 (patch) | |
| tree | 14889871bb0271e6f3506a004f59b5916a05211b /modules/desktop | |
| parent | 42911d0ce4c8231a6f9ee5718550a9a2531142ec (diff) | |
| download | home-manager-config-89115e2fd99176f0a9942c1cdbb1ea18c684a152.tar.gz home-manager-config-89115e2fd99176f0a9942c1cdbb1ea18c684a152.zip | |
fix(eww): resolve terminal app icons
Diffstat (limited to 'modules/desktop')
| -rw-r--r-- | modules/desktop/eww/bar/bar.nix | 11 | ||||
| -rw-r--r-- | modules/desktop/eww/bar/niri-status.lua | 18 |
2 files changed, 26 insertions, 3 deletions
diff --git a/modules/desktop/eww/bar/bar.nix b/modules/desktop/eww/bar/bar.nix index 009b28c..98b4003 100644 --- a/modules/desktop/eww/bar/bar.nix +++ b/modules/desktop/eww/bar/bar.nix @@ -78,7 +78,16 @@ niri-status = mkLuaScript { name = "niri-status"; - path = ./niri-status.lua; + path = pkgs.writeText "eww-niri-status.lua" ( + builtins.replaceStrings + [ "@@impala-icon@@" "@@bluetui-icon@@" "@@yazi-icon@@" ] + [ + config.desktop.icons.apps.impala + config.desktop.icons.apps.bluetui + config.desktop.icons.apps.yazi + ] + (builtins.readFile ./niri-status.lua) + ); description = "Emit workspace and active window information list."; luaPackages = ps: [ ps.lgi diff --git a/modules/desktop/eww/bar/niri-status.lua b/modules/desktop/eww/bar/niri-status.lua index cdeb89b..c54aa9b 100644 --- a/modules/desktop/eww/bar/niri-status.lua +++ b/modules/desktop/eww/bar/niri-status.lua @@ -74,6 +74,11 @@ do end local icon_cache = {} +local icon_aliases = { + impala = "@@impala-icon@@", + bluetui = "@@bluetui-icon@@", + ["file-explorer"] = "@@yazi-icon@@", +} local function g_list_to_table(gl) if gl == nil then @@ -125,15 +130,24 @@ local function resolve_icon_path(app_id) end end + local alias = icon_aliases[string.lower(app_id)] + if alias then + local ok_alias, lookup = pcall(icon_theme.lookup_icon, icon_theme, alias, 24, Gtk.IconLookupFlags.FORCE_SIZE) + if ok_alias and lookup then + icon_path = lookup:get_filename() or "" + end + end + local gicon = app_info and app_info:get_icon() - if gicon then + if icon_path == "" and gicon then local ok2, lookup = pcall(icon_theme.lookup_by_gicon, icon_theme, gicon, 24, Gtk.IconLookupFlags.FORCE_SIZE) if ok2 and lookup then icon_path = lookup:get_filename() or "" end end if icon_path == "" then - local ok2, lookup = pcall(icon_theme.lookup_icon, icon_theme, app_id, 24, Gtk.IconLookupFlags.FORCE_SIZE) + local icon_name = icon_aliases[string.lower(app_id)] or app_id + local ok2, lookup = pcall(icon_theme.lookup_icon, icon_theme, icon_name, 24, Gtk.IconLookupFlags.FORCE_SIZE) if ok2 and lookup then icon_path = lookup:get_filename() or "" end |
