### Install Schemer2 Backend Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-Wallpapers.md Install the schemer2 backend using go. This backend requires Go to be installed. ```bash go install github.com/thefryscorer/schemer2@latest ``` -------------------------------- ### Install YASB via Package Managers Source: https://context7.com/amnweb/yasb/llms.txt Install YASB using WinGet, Scoop, or Chocolatey for quick setup. ```powershell # WinGet (user scope) winget install AmN.yasb ``` ```powershell # Machine-wide scope winget install --scope machine AmN.yasb ``` ```powershell # Scoop scoop bucket add extras scoop install extras/yasb ``` ```powershell # Chocolatey choco install yasb ``` -------------------------------- ### YASB Configuration File Example Source: https://context7.com/amnweb/yasb/llms.txt Example structure for the `config.yaml` file, defining global settings and window manager integrations. ```yaml # ~/.config/yasb/config.yaml # ── Global settings ────────────────────────────────────────────────────────── watch_stylesheet: true # Hot-reload styles.css on change watch_config: true # Hot-reload config.yaml on change debug: false update_check: true show_systray: true # Tray-menu WM integrations komorebi: start_command: "komorebic start --whkd" stop_command: "komorebic stop --whkd" reload_command: "komorebic reload-configuration" glazewm: start_command: "glazewm.exe start" stop_command: "glazewm.exe command wm-exit" reload_command: "glazewm.exe command wm-exit && glazewm.exe start" ``` -------------------------------- ### ObsWidget Keybinding Example Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-Obs.md Example configuration for setting up hotkeys to trigger OBS actions using the ObsWidget. This demonstrates how to map key combinations to specific OBS control callbacks. ```yaml obs: type: "yasb.obs.ObsWidget" options: # ... other options keybindings: - keys: "ctrl+shift+r" action: "toggle_record" - keys: "ctrl+shift+p" action: "toggle_record_pause" - keys: "ctrl+shift+v" action: "toggle_virtual_cam" - keys: "ctrl+shift+b" action: "toggle_stream" ``` -------------------------------- ### ObsWidget Configuration Example Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-Obs.md This is a complete configuration example for the ObsWidget, demonstrating how to set up connection details, custom icons for various states, and enable/disable different display and control features. ```yaml obs: type: "yasb.obs.ObsWidget" options: connection: host: "localhost" port: 4455 password: "your_password" icons: recording: "\ueba7" stopped: "\ueba7" paused: "\ueba7" virtual_cam_on: "\udb81\udda0" virtual_cam_off: "\udb81\udda0" studio_mode_on: "\udb84\uddd8" studio_mode_off: "\udb84\uddd8" streaming: "\udb82\udd02" streaming_stopped: "\udb82\udd02" hide_when_not_recording: false blinking_icon: true show_record_time: true show_virtual_cam: true show_studio_mode: true show_stream: true show_stream_time: true show_scene_name: true show_stream_stats: true tooltip: true ``` -------------------------------- ### Glazewm Tray Menu Start Command Source: https://github.com/amnweb/yasb/blob/main/docs/Configuration.md The default command to start Glazewm. ```shell "glazewm.exe start" ``` -------------------------------- ### Home Widget Example Configuration Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-Home.md This is a complete example configuration for the Home Widget, demonstrating how to set various options including custom menu items, system/power menu toggles, visual styles, and alignment. ```yaml home: type: "yasb.home.HomeWidget" options: label: " " menu_list: - { title: "User Home", path: "~" } - { title: "Download", path: "D:\\Downloads" } - { title: "Documents", path: "C:\\Users\\amn\\Documents" } - { title: "Pictures", path: "C:\\Users\\amn\\Pictures" } - { title: "Sound Settings", command: "cmd.exe /c start ms-settings:sound" } - { title: "Windows Settings", uri: "ms-settings:" } - { separator: true } - { title: "PowerShell", command: "powershell.exe", show_window: true } - { title: "Winget Update", command: "powershell.exe", args: ["-NoProfile", "-NoExit", "-Command", "winget upgrade"], show_window: true } system_menu: true power_menu: true blur: true round_corners: true round_corners_type: "normal" border_color: "System" offset_top: 6 offset_left: 0 alignment: "left" direction: "down" menu_labels: shutdown: "Shutdown" restart: "Restart" hibernate: "Hibernate" logout: "Logout" lock: "Lock" sleep: "Sleep" system: "System Settings" about: "About This PC" task_manager: "Task Manager" ``` -------------------------------- ### Disk Widget Example Configuration Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-Disk.md This is a complete example of how to configure the Disk widget, demonstrating various options like custom labels, multiple volume grouping, mouse event callbacks, and disk usage thresholds. ```yaml disk: type: "yasb.disk.DiskWidget" options: label: "{volume_label} {space[used][percent]}" label_alt: "{volume_label} {space[used][gb]} / {space[total][gb]}" volume_label: "C" update_interval: 60 group_label: volume_labels: ["C", "D", "E", "F"] show_label_name: true blur: True round_corners: True round_corners_type: "small" border_color: "System" alignment: "right" direction: "down" callbacks: on_left: "toggle_group" on_middle: "toggle_label" on_right: "exec explorer C:\\" # Open disk C in file explorer disk_thresholds: low: 25 medium: 50 high: 90 ``` -------------------------------- ### CPU Widget Example Configuration Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-CPU.md An example YAML configuration for the CPU widget, demonstrating how to set labels, update intervals, histogram icons, callbacks, and menu options. ```yaml cpu: type: "yasb.cpu.CpuWidget" options: label: "\uf4bc {info[percent][total]}%" label_alt: "\uf437 {info[freq][current]} MHz" update_interval: 2000 cpu_thresholds: low: 25 medium: 50 high: 90 histogram_icons: - "\u2581" # 0% - "\u2581" # 10% - "\u2582" # 20% - "\u2583" # 30% - "\u2584" # 40% - "\u2585" # 50% - "\u2586" # 60% - "\u2587" # 70% - "\u2588" # 80%+ histogram_num_columns: 8 callbacks: on_left: "toggle_label" on_right: "toggle_menu" menu: enabled: true show_graph: true show_graph_grid: true graph_history_size: 60 ``` -------------------------------- ### Install Haishoku Backend Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-Wallpapers.md Install the haishoku library using pip. This backend is used for color extraction. ```bash pip install haishoku ``` -------------------------------- ### Media Widget Example Style Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-Media.md Provides a practical example of CSS for the media widget, demonstrating how to style elements like labels, buttons, and progress bars. This example sets padding, margins, colors, and font sizes. ```css .media-widget { padding: 0; margin: 0; } .media-widget .label { color: #d2d6e2; padding: 0px; padding-right: 4px; font-size: 12px; } .media-widget .btn { color: #9498a8; padding: 0 4px; margin: 0; font-family: "Segoe Fluent Icons"; font-weight: 400; } .media-widget .btn:hover { color: #babfd3; } .media-widget .btn.play { font-size: 16px; } .media-widget .btn.disabled:hover, .media-widget .btn.disabled { color: #4e525c; font-size: 12px; background-color: rgba(0, 0, 0, 0); } .media-widget .progress-bar { max-height: 2px; background-color: transparent; margin-left: 5px; border: none; } .media-widget .progress-bar::chunk { background-color: #0078D4ee; border-radius: 2px; } ``` -------------------------------- ### Brightness Widget Configuration Example Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-Brightness.md This is a comprehensive example of how to configure the Brightness widget. It demonstrates setting various options such as labels, icons, toggle levels, auto-light behavior, menu settings, and callbacks. ```yaml brightness: type: "yasb.brightness.BrightnessWidget" options: label: "{icon}" label_alt: "Brightness {percent}%" tooltip: true hide_unsupported: true brightness_toggle_level: [0, 50, 100] auto_light: false auto_light_icon: "\udb80\udce1" auto_light_night_level: 35 auto_light_night_start_time: "19:00" auto_light_night_end_time: "06:45" auto_light_day_level: 75 brightness_icons: [ "\udb80\udcde", # Icon for 0-25% brightness "\udb80\udcdd", # Icon for 26-50% brightness "\udb80\udcdf", # Icon for 51-75% brightness "\udb80\udce0" # Icon for 76-100% brightness ] brightness_menu: blur: true round_corners: true round_corners_type: "normal" border_color: "System" alignment: "right" direction: "down" callbacks: on_left: "toggle_label" ``` -------------------------------- ### Install Colorz Backend Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-Wallpapers.md Install the colorz library using pip. This backend is used for color extraction. ```bash pip install colorz ``` -------------------------------- ### Battery Widget Full Configuration Example Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-Battery.md This example demonstrates a complete configuration for the Battery Widget, showcasing various options for labels, update intervals, charging indicators, status thresholds, and custom icons. It also includes extended information placeholders like power and time remaining. ```yaml battery: type: "yasb.battery.BatteryWidget" options: label: "{icon} {percent}%" label_alt: "{icon} {percent}% | {power}W | {time_remaining}" update_interval: 5000 time_remaining_natural: False hide_unsupported: True charging_options: icon_format: "{charging_icon}" blink_charging_icon: true blink_interval: 500 status_thresholds: critical: 10 low: 25 medium: 75 high: 95 full: 100 status_icons: icon_charging: "\uf0e7" icon_critical: "\uf244" icon_low: "\uf243" icon_medium: "\uf242" icon_high: "\uf241" icon_full: "\uf240" ``` -------------------------------- ### Memory Widget Example Configuration Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-Memory.md This example demonstrates a complete configuration for the Memory Widget, including custom labels, update intervals, callbacks, memory thresholds, histogram icons, and menu settings. ```yaml memory: type: "yasb.memory.MemoryWidget" options: label: "\uf4bc {virtual_mem_free}/{virtual_mem_total}" label_alt: "\uf4bc VIRT: {virtual_mem_percent}% SWAP: {swap_mem_percent}%" update_interval: 5000 callbacks: on_left: "toggle_label" on_right: "toggle_menu" memory_thresholds: low: 25 medium: 50 high: 90 histogram_icons: - "\u2581" # 0% - "\u2581" # 10% - "\u2582" # 20% - "\u2583" # 30% - "\u2584" # 40% - "\u2585" # 50% - "\u2586" # 60% - "\u2587" # 70% - "\u2588" # 80%+ menu: enabled: true show_graph: true show_graph_grid: true graph_history_size: 60 ``` -------------------------------- ### Install Pywal using pip Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-Wallpapers.md Installs the Pywal library, which allows for dynamic color theming from wallpapers. ```python pip install pywal16 ``` -------------------------------- ### Komorebi Tray Menu Start Command Source: https://github.com/amnweb/yasb/blob/main/docs/Configuration.md The default command to start Komorebi with the `--whkd` flag and its default configuration. ```shell "komorebic start --whkd" ``` -------------------------------- ### WHKD Widget Example Styling Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-Whkd.md Example CSS demonstrating how to style the WHKD widget and its popup, including padding, font sizes, colors, and borders for various elements. ```css .whkd-widget { padding: 0 6px 0 6px; } .whkd-widget .icon { font-size: 18px; } .whkd-popup .edit-config-button { background-color:#1743a1; color: #ffffff; padding: 4px 8px 6px 8px; font-size: 14px; font-weight: 600; border-radius: 4px; font-family: 'Segoe UI', sans-serif; } .whkd-popup .keybind-buttons-container { min-width: 240px; } .whkd-popup .keybind-button { background-color: #343538; color: white; padding: 4px 8px 6px 8px; font-size: 14px; font-weight: 600; border: 1px inset #4f5055; border-bottom: 2px inset #4f5055; border-radius: 4px; font-family: 'JetBrainsMono NFP'; } .whkd-popup .keybind-button.special { background-color: #343538; } .whkd-popup .keybind-row:hover{ background-color: rgba(136, 138, 155, 0.2); border-radius: 8px; } .whkd-popup .plus-separator { padding: 0 0px; border:none; font-size: 16px; font-weight: bold; background-color:transparent } .whkd-popup .filter-input { padding: 0 8px 2px 8px; font-size: 14px; font-family: 'Segoe UI', sans-serif; border: 1px solid #2e2e2e; border-radius: 4px; outline: none; color: white; background-color: #2e2e2e; min-height: 32px; } .whkd-popup .filter-input:focus { border: 1px solid #0078D4; } .whkd-popup .keybind-command { font-size: 14px; } .whkd-popup .keybind-header { font-size: 16px; font-weight: 600; color: white; padding: 8px 0; margin-top: 20px; background-color: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 8px; } ``` -------------------------------- ### Todo Widget Configuration Example Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-Todo.md This example demonstrates a comprehensive configuration for the Todo widget, including custom labels, menu styling, icons, categories, and mouse callbacks. Adjust these options to tailor the widget's appearance and behavior to your needs. ```yaml todo: type: "yasb.todo.TodoWidget" options: label: "\uf0ae {count}/{completed}" label_alt: "\uf0ae Tasks: {count}" # data_path: "~/Documents/my-todos.json" # Optional: custom JSON file path menu: blur: true round_corners: true round_corners_type: "normal" border_color: "system" alignment: "center" direction: "down" offset_top: 6 offset_left: 0 icons: add: "\uf501 New Task" edit: "Edit" delete: "Delete" date: "\ue641" category: "\uf412" checked: "\udb80\udd34" unchecked: "\udb80\udd30" sort: "\ueab4" no_tasks: "\uf4a0" categories: default: label: "General" soon: label: "Complete soon" today: label: "End of day" urgent: label: "Urgent" important: label: "Important" callbacks: on_left: "toggle_menu" on_middle: "do_nothing" on_right: "toggle_label" ``` -------------------------------- ### Install YASB from Source Source: https://context7.com/amnweb/yasb/llms.txt Install YASB from source for development or direct execution. Requires Python 3.14+. ```powershell git clone https://github.com/amnweb/yasb cd yasb # Regular install pip install . # Development install pip install -e .[dev] # Run directly python src/main.py # Build MSI installer pip install -e .[packaging] cd src python build.py build python build.py bdist_msi ``` -------------------------------- ### Install YASB using WinGet (Machine Scope) Source: https://github.com/amnweb/yasb/blob/main/README.md Installs YASB for all users on the machine using the WinGet package manager. Requires administrative privileges. ```powershell winget install --scope machine AmN.yasb ``` -------------------------------- ### Traffic Widget Configuration Example Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-Traffic.md This is an example configuration for the Traffic widget. It demonstrates how to set labels, update intervals, menu options, and callbacks. ```yaml traffic: type: "yasb.traffic.TrafficWidget" options: label: "\ueb01 \ueab4 {download_speed} | \ueab7 {upload_speed}" label_alt: "Download {download_speed} | Upload {upload_speed}" update_interval: 1000 menu: blur: true round_corners: true round_corners_type: "normal" border_color: "system" alignment: "left" direction: "down" offset_top: 6 offset_left: 0 callbacks: on_left: "toggle_menu" on_right: "toggle_label" ``` -------------------------------- ### Custom Binding Mode Names Example Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-GlazeWM-Binding-Mode.md Example demonstrating how to use 'display_name' to provide custom names for binding modes, which takes priority over the 'name' field. ```yaml binding_modes: - name: "resize" display_name: "Resize mode" keybindings: # ... - name: "pause" display_name: "Paused mode" keybindings: # ... # and so on... ``` -------------------------------- ### Example CSS for GlazeWM Tiling Direction Widget Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-GlazeWM-Tiling-Direction.md Provides an example of how to style the GlazeWM Tiling Direction widget and its buttons, including background, padding, margin, font size, and hover effects. ```css .glazewm-tiling-direction { background-color: transparent; padding: 0; margin: 0; } .glazewm-tiling-direction .btn { font-size: 18px; width: 14px; padding: 0 4px 0 4px; color: #CDD6F4; border: none; } .glazewm-tiling-direction .btn:hover { background-color: #727272; } ``` -------------------------------- ### Taskbar Widget Style Example Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-Taskbar.md Provides a detailed CSS example for styling the taskbar widget, including application containers, focused states, flashing indicators, and the preview popup. ```css .taskbar-widget .app-container { margin: 4px 2px; border-radius: 4px; padding: 0 4px; } .taskbar-widget .app-container.foreground { background-color: rgba(255, 255, 255, 0.1); } .taskbar-widget .app-container.flashing { background-color: rgba(255, 106, 106, 0.63); } .taskbar-widget .app-container.running { background-color: rgba(255, 255, 255, 0.25); } .taskbar-widget .app-container:hover { background-color: rgba(255, 255, 255, 0.15); } .taskbar-widget .app-container .app-title { padding-left: 4px; } /* Taskbar preview popup is very limited in styling options, do not use margins/paddings here */ .taskbar-preview { border-radius: 8px; background-color: #2b2c2d; } .taskbar-preview.flashing { background-color: #7f434a; } .taskbar-preview .header { padding-bottom: 12px; padding-top: 4px; } .taskbar-preview .header .title { color: #d6d6d6; font-family: "Segoe UI"; font-weight: 600; font-size: 13px; } .taskbar-preview .close-button { color: #999; font-size: 20px; background-color: transparent; border: none; min-width: 20px; border-radius: 4px; min-height: 20px; } .taskbar-preview .close-button:hover { color: rgb(255, 255, 255); background-color: rgb(226, 0, 0); } ``` -------------------------------- ### CPU Widget Full CSS Example Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-CPU.md A comprehensive example demonstrating the styling for the CPU widget, including padding, label and icon colors, and status-specific color overrides for low, medium, high, and critical states. ```css .cpu-widget { padding: 0 8px; } .cpu-widget .widget-container .label { font-size: 13px; color: #cdd6f4; } .cpu-widget .widget-container .icon { font-size: 14px; color: #89b4fa; } .cpu-widget .widget-container .label.status-low { color: #a6e3a1; /* Green */ } .cpu-widget .widget-container .label.status-medium { color: #f9e2af; /* Yellow */ } .cpu-widget .widget-container .label.status-high { color: #fab387; /* Orange */ } .cpu-widget .widget-container .label.status-critical { color: #f38ba8; /* Red */ } /* Progress bar customization */ .cpu-widget .progress-circle { margin-right: 6px; } ``` -------------------------------- ### Cava Widget Example Configuration Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-Cava.md This is an example of how to configure the Cava widget in YASB. Ensure Cava is installed and accessible in your system's PATH. ```yaml cava: type: "yasb.cava.CavaWidget" options: bar_height: 12 min_bar_height: 0 gradient: 1 foreground: "#89b4fa" gradient_color_1: '#74c7ec' gradient_color_2: '#89b4fa' gradient_color_3: '#cba6f7' bars_number: 8 bar_spacing: 2 bar_width: 4 bar_type: "bars" framerate: 60 hide_empty: true ``` -------------------------------- ### Start YASB Application Source: https://github.com/amnweb/yasb/blob/main/docs/Installation.md Run the YASB application after installation using the Python interpreter. ```python python src/main.py ``` -------------------------------- ### Install YASB Python Package Source: https://github.com/amnweb/yasb/blob/main/docs/Installation.md Install YASB and its dependencies using pip. Use the development flags for development or packaging-related installations. ```python pip install . ``` ```python pip install -e .[dev] ``` ```python pip install -e .[dev,packaging] ``` -------------------------------- ### WHKD Widget Configuration Example Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-Whkd.md This YAML configuration demonstrates how to set up the WHKD widget, including its type and options for the label and special keys. ```yaml whkd: type: "yasb.whkd.WhkdWidget" options: label: "\uf11c" special_keys: - key: "win" key_replace: "\ue70f" - key: "ctrl" key_replace: "Ctrl" - key: "alt" key_replace: "Alt" - key: "shift" key_replace: "Shift" - key: "left" key_replace: "\u2190" - key: "right" key_replace: "\u2192" - key: "up" key_replace: "\u2191" - key: "down" key_replace: "\u2193" ``` -------------------------------- ### Install YASB using Winget Source: https://github.com/amnweb/yasb/blob/main/docs/Installation.md Use Winget to install the stable release of YASB. Ensure you have Winget installed and configured on your system. ```powershell winget install --id AmN.yasb ``` -------------------------------- ### Volume Widget Configuration Example Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-Volume.md Demonstrates a complete configuration for the Volume Widget, including custom labels, volume icons, audio menu settings, and callback functions. ```yaml volume: type: "yasb.volume.VolumeWidget" options: label: "{icon} {level}" label_alt: "{volume}" volume_icons: - "\ueee8" # Icon for muted - "\uf026" # Icon for 0-10% volume - "\uf027" # Icon for 11-30% volume - "\uf027" # Icon for 31-60% volume - "\uf028" # Icon for 61-100% volume audio_menu: blur: true round_corners: true round_corners_type: "normal" border_color: "system" alignment: "right" direction: "down" callbacks: on_left: "toggle_volume_menu" on_right: "toggle_mute" ``` -------------------------------- ### Install YASB using Chocolatey Source: https://github.com/amnweb/yasb/blob/main/docs/Installation.md Install YASB using the Chocolatey package manager. This command assumes Chocolatey is already installed and configured. ```powershell choco install yasb ``` -------------------------------- ### Install YASB using WinGet (User Scope) Source: https://github.com/amnweb/yasb/blob/main/README.md Installs YASB for the current user using the WinGet package manager. This is the default installation scope. ```powershell winget install AmN.yasb ``` -------------------------------- ### Install Development Dependencies Source: https://github.com/amnweb/yasb/blob/main/docs/Contributing.md Install the project's development dependencies using pip. This command installs the package in editable mode with development extras. ```bash pip install -e .[dev] ``` -------------------------------- ### Taskbar Widget Example Configuration Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-Taskbar.md This YAML configuration demonstrates how to set up the Taskbar widget with various options, including animation, preview, and title label settings. ```yaml taskbar: type: "yasb.taskbar.TaskbarWidget" options: icon_size: 16 tooltip: true show_only_visible: false strict_filtering: true monitor_exclusive: false animation: enabled: true duration: 200 preview: enabled: false width: 240 delay: 400 padding: 8 margin: 8 title_label: enabled: false show: "always" min_length: 10 max_length: 30 ignore_apps: processes: [] titles: [] classes: [] ``` -------------------------------- ### Build YASB Installer Source: https://github.com/amnweb/yasb/blob/main/docs/Installation.md Build the YASB installer package using the build script. This involves two steps: initiating the build and then creating the MSI installer. ```powershell python build.py build python build.py bdist_msi ``` -------------------------------- ### Install YASB using Scoop Source: https://github.com/amnweb/yasb/blob/main/docs/Installation.md Install YASB via Scoop by first adding the 'extras' bucket and then installing the package. This method is suitable for users who prefer Scoop for package management. ```powershell scoop bucket add extras scoop install extras/yasb ``` -------------------------------- ### Microphone Widget Example Configuration Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-Microphone.md This YAML configuration demonstrates how to set up the Microphone Widget with custom labels, icons, and callback functions for mouse events. ```yaml microphone: type: "yasb.microphone.MicrophoneWidget" options: label: "{icon}" label_alt: "{icon} {level}" mute_text: "mute" icons: normal: "\uf130" muted: "\uf131" mic_menu: blur: true round_corners: true round_corners_type: "normal" border_color: "system" alignment: "right" direction: "down" callbacks: on_left: "toggle_mic_menu" on_middle: "toggle_label" on_right: "toggle_mute" ``` -------------------------------- ### Notes Widget Example Configuration Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-Notes.md This YAML configuration demonstrates how to set up the Notes widget, including options for the menu, icons, and callbacks. The data_path can be uncommented to specify a custom JSON file for notes. ```yaml notes: type: "yasb.notes.NotesWidget" options: label: "󰤌 {count}" label_alt: "{count} notes" # data_path: "~/Documents/my-notes.json" # Optional: custom JSON file path menu: blur: true round_corners: true round_corners_type: "normal" border_color: "System" alignment: "right" direction: "down" offset_top: 6 offset_left: 0 max_title_size: 150 show_date_time: true icons: note: "󰤌" delete: "" copy: "" callbacks: on_left: "toggle_menu" on_middle: "do_nothing" on_right: "toggle_label" ``` -------------------------------- ### Install ColorThief Backend Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-Wallpapers.md Install the colorthief library using pip. This backend is used for color extraction. ```bash pip install colorthief ``` -------------------------------- ### Bluetooth Widget Example Configuration Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-Bluetooth.md This YAML configuration demonstrates how to set up the Bluetooth widget with custom labels, icons, device aliases, and callbacks. ```yaml bluetooth: type: "yasb.bluetooth.BluetoothWidget" options: label: "{icon} {device_count}" label_alt: "{device_name}" label_no_device: "No devices connected" label_device_separator: ", " max_length: 10 max_length_ellipsis: "..." icons: bluetooth_on: "\udb80\udcaf" bluetooth_off: "\udb80\udcb2" bluetooth_connected: "\udb80\udcb1" device_aliases: - name: "T5.0" alias: "\uf025" callbacks: on_left: "toggle_label" on_right: "exec cmd.exe /c start ms-settings:bluetooth" ``` -------------------------------- ### VSCode Widget Configuration Example Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-VSCode.md This YAML configuration demonstrates how to set up the VSCode widget, including options for labels, icons, truncation, and menu behavior. ```yaml vscode: type: "yasb.vscode.VSCodeWidget" options: label: " label_alt: " menu_title: "VScode recents" max_field_size: 50 folder_icon: "\uf114" file_icon: "\uf016" truncate_to_root_dir: false hide_folder_icon: false hide_file_icon: false max_number_of_folders: 30 max_number_of_files: 30 # set to 0 if you only want folders modified_date_format: "Date modified: %Y-%m-%d %H:%M" cli_command: "code" # or "codium" or "windsurf" or any other CLI command to open the workspace menu: blur: true round_corners: true round_corners_type: "small" alignment: 'center' offset_top: 0 ``` -------------------------------- ### Install ImageMagick using winget Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-Wallpapers.md Installs ImageMagick, a prerequisite for using the default 'wal' backend with Pywal. ```powershell winget install ImageMagick.ImageMagick ``` -------------------------------- ### GlazeWM Workspace Configuration Example Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-GlazeWM-Workspaces.md Configure workspace names and optional display names. Using numerical names ensures proper sorting. ```yaml workspaces: - name: "1" display_name: "Work" # Optional - name: "2" display_name: "Browser" # Optional - name: "3" display_name: "Music" # Optional # and so on... ``` -------------------------------- ### Example Configuration for Windows Workspaces Widget Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-Windows-Desktops.md This configuration sets up the Windows Workspaces widget with custom labels and callbacks. Ensure the 'type' is correctly specified for the widget. ```yaml windows_workspaces: type: "yasb.windows_desktops.WorkspaceWidget" options: label_workspace_btn: "󰐽" label_workspace_active_btn: "󰐾" callbacks: on_left: "activate_workspace" on_middle: "do_nothing" on_right: "toggle_context_menu" ``` -------------------------------- ### GPU Widget Example Configuration Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-GPU.md This YAML configuration demonstrates how to set up the GPU widget with custom labels, update intervals, histogram icons, and menu options. It includes settings for GPU thresholds and callback functions. ```yaml gpu: type: "yasb.gpu.GpuWidget" options: label: "\uf4bc {info[utilization]}%" label_alt: "\uf4bc {info[temp]}°C | {info[mem_used]} / {info[mem_total]}" update_interval: 2000 gpu_thresholds: low: 25 medium: 50 high: 90 histogram_icons: - "\u2581" # 0% - "\u2581" # 10% - "\u2582" # 20% - "\u2583" # 30% - "\u2584" # 40% - "\u2585" # 50% - "\u2586" # 60% - "\u2587" # 70% - "\u2588" # 80%+ histogram_num_columns: 8 callbacks: on_left: "toggle_label" on_right: "toggle_menu" menu: enabled: true show_graph: true show_graph_grid: true graph_history_size: 60 ``` -------------------------------- ### Install Packaging Dependencies Source: https://github.com/amnweb/yasb/blob/main/docs/Installation.md Install the necessary Python dependencies for packaging development. This command should be run within the cloned YASB repository directory. ```python pip install -e .[packaging] ``` -------------------------------- ### Configure Applications Widget Source: https://github.com/amnweb/yasb/blob/main/docs/widgets/(Widget)-Applications.md Example configuration for the Applications Widget, demonstrating how to define application entries with icons and launch commands. Supports Unicode icons, image paths, and direct executable paths with arguments. ```yaml apps: type: "yasb.applications.ApplicationsWidget" options: label: "{data}" app_list: - {icon: "\uf0a2", launch: "notification_center", name: "Notification Center"} # launch notification center - {icon: "\ueb51", launch: "quick_settings"} # launch quick settings - {icon: "\uf422", launch: "search"} # launch search - {icon: "\uf489", launch: "wt", name: "Windows Terminal"} # launch terminal - {icon: "C:\\Users\\marko\\icons\\vscode.png", launch: "C:\\Users\\Username\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe"} # open vscode - {icon: "\udb81\udc4d",launch: "\"C:\\Program Files\\Mozilla Firefox\\firefox.exe\" -new-tab www.reddit.com"} # open reddit in new tab in firefox - {icon: "\udb81\udc4d",launch: "\"C:\\Program Files\\Mozilla Firefox\\firefox.exe\" -new-window www.reddit.com"} # open reddit in new window in firefox - {icon: "\udb81\udc4d",launch: "\"C:\\Program Files\\Mozilla Firefox\\firefox.exe\" -private-window www.reddit.com"} # open reddit in private window in firefox ```