diff --git a/.old/config/yasb/config.yaml b/.old/config/yasb/config.yaml
new file mode 100644
index 0000000..a3cacc5
--- /dev/null
+++ b/.old/config/yasb/config.yaml
@@ -0,0 +1,413 @@
+# This is default and very simple configuration file for Yasb.
+# For more information about configuration options, please visit the Wiki https://github.com/amnweb/yasb/wiki
+watch_stylesheet: true
+watch_config: true
+debug: false
+update_check: true # Enable automatic update check.
+komorebi:
+ start_command: "komorebic start --whkd"
+ stop_command: "komorebic stop --whkd"
+ reload_command: "komorebic stop --whkd && komorebic start --whkd"
+bars:
+ primary-bar:
+ enabled: true
+ screens: ["primary"]
+ class_name: "yasb-bar"
+ alignment:
+ position: "top"
+ center: false
+ animation:
+ enabled: true
+ duration: 1000
+ blur_effect:
+ enabled: true
+ acrylic: false
+ dark_mode: true
+ round_corners: true
+ round_corners_type: "normal"
+ border_color: "System"
+ window_flags:
+ always_on_top: false
+ windows_app_bar: true
+ dimensions:
+ width: "100%"
+ height: 32
+ padding:
+ top: 6
+ left: 6
+ bottom: 0
+ right: 6
+ widgets:
+ left: [
+ "glazewm_tiling_direction",
+ "glazewm_workspaces",
+ "pomodoro",
+ "active_window"
+ ]
+ center: [
+ "clock"
+ ]
+ right: [
+ "cava",
+ "media",
+ "weather",
+ "microphone",
+ "volume",
+ "cpu",
+ "memory",
+ "notifications",
+ "wallpapers",
+ "power_menu"
+ ]
+widgets:
+ home:
+ type: "yasb.home.HomeWidget"
+ options:
+ label: "\udb81\udf17"
+ menu_list:
+ - { title: "My Crib", path: "~" }
+ - { title: "Loot Bag", path: "~\\Downloads" }
+ - { title: "Boring Stuff", path: "~\\Documents" }
+ - { title: "Cursed Memories", path: "~\\Pictures" }
+ system_menu: true
+ power_menu: true
+ blur: false
+ media:
+ type: "yasb.media.MediaWidget"
+ options:
+ label: "\uf001 {title}"
+ label_alt: "\uf001 {artist}"
+ callbacks:
+ on_left: "toggle_media_menu"
+ on_middle: "do_nothing"
+ on_right: "do_nothing"
+ max_field_size:
+ label: 50
+ label_alt: 24
+ show_thumbnail: false
+ controls_only: false
+ controls_left: true
+ hide_empty: true
+ thumbnail_alpha: 250
+ thumbnail_padding: 8
+ thumbnail_corner_radius: 0
+ icons:
+ prev_track: ""
+ next_track: ""
+ play: ""
+ pause: ""
+ 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: 14
+ max_length: 46
+ max_length_ellipsis: "..."
+ monitor_exclusive: true
+ clock:
+ type: "yasb.clock.ClockWidget"
+ options:
+ label: "{%I:%M:%S}"
+ label_alt: "{%I:%M:%S}"
+ timezones: []
+ callbacks:
+ on_left: "toggle_calendar"
+ weather:
+ type: "yasb.weather.WeatherWidget"
+ options:
+ label: "{icon} {temp}"
+ label_alt: "{location}: Min {min_temp}, Max {max_temp}, Humidity {humidity}"
+ api_key: # Get your free API key from https://www.weatherapi.com/
+ update_interval: 600
+ hide_decimal: true
+ location: # You can use "USA Los Angeles 90006" {COUNTRY CITY ZIP_CODE}, or just city.
+ callbacks:
+ on_left: "toggle_card"
+ icons:
+ sunnyDay: "\ue30d"
+ clearNight: "\ue32b"
+ cloudyDay: "\ue312"
+ cloudyNight: "\ue311"
+ rainyDay: "\ue308"
+ rainyNight: "\ue333"
+ snowyIcyDay: "\ue30a"
+ snowyIcyNight: "\ue335"
+ blizzardDay: "\udb83\udf36"
+ blizzardNight: "\udb83\udf36"
+ foggyDay: "\ue303"
+ foggyNight: "\ue346"
+ thunderstormDay: "\ue30f"
+ thunderstormNight: "\ue338"
+ default: "\uebaa"
+ weather_card:
+ blur: True
+ round_corners: True
+ round_corners_type: "normal"
+ border_color: "System"
+ alignment: "right"
+ direction: "down"
+ icon_size: 64
+ show_hourly_forecast: True # Set to False to disable hourly forecast
+ time_format: "12h" # can be 12h or 24h
+ hourly_point_spacing: 76
+ hourly_icon_size: 32 # better to set 16, 32 or 64 for better quality
+ icon_smoothing: true # should be true for smoother icon or false for sharper icon if using 16, 32 or 64 for hourly_icon_size
+ temp_line_width: 2 # can be 0 to hide the temperature line
+ current_line_color: "#8EAEE8"
+ current_line_width: 1 # can be 0 to hide the current hour line
+ current_line_style: "dot"
+ label_shadow:
+ enabled: true
+ color: "black"
+ radius: 3
+ offset: [ 1, 1 ]
+ volume:
+ type: "yasb.volume.VolumeWidget"
+ options:
+ label: "{icon} {level}"
+ label_alt: "{volume}"
+ tooltip: false
+ volume_icons:
+ - "\ueee8"
+ - "\uf026"
+ - "\uf027"
+ - "\uf027"
+ - "\uf028"
+ callbacks:
+ on_left: "toggle_mute"
+ on_right: "exec cmd.exe /c start ms-settings:sound"
+ microphone:
+ type: "yasb.microphone.MicrophoneWidget"
+ options:
+ label: "{icon} {level}"
+ label_alt: "{icon} {level}%"
+ icons:
+ normal: "\udb80\udf6c"
+ muted: "\udb80\udf6d"
+ callbacks:
+ on_left: "toggle_mute"
+ on_middle: "toggle_label"
+ 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: 200
+ button_row: 5
+ buttons:
+ shutdown: ["\uf011", "Rage Quit"]
+ restart: ["\uead2", "Oops, Reboot"]
+ signout: ["\udb80\udf43", "Dip Out"]
+ hibernate: ["\uf28e", "Bear Mode"]
+ sleep: ["\u23fe", "Nap Time"]
+ cancel: ["", "Nah, Im Good "]
+ apps:
+ type: "yasb.applications.ApplicationsWidget"
+ options:
+ container_padding:
+ top: 0
+ left: 8
+ bottom: 0
+ right: 8
+ label: "{data}"
+ app_list:
+ - { icon: "\ueb03", launch: "cmd /c Taskmgr" }
+ - { icon: "\uf489", launch: "wt"}
+ notifications:
+ type: "yasb.notifications.NotificationsWidget"
+ options:
+ label: "\uf476 {count}"
+ label_alt: "{count} notifications"
+ hide_empty: true
+ tooltip: false
+ callbacks:
+ on_left: "toggle_notification"
+ on_right: "do_nothing"
+ on_middle: "toggle_label"
+ wallpapers:
+ type: "yasb.wallpapers.WallpapersWidget"
+ options:
+ label: "\udb83\ude09"
+ image_path: # Example path to folder with images
+ change_automatically: false # Automatically change wallpaper
+ update_interval: 60 # If change_automatically is true, update interval in seconds
+ gallery:
+ enabled: true
+ blur: true
+ image_width: 220
+ image_per_page: 8
+ show_buttons: true
+ orientation: "portrait"
+ image_spacing: 8
+ lazy_load: true
+ lazy_load_delay: 80
+ lazy_load_fadein: 400
+ image_corner_radius: 20
+ enable_cache: true
+ cava:
+ type: "yasb.cava.CavaWidget"
+ options:
+ bar_height: 12
+ min_bar_height: 0
+ gradient: 1
+ reverse: 0
+ foreground: "#89b4fa"
+ gradient_color_1: '#74c7ec'
+ gradient_color_2: '#89b4fa'
+ gradient_color_3: '#cba6f7'
+ bars_number: 8
+ bar_spacing: 2
+ bar_width: 4
+ hide_empty: true
+ container_padding:
+ top: 0
+ left: 8
+ bottom: 0
+ right: 8
+ cpu:
+ type: "yasb.cpu.CpuWidget"
+ options:
+ label: "\uf4bc {info[percent][total]}"
+ label_alt: "\uf437 {info[histograms][cpu_percent]}"
+ 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_right: "exec cmd /c Taskmgr"
+ label_shadow:
+ enabled: true
+ color: "black"
+ radius: 3
+ offset: [ 1, 1 ]
+ glazewm_workspaces:
+ type: "glazewm.workspaces.GlazewmWorkspacesWidget"
+ options:
+ # Offline behavior (matching komorebi's label_offline and hide_if_offline)
+ offline_label: "GlazeWM Offline"
+ hide_if_offline: true
+
+ # Workspace display labels (matching komorebi's label_workspace_btn and label_workspace_active_btn)
+ populated_label: "\udb85\udcfc"
+ empty_label: "\udb85\udcfc"
+ active_populated_label: "\udb85\udcfb"
+ active_empty_label: "\udb85\udcfb"
+
+ # Workspace management (matching komorebi's hide_empty_workspaces)
+ hide_empty_workspaces: false
+
+ # Server connection
+ glazewm_server_uri: "ws://localhost:6123"
+
+ # Additional GlazeWM-specific options (keeping defaults)
+ enable_scroll_switching: true
+ reverse_scroll_direction: true
+ container_padding:
+ top: 0
+ left: 0
+ bottom: 0
+ right: 0
+ glazewm_tiling_direction:
+ type: "glazewm.tiling_direction.GlazewmTilingDirectionWidget"
+ options:
+ horizontal_label: "\udb81\udce1"
+ vertical_label: "\udb81\udce2"
+ btn_shadow:
+ enabled: true
+ color: "black"
+ radius: 3
+ offset: [ 1, 1 ]
+ pomodoro:
+ type: "yasb.pomodoro.PomodoroWidget"
+ options:
+ label: "{icon} {remaining}"
+ label_alt: "{icon} {session}/{total_sessions} - {status}"
+ work_duration: 25
+ break_duration: 5
+ long_break_duration: 15
+ long_break_interval: 4
+ auto_start_breaks: true
+ auto_start_work: true
+ sound_notification: true
+ show_notification: true
+ hide_on_break: false
+ session_target: 8
+ icons:
+ work: "\uf252"
+ break: "\uf253"
+ paused: "\uf254"
+ container_padding:
+ top: 0
+ left: 12
+ bottom: 0
+ right: 12
+ menu:
+ blur: true
+ round_corners: true
+ round_corners_type: "normal"
+ border_color: "System"
+ alignment: "right"
+ direction: "down"
+ offset_top: 6
+ offset_left: 0
+ circle_background_color: "#09ffffff"
+ circle_work_progress_color: "#88c0d0"
+ circle_break_progress_color: "#a3be8c"
+ circle_thickness: 8
+ circle_size: 160
+ callbacks:
+ on_left: "toggle_menu"
+ on_middle: "reset_timer"
+ on_right: "toggle_label"
+ label_shadow:
+ enabled: true
+ color: "black"
+ radius: 3
+ offset: [ 1, 1 ]
+ memory:
+ type: "yasb.memory.MemoryWidget"
+ options:
+ label: "\uf4bc {virtual_mem_percent}"
+ label_alt: "\uf4bc VIRT: {virtual_mem_percent}% SWAP: {swap_mem_percent}%"
+ update_interval: 5000
+ callbacks:
+ on_left: "toggle_label"
+ on_middle: "do_nothing"
+ on_right: "do_nothing"
+ 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%+
+ label_shadow:
+ enabled: true
+ color: "black"
+ radius: 3
+ offset: [ 1, 1 ]
\ No newline at end of file
diff --git a/.old/config/yasb/styles.css b/.old/config/yasb/styles.css
new file mode 100644
index 0000000..83534bd
--- /dev/null
+++ b/.old/config/yasb/styles.css
@@ -0,0 +1,446 @@
+* {
+ font-size: 12px;
+ color: #cdd6f4;
+ font-weight: 500;
+ font-family: "JetBrainsMono NFP";
+ margin: 0;
+ padding: 0;
+}
+.yasb-bar {
+ padding: 0 8px;
+ margin: 0;
+ background-color: #1e1e2e;
+ border-radius: 16px;
+}
+.widget {
+ padding: 0 10px;
+ margin: 0;
+}
+.widget .label {
+ padding: 2px 2px 1px 2px;
+
+}
+.widget .label.alt {
+ padding: 1px 8px 1px 8px;
+}
+ .clock-widget .label {
+ padding-left:8px;
+}
+.glazewm-workspaces {
+ margin: 0;
+}
+
+.glazewm-workspaces .ws-btn {
+ font-size: 18px;
+ background-color: transparent;
+ border: none;
+ padding: 0 2px 0 2px;
+ margin: 0;
+ color: #95a0ad;
+}
+
+.glazewm-workspaces .ws-btn.active_populated {
+ color: #89b4fa;
+}
+
+.glazewm-workspaces .ws-btn.active_empty {
+ color: #89b4fa;
+}
+
+.glazewm-workspaces .ws-btn.populated {
+ color: #74c7ec;
+}
+
+.glazewm-workspaces .ws-btn.empty {
+ color: #95a0ad;
+}
+
+.glazewm-workspaces .ws-btn:hover,
+.glazewm-workspaces .ws-btn.populated:hover,
+.glazewm-workspaces .ws-btn.empty:hover {
+ color: #89b4fa;
+}
+
+.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;
+}
+/*POWER MENU WIDGET*/
+/* Uptime text */
+.uptime {
+ font-size: 14px;
+ margin-bottom: 10px;
+ color: rgba(191, 202, 219, 0.726);
+ font-weight: 600;
+ font-family: "JetBrainsMono NFP";
+}
+.power-menu-widget .label {
+ color: #eba0ac;
+ font-size: 16px;
+}
+.power-menu-popup .button {
+ padding: 0;
+ width: 160px;
+ height: 240px;
+ border-radius: 4px;
+ background-color: rgba(41, 42, 58, 0.75);
+ font-family: "JetBrainsMono NFP";
+ color: white;
+ border: 4px solid rgba(255, 255, 255, 0);
+
+}
+.power-menu-popup .button.hover {
+ background-color: rgb(55, 56, 75);
+ border: 4px 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.6);
+ font-family: "JetBrainsMono NFP";
+}
+.power-menu-popup .button .icon {
+ font-size: 64px;
+ padding-top: 54px;
+ color: rgba(255, 255, 255, 0.25);
+}
+.power-menu-popup .button.cancel {
+ height: 20px !important; /* Much thinner than the 240px of other buttons */
+ width: 100%; /* Full width to span across */
+ padding-top: 10px;
+ padding-bottom: 10px;
+}
+
+.power-menu-popup .button.cancel .icon {
+ font-size: 24px !important; /* Smaller icon for the thinner button */
+ padding-top: 0px !important; /* Remove the large top padding */
+ color: rgba(243, 139, 168, 0.55);
+}
+
+.power-menu-popup .button.cancel .label {
+ margin-bottom: 0px !important; /* Remove bottom margin */
+ color: rgba(243, 139, 168, 0.95);
+}
+/* ICONS */
+.icon {
+ font-size: 16px;
+}
+.volume-widget .icon {
+ color: #89b4fa;
+ margin: 1px 2px 0 0;
+}
+.start-menu .icon {
+ font-size: 18px;
+ color: #89b4fa
+}
+.clock-widget .icon {
+ color: #cba6f7;
+ font-size: 14px;
+}
+/* WEATHER WIDGET */
+.weather-card {
+ background-color: rgba(17, 17, 27, 0.5);
+}
+.weather-card-today {
+ border: 1px solid #282936;
+ border-radius: 8px;
+ background-color: rgba(17, 17, 27, 0.2);
+}
+.weather-card-today .label {
+ font-size: 12px;
+}
+.weather-card-today .label.location {
+ font-size: 24px;
+ font-weight: 700;
+}
+.weather-card-today .label.alert {
+ font-size: 12px;
+ font-weight: 700;
+ background-color: rgba(247, 199, 42, 0.05);
+ border: 1px solid rgba(247, 209, 42, 0.1);
+ color: rgba(196, 181, 162, 0.85);
+ border-radius: 6px;
+ padding: 5px 0;
+}
+.weather-card-day {
+ border: 1px solid #45475a;
+ border-radius: 8px;
+ background-color: rgba(17, 17, 27, 0.2);
+}
+
+.weather-card-day.active {
+ background-color: rgba(40, 40, 60, 0.6);
+ border: 1px solid rgba(50, 50, 75, 1);
+}
+
+.weather-card-day:hover {
+ background-color: rgba(40, 40, 60, 0.6);
+}
+
+.weather-card-day .label {
+ font-size: 12px;
+}
+
+.weather-card .hourly-container {
+ border: 1px solid #282936;
+ background-color: #3c5fa0;
+ border-radius: 8px;
+ min-height: 150px;
+}
+
+.weather-card .hourly-data {
+ /* font-family: 'Segoe UI';*/
+ /* color: cyan;*/ /* <- Font color */
+ background-color: #FAE93F; /* <- Curve color */
+ font-size: 12px;
+ font-weight: bold;
+}
+.media-widget {
+ padding: 0;
+ margin: 0;
+}
+.media-widget .label {
+ color: #b4befe;
+ padding: 0px;
+ padding-right: 4px;
+}
+.media-menu {
+ min-width: 420px;
+ max-width: 420px;
+ background-color: rgba(31, 39, 49, 0.5);
+}
+.media-menu .title,
+.media-menu .artist,
+.media-menu .source {
+ font-size: 14px;
+ font-weight: 600;
+ margin-left: 10px;
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
+}
+.media-menu .artist {
+ font-size: 13px;
+ color: #6c7086;
+ margin-top: 0px;
+ margin-bottom: 8px;
+}
+.media-menu .source {
+ font-size: 11px;
+ color: #000;
+ font-weight: normal;
+ border-radius: 3px;
+ background-color: #bac2de;
+ padding: 2px 4px;
+
+}
+/* The source class name is the same as what you see in the media widget; just replace spaces with dashes and convert it to lowercase.
+Example: "Windows Media" becomes "windows-media" */
+.media-menu .source.firefox {
+ background-color: #ff583b;
+ color: #ffffff;
+}
+.media-menu .source.spotify {
+ background-color: #199143;
+ color: #ffffff;
+}
+.media-menu .source.edge {
+ background-color: #0078d4;
+ color: #ffffff;
+}
+.media-menu .source.windows-media {
+ background-color: #0078d4;
+ color: #ffffff;
+}
+
+.media-menu .btn {
+ font-family: "Segoe Fluent Icons";
+ font-size: 14px;
+ font-weight: 400;
+ margin: 10px 2px 0px 2px;
+ min-width: 40px;
+ max-width: 40px;
+ min-height: 40px;
+ max-height: 40px;
+ border-radius: 20px;
+}
+.media-menu .btn.prev {
+ margin-left: 10px;
+}
+.media-menu .btn:hover {
+ color: white;
+ background-color: rgba(255, 255, 255, 0.1);
+}
+.media-menu .btn.play {
+ background-color: rgba(255, 255, 255, 0.1);
+ font-size: 20px
+}
+.media-menu .btn.disabled:hover,
+.media-menu .btn.disabled {
+ color: #4e525c;
+ background-color: rgba(0, 0, 0, 0);
+}
+
+.media-menu .playback-time {
+ font-size: 13px;
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
+ color: #7f849c;
+ margin-top: 20px;
+ min-width: 100px;
+}
+.media-menu .progress-slider {
+ height: 10px;
+ margin: 5px 4px;
+ border-radius: 3px;
+}
+.media-menu .progress-slider::groove {
+ background: transparent;
+ height: 2px;
+ border-radius: 3px;
+ background: rgba(255, 255, 255, 0.1);
+
+}
+.media-menu .progress-slider::groove:hover {
+ background: transparent;
+ height: 6px;
+ border-radius: 3px;
+ background: rgba(255, 255, 255, 0.2);
+}
+.media-menu .progress-slider::sub-page {
+ background: white;
+ border-radius: 3px;
+ height: 4px;
+}
+ /* Hide media widget buttons */
+.media-widget .btn {
+ padding: 0;
+ margin: 0 -6px;
+ padding-left: 4px;
+}
+.pomodoro-widget {
+ padding: 0 0 0 0;
+}
+.pomodoro-widget .icon {
+ font-size: 12px;
+ padding-right: 4px;
+}
+.pomodoro-widget .label.paused,
+.pomodoro-widget .icon.paused {
+ color: #7d7e8b;
+}
+.pomodoro-widget .label.work,
+.pomodoro-widget .icon.work {
+ color: #a6e3a1;
+}
+.pomodoro-widget .label.break,
+.pomodoro-widget .icon.break {
+ color: #89b4fa;
+}
+/* Pomodoro menu styling */
+.pomodoro-menu {
+ background-color: rgba(17, 17, 27, 0.2);
+ border-radius: 8px;
+}
+.pomodoro-menu .header {
+ font-size: 16px;
+ font-weight: 600;
+ max-height: 0px;
+ color: #ffffff;
+}
+.pomodoro-menu .status {
+ font-size: 18px;
+ font-weight: 600;
+ color: #cdd6f4;
+}
+.pomodoro-menu .session {
+ font-size: 12px;
+ color: #a6adc8;
+}
+.pomodoro-menu .button {
+ background-color: #3f4053;
+ color: #cdd6f4;
+ border: none;
+ border-radius: 4px;
+ padding: 6px 12px;
+}
+.pomodoro-menu .button.start {
+ background-color: #3f4053;
+}
+.pomodoro-menu .button.reset {
+ background-color: #3f4053;
+}
+.pomodoro-menu .button:hover {
+ background-color: rgba(255, 255, 255, 0.158);
+}
+.pomodoro-menu .button.pause {
+ background-color: #a6e3a1;
+ color: #1e1e2e;
+}
+.pomodoro-menu .button:pressed {
+ background-color: #5a5b6e;
+}
+
+.calendar {
+ background-color: rgba(17, 17, 27, 0.4);
+}
+.calendar .calendar-table,
+.calendar .calendar-table::item {
+ background-color: rgba(17, 17, 27, 0);
+ color: rgba(162, 177, 196, 0.85);
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
+ margin: 0;
+ padding: 0;
+ border: none;
+ outline: none;
+}
+.calendar .calendar-table::item:selected {
+ color: rgb(255, 255, 255);
+ background-color: #007acc;
+ border-radius: 10px;
+}
+.calendar .day-label {
+ margin-top: 20px;
+}
+.calendar .day-label,
+.calendar .month-label,
+.calendar .date-label,
+.calendar .week-label,
+.calendar .holiday-label {
+ font-family: 'Segoe UI';
+ font-size: 16px;
+ color: #fff;
+ font-weight: 700;
+ min-width: 180px;
+ max-width: 180px;
+}
+.calendar .week-label,
+.calendar .holiday-label {
+ font-size: 12px;
+ font-weight: 600;
+ color: rgba(162, 177, 196, 0.85);
+}
+.calendar .holiday-label {
+ color: rgba(162, 177, 196, 0.85);
+ font-weight: 700;
+}
+.calendar .month-label {
+ font-weight: normal;
+}
+.calendar .date-label {
+ font-size: 88px;
+ font-weight: 900;
+ color: rgb(255, 255, 255);
+ margin-top: -20px;
+}
\ No newline at end of file
diff --git a/.old/config/yasb/yasb.log b/.old/config/yasb/yasb.log
new file mode 100644
index 0000000..5c585f8
--- /dev/null
+++ b/.old/config/yasb/yasb.log
@@ -0,0 +1,145 @@
+2026-03-30 21:48:22,794 [INFO] [MainThread] [root/log.py:95]: YASB v1.9.0
+2026-03-30 21:48:22,795 [INFO] [CLIPipeServer] [cli_server/cli_server.py:215]: CLI server started v1.1.6
+2026-03-30 21:48:22,795 [INFO] [MainThread] [cli_server/cli_server.py:106]: Log pipe server started
+2026-03-30 21:48:22,922 [DEBUG] [MainThread] [qasync._windows._EventPoller/_windows.py:215]: Starting (proactor: <_IocpProactor overlapped#=0 result#=0>)...
+2026-03-30 21:48:22,922 [DEBUG] [Dummy-3] [qasync._windows._EventWorker/_windows.py:195]: Thread started
+2026-03-30 21:48:23,904 [INFO] [MainThread] [root/service.py:41]: AudioInputService starting...
+2026-03-30 21:48:24,152 [INFO] [MainThread] [root/service.py:52]: AudioOutputService starting...
+2026-03-30 21:48:24,429 [DEBUG] [MainThread] [root/win32_accent.py:124]: Failed to apply settings: [WinError 0] The operation completed successfully.
+2026-03-30 21:48:25,162 [INFO] [MainThread] [root/bar_manager.py:88]: Starting SystemEventListener...
+2026-03-30 21:48:25,162 [INFO] [MainThread] [root/bar_manager.py:88]: Starting WindowsNotificationEventListener...
+2026-03-30 21:48:25,163 [ERROR] [MainThread] [root/widget_builder.py:111]: Failed to validate widget(s) due to invalid options - weather
+ location:
+ - Input should be a valid string
+ api_key:
+ - Input should be a valid string
+ icons:
+ snowyIcyDay:
+ - Extra inputs are not permitted
+ snowyIcyNight:
+ - Extra inputs are not permitted
+
+ - wallpapers
+ image_path:
+ str:
+ - Input should be a valid string
+ list[str]:
+ - Input should be a valid list
+
+2026-03-30 21:48:25,458 [INFO] [MainThread] [root/watcher.py:65]: Watching directory: c:\users\win10\.config\yasb
+2026-03-30 21:48:25,459 [INFO] [MainThread] [root/watcher.py:104]: Created file watcher
+2026-03-30 21:48:25,535 [INFO] [MainThread] [root/update_service.py:429]: Background update checker started
+2026-03-30 21:48:46,928 [DEBUG] [Thread-6] [root/watcher.py:90]: Config file modified: c:\users\win10\.config\yasb\config.yaml
+2026-03-30 21:51:25,966 [INFO] [MainThread] [root/controller.py:15]: Reloading Application from tray...
+2026-03-30 21:51:26,068 [INFO] [MainThread] [cli_server/cli_server.py:114]: Log pipe server stopped
+2026-03-30 21:51:26,068 [DEBUG] [MainThread] [cli_server/cli_server.py:209]: CLI server stopped
+2026-03-30 21:51:26,287 [INFO] [MainThread] [root/bar_manager.py:104]: Stopping SystemEventListener...
+2026-03-30 21:51:26,290 [INFO] [MainThread] [root/bar_manager.py:104]: Stopping WindowsNotificationEventListener...
+2026-03-30 21:51:26,701 [INFO] [MainThread] [root/log.py:95]: YASB v1.9.0
+2026-03-30 21:51:26,702 [INFO] [CLIPipeServer] [cli_server/cli_server.py:215]: CLI server started v1.1.6
+2026-03-30 21:51:26,702 [INFO] [MainThread] [cli_server/cli_server.py:106]: Log pipe server started
+2026-03-30 21:51:26,724 [DEBUG] [MainThread] [qasync._windows._EventPoller/_windows.py:215]: Starting (proactor: <_IocpProactor overlapped#=0 result#=0>)...
+2026-03-30 21:51:26,724 [DEBUG] [Dummy-3] [qasync._windows._EventWorker/_windows.py:195]: Thread started
+2026-03-30 21:51:27,144 [INFO] [MainThread] [root/service.py:41]: AudioInputService starting...
+2026-03-30 21:51:27,192 [INFO] [MainThread] [root/service.py:52]: AudioOutputService starting...
+2026-03-30 21:51:27,321 [DEBUG] [MainThread] [root/win32_accent.py:124]: Failed to apply settings: [WinError 0] The operation completed successfully.
+2026-03-30 21:51:27,458 [INFO] [MainThread] [root/bar_manager.py:88]: Starting WindowsNotificationEventListener...
+2026-03-30 21:51:27,459 [INFO] [MainThread] [root/bar_manager.py:88]: Starting SystemEventListener...
+2026-03-30 21:51:27,459 [ERROR] [MainThread] [root/widget_builder.py:111]: Failed to validate widget(s) due to invalid options - weather
+ location:
+ - Input should be a valid string
+ api_key:
+ - Input should be a valid string
+ icons:
+ snowyIcyDay:
+ - Extra inputs are not permitted
+ snowyIcyNight:
+ - Extra inputs are not permitted
+
+ - wallpapers
+ image_path:
+ str:
+ - Input should be a valid string
+ list[str]:
+ - Input should be a valid list
+
+2026-03-30 21:51:27,522 [INFO] [MainThread] [root/watcher.py:65]: Watching directory: c:\users\win10\.config\yasb
+2026-03-30 21:51:27,522 [INFO] [MainThread] [root/watcher.py:104]: Created file watcher
+2026-03-30 21:51:27,586 [INFO] [MainThread] [root/update_service.py:429]: Background update checker started
+2026-03-30 21:52:14,366 [DEBUG] [MainThread] [root/utilities.py:205]: Failed to get version info for C:\Program Files\Alacritty\alacritty.exe: (1813, 'GetFileVersionInfo:GetFileVersionInfoSize', 'The specified resource type cannot be found in the image file.')
+2026-03-30 21:52:32,086 [DEBUG] [MainThread] [root/utilities.py:205]: Failed to get version info for C:\Program Files\Alacritty\alacritty.exe: (1813, 'GetFileVersionInfo:GetFileVersionInfoSize', 'The specified resource type cannot be found in the image file.')
+2026-03-30 21:58:55,082 [DEBUG] [MainThread] [root/utilities.py:205]: Failed to get version info for C:\Program Files\Alacritty\alacritty.exe: (1813, 'GetFileVersionInfo:GetFileVersionInfoSize', 'The specified resource type cannot be found in the image file.')
+2026-03-30 22:01:21,452 [INFO] [MainThread] [root/controller.py:15]: Reloading Application from tray...
+2026-03-30 22:01:21,554 [INFO] [MainThread] [cli_server/cli_server.py:114]: Log pipe server stopped
+2026-03-30 22:01:21,554 [DEBUG] [MainThread] [cli_server/cli_server.py:209]: CLI server stopped
+2026-03-30 22:01:21,818 [INFO] [MainThread] [root/bar_manager.py:104]: Stopping WindowsNotificationEventListener...
+2026-03-30 22:01:21,819 [INFO] [MainThread] [root/bar_manager.py:104]: Stopping SystemEventListener...
+2026-03-30 22:01:22,248 [INFO] [MainThread] [root/log.py:95]: YASB v1.9.0
+2026-03-30 22:01:22,249 [INFO] [CLIPipeServer] [cli_server/cli_server.py:215]: CLI server started v1.1.6
+2026-03-30 22:01:22,249 [INFO] [MainThread] [cli_server/cli_server.py:106]: Log pipe server started
+2026-03-30 22:01:22,271 [DEBUG] [MainThread] [qasync._windows._EventPoller/_windows.py:215]: Starting (proactor: <_IocpProactor overlapped#=0 result#=0>)...
+2026-03-30 22:01:22,272 [DEBUG] [Dummy-3] [qasync._windows._EventWorker/_windows.py:195]: Thread started
+2026-03-30 22:01:22,705 [INFO] [MainThread] [root/service.py:41]: AudioInputService starting...
+2026-03-30 22:01:22,753 [INFO] [MainThread] [root/service.py:52]: AudioOutputService starting...
+2026-03-30 22:01:22,973 [DEBUG] [MainThread] [root/win32_accent.py:124]: Failed to apply settings: [WinError 0] The operation completed successfully.
+2026-03-30 22:01:23,108 [INFO] [MainThread] [root/bar_manager.py:88]: Starting WindowsNotificationEventListener...
+2026-03-30 22:01:23,109 [INFO] [MainThread] [root/bar_manager.py:88]: Starting SystemEventListener...
+2026-03-30 22:01:23,109 [ERROR] [MainThread] [root/widget_builder.py:111]: Failed to validate widget(s) due to invalid options - weather
+ location:
+ - Input should be a valid string
+ api_key:
+ - Input should be a valid string
+ icons:
+ snowyIcyDay:
+ - Extra inputs are not permitted
+ snowyIcyNight:
+ - Extra inputs are not permitted
+
+ - wallpapers
+ image_path:
+ str:
+ - Input should be a valid string
+ list[str]:
+ - Input should be a valid list
+
+2026-03-30 22:01:23,177 [INFO] [MainThread] [root/watcher.py:65]: Watching directory: c:\users\win10\.config\yasb
+2026-03-30 22:01:23,178 [INFO] [MainThread] [root/watcher.py:104]: Created file watcher
+2026-03-30 22:01:23,244 [INFO] [MainThread] [root/update_service.py:429]: Background update checker started
+2026-03-30 22:01:42,152 [INFO] [MainThread] [root/bar_manager.py:104]: Stopping WindowsNotificationEventListener...
+2026-03-30 22:01:42,152 [INFO] [MainThread] [root/bar_manager.py:104]: Stopping SystemEventListener...
+2026-03-30 22:03:44,650 [INFO] [MainThread] [root/log.py:95]: YASB v1.9.0
+2026-03-30 22:03:44,651 [INFO] [CLIPipeServer] [cli_server/cli_server.py:215]: CLI server started v1.1.6
+2026-03-30 22:03:44,651 [INFO] [MainThread] [cli_server/cli_server.py:106]: Log pipe server started
+2026-03-30 22:03:44,842 [DEBUG] [MainThread] [qasync._windows._EventPoller/_windows.py:215]: Starting (proactor: <_IocpProactor overlapped#=0 result#=0>)...
+2026-03-30 22:03:44,844 [DEBUG] [Dummy-3] [qasync._windows._EventWorker/_windows.py:195]: Thread started
+2026-03-30 22:03:46,088 [INFO] [MainThread] [root/service.py:41]: AudioInputService starting...
+2026-03-30 22:03:46,531 [INFO] [MainThread] [root/service.py:52]: AudioOutputService starting...
+2026-03-30 22:03:46,811 [DEBUG] [MainThread] [root/win32_accent.py:124]: Failed to apply settings: [WinError 0] The operation completed successfully.
+2026-03-30 22:03:46,896 [INFO] [MainThread] [root/bar_manager.py:88]: Starting WindowsNotificationEventListener...
+2026-03-30 22:03:46,897 [INFO] [MainThread] [root/bar_manager.py:88]: Starting SystemEventListener...
+2026-03-30 22:03:46,898 [ERROR] [MainThread] [root/widget_builder.py:111]: Failed to validate widget(s) due to invalid options - weather
+ location:
+ - Input should be a valid string
+ api_key:
+ - Input should be a valid string
+ icons:
+ snowyIcyDay:
+ - Extra inputs are not permitted
+ snowyIcyNight:
+ - Extra inputs are not permitted
+
+ - wallpapers
+ image_path:
+ str:
+ - Input should be a valid string
+ list[str]:
+ - Input should be a valid list
+
+2026-03-30 22:03:47,270 [INFO] [MainThread] [root/watcher.py:65]: Watching directory: c:\users\win10\.config\yasb
+2026-03-30 22:03:47,270 [INFO] [MainThread] [root/watcher.py:104]: Created file watcher
+2026-03-30 22:03:47,352 [INFO] [MainThread] [root/update_service.py:429]: Background update checker started
+2026-03-30 22:04:28,276 [INFO] [MainThread] [root/bar.py:149]: Screen geometry changed. Updating position for bar primary-bar on screen \\.\DISPLAY1
+2026-03-30 22:04:28,678 [INFO] [MainThread] [root/bar_helper.py:526]: AppBarManager need to re-register 1 bar
+2026-03-30 22:04:28,850 [INFO] [MainThread] [root/bar_helper.py:535]: Re-registered AppBar for primary-bar_DISPLAY1_882ba90a (space reservation + fullscreen)
+2026-03-30 22:10:08,146 [INFO] [MainThread] [root/bar_manager.py:104]: Stopping WindowsNotificationEventListener...
+2026-03-30 22:10:08,146 [INFO] [MainThread] [root/bar_manager.py:104]: Stopping SystemEventListener...
diff --git a/.old/glzr/glazewm/config-init.yaml b/.old/glzr/glazewm/config-init.yaml
new file mode 100644
index 0000000..4ba7294
--- /dev/null
+++ b/.old/glzr/glazewm/config-init.yaml
@@ -0,0 +1,321 @@
+general:
+ # Commands to run when the WM has started. This is useful for running a
+ # script or launching another application.
+ # Example: The below command launches Zebar.
+ startup_commands: ['shell-exec zebar']
+
+ # Commands to run just before the WM is shutdown.
+ # Example: The below command kills Zebar.
+ shutdown_commands: ['shell-exec taskkill /IM zebar.exe /F']
+
+ # Commands to run after the WM config is reloaded.
+ config_reload_commands: []
+
+ # Whether to automatically focus windows underneath the cursor.
+ focus_follows_cursor: false
+
+ # Whether to switch back and forth between the previously focused
+ # workspace when focusing the current workspace.
+ toggle_workspace_on_refocus: false
+
+ cursor_jump:
+ # Whether to automatically move the cursor on the specified trigger.
+ enabled: true
+
+ # Trigger for cursor jump:
+ # - 'monitor_focus': Jump when focus changes between monitors.
+ # - 'window_focus': Jump when focus changes between windows.
+ trigger: 'monitor_focus'
+
+ # How windows should be hidden when switching workspaces.
+ # - 'cloak': Recommended. Hides windows with no animation.
+ # - 'hide': Legacy method (v3.5 and earlier) that has a brief animation,
+ # but has stability issues with some apps.
+ hide_method: 'cloak'
+
+ # Affects which windows get shown in the native Windows taskbar. Has no
+ # effect if `hide_method: 'hide'`.
+ # - 'true': Show all windows (regardless of workspace).
+ # - 'false': Only show windows from the currently shown workspaces.
+ show_all_in_taskbar: false
+
+gaps:
+ # Whether to scale the gaps with the DPI of the monitor.
+ scale_with_dpi: true
+
+ # Gap between adjacent windows.
+ inner_gap: '20px'
+
+ # Gap between windows and the screen edge.
+ outer_gap:
+ top: '60px'
+ right: '20px'
+ bottom: '20px'
+ left: '20px'
+
+window_effects:
+ # Visual effects to apply to the focused window.
+ focused_window:
+ # Highlight the window with a colored border.
+ # ** Exclusive to Windows 11 due to API limitations.
+ border:
+ enabled: true
+ color: '#8dbcff'
+
+ # Remove the title bar from the window's frame. Note that this can
+ # cause rendering issues for some applications.
+ hide_title_bar:
+ enabled: false
+
+ # Change the corner style of the window's frame.
+ # ** Exclusive to Windows 11 due to API limitations.
+ corner_style:
+ enabled: false
+ # Allowed values: 'square', 'rounded', 'small_rounded'.
+ style: 'square'
+
+ # Change the transparency of the window.
+ transparency:
+ enabled: false
+ # Can be something like '95%' or '0.95' for slightly transparent windows.
+ # '0' or '0%' is fully transparent (and, by consequence, unfocusable).
+ opacity: '95%'
+
+ # Visual effects to apply to non-focused windows.
+ other_windows:
+ border:
+ enabled: true
+ color: '#a1a1a1'
+ hide_title_bar:
+ enabled: false
+ corner_style:
+ enabled: false
+ style: 'square'
+ transparency:
+ enabled: false
+ opacity: '0%'
+
+window_behavior:
+ # New windows are created in this state whenever possible.
+ # Allowed values: 'tiling', 'floating'.
+ initial_state: 'tiling'
+
+ # Sets the default options for when a new window is created. This also
+ # changes the defaults for when the state change commands, like
+ # `set-floating`, are used without any flags.
+ state_defaults:
+ floating:
+ # Whether to center floating windows by default.
+ centered: true
+
+ # Whether to show floating windows as always on top.
+ shown_on_top: false
+
+ fullscreen:
+ # Maximize the window if possible. If the window doesn't have a
+ # maximize button, then it'll be fullscreen'ed normally instead.
+ maximized: false
+
+ # Whether to show fullscreen windows as always on top.
+ shown_on_top: false
+
+workspaces:
+ - name: '1'
+ - name: '2'
+ - name: '3'
+ - name: '4'
+ - name: '5'
+ - name: '6'
+ - name: '7'
+ - name: '8'
+ - name: '9'
+
+window_rules:
+ - commands: ['ignore']
+ match:
+ # Ignores any Zebar windows.
+ - window_process: { equals: 'zebar' }
+
+ # Ignores picture-in-picture windows for browsers.
+ - window_title: { regex: '[Pp]icture.in.[Pp]icture' }
+ window_class: { regex: 'Chrome_WidgetWin_1|MozillaDialogClass' }
+
+ # Ignore rules for various 3rd-party apps.
+ - window_process: { equals: 'PowerToys' }
+ window_class: { regex: 'HwndWrapper\[PowerToys\.PowerAccent.*?\]' }
+ - window_process: { equals: 'PowerToys' }
+ window_title: { regex: '.*? - Peek' }
+ - window_process: { equals: 'Lively' }
+ window_class: { regex: 'HwndWrapper' }
+ - window_process: { equals: 'EXCEL' }
+ window_class: { not_regex: 'XLMAIN' }
+ - window_process: { equals: 'WINWORD' }
+ window_class: { not_regex: 'OpusApp' }
+ - window_process: { equals: 'POWERPNT' }
+ window_class: { not_regex: 'PPTFrameClass' }
+
+binding_modes:
+ # When enabled, the focused window can be resized via arrow keys or HJKL.
+ - name: 'resize'
+ keybindings:
+ - commands: ['resize --width -2%']
+ bindings: ['h', 'left']
+ - commands: ['resize --width +2%']
+ bindings: ['l', 'right']
+ - commands: ['resize --height +2%']
+ bindings: ['k', 'up']
+ - commands: ['resize --height -2%']
+ bindings: ['j', 'down']
+ # Press enter/escape to return to default keybindings.
+ - commands: ['wm-disable-binding-mode --name resize']
+ bindings: ['escape', 'enter']
+
+keybindings:
+ # Shift focus in a given direction.
+ - commands: ['focus --direction left']
+ bindings: ['alt+h', 'alt+left']
+ - commands: ['focus --direction right']
+ bindings: ['alt+l', 'alt+right']
+ - commands: ['focus --direction up']
+ bindings: ['alt+k', 'alt+up']
+ - commands: ['focus --direction down']
+ bindings: ['alt+j', 'alt+down']
+
+ # Move focused window in a given direction.
+ - commands: ['move --direction left']
+ bindings: ['alt+shift+h', 'alt+shift+left']
+ - commands: ['move --direction right']
+ bindings: ['alt+shift+l', 'alt+shift+right']
+ - commands: ['move --direction up']
+ bindings: ['alt+shift+k', 'alt+shift+up']
+ - commands: ['move --direction down']
+ bindings: ['alt+shift+j', 'alt+shift+down']
+
+ # Resize focused window by a percentage or pixel amount.
+ - commands: ['resize --width -2%']
+ bindings: ['alt+u']
+ - commands: ['resize --width +2%']
+ bindings: ['alt+p']
+ - commands: ['resize --height +2%']
+ bindings: ['alt+o']
+ - commands: ['resize --height -2%']
+ bindings: ['alt+i']
+
+ # As an alternative to the resize keybindings above, resize mode enables
+ # resizing via arrow keys or HJKL. The binding mode is defined above with
+ # the name 'resize'.
+ - commands: ['wm-enable-binding-mode --name resize']
+ bindings: ['alt+r']
+
+ # Disables window management and all other keybindings until alt+shift+p
+ # is pressed again.
+ - commands: ['wm-toggle-pause']
+ bindings: ['alt+shift+p']
+
+ # Change tiling direction. This determines where new tiling windows will
+ # be inserted.
+ - commands: ['toggle-tiling-direction']
+ bindings: ['alt+v']
+
+ # Change focus from tiling windows -> floating -> fullscreen.
+ - commands: ['wm-cycle-focus']
+ bindings: ['alt+space']
+
+ # Change the focused window to be floating.
+ - commands: ['toggle-floating --centered']
+ bindings: ['alt+shift+space']
+
+ # Change the focused window to be tiling.
+ - commands: ['toggle-tiling']
+ bindings: ['alt+t']
+
+ # Change the focused window to be fullscreen.
+ - commands: ['toggle-fullscreen']
+ bindings: ['alt+f']
+
+ # Minimize focused window.
+ - commands: ['toggle-minimized']
+ bindings: ['alt+m']
+
+ # Close focused window.
+ - commands: ['close']
+ bindings: ['alt+shift+q']
+
+ # Kill GlazeWM process safely.
+ - commands: ['wm-exit']
+ bindings: ['alt+shift+e']
+
+ # Re-evaluate configuration file.
+ - commands: ['wm-reload-config']
+ bindings: ['alt+shift+r']
+
+ # Redraw all windows.
+ - commands: ['wm-redraw']
+ bindings: ['alt+shift+w']
+
+ # Launch CMD terminal. Alternatively, use `shell-exec wt` or
+ # `shell-exec %ProgramFiles%/Git/git-bash.exe` to start Windows
+ # Terminal and Git Bash respectively.
+ - commands: ['shell-exec cmd']
+ bindings: ['alt+enter']
+
+ # Focus the next/previous active workspace defined in `workspaces` config.
+ - commands: ['focus --next-active-workspace']
+ bindings: ['alt+s']
+ - commands: ['focus --prev-active-workspace']
+ bindings: ['alt+a']
+
+ # Focus the workspace that last had focus.
+ - commands: ['focus --recent-workspace']
+ bindings: ['alt+d']
+
+ # Change focus to a workspace defined in `workspaces` config.
+ - commands: ['focus --workspace 1']
+ bindings: ['alt+1']
+ - commands: ['focus --workspace 2']
+ bindings: ['alt+2']
+ - commands: ['focus --workspace 3']
+ bindings: ['alt+3']
+ - commands: ['focus --workspace 4']
+ bindings: ['alt+4']
+ - commands: ['focus --workspace 5']
+ bindings: ['alt+5']
+ - commands: ['focus --workspace 6']
+ bindings: ['alt+6']
+ - commands: ['focus --workspace 7']
+ bindings: ['alt+7']
+ - commands: ['focus --workspace 8']
+ bindings: ['alt+8']
+ - commands: ['focus --workspace 9']
+ bindings: ['alt+9']
+
+ # Move the focused window's parent workspace to a monitor in a given
+ # direction.
+ - commands: ['move-workspace --direction left']
+ bindings: ['alt+shift+a']
+ - commands: ['move-workspace --direction right']
+ bindings: ['alt+shift+f']
+ - commands: ['move-workspace --direction up']
+ bindings: ['alt+shift+d']
+ - commands: ['move-workspace --direction down']
+ bindings: ['alt+shift+s']
+
+ # Move focused window to a workspace defined in `workspaces` config.
+ - commands: ['move --workspace 1', 'focus --workspace 1']
+ bindings: ['alt+shift+1']
+ - commands: ['move --workspace 2', 'focus --workspace 2']
+ bindings: ['alt+shift+2']
+ - commands: ['move --workspace 3', 'focus --workspace 3']
+ bindings: ['alt+shift+3']
+ - commands: ['move --workspace 4', 'focus --workspace 4']
+ bindings: ['alt+shift+4']
+ - commands: ['move --workspace 5', 'focus --workspace 5']
+ bindings: ['alt+shift+5']
+ - commands: ['move --workspace 6', 'focus --workspace 6']
+ bindings: ['alt+shift+6']
+ - commands: ['move --workspace 7', 'focus --workspace 7']
+ bindings: ['alt+shift+7']
+ - commands: ['move --workspace 8', 'focus --workspace 8']
+ bindings: ['alt+shift+8']
+ - commands: ['move --workspace 9', 'focus --workspace 9']
+ bindings: ['alt+shift+9']
diff --git a/.old/glzr/glazewm/config.yaml b/.old/glzr/glazewm/config.yaml
new file mode 100644
index 0000000..a21b3c7
--- /dev/null
+++ b/.old/glzr/glazewm/config.yaml
@@ -0,0 +1,328 @@
+general:
+ # Commands to run when the WM has started. This is useful for running a
+ # script or launching another application.
+ # Example: The below command launches Zebar.
+ startup_commands: [C:\Program Files\YASB\yasb.exe]
+
+ # Commands to run just before the WM is shutdown.
+ # Example: The below command kills Zebar.
+ shutdown_commands: []
+
+ # Commands to run after the WM config is reloaded.
+ config_reload_commands: []
+
+ # Whether to automatically focus windows underneath the cursor.
+ focus_follows_cursor: false
+
+ # Whether to switch back and forth between the previously focused
+ # workspace when focusing the current workspace.
+ toggle_workspace_on_refocus: false
+
+ cursor_jump:
+ # Whether to automatically move the cursor on the specified trigger.
+ enabled: true
+
+ # Trigger for cursor jump:
+ # - 'monitor_focus': Jump when focus changes between monitors.
+ # - 'window_focus': Jump when focus changes between windows.
+ trigger: 'monitor_focus'
+
+ # How windows should be hidden when switching workspaces.
+ # - 'cloak': Recommended. Hides windows with no animation.
+ # - 'hide': Legacy method (v3.5 and earlier) that has a brief animation,
+ # but has stability issues with some apps.
+ hide_method: 'cloak'
+
+ # Affects which windows get shown in the native Windows taskbar. Has no
+ # effect if `hide_method: 'hide'`.
+ # - 'true': Show all windows (regardless of workspace).
+ # - 'false': Only show windows from the currently shown workspaces.
+ show_all_in_taskbar: false
+
+gaps:
+ # Whether to scale the gaps with the DPI of the monitor.
+ scale_with_dpi: true
+
+ # Gap between adjacent windows.
+ inner_gap: '6px'
+
+ # Gap between windows and the screen edge.
+ outer_gap:
+ top: '3px'
+ right: '3px'
+ bottom: '3px'
+ left: '3px'
+
+window_effects:
+ # Visual effects to apply to the focused window.
+ focused_window:
+ # Highlight the window with a colored border.
+ # ** Exclusive to Windows 11 due to API limitations.
+ border:
+ enabled: true
+ color: '#8dbcff'
+
+ # Remove the title bar from the window's frame. Note that this can
+ # cause rendering issues for some applications.
+ hide_title_bar:
+ enabled: true
+
+ # Change the corner style of the window's frame.
+ # ** Exclusive to Windows 11 due to API limitations.
+ corner_style:
+ enabled: true
+ # Allowed values: 'square', 'rounded', 'small_rounded'.
+ style: 'rounded'
+
+ # Change the transparency of the window.
+ transparency:
+ enabled: false
+ # Can be something like '95%' or '0.95' for slightly transparent windows.
+ # '0' or '0%' is fully transparent (and, by consequence, unfocusable).
+ opacity: '100%'
+
+ # Visual effects to apply to non-focused windows.
+ other_windows:
+ border:
+ enabled: true
+ color: '#a1a1a1'
+ hide_title_bar:
+ enabled: true
+ corner_style:
+ enabled: true
+ style: 'rounded'
+ transparency:
+ enabled: true
+ opacity: '85%'
+
+window_behavior:
+ # New windows are created in this state whenever possible.
+ # Allowed values: 'tiling', 'floating'.
+ initial_state: 'tiling'
+
+ # Sets the default options for when a new window is created. This also
+ # changes the defaults for when the state change commands, like
+ # `set-floating`, are used without any flags.
+ state_defaults:
+ floating:
+ # Whether to center floating windows by default.
+ centered: true
+
+ # Whether to show floating windows as always on top.
+ shown_on_top: true
+
+ fullscreen:
+ # Maximize the window if possible. If the window doesn't have a
+ # maximize button, then it'll be fullscreen'ed normally instead.
+ maximized: false
+
+ # Whether to show fullscreen windows as always on top.
+ shown_on_top: true
+
+workspaces:
+ - name: '1'
+ - name: '2'
+ - name: '3'
+ - name: '4'
+ - name: '5'
+ - name: '6'
+ - name: '7'
+ - name: '8'
+ - name: '9'
+
+window_rules:
+ - commands: ['ignore']
+ match:
+ # Ignores any Zebar windows.
+ - window_process: { equals: 'zebar' }
+
+ # Ignores picture-in-picture windows for browsers.
+ - window_title: { regex: '[Pp]icture.in.[Pp]icture' }
+ window_class: { regex: 'Chrome_WidgetWin_1|MozillaDialogClass' }
+
+ # Ignore rules for various 3rd-party apps.
+ - window_process: { equals: 'PowerToys' }
+ window_class: { regex: 'HwndWrapper\[PowerToys\.PowerAccent.*?\]' }
+ - window_process: { equals: 'PowerToys' }
+ window_title: { regex: '.*? - Peek' }
+ - window_process: { equals: 'Lively' }
+ window_class: { regex: 'HwndWrapper' }
+ - window_process: { equals: 'EXCEL' }
+ window_class: { not_regex: 'XLMAIN' }
+ - window_process: { equals: 'WINWORD' }
+ window_class: { not_regex: 'OpusApp' }
+ - window_process: { equals: 'POWERPNT' }
+ window_class: { not_regex: 'PPTFrameClass' }
+
+binding_modes:
+ # When enabled, the focused window can be resized via arrow keys or HJKL.
+ - name: 'resize'
+ keybindings:
+ - commands: ['resize --width -2%']
+ bindings: ['h', 'left']
+ - commands: ['resize --width +2%']
+ bindings: ['l', 'right']
+ - commands: ['resize --height +2%']
+ bindings: ['k', 'up']
+ - commands: ['resize --height -2%']
+ bindings: ['j', 'down']
+ # Press enter/escape to return to default keybindings.
+ - commands: ['wm-disable-binding-mode --name resize']
+ bindings: ['escape', 'enter']
+
+keybindings:
+ # Shift focus in a given direction.
+ - commands: ['focus --direction left']
+ bindings: ['alt+h', 'alt+left']
+ - commands: ['focus --direction right']
+ bindings: ['alt+l', 'alt+right']
+ - commands: ['focus --direction up']
+ bindings: ['alt+k', 'alt+up']
+ - commands: ['focus --direction down']
+ bindings: ['alt+j', 'alt+down']
+
+ # Move focused window in a given direction.
+ - commands: ['move --direction left']
+ bindings: ['alt+shift+h', 'alt+shift+left']
+ - commands: ['move --direction right']
+ bindings: ['alt+shift+l', 'alt+shift+right']
+ - commands: ['move --direction up']
+ bindings: ['alt+shift+k', 'alt+shift+up']
+ - commands: ['move --direction down']
+ bindings: ['alt+shift+j', 'alt+shift+down']
+
+ # Resize focused window by a percentage or pixel amount.
+ - commands: ['resize --width -2%']
+ bindings: ['alt+u']
+ - commands: ['resize --width +2%']
+ bindings: ['alt+p']
+ - commands: ['resize --height +2%']
+ bindings: ['alt+o']
+ - commands: ['resize --height -2%']
+ bindings: ['alt+i']
+
+ # As an alternative to the resize keybindings above, resize mode enables
+ # resizing via arrow keys or HJKL. The binding mode is defined above with
+ # the name 'resize'.
+ - commands: ['wm-enable-binding-mode --name resize']
+ bindings: ['alt+r']
+
+ # Disables window management and all other keybindings until alt+shift+p
+ # is pressed again.
+ - commands: ['wm-toggle-pause']
+ bindings: ['alt+shift+p']
+
+ # Change tiling direction. This determines where new tiling windows will
+ # be inserted.
+ - commands: ['toggle-tiling-direction']
+ bindings: ['alt+v']
+
+ # Change focus from tiling windows -> floating -> fullscreen.
+ - commands: ['wm-cycle-focus']
+ bindings: ['alt+space']
+
+ # Change the focused window to be floating.
+ - commands: ['toggle-floating --centered']
+ bindings: ['alt+t]
+
+
+ # Change the focused window to be fullscreen.
+ - commands: ['toggle-fullscreen']
+ bindings: ['alt+f']
+
+ # Minimize focused window.
+ - commands: ['toggle-minimized']
+ bindings: ['alt+m']
+
+ # Close focused window.
+ - commands: ['close']
+ bindings: ['alt+q']
+
+ # Kill GlazeWM process safely.
+ - commands: ['wm-exit']
+ bindings: ['alt+shift+q']
+
+ # Re-evaluate configuration file.
+ - commands: ['wm-reload-config']
+ bindings: ['alt+shift+r']
+
+ # Redraw all windows.
+ - commands: ['wm-redraw']
+ bindings: ['alt+shift+w']
+
+ # Launch CMD terminal. Alternatively, use `shell-exec wt` or
+ # `shell-exec %ProgramFiles%/Git/git-bash.exe` to start Windows
+ # Terminal and Git Bash respectively.
+ - commands: ['shell-exec wt']
+ bindings: ['alt+enter']
+
+ # Focus the next/previous active workspace defined in `workspaces` config.
+ - commands: ['focus --next-active-workspace']
+ bindings: ['alt+s']
+ - commands: ['focus --prev-active-workspace']
+ bindings: ['alt+a']
+
+ # Focus the workspace that last had focus.
+ - commands: ['focus --recent-workspace']
+ bindings: ['alt+d']
+
+ # Change focus to a workspace defined in `workspaces` config.
+ - commands: ['focus --workspace 1']
+ bindings: ['alt+1']
+ - commands: ['focus --workspace 2']
+ bindings: ['alt+2']
+ - commands: ['focus --workspace 3']
+ bindings: ['alt+3']
+ - commands: ['focus --workspace 4']
+ bindings: ['alt+4']
+ - commands: ['focus --workspace 5']
+ bindings: ['alt+5']
+ - commands: ['focus --workspace 6']
+ bindings: ['alt+6']
+ - commands: ['focus --workspace 7']
+ bindings: ['alt+7']
+ - commands: ['focus --workspace 8']
+ bindings: ['alt+8']
+ - commands: ['focus --workspace 9']
+ bindings: ['alt+9']
+
+ # Move the focused window's parent workspace to a monitor in a given
+ # direction.
+ - commands: ['move-workspace --direction left']
+ bindings: ['alt+shift+a']
+ - commands: ['move-workspace --direction right']
+ bindings: ['alt+shift+f']
+ - commands: ['move-workspace --direction up']
+ bindings: ['alt+shift+d']
+ - commands: ['move-workspace --direction down']
+ bindings: ['alt+shift+s']
+
+ # Move focused window to a workspace defined in `workspaces` config.
+ - commands: ['move --workspace 1', 'focus --workspace 1']
+ bindings: ['alt+shift+1']
+ - commands: ['move --workspace 2', 'focus --workspace 2']
+ bindings: ['alt+shift+2']
+ - commands: ['move --workspace 3', 'focus --workspace 3']
+ bindings: ['alt+shift+3']
+ - commands: ['move --workspace 4', 'focus --workspace 4']
+ bindings: ['alt+shift+4']
+ - commands: ['move --workspace 5', 'focus --workspace 5']
+ bindings: ['alt+shift+5']
+ - commands: ['move --workspace 6', 'focus --workspace 6']
+ bindings: ['alt+shift+6']
+ - commands: ['move --workspace 7', 'focus --workspace 7']
+ bindings: ['alt+shift+7']
+ - commands: ['move --workspace 8', 'focus --workspace 8']
+ bindings: ['alt+shift+8']
+ - commands: ['move --workspace 9', 'focus --workspace 9']
+ bindings: ['alt+shift+9']
+
+ #my own binds
+ - commands: ['wt']
+ bindings: ['alt+tab']
+
+ - commands: ['shell-exec start "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"']
+ bindings: ['alt+b']
+
+ - commands: ['shell-exec start explorer.exe]
+ bindings: ['alt+e']
\ No newline at end of file
diff --git a/.old/glzr/glazewm/config2.yaml b/.old/glzr/glazewm/config2.yaml
new file mode 100644
index 0000000..7d6bc51
--- /dev/null
+++ b/.old/glzr/glazewm/config2.yaml
@@ -0,0 +1,324 @@
+general:
+ # Commands to run when the WM has started. This is useful for running a
+ # script or launching another application.
+ # Example: The below command launches Zebar.
+ startup_commands: ['shell-exec zebar']
+
+ # Commands to run just before the WM is shutdown.
+ # Example: The below command kills Zebar.
+ shutdown_commands: ['shell-exec taskkill /IM zebar.exe /F']
+
+ # Commands to run after the WM config is reloaded.
+ config_reload_commands: []
+
+ # Whether to automatically focus windows underneath the cursor.
+ focus_follows_cursor: false
+
+ # Whether to switch back and forth between the previously focused
+ # workspace when focusing the current workspace.
+ toggle_workspace_on_refocus: false
+
+ cursor_jump:
+ # Whether to automatically move the cursor on the specified trigger.
+ enabled: true
+
+ # Trigger for cursor jump:
+ # - 'monitor_focus': Jump when focus changes between monitors.
+ # - 'window_focus': Jump when focus changes between windows.
+ trigger: 'monitor_focus'
+
+ # How windows should be hidden when switching workspaces.
+ # - 'cloak': (Windows-only) Recommended option for Windows.
+ # - 'hide': (Windows-only) Legacy option for Windows. Has stability issues with some apps.
+ # - 'place_in_corner': Artifically hides the window by placing it in the corner of the
+ # monitor. On macOS, this is always used instead of cloak/hide.
+ hide_method: 'cloak'
+
+ # Affects which windows get shown in the native Windows taskbar. Has no
+ # effect if `hide_method: 'hide'`.
+ # - 'true': Show all windows (regardless of workspace).
+ # - 'false': Only show windows from the currently shown workspaces.
+ show_all_in_taskbar: false
+
+gaps:
+ # Whether to scale the gaps with the DPI of the monitor.
+ scale_with_dpi: true
+
+ # Gap between adjacent windows.
+ inner_gap: '20px'
+
+ # Gap between windows and the screen edge.
+ outer_gap:
+ top: '60px'
+ right: '20px'
+ bottom: '20px'
+ left: '20px'
+
+window_effects:
+ # Visual effects to apply to the focused window.
+ focused_window:
+ # Highlight the window with a colored border.
+ # ** Exclusive to Windows 11 due to API limitations.
+ border:
+ enabled: true
+ color: '#8dbcff'
+
+ # Remove the title bar from the window's frame. Note that this can
+ # cause rendering issues for some applications.
+ hide_title_bar:
+ enabled: false
+
+ # Change the corner style of the window's frame.
+ # ** Exclusive to Windows 11 due to API limitations.
+ corner_style:
+ enabled: false
+ # Allowed values: 'square', 'rounded', 'small_rounded'.
+ style: 'square'
+
+ # Change the transparency of the window.
+ transparency:
+ enabled: false
+ # Can be something like '95%' or '0.95' for slightly transparent windows.
+ # '0' or '0%' is fully transparent (and, by consequence, unfocusable).
+ opacity: '95%'
+
+ # Visual effects to apply to non-focused windows.
+ other_windows:
+ border:
+ enabled: true
+ color: '#a1a1a1'
+ hide_title_bar:
+ enabled: false
+ corner_style:
+ enabled: false
+ style: 'square'
+ transparency:
+ enabled: false
+ opacity: '0%'
+
+window_behavior:
+ # New windows are created in this state whenever possible.
+ # Allowed values: 'tiling', 'floating'.
+ initial_state: 'tiling'
+
+ # Sets the default options for when a new window is created. This also
+ # changes the defaults for when the state change commands, like
+ # `set-floating`, are used without any flags.
+ state_defaults:
+ floating:
+ # Whether to center floating windows by default.
+ centered: true
+
+ # Whether to show floating windows as always on top.
+ shown_on_top: false
+
+ fullscreen:
+ # Maximize the window if possible. If the window doesn't have a
+ # maximize button, then it'll be fullscreen'ed normally instead.
+ maximized: false
+
+ # Whether to show fullscreen windows as always on top.
+ shown_on_top: false
+
+workspaces:
+ - name: '1'
+ - name: '2'
+ - name: '3'
+ - name: '4'
+ - name: '5'
+ - name: '6'
+ - name: '7'
+ - name: '8'
+ - name: '9'
+
+window_rules:
+ - commands: ['ignore']
+ match:
+ # Ignores any Zebar windows.
+ - window_process: { equals: 'zebar' }
+
+ # Ignores picture-in-picture windows for browsers.
+ - window_title: { regex: '[Pp]icture.in.[Pp]icture' }
+ window_class: { regex: 'Chrome_WidgetWin_1|MozillaDialogClass' }
+
+ # Ignore rules for various 3rd-party apps.
+ - window_process: { equals: 'PowerToys' }
+ window_class: { regex: 'HwndWrapper\[PowerToys\.PowerAccent.*?\]' }
+ - window_title: { equals: 'Command Palette' }
+ window_class: { equals: 'WinUIDesktopWin32WindowClass' }
+ - window_process: { equals: 'PowerToys' }
+ window_title: { regex: '.*? - Peek' }
+ - window_process: { equals: 'Lively' }
+ window_class: { regex: 'HwndWrapper' }
+ - window_process: { equals: 'EXCEL' }
+ window_class: { not_regex: 'XLMAIN' }
+ - window_process: { equals: 'WINWORD' }
+ window_class: { not_regex: 'OpusApp' }
+ - window_process: { equals: 'POWERPNT' }
+ window_class: { not_regex: 'PPTFrameClass' }
+
+binding_modes:
+ # When enabled, the focused window can be resized via arrow keys or HJKL.
+ - name: 'resize'
+ keybindings:
+ - commands: ['resize --width -2%']
+ bindings: ['h', 'left']
+ - commands: ['resize --width +2%']
+ bindings: ['l', 'right']
+ - commands: ['resize --height +2%']
+ bindings: ['k', 'up']
+ - commands: ['resize --height -2%']
+ bindings: ['j', 'down']
+ # Press enter/escape to return to default keybindings.
+ - commands: ['wm-disable-binding-mode --name resize']
+ bindings: ['escape', 'enter']
+
+keybindings:
+ # Shift focus in a given direction.
+ - commands: ['focus --direction left']
+ bindings: ['alt+h', 'alt+left']
+ - commands: ['focus --direction right']
+ bindings: ['alt+l', 'alt+right']
+ - commands: ['focus --direction up']
+ bindings: ['alt+k', 'alt+up']
+ - commands: ['focus --direction down']
+ bindings: ['alt+j', 'alt+down']
+
+ # Move focused window in a given direction.
+ - commands: ['move --direction left']
+ bindings: ['alt+shift+h', 'alt+shift+left']
+ - commands: ['move --direction right']
+ bindings: ['alt+shift+l', 'alt+shift+right']
+ - commands: ['move --direction up']
+ bindings: ['alt+shift+k', 'alt+shift+up']
+ - commands: ['move --direction down']
+ bindings: ['alt+shift+j', 'alt+shift+down']
+
+ # Resize focused window by a percentage or pixel amount.
+ - commands: ['resize --width -2%']
+ bindings: ['alt+u']
+ - commands: ['resize --width +2%']
+ bindings: ['alt+p']
+ - commands: ['resize --height +2%']
+ bindings: ['alt+o']
+ - commands: ['resize --height -2%']
+ bindings: ['alt+i']
+
+ # As an alternative to the resize keybindings above, resize mode enables
+ # resizing via arrow keys or HJKL. The binding mode is defined above with
+ # the name 'resize'.
+ - commands: ['wm-enable-binding-mode --name resize']
+ bindings: ['alt+r']
+
+ # Disables window management and all other keybindings until alt+shift+p
+ # is pressed again.
+ - commands: ['wm-toggle-pause']
+ bindings: ['alt+shift+p']
+
+ # Change tiling direction. This determines where new tiling windows will
+ # be inserted.
+ - commands: ['toggle-tiling-direction']
+ bindings: ['alt+v']
+
+ # Change focus from tiling windows -> floating -> fullscreen.
+ - commands: ['wm-cycle-focus']
+ bindings: ['alt+space']
+
+ # Change the focused window to be floating.
+ - commands: ['toggle-floating --centered']
+ bindings: ['alt+shift+space']
+
+ # Change the focused window to be tiling.
+ - commands: ['toggle-tiling']
+ bindings: ['alt+t']
+
+ # Change the focused window to be fullscreen.
+ - commands: ['toggle-fullscreen']
+ bindings: ['alt+f']
+
+ # Minimize focused window.
+ - commands: ['toggle-minimized']
+ bindings: ['alt+m']
+
+ # Close focused window.
+ - commands: ['close']
+ bindings: ['alt+shift+q']
+
+ # Kill GlazeWM process safely.
+ - commands: ['wm-exit']
+ bindings: ['alt+shift+e']
+
+ # Re-evaluate configuration file.
+ - commands: ['wm-reload-config']
+ bindings: ['alt+shift+r']
+
+ # Redraw all windows.
+ - commands: ['wm-redraw']
+ bindings: ['alt+shift+w']
+
+ # Launch CMD terminal. Alternatively, use `shell-exec wt` or
+ # `shell-exec %ProgramFiles%/Git/git-bash.exe` to start Windows
+ # Terminal and Git Bash respectively.
+ - commands: ['shell-exec cmd']
+ bindings: ['alt+enter']
+
+ # Focus the next/previous active workspace defined in `workspaces` config.
+ - commands: ['focus --next-active-workspace']
+ bindings: ['alt+s']
+ - commands: ['focus --prev-active-workspace']
+ bindings: ['alt+a']
+
+ # Focus the workspace that last had focus.
+ - commands: ['focus --recent-workspace']
+ bindings: ['alt+d']
+
+ # Change focus to a workspace defined in `workspaces` config.
+ - commands: ['focus --workspace 1']
+ bindings: ['alt+1']
+ - commands: ['focus --workspace 2']
+ bindings: ['alt+2']
+ - commands: ['focus --workspace 3']
+ bindings: ['alt+3']
+ - commands: ['focus --workspace 4']
+ bindings: ['alt+4']
+ - commands: ['focus --workspace 5']
+ bindings: ['alt+5']
+ - commands: ['focus --workspace 6']
+ bindings: ['alt+6']
+ - commands: ['focus --workspace 7']
+ bindings: ['alt+7']
+ - commands: ['focus --workspace 8']
+ bindings: ['alt+8']
+ - commands: ['focus --workspace 9']
+ bindings: ['alt+9']
+
+ # Move the focused window's parent workspace to a monitor in a given
+ # direction.
+ - commands: ['move-workspace --direction left']
+ bindings: ['alt+shift+a']
+ - commands: ['move-workspace --direction right']
+ bindings: ['alt+shift+f']
+ - commands: ['move-workspace --direction up']
+ bindings: ['alt+shift+d']
+ - commands: ['move-workspace --direction down']
+ bindings: ['alt+shift+s']
+
+ # Move focused window to a workspace defined in `workspaces` config.
+ - commands: ['move --workspace 1', 'focus --workspace 1']
+ bindings: ['alt+shift+1']
+ - commands: ['move --workspace 2', 'focus --workspace 2']
+ bindings: ['alt+shift+2']
+ - commands: ['move --workspace 3', 'focus --workspace 3']
+ bindings: ['alt+shift+3']
+ - commands: ['move --workspace 4', 'focus --workspace 4']
+ bindings: ['alt+shift+4']
+ - commands: ['move --workspace 5', 'focus --workspace 5']
+ bindings: ['alt+shift+5']
+ - commands: ['move --workspace 6', 'focus --workspace 6']
+ bindings: ['alt+shift+6']
+ - commands: ['move --workspace 7', 'focus --workspace 7']
+ bindings: ['alt+shift+7']
+ - commands: ['move --workspace 8', 'focus --workspace 8']
+ bindings: ['alt+shift+8']
+ - commands: ['move --workspace 9', 'focus --workspace 9']
+ bindings: ['alt+shift+9']
diff --git a/.old/glzr/glazewm/errors.log b/.old/glzr/glazewm/errors.log
new file mode 100644
index 0000000..d3fd717
--- /dev/null
+++ b/.old/glzr/glazewm/errors.log
@@ -0,0 +1,4 @@
+[2m2026-03-30T19:30:25.285252Z[0m [31mERROR[0m [2mglazewm[0m[2m:[0m gaps: data did not match any variant of untagged enum LengthValueDe at line 2 column 3
+[2m2026-03-30T19:41:33.688995Z[0m [31mERROR[0m [2mglazewm[0m[2m:[0m Failed to execute 'wt'.
+
+Error: The operation was canceled by the user. (0x800704C7)
diff --git a/.old/glzr/zebar/.marketplace/glzr-io.starter.json b/.old/glzr/zebar/.marketplace/glzr-io.starter.json
new file mode 100644
index 0000000..6b203cf
--- /dev/null
+++ b/.old/glzr/zebar/.marketplace/glzr-io.starter.json
@@ -0,0 +1,5 @@
+{
+ "packId": "glzr-io.starter",
+ "version": "0.0.0",
+ "installedAt": 1774898960
+}
diff --git a/.old/glzr/zebar/errors.log b/.old/glzr/zebar/errors.log
new file mode 100644
index 0000000..e69de29
diff --git a/.old/glzr/zebar/settings.json b/.old/glzr/zebar/settings.json
new file mode 100644
index 0000000..ec26689
--- /dev/null
+++ b/.old/glzr/zebar/settings.json
@@ -0,0 +1,10 @@
+{
+ "$schema": "https://github.com/glzr-io/zebar/raw/v3.1.1/resources/settings-schema.json",
+ "startupConfigs": [
+ {
+ "pack": "glzr-io.starter",
+ "widget": "with-glazewm",
+ "preset": "default"
+ }
+ ]
+}
diff --git a/chocoinstall.sh b/chocoinstall.sh
new file mode 100644
index 0000000..659bd63
--- /dev/null
+++ b/chocoinstall.sh
@@ -0,0 +1,3 @@
+
+
+choco install -y glazewm yasb
\ No newline at end of file
diff --git a/glazewm/config.yaml b/glazewm/config.yaml
new file mode 100644
index 0000000..a21b3c7
--- /dev/null
+++ b/glazewm/config.yaml
@@ -0,0 +1,328 @@
+general:
+ # Commands to run when the WM has started. This is useful for running a
+ # script or launching another application.
+ # Example: The below command launches Zebar.
+ startup_commands: [C:\Program Files\YASB\yasb.exe]
+
+ # Commands to run just before the WM is shutdown.
+ # Example: The below command kills Zebar.
+ shutdown_commands: []
+
+ # Commands to run after the WM config is reloaded.
+ config_reload_commands: []
+
+ # Whether to automatically focus windows underneath the cursor.
+ focus_follows_cursor: false
+
+ # Whether to switch back and forth between the previously focused
+ # workspace when focusing the current workspace.
+ toggle_workspace_on_refocus: false
+
+ cursor_jump:
+ # Whether to automatically move the cursor on the specified trigger.
+ enabled: true
+
+ # Trigger for cursor jump:
+ # - 'monitor_focus': Jump when focus changes between monitors.
+ # - 'window_focus': Jump when focus changes between windows.
+ trigger: 'monitor_focus'
+
+ # How windows should be hidden when switching workspaces.
+ # - 'cloak': Recommended. Hides windows with no animation.
+ # - 'hide': Legacy method (v3.5 and earlier) that has a brief animation,
+ # but has stability issues with some apps.
+ hide_method: 'cloak'
+
+ # Affects which windows get shown in the native Windows taskbar. Has no
+ # effect if `hide_method: 'hide'`.
+ # - 'true': Show all windows (regardless of workspace).
+ # - 'false': Only show windows from the currently shown workspaces.
+ show_all_in_taskbar: false
+
+gaps:
+ # Whether to scale the gaps with the DPI of the monitor.
+ scale_with_dpi: true
+
+ # Gap between adjacent windows.
+ inner_gap: '6px'
+
+ # Gap between windows and the screen edge.
+ outer_gap:
+ top: '3px'
+ right: '3px'
+ bottom: '3px'
+ left: '3px'
+
+window_effects:
+ # Visual effects to apply to the focused window.
+ focused_window:
+ # Highlight the window with a colored border.
+ # ** Exclusive to Windows 11 due to API limitations.
+ border:
+ enabled: true
+ color: '#8dbcff'
+
+ # Remove the title bar from the window's frame. Note that this can
+ # cause rendering issues for some applications.
+ hide_title_bar:
+ enabled: true
+
+ # Change the corner style of the window's frame.
+ # ** Exclusive to Windows 11 due to API limitations.
+ corner_style:
+ enabled: true
+ # Allowed values: 'square', 'rounded', 'small_rounded'.
+ style: 'rounded'
+
+ # Change the transparency of the window.
+ transparency:
+ enabled: false
+ # Can be something like '95%' or '0.95' for slightly transparent windows.
+ # '0' or '0%' is fully transparent (and, by consequence, unfocusable).
+ opacity: '100%'
+
+ # Visual effects to apply to non-focused windows.
+ other_windows:
+ border:
+ enabled: true
+ color: '#a1a1a1'
+ hide_title_bar:
+ enabled: true
+ corner_style:
+ enabled: true
+ style: 'rounded'
+ transparency:
+ enabled: true
+ opacity: '85%'
+
+window_behavior:
+ # New windows are created in this state whenever possible.
+ # Allowed values: 'tiling', 'floating'.
+ initial_state: 'tiling'
+
+ # Sets the default options for when a new window is created. This also
+ # changes the defaults for when the state change commands, like
+ # `set-floating`, are used without any flags.
+ state_defaults:
+ floating:
+ # Whether to center floating windows by default.
+ centered: true
+
+ # Whether to show floating windows as always on top.
+ shown_on_top: true
+
+ fullscreen:
+ # Maximize the window if possible. If the window doesn't have a
+ # maximize button, then it'll be fullscreen'ed normally instead.
+ maximized: false
+
+ # Whether to show fullscreen windows as always on top.
+ shown_on_top: true
+
+workspaces:
+ - name: '1'
+ - name: '2'
+ - name: '3'
+ - name: '4'
+ - name: '5'
+ - name: '6'
+ - name: '7'
+ - name: '8'
+ - name: '9'
+
+window_rules:
+ - commands: ['ignore']
+ match:
+ # Ignores any Zebar windows.
+ - window_process: { equals: 'zebar' }
+
+ # Ignores picture-in-picture windows for browsers.
+ - window_title: { regex: '[Pp]icture.in.[Pp]icture' }
+ window_class: { regex: 'Chrome_WidgetWin_1|MozillaDialogClass' }
+
+ # Ignore rules for various 3rd-party apps.
+ - window_process: { equals: 'PowerToys' }
+ window_class: { regex: 'HwndWrapper\[PowerToys\.PowerAccent.*?\]' }
+ - window_process: { equals: 'PowerToys' }
+ window_title: { regex: '.*? - Peek' }
+ - window_process: { equals: 'Lively' }
+ window_class: { regex: 'HwndWrapper' }
+ - window_process: { equals: 'EXCEL' }
+ window_class: { not_regex: 'XLMAIN' }
+ - window_process: { equals: 'WINWORD' }
+ window_class: { not_regex: 'OpusApp' }
+ - window_process: { equals: 'POWERPNT' }
+ window_class: { not_regex: 'PPTFrameClass' }
+
+binding_modes:
+ # When enabled, the focused window can be resized via arrow keys or HJKL.
+ - name: 'resize'
+ keybindings:
+ - commands: ['resize --width -2%']
+ bindings: ['h', 'left']
+ - commands: ['resize --width +2%']
+ bindings: ['l', 'right']
+ - commands: ['resize --height +2%']
+ bindings: ['k', 'up']
+ - commands: ['resize --height -2%']
+ bindings: ['j', 'down']
+ # Press enter/escape to return to default keybindings.
+ - commands: ['wm-disable-binding-mode --name resize']
+ bindings: ['escape', 'enter']
+
+keybindings:
+ # Shift focus in a given direction.
+ - commands: ['focus --direction left']
+ bindings: ['alt+h', 'alt+left']
+ - commands: ['focus --direction right']
+ bindings: ['alt+l', 'alt+right']
+ - commands: ['focus --direction up']
+ bindings: ['alt+k', 'alt+up']
+ - commands: ['focus --direction down']
+ bindings: ['alt+j', 'alt+down']
+
+ # Move focused window in a given direction.
+ - commands: ['move --direction left']
+ bindings: ['alt+shift+h', 'alt+shift+left']
+ - commands: ['move --direction right']
+ bindings: ['alt+shift+l', 'alt+shift+right']
+ - commands: ['move --direction up']
+ bindings: ['alt+shift+k', 'alt+shift+up']
+ - commands: ['move --direction down']
+ bindings: ['alt+shift+j', 'alt+shift+down']
+
+ # Resize focused window by a percentage or pixel amount.
+ - commands: ['resize --width -2%']
+ bindings: ['alt+u']
+ - commands: ['resize --width +2%']
+ bindings: ['alt+p']
+ - commands: ['resize --height +2%']
+ bindings: ['alt+o']
+ - commands: ['resize --height -2%']
+ bindings: ['alt+i']
+
+ # As an alternative to the resize keybindings above, resize mode enables
+ # resizing via arrow keys or HJKL. The binding mode is defined above with
+ # the name 'resize'.
+ - commands: ['wm-enable-binding-mode --name resize']
+ bindings: ['alt+r']
+
+ # Disables window management and all other keybindings until alt+shift+p
+ # is pressed again.
+ - commands: ['wm-toggle-pause']
+ bindings: ['alt+shift+p']
+
+ # Change tiling direction. This determines where new tiling windows will
+ # be inserted.
+ - commands: ['toggle-tiling-direction']
+ bindings: ['alt+v']
+
+ # Change focus from tiling windows -> floating -> fullscreen.
+ - commands: ['wm-cycle-focus']
+ bindings: ['alt+space']
+
+ # Change the focused window to be floating.
+ - commands: ['toggle-floating --centered']
+ bindings: ['alt+t]
+
+
+ # Change the focused window to be fullscreen.
+ - commands: ['toggle-fullscreen']
+ bindings: ['alt+f']
+
+ # Minimize focused window.
+ - commands: ['toggle-minimized']
+ bindings: ['alt+m']
+
+ # Close focused window.
+ - commands: ['close']
+ bindings: ['alt+q']
+
+ # Kill GlazeWM process safely.
+ - commands: ['wm-exit']
+ bindings: ['alt+shift+q']
+
+ # Re-evaluate configuration file.
+ - commands: ['wm-reload-config']
+ bindings: ['alt+shift+r']
+
+ # Redraw all windows.
+ - commands: ['wm-redraw']
+ bindings: ['alt+shift+w']
+
+ # Launch CMD terminal. Alternatively, use `shell-exec wt` or
+ # `shell-exec %ProgramFiles%/Git/git-bash.exe` to start Windows
+ # Terminal and Git Bash respectively.
+ - commands: ['shell-exec wt']
+ bindings: ['alt+enter']
+
+ # Focus the next/previous active workspace defined in `workspaces` config.
+ - commands: ['focus --next-active-workspace']
+ bindings: ['alt+s']
+ - commands: ['focus --prev-active-workspace']
+ bindings: ['alt+a']
+
+ # Focus the workspace that last had focus.
+ - commands: ['focus --recent-workspace']
+ bindings: ['alt+d']
+
+ # Change focus to a workspace defined in `workspaces` config.
+ - commands: ['focus --workspace 1']
+ bindings: ['alt+1']
+ - commands: ['focus --workspace 2']
+ bindings: ['alt+2']
+ - commands: ['focus --workspace 3']
+ bindings: ['alt+3']
+ - commands: ['focus --workspace 4']
+ bindings: ['alt+4']
+ - commands: ['focus --workspace 5']
+ bindings: ['alt+5']
+ - commands: ['focus --workspace 6']
+ bindings: ['alt+6']
+ - commands: ['focus --workspace 7']
+ bindings: ['alt+7']
+ - commands: ['focus --workspace 8']
+ bindings: ['alt+8']
+ - commands: ['focus --workspace 9']
+ bindings: ['alt+9']
+
+ # Move the focused window's parent workspace to a monitor in a given
+ # direction.
+ - commands: ['move-workspace --direction left']
+ bindings: ['alt+shift+a']
+ - commands: ['move-workspace --direction right']
+ bindings: ['alt+shift+f']
+ - commands: ['move-workspace --direction up']
+ bindings: ['alt+shift+d']
+ - commands: ['move-workspace --direction down']
+ bindings: ['alt+shift+s']
+
+ # Move focused window to a workspace defined in `workspaces` config.
+ - commands: ['move --workspace 1', 'focus --workspace 1']
+ bindings: ['alt+shift+1']
+ - commands: ['move --workspace 2', 'focus --workspace 2']
+ bindings: ['alt+shift+2']
+ - commands: ['move --workspace 3', 'focus --workspace 3']
+ bindings: ['alt+shift+3']
+ - commands: ['move --workspace 4', 'focus --workspace 4']
+ bindings: ['alt+shift+4']
+ - commands: ['move --workspace 5', 'focus --workspace 5']
+ bindings: ['alt+shift+5']
+ - commands: ['move --workspace 6', 'focus --workspace 6']
+ bindings: ['alt+shift+6']
+ - commands: ['move --workspace 7', 'focus --workspace 7']
+ bindings: ['alt+shift+7']
+ - commands: ['move --workspace 8', 'focus --workspace 8']
+ bindings: ['alt+shift+8']
+ - commands: ['move --workspace 9', 'focus --workspace 9']
+ bindings: ['alt+shift+9']
+
+ #my own binds
+ - commands: ['wt']
+ bindings: ['alt+tab']
+
+ - commands: ['shell-exec start "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"']
+ bindings: ['alt+b']
+
+ - commands: ['shell-exec start explorer.exe]
+ bindings: ['alt+e']
\ No newline at end of file
diff --git a/install.ps1 b/install.ps1
index 2e64a5d..a985fc3 100644
--- a/install.ps1
+++ b/install.ps1
@@ -6,5 +6,3 @@ irm "https://get.winhance.net" | iex
# get chocolatey
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
-# install stuff with chocolatey
-choco install -y git
\ No newline at end of file
diff --git a/yasb/config.yaml b/yasb/config.yaml
new file mode 100644
index 0000000..a3cacc5
--- /dev/null
+++ b/yasb/config.yaml
@@ -0,0 +1,413 @@
+# This is default and very simple configuration file for Yasb.
+# For more information about configuration options, please visit the Wiki https://github.com/amnweb/yasb/wiki
+watch_stylesheet: true
+watch_config: true
+debug: false
+update_check: true # Enable automatic update check.
+komorebi:
+ start_command: "komorebic start --whkd"
+ stop_command: "komorebic stop --whkd"
+ reload_command: "komorebic stop --whkd && komorebic start --whkd"
+bars:
+ primary-bar:
+ enabled: true
+ screens: ["primary"]
+ class_name: "yasb-bar"
+ alignment:
+ position: "top"
+ center: false
+ animation:
+ enabled: true
+ duration: 1000
+ blur_effect:
+ enabled: true
+ acrylic: false
+ dark_mode: true
+ round_corners: true
+ round_corners_type: "normal"
+ border_color: "System"
+ window_flags:
+ always_on_top: false
+ windows_app_bar: true
+ dimensions:
+ width: "100%"
+ height: 32
+ padding:
+ top: 6
+ left: 6
+ bottom: 0
+ right: 6
+ widgets:
+ left: [
+ "glazewm_tiling_direction",
+ "glazewm_workspaces",
+ "pomodoro",
+ "active_window"
+ ]
+ center: [
+ "clock"
+ ]
+ right: [
+ "cava",
+ "media",
+ "weather",
+ "microphone",
+ "volume",
+ "cpu",
+ "memory",
+ "notifications",
+ "wallpapers",
+ "power_menu"
+ ]
+widgets:
+ home:
+ type: "yasb.home.HomeWidget"
+ options:
+ label: "\udb81\udf17"
+ menu_list:
+ - { title: "My Crib", path: "~" }
+ - { title: "Loot Bag", path: "~\\Downloads" }
+ - { title: "Boring Stuff", path: "~\\Documents" }
+ - { title: "Cursed Memories", path: "~\\Pictures" }
+ system_menu: true
+ power_menu: true
+ blur: false
+ media:
+ type: "yasb.media.MediaWidget"
+ options:
+ label: "\uf001 {title}"
+ label_alt: "\uf001 {artist}"
+ callbacks:
+ on_left: "toggle_media_menu"
+ on_middle: "do_nothing"
+ on_right: "do_nothing"
+ max_field_size:
+ label: 50
+ label_alt: 24
+ show_thumbnail: false
+ controls_only: false
+ controls_left: true
+ hide_empty: true
+ thumbnail_alpha: 250
+ thumbnail_padding: 8
+ thumbnail_corner_radius: 0
+ icons:
+ prev_track: ""
+ next_track: ""
+ play: ""
+ pause: ""
+ 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: 14
+ max_length: 46
+ max_length_ellipsis: "..."
+ monitor_exclusive: true
+ clock:
+ type: "yasb.clock.ClockWidget"
+ options:
+ label: "{%I:%M:%S}"
+ label_alt: "{%I:%M:%S}"
+ timezones: []
+ callbacks:
+ on_left: "toggle_calendar"
+ weather:
+ type: "yasb.weather.WeatherWidget"
+ options:
+ label: "{icon} {temp}"
+ label_alt: "{location}: Min {min_temp}, Max {max_temp}, Humidity {humidity}"
+ api_key: # Get your free API key from https://www.weatherapi.com/
+ update_interval: 600
+ hide_decimal: true
+ location: # You can use "USA Los Angeles 90006" {COUNTRY CITY ZIP_CODE}, or just city.
+ callbacks:
+ on_left: "toggle_card"
+ icons:
+ sunnyDay: "\ue30d"
+ clearNight: "\ue32b"
+ cloudyDay: "\ue312"
+ cloudyNight: "\ue311"
+ rainyDay: "\ue308"
+ rainyNight: "\ue333"
+ snowyIcyDay: "\ue30a"
+ snowyIcyNight: "\ue335"
+ blizzardDay: "\udb83\udf36"
+ blizzardNight: "\udb83\udf36"
+ foggyDay: "\ue303"
+ foggyNight: "\ue346"
+ thunderstormDay: "\ue30f"
+ thunderstormNight: "\ue338"
+ default: "\uebaa"
+ weather_card:
+ blur: True
+ round_corners: True
+ round_corners_type: "normal"
+ border_color: "System"
+ alignment: "right"
+ direction: "down"
+ icon_size: 64
+ show_hourly_forecast: True # Set to False to disable hourly forecast
+ time_format: "12h" # can be 12h or 24h
+ hourly_point_spacing: 76
+ hourly_icon_size: 32 # better to set 16, 32 or 64 for better quality
+ icon_smoothing: true # should be true for smoother icon or false for sharper icon if using 16, 32 or 64 for hourly_icon_size
+ temp_line_width: 2 # can be 0 to hide the temperature line
+ current_line_color: "#8EAEE8"
+ current_line_width: 1 # can be 0 to hide the current hour line
+ current_line_style: "dot"
+ label_shadow:
+ enabled: true
+ color: "black"
+ radius: 3
+ offset: [ 1, 1 ]
+ volume:
+ type: "yasb.volume.VolumeWidget"
+ options:
+ label: "{icon} {level}"
+ label_alt: "{volume}"
+ tooltip: false
+ volume_icons:
+ - "\ueee8"
+ - "\uf026"
+ - "\uf027"
+ - "\uf027"
+ - "\uf028"
+ callbacks:
+ on_left: "toggle_mute"
+ on_right: "exec cmd.exe /c start ms-settings:sound"
+ microphone:
+ type: "yasb.microphone.MicrophoneWidget"
+ options:
+ label: "{icon} {level}"
+ label_alt: "{icon} {level}%"
+ icons:
+ normal: "\udb80\udf6c"
+ muted: "\udb80\udf6d"
+ callbacks:
+ on_left: "toggle_mute"
+ on_middle: "toggle_label"
+ 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: 200
+ button_row: 5
+ buttons:
+ shutdown: ["\uf011", "Rage Quit"]
+ restart: ["\uead2", "Oops, Reboot"]
+ signout: ["\udb80\udf43", "Dip Out"]
+ hibernate: ["\uf28e", "Bear Mode"]
+ sleep: ["\u23fe", "Nap Time"]
+ cancel: ["", "Nah, Im Good "]
+ apps:
+ type: "yasb.applications.ApplicationsWidget"
+ options:
+ container_padding:
+ top: 0
+ left: 8
+ bottom: 0
+ right: 8
+ label: "{data}"
+ app_list:
+ - { icon: "\ueb03", launch: "cmd /c Taskmgr" }
+ - { icon: "\uf489", launch: "wt"}
+ notifications:
+ type: "yasb.notifications.NotificationsWidget"
+ options:
+ label: "\uf476 {count}"
+ label_alt: "{count} notifications"
+ hide_empty: true
+ tooltip: false
+ callbacks:
+ on_left: "toggle_notification"
+ on_right: "do_nothing"
+ on_middle: "toggle_label"
+ wallpapers:
+ type: "yasb.wallpapers.WallpapersWidget"
+ options:
+ label: "\udb83\ude09"
+ image_path: # Example path to folder with images
+ change_automatically: false # Automatically change wallpaper
+ update_interval: 60 # If change_automatically is true, update interval in seconds
+ gallery:
+ enabled: true
+ blur: true
+ image_width: 220
+ image_per_page: 8
+ show_buttons: true
+ orientation: "portrait"
+ image_spacing: 8
+ lazy_load: true
+ lazy_load_delay: 80
+ lazy_load_fadein: 400
+ image_corner_radius: 20
+ enable_cache: true
+ cava:
+ type: "yasb.cava.CavaWidget"
+ options:
+ bar_height: 12
+ min_bar_height: 0
+ gradient: 1
+ reverse: 0
+ foreground: "#89b4fa"
+ gradient_color_1: '#74c7ec'
+ gradient_color_2: '#89b4fa'
+ gradient_color_3: '#cba6f7'
+ bars_number: 8
+ bar_spacing: 2
+ bar_width: 4
+ hide_empty: true
+ container_padding:
+ top: 0
+ left: 8
+ bottom: 0
+ right: 8
+ cpu:
+ type: "yasb.cpu.CpuWidget"
+ options:
+ label: "\uf4bc {info[percent][total]}"
+ label_alt: "\uf437 {info[histograms][cpu_percent]}"
+ 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_right: "exec cmd /c Taskmgr"
+ label_shadow:
+ enabled: true
+ color: "black"
+ radius: 3
+ offset: [ 1, 1 ]
+ glazewm_workspaces:
+ type: "glazewm.workspaces.GlazewmWorkspacesWidget"
+ options:
+ # Offline behavior (matching komorebi's label_offline and hide_if_offline)
+ offline_label: "GlazeWM Offline"
+ hide_if_offline: true
+
+ # Workspace display labels (matching komorebi's label_workspace_btn and label_workspace_active_btn)
+ populated_label: "\udb85\udcfc"
+ empty_label: "\udb85\udcfc"
+ active_populated_label: "\udb85\udcfb"
+ active_empty_label: "\udb85\udcfb"
+
+ # Workspace management (matching komorebi's hide_empty_workspaces)
+ hide_empty_workspaces: false
+
+ # Server connection
+ glazewm_server_uri: "ws://localhost:6123"
+
+ # Additional GlazeWM-specific options (keeping defaults)
+ enable_scroll_switching: true
+ reverse_scroll_direction: true
+ container_padding:
+ top: 0
+ left: 0
+ bottom: 0
+ right: 0
+ glazewm_tiling_direction:
+ type: "glazewm.tiling_direction.GlazewmTilingDirectionWidget"
+ options:
+ horizontal_label: "\udb81\udce1"
+ vertical_label: "\udb81\udce2"
+ btn_shadow:
+ enabled: true
+ color: "black"
+ radius: 3
+ offset: [ 1, 1 ]
+ pomodoro:
+ type: "yasb.pomodoro.PomodoroWidget"
+ options:
+ label: "{icon} {remaining}"
+ label_alt: "{icon} {session}/{total_sessions} - {status}"
+ work_duration: 25
+ break_duration: 5
+ long_break_duration: 15
+ long_break_interval: 4
+ auto_start_breaks: true
+ auto_start_work: true
+ sound_notification: true
+ show_notification: true
+ hide_on_break: false
+ session_target: 8
+ icons:
+ work: "\uf252"
+ break: "\uf253"
+ paused: "\uf254"
+ container_padding:
+ top: 0
+ left: 12
+ bottom: 0
+ right: 12
+ menu:
+ blur: true
+ round_corners: true
+ round_corners_type: "normal"
+ border_color: "System"
+ alignment: "right"
+ direction: "down"
+ offset_top: 6
+ offset_left: 0
+ circle_background_color: "#09ffffff"
+ circle_work_progress_color: "#88c0d0"
+ circle_break_progress_color: "#a3be8c"
+ circle_thickness: 8
+ circle_size: 160
+ callbacks:
+ on_left: "toggle_menu"
+ on_middle: "reset_timer"
+ on_right: "toggle_label"
+ label_shadow:
+ enabled: true
+ color: "black"
+ radius: 3
+ offset: [ 1, 1 ]
+ memory:
+ type: "yasb.memory.MemoryWidget"
+ options:
+ label: "\uf4bc {virtual_mem_percent}"
+ label_alt: "\uf4bc VIRT: {virtual_mem_percent}% SWAP: {swap_mem_percent}%"
+ update_interval: 5000
+ callbacks:
+ on_left: "toggle_label"
+ on_middle: "do_nothing"
+ on_right: "do_nothing"
+ 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%+
+ label_shadow:
+ enabled: true
+ color: "black"
+ radius: 3
+ offset: [ 1, 1 ]
\ No newline at end of file
diff --git a/yasb/styles.css b/yasb/styles.css
new file mode 100644
index 0000000..83534bd
--- /dev/null
+++ b/yasb/styles.css
@@ -0,0 +1,446 @@
+* {
+ font-size: 12px;
+ color: #cdd6f4;
+ font-weight: 500;
+ font-family: "JetBrainsMono NFP";
+ margin: 0;
+ padding: 0;
+}
+.yasb-bar {
+ padding: 0 8px;
+ margin: 0;
+ background-color: #1e1e2e;
+ border-radius: 16px;
+}
+.widget {
+ padding: 0 10px;
+ margin: 0;
+}
+.widget .label {
+ padding: 2px 2px 1px 2px;
+
+}
+.widget .label.alt {
+ padding: 1px 8px 1px 8px;
+}
+ .clock-widget .label {
+ padding-left:8px;
+}
+.glazewm-workspaces {
+ margin: 0;
+}
+
+.glazewm-workspaces .ws-btn {
+ font-size: 18px;
+ background-color: transparent;
+ border: none;
+ padding: 0 2px 0 2px;
+ margin: 0;
+ color: #95a0ad;
+}
+
+.glazewm-workspaces .ws-btn.active_populated {
+ color: #89b4fa;
+}
+
+.glazewm-workspaces .ws-btn.active_empty {
+ color: #89b4fa;
+}
+
+.glazewm-workspaces .ws-btn.populated {
+ color: #74c7ec;
+}
+
+.glazewm-workspaces .ws-btn.empty {
+ color: #95a0ad;
+}
+
+.glazewm-workspaces .ws-btn:hover,
+.glazewm-workspaces .ws-btn.populated:hover,
+.glazewm-workspaces .ws-btn.empty:hover {
+ color: #89b4fa;
+}
+
+.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;
+}
+/*POWER MENU WIDGET*/
+/* Uptime text */
+.uptime {
+ font-size: 14px;
+ margin-bottom: 10px;
+ color: rgba(191, 202, 219, 0.726);
+ font-weight: 600;
+ font-family: "JetBrainsMono NFP";
+}
+.power-menu-widget .label {
+ color: #eba0ac;
+ font-size: 16px;
+}
+.power-menu-popup .button {
+ padding: 0;
+ width: 160px;
+ height: 240px;
+ border-radius: 4px;
+ background-color: rgba(41, 42, 58, 0.75);
+ font-family: "JetBrainsMono NFP";
+ color: white;
+ border: 4px solid rgba(255, 255, 255, 0);
+
+}
+.power-menu-popup .button.hover {
+ background-color: rgb(55, 56, 75);
+ border: 4px 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.6);
+ font-family: "JetBrainsMono NFP";
+}
+.power-menu-popup .button .icon {
+ font-size: 64px;
+ padding-top: 54px;
+ color: rgba(255, 255, 255, 0.25);
+}
+.power-menu-popup .button.cancel {
+ height: 20px !important; /* Much thinner than the 240px of other buttons */
+ width: 100%; /* Full width to span across */
+ padding-top: 10px;
+ padding-bottom: 10px;
+}
+
+.power-menu-popup .button.cancel .icon {
+ font-size: 24px !important; /* Smaller icon for the thinner button */
+ padding-top: 0px !important; /* Remove the large top padding */
+ color: rgba(243, 139, 168, 0.55);
+}
+
+.power-menu-popup .button.cancel .label {
+ margin-bottom: 0px !important; /* Remove bottom margin */
+ color: rgba(243, 139, 168, 0.95);
+}
+/* ICONS */
+.icon {
+ font-size: 16px;
+}
+.volume-widget .icon {
+ color: #89b4fa;
+ margin: 1px 2px 0 0;
+}
+.start-menu .icon {
+ font-size: 18px;
+ color: #89b4fa
+}
+.clock-widget .icon {
+ color: #cba6f7;
+ font-size: 14px;
+}
+/* WEATHER WIDGET */
+.weather-card {
+ background-color: rgba(17, 17, 27, 0.5);
+}
+.weather-card-today {
+ border: 1px solid #282936;
+ border-radius: 8px;
+ background-color: rgba(17, 17, 27, 0.2);
+}
+.weather-card-today .label {
+ font-size: 12px;
+}
+.weather-card-today .label.location {
+ font-size: 24px;
+ font-weight: 700;
+}
+.weather-card-today .label.alert {
+ font-size: 12px;
+ font-weight: 700;
+ background-color: rgba(247, 199, 42, 0.05);
+ border: 1px solid rgba(247, 209, 42, 0.1);
+ color: rgba(196, 181, 162, 0.85);
+ border-radius: 6px;
+ padding: 5px 0;
+}
+.weather-card-day {
+ border: 1px solid #45475a;
+ border-radius: 8px;
+ background-color: rgba(17, 17, 27, 0.2);
+}
+
+.weather-card-day.active {
+ background-color: rgba(40, 40, 60, 0.6);
+ border: 1px solid rgba(50, 50, 75, 1);
+}
+
+.weather-card-day:hover {
+ background-color: rgba(40, 40, 60, 0.6);
+}
+
+.weather-card-day .label {
+ font-size: 12px;
+}
+
+.weather-card .hourly-container {
+ border: 1px solid #282936;
+ background-color: #3c5fa0;
+ border-radius: 8px;
+ min-height: 150px;
+}
+
+.weather-card .hourly-data {
+ /* font-family: 'Segoe UI';*/
+ /* color: cyan;*/ /* <- Font color */
+ background-color: #FAE93F; /* <- Curve color */
+ font-size: 12px;
+ font-weight: bold;
+}
+.media-widget {
+ padding: 0;
+ margin: 0;
+}
+.media-widget .label {
+ color: #b4befe;
+ padding: 0px;
+ padding-right: 4px;
+}
+.media-menu {
+ min-width: 420px;
+ max-width: 420px;
+ background-color: rgba(31, 39, 49, 0.5);
+}
+.media-menu .title,
+.media-menu .artist,
+.media-menu .source {
+ font-size: 14px;
+ font-weight: 600;
+ margin-left: 10px;
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
+}
+.media-menu .artist {
+ font-size: 13px;
+ color: #6c7086;
+ margin-top: 0px;
+ margin-bottom: 8px;
+}
+.media-menu .source {
+ font-size: 11px;
+ color: #000;
+ font-weight: normal;
+ border-radius: 3px;
+ background-color: #bac2de;
+ padding: 2px 4px;
+
+}
+/* The source class name is the same as what you see in the media widget; just replace spaces with dashes and convert it to lowercase.
+Example: "Windows Media" becomes "windows-media" */
+.media-menu .source.firefox {
+ background-color: #ff583b;
+ color: #ffffff;
+}
+.media-menu .source.spotify {
+ background-color: #199143;
+ color: #ffffff;
+}
+.media-menu .source.edge {
+ background-color: #0078d4;
+ color: #ffffff;
+}
+.media-menu .source.windows-media {
+ background-color: #0078d4;
+ color: #ffffff;
+}
+
+.media-menu .btn {
+ font-family: "Segoe Fluent Icons";
+ font-size: 14px;
+ font-weight: 400;
+ margin: 10px 2px 0px 2px;
+ min-width: 40px;
+ max-width: 40px;
+ min-height: 40px;
+ max-height: 40px;
+ border-radius: 20px;
+}
+.media-menu .btn.prev {
+ margin-left: 10px;
+}
+.media-menu .btn:hover {
+ color: white;
+ background-color: rgba(255, 255, 255, 0.1);
+}
+.media-menu .btn.play {
+ background-color: rgba(255, 255, 255, 0.1);
+ font-size: 20px
+}
+.media-menu .btn.disabled:hover,
+.media-menu .btn.disabled {
+ color: #4e525c;
+ background-color: rgba(0, 0, 0, 0);
+}
+
+.media-menu .playback-time {
+ font-size: 13px;
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
+ color: #7f849c;
+ margin-top: 20px;
+ min-width: 100px;
+}
+.media-menu .progress-slider {
+ height: 10px;
+ margin: 5px 4px;
+ border-radius: 3px;
+}
+.media-menu .progress-slider::groove {
+ background: transparent;
+ height: 2px;
+ border-radius: 3px;
+ background: rgba(255, 255, 255, 0.1);
+
+}
+.media-menu .progress-slider::groove:hover {
+ background: transparent;
+ height: 6px;
+ border-radius: 3px;
+ background: rgba(255, 255, 255, 0.2);
+}
+.media-menu .progress-slider::sub-page {
+ background: white;
+ border-radius: 3px;
+ height: 4px;
+}
+ /* Hide media widget buttons */
+.media-widget .btn {
+ padding: 0;
+ margin: 0 -6px;
+ padding-left: 4px;
+}
+.pomodoro-widget {
+ padding: 0 0 0 0;
+}
+.pomodoro-widget .icon {
+ font-size: 12px;
+ padding-right: 4px;
+}
+.pomodoro-widget .label.paused,
+.pomodoro-widget .icon.paused {
+ color: #7d7e8b;
+}
+.pomodoro-widget .label.work,
+.pomodoro-widget .icon.work {
+ color: #a6e3a1;
+}
+.pomodoro-widget .label.break,
+.pomodoro-widget .icon.break {
+ color: #89b4fa;
+}
+/* Pomodoro menu styling */
+.pomodoro-menu {
+ background-color: rgba(17, 17, 27, 0.2);
+ border-radius: 8px;
+}
+.pomodoro-menu .header {
+ font-size: 16px;
+ font-weight: 600;
+ max-height: 0px;
+ color: #ffffff;
+}
+.pomodoro-menu .status {
+ font-size: 18px;
+ font-weight: 600;
+ color: #cdd6f4;
+}
+.pomodoro-menu .session {
+ font-size: 12px;
+ color: #a6adc8;
+}
+.pomodoro-menu .button {
+ background-color: #3f4053;
+ color: #cdd6f4;
+ border: none;
+ border-radius: 4px;
+ padding: 6px 12px;
+}
+.pomodoro-menu .button.start {
+ background-color: #3f4053;
+}
+.pomodoro-menu .button.reset {
+ background-color: #3f4053;
+}
+.pomodoro-menu .button:hover {
+ background-color: rgba(255, 255, 255, 0.158);
+}
+.pomodoro-menu .button.pause {
+ background-color: #a6e3a1;
+ color: #1e1e2e;
+}
+.pomodoro-menu .button:pressed {
+ background-color: #5a5b6e;
+}
+
+.calendar {
+ background-color: rgba(17, 17, 27, 0.4);
+}
+.calendar .calendar-table,
+.calendar .calendar-table::item {
+ background-color: rgba(17, 17, 27, 0);
+ color: rgba(162, 177, 196, 0.85);
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
+ margin: 0;
+ padding: 0;
+ border: none;
+ outline: none;
+}
+.calendar .calendar-table::item:selected {
+ color: rgb(255, 255, 255);
+ background-color: #007acc;
+ border-radius: 10px;
+}
+.calendar .day-label {
+ margin-top: 20px;
+}
+.calendar .day-label,
+.calendar .month-label,
+.calendar .date-label,
+.calendar .week-label,
+.calendar .holiday-label {
+ font-family: 'Segoe UI';
+ font-size: 16px;
+ color: #fff;
+ font-weight: 700;
+ min-width: 180px;
+ max-width: 180px;
+}
+.calendar .week-label,
+.calendar .holiday-label {
+ font-size: 12px;
+ font-weight: 600;
+ color: rgba(162, 177, 196, 0.85);
+}
+.calendar .holiday-label {
+ color: rgba(162, 177, 196, 0.85);
+ font-weight: 700;
+}
+.calendar .month-label {
+ font-weight: normal;
+}
+.calendar .date-label {
+ font-size: 88px;
+ font-weight: 900;
+ color: rgb(255, 255, 255);
+ margin-top: -20px;
+}
\ No newline at end of file