YASB (Yet Another Status Bar) Documentation

repository·main·Indexed 24 days ago

https://github.com/amnweb/yasb

A highly configurable Windows status bar written in Python. YASB allows users to display system information, application controls, and various widgets on their desktop. Documentation covers installation via WinGet, Scoop, Chocolatey, and MSI; management via the yasbc CLI; configuration of bar positions and screen assignments; and development guidelines for creating new widgets.

Tokens
99.7K
Snippets
183
Records
398
Agent score
90%

What's inside YASB

  1. Use Launchpad features: Search, Grouping, and Drag-and-Drop

    main

    The Launchpad widget supports several advanced interaction patterns:

    • Search: Filter apps in real-time. Use the syntax group:name to filter specifically by a group name.
    • App Grouping: Organize apps into categories. Click group icons to enter them, and press Backspace to exit a group.
    • Drag & Drop: Drag executables or shortcuts directly into the grid to add them. You can also reorder apps by dragging them within the grid. Dropping an app onto a group icon automatically assigns it to that group.
    • Context Menu: Right-click an app to edit, delete, assign to a group, or change sorting (A-Z, Z-A, recent, oldest). Right-click a group to rename it.
  2. Configure the Komorebi Workspaces Widget

    main

    The WorkspaceWidget displays Komorebi workspaces, allowing for workspace switching via clicking or scrolling. It supports indicators for active and populated states, toggling between tiling and floating layers, and displaying running app icons.

    To use this widget, add it to your configuration with the type komorebi.workspaces.WorkspaceWidget.

    komorebi_workspaces:
      type: "komorebi.workspaces.WorkspaceWidget"
      options:
        label_offline: "Komorebi Offline"
        label_workspace_btn: "\udb81\udc3d"
        label_workspace_active_btn: "\udb81\udc3e"
        label_workspace_populated_btn: "\udb81\udc3e"
        label_default_name: ""
        label_zero_index: false
        hide_empty_workspaces: false
        hide_if_offline: false
        toggle_workspace_layer:
          enabled: false
          tiling_label: "Tiling"
          floating_label: "Floating"
        app_icons: 
          enabled_populated: false
          enabled_active: false
          size: 12
          max_icons: 0
          hide_label: false
          hide_duplicates: false
          hide_floating: false
  3. Configure the Weather Widget

    main

    The Weather Widget displays current weather conditions and temperature. To use it, you must obtain a free API key from weatherapi.com and provide it in the api_key option.

    Basic Setup

    Set the type to yasb.weather.WeatherWidget and provide the required api_key and location.

    weather:
      type: "yasb.weather.WeatherWidget"
      options:
        api_key: "YOUR_API_KEY"
        location: "Los Angeles, CA, USA"
  4. Install and run YASB using Python

    main

    Ensure you have Python >= 3.14 installed. You can install YASB as a regular application, a development environment, or a packaging development environment using pip.

    To start the application after installation, run python src/main.py from the project root.

  5. Install community themes using Themes Manager

    main

    You can browse and install community-created styles using the Themes Manager (yasb_themes.exe).

    How to launch Themes Manager:

    1. System Tray: Right-click the YASB icon in the system tray and select Get Themes.
    2. Direct Execution: Run yasb_themes.exe from your YASB installation folder.
    3. One-Click Installation: Use the yasb-themes:// protocol by clicking install buttons on the official yasb.dev website.
  6. Configure the Power Menu Widget

    main

    The Power Menu Widget provides quick access to system actions like shutdown, restart, sleep, lock, or logout. It supports two display modes: fullscreen (a centered dialog with a blurred overlay) and popup (a compact dropdown anchored to the bar button).

    power_menu:
      type: "yasb.power_menu.PowerMenuWidget"
      options:
        label: "\uf011"
        uptime: true
        show_user: true
        menu_style: "fullscreen"
        profile_image_size: 80
        buttons:
          restart: ["\uead2", "Restart"]
          shutdown: ["\uf011", "Shut Down"]
          signout: ["\udb80\udf43", "Sign out"]
          hibernate: ["\uf28e", "Hibernate"]
          lock: ["\uea75", "Lock"]
          cancel: ["\udb81\udf3a", "Cancel"]