ssokolow / quicktile

Adds window-tiling hotkeys to any X11 desktop. (An analogue to WinSplit Revolution for people who don't want to use Compiz Grid)
https://ssokolow.com/quicktile/
GNU General Public License v2.0
869 stars 78 forks source link

Better dimensions for "portrait" monitors #53

Open kevinmarsh opened 9 years ago

kevinmarsh commented 9 years ago

I have a dual monitor setup, the same size monitors with one in landscape (1920w by 1080h) and one portrait mode (1080w by 1920h). So cycling through the dimensions on my landscape monitor with quicktile works exactly as I'd like, however on the portrait monitor I'd like the window dimensions to be slightly differently. For example currently cycling through quicktile.py bottom results in the following window three sizes:

quickitle_screenshot_bottom_default

But having the window that skinny isn't any use to me, it'd be better if it cycled through full width but varying heights like this:

quickitle_screenshot_bottom_portrait

I've only used this on my own machine so it'd need some testing for cross compatibility but you can check my fork out for an initial working version. It should behave as normal on monitors in landscape mode (where the monitor is wider than it is tall) but on portrait monitors it will have different dimensions for the top, middle and bottom positions.

ssokolow commented 9 years ago

Thanks. I'm a little overwhelmed with coursework right now, but I'll take a look at it once my schedule opens up a bit.

kevinmarsh commented 9 years ago

No worries, the actual dimensions should probably be configurable (as suggested in issue 13) but it'd be nice to have the option to have different dimensions configurable dependant on whether the monitor is landscape or portrait.

ssokolow commented 9 years ago

Definitely makes sense. I'll have to spend some time thinking on whether there's an even more general solution I should implement in the config file system once I get around to solving #13

Semmu commented 4 years ago

hey! im not sure whats the state of this project, but i just found it, started using it, and i have the same issue :sweat_smile: any update? i see there hasnt been much activity on this project lately :disappointed:

ssokolow commented 4 years ago

It is still on my TODO list. It's just that the bottom fell out of my schedule in the last few months (to the point where I have one hobby project that's flat-out non-functional that I didn't have time to fix) and I'm only now starting to claw things back into shape.

Once that's done and I've fixed said project in more urgent need of a fix, I plan to finish the in-progress port of QuickTile to Python 3.x and GTK+ 3.x and then, relying on the test suite I'm starting to build as part of that process, work on rearchitecting to clear out all the major flaws like this one.

(Porting to GTK+ 3.x is complicated by QuickTile relying heavily on the bits that changed the most between GTK+ 2.x and 3.x and on GDK APIs that PyGI has the most trouble providing bindings to in a convenient way.)

Semmu commented 4 years ago

well then good luck with your other project(s) and your life in general! dont forget to have fun while working on things like this :smile:

ssokolow commented 4 years ago

In case you're interested in trying it out, the GTK 3 port that I'll be working toward a fix for this on is available in the gtk3_port branch now.

I still need to fix regressions #107 and #108 before it'll be at parity with the GTK+ 2 version, but it's already got much cleaner internals and a growing suite of automated tests.

Just don't use the pip3 URL from its README. That'll point to the GTK+ 2.x version until the port gets merged into master.