That project came up since I worked on Windows MultiApp kiosk mode with panel PC. At the begining I was focused only on native management, but dealing with bookmarks on a panel is not really user friendly. So, instead of reviewing everything, that solution came up to handle existing work made on bookmarks.
PanelLauncher is a customizable WPF application launcher that provides a full-screen interface for launching applications, Web sites from managed bookmarks, and controlling system settings like display brightness and scaling.
- Custom Application Launcher: Launch your favorite applications with custom icons
- Bookmark Management: Load bookmarks from Chrome/Edge policies or from a local file
- Display Controls: Adjust monitor brightness and display scaling
- Browser Rules: Open specific URLs in different browsers with custom arguments
- Fully Customizable Theme: Configure colors, backgrounds, and styling via JSON
- Tabbed Interface: Organize content in multiple tabs
Some examples can be found under Examples folder
The main configuration file that controls the application behavior and theme.
| Property | Type | Default | Description |
|---|---|---|---|
windowStyle |
string | "None" |
Window border style: "None", "SingleBorderWindow", "ThreeDBorderWindow", "ToolWindow" |
bookmarkSource |
string | "chrome" |
Browser to load bookmarks from: "chrome" or "edge" |
All theme properties are nested under the theme object.
| Property | Type | Default | Description |
|---|---|---|---|
backgroundColor |
string | "#3D3834" |
Main window background color (hex) |
backgroundImage |
string | "" |
Path to background image (absolute path) |
backgroundImageStretch |
string | "UniformToFill" |
Image stretch mode: "None", "Fill", "Uniform", "UniformToFill" |
| Property | Type | Default | Description |
|---|---|---|---|
headerBackground |
string | "#783CBD" |
Header background color |
headerBorderColor |
string | "#BC9C16" |
Header border color |
headerTitle |
string | "Application Launcher" |
Header title text |
headerTitleColor |
string | "#F3DCAC" |
Header title text color |
headerLogo |
string | "" |
Path to logo image (absolute path) |
exitButtonBackground |
string | "#BC9C16" |
Exit button background color |
exitButtonForeground |
string | "#3D3834" |
Exit button text color |
exitButtonHoverBackground |
string | "#F3DCAC" |
Exit button hover color |
| Property | Type | Default | Description |
|---|---|---|---|
tabBackground |
string | "#783CBD" |
Tab background color |
tabForeground |
string | "#C9D1D1" |
Tab text color |
tabBorderColor |
string | "#BC9C16" |
Tab border color |
tabSelectedBackground |
string | "#BC9C16" |
Selected tab background |
tabSelectedForeground |
string | "#3D3834" |
Selected tab text color |
tabHoverBackground |
string | "#C7ADE5" |
Tab hover color |
systemToolsTabBackground |
string | "Transparent" |
System Tools tab content background |
systemToolsTabName |
string | "System Tools" |
System Tools tab display name |
displayTabName |
string | "Display" |
Display tab display name |
| Property | Type | Default | Description |
|---|---|---|---|
buttonBackground |
string | "#783CBD" |
Button background color |
buttonForeground |
string | "#F3DCAC" |
Button text color |
buttonBorderColor |
string | "#BC9C16" |
Button border color |
buttonHoverBackground |
string | "#BC9C16" |
Button hover background |
buttonHoverForeground |
string | "#3D3834" |
Button hover text color |
scaleButtonSelectedBackground |
string | "#BC9C16" |
Selected scale button background |
scaleButtonSelectedForeground |
string | "#3D3834" |
Selected scale button text color |
| Property | Type | Default | Description |
|---|---|---|---|
groupBoxBackground |
string | "#783CBD" |
Group box background color |
groupBoxForeground |
string | "#F3DCAC" |
Group box text color |
groupBoxBorderColor |
string | "#BC9C16" |
Group box border color |
groupBoxBrightnessTitle |
string | "Screen Brightness" |
Brightness group box title |
groupBoxScaleTitle |
string | "Display Scale" |
Scale group box title |
groupBoxApplicationsTitle |
string | "Applications" |
Applications group box title |
| Property | Type | Default | Description |
|---|---|---|---|
footerBackground |
string | "#783CBD" |
Footer background color |
footerBorderColor |
string | "#BC9C16" |
Footer border color |
footerTextColor |
string | "#C9D1D1" |
Footer text color |
| Property | Type | Default | Description |
|---|---|---|---|
sliderThumbColor |
string | "#783CBD" |
Slider thumb fill color |
sliderThumbBorderColor |
string | "#BC9C16" |
Slider thumb border color |
sliderThumbHoverColor |
string | "#BC9C16" |
Slider thumb hover/drag color |
sliderTrackFillColor |
string | "#C7ADE5" |
Slider filled track color (left side) |
sliderTrackBackgroundColor |
string | "LightGray" |
Slider empty track color (right side) |
sliderScaleX |
number | 1.0 |
Horizontal scale factor (1.0 = normal) |
sliderScaleY |
number | 2.5 |
Vertical scale factor (2.5 = 2.5x larger) |
Custom status messages displayed in the footer. Support string formatting with {0}, {1}, etc.
| Key | Default | Parameters |
|---|---|---|
default |
"Click on any application or bookmark to launch" |
None |
launching |
"Launching {0}..." |
{0} = Application/Bookmark name |
launchError |
"Failed to launch {0}" |
{0} = Application name |
launchUrlError |
"Failed to open URL for {0}" |
{0} = Bookmark name |
scaleChanged |
"Display scale changed to {0}" |
{0} = Scale value (e.g., "125%") |
scaleError |
"Failed to change display scale" |
None |
Defines custom applications to display in the System Tools tab.
| Property | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Display name for the application |
path |
string | Yes | Full path to the executable |
arguments |
string | No | Command-line arguments to pass |
icon |
string | No | Path to icon file (.ico, .png) or path to .exe to extract icon |
Fallback bookmark configuration if browser policy bookmarks are not available.
| Property | Type | Required | Description |
|---|---|---|---|
toplevel_name |
string | No | Internal identifier (filter these out) |
name |
string | Yes | Display name for bookmark or folder |
url |
string | No | URL for direct bookmarks |
children |
array | No | Nested bookmarks/folders |
Defines rules for opening specific URLs in specific browsers with custom arguments.
| Property | Type | Required | Description |
|---|---|---|---|
defaultBrowser |
string | No | Browser key to use by default |
browsers |
object | Yes | Browser configurations |
rules |
array | Yes | URL routing rules |
| Property | Type | Required | Description |
|---|---|---|---|
path |
string | Yes | Full path to browser executable |
defaultArguments |
string | No | Default command-line arguments |
| Property | Type | Required | Description |
|---|---|---|---|
name |
string | No | Rule description |
urlPattern |
string | No | Match URLs containing this string |
bookmarkName |
string | No | Match exact bookmark name |
browser |
string | Yes | Browser key to use |
arguments |
string | No | Additional arguments for this rule |
Note: Rules are evaluated in order. Either urlPattern or bookmarkName must be specified.
- Escape: Close the application
- Alt+F4: Close the application
All configuration files should be placed in the same directory as the executable:
PanelLauncher.exe
config.json
systemapp.json
bookmark.json
browser_rules.json
The application can load bookmarks directly from Chrome or Edge browser policies:
- Registry:
HKLM\SOFTWARE\Policies\Google\Chrome\ManagedBookmarks - Registry:
HKCU\SOFTWARE\Policies\Google\Chrome\ManagedBookmarks
- Registry:
HKLM\SOFTWARE\Policies\Microsoft\Edge\ManagedFavorites - Registry:
HKCU\SOFTWARE\Policies\Microsoft\Edge\ManagedFavorites
If no policy bookmarks are found, the application falls back to bookmark.json.
- Use hex color codes:
#RRGGBB - Named colors are also supported:
"White","Black","Red", etc. - For transparency, use
"Transparent"
- Always use double backslashes in Windows paths:
C:\\Path\\To\\File.exe - Or use forward slashes:
C:/Path/To/File.exe - Relative paths are relative to the executable location
- Supported formats:
.ico,.png,.jpg - You can also specify an
.exepath to extract its embedded icon - If no icon is specified, no icon will be displayed
sliderScaleXandsliderScaleYcontrol thumb size- Values:
1.0= normal size,2.0= double size, etc. - Recommended:
X=1.0,Y=2.0-3.0for comfortable touch targets





