Skip to content

GlenR2D2/PanelLauncher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

PanelLauncher

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.

Overview

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.

Default

DarkBlue

Emerald

FirstTab

Display

Bookmark

Features

  • 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

Configuration Files

Some examples can be found under Examples folder

1. config.json

The main configuration file that controls the application behavior and theme.

Properties

Window Settings
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"
Theme Configuration

All theme properties are nested under the theme object.

Background
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"
Header
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
Tabs
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
Buttons
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
Group Boxes
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
Footer
Property Type Default Description
footerBackground string "#783CBD" Footer background color
footerBorderColor string "#BC9C16" Footer border color
footerTextColor string "#C9D1D1" Footer text color
Slider
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)
Status Messages

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

2. systemapp.json

Defines custom applications to display in the System Tools tab.

Properties

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

3. bookmark.json

Fallback bookmark configuration if browser policy bookmarks are not available.

Properties

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

4. browser_rules.json

Defines rules for opening specific URLs in specific browsers with custom arguments.

Root Properties

Property Type Required Description
defaultBrowser string No Browser key to use by default
browsers object Yes Browser configurations
rules array Yes URL routing rules

Browser Configuration

Property Type Required Description
path string Yes Full path to browser executable
defaultArguments string No Default command-line arguments

Rule Properties

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.


Keyboard Shortcuts

  • Escape: Close the application
  • Alt+F4: Close the application

File Locations

All configuration files should be placed in the same directory as the executable:

PanelLauncher.exe
config.json
systemapp.json
bookmark.json
browser_rules.json

Browser Bookmark Integration

The application can load bookmarks directly from Chrome or Edge browser policies:

Chrome

  • Registry: HKLM\SOFTWARE\Policies\Google\Chrome\ManagedBookmarks
  • Registry: HKCU\SOFTWARE\Policies\Google\Chrome\ManagedBookmarks

Edge

  • 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.


Tips & Best Practices

Colors

  • Use hex color codes: #RRGGBB
  • Named colors are also supported: "White", "Black", "Red", etc.
  • For transparency, use "Transparent"

Paths

  • 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

Icons

  • Supported formats: .ico, .png, .jpg
  • You can also specify an .exe path to extract its embedded icon
  • If no icon is specified, no icon will be displayed

Slider Customization

  • sliderScaleX and sliderScaleY control thumb size
  • Values: 1.0 = normal size, 2.0 = double size, etc.
  • Recommended: X=1.0, Y=2.0-3.0 for comfortable touch targets

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages