Виртуальный рабочий стол

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
Виртуальные рабочие столы в виде граней куба.
В этом примере Unix-подобная операционная система использует оконную систему X и плагин Compiz cube для украшения среды рабочего стола KDE.

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

Обзор

Переключаемые рабочие столы

Переключаемые рабочие столы были разработаны и реализованы в Xerox PARC под названием «Rooms» Остином Хендерсоном[англ.] и Стюартом Кардом[англ.] в 1986 году[1] и (что было неизвестно авторам до их публикации) были концептуально аналогичны более ранней работе Патрика Питера Чана в 1984 году. Эта работа защищена патентом США[2].

Переключаемые рабочие столы стали доступны гораздо более широкой аудитории после выхода программы Томом ЛаСтрэйнджем в swm[англ.] (Solbourne Window Manager для X Window System) в 1989 году. («Виртуальный рабочий стол» изначально был товарным знаком Solbourne Computer[англ.].)[3] Вместо того, чтобы просто размещаться в позиции x, y на дисплее компьютера, окна запущенных приложений помещаются в позиции x, y в «контексте» заданного виртуального рабочего стола. В этом случае они доступны пользователю, только если этот контекст включен. Пользователю предоставляется интерфейс для переключения между «контекстами», или страницами, экранного пространства; в любой момент времени только одна из них может отображаться на дисплее компьютера. Переключение рабочих столов поддерживают несколько оконных менеджеров X Windows System.

Один большой рабочий стол

Другие виды виртуальных рабочих столов не предлагают дискретных виртуальных экранов, но вместо этого позволяют перемещаться по рабочему столу, который больше, чем можно отобразить на мониторе. Эту концепцию иногда называют панорамированием (англ. panning), прокруткой рабочего стола (англ. scrolling desktops) или рабочей областью (англ. view-port). Например, если видеокарта имеет максимальное разрешение, превышающее разрешение экрана монитора, диспетчер виртуального рабочего стола может разрешить размещение окон «за краем» экрана. Затем пользователь может прокручивать видимую область, перемещая указатель мыши к краю дисплея. Видимая часть большого виртуального экрана называется портом просмотра.

Реализация

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

Amiga

Первой платформой, которая реализовала несколько дисплеев рабочего стола на аппаратном уровне, была Amiga 1000, выпущенная в 1985 году. Все Amiga поддерживали одновременное отображение нескольких экранов в памяти с помощью графического сопроцессора, известного как «Copper»[4]. Каждый рабочий стол или «экран» мог иметь свою глубину цвета (количество доступных цветов) и разрешение, включая использование чересстрочной развертки. Это также позволяло ОС легко смешивать полноэкранные и оконные приложения в единой среде.

Некоторые программы, например VWorlds[5] (астрономический симулятор), использовали функцию нескольких рабочих столов для наложения набора элементов управления на главный экран дисплея. Затем элементы управления можно было перетаскивать вверх и вниз, чтобы показать большую или меньшую часть основного дисплея.

X Window System (Unix и Unix-подобные ОС)

Динамические виртуальные рабочие столы в оболочке GNOME Shell v40. Рабочие области автоматически добавляются или удаляются по мере необходимости.

Почти все Unix и Unix-подобные операционные системы используют X Window System для реализации оконной среды.

Система X Window уникальна тем, что оформление, размещение и управление окнами обрабатываются отдельной программой, известной как менеджер окон. Это разделение позволило сторонним разработчикам представить множество различных функций оконного менеджера, что привело к развитию возможностей виртуальных рабочих столов в X. Первой реализацией виртуальных рабочих столов для Unix была vtwm[англ.], выпущенная в 1990 году. Многие из сегодняшних реализаций X Window System включают возможности виртуального рабочего стола.

Конфигурации варьируются от двух виртуальных рабочих столов до нескольких сотен. Наиболее популярные среды рабочего стола, GNOME и KDE, используют несколько виртуальных рабочих столов (по умолчанию два или четыре), называемых «рабочими пространствами». Некоторые оконные менеджеры, такие как FVWM, предлагают отдельные «столы», которые позволяют пользователю ещё больше упорядочивать приложения. Например, у пользователя могут быть отдельные рабочие столы, обозначенные как «Работа» и «Дом», с одинаковыми программами, работающими на обоих столах, но выполняющими разные функции. Некоторые оконные менеджеры, такие как dwm и Sawfish, поддерживают «тегирование», при котором приложения могут быть настроены на постоянный запуск на определённом рабочем столе, поддерживая автоматическую организацию и единообразную навигацию.

OS/2

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

Windows

Виртуальный рабочий стол в Windows 10

Windows 10 предлагает виртуальные рабочие столы через систему, известную как «Просмотр задач» (Task View)[7][8].

В Microsoft Windows до версии Windows 10 виртуальные рабочие столы не были реализованы в доступном для пользователя виде. В архитектуре Windows есть объекты, известные как «объекты рабочего стола», которые используются для реализации отдельных экранов для входа в систему и рабочего стола безопасности (Ctrl+Alt+Delete). Для пользователей не было простого и удобного способа создавать свои собственные рабочие столы или заполнять их программами[9]. Однако есть много реализаций виртуальных рабочих столов от сторонних производителей[англ.] (например, VirtuaWin[англ.], Dexpot и другие) и некоторые частично поддерживаемые продукты Microsoft, которые реализуют виртуальные рабочие столы с разной степенью полноты.

Microsoft предлагает служебную программу под названием «Рабочие столы» (англ. Desktops), которая позволяет пользователям Windows Vista, Windows Server 2008 и более поздних версий запускать приложения на 4 виртуальных рабочих столах. В отличие от почти всех других реализаций виртуального рабочего стола для Windows, эта утилита фактически использует собственные «объекты рабочего стола», описанные выше. Из-за этого невозможно перемещать программы между рабочими столами или вообще прекратить использование виртуальных рабочих столов, за исключением выхода из системы[9], а Windows Aero работает только на основном рабочем столе.

Ранее Microsoft предоставила программу Virtual Desktop PowerToy[англ.] для Windows XP, которая имитирует множество рабочих столов путём более распространённого метода скрытия и отображения групп окон, причем каждая группа представляет собой отдельный рабочий стол. Однако предоставляемая функциональность менее обширна, чем у многих других решений для виртуальных рабочих столов (например, удерживать окно на данном рабочем столе, даже если его кнопка на панели задач мигает и т. д.). Как и для всех утилит виртуальных рабочих столов, которые работают путем скрытия и отображения окон, присутствуют проблемы обеспечения совместимости, потому что разработчики приложений не ожидают, что на платформе Windows будут использоваться виртуальные рабочие столы.

Исторически сложилось так, что программное обеспечение, поставляемое с некоторыми драйверами видеокарт, обеспечивало функциональность виртуального рабочего стола, например, в продукте nView от Nvidia (этот продукт был снят с производства для владельцев карт GeForce, начиная с Vista). Некоторые из этих программ предоставляют визуально привлекательные функции, аналогичные доступным в Compiz.

Многие альтернативные оболочки рабочего стола для Windows, включая LiteStep, Emerge Desktop[англ.] и другие, также поддерживают виртуальные рабочие столы через дополнительные модули.

Mac OS X

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

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

BeOS

BeOS включает реализацию виртуальных рабочих столов под названием «Рабочие области» (англ. Workspaces). Поддерживается до 32 различных рабочих областей.

Примечания

  1. D. Austin Henderson, Jr., Stuart Card (1986) Rooms: the use of multiple virtual workspaces to reduce space contention in a window-based graphical user interface ACM Transactions on Graphics
  2. User interface with multiple workspaces for sharing display system objects Архивная копия от 16 марта 2021 на Wayback Machine, US Patent 5,533,183
  3. Thomas E. LaStrange (1990) swm: An X window manager shell Архивная копия от 16 ноября 2020 на Wayback Machine. USENIX Summer.
  4. См. Amiga Related Books FAQ Архивная копия от 29 октября 2020 на Wayback Machine для получения списка справочных материалов
  5. Aminet - misc/sci/VWorlds30.lha. Дата обращения: 14 ноября 2020. Архивировано 16 ноября 2020 года.
  6. Current Release Timetamp ArcaOS 5.0 Blue Lion (англ.). Дата обращения: 24 августа 2020. Архивировано 20 сентября 2020 года.
  7. Microsoft Unveils Windows 10 with New Start Menu (англ.). Tom's Guide. Дата обращения: 30 сентября 2014. Архивировано 15 октября 2016 года.
  8. Windows 10 is the official name for Microsoft's next version of Windows (англ.). The Verge. Дата обращения: 30 сентября 2014. Архивировано 23 ноября 2017 года.
  9. 9,0 9,1 "Desktops." Windows Dev Center. 27 Mar 2012 21:35 EST. http://msdn.microsoft.com/en-us/library/windows/desktop/ms682573.aspx Архивная копия от 9 марта 2016 на Wayback Machine