amnweb / yasb-themes

🎨 Theme repository for YASB.
https://github.com/amnweb/yasb
MIT License
14 stars 1 forks source link

[create-theme]: Aura #11

Closed ashwinjadhav818 closed 3 weeks ago

ashwinjadhav818 commented 3 weeks ago

Name

Aura

Description

A minimal theme with Acrylic background.

Homepage

https://github.com/ashwinjadhav818/dotfiles

Image

https://i.imgur.com/AInbQB5.png

Theme Styles

/*
.widget .label {} -> Global label for all
.active-window-widget {} -> Styles specific to the active window widget
.clock-widget {} -> Styles specific to the clock widget
.cpu-widget {} -> Styles specific to the CPU widget
.memory-widget {} -> Styles specific to the memory widget
.weather-widget {} -> Styles specific to the weather widget
.komorebi-workspaces {} -> Styles specific to komorebi workspaces
.komorebi-active-layout {} -> Styles specific to komorebi active layout
.volume-widget {} -> Styles specific to the volume widget 
.apps-widget {} -> Styles specific to the apps widget
.power-menu-widget {} -> Styles for the power menu button widget
.power-menu-popup {} -> Styles for the power menu popup widget
.power-menu-popup > .button {} -> Styles for power buttons inside the popup 
.power-menu-popup > .button > .icon,
.power-menu-popup > .button > .label {} -> Styles for power buttons icons and labels inside the popup 
.media-widget {} -> Styles specific to the media widget
*/
* {
    font-size: 13px;
    color: #cdd6f4;
    font-weight: 500;
    font-family: "SegoeUI Nerd Font";
    margin: 0;
    padding: 0;
}
.yasb-bar {
    padding: 0;
    margin: 0 0px;
}
.widget {
    padding: 0 8px;
    margin: 0 0px;
}
.widget .label {
    padding-bottom: 2px;
}
.widget .label:hover {
    color: #fff;
}
.container-left,
.container-center,
.container-right {
    margin: 0;
    padding: 0;
}

.komorebi-workspaces .ws-btn {
    border-radius: 5px;
    font-size: 10px;
    width: 10px;
    height: 10px;
    margin: 0 4px 0 4px;
    color: rgba(255, 255, 255, 0);
    background-color: #9399b2;
}
.komorebi-workspaces .ws-btn:hover,
.komorebi-workspaces .ws-btn.populated:hover {
    background-color: #fff;
}
.komorebi-workspaces .ws-btn.populated {
    background-color: #89b4fa;
}
.komorebi-workspaces .ws-btn.active {
    background-color: #89b4fa;
    color: rgba(0, 0, 0, 0);
    width: 26px;
}
.komorebi-active-layout {
    padding: 0;
}
.komorebi-active-layout .label {
    font-family: "JetBrainsMono Nerd Font";
}
.search-widget {
    padding: 0 2px;
}
.search-widget .label {
    padding: 0 7px 0 5px;
}

/*POWER MENU WIDGET*/
/* Uptime text */
.uptime {
    font-size: 14px;
    margin-bottom: 10px;
    color: #ffffff;
    font-weight: 600;
    font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}
.power-menu-widget .label {
    font-size: 13px;
    margin-left: 7px;
}
.power-menu-popup {
    background-color: rgba(24, 24, 37, 0.9);
    border-radius: 12px;
    border: 4px solid rgb(41, 42, 58);
}
.power-menu-popup .button {
    padding: 0;
    width: 240px;
    height: 120px;
    border-radius: 8px;
    background-color: rgb(41, 42, 58);
    font-family: "SegoeUI";
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.1);
    margin: 8px;
}
.power-menu-popup .button.hover {
    background-color: rgb(55, 56, 75);
    border: 1px solid rgb(55, 56, 75);
}
.power-menu-popup .button .label {
    margin-bottom: 8px;
    font-size: 16px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.95);
    font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}
.power-menu-popup .button .icon {
    font-size: 48px;
    padding-top: 20px;
    color: rgba(255, 255, 255, 0.25);
}
.power-menu-popup .button.cancel .icon {
    color: rgba(243, 139, 168, 0.55);
}
.power-menu-popup .button.cancel .label {
    color: rgba(243, 139, 168, 0.95);
}
.power-menu-popup .button.shutdown .icon {
    color: rgba(137, 180, 250, 0.55);
}
.power-menu-popup .button.shutdown .label {
    color: rgba(137, 180, 250, 0.95);
}

/* ICONS */
.icon {
    font-family: "Segoe Fluent Icons";
    color: #829fc1;
    padding: 3px;
    font-size: 16px;
}
.media-widget .btn {
    font-family: "Segoe Fluent Icons";
}
.battery-widget .icon {
    font-size: 18px;
    margin-bottom: 1px;
}
.volume-widget .icon {
    color: #89b4fa;
}
.cpu-widget .icon,
.memory-widget .icon {
    font-size: 14px;
    color: #cba6f7;
    margin: 0 4px 1px 0;
}
.memory-widget .icon {
    color: #a6c9f7;
}
.wifi-widget .icon {
    color: #43d8d8;
    padding: 0 6px;
    margin: 0;
}
.weather-widget .icon {
    font-family: "JetBrainsMono NFP"
}
.icon,
.media-widget .btn,
.power-menu-widget .label {
    color: #829fc1;
}

/* WEATHER WIDGET */
.weather-widget .icon {
    font-size: 16px;
    margin: 0 2px 1px 0;
}
.weather-widget .icon.sunnyDay {
    color: rgb(221, 210, 107);
}
.weather-widget .icon.clearNight {
    color: rgb(107, 189, 221);
    font-size: 22px;
    margin: 1px 2px 0px 0;
}
/* 
.weather-widget .icon.cloudyDay {}
.weather-widget .icon.cloudyNight {} 
.weather-widget .icon.rainyDay {} 
.weather-widget .icon.rainyNight {} 
.weather-widget .icon.snowyIcyDay {} 
.weather-widget .icon.snowyIcyNight {} 
.weather-widget .icon.blizzard {} 
.weather-widget .icon.default {}
*/

/* NEW MEDIA WIDGET */
.media-widget {
    padding-right: 0;
}
.media-widget .label {
    color: #bac2db;
}
.media-widget .btn {
    padding: 0 5px;
    margin: 4px 2px;
}
.media-widget .btn:hover {
    color: #babfd3;
}
.media-widget .btn.play {
    border-radius: 12px;
    font-size: 12px;
}
.media-widget .btn.disabled:hover,
.media-widget .btn.disabled {
    color: #4e525c;
    font-size: 12px;
    background-color: rgba(0, 0, 0, 0);
}

Theme Config

watch_stylesheet: true
watch_config: true

komorebi:
  start_command: "pwsh -Command komorebic start --ahk"
  stop_command: "komorebic stop"
  reload_command: "pwsh -Command komorebic stop && komorebic start --ahk"

bars:
  status-bar:
    enabled: true
    screens: ['*']
    class_name: "yasb-bar"
    alignment:
      position: "top"
      center: true
    blur_effect:
      enabled: true
      acrylic: true
      dark: false
    window_flags:
      always_on_top: false
      windows_app_bar: true
    dimensions:
      width: "100%"
      height: 40
    padding:
      top: 0
      left: 0
      bottom: 0
      right: 0
    widgets:
      left:
        [
          "power_menu",
          "komorebi_workspaces", 
          "komorebi_active_layout",
          "active_window",
        ]
      center: ["clock", "search_button"]
      right:
        [
          "media_player",
          "weather",
          "volume",
          "wifi",
          "battery",
          "notification_button"
        ]

widgets:
  active_window:
    type: "yasb.active_window.ActiveWindowWidget"
    options:
      label: "{win[title]}"
      label_alt: "[class_name='{win[class_name]}' exe='{win[process][name]}' hwnd={win[hwnd]}]"
      label_no_window: ""
      max_length: 56
      label_icon: true
      label_icon_size: 16
      max_length_ellipsis: ".."
      monitor_exclusive: false

  battery:
    type: "yasb.battery.BatteryWidget"
    options:
      label: "<span>{icon}</span>{percent}%"
      label_alt: "<span>{icon}</span> {percent}% | time: {time_remaining}"
      charging_options:
        icon_format: "{charging_icon}"
      status_icons:
        icon_charging: "\ue83e"
        icon_critical: "\ue851"
        icon_low: "\ue852"
        icon_medium: "\ue855"
        icon_high: "\ue858"
        icon_full: "\ue83f"

  clock:
    type: "yasb.clock.ClockWidget"
    options:
      label: "{%a %I:%M %p}"
      label_alt: "{%A %d %B %Y %I:%M %p}"
      #timezones: ["Europe/London", "America/New_York"]
      timezones: []
      callbacks:
        on_middle: "exec explorer.exe shell:Appsfolder\\Microsoft.WindowsAlarms_8wekyb3d8bbwe!App"
        on_right: "next_timezone"

  cpu:
    type: "yasb.cpu.CpuWidget"
    options:
      label: "<span>\uf4bc</span> {info[percent][total]}%"
      label_alt: "<span>\uf437</span> {info[histograms][cpu_percent]}"
      update_interval: 500
      histogram_icons:
        - "\u2581" # 0%
        - "\u2581" # 10%
        - "\u2582" # 20%
        - "\u2583" # 30%
        - "\u2584" # 40%
        - "\u2585" # 50%
        - "\u2586" # 60%
        - "\u2587" # 70%
        - "\u2588" # 80%+
      histogram_num_columns: 10
      callbacks:
        on_right: "exec cmd /c Taskmgr"

  memory:
    type: "yasb.memory.MemoryWidget"
    options:
      label: "<span>\uf200</span> {virtual_mem_free}"
      label_alt: "<span>\uf4bc</span> {virtual_mem_percent}%"
      update_interval: 5000
      callbacks:
        on_right: "exec cmd /c Taskmgr"

  komorebi_workspaces:
    type: "komorebi.workspaces.WorkspaceWidget"
    options:
      label_offline: "Komorebi Offline"
      label_workspace_btn: "\uf4c3"
      label_default_name: "{index}"
      label_zero_index: false
      hide_empty_workspaces: false
      # callbacks:
      #   on_left: "activate"
      #   on_middle: "rename_temporary"
      #   on_right: "rename_permanent"

  komorebi_active_layout:
    type: "komorebi.active_layout.ActiveLayoutWidget"
    options:
      hide_if_offline: false
      label: "{icon}"
      layouts: ['bsp', 'columns', 'rows', 'grid', 'vertical_stack', 'horizontal_stack', 'ultrawide_vertical_stack']
      layout_icons:
        bsp: "[\\\\]"
        columns: "[||]"
        rows: "[==]"
        grid: "[G]"
        vertical_stack: "[V]="
        horizontal_stack: "[H]="
        ultrawide_vertical_stack: "||="
        monocle: "[M]"
        maximised: "[X]"
        floating: "><>"
        paused: "[P]"
      callbacks:
        on_left: "next_layout"
        on_middle: "toggle_monocle"
        on_right: "prev_layout"

  wifi:
    type: "yasb.wifi.WifiWidget"
    options:
      label: "<span>{wifi_icon}</span>"
      label_alt: "<span>{wifi_icon}</span> {wifi_name}"
      update_interval: 5000
      wifi_icons:
        - "\udb82\udd2e" # 0% strength (no wifi)
        - "\udb82\udd1f" # 1-25% strength
        - "\udb82\udd22" # 26-50% strength
        - "\udb82\udd25" # 51-75% strength
        - "\udb82\udd28" # 76-100% strength. Alternate theming: \uf1eb
      callbacks:
        on_left: "exec quick_settings"
        on_middle: "do_nothing"
        on_right: "exec cmd.exe /c start ms-settings:network"

  disk:
    type: "yasb.disk.DiskWidget"
    options:
        label: "<span>\udb80\udeca</span>{volume_label} {space[used][percent]}"
        label_alt: "<span>\udb80\udeca</span>{volume_label} {space[used][gb]} / {space[total][gb]}"
        volume_label: "C"
        update_interval: 60 # Update interval in seconds
        callbacks:
          on_middle: "do_nothing"
          on_right: "exec explorer C:\\" # Open disk C in file explorer

  volume:
    type: "yasb.volume.VolumeWidget"
    options:
      label: "<span>{icon}</span> {level}"
      label_alt: "{volume}"
      volume_icons:
        - "\uea85"  # Icon for muted
        - "\ue992"  # Icon for 0-10% volume
        - "\ue993"  # Icon for 11-30% volume
        - "\ue994"  # Icon for 31-60% volume
        - "\ue995"  # Icon for 61-100% volume
      callbacks:
        # on_left: "exec quick_settings"
        on_middle: "do_nothing"
        on_right: "exec cmd.exe /c start ms-settings:sound"

  media_player:
      type: "yasb.media.MediaWidget"
      options:
        label: "{title} - {artist}"
        label_alt: "{title}"
        max_field_size:
          label: 20
          label_alt: 30
        show_thumbnail: true
        controls_only: false
        controls_left: true
        hide_empty: true
        thumbnail_alpha: 80
        thumbnail_padding: 8
        thumbnail_corner_radius: 7 # Set to 0 for square corners
        icons:
          prev_track: "\ue622"
          next_track: "\ue623"
          play: "\uf5b0"
          pause: "\ue62e"

  traffic:
    type: "yasb.traffic.TrafficWidget"
    options:
      # can be: download_speed, download_justified, download_category, and same for upload
      label: "\ueb01 \ueab4 {download_justified} | \ueab7 {upload_justified}"
      label_alt: "\ueb01 \ueab4 {download_category} | \ueab7 {upload_category}"
      update_interval: 1000 # Update interval should be a multiple of 1000
      callbacks:
        on_right: "exec cmd /c Taskmgr"

  power_menu:
    type: "yasb.power_menu.PowerMenuWidget"
    options:
      label: "<span>\ue62a</span>"
      blur_background: true
      animation_duration: 200 # Milisecond 
      button_row: 3 # Number of buttons in row, min 1 max 5
      buttons:
        lock: ["\ue72e","Lock"]
        # signout: ["\udb80\udf43","Sign out"]
        sleep: ["\uf1db","Sleep"]
        shutdown: ["\ue7e8","Shut Down"]
        restart: ["\ue777","Restart"]
        hibernate: ["\ue823","Hibernate"]
        cancel: ["\ue711","Cancel"]
        #force_shutdown: ["\uf011","Force Shut Down"]
        #force_restart: ["\uead2","Force Restart"]

  weather:
    type: "yasb.weather.WeatherWidget"
    options:
      label: "<span>{icon}</span> {temp_c}"
      label_alt: "Min {min_temp_c}, Max {max_temp_c}, Humidity {humidity}"
      api_key: '3bf4cf9a7c3f40d6b31174128242807'
      update_interval: 600 #Update interval in seconds, Min 600
      hide_decimal: true
      location: 'London UK' # You can use "USA Los Angeles 90006" {COUNTRY CITY ZIP_CODE}, or just city.
      callbacks:
        on_left: "toggle_label"
      icons: 
        sunnyDay: "\ue30d"
        clearNight: "\ue32b"
        cloudyDay: "\udb81\udd99"
        cloudyNight: "\ue311"
        rainyDay: "\udb81\ude7e"
        rainyNight: "\udb81\ude7e"
        snowyIcyDay: "\udb81\udd98"
        snowyIcyNight: "\udb81\udd98"
        blizzard: "\uebaa"
        default: "\uebaa"
        # https://www.weatherapi.com/docs/
        # Usage {temp_c}, {min_temp_c}, {max_temp_c}, {temp_f}, {min_temp_f}, {max_temp_f}, {location}, {humidity}, {icon}, {conditions}

  # Some custom widgets
  explorer_button:
    type: "yasb.custom.CustomWidget"
    options:
      label: "\uf07c"
      label_alt: "Explorer"
      class_name: "explorer-widget"
      exec_options:
        run_once: true
      callbacks:
        on_left: "exec explorer.exe"
        on_right: "toggle_label"

  ip_info:
    type: "yasb.custom.CustomWidget"
    options:
      label: "\uf3c5 {data[city]}, {data[region]}"
      label_alt: "\uf3c5 {data[ip]} [{data[country]}]"
      class_name: "ip-info-widget"
      exec_options:
        run_cmd: "curl.exe https://ipinfo.io"
        run_interval: 120000                                        # every 5 minutes
        return_format: "json"
      callbacks:
        on_left: "toggle_label"
        on_middle: "exec cmd /c ncpa.cpl"                           # open network settings
        on_right: "exec cmd /c start https://ipinfo.io/{data[ip]} " # open ipinfo in browser

  lang:
    type: "yasb.custom.CustomWidget"
    options:
      label: "\udb80\udf0c {data}"
      label_alt: "\udb81\udfd3 {data}"
      class_name: "lang-widget"
      exec_options:
        run_cmd: "powershell add-type -assemblyname system.windows.forms;([system.windows.forms.inputlanguage]::currentinputlanguage).Culture.Name"
        # run every 3 sec
        run_interval: 3000
        return_format: "string"

  notification_button:
    type: "yasb.custom.CustomWidget"
    options:
      label: "<span>\uf0f3</span>"
      label_alt: "<span>\uf49a</span>"
      class_name: "notification-widget"
      callbacks:
        on_left: "exec notification_center"
        on_right: "toggle_label"

  search_button:
    type: "yasb.custom.CustomWidget"
    options:
      label: "<span>\uf422</span>"
      label_alt: "<span>\uf422</span> Search"
      class_name: "search-widget"
      exec_options:
        run_once: true
      callbacks:
        on_left: "exec search"
        on_right: "toggle_label"

Readme

A minimal theme with Acrylic background.
github-actions[bot] commented 3 weeks ago

Thank you for your contribution! :tada:

Your theme has been successfully submitted. The maintainers will review it and get back to you soon.

Here are some details about your submission:

If you have any questions or need help, feel free to ask in the comments below or in the PR.