Giter Site home page Giter Site logo

Comments (3)

da-rth avatar da-rth commented on June 24, 2024 6

@LGUG2Z I've attached a screenshot to further highlight the type of behaviour I have described above from a laptop I have running SwayWM:

15092021-154750

I currently don't have access to my Windows machine but will upload a recording as soon as I can.

Some differences between the recording you have provided and the one I have posted above are:

  1. In order to move windows around, you are selecting and dragging the window title bar. With the script, you can simply hold Alt+LMB anywhere above a window to move it around.

  2. In order to resize windows, you are going to the edge of a window and selecting/dragging the resize cursor. Whereas, this script allows you to resize the window by simply holding Alt+RMB anywhere above the window and dragging the mouse left, right, up or down to resize the window.

i3, sway, bspwm and several other window managers have this kind of window dragging/resizing functionality, it would be fantastic to have it in komorebi!

from komorebi.

LGUG2Z avatar LGUG2Z commented on June 24, 2024 1

This would be pretty cool to have. This is quite a big feature and I don't think I will have the time to dedicate to it in the coming weeks/months.

The event emitted by the AHK script is this one, which is not currently mapped to a WindowManagerEvent: https://github.com/LGUG2Z/komorebi/blob/master/komorebi/src/winevent.rs#L125

I tried mapping it to MoveResizeEnd (https://github.com/LGUG2Z/komorebi/blob/master/komorebi/src/window_manager_event.rs#L113) to get the AHK script working, and while it does, kinda, it forces too many redraws which makes the system crawl to a halt.

This feature would definitely be better built into komorebi than triggered via an AHK script.

For anyone who would like to try working on this, I would suggest something like this as a starting point:

  • A komorebic command each for toggling easy resizing and easy moving mode, which could be bound to key presses up and down, which map to an enum which stores start and end cursor position in the WindowManager state
enum EasyResize {
    Disabled,
    Started(POINT),
    Finished(POINT),
}
  • When toggled off, the diff between the start and end points can be calculated to create a resize offset (or the window to swap with for EasyMove), and then applied to the window before triggering a workspace layout update

from komorebi.

LGUG2Z avatar LGUG2Z commented on June 24, 2024

I've had a look at the script but I'm still not quite able to visualize the behaviour that you have in mind and how it is different to the current current drag-edge-to-resize and move-to-swap functionality that komorebi has:

jw43pCSELI

Can you share a gif of the desired behaviour and one showing what happens instead when the script is run alongside komorebi?

from komorebi.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.