Split monitor in two
It seems compiz has support for this. Under "General Options" in CompizConfig, on the "Display Settings" tab, it is possible to manually specify the "monitors" to use for maximizing windows. There is an issue with Adobe Flash and fullscreen, but overall it works quite well.
Since my graphics card merges three monitors into a single large one, this is very useful
Step by step instructions:
- Open a terminal by pressing Ctrl+Alt+T.
- Enter
sudo apt-get install compizconfig-settings-manager
and press enter. Fill out your password when requested. No asterisks will be displayed when entering the password. - When the installation is done, launch the application "CompizConfig Settings Manager".
- Click "General Options" under the section "General".
- Select the tab "Display Settings".
- Uncheck "Detect Outputs".
- Edit the list of outputs as desired. Each line is one monitor. The syntax is
WIDTHxHEIGHT+X+Y
. - See if works right away. You might need to log in and log out again.
Sample configuration for three classic 19-inch monitors in a horizontal row:
1280x1024+0+0
1280x1024+1280+0
1280x1024+2560+0
The accepted answer did not work for me. What has worked though was adding virtual monitors in XRandR 1.5.
To split the monitor do the following:
Enter
xrandr
into the terminal to check the output name and current resolution of the display you want to split.
On my system the result was:Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767 HDMI1 disconnected (normal left inverted right x axis y axis) HDMI2 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 509mm x 286mm 1920x1080 60.00*+ 50.00 59.94 1920x1080i 60.00 50.00 59.94 1600x900 60.00 1280x1024 75.02 60.02 1152x864 75.00 1280x720 60.00 50.00 59.94 1024x768 75.08 60.00 800x600 75.00 60.32 720x576 50.00 720x576i 50.00 720x480 60.00 59.94 720x480i 60.00 59.94 640x480 75.00 60.00 59.94 720x400 70.08 VGA1 disconnected (normal left inverted right x axis y axis) VIRTUAL1 disconnected (normal left inverted right x axis y axis)
We can see that my monitor is connected to HDMI2 and the resolution is set to 1920x1080.
Add 2 virtual monitors with the
xrandr --setmonitor
command ensuring that they overlap with your physical display and are placed next to each other. The syntax of the command is (without quotes):xrandr --setmonitor "monitor_name" "width_px"/"width_mm"x"height_px"/"height_mm"+"x_offset_px"+"y_offset_px" "output_name"
For my system it was:
xrandr --setmonitor HDMI2~1 960/254x1080/286+0+0 HDMI2 xrandr --setmonitor HDMI2~2 960/255x1080/286+960+0 none
While the above has already configured the virtual monitors on my system the changes haven't been applied until I have executed (it seems to refresh xrandr):
xrandr --fb 1921x1080 xrandr --fb 1920x1080
To persist the changes after reboot you would want to execute these commands when you login. You can do so by appending the commands at the end of your ~/.profile
file.
This is fundamentally impossible in X11 architecture unless you rewrite the video drivers. I know this from bitter experience.
The only way you could do is by running multiple windowed virtual desktops (ie vnc or xnest/xephyr) in borderless windows. You'll then lose all graphics acceleration.