From 55b5c5dd09bdf89f6d4cca9726682dca81abd8ae Mon Sep 17 00:00:00 2001 From: SDGDen Date: Wed, 3 Jun 2026 14:00:19 +0200 Subject: [PATCH] added base yasb and glazeWM configs --- .old/config/yasb/config.yaml | 413 ++++++++++++++++ .old/config/yasb/styles.css | 446 ++++++++++++++++++ .old/config/yasb/yasb.log | 145 ++++++ .old/glzr/glazewm/config-init.yaml | 321 +++++++++++++ .old/glzr/glazewm/config.yaml | 328 +++++++++++++ .old/glzr/glazewm/config2.yaml | 324 +++++++++++++ .old/glzr/glazewm/errors.log | 4 + .../zebar/.marketplace/glzr-io.starter.json | 5 + .old/glzr/zebar/errors.log | 0 .old/glzr/zebar/settings.json | 10 + chocoinstall.sh | 3 + glazewm/config.yaml | 328 +++++++++++++ install.ps1 | 2 - yasb/config.yaml | 413 ++++++++++++++++ yasb/styles.css | 446 ++++++++++++++++++ 15 files changed, 3186 insertions(+), 2 deletions(-) create mode 100644 .old/config/yasb/config.yaml create mode 100644 .old/config/yasb/styles.css create mode 100644 .old/config/yasb/yasb.log create mode 100644 .old/glzr/glazewm/config-init.yaml create mode 100644 .old/glzr/glazewm/config.yaml create mode 100644 .old/glzr/glazewm/config2.yaml create mode 100644 .old/glzr/glazewm/errors.log create mode 100644 .old/glzr/zebar/.marketplace/glzr-io.starter.json create mode 100644 .old/glzr/zebar/errors.log create mode 100644 .old/glzr/zebar/settings.json create mode 100644 chocoinstall.sh create mode 100644 glazewm/config.yaml create mode 100644 yasb/config.yaml create mode 100644 yasb/styles.css 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 @@ +2026-03-30T19:30:25.285252Z ERROR glazewm: gaps: data did not match any variant of untagged enum LengthValueDe at line 2 column 3 +2026-03-30T19:41:33.688995Z ERROR glazewm: 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