amnweb / yasb-themes

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

[create-theme]: Nord Dynamic #19

Closed S-N00B-1 closed 3 weeks ago

S-N00B-1 commented 3 weeks ago

Name

Nord Dynamic

Description

A Nord based theme, with light and dark variants.

Homepage

https://github.com/S-N00B-1/Nord-Dynamic-Yasb-Theme

Image

https://github.com/user-attachments/assets/25342663-d5dc-4c62-b516-1e45c69db0c7

Theme Styles

/*
A version of Nord's arctic, north-bluish color palette, 
with a Nord4 based colour pallete for light mode, 
and a Nord0 based colour pallete for dark mode.

:root {
    --nord0: rgb(46, 52, 64); // Darkest Night
    --nord1: rgb(59, 66, 82);
    --nord2: rgb(67, 76, 94);
    --nord3: rgb(76, 86, 106); // Lightest Night

    --nord4: rgb(216, 222, 233); // Darkest Snow
    --nord5: rgb(229, 233, 240);
    --nord6: rgb(236, 239, 244); // Lighest Snow

    --nord7: rgb(143, 188, 187); // Light Frost
    --nord8: rgb(136, 192, 208); // Lightest Frost
    --nord9: rgb(129, 161, 193); // Dark Frost
    --nord10: rgb(94, 129, 172); // Darkest Frost

    --nord11: rgb(191, 97, 106);  // Red
    --nord12: rgb(208, 135, 112); // Orange
    --nord13: rgb(235, 203, 139); // Yellow
    --nord14: rgb(163, 190, 140); // Green
    --nord15: rgb(180, 142, 173); // Magenta
}
*/

* {
    font-size: 12px;
    color: rgb(76, 86, 106);
    font-weight: 500;
    font-family: "JetBrainsMono Nerd Font";
    margin: 0;
    padding: 0;
}

.yasb-bar {
    padding: 0;
    margin: 0;
    background-color: rgb(216, 222, 233);
    border-radius: 5px;
}

.widget {
    padding: 0 8px;
    margin: 0 4px;
}
.widget .label {
    padding: 0px 2px; 
}
.widget .label.alt {
    padding: 0px 8px;
}

.active-window-widget {
    border-radius: 4px;
    margin-left: 8px;
}

.komorebi-workspaces {
    margin: 4px 4px;
    border-radius: 4px;
    padding: 4px 0;
}
.komorebi-workspaces .ws-btn {
    font-size: 12px;
    border: none;
    color: rgb(76, 86, 106);
    padding: 0 8px 0 8px;
}
.komorebi-workspaces .ws-btn:hover {
    color: rgb(46, 52, 64);
}
.komorebi-workspaces .ws-btn.populated {
    color: rgb(76, 86, 106);
}
.komorebi-workspaces .ws-btn.active {
    color: rgb(129, 161, 193);
}

/* Blue Power Button: rgb(94, 129, 172); */
.power-menu-widget .label {
    color: rgb(191, 97, 106);
    font-size: 16px;
    padding-right: 4px;
}

.uptime {
    font-size: 14px;
    margin-bottom: 10px;
    color: rgb(216, 222, 233);
    font-weight: 600;
}
.power-menu-popup {
    background-color: rgb(46, 52, 64);
    border-radius: 6px;
}
.power-menu-popup .button {
    width: 240px;
    height: 120px;
    border-radius: 8px;
    background-color: rgb(59, 66, 82);
    color: rgb(229, 233, 240);
    margin: 8px;
}
.power-menu-popup .button.hover {
    background-color: rgb(76, 86, 106);
}
.power-menu-popup .button .label {
    margin-bottom: 8px;
    font-size: 16px;
    color: rgb(216, 222, 233);
}

.power-menu-popup .button .icon {
    font-size: 48px;
    padding-top: 12px;
    padding-right: 8px;
    color: rgb(229, 233, 240);
}
.power-menu-popup .button.cancel .icon {
    color: rgb(94, 129, 172);
}
.power-menu-popup .button.cancel .label {
    color: rgb(94, 129, 172);
}

/* Blue Power Button: rgb(143, 188, 187); */
.power-menu-popup .button.shutdown .icon {
    color: rgb(191, 97, 106);
}
.power-menu-popup .button.shutdown .label {
    color: rgb(191, 97, 106);
}

/* ICONS */
.icon {
    font-size: 16px;
    margin-right:4px;
}
.cpu-widget .icon {
    font-size: 14px;
    color: rgb(163, 190, 140);
}

.memory-widget .icon {
    font-size: 14px;
    color: rgb(208, 135, 112);
}  

.weather-widget .label,
.weather-widget .icon {
    color: rgb(235, 203, 139);
}
.weather-widget .icon {
    font-size: 16px;
}
.weather-widget .icon.clearNight {
    font-size: 16px;
}
.weather-widget .icon.cloudyNight {
    font-size: 18px;
} 

.volume-widget .icon {
    color: rgb(129, 161, 193);
}

.taskbar-widget .app-icon{
    padding:0 6px;
    border: none;
    margin: 0;
}

/* NEW MEDIA WIDGET */
.media-widget {
    padding: 0;
    margin: 0;
    border-radius: 0;
}
.media-widget .label {
    color: rgb(46, 52, 64);
    padding: 0 4px;
    font-size: 11px;
}
.media-widget .btn {
    color: rgb(76, 86, 106);
    padding: 0 3px;
    margin: 4px 0;
}
.media-widget .btn:hover {
    color: rgb(46, 52, 64);
}
.media-widget .btn.play {
    font-size: 16px;
}
.media-widget .btn.disabled:hover,
.media-widget .btn.disabled {
    color: rgb(76, 86, 106);
    font-size: 12px;
}

/* SYSTEM WIDGET */
/* Grey Sys Widget: Remove colour attribute */
.system-widget .label {
    font-size: 24px;
    color: rgb(94, 129, 172);
}

/* DARK THEME BELOW */

*.dark .label {
    color: rgb(236, 239, 244);
}

.yasb-bar.dark {
    background-color: rgb(46, 52, 64);
}

*.dark .komorebi-workspaces .ws-btn {
    color: rgb(76, 86, 106);
}
*.dark .komorebi-workspaces .ws-btn:hover {
    color: rgb(129, 161, 193);
}
*.dark .komorebi-workspaces .ws-btn.populated {
    color: rgb(76, 86, 106);
}
*.dark .komorebi-workspaces .ws-btn.active {
    color: rgb(129, 161, 193);
}

/* Blue Power Button: rgb(94, 129, 172); */
*.dark .power-menu-widget .label {
    color: rgb(191, 97, 106);
}

/* NEW MEDIA WIDGET */
*.dark .media-widget .label {
    color: rgb(216, 222, 233);
}
*.dark .media-widget .btn {
    color: rgb(216, 222, 233);
}
*.dark .media-widget .btn:hover {
    color: rgb(236, 239, 244);
}
*.dark .media-widget .btn.disabled:hover,
*.dark .media-widget .btn.disabled {
    color: rgb(216, 222, 233);
}

/* SYSTEM WIDGET */
/* Grey Sys Widget: Remove colour attribute */
*.dark .system-widget .label {
    font-size: 24px;
    color: rgb(94, 129, 172);
}

Theme Config

watch_stylesheet: true
watch_config: true

komorebi:
  start_command: "komorebic start --whkd"
  stop_command: "komorebic stop --whkd"
  reload_command: "komorebic reload-configuration"

bars:
  status-bar:
    enabled: true
    #screens: ['DELL P2419H (1)'] 
    #screens: ['DELL P2419H (2)'] 
    screens: ['*'] 
    class_name: "yasb-bar"
    alignment:
      position: "top"
      center: false
    blur_effect:
      enabled: false 
      acrylic: false 
      dark_mode: false
      round_corners: false
    window_flags:
      always_on_top: false
      windows_app_bar: true
    dimensions:
      width: "100%"
      height: 32
    padding:
      top: 8
      left: 12
      bottom: 0
      right: 12
    widgets:
      left:
        [
          "win_button",
          "komorebi_workspaces"
        ] 
      center: [
         "active_window"
        ]
      right:
        [
          "clock",
          "cpu",
          "memory",
          "volume",
          "power_menu"
        ]
widgets:
  media:
    type: "yasb.media.MediaWidget"
    options:
      label: "{title} - {artist}"
      label_alt: "{title}"
      max_field_size:
        label: 20
        label_alt: 30
      show_thumbnail: false
      controls_only: false
      controls_left: true
      hide_empty: true
      thumbnail_alpha: 80
      thumbnail_padding: 8
      thumbnail_corner_radius: 16 # Set to 0 for square corners
      icons:
        prev_track: "\udb81\udcae"
        next_track: "\udb81\udcad"
        play: "\uf04b"
        pause: "\uf04c"
  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: ""
      label_icon: true
      label_icon_size: 16
      max_length: 56
      max_length_ellipsis: "..."
      monitor_exclusive: true
  battery:
    type: "yasb.battery.BatteryWidget"
    options:
      label: "<span>{icon}</span>{percent}%"
      label_alt: "{icon} {percent}% | time: {time_remaining}"
      charging_options:
        icon_format: "{charging_icon}"
  clock:
    type: "yasb.clock.ClockWidget"
    options:
      label: "{%a %d, %b %H:%M}"
      label_alt: "{%A %d %B %Y, %H:%M}"
      #locale: 'en_EN' # Langugae for date, you can set your own, example fr_FR
      timezones: [] #Looking up time zone info from registry
      #timezones: ["America/Montreal"]
  cpu:
    type: "yasb.cpu.CpuWidget"
    options:
      label: "<span>\uf4bc</span> {info[percent][total]}%"
      label_alt: "<span>\uf437</span> {info[histograms][cpu_percent]}"
      update_interval: 2000
      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_right: "exec cmd /c Taskmgr"
  memory:
    type: "yasb.memory.MemoryWidget"
    options:
      label: "<span>\uefc5</span> {virtual_mem_percent}%"
      label_alt: "<span>\uefc5</span> {virtual_mem_free}"
      update_interval: 10000
      callbacks:
        on_right: "exec cmd /c Taskmgr"
  komorebi_workspaces:
    type: "komorebi.workspaces.WorkspaceWidget"
    options:
        label_offline: "Komorebi Offline"
        label_workspace_btn: "\uf10c"
        label_workspace_active_btn: "\uf192"
        label_workspace_populated_btn: "\uf192"
        label_default_name: "{index}"
        label_zero_index: false
        hide_empty_workspaces: false
        hide_if_offline: true
  komorebi_active_layout:
    type: "komorebi.active_layout.ActiveLayoutWidget"
    options:
      hide_if_offline: true
      label: "{icon}"
      layouts: ['bsp', 'columns', 'rows', 'grid', 'vertical_stack', 'horizontal_stack', 'ultrawide_vertical_stack','right_main_vertical_stack']
      layout_icons:
        bsp: "BSP"
        columns: "COLS"
        rows: "ROWS"
        grid: "GRID"
        vertical_stack: "V-STACK"
        horizontal_stack: "H-STACK"
        ultrawide_vertical_stack: "W-STACK"
        right_main_vertical_stack: "RMV-STACK"
        monocle: "MONOCLE"
        maximised: "MAX"
        floating: "FLOATING"
        paused: "PAUSED"
      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: "{wifi_name} {wifi_strength}%"
      update_interval: 5000
      callbacks:
        on_left: "exec cmd.exe /c start ms-settings:network"
        on_middle: "do_nothing"
        on_right: "toggle_label"
  traffic:
    type: "yasb.traffic.TrafficWidget"
    options:
      label: "<span>\udb86\uddb3</span>{download_speed} | <span>\udb86\uddb2</span>{upload_speed}"
      label_alt: "Download {download_speed} \ue621 Upload {upload_speed}"
      update_interval: 1000 # Update interval should be a multiple of 1000
      callbacks:
        on_left: "toggle_label"
        on_right: "exec cmd /c Taskmgr"
  ip_info:
    type: "yasb.custom.CustomWidget"
    options:
      label: "<span>\udb81\udd9f</span> {data[ip]}"
      label_alt: "<span>\uf450</span> {data[city]} {data[region]}, {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

  weather:
    type: "yasb.weather.WeatherWidget"
    options:
      label: "<span>{icon}</span> {temp_c}"
      label_alt: "{location}: Min {min_temp_c}, Max {max_temp_c}, Humidity {humidity}"
      api_key: '3bf4cf9a7c3f40d6b31174128242807' # Get your free API key from https://www.weatherapi.com/
      update_interval: 600 # Update interval in seconds, Min 600 seconds
      hide_decimal: true
      location: 'Los Angeles, CA, USA' # 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}
  lang:
    type: "yasb.custom.CustomWidget"
    options:
      label: "<span>\uf1ab</span>{data}"
      label_alt: "{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 10 sec
        run_interval: 10000
        return_format: "string"
  volume:
    type: "yasb.volume.VolumeWidget"
    options:
      label: "<span>{icon}</span> {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
      callbacks:
        on_right: "exec cmd.exe /c start ms-settings:sound"
  power_menu:
    type: "yasb.power_menu.PowerMenuWidget"
    options:
      label: "\uf011"
      uptime: True
      blur: False
      blur_background: True
      animation_duration: 300 # Milisecond 
      button_row: 3 # Number of buttons in row, min 1 max 5
      buttons:
        lock: ["\uea75","Lock"]
        signout: ["\udb80\udf43","Sign out"]
        shutdown: ["\uf011","Shut Down"]
        restart: ["\uead2","Restart"]
        #hibernate: ["\uf28e","Hibernate"]
        sleep: ["\u23fe","Sleep"]
        cancel: ["\udb81\udf3a","Cancel"]
        #force_shutdown: ["\uf011","Force Shut Down"]
        #force_restart: ["\uead2","Force Restart"]
  apps:
    type: "yasb.applications.ApplicationsWidget"
    options:
      label: "{data}"
      app_list:
        #- {icon: "\uf489", launch: "wt"}
        #- {icon: "\uf413", launch: "explorer c:\\Users\\amn"}
        #- {icon: "\udb82\ude1e", launch: "C:\\Users\\amn\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe"}
        #- {icon: "\udb80\ude39", launch: "C:\\Program Files\\Mozilla Firefox\\firefox.exe"}
        #- {icon: "\uf1ff", launch: "C:\\Users\\amn\\AppData\\Local\\Discord\\Update.exe --processStart Discord.exe"}
        #- {icon: "\ue217", launch: "C:\\Users\\amn\\AppData\\Roaming\\Telegram Desktop\\Telegram.exe"}
        #- {icon: "\uf0a2", launch: "notification_center"}
        #- {icon: "\ueb51", launch: "quick_settings"}
        #- {icon: "\uf46a", launch: "cmd.exe /c start ms-settings:windowsupdate"}
        #- {icon: "\uf422", launch: "search"}
        #- {icon: "\udb84\udf55", launch: "widget"}
        # Currently available to use quick_settings, notification_center, search, widget, launcher (launcher will trigger ALT+A)
  github:
    type: "yasb.github.GithubWidget"
    options:
      label: "<span>\ueba1</span>"
      label_alt: "Notifications {data}" # {data} return number of unread notification
      token: ghp_xxxxxxxxxxx # GitHub Personal access tokens (classic) https://github.com/settings/tokens
      max_notification: 20 # Max number of notification displaying in menu max: 50
      only_unread: false # Show only unread or all notifications; 
      max_field_size: 54 # Max characters in title before truncation.
      menu_width: 400 
      menu_height: 400 
      menu_offset: 240 
      update_interval: 300 # Check for new notification in seconds
  wallapers:
    type: "yasb.wallpapers.WallpapersWidget"
    options:
      label: "<span>\udb83\ude09</span>"
      image_path: "C:\\Users\\xxx\\Images" # Path to folder with images
      change_automatically: false # Automatically change wallpaper
      update_interval: 60 # If change_automatically is true, update interval in seconds
  nvidia_temp:
    type: "yasb.custom.CustomWidget"
    options:
      label: "{data}<span>\udb81\udd04</span>"
      label_alt: "{data}"
      class_name: "system-widget"
      exec_options:
        run_cmd: "powershell nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader"
        run_interval: 10000 # run every 10 sec
        return_format: "string"
  win_button:
    type: "yasb.custom.CustomWidget"
    options:
      label: "\udb80\udf5c"
      label_alt: "\udb80\udf5c"
      class_name: "system-widget"
      callbacks:
        on_left: "exec start_menu"

Readme

# Nord Dynamic

![Preview](https://github.com/user-attachments/assets/25342663-d5dc-4c62-b516-1e45c69db0c7)

A version of [Nord's](https://github.com/nordtheme/nord) arctic, north-bluish color palette, with a Nord4 based colour pallete for light mode, and a Nord0 based colour pallete for dark mode.
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.