solarlune / grout Goto Github PK
View Code? Open in Web Editor NEWGrout is a manual window tiling script for Linux.
License: MIT License
Grout is a manual window tiling script for Linux.
License: MIT License
Grout will attempt to use the full space on the screen when tiling, even if part of it is occupied by something that doesn't allow windows to intersect with it (think a 1920x1080 screen that has a panel that doesn't hide at the top).
Not sure if there's anything that really can be done for this; maybe I can check the position of the window after moving to see if it was moved to the target position successfully? If not, then we know there's "unavailable space" somewhere on the desktop and can adjust the window's size to compensate.
Alternatively, we can define a "working area" where tiling is inset by that amount, though that's more work for the user. Ideally, this should be automatic.
Hi author,
Thanks for sharing this program.
I'm using Grout in an XFCE system, and depending on the theme in use the Grout does not position the window correctly and it returns:
$ grout 1
windowmove: unrecognized option '-1.0'
Usage: windowmove [options] [window=%1] x y
--sync - only exit once the window has moved
--relative - make movements relative to the current window position
If you use literal 'x' or 'y' for the x coordinates, then the current
coordinate will be used. This is useful for moving the window along
only one axis.
For instance, this happens with custom theme Chicago95. The problem seems not to occur with default/built in themes.
I'll try to take the time to take a better look at this and try to fix it. In the meantime I'm reporting here, you or someone else maybe has an prompt idea on what is happening.
Regards,
Raul.
When there's an inactive monitor (e.g. laptop with a closed laptop lid), xrandr doesn't return a resolution, and thus fails to parse correctly:
Traceback (most recent call last):
File "./grout", line 211, in <module>
space = Space()
File "./grout", line 21, in __init__
self.identifyScreens()
File "./grout", line 40, in identifyScreens
newScreen = Screen(int(sizeAndPos[1]), int(sizeAndPos[2]), int(size[0]), int(size[1]), primary)
IndexError: list index out of range
Works when monitor is active, e.g.:
DisplayPort-1 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 597mm x 336mm
Fails when monitor is inactive (no resolution returned), e.g.:
eDP connected (normal left inverted right x axis y axis)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.