Skip to content
This repository was archived by the owner on Sep 12, 2026. It is now read-only.
amnwebPublic archive

About

YASB GUI is a native configuration application for YASB Reborn. Built with WinUI 3, it provides a modern interface for managing your status bar configuration without manually editing YAML files.

Topics

Resources

Stars

65 stars

Watchers

0 watching

Forks

Latest commit

 

History

47 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YASB GUI

YASB GUI

Project Discontinued: Development and maintenance of YASB GUI have stopped due to lack of time. This app is outdated and no longer supported. Please refer to the official YASB documentation for configuring your status bar instead.

YASB GUI is a native configuration application for YASB Reborn (Yet Another Status Bar). Built with WinUI 3, it provides a modern interface for managing your status bar configuration without manually editing YAML files.

Note: This application is currently in beta. Some features may be incomplete or subject to change. Please report any issues on the GitHub Issues page.

Why a separate repository?

  • YASB GUI is maintained separately from YASB for several reasons:
  • Built with WinUI 3, which requires Windows App SDK dependencies not needed by YASB itself
  • Keeps YASB lightweight and focused on its core functionality without GUI framework bloat
  • Allows independent development cycles and easier maintenance for both projects
  • Users who prefer manual YAML editing don't need to install unnecessary GUI dependencies

Discord


Features

Visual Configuration Editor

  • Edit bars, widgets, and global settings through an intuitive interface
  • Monaco-based code editor with YAML syntax highlighting and validation
  • Real-time schema validation for configuration files

Widget Management

  • Add, remove, and configure widgets with a visual editor
  • Support for all YASB widget types
  • Widget-specific settings panels

Styles Editor

  • Built-in CSS editor for customizing your status bar appearance
  • Syntax highlighting and auto-completion

Environment Variables

  • Manage environment variables used by YASB
  • Easy key-value editing interface

Application Settings

  • Light, Dark, and System theme support
  • Multiple backdrop options: Mica, Mica Alt, and Acrylic
  • Multi-language support

Safety Features

  • Export configuration as ZIP backup
  • Unsaved changes detection with confirmation dialogs
  • Configuration validation before save

System Requirements

Component Requirement
Operating System Windows 10 (Build 17763+) or Windows 11
Runtime Windows App SDK Runtime
WebView Microsoft Edge WebView2 Runtime (included with Windows 10/11)

Installation

Download the latest release from the Releases page.

Add a widget using a docs snippet (how it actually works)

  1. Go to Widgets → Add Widget.
  2. Pick the widget from the built-in list.
  3. In the Options editor, paste only the options block from the docs-not the outer widgets: list. Real example (Weather widget) with nested options and indentation kept:
label: "<span>{icon}</span> {temp}"
label_alt: "{location}: Min {min_temp}, Max {max_temp}"
api_key: "YOUR_API_KEY"
show_alerts: true
tooltip: true
update_interval: 600
hide_decimal: true
units: metric
menu:
  blur: true
  round_corners: true
  round_corners_type: normal
  border_color: system
  alignment: center
  direction: down
  offset_top: 6
  offset_left: 0
icons:
  sunnyDay: "\ue30d"
  clearNight: "\ue32b"
  cloudyDay: "\ue312"
  cloudyNight: "\ue311"
  rainyDay: "\ue318"
  rainyNight: "\ue318"
  snowyIcy: "\ue31a"
  default: "\ue137"
callbacks:
  on_left: toggle_menu
  1. Save the widget, then hit Apply so YASB reloads the updated config.

Tips

Copy only the options section from the docs and paste it into the Options editor; the widget type is already set by your selection.

If indentation looks off, right-click in the editor and choose Fix indentation from the context menu.


Configuration

The application reads and writes YASB configuration from:

  • ~/.config/yasb/config.yaml
  • ~/.config/yasb/styles.css

To use a custom location, set the YASB_CONFIG_HOME environment variable.


Contributing Translations

YASB GUI supports multiple languages. Translation files are located in app/core/locales/.

To add a new language:

  1. Copy en.json and rename it using the language code (e.g., fr.json for French)
  2. Update _language_name and _language_code at the top of the file
  3. Translate all string values while keeping the keys unchanged
  4. Do not modify placeholders (e.g., {variable}) within the strings
  5. Do not chnage the JSON structure
  6. Submit a pull request

Building from Source

Development Setup

git clone https://github.com/amnweb/yasb-gui.git
cd yasb-gui
pip install -e .
python app/main.py

Building Executable

pip install .[build]
python app/scripts/build.py build

The executable will be created in the dist/ directory.

Building MSIX Package

After building the executable, you can create an MSIX package:

python app/scripts/build_msix.py

The MSIX will be created in the msix/ directory.

Options:

  • --arch x64|aarch64 - Target architecture (default: x64)
  • --output <path> - Output directory for MSIX

Local Development (Unsigned MSIX)

For local testing without code signing, register the package in development mode:

# Register the package (runs from extracted layout, not the .msix file)
Add-AppxPackage -Path "msix/layout/AppxManifest.xml" -Register

# Launch the app
Start-Process "shell:AppsFolder\YASB.GUI_wbnnev551gwxy!App"

# Uninstall when done
Get-AppxPackage -Name "YASB.GUI" | Remove-AppxPackage

Local Signing (Optional)

To test with a signed MSIX locally, create a self-signed certificate:

# Create a self-signed certificate (run once)
$cert = New-SelfSignedCertificate -Type Custom -Subject "CN=YourName" `
  -KeyUsage DigitalSignature -FriendlyName "YASB GUI Dev" `
  -CertStoreLocation "Cert:\CurrentUser\My" `
  -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3")

# Export to PFX (set a password)
$pwd = ConvertTo-SecureString -String "YourPassword" -Force -AsPlainText
Export-PfxCertificate -Cert $cert -FilePath "dev-cert.pfx" -Password $pwd

# Trust the certificate (required to install signed packages)
Import-Certificate -FilePath (Export-Certificate -Cert $cert -FilePath "dev-cert.cer") `
  -CertStoreLocation "Cert:\LocalMachine\TrustedPeople"

# Sign the MSIX
& "C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\signtool.exe" sign `
  /fd SHA256 /a /f "dev-cert.pfx" /p "YourPassword" "msix\yasb-gui-0.0.2-x64.msix"

# Install the signed MSIX
Add-AppxPackage -Path "msix\yasb-gui-0.0.2-x64.msix"

Note: Update the Publisher in build_msix.py to match your certificate's CN if signing locally.


Support the Project

If you find YASB GUI useful, consider supporting its development:

GitHub Sponsors Ko-fi

Your support helps maintain and improve the project.

About

YASB GUI is a native configuration application for YASB Reborn. Built with WinUI 3, it provides a modern interface for managing your status bar configuration without manually editing YAML files.

Topics

Resources

Stars

65 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Contributors

Languages