Skip to content

[BUG]: Chromium Scroll Position Resets to Top when Tiling from Single Window #1604

@GhadiSaab

Description

@GhadiSaab

Summary

Description

I am experiencing a forced visual refresh (scroll position resets to top) in Chromium-based browsers when transitioning from a single window (occupying 100% of the workspace) to a split state (BSP).

The issue occurs specifically when a browser window goes from being the only window on screen to being tiled (~50% width). This does not appear to be an animation artifact, but rather a state-change conflict where the browser "crashes" its viewport and re-renders the page at coordinates (0,0).

Steps to Reproduce

  1. Open a single Chrome/Edge window (Occupies 100% of workspace).
  2. Scroll down on a long page (e.g., a GitHub issue or documentation).
  3. Open a second window (e.g., Terminal or another browser tab).
  4. Komorebi tiles them 50/50.
  5. The Bug: The original browser window visually "flashes" and the scroll position instantly resets to the very top of the page.

Environment

  • OS: Windows 11
  • Komorebi Version: [PASTE VERSION HERE]
  • Browser: Chrome / Edge (Latest Stable)
  • Hiding Behaviour: Cloak

Configuration

(Confirmed valid via komorebic check)

{
  "window_hiding_behaviour": "Cloak",
  "cross_monitor_move_behaviour": "Insert",
  "default_workspace_padding": 10,
  "border": true,
  "animation": {
    "enabled": true,
    "duration": 150,
    "fps": 144,
    "style": "EaseOutExpo"
  }
}

### Version Information

komorebic 0.1.38
tag:v0.1.38
commit_hash:ffa76ea2
build_time:2025-09-13 18:40:25 +00:00
build_env:rustc 1.89.0 (29483883e 2025-08-04),stable-x86_64-pc-windows-msvc

### Komorebi Configuration

```json
{
  "$schema": "https://raw.githubusercontent.com/LGUG2Z/komorebi/v0.1.38/schema.json",
  "app_specific_configuration_path": "$Env:USERPROFILE/applications.json",
  "window_hiding_behaviour": "Minimize",
  "cross_monitor_move_behaviour": "Insert",
  "default_workspace_padding": 10,
  "default_container_padding": 10,
  "border": true,
  "border_width": 2,
  "border_offset": -1,
  "border_style": "Rounded",
  "border_colours": {
    "single": "#0099ff",
    "stack": "#0099ff",
    "monocle": "#ff00ff",
    "unfocused": "#0b0f19"
  },
  "transparency": true,
  "transparency_alpha": 230,
  "animation": {
    "enabled": true,
    "duration": 150,
    "fps": 144,
    "style": "EaseOutExpo"
  },
  "monitors": [
    {
      "workspaces": [
        { "name": "Code", "layout": "BSP" },
        { "name": "Web", "layout": "BSP" },
        { "name": "Chat", "layout": "VerticalStack" },
        { "name": "Media", "layout": "BSP" },
        { "name": "V", "layout": "Rows" }
      ]
    }
  ]
}

Hotkey Configuration

.shell powershell

Reload whkd configuration

alt + o : taskkill /f /im whkd.exe && start /b whkd # if shell is cmd

alt + o : taskkill /f /im whkd.exe; Start-Process whkd -WindowStyle hidden # if shell is pwsh / powershell
alt + shift + o : komorebic reload-configuration

alt + i : komorebic toggle-shortcuts

App shortcuts - these require shell to be pwsh / powershell

The apps will be focused if open, or launched if not open

alt + f : if ($wshell.AppActivate('Firefox') -eq $False) { start firefox }

alt + b : if ($wshell.AppActivate('Chrome') -eq $False) { start chrome }

alt + q : komorebic close
alt + m : komorebic minimize

Focus windows

alt + h : komorebic focus left
alt + j : komorebic focus down
alt + k : komorebic focus up
alt + l : komorebic focus right
alt + shift + oem_4 : komorebic cycle-focus previous # oem_4 is [
alt + shift + oem_6 : komorebic cycle-focus next # oem_6 is ]

Move windows

alt + shift + h : komorebic move left
alt + shift + j : komorebic move down
alt + shift + k : komorebic move up
alt + shift + l : komorebic move right
alt + shift + return : komorebic promote

Stack windows

alt + left : komorebic stack left
alt + down : komorebic stack down
alt + up : komorebic stack up
alt + right : komorebic stack right
alt + oem_1 : komorebic unstack # oem_1 is ;
alt + oem_4 : komorebic cycle-stack previous # oem_4 is [
alt + oem_6 : komorebic cycle-stack next # oem_6 is ]

Resize

alt + oem_plus : komorebic resize-axis horizontal increase
alt + oem_minus : komorebic resize-axis horizontal decrease
alt + shift + oem_plus : komorebic resize-axis vertical increase
alt + shift + oem_minus : komorebic resize-axis vertical decrease

Manipulate windows

alt + t : komorebic toggle-float
alt + shift + f : komorebic toggle-monocle

Window manager options

alt + shift + r : komorebic retile
alt + p : komorebic toggle-pause

Layouts

alt + x : komorebic flip-layout horizontal
alt + y : komorebic flip-layout vertical

Workspaces

alt + 1 : komorebic focus-workspace 0
alt + 2 : komorebic focus-workspace 1
alt + 3 : komorebic focus-workspace 2
alt + 4 : komorebic focus-workspace 3
alt + 5 : komorebic focus-workspace 4
alt + 6 : komorebic focus-workspace 5
alt + 7 : komorebic focus-workspace 6
alt + 8 : komorebic focus-workspace 7

Move windows across workspaces

alt + shift + 1 : komorebic move-to-workspace 0
alt + shift + 2 : komorebic move-to-workspace 1
alt + shift + 3 : komorebic move-to-workspace 2
alt + shift + 4 : komorebic move-to-workspace 3
alt + shift + 5 : komorebic move-to-workspace 4
alt + shift + 6 : komorebic move-to-workspace 5
alt + shift + 7 : komorebic move-to-workspace 6
alt + shift + 8 : komorebic move-to-workspace 7

Output of komorebic check

No KOMOREBI_CONFIG_HOME detected, defaulting to C:\Users\ghadi

Looking for configuration files in C:\Users\ghadi

Found komorebi.json; this file can be passed to the start command with the --config flag

Found C:\Users\ghadi.config\whkdrc; key bindings will be loaded from here when whkd is started, and you can start it automatically using the --whkd flag

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions