LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Desktop (https://www.linuxquestions.org/questions/linux-desktop-74/)
-   -   Any good window managers that are geared towards multi monitors and having apps launch on proper one? (https://www.linuxquestions.org/questions/linux-desktop-74/any-good-window-managers-that-are-geared-towards-multi-monitors-and-having-apps-launch-on-proper-one-4175586790/)

IsaacKuo 09-12-2016 02:03 PM

Quote:

Originally Posted by Red Squirrel (Post 5604205)
VNC is super slow, maybe RDP could work, though I don't see how it would stop stuff from opening on wrong monitor, stuff would just cover the session. VNC, RDP etc is just a program like any other.

Interesting - I have found VNC faster than RDP, at least with how I've tweaked things. For me, though, there's a huge difference in speed between the server (an i5 Mac Mini) and the client (a 1.2Ghz Core Solo tablet PC). With VNC, the server just blasts along at top speed, and if that means full screen video skips 90% of the frames, so be it. With RDP, it grinds to slow motion whenever the required updates get too heavy.

But I was just responding to the technical problem of driving that many monitors, I wasn't thinking about the problem of controlling which thing opens on which monitor. Sorry about that.

Quote:

Is there a way to simply set some kind of boundary or something? Like an invisible line where programs don't know there is anything beyond that.
I don't know about a simple way to do that, but it's possible to basically do nested windows using VNC. Each VNC client window can be blown up to the full screen of one monitor. With XFCE4, you right click on the VNC windows and select "Full Screen" there. (I use xtightvncviewer; if I select "full screen" from its own F8 menu, it will actually span all monitors rather than just one.)

At that point, any programs opened up within a VNC client window are unaware of anything outside that client window. You can't drag any of the subwindows outside that VNC client window, but you CAN drag the entire client window to another monitor (or across monitors). Fundamentally, it's like having multiple X sessions but you still have the flexibility to move things from monitor to monitor if you really want.
Quote:

One thing I've noticed too is when stuff goes on the wrong monitor it's usually always on the 1st. I'm almost wondering if I need to set my primary as the first. It would mean having to move the mouse to the right through the 3rd monitor to wrap around and go to the other monitor though so it would not be as intuitive. I still want the primary to be in middle physically.
I'm not sure what defines "primary" monitor. I would have thought you could swap cables around, if necessary, to make any particular monitor connection the middle one.

If it's something weird to do with the virtual screen layout defining which monitor is "primary", then you could compromise by using synergy to define a custom layout. For example, your layout could be:

Code:

Physical = LEFT, CENTER, RIGHT

Virtual = CENTER, RIGHT, LEFT

.synergy.conf =

section: screens
  debos:
end

section: links
  debos:
      left = debos
      right = debos
end

This synergy config makes it so that your leftmost and rightmost edges wrap around to each other. When you move the mouse left/right, it basically does a wraparound loop.

Red Squirrel 09-12-2016 04:15 PM

So are you saying you have 3 separate VNC sessions and work within VNC on all 3, even primary? Isin't that like super slow? I've never found VNC to be all that great performance wise even on a LAN unless things changed in past few years, I admit it's been a while since I used it for anything. I suppose it's worth a try, and nice thing with that is the workstation essentially becomes a thin client.

I might also experiment with separate X sessions again, now that I'm on another distro it may work properly. If anything I could set the left monitor as separate X session and then leave a dual monitor setup. I could also do synergy with the left and one raspberry PI, but that was proving to be annoying since Synergy crashes all the time and has to be manually restarted at both ends.

IsaacKuo 09-12-2016 04:40 PM

I've never tried using VNC on localhost, but I'll bet doing it on localhost will beat the pants out of any LAN connection in terms of bandwidth and latency.

IsaacKuo 09-12-2016 04:52 PM

OTOH, I think the performance of the VNC server is slow if it's doing purely software rendering rather than using 3d accelerated hardware. My own use of VNC uses the server's GPU for fully accelerated rendering on the server side. So, it can zoom along as fast as a normal desktop setup; it's just that the updates to the client display will lag depending on how heavy the updates are. With a gigabit ethernet connection, full screen movies are out of the question (it's watchable, I guess, but very choppy). But for most other tasks, including full screen scrolling, it's fine.

I don't know how, or even if, it's possible to set up 3 completely independent VNC servers on a single computer that are all 3d accelerated.

Red Squirrel 09-12-2016 10:05 PM

Ok so to try an experiment to see if my hunch is right about keeping the primary monitor as 1st, I arranged them like this:

http://gal.redsquirrel.me/thumbs/lrg...2_22-52-12.png

Technically, the one at the bottom right should be on the left of the primary, but I'm hoping that by not having any monitor to the left, windows will stop trying to go to it. When a window goes to the wrong monitor it seems to always go to the left. Though, right as I was opening some of my stuff like mail client I had a window go to the right monitor... so I think I defeated my hunch before I even got setup. But I'll give it a bit of time, as windows have to "learn" over time and since I just changed stuff around maybe that's a one time thing. But anyway I'll see what happens.

Not keen on doing a VNC type setup, but I suppose I can try it. I may try the separate X session, but not too confident in that either after realizing that windows can STILL end up on the wrong one. I figured it was 100% impossible for that to happen because that a separate X session would basically be like a container, but apparently not.

I think one of these days I need to just dive into the code and figure out how to fix it. But I would not even know where to start with a premade distro, as everything is managed by package managers, I don't even think there IS source, and if there is, and you recompile, the next update will probably overwrite your changes. So if I do figure it out I'd almost need to do a LFS build and essentially make my own distro. I actually DO want to do LFS one of these days though, probably a good way to learn about the deeper operation of Linux at the kernel/system level.

Ztcoracat 09-12-2016 10:57 PM

Looking at the screenshot of the Nvidia X Server Settings Mgr it looks like you might be able to switch things around and maybe that will eventually give you the default monitor your hoping for.
What are your options in 'configuration' in the drop down menu where it says "x screen 0"?

As far as VNC here's a start if you want to try it.
http://www.techrepublic.com/blog/lin...-server-setup/

LFS will teach you what an os is made of. Once you build it you'll have more of an appreciation for what goes into an os. The documentation is exceptionally good. Good luck.
http://www.linuxfromscratch.org/lfs/read.html

You might want to try Arch Linux first before diving into LFS as it will help you get your feet wet.

Ztcoracat 09-12-2016 11:04 PM

Quote:

Originally Posted by IsaacKuo (Post 5604291)
OTOH, I think the performance of the VNC server is slow if it's doing purely software rendering rather than using 3d accelerated hardware. My own use of VNC uses the server's GPU for fully accelerated rendering on the server side. So, it can zoom along as fast as a normal desktop setup; it's just that the updates to the client display will lag depending on how heavy the updates are. With a gigabit ethernet connection, full screen movies are out of the question (it's watchable, I guess, but very choppy). But for most other tasks, including full screen scrolling, it's fine.

I don't know how, or even if, it's possible to set up 3 completely independent VNC servers on a single computer that are all 3d accelerated.

I'm (guessing) that you would run multiple instances of VNC Server and have multiuser user logins enabled? A server wizard I'm not:-
https://www.google.com/search?biw=14...k1.GnKI4Ir9of8

Red Squirrel 09-13-2016 12:49 AM

Quote:

Originally Posted by Ztcoracat (Post 5604409)
Looking at the screenshot of the Nvidia X Server Settings Mgr it looks like you might be able to switch things around and maybe that will eventually give you the default monitor your hoping for.
What are your options in 'configuration' in the drop down menu where it says "x screen 0"?

As far as VNC here's a start if you want to try it.
http://www.techrepublic.com/blog/lin...-server-setup/

LFS will teach you what an os is made of. Once you build it you'll have more of an appreciation for what goes into an os. The documentation is exceptionally good. Good luck.
http://www.linuxfromscratch.org/lfs/read.html

You might want to try Arch Linux first before diving into LFS as it will help you get your feet wet.

Oh it lets me pick whatever I want, and I have the centre one set as primary. The problem is, randomly, apps just open on the wrong monitor. I'd say it works 90% of the time, but it's that 10% that is extremely irritating. There is almost a sense of anxiety when I go to open a window or even a dialog because I don't know where it's going to end up. Some apps are worse than others. For example I was trying to use code::blocks and EVERY SINGLE TIME some dialogs end up on the wrong screen. you can't even train it to open on the right one, it just refuses. Basically I'm looking for a way to 100% guarantee that this can't happen regardless of the program.

The configuration button lets me set it up as clone span or separate X session. But as I saw when I tried it in Mint KDE, even with separate X stuff opens on the wrong monitor, and then you can't even move it back. Though I have not tried in Cinnamon yet, but I kinda lost my confidence in that option knowing that it may throw me a curveball in the future and decide to not work for some reason for a specific app etc.

273 09-13-2016 12:56 AM

I'm not at my desktop so can't check for certain but I think Ztcoracat is right and that the "primary" display can be set in NVIDIA settings so that could be the one on the right or the centre if you wanted. I know I can set my 16:10 screen, connected to HDMI, as primary for X11 even though BIOS and the like appear on the 4:3 monitor plugged into DVI and using it as VGA.
Edit: Sorry, didn't catch your post as I scrolled. Seems odd that it picks the left-most rather than the primary.

allend 09-18-2016 12:19 AM

My solution to this issue is:
1. Use xorg.conf to setup separate displays
2. Run separate X sessions
3. Use a window manager that respects those settings. I use Windowmaker, as neither KDE nor XFCE any longer respect Server Layout sections in xorg.conf.

The downside is that I cannot move windows from one display to the another, although I find that a small inconvenience compared to dealing with unpredictable window placement and menu bar problems.

Red Squirrel 09-26-2016 08:24 PM

BAh I thought I was doing good with the idea of moving the left monitor to logically be below the right one, to trick apps into thinking there is no monitor to the left (as most of the time they tend to want to open to left). But this was short lived. Just realized Virtuabox screws up, the menu does not open at all, it tries to go to the right but fails, nothing shows up. You need to drag the whole program then the menu sorta opens but it's all extended and crap. Libreoffice also screws up but it's not AS bad, tool tips end up on the right monitor despite the program being on the primary (centre).

I tried to do separate X, that is tedius as hell since it does not seem to let you drag the screens propery so they're in right order, but I quickly found out that STILL does not work, an app opened from one X session ends up opening in the other.

What a serious pain in the ass, why is this so hard? Why can't anyone design a multi monitor environment that actually work properly? Between Microsoft and all the brains at Linux, you'd think SOMEONE would figure it out.

I'm at a loss now, I just don't know what to do. I almost would need to just have 3 completely separate machines, but that would use a ridiculous amount of power and having 3 sets of keyboard/mice (KVMs are too slow) would take up too much room.

Now I'm in separate X mode right now after my failed attempt, and it won't let me go back to normal mode, when I apply, everything just goes black. I may have to reinstall again.

I'm almost thinking of doing some kind of thin client thing where I just have 3 separate VNC sessions into a VM, but that's going to be kind of slow for every day usage, but it seems to be the only way this would work. The main workstation would basically just open 3 vnc sessions, one on each monitor, and nothing would run locally. Though sound would be an issue, I have never actually witnessed sound working through vnc. I've seen the option for it, never seen it actually work.

Edit: Ok managed to go back in span mode, I had to use the "displays" config instead of nvidia settings. Now back to square one. Need to think up of another solution. I just can't work knowing that windows will end up anywhere, it's anxiety inducing at best. Nothing more infuriating than clicking on something and the dialog/window ends up all the way on another screen.

IsaacKuo 09-26-2016 09:24 PM

I wonder how much of these difficulties have to do with the nvidia driver. I have never used the proprietary nvidia driver except briefly once, and it drove me nuts. I have stuck with the open source nv driver for that one video card, and ati cards ever since. For the most part, I've switched to using used laptops that tend to have intel graphics.

By the way, I've switched from running the Mac Mini via vnc to a mini display port adapter that someone had to spare and was nice enough to give to me. Surprisingly, the native display did not feel like a significant speed boost compared to the vnc remote control over gigabit ethernet. It's certainly leagues better for anything like full screen video, but for web browsing and software dev work it's ... well, it's just less choppy during scrolling, really. It's much more of a subtle difference than I had expected.

I think you should go with three separate computers each with a simple single monitor attached, and use synergy to share the mouse and keyboard. Like I said, when the synergy client and server are "fresh", there is practically no lag. The version in Debian stable seems to require me to occasionally recycle the client and/or server to make them "fresh" again, but that's no big deal. I just set up taskbar icons to restart the synergy client or server. Three clicks on the three taskbar icons and I'm back up to speed.

Going with a single monitor per computer, you'll be able to use on board video instead of the perhaps troublesome nvidia card and driver.

Ztcoracat 09-26-2016 09:32 PM

Quote:

Between Microsoft and all the brains at Linux, you'd think SOMEONE would figure it out.
I think until a developer or a team of developers and pc engineers find this enough of an intrest it will remain what it is.

Quote:

Why can't anyone design a multi monitor environment that actually work properly?
Probably because it's A) not seen as a top priority and B) no one is offering an engineer or developer to work on it. (I'm guessing)

Have you tried what 273 and allend have mentioned?

-::-Maybe doing some extensive research Red Squirrel will help you to gain knowledge and insight into multi-monitoring and how to nip it in the bud.-::-

I did research on how to install a new kernel & how to re- compile a existing kernel for 4 weeks.
At the end of the 4 weeks I not only had enough knowledge to do it but I was able to think of ways to manipulate things in ways that were not mentioned in the articles I researched.

Once you know for certain exactly the way that the monitors perform with the information that they have been given and perform it the way that they do, you could than begin to figure out how to get around what they do (by default) and manipulate the very thing that is giving you grief.

Ztcoracat 09-26-2016 09:37 PM

Quote:

I wonder how much of these difficulties have to do with the nvidia driver.
IF in fact it is the nVidia driver creating upheaval would compiling a driver from src solve the issue?

Proprietary drivers are buggy! Like you they drove me NUTS and were exceptionally a PITA.:)

273 09-27-2016 12:53 AM

Quote:

Originally Posted by Ztcoracat (Post 5610407)
I think until a developer or a team of developers and pc engineers find this enough of an intrest it will remain what it is.

What I think it odd is that all the developers where I used to work were the ones with at least two large monitors while some others in the IT department had to make do with one. I find it very weird that there aren't enough DE developers out there with two monitors and even NVIDIA graphics that no developer has ever had this issue. Heck, I seem to recall somewhere that KDE stopped multi-monitor support completely for a short while when the version changed -- do Linux developers really only run open-source drivers and/or single monitor setups? If so then I wonder why as one would hope that skilled developers can afford more than one monitor and a card to drive them.

By the way after a lot of googling around this issue I don't think that this just applies to NVIDIA setups and certainly not just to separate X sessions. While that is a special case multi-monitor issues as described by Red Squirrel just don't seem to be of any concern to anyone. The separate X session thing is just the nearest I can get to something sane but even that doesn't always work.

With any luck Wayland will resolve some of this, if it ever surfaces.

Edit: I've not had issue with VirtualBox and, indeed, one alternative I thought of was to have VB open in one monitor with a VM full-screen so I know applications will be trapped in it for situations where that is desirable -- sadly it means no hardware graphics acceleration though.
I've been considering going to three monitors, temporarily at least, so maybe I'll have issues then.


All times are GMT -5. The time now is 10:49 PM.