Skip to content

Title bar not updating when a window changes the title #1213

@Sarthak-likely

Description

@Sarthak-likely

Is there an existing issue for this?

  • I have searched the existing issues

Behavior

So, on most Chromium browsers, there's a title bar (usally hidden in Chromium browsers), and in Whim, this does not update for example, a new tab opens and you are on that new tab, it retains the previous title bar already there

Current implementation

Opens new tab, retains old title, I have to move the window to update it

Expected implementation

Opens new tab, updates title

How to implement this (rough explnation):

Listen for any Win32 title bar changes every 10-25 seconds

C# Config

#nullable enable
#r "C:\Users\Admin\AppData\Local\Programs\Whim\whim.dll"
#r "C:\Users\Admin\AppData\Local\Programs\Whim\plugins\Whim.Bar\Whim.Bar.dll"
#r "C:\Users\Admin\AppData\Local\Programs\Whim\plugins\Whim.CommandPalette\Whim.CommandPalette.dll"
#r "C:\Users\Admin\AppData\Local\Programs\Whim\plugins\Whim.FloatingWindow\Whim.FloatingWindow.dll"
#r "C:\Users\Admin\AppData\Local\Programs\Whim\plugins\Whim.FocusIndicator\Whim.FocusIndicator.dll"
#r "C:\Users\Admin\AppData\Local\Programs\Whim\plugins\Whim.Gaps\Whim.Gaps.dll"
#r "C:\Users\Admin\AppData\Local\Programs\Whim\plugins\Whim.LayoutPreview\Whim.LayoutPreview.dll"
#r "C:\Users\Admin\AppData\Local\Programs\Whim\plugins\Whim.SliceLayout\Whim.SliceLayout.dll"
#r "C:\Users\Admin\AppData\Local\Programs\Whim\plugins\Whim.TreeLayout\Whim.TreeLayout.dll"
#r "C:\Users\Admin\AppData\Local\Programs\Whim\plugins\Whim.TreeLayout.Bar\Whim.TreeLayout.Bar.dll"
#r "C:\Users\Admin\AppData\Local\Programs\Whim\plugins\Whim.TreeLayout.CommandPalette\Whim.TreeLayout.CommandPalette.dll"
#r "C:\Users\Admin\AppData\Local\Programs\Whim\plugins\Whim.Updater\Whim.Updater.dll"
#r "C:\Users\Admin\AppData\Local\Programs\Whim\plugins\Whim.Yaml\Whim.Yaml.dll"

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Microsoft.UI;
using Microsoft.UI.Xaml.Markup;
using Microsoft.UI.Xaml.Media;
using Whim;
using Whim.Bar;
using Whim.CommandPalette;
using Whim.FloatingWindow;
using Whim.FocusIndicator;
using Whim.Gaps;
using Whim.LayoutPreview;
using Whim.SliceLayout;
using Whim.TreeLayout;
using Whim.TreeLayout.Bar;
using Whim.TreeLayout.CommandPalette;
using Whim.Updater;
using Whim.Yaml;
using Windows.Win32.UI.Input.KeyboardAndMouse;

/// <summary>
/// This is what's called when Whim is loaded.
/// </summary>
/// <param name="context"></param>
void DoConfig(IContext context)
{
	context.Logger.Config = new LoggerConfig();

	// YAML config. It's best to load this first so that you can use it in your C# config.
	YamlLoader.Load(context);

	// Customize your config in C# here.
	// For more, see https://dalyisaac.github.io/Whim/script/scripting.html
	// ...
}

// We return doConfig here so that Whim can call it when it loads.
return DoConfig;

YAML Config

workspaces:
  entries:
    - name: Workspace 1
    - name: Workspace 2
    - name: Workspace 3
    - name: Workspace 4
layout_engines:
  entries:
    - type: tree
      initial_direction: right
    - type: slice
      variant:
        type: row
    - type: slice
      variant:
        type: column
    - type: slice
      variant:
        type: primary_stack
    - type: slice
      variant:
        type: secondary_primary_stack
    - type: slice
      variant:
        type: multi_column_stack
        columns:
          - 2
          - 1
          - 0
    - type: slice
      variant:
        type: secondary_primary_stack
        primary_capacity: 1
        secondary_capacity: 2
    - type: focus
      maximize: false
    - type: floating
keybinds:
  entries:
    - command: whim.core.focus_next_monitor
      keybind: LCtrl+LShift+LAlt+K
    - command: whim.core.focus_previous_monitor
      keybind: LCtrl+LShift+LAlt+J
  unify_key_modifiers: true
filters:
  entries: []
routers:
  routing_behavior: route_to_launched_workspace
plugins:
  bar:
    left_components:
      entries:
        - type: battery_widget

    center_components:
      entries:
        - type: focused_window_widget
          shorten_title: false

    right_components:
      entries:
        - type: date_time_widget
          format: HH:mm:ss, dd MMMM yyyy
        
  focus_indicator:
    is_enabled: true
    border_size: 3
    is_fade_enabled: true
    fade_timeout: 2
    color: green
  gaps:
    is_enabled: true
    outer_gap: 10
    inner_gap: 10
    default_outer_delta: 2
    default_inner_delta: 2
  layout_preview:
    is_enabled: true
  command_palette:
    is_enabled: true

    max_height_percent: 40
    max_width_pixels: 800
    y_position_percent: 20

Environment

  • Windows: Windows 11 IoT Enterprise 2024
  • Architecture: amd64/x86_64
  • Whim: x64-0.8.6-alpha+37e06e85.37e06e851d6c6a38ae0b1f3a47e135bed6612266

Steps To Reproduce

  1. If you don't have Windows 11 IoT Enterprise 2024, please download it
  2. In the config, go to any app that changes window title bars
  3. when the title bar updates, it's not updated in the Whim Bar

Anything else?

log:

2026-05-07 07:20:56.931 +05:30 [ERR] WindowExtensions:57 [SetIsShownInSwitchers] IsShownInSwitchers isn't implemented, ignoring attempt to set it to: False
2026-05-07 07:20:57.238 +05:30 [INF] MutableRootSector:24 [Initialize] Initializing MutableRootSector
2026-05-07 07:20:57.239 +05:30 [INF] MonitorSector:24 [Initialize] Initializing MonitorSector
2026-05-07 07:20:57.260 +05:30 [INF] MonitorEventListener:14 [Initialize] Initializing MonitorEventListener
2026-05-07 07:20:57.261 +05:30 [INF] WindowSector:34 [Initialize] Initializing WindowSector
2026-05-07 07:20:57.263 +05:30 [INF] WindowEventListener:32 [Initialize] Initializing WindowEventListener
2026-05-07 07:20:57.266 +05:30 [INF] WorkspaceSector:56 [Initialize] Initializing WorkspaceSector
2026-05-07 07:20:57.705 +05:30 [ERR] WindowExtensions:57 [SetIsShownInSwitchers] IsShownInSwitchers isn't implemented, ignoring attempt to set it to: False
2026-05-07 07:20:57.920 +05:30 [ERR] WindowExtensions:57 [SetIsShownInSwitchers] IsShownInSwitchers isn't implemented, ignoring attempt to set it to: False
2026-05-07 07:20:57.940 +05:30 [ERR] WindowExtensions:57 [SetIsShownInSwitchers] IsShownInSwitchers isn't implemented, ignoring attempt to set it to: False
2026-05-07 07:20:58.128 +05:30 [ERR] WindowExtensions:57 [SetIsShownInSwitchers] IsShownInSwitchers isn't implemented, ignoring attempt to set it to: False
2026-05-07 07:24:30.379 +05:30 [ERR] NativeManager:157 [DwmGetWindowRectangle] Could not get the extended frame rect for 0x000200D2
2026-05-07 07:24:30.380 +05:30 [ERR] FocusIndicatorPlugin:146 [Show] Could not find window rectangle for window 0x000200D2
2026-05-07 07:24:30.421 +05:30 [ERR] NativeManager:157 [DwmGetWindowRectangle] Could not get the extended frame rect for 0x000200D2
2026-05-07 07:24:30.421 +05:30 [ERR] FocusIndicatorPlugin:146 [Show] Could not find window rectangle for window 0x000200D2
2026-05-07 07:27:14.560 +05:30 [ERR] WindowExtensions:57 [SetIsShownInSwitchers] IsShownInSwitchers isn't implemented, ignoring attempt to set it to: False
2026-05-07 07:27:14.894 +05:30 [INF] MutableRootSector:24 [Initialize] Initializing MutableRootSector
2026-05-07 07:27:14.895 +05:30 [INF] MonitorSector:24 [Initialize] Initializing MonitorSector
2026-05-07 07:27:14.918 +05:30 [INF] MonitorEventListener:14 [Initialize] Initializing MonitorEventListener
2026-05-07 07:27:14.919 +05:30 [INF] WindowSector:34 [Initialize] Initializing WindowSector
2026-05-07 07:27:14.921 +05:30 [INF] WindowEventListener:32 [Initialize] Initializing WindowEventListener
2026-05-07 07:27:14.924 +05:30 [INF] WorkspaceSector:56 [Initialize] Initializing WorkspaceSector
2026-05-07 07:27:15.700 +05:30 [ERR] WindowExtensions:57 [SetIsShownInSwitchers] IsShownInSwitchers isn't implemented, ignoring attempt to set it to: False
2026-05-07 07:27:16.035 +05:30 [ERR] WindowExtensions:57 [SetIsShownInSwitchers] IsShownInSwitchers isn't implemented, ignoring attempt to set it to: False
2026-05-07 07:27:16.066 +05:30 [ERR] WindowExtensions:57 [SetIsShownInSwitchers] IsShownInSwitchers isn't implemented, ignoring attempt to set it to: False
2026-05-07 07:27:16.475 +05:30 [ERR] WindowExtensions:57 [SetIsShownInSwitchers] IsShownInSwitchers isn't implemented, ignoring attempt to set it to: False
2026-05-07 07:27:17.472 +05:30 [ERR] NativeManager:157 [DwmGetWindowRectangle] Could not get the extended frame rect for 0x000200E2
2026-05-07 07:27:17.473 +05:30 [ERR] FocusIndicatorPlugin:146 [Show] Could not find window rectangle for window 0x000200E2
2026-05-07 07:27:17.499 +05:30 [ERR] NativeManager:157 [DwmGetWindowRectangle] Could not get the extended frame rect for 0x000200E2
2026-05-07 07:27:17.499 +05:30 [ERR] FocusIndicatorPlugin:146 [Show] Could not find window rectangle for window 0x000200E2
2026-05-07 07:27:17.522 +05:30 [ERR] NativeManager:157 [DwmGetWindowRectangle] Could not get the extended frame rect for 0x000200E2
2026-05-07 07:27:17.522 +05:30 [ERR] FocusIndicatorPlugin:146 [Show] Could not find window rectangle for window 0x000200E2
2026-05-07 07:29:52.232 +05:30 [ERR] WindowExtensions:57 [SetIsShownInSwitchers] IsShownInSwitchers isn't implemented, ignoring attempt to set it to: False

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtriageUntriaged issues

    Projects

    Status
    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions