[lug] Window Tiling Tools for Display Management

Maxwell Spangler lists at maxwellspangler.com
Thu Jan 9 16:55:34 MST 2020


On Thu, 2020-01-09 at 08:28 -0700, Davide Del Vento wrote:
> Thanks for sharing, this is great to know and I may give it a try at
> home.
> 
> FWIW, at work they switched my workstation from Linux to MacOS and I
> was appalled by how "poor" (*) it is.
> 
> One pet peeve of mine (for both Linux and MacOS) is that it "forgets"
> my windows placements when I either shut down the machine or change
> monitors. I want it to remember not only "what was I running" (both
> Linux and MacOS do OK, they could do better but it's acceptable), but
> both forget where each window were, so out of 3 monitor and 4 or 6
> virtual desktops (for a total of 12 or 18 possible things) at each
> reboot everything appears on the first monitor of the first virtual
> desktop. And after each meeting in which I brought the laptop
> (without rebooting) the virtual desktop location of the apps is
> preserved, but the monitor it's not, so everything remains on the
> laptop screen despite the external monitors are reattached. PITA.
> 
> Does gTile automatically improve this? I get that it manually
> improves it because I can do what you describe, but I do not want to
> cycle among my several terminal windows, multiple browsers, VMs and
> everything else: I want them to just go where they were before
> immediately and automatically.

I think you should keep looking for MacOS solutions to this: I get the
feeling that the Mac power users have solutions but don't talk about
them like Linux users do.  Different cultures, but similar needs.
My position script on Linux for X11 was an attempt to do this.  If your
windows have static names like "Evolution" for a single email window,
you could undock a laptop, unsuspend on any new monitor configuration
and then run this script and it would reposition the windows where you
want them, statically.
It didn't 'remember' where you last left them, but if you liked things
in consistent places it worked well.  I recently found I could also
toggle window attributes to do things like show keepassx and Slack on
all virtual desktops, not just wherever they were last used. That was
cool.

I had Gnome 3 setup so I could tap the SUPER key, type the word 'work',
press ENTER and it would run the script, auto figure out what display
config I was using and apply per-display-config rules to reposition
windows.  Was very happy with it but trying to move away from it in an
effort to work in a more modern fashion.
The problem with this:
* If two windows have the same title: an email client named Evolution
and a vim shell session editing something named evolution, it might
place no windows or the wrong window.  Using a title to identify
windows was not a perfect solution, but mostly worked.
* Since my shell sessions were all ad-hoc and many just sitting locally
waiting for me to do something, I couldn't identify them and reposition
them, so there was always manual mouse positioning when returning to
the home office, etc.
What I need is a way to launch windows and tag them with an id that
would not change, even if the title changes.  Then I could use a
utility to name a specific window it like 'coding-git-ssh-1' and put it
where I want at any time.
The second problem is that on Linux, the switch to Wayland from X11 is
positive overall but lacking in a lot of key features that X11 has had
in the past.  So the 'wmctrl' utility this position script uses does
not work any longer.  'xdotool' another tool do take actions on windows
is gone as well.


> Cheers,
> Davide
> 
> (*): I do not intend to start a flame, I just expected MacOS GUI to
> be unarguably better than Linux instead it's not
> 
> On Thu, Jan 9, 2020 at 1:02 AM Maxwell Spangler <
> lists at maxwellspangler.com> wrote:
> > Hello everyone,
> > 
> > I just found a pretty cool Gnome shell extension and I thought I'd
> > share (and endorse) for those few people actually using Linux on
> > workstations instead of a MacOS or Windows.
> > 
> > gTile is a Gnome 3.x shell extension for positioning, sizing and
> > tiling of windows.  It's similar to / inspired by things like divvy
> > for MacOS and Windows.
> > 
> > Here's the short summary of what I can do after customizing it for
> > my very precise needs:
> > 
> > 1. Launch an application, say gnome-terminal.
> > 2. Put window focus on that app
> > 3. Hold keys CTRL + SUPER plus one of the keypad number keys like 7
> > (top left on the key pad)
> > 
> > gTile will resize and reposition that focused window to an initial
> > size and position of my choosing.   Tap 7 again and it'll cycle
> > through a variety of sizes.
> > 
> > Example: Make this window small and position it in the top left.
> > Now make it bigger.  Now make it wide.  Now make it TALL. Good,
> > leave it like that.  Now move to another window, CTRL + SUPER + 9
> > and it's in the top right.
> > 
> > For the last six or seven years I've had some custom scripts that
> > would launch launch gnome-terminals in specific places or
> > reposition windows to specific locations.  But these require X11
> > graphics and as distributions switch to Wayland, key features to
> > reposition and size-set windows are unavailable.
> > 
> > I'm really surprised that this type of thing -- tiling --
> > regardless of OS isn't a topic discussed more.  As a power user
> > with 30-50 terminal windows open (across multiple desktops) on a
> > regular basis, I need these kinds of tools to organize my display
> > and I don't want to manually do it with a mouse all the time.
> > 
> > I've only been experimenting with gTile for about 2 days, but so
> > far I'm really liking it. 
> > 
> > Pros:
> > 
> > * Fairly good customization support. It's exceeded my expectations
> > so far.
> > * Easy to install and experiment with without any real effort.
> > * Works with X11 or Wayland display systems
> > * Has a bunch of other features like automatic tiling
> > * Even lets you reposition windows using vi cursor keys (h, j, k,
> > l). This was a nice surprise. Clever.
> > 
> > Cons:
> > 
> > * Customization is manual, tricky and takes time and
> > experimentation. Initial use is very user friendly but a custom
> > config makes it a power user tool.
> > * Documentation is not clear enough -- took me a little bit to
> > figure out what features the docs were describing.
> > * Linux is never perfect. I found some problems with gnome-terminal 
> > that prevent it gTile from doing exactly what I want, but found
> > ways to work around it using roxterm as an alternative terminal
> > emulator.
> > * Not sure how I'm supposed to access keypad specific features when
> > I'm on a laptop with no keypad.
> > 
> > Anyway: Wondering if anyone else is using this, or i3 or divvy for
> > similar purposes?
> > 
> > Cheers,
> > 
> > -- 
> > Maxwell Spangler
> > 
> > ===================================================================
> > Denver, Colorado, USA
> > 
> > maxwellspangler.com
> > _______________________________________________
> > 
> > Web Page:  http://lug.boulder.co.us
> > 
> > Mailing List: http://lists.lug.boulder.co.us/mailman/listinfo/lug
> > 
> > Join us on IRC: irc.hackingsociety.org port=6667
> > channel=#hackingsociety
> 
> _______________________________________________Web Page:  
> http://lug.boulder.co.us
> Mailing List: http://lists.lug.boulder.co.us/mailman/listinfo/lug
> Join us on IRC: irc.hackingsociety.org port=6667
> channel=#hackingsociety
-- 
Maxwell Spangler

===================================================================
Denver, Colorado, USA

maxwellspangler.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lug.boulder.co.us/pipermail/lug/attachments/20200109/5ba74209/attachment.html>


More information about the LUG mailing list