This pull request introduces a new Applications widget that displays a user-defined list of application launchers in the UI. Each app entry supports an icon, a label, and executes its configured command on click.
The design of this widget is inspired by the Applications Widget of YASB Reborn. I personally missed this functionality and aimed to bring a similar experience to komorebi-bar.
Features
Declarative configuration via ApplicationsConfig and per-app AppConfig.
Supports display modes: icon-only, text-only, or icon + text.
Icons can be:
loaded from image files (.png, .ico, etc.)
extracted from executable files on Windows (e.g. .exe)
Optional display of the launch command on hover.
Limitations
Only image-based icons and Windows .exe embedded icons are currently supported. I made the attempt to support glyph icons from Nerd Fonts, but it failed—most likely due to the font not being properly loaded or for another reason. This may be revisited in the future.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/LGUG2Z/komorebi/pull/1415
**Author:** [@JustForFun88](https://github.com/JustForFun88)
**Created:** 4/21/2025
**Status:** ✅ Merged
**Merged:** 4/27/2025
**Merged by:** [@LGUG2Z](https://github.com/LGUG2Z)
**Base:** `master` ← **Head:** `Applications`
---
### 📝 Commits (1)
- [`24351eb`](https://github.com/LGUG2Z/komorebi/commit/24351ebd944bfd05ed702b3b8ac70a888bc5c7b2) Add Applications widget with possibility to use
### 📊 Changes
**5 files changed** (+688 additions, -1 deletions)
<details>
<summary>View changed files</summary>
➕ `komorebi-bar/src/widgets/applications.rs` (+333 -0)
📝 `komorebi-bar/src/widgets/komorebi.rs` (+1 -1)
📝 `komorebi-bar/src/widgets/mod.rs` (+1 -0)
📝 `komorebi-bar/src/widgets/widget.rs` (+5 -0)
📝 `schema.bar.json` (+348 -0)
</details>
### 📄 Description
This pull request introduces a new Applications widget that displays a user-defined list of application launchers in the UI. Each app entry supports an icon, a label, and executes its configured command on click.
The design of this widget is inspired by the **Applications Widget** of **YASB Reborn**. I personally missed this functionality and aimed to bring a similar experience to `komorebi-bar`.
## Features
- Declarative configuration via ApplicationsConfig and per-app AppConfig.
- Supports display modes: icon-only, text-only, or icon + text.
- Icons can be:
- loaded from image files (.png, .ico, etc.)
- extracted from executable files on Windows (e.g. .exe)
- Optional display of the launch command on hover.
## Limitations
Only image-based icons and Windows .exe embedded icons are currently supported. I made the attempt to support glyph icons from Nerd Fonts, but it failed—most likely due to the font not being properly loaded or for another reason. This may be revisited in the future.
## Example Configuration
```json
{
"Applications": {
"enable": true,
"show_launched": true,
"display": "Icon",
"applications": [
{
"name": "Quick Settings",
"icon": ".../settings-2.png",
"command": "explorer.exe ms-actioncenter:controlcenter/true"
},
{
"name": "Task Manager",
"icon": ".../Windows_Task_Manager_Icon.png",
"command": "cmd /c Taskmgr"
},
{
"name": "WezTerm",
"command": "C:\\Program Files\\WezTerm\\wezterm-gui.exe"
},
{
"name": "VS Code",
"command": "C:\\Program Files\\Microsoft VS Code\\Code.exe"
}
]
}
}
```
## Full Configuration Schema
Below is the full set of available configuration options for the Applications widget:
**Applications (root)**
| Field | Type | Default | Description |
|----------------|----------|-------------|----------------------------------------------------------------------------|
| enable | bool | required | Enables or disables the applications widget |
| show_launched | bool | false | *(optional)* Show the launch command on hover |
| spacing | f32 | -- | *(optional)* Horizontal spacing (in pixels) between application buttons |
| display | string | "Icon" | *(optional)* Default **Display Format** for all applications |
| applications | array | required | List of application entries. Each item must follow `applications` config |
**applications (per application entry)**
| Field | Type | Default | Description |
|----------------|----------|------------------------------------|--------------------------------------------------------------------|
| enable | bool | inherited from Applications | *(optional)* Enables or disables this individual app entry |
| show_launched | bool | inherited from Applications | *(optional)* Show launch command on hover |
| name | string | required | Display name of the application |
| icon | string | extracted from executable (if any) | *(optional)* Path to an image file to use as the icon |
| command | string | required | Command to execute (e.g. path to the application or shell command) |
| display | string | inherited from Applications | *(optional)* **Display Format**: "Icon", "Text", or "IconAndText" |
**Display Format (string values)**
| Value | Description |
|----------------|--------------------------------------|
| "Icon" | Show only the application icon |
| "Text" | Show only the application name |
| "IconAndText" | Show both icon and name |
https://github.com/user-attachments/assets/80077210-8b67-4f4e-bc03-f523821aa5e3
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/LGUG2Z/komorebi/pull/1415
Author: @JustForFun88
Created: 4/21/2025
Status: ✅ Merged
Merged: 4/27/2025
Merged by: @LGUG2Z
Base:
master← Head:Applications📝 Commits (1)
24351ebAdd Applications widget with possibility to use📊 Changes
5 files changed (+688 additions, -1 deletions)
View changed files
➕
komorebi-bar/src/widgets/applications.rs(+333 -0)📝
komorebi-bar/src/widgets/komorebi.rs(+1 -1)📝
komorebi-bar/src/widgets/mod.rs(+1 -0)📝
komorebi-bar/src/widgets/widget.rs(+5 -0)📝
schema.bar.json(+348 -0)📄 Description
This pull request introduces a new Applications widget that displays a user-defined list of application launchers in the UI. Each app entry supports an icon, a label, and executes its configured command on click.
The design of this widget is inspired by the Applications Widget of YASB Reborn. I personally missed this functionality and aimed to bring a similar experience to
komorebi-bar.Features
Limitations
Only image-based icons and Windows .exe embedded icons are currently supported. I made the attempt to support glyph icons from Nerd Fonts, but it failed—most likely due to the font not being properly loaded or for another reason. This may be revisited in the future.
Example Configuration
Full Configuration Schema
Below is the full set of available configuration options for the Applications widget:
Applications (root)
applicationsconfigapplications (per application entry)
Display Format (string values)
https://github.com/user-attachments/assets/80077210-8b67-4f4e-bc03-f523821aa5e3
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.