Short answer: yes, you can do this. I have my (Fedora) desktop set up this way, each monitor is an independent display. It is the same 'desktop', in the X sense, but there are some limitations to typical desktop functionality with this setup versus the 'single desktop spread over two monitors' configuration. [For example, you can't drag a window from one monitor to the other, or even drag a file from a folder on one monitor and drop it in a folder displayed on the other monitor.]
Still, I prefer independent displays. For me it is natural to cycle workspaces on one monitor independently of the workspace displayed on the other monitor. I will warn you - some people are pretty zealous about which way is the 'correct way', so prepare to wade through a lot of noise and ranting if you research how to do what you want to do. I have had many people dismiss my efforts to achieve this setup because they felt it was pointless and "no sane person would want things to work that way".
As another user has pointed out, some desktop environments support independent displays and others do not. I was happily using Gnome as my desktop, for ten years or more, until the 3.0 series of Gnome (which lost the capability to support independent X displays on a single desktop ... and it appears that the Gnome development community do not have an interest in resurrecting this capability). Earlier versions of Cinnamon Desktop had this capability, but with Fedora 19 or 20 I can longer achieve it with Cinnamon. I am stuck with Xfce at the moment.
In order to achieve independent X displays, I had to carefully craft an xorg.conf file. For my hardware, using the proprietary nvidia driver, the key seems to be to identify multiple Devices using the same BusID, but to then use the 'metamodes' option for each Screen section to uniquely identify the port associated with each monitor in your setup.
Here is my xorg.conf:
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" RightOf "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Option "Xinerama" "0"
EndSection
Section "Files"
FontPath "/usr/share/fonts/default/Type1"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "DELL"
ModelName "P2411Hb"
HorizSync 28.0 - 33.0
VertRefresh 43.0 - 72.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "Quadro K2000M"
BusID "PCI:1:0:0"
Screen 0
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
Option "TwinView" "0"
Option "metamodes" "DFP-0: nvidia-auto-select +0+0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Monitor"
Identifier "Monitor1"
VendorName "DELL"
ModelName "P2411Hb"
HorizSync 28.0 - 33.0
VertRefresh 43.0 - 72.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "Quadro K2000M"
BusID "PCI:1:0:0"
Screen 1
EndSection
Section "Screen"
Identifier "Screen1"
Device "Device1"
Monitor "Monitor1"
Option "TwinView" "0"
Option "metamodes" "DFP-2: nvidia-auto-select +0+0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
Hopefully that gets you started. I have not found a gui tool in any Desktop Environment that reliably creates an xorg.conf supporting independent displays. My advice is to start with any 'X configuration generator' tool that comes with your chosen video driver (for example, nvidia's nvidia-xconfig
) and see if you can use my example, above, to guide your trial-and-error.
Best Answer
It is (somewhat) possible to emulate this "feature" (For me, the workspace behaviour of
i3
is one of the main features, so I do not really recommend to do this unless you really cannot work without workspaces spanning all monitors while still wanting to usei3
).You can bind multiple commands to shortcuts, so you just can switch workspaces on both monitors at once. For example:
This uses variables to keep the workspace and output names consistent. The workspace names for the left and right monitor need to be different. In this case I chose to use different numbers because they can be hidden, if so desired. Whith these settings Super+1 will switch to workspace
1:A
on the left monitor and11:A
on the right monitor.workspace_auto_back_and_forth
should be disabled to avoid possibly confusing and undesired behavior.Caveats:
[criteria] focus
) will only focus that workspace without the one on the other outputSome if not all of the caveats could probably be solved by utilizing the IPC interface, for example to automatically switch to the companion workspace, too.
Personally, I would suggest to at least adopt a hybrid approach: Use synchronized workspaces where you absolutely need them for your workflow, but use the default (for
i3
) single display approach anywhere else. Otherwise, if you absolutely need/want synchronized workspaces all the time, it might be thati3
is just not the window manager you are looking for.