Введение

Пользовательские интерфейсы описывают способы расширения виртуального пространства рабочего стола компьютера, в частности, графический пользовательский интерфейс в операционных системах.

В вычислительной технике виртуальный рабочий стол – это термин, используемый в отношении пользовательских интерфейсов, как правило, в рамках парадигмы WIMP, для описания способов расширения виртуального пространства среды рабочего стола компьютера за пределы физических границ области отображения экрана посредством программного обеспечения. Это компенсирует ограничения площади рабочего стола и помогает уменьшить беспорядок от запущенных графических приложений. Существует два основных подхода к расширению виртуальной области экрана. Сменяемые виртуальные рабочие столы позволяют пользователю создавать виртуальные копии области просмотра рабочего стола и переключаться между ними, при этом открытые окна остаются на отдельных виртуальных рабочих столах. Другой подход заключается в увеличении размера единого виртуального экрана за пределы размера физического устройства отображения. Как правило, для навигации по увеличенному виртуальному рабочему столу используется прокрутка или панорамирование части виртуального рабочего стола в видимую область.

Переключение рабочего стола

Сменные рабочие столы были разработаны и реализованы в Xerox PARC как "Rooms" Остином Хендерсоном и Стюартом Кардом в 1986 году и (не зная об этом до публикации) концептуально напоминали более раннюю работу Патрика Питера Чана, выполненную в 1984 году. Эта работа была запатентована в США. Томом ЛаСтрейнджем сменные рабочие столы были представлены более широкой аудитории в swm (Solbourne Window Manager для X Window System) в 1989 году. ("Виртуальный рабочий стол" изначально был товарным знаком Solbourne Computer.) Вместо простого размещения окон работающих приложений в координатах x, y на дисплее компьютера, они размещаются в координатах x, y на конкретном виртуальном рабочем столе – в определенном "контексте". Они становятся доступны пользователю только при активации этого контекста. Переключающийся рабочий стол предоставляет пользователю средство переключения между "контекстами", или страницами экранного пространства, только одна из которых может быть отображена на дисплее компьютера в данный момент времени. Несколько оконных менеджеров X поддерживают переключающиеся рабочие столы.

Сверхразмерные настольные компьютеры

Другие виды виртуальных рабочих сред не предлагают дискретных виртуальных экранов, но вместо этого позволяют перемещаться по рабочему столу, размер которого превышает возможности отображения доступного оборудования. Эта функция иногда называется панорамированием, прокруткой рабочего стола или областью просмотра. Например, если максимальное разрешение графической карты выше, чем разрешение дисплея монитора, виртуальный менеджер рабочего стола может разрешить размещать окна "за пределами" видимой области экрана. Пользователь затем может прокрутить их, переместив указатель мыши к краю дисплея. Видимая часть увеличенного виртуального экрана называется областью просмотра.

Реализация

Менеджеры виртуальных рабочих столов доступны для большинства операционных систем с графическим пользовательским интерфейсом и предлагают различные функции, такие как установка разных обоев для каждого виртуального рабочего стола и использование горячих клавиш или других удобных способов для переключения между виртуальными экранами.

Амига

Первой платформой, реализовавшей поддержку нескольких настольных дисплеев как аппаратную функцию, была Amiga 1000, выпущенная в 1985 году. Все компьютеры Amiga поддерживали одновременное отображение нескольких экранов в памяти с помощью графического сопроцессора, также известного как "Copper". Copper представлял собой простой процессор, способный ожидать определенной позиции на экране и записывать данные в аппаратные регистры. Используя графический интерфейс, реализованный в системных ROM API, программы могли прозрачно отображать несколько независимых экранов из несмежных областей памяти, не перемещая саму память. Эта аппаратная прокрутка не использует блиттинг, а скорее напоминает аппаратный панораминг. Видеовыход просто получает указание (однократно или многократно) о том, где отображать (строка развертки) и из какого адреса памяти экрана. Экран может быть перемещен в любую позицию или отображать любую его часть путем изменения позиции ожидания или выборки. Обычно это однобайтовое значение. Для корректной работы Copperlist необходимо было сортировать по вертикальной и горизонтальной позициям ожидания. Примечание: см. http://www.faqs.org/faqs/amiga/books/ для списка справочных материалов. Каждый рабочий стол или "экран" мог иметь свою собственную глубину цвета (количество доступных цветов) и разрешение, включая использование строчной развертки. Чипсет дисплея ("видеокарта" на ПК) мог переключаться между этими режимами рабочего стола "на лету" и во время отрисовки одного экрана, обычно с линией толщиной в три пикселя между каждым отображаемым рабочим столом. Однако, если один рабочий стол отображался в режиме строчной развертки (мерцал), все рабочие столы на экране подвергались аналогичному эффекту. Это также позволяло операционной системе бесшовно смешивать приложения в стиле "полного экрана" и "оконного" режима в единой среде. Некоторые программы, например VWorlds (астрономический симулятор), использовали функцию нескольких рабочих столов для наложения набора элементов управления на основной экран. Затем эти элементы управления можно было перетаскивать вверх и вниз, чтобы показать больше или меньше основного изображения.

Unix и Unix-подобные с X11 или Wayland

Почти все Unix и Unix-подобные системы используют либо X Window System, либо протокол Wayland для обеспечения своей оконной среды, причем последний становится все более распространенным на системах на основе Linux с начала 2020-х годов. Эти системы уникальны тем, что оформление, размещение и управление окнами выполняются отдельной, заменяемой программой, известной как менеджер окон в первом случае или композитор во втором. Это разделение позволило сторонним разработчикам внедрить множество различных функций менеджеров окон, что привело к ранней разработке возможностей виртуальных рабочих столов в X. Первая реализация виртуальных рабочих столов для Unix была vtwm в 1990 году. Panorama от IXI Limited был ранним примером коммерческого продукта виртуального рабочего стола для Unix. Многие современные менеджеры окон X Window System и композиторы Wayland теперь включают в себя возможности виртуальных рабочих столов. Конфигурации варьируются от всего двух виртуальных рабочих столов до нескольких сотен. Наиболее популярные среды рабочего стола, GNOME и KDE, используют несколько виртуальных рабочих столов, называемых рабочими пространствами. Они могут существовать в фиксированном количестве или создаваться динамически по мере заполнения. Некоторые менеджеры окон, такие как FVWM, предлагают отдельные "столы", позволяющие пользователю еще более эффективно организовывать приложения. Например, пользователь может иметь отдельные столы с надписями "Работа" и "Дом", с одними и теми же программами, запущенными на обоих столах, но выполняющими разные функции. Некоторые менеджеры окон, такие как dwm и Sawfish, поддерживают "тегирование" (или правила окон для KDE), позволяющее настраивать приложения так, чтобы они всегда запускались на определенном рабочем столе, экране и в определенной позиции, обеспечивая автоматическую организацию и последовательную навигацию.

OS/2

Персональная операционная система IBM OS/2 включала несколько рабочих столов (до 4 нативно) в выпуске OS/2 Warp 4 в 1996 году. Эта функциональность также реализована в проекте XWorkplace с открытым исходным кодом, поддерживающем до 100 виртуальных рабочих столов. XWorkplace входит в состав дистрибутива ArcaOS операционной системы OS/2.

Окна

Windows 10 и 11 предлагают виртуальные рабочие столы через систему, известную как "Task View". До Windows 10 Microsoft Windows не поддерживала виртуальные рабочие столы в удобной для пользователя форме. В архитектуре Windows существуют объекты, известные как "объекты рабочего стола", которые используются для реализации отдельных экранов для входа в систему и безопасной последовательности загрузки рабочего стола. Нет встроенного и простого способа для пользователей создавать собственные рабочие столы или размещать на них программы. Однако существует множество сторонних программ (например, VirtuaWin, Dexpot и другие) и некоторые частично поддерживаемые продукты Microsoft, реализующие виртуальные рабочие столы в различной степени завершенности. Microsoft предлагает утилиту Desktops, которая позволяет пользователям Windows Vista или Windows Server 2008 и более поздних версий запускать приложения на до 4 виртуальных рабочих столах. В отличие от большинства других решений для виртуальных рабочих столов в Windows, эта утилита фактически использует собственные "объекты рабочего стола", как описано выше. Из-за этого она не предоставляет возможности перемещать программы между рабочими столами или прекращать использование виртуальных рабочих столов, кроме выхода из системы, а Windows Aero работает только на основном объекте рабочего стола. Ранее Microsoft предоставляла Virtual Desktop PowerToy для Windows XP, который имитировал несколько рабочих столов, используя более распространенный метод скрытия и отображения окон группами, где каждая группа представляла собой отдельный рабочий стол. Однако функциональность, предоставляемая этой утилитой, менее полна, чем у многих других решений для виртуальных рабочих столов (например, сохранение окна на определенном рабочем столе даже при мигании кнопки в панели задач и т.д.). Как и во всех утилитах виртуальных рабочих столов, работающих путем скрытия и отображения окон, часто возникают проблемы совместимости с приложениями, поскольку разработчики приложений не предполагают использование виртуальных рабочих столов на платформе Windows. Ранее программное обеспечение, поставляемое с некоторыми драйверами видеокарт, предоставляло функциональность виртуальных рабочих столов, например, в продукте Nvidia nView (поддержка этого продукта была прекращена для владельцев карт GeForce начиная с Vista). Некоторые из этих программ предоставляют визуальные эффекты, аналогичные тем, что доступны в Compiz. Многие замены оболочки Windows, включая LiteStep, Emerge Desktop и другие, также поддерживают виртуальные рабочие столы через дополнительные модули.

Классическая Mac OS

На классической Mac OS возможность прокручиваемых рабочих столов появилась у пользователей Macintosh благодаря стороннему расширению Stepping Out, разработанному Уэсом Бойдом (будущим основателем Berkeley Systems) в 1986 году. Apple включила код этого расширения в более позднюю версию Mac OS, однако возможность создания виртуальных рабочих столов, превышающих размер экрана, была исключена. Вместо этого код использовался для помощи слабовидящим пользователям, позволяя им увеличивать фрагменты рабочего стола и просматривать их в виде более крупных и четких изображений.

macOS

Несмотря на основу, унаследованную от Unix, macOS не использует X Window System для своего графического интерфейса, и в ранних версиях не было предусмотрено виртуальных рабочих столов. Начиная с Mac OS X 10.5 Leopard в конце 2007 года, macOS поставляется со встроенной поддержкой виртуальных рабочих столов, называемой Spaces, которая позволяет использовать до 16 виртуальных рабочих столов. Она позволяет пользователю привязывать приложения к определенному "пространству". Начиная с OS X 10.7 Lion, эта функция была интегрирована в Mission Control.

BeOS

BeOS включала в себя реализацию виртуальных рабочих столов под названием "Workspaces". Поддерживалось до 32 различных рабочих пространств.