Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG]: Toggling from floating to tiled, then back to floating, does not retain previous floating size #1230

Open
helmesjo opened this issue Jan 16, 2025 · 3 comments
Labels
bug Something isn't working i-will-probably-work-on-this I'll work on this when I get time, but if someone beats me to it, thank you! komorebi Related to the komorebi crate

Comments

@helmesjo
Copy link

helmesjo commented Jan 16, 2025

Summary

Description:
When toggling back and forth between floating <-> tiled it does not retain the previous floating size. Also, the size that it picks appears to just be a percentage of the monitor size, which is a problem when you have an ultra-wide monitor (it becomes a thin slice and one have to manually adjust it each time).

Suggestion:
Remember the last size a window had while in floating mode (unless this is already done), and if there is no previous size then preferably default to something like 16:9 or 4:3 (anything but 32:9 😆).

Version Information

komorebi --version
komorebi 0.1.33
tag:v0.1.33
commit_hash:cc51f62c
build_time:2025-01-11 22:30:30 +00:00
build_env:rustc 1.84.0 (9fc6b4312 2025-01-07),stable-x86_64-pc-windows-msvc
OS Name:                   Microsoft Windows 11 Pro
OS Version:                10.0.22621 N/A Build 22621

Komorebi Configuration

`komorebi.json`

{
  "$schema": "https://raw.githubusercontent.com/LGUG2Z/komorebi/v0.1.32/schema.json",
  "app_specific_configuration_path": "$Env:KOMOREBI_CONFIG_HOME/applications.json",
  "window_hiding_behaviour": "Cloak",
  "cross_monitor_move_behaviour": "Insert",
  "default_workspace_padding": 0,
  "default_container_padding": 0,
  "border": true,
  "border_width": 4,
  "border_offset": -1,
  "theme": {
    "palette": "Base16",
    "name": "Ashes",
    "unfocused_border": "Base03",
    "bar_accent": "Base0D"
  },
  "stackbar": {
    "height": 24,
    "mode": "OnStack",
    "tabs": {
      "width": 300
    }
  },
  "monitors": [
    {
      "workspaces": [
        {
          "name": "I",
          "layout": "UltrawideVerticalStack"
        },
        {
          "name": "II",
          "layout": "UltrawideVerticalStack"
        },
        {
          "name": "III",
          "layout": "UltrawideVerticalStack"
        },
        {
          "name": "IV",
          "layout": "UltrawideVerticalStack"
        },
        {
          "name": "V",
          "layout": "UltrawideVerticalStack"
        },
        {
          "name": "VI",
          "layout": "UltrawideVerticalStack"
        },
        {
          "name": "VII",
          "layout": "UltrawideVerticalStack"
        }
      ]
    }
  ],
  "ignore_rules": [
    {
      "kind": "Exe",
      "id": "explorer.exe",
      "matching_strategy": "Equals",
    },
    {
      "kind": "Exe",
      "id": "SystemSettings.*\\.exe",
      "matching_strategy": "Regex",
    },
    {
      "kind": "Exe",
      "id": "ApplicationFrameHost.exe",
      "matching_strategy": "Equals",
    },
    {
      "kind": "Exe",
      "id": "olk.exe",
      "matching_strategy": "Equals",
    },
    {
      "kind": "Exe",
      "id": "ms-teams.exe",
      "matching_strategy": "Equals",
    }
  ]
}


`komorebi.bar.json`

{
  "$schema": "https://raw.githubusercontent.com/LGUG2Z/komorebi/v0.1.32/schema.bar.json",
  "monitor": {
    "index": 0,
    "work_area_offset": {
      "left": 0,
      "top": 52,
      "right": 0,
      "bottom": 53
    }
  },
  "font_family": "JetBrains Mono",
  "theme": {
    "palette": "Base16",
    "name": "Ashes",
    "accent": "Base0D"
  },
  "left_widgets": [
    {
      "Komorebi": {
        "workspaces": {
          "enable": true,
          "hide_empty_workspaces": false
        },
        "layout": {
          "enable": true
        },
        "focused_window": {
          "enable": true,
          "show_icon": true
        }
      }
    }
  ],
  "right_widgets": [
    {
      "Media": {
        "enable": true
      }
    },
    {
      "Storage": {
        "enable": true
      }
    },
    {
      "Memory": {
        "enable": true
      }
    },
    {
      "Network": {
        "enable": true,
        "show_total_data_transmitted": true,
        "show_network_activity": true
      }
    },
    {
      "Date": {
        "enable": true,
        "format": "DayDateMonthYear"
      }
    },
    {
      "Time": {
        "enable": true,
        "format": "TwentyFourHour"
      }
    },
    {
      "Battery": {
        "enable": true
      }
    }
  ]
}

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         : cmd.exe /c "komorebic stop --whkd --bar && komorebic start --whkd --bar --clean-state"

# 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 + return            : start "$env:APPDATA/Microsoft/Windows/Start Menu/Programs/alacritty.lnk"

alt + q                 : komorebic close
alt + shift + q         : powershell -executionpolicy bypass -File "$env:KOMOREBI_CONFIG_HOME/quit-focused-app.ps1"
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 + ctrl + h          : komorebic stack left
alt + ctrl + j          : komorebic stack down
alt + ctrl + k          : komorebic stack up
alt + ctrl + l          : 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

komorebic check
KOMOREBI_CONFIG_HOME detected: C:/Users/me/.config/komorebi

Looking for configuration files in C:/Users/me/.config/komorebi

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

Found C:/Users/me/.config/whkd\whkdrc; key bindings will be loaded from here when whkd is started, and you can start it automatically using the --whkd flag
@helmesjo helmesjo added the bug Something isn't working label Jan 16, 2025
@LGUG2Z
Copy link
Owner

LGUG2Z commented Jan 16, 2025

Remember the last size a window had while in floating mode

This is unlikely.

default to something like 16:9 or 4:3

Making this configurable is a great idea 💡

@webmandman
Copy link

I concur that making the float window size configurable would be awesome.

@LGUG2Z
Copy link
Owner

LGUG2Z commented Jan 22, 2025

I'm hoping to get this into either 0.1.34 or 0.1.35 🤞

@LGUG2Z LGUG2Z added i-will-probably-work-on-this I'll work on this when I get time, but if someone beats me to it, thank you! komorebi Related to the komorebi crate labels Jan 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working i-will-probably-work-on-this I'll work on this when I get time, but if someone beats me to it, thank you! komorebi Related to the komorebi crate
Projects
None yet
Development

No branches or pull requests

3 participants