A first computing environment - FCE - comprising: a processor; and a memory communicatively coupled to the processor and including instructions executable by the processor, the instructions comprising an auxiliary channel module configured to establish an auxiliary channel between the FCE and a second computing environment - SCE, the auxiliary channel different from a main channel connection between the FCE and the SCE, and configured to negotiate virtual input device display preferences with the SCE, wherein negotiating a virtual input device preference with the SCE over the auxiliary channel comprises: obtaining from at least one of the FCE and the SCE a priority order for use of a FCE-side virtual input device, a SCE-side virtual input device, and a SCE-side physical input device; determining which of the FCE-side virtual input device and the SCE-side virtual input device is supported, and determining if the SCE-side physical input device exist; if the SCE-side physical input device is the highest-priority existing device, assigning no device as the preferred virtual input device; and otherwise, assigning the highest-priority supported device as the preferred virtual input device, and a monitor module to detect a selection, by the SCE over the main channel, of an input element of an application executing on the FCE and displayed in an interactive window of the SCE, and in response automatically cause a virtual input device, in accordance with the display preferences, to be displayed at the SCE. a processor; and a memory communicatively coupled to the processor and including instructions executable by the processor, the instructions comprising an auxiliary channel module configured to establish an auxiliary channel between the FCE and a second computing environment - SCE, the auxiliary channel different from a main channel connection between the FCE and the SCE, and configured to negotiate virtual input device display preferences with the SCE, wherein negotiating a virtual input device preference with the SCE over the auxiliary channel comprises: obtaining from at least one of the FCE and the SCE a priority order for use of a FCE-side virtual input device, a SCE-side virtual input device, and a SCE-side physical input device; determining which of the FCE-side virtual input device and the SCE-side virtual input device is supported, and determining if the SCE-side physical input device exist; if the SCE-side physical input device is the highest-priority existing device, assigning no device as the preferred virtual input device; and obtaining from at least one of the FCE and the SCE a priority order for use of a FCE-side virtual input device, a SCE-side virtual input device, and a SCE-side physical input device; determining which of the FCE-side virtual input device and the SCE-side virtual input device is supported, and determining if the SCE-side physical input device exist; if the SCE-side physical input device is the highest-priority existing device, assigning no device as the preferred virtual input device; and otherwise, assigning the highest-priority supported device as the preferred virtual input device, and a monitor module to detect a selection, by the SCE over the main channel, of an input element of an application executing on the FCE and displayed in an interactive window of the SCE, and in response automatically cause a virtual input device, in accordance with the display preferences, to be displayed at the SCE.