r/linux•
borscht

window manager that can mock dual monitor setup in single monitor?

I want to buy a monitor that can support a 2560x1440 resolution and then digitally partition it into two 1280x1440 screens where I can maximize and move windows between just as if they were two separate monitors. Is there any window manager that can do this? I'd also like to retain a menu bar where I can minimize windows to if need be. I've briefly looked over different tiling and stacking window managers but I haven't been able to figure out whether they can actually do what I want.

EDIT: basically I'm looking for a WM that tiles windows into two vertical columns when they are maximized but other floats them when they aren't.

Posted Apr 29, 2014, 1:50 AM UTC · edited

520
GNUgamer•

You can just tile two maximized windows together, this works in most window managers already.

3
borschtOP•

Would they become un-tiled if I un-maximized them?

1
GNUgamer•

Yes, unless you used a tiling WM like say i3.

2
borschtOP•

Can you suggest any floating WM's that natively offer tiling support for maximized windows? I'm currently on Openbox and it doesn't seem to have any kind of tiling support, unless I install a 3rd party tool like pytyle.

1
[deleted]•

In Gnome3 and other Wm you can super+arrow to maximize the windows to take up the left or right half of the screen.

There are a lot of other hotkeys too.

2
borschtOP•

Isn't Gnome3 a desktop environment though? Is it also a WM? Or does it use another WM?

1
danielkza•

GNOME 3 is the desktop environment, with GNOME Shell being it's default shell (duh), containing the Mutter WM internally.

2
[deleted]•

Sure technically. I wasn't being precise.

1
pastylurker•

I agree -- Gnome3 does a very nice job of what OP is trying to do. They added some subtle animation to the implementation in Gnome 3.12 that makes it look great too.

1
splatking•

Window Maker does exactly this with its various maximize options.

2
r0ck0•

Sounds like you want a tiling window manager. It should give you what you're after, plus much more.

Take look at the intro video for i3:

https://www.youtube.com/watch?v=Wx0eNaGzAZU

He mentions later in the video at 3:50 that certain appropriate windows like GIMP's toolbars will automatically start as floating windows. I don't have much experience with it yet, but with most tiling WMs you can customize how a window will look based on its title.

i3 is know as a "manual" window manager, because you can change things easily as you go using hotkeys. Some others are considered "automatic", where you basically script where & how everything should be displayed based on window titles. A manual one like i3 is probably a good place to start to get a feel for how you like things.

YouTube videos are a great way to get a feel for what these WMs do. This might be of help too once you get a basic understanding: https://wiki.archlinux.org/index.php/Comparison_of_Tiling_Window_Managers

Also when you get the big monitor, you might find that occasionally there are things you want to fill the whole screen. Things that come to mind are games, programming IDE with many sub-panes, browsing through large SQL tables and managing photos.

I'd love a 2560x1440 monitor for the dual column ability you mentioned. Although with 4k screens starting to come out, I'm considering waiting for one of them to get 3x 1280 columns. But on a desk, the corners being far from my face might be a problem. Currently I have 4 screens that I've set to curve around so they all aim directly towards me.

2
borschtOP•

Thanks for the links and recommendations. Given everyone's suggestions and my own research I think I need to give i3 and Awesome and Openbox with Pytyle a try, one or multiple of those is bound to do what I want them to do.

I'd love a 2560x1440 monitor for the dual column ability you mentioned.

Splitting a 2560x1440 monitor into dual columns gives you 1280x1440 screens which have a 8:9 width to height ratio, so almost square but slightly more vertical, which is PERFECT for coding and web browsing! Ever since I've had the idea I've been in love with it. Splitting a 4k monitor into 3 columns would give you 1280x2160 screens, which have a 16:27 ratio, which is a bit crazy for my tastes, but you'll never have to use your scroll wheel ever again! Or you can split it up into 3 columns and 2 rows to get six 1280x1080 screens. Oh good god.

1
r0ck0•

Yeah I'd probably do the 3 x 2 thing mostly. But would also be rad for fullscreen photo editing in Lightroom, or IDE windows.

Apparently most video cards aren't powerful enough yet to drive them properly, so might wait a while.

1
Matt__D•

(edit: forgot to quote my code blocks, fixed) (edit2: maybe a screenshot helps: http://imgur.com/Li5Se0X)

There certainly is so long as you aren't using xrandr to initalize your display. Use SpectrWM. If you are using Arch linux you can get it from the AUR.

I have a Seiki 4k display, and for a while I was using SpectrWM's regions configuration to create 4 1920x1080 "screen" regions within the ample native resolution of 3840x2160. Then I decided I wanted two 1920x1080 regions, stacked, and vertically split the remaining 1920x2160 space into two 960x2160 spaces. The point is, it is flexible. You can set a policy to float windows by default (rather than tile them) or write specific rules using the window name and class values you get from the xprop command.

Here are example lines for your $HOME/.spectrwm.conf file that effect a 4-way 1080p split:

# region = screen[1]:1920x1080+0+0
# region = screen[1]:1920x1080+1920+0
# region = screen[1]:1920x1080+0+1080
# region = screen[1]:1920x1080+1920+1080

Here is how you set an individual rule for a set of windows:

#
# Window quirks settings
# quirk[<WM_CLASS_2>:<WM_CLASS_1>] = <OPTION1> + <OPTION2> + ...
#   FLOAT : not tiled
#   TRANSSZ : Set size per dialog_ratio
#   ANYWHERE : Window sets its own position
#   FULLSCREEN : No border, allow full screen
#   NOFOCUSONMAP : Don't automatically set focus
#   FOCUSONMAP_SINGLE : Only set focus if it is the only window
#   OBEYAPPFOCUSREQ : Set focus automatically if app requests focus
#
quirk[Xfce4-panel:xfce4-panel] = FLOAT + ANYWHERE + NOFOCUSONMAP + FULLSCREEN
quirk[hl2_linux:hl2_linux] = FLOAT + ANYWHERE + FULLSCREEN

Since I use the tiling mode you don't see a global float rule - if you needed one it would be this:

quirk[*:*] = FLOAT + ANYWHERE

Note that SpectrWM doesn't give you window title bars and max/min/close buttons. I use the keybindings anyway, which I've remapped to suit my personal preferences (I've actually remapped ALL the keybindings...):

# Float/unfloat the current focused window, minimize, restore, maximize, 
#  un-maximize, and toggle overlap on floating windows
bind[float_toggle] = MOD+f
bind[iconify] = MOD+period
bind[uniconify] = MOD+Shift+period
bind[maximize_toggle] = MOD+x
# bind[always_raise] = 

Finally, if you don't turn off the default bar display, you'll get a bar (like a task bar) for every region. I use a few XFCE4 panels, personally, so I don't use the bar and I can place those anywhere using the quirk rules above.

#
# Status bar settings - currently disabled
#
bar_enabled = 0
# bar_border_width = 5
# bar_border[1] = rgb:00/00/00
# bar_action = ~/bin/bar.sh

Hope this helps!

2
NruJaC•

XMonad can quite literally do this. You can set up a layout that establishes two screens within your one physical screen and then treat them like two separate monitors.

That said, what you're looking for is more likely proper tiling behavior. I highly recommend you check XMonad out.

2
Muffinviking•

where I can maximize and move windows between just as if they were two separate monitors

But you would have the same amount of pixels. Think about it.

1
borschtOP•

I know partitioning my screen doesn't change the amount of work space I have, but I want to partition for organizational purposes.

1
Houndie•

Sounds like you want a tiling window manager, like xmonad or awesome?

Or you can do what that clever user below suggested and just snap to the edges.

3
borschtOP•

I updated my post. I realized specifically what I want: I want a WM that tiles maximized windows but floats un-maximized windows. It should also be able to minimize windows to a menu bar.

EDIT: I've read that tiling WM's don't allow you to minimize windows?

1
lykwydchykyn•

Don't know about others, but AwesomeWM allows you to minimize windows. You can toggle windows between float and tile mode as well.

2