Comments (3)
@LGUG2Z I've attached a screenshot to further highlight the type of behaviour I have described above from a laptop I have running SwayWM:
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:
-
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.
-
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.
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.
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:
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)
- [FEAT]: Komorebi icon idea HOT 1
- [BUG]: Autohotkey.exe cannot be found HOT 2
- [BUG]: Alt + (H/J/K/L) can still be used in monocle mode HOT 13
- [BUG]: Incorrect order of similar subcommands in error message HOT 1
- [FEAT]: Stacking containers with multiple windows. HOT 4
- [FEAT]: Window title as stackbar label HOT 4
- [FEAT]: Using window title for stackbar tab HOT 1
- [BUG]: `monitor-madness` window snapping does not work after sleep HOT 23
- [BUG]: When mouse_follows_focus is off, Workspace switching shorcuts fail to respect focused monitor HOT 2
- [BUG]: Stacked windows are not moved together using `komorebic move` commands HOT 9
- [BUG]: Moving windows between monitors on `UltrawideVerticalStack` layout HOT 2
- [FEAT]: Alt+Tabbing to a window obscured by the monocle should disable monocle and focus the alt+tabbed window HOT 12
- [BUG]: autostarted komorebi does not respect app specific configuration HOT 2
- [BUG]: Stackbar stays visible when changing workspace HOT 1
- [BUG]: focused_container ignores monocle containers HOT 2
- [FEAT]: Border anti-aliasing HOT 1
- [BUG]: Some applications resize off-screen HOT 18
- [BUG]: Stackbar's real-time title update limitation
- [BUG]: Stackbar and window edge are misaligned HOT 5
- [FEAT] Color options based on the desktop wallpaper (or a custom list) HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from komorebi.