-   Linux - Desktop (
-   -   Any good window managers that are geared towards multi monitors and having apps launch on proper one? (

Red Squirrel 08-10-2016 11:19 PM

Any good window managers that are geared towards multi monitors and having apps launch on proper one?
My biggest grippe, being in Windows or Linux, when it comes to multi monitor, is how programs refuse to open on the monitor it was launched from. They all do their own thing, some remember the last place they were, some are random, some do it properly, there's just no consistency. Then there's apps that launch dialogs, and dialogs end up all over the place. Code::blocks is notorious for this, no matter what you do, no matter what rules you set some dialogs will always go to the left most monitor. But it's all app dependent, which is unacceptable.

Is there a window manager that fully manages ALL programs so that they stay constrained to where they were launched from? The simplest way would be to simply check what monitor the cursor is on, and launch there. I know KDE has all sorts of rules for that, but lot of programs ignore them. Need something that FORCES it, no matter what.

I had tried i3, which is a very different type of window manager and would take some getting used to, basically it's tile based, but it also forced dialogs to stay within their own tile, so it sort of accomplished the same thing. Problem with that one was the graphics, when scrolling in Firefox, or doing anything else with graphics that move, it would not update at the same rate throughout the whole screen, you get like a "line" half way through. Though I was getting this too in the default window manager and there was a fix for it, I can't remember what. Something in xorg.conf if I recall.

I gave up multi monitor for single + two raspberry Pis for the side monitor, but this setup is not really working out that great either. Synergy constantly crashes so I have to SSH into the PIs to relaunch it, then half the time the browser on one of the PIs keeps shutting off on it's own... overall it's more hassle than it's worth. I want to relook at options to go with a normal multi monitor setup again, but I really want to find a way so dialogs don't end up all over the place.

Do I have any options for this? I can't be the only one that is annoyed by this window placement problem with multi monitor.

Ztcoracat 08-12-2016 06:58 PM


I can't be the only one that is annoyed by this window placement problem with multi monitor.
No your probably not the only one annoyed by this.
The problem is I don't know how to fix it. It's my hope that others here will.;)

I'd think that members that are running multiple monitors might know how to fix this and chime in.

I looked for a little over an hour online and I wasn't able to get a definitive answer on a window manager that has the functionality that your looking for.

I'm thinking that changing the display value might help or tweaking the configuration in the Xorg file might be the answer. I'm guessing here. Maybe tweaking the X session manager somehow will help?

For most programs you must change the DISPLAY environment variable when launching to have the program appear on another screen: (I don't know if that helps)

Xinerama is an X extension which enables multi-headed X applications and window managers to use two or more physical displays as one large virtual display. Maybe this is what your looking for?

I found Dual Monitor Tools not sure if that will be a help to you but I given your thread my best go.

One last idea; maybe write to the maintainer of your distribution for suggestions or write to a developer that designs window managers for Linux and see if they can help.

273 08-13-2016 05:05 AM

With my NVIDIA card I just set things up for "use seperate X sessions" or some such though that way windows can't be moved from the screen they were opened on.
Other graphics cards I'm not sure about.

Shadow_7 08-13-2016 06:58 PM

If you don't need acceleration, you can run xephyr windows on each screen. And different window managers in each or as raw X sessions on top of the current one (control+shift locks you into that xephyr session, or unlocks / toggle). Most *nix apps have a -display option to tell it where to go. There's wmctrl to move it after the fact. And xrandr with a --primary to kind of set a default monitor. The -geometry option is also a *nix standard on many things which has +#+# to tell it the +X+Y offsets. Although many things default to centered on the primary display, and not much to be done about that. Maybe wayland or mir addresses these behaviors, otherwise it is what it is. I just use wmctrl with the -r :SELECT: option to position and size the offending gui things. With -e 0,0,0,1280,720 for an equivalent of -geometry 1280x720+0+0 (-e 0,+x,+y,x,y), bear in mind that the +x and +y includes the window decoration so be sure to do that math if you're not putting it in the top left (0,0).

Ztcoracat 08-13-2016 07:19 PM


Originally Posted by 273 (Post 5590209)
With my NVIDIA card I just set things up for "use seperate X sessions" or some such though that way windows can't be moved from the screen they were opened on.
Other graphics cards I'm not sure about.

How do you set up seperate X sessions?

Red Squirrel 08-14-2016 12:06 AM

I remember experimenting with separate X sessions before, but things got really flaky, I think because it's trying to access the same config files at the same time (ex: user setting stuff and what not). Stuff like theme would get all messed up, and there was other limitations like you could not open more than one Firefox window because it would say it's already running. Is there a fix for these problems, because that would be my best bet, if I can just run 3 separate X sessions.

Shadow_7 08-14-2016 06:42 AM

Xephyr is like running X inside X. Although by default a windowmanager-less X session. But launch an xterm to it with -display and set the $DISPLAY variable and launch your app from the CLI and it's functional. Although you lose the hardware acceleration of graphics, so don't expect miracles. Xephyr is meant to test apps that need a particular screen size (like a cell phone). But you can use Xephyr and Xdmx to create a terminal session that stretches vertically across multiple Xephyr windows (see my singular blog on here).

With an 8x8 bitmap font you can literally have an 80 by 405 line xterm session on a 1920x1080 screen. Except that emacs crashes if you have more than 256 lines. And firefox crashes if you enable bitmap fonts. And... And... And...

273 08-14-2016 08:24 AM

Sadly the Firefox issue still presents though you can get around it by having different profiles open on each screen. The desktop settings are a little odd but XFCE seems to pretty much work most of the time with some messing about initially.
I'm not actually sure how separate X sessions is done nowadays because I've had it like that for a fair few years but I think it's by setting each screen to a different x screen number in nvidia-settings though it will need to be done as root since it has to write to xorg.conf to work.

Red Squirrel 08-15-2016 09:07 PM

I decided to try separate X sessions again to see how it goes, took a lot of fiddling around to get the screen order right but I managed to make the centre one the primary then the two side ones as two other separate X sessions.

But it STILL opens stuff on the wrong monitor, for example when I right click on one of the other desktops to choose "Run Command", the search box goes on the centre one! WHY? I would have thought that separate X sessions would completely separate everything to the point that this is not possible. However by adding the panels and widgets and getting a separate start menu, launching apps that way seems to work. So this MAY be usable, but the fact that some stuff can still launch on the wrong monitor does not instil a lot of confidence.

i3 tiling window manager seems to be the only thing that works where it will keep stuff within it's own zone, but I don't really want a tiling window manager.

Is there any other way to split up the 3 monitors so stuff launched from one will always stay on that one? The Synergy method with the Raspbery PIs seems to be the only way so far, it's just that it's so unstable. Synergy crashes all the time forcing me to have to restart it or SSH into the PIs to relaunch, the browser on the PI randomly shuts off all the time, etc... so it's a constant battle to keep everything going.

I'm even wondering if I could do something really exotic like have 3 VMs that are set to auto launch and use i3 to tile the VMs across the 3 monitors. But, that just feels so dirty.

Edit: Nevermind, it seems to really want to launch windows wherever the hell it wants. Even using the start menu on the 3rd monitor it ended up launching a console on the 1st. What a mess. I don't get why this is so hard. Launch freaking windows where they were launched from! Why can't they code it this way?

notKlaatu 08-15-2016 09:19 PM

On KDE, you can force apps to always launch on one screen or another, with window-specific overrides. There are many, many rules and conditions you can apply, so you can probably approximate what you want.

KDE tends to just do the right thing for me at work, but it's not really something I think about it (the "right" screen for me is ALWAYS the one I'm looking at, so 50%-50% chance).

Launch System Settings > Window Behaviour > Window Rules

Red Squirrel 08-15-2016 09:54 PM

I've used those settings in KDE and even made global rules, but there is still the odd app that won't listen and do it's own thing. Code::blocks for example is notorious for it, it will launch certain dialogs on the left most monitor no matter what, instead of the centre (primary) one. Another annoying one is the audio mixer, you right click on the task bar and the pull up menu ends up all the way on the left monitor instead of the one where the task bar is.

An ideal window manager would be one where you can create zones and it would make the application think that the zone is one monitor, but still allow to move the window to another zone. So almost like a tiling manager but still floating windows.

Ztcoracat 08-15-2016 10:57 PM

Did you try Xephyr like Shadow_7 suggested?

I few ideas but I could be wrong but trying to help you here.

Maybe finding out which monitor your os sees as the default and change that?
Select and put the monitors in the order in which you want them to perform and be recognized.
-::-You should be able to change the default in the BIOS.-::-

In Windows app's store the results of window placement in the registry.
If you can find where in Linux the window placement is kept/stored that may be the key to fixing the issue.
Adjusting and editing the Xorg file or X11 with an argument might be the answer. OR creating a configuration file to control the monitors?

Make sure that your main monitor is to the left and not to the right.
-If the two monitors are different resolutions make sure that they both align at the top.

Make monitors work separately:-

Does your distribution have a configuration tool to control more than one monitor?

If you have a nvidia card there is nvidia-settings GUI that helps. Like 273 said.

I'm out of ideas:-

Ztcoracat 08-15-2016 11:00 PM

Maybe consider Devilspie-

It's a non-gui utility that lets you make applications start in specified workplaces.

Ok now I'm out of ideas.:)

273 08-16-2016 12:58 AM

That's odd, I do only have two monitors but XFCE will always open an application on the monitor it is opened from. I can, with some applications, even specify the display in a shortcut or from the terminal (in the form DISPLAY=0.1) should I want to though I don't play with that much.
As mentioned the only real issue I have is Firefox will only allow one instance (oh, and now I recall Chrome and Chromium do also but they just open another window in the same screen as the original rather than an error). If I need to I can get around it but it's so rare I use a browser to actually browse in two windows that it's not a problem.
I keep meaning to try KDE again but last time I tried it it didn't even allow the second monitor to be used for menus never mind allow me to open applications on it.
I seem to recall MATE might have worked (either that or cinnamon) to some degree but looked like I'd need to spend time getting things configured so I stuck with XFCE.

I do share your frustration with multi-monitor though -- it really ought not to be that hard. It's also difficult to change settings and know they won't mess something up when you change back so unless one is prepared to chase down all the relevant files in home and make backups it's tough to experiment with also.

Shadow_7 08-16-2016 04:10 AM

If they are "unique" X sessions, they should have different $DISPLAY variable values. Otherwise you might need to set that value to match the X session.

$ export DISPLAY=:1
$ nice -n 10 firefox

This variable may not be set, or you are inheriting it from the primary display. If you're launching an X app from a tty console you also need to set the $DISPLAY value manually (or pass -display). Although it's better to set the $DISPLAY so the app inherits it. It could also be that various apps assume the DISPLAY=:0 in all cases, which is not a safe assumption.

$ startx -- :1

For example will start X with a $DISPLAY of :1.

$ echo $DISPLAY


All times are GMT -5. The time now is 08:08 AM.