feat(workspace): map client classes to application icons (#368)

* feat(workspace): map client classes to application icons

* refactor: extract app icon detection

* feat: hide duplicate icons per workspace

* feat: use dedicated icons for empty workspace and fallback

* provide default icons

* feat: title or class matcher can no provided as regex

* style: change option description

* style: use more descriptive param name

* style: fix comment

* fix(lint): missing return type

* refactor: move type definitions into separate file

* feat: defined default app icon set

* docs: change option subtitles

* style: change icons

* fix: add missing default variant

---------

Co-authored-by: Jas Singh <jaskiratpal.singh@outlook.com>
This commit is contained in:
Daniel Pfefferkorn
2024-10-28 04:11:42 +01:00
committed by GitHub
parent 25753e5f17
commit 4e2a774c7e
7 changed files with 186 additions and 5 deletions

View File

@@ -14,7 +14,7 @@ import {
import { MatugenScheme, MatugenTheme, MatugenVariations } from 'lib/types/options';
import { UnitType } from 'lib/types/weather';
import { Transition } from 'lib/types/widget';
import { WorkspaceIcons, WorkspaceIconsColored } from 'lib/types/workspace';
import { ApplicationIcons, WorkspaceIcons, WorkspaceIconsColored } from 'lib/types/workspace';
// WARN: CHANGING THESE VALUES WILL PREVENT MATUGEN COLOR GENERATION FOR THE CHANGED VALUE
export const colors = {
@@ -868,6 +868,11 @@ const options = mkOptions(OPTIONS, {
ignored: opt(''),
show_numbered: opt(false),
showWsIcons: opt(false),
showApplicationIcons: opt(false),
applicationIconOncePerWorkspace: opt(true),
applicationIconMap: opt<ApplicationIcons>({}),
applicationIconFallback: opt('󰣆'),
applicationIconEmptyWorkspace: opt(''),
numbered_active_indicator: opt<ActiveWsIndicator>('underline'),
icons: {
available: opt(''),