デスクトップ環境

デスクトップ環境（デスクトップかんきょう、英: desktop environment）またはデスクトップマネージャ (英: desktop manager) は、WIMP、ツールバー、フォルダ、背景画像、デスクトップウィジェットなどといったものから成り立っている。 これは、グラフィックディスプレイ等の画像を表示するシステムを持つコンピュータのグラフィカルユーザインタフェース (GUI) として、デスクトップメタファー (英: desktop metaphor)（詳細は後述）と呼ばれるタイプのインタラクションシステム[要説明]が実現された環境であり、それを提供するコンピュータプログラム群を指すこともある。そのような用法は、UNIXではCommon Desktop Environment（CDE）で広まった。 WindowsやmacOSのようなプロプライエタリなオペレーティングシステム (OS) のデスクトップ環境は、一般的に使用方法という観点から見て、変更をあまり受け付けないようになっている。また、それによってユーザーエクスペリエンス（ユーザーエクスペリエンスのデザインを参照）の一貫性を保証しているのである。特にBTRONでは表示の仕様や画面構成などを作法という名で規定し、原則としてこれに則り、変更することを公式には認めていない。 これらのオペレーティング環境であってもスキンを変更したりサードパーティーのソフトを使うことで画面を構成する要素（アイコンやボタン、即ちウィジェット）の見た目やインタフェースモデルを変えたりすることはできる。Windowsでは、Windows Explorerシェルを別のものと置き換えることで変更が可能となる。 デスクトップ環境を提供するシステムにおいて、ウィンドウマネージャおよびそれと連携するウィジェット・ツールキットを使って書かれたアプリケーション群が、一般にユーザーから見える大部分を構成する。ウィンドウマネージャは環境の対話的部分をサポートし、ツールキットは統一感のあるルック・アンド・フィールを提供する。 一部のウィンドウシステムは、その下層にあるOSやライブラリへの直接的なインタフェースとなっている。グラフィックスデバイス、ポインティングデバイス、キーボードなどをサポートしている。ウィンドウマネージャは一般にウィンドウシステムの上で動作する。ウィンドウシステムがウィンドウ管理機能を提供することもあるが、一般にそのような機能はウィンドウマネージャの一部とみなされており、単にたまたまウィンドウシステムがそういった機能を提供しているものとされる。 特定のウィンドウマネージャとの組合せで使用することを念頭においているアプリケーションは、そのウィンドウマネージャに対応するウィジェット・ツールキットを採用することが多い。ウィジェット・ツールキットはアプリケーションにウィジェットを提供し、それによってユーザーが一貫した形でグラフィカルに対話する方法を提供する。[要出典] デスクトップメタファー (desktop metaphor) とは、現在のOSのGUIで使われている統合されたコンセプトの集合のことである。コンピュータのディスプレイ上でユーザの机の上（デスクトップ）を表現し、そこに文書やフォルダを置く。文書を開くとウィンドウが開き、それが机の上に置かれた紙の文書を表している。また、デスクアクセサリと呼ばれる小さなアプリケーション群が机の上の様々な道具（例えば、電卓）に対応している。[要校閲] メタファーの純粋さを守るよりも利便性を高めるのが重要であるため[要校閲][独自研究?]、デスクトップメタファーは実装によっては様々な拡張がなされている。そのため、ゴミ箱やファイルキャビネットが何故か机の上に出現することになった[要出典]。また、メニューバーやタスクバーといった機能は実世界の机とは対応していない。 21世紀に入り、ファイルキャビネットや机のメタファーは重要性を失いつつある。特に記憶容量が巨大化したため、フォルダーのメタファーではファイルを探したり管理したりするのが困難になってきた。そのため、ユーザがシステムのファイルシステムに仮託された概念をそのまま受容するのではなく、特定の必要性に応じて文書を組織する手法が登場しつつある。「スマートフォルダ」と呼ばれる機能はユーザが重要と考える検索基準に従ったファイル検索を可能にしている。 BeOSはデスクトップメタファーを他よりも厳密に適用している。例えば、外部ディスク装置はデスクトップに現れるが、内部ディスク装置はコンピュータ自身を表すアイコンの中に含まれている。ちなみに、Mac OSでは全ドライブや外部デバイスをデスクトップに表示でき、Windowsでは全ドライブがコンピュータのアイコンの中にある。[要校閲] 世界初のデスクトップ環境は、1973年製造のAltoや1976年製造の可搬式PC試作機のNoteTaker向けに、ゼロックスのパロアルト研究所でアラン・ケイらが1970年代に開発した暫定Dynabook環境である。AltoやNoteTakerはこれらを安価に販売することを嫌ったゼロックス上層部の決定で製品化されることはなかったが、Altoの後継機であるXerox 8010（開発コード：Dandelion）にSmalltalkと別のGUIベースのOSを搭載したオフィスコンピュータ（ワークステーション） Xerox Star (1981年) として改めて製品化された（なお、SmalltalkもOSとしてではなかったが、開発環境付きの言語処理系のSmalltalk-80として商品化されている）。デスクトップ環境を有する一般に販売されたコンピューターとしてはこれが初である。Appleは、1979年当時開発中だったケイらの暫定Dynabookからオーバーラップマルチウインドウやメニュー、コピー・アンド・ペースト操作等の主要なGUI要素や作法を、また製品化後のStarからアイコンベースのファイラを模倣し、これらに独自のアレンジを加えたApple Lisa（1983年）を同じくオフィス向けの製品としてリリースした。しかしゼロックス等が専用機を販売していたSmalltalkを含め、Star、Lisaのいずれも高価であったためデスクトップ環境の利便性を広く世に知らしめるほどの普及には至らなかった。 今日、多くのOSにデスクトップ環境として実装されているデスクトップメタファーを最初に広く一般に知らしめたコンピュータはアップルのMacintosh（1984年）であり、実際に広く使われるようになったのは、1995年にマイクロソフトがリリースしたMicrosoft Windows 95からである。2018年現在、最も広く使われているデスクトップ環境は、Windows 7やWindows 10のもので、それらに次いでmacOSのデスクトップ環境がある。 macOSを搭載したMacintoshを除けば、LinuxなどのUnix系OSをパーソナルコンピュータ上で使用する割合はまだ低いが、X Window Systemを搭載した安価なLinux PCの市場シェアが伸びており、そういったマシンでX11ベースのデスクトップ環境がサポートされている。 X Window Systemを使用するシステムでは、デスクトップ環境はより柔軟である。これはXが「ポリシーではなく機構を提供する。特にユーザインタフェースについては」という原則に基づいて設計されているため、デスクトップ環境の構成要素がウィンドウシステムとは全く別に提供されているためである。 CDEやGNOMEやKDEといったXのデスクトップ環境は、ユーティリティライブラリ（XtやGLib等）、GUIライブラリ（ウィジェット・ツールキット、XawやMotifやGTKやQt等）といったインフラとなるライブラリ、ウィンドウマネージャ（twmやmwmやMetacityやKWin等）などのシステムユーティリティ、ファイルマネージャ（ファイルやKonqueror、Dolphin等）や管理ツールなどの基本的なアプリケーション、スキン、などから構成される。これら個々のモジュールは個別に変更したり設定したりすることができ、ユニークな組合せを作ることができるが、多くのデスクトップ環境ではデフォルトの設定があるので、それを使うことができる。 またそういったフルスタックのデスクトップ環境とは別に、IceWM、Fluxbox、Window Makerといったウィンドウマネージャは単純なデスクトップ環境と言える機能を備えている。evilwmやwmiiなどのように、そういった機能のないウィンドウマネージャもある。 X上の初期のデスクトップ環境としてCDEがあるが、これはプロプライエタリな製品であったため、コストやライセンスの問題があってLinuxなどのUnix系OSには普及しなかった。1996年にはKDE、1997年にはGNOMEが登場。1997年に始まったXfceはそれらより小さいプロジェクトであり、性能とモジュール性向上に集中したもので、2006年に始まったLXDEも同様である。2012年現在、GNOMEとKDEが主流であり、Linuxディストリビューションの多くがデフォルトでどちらかをインストールする。これらには次のような特徴がある。 プログラマから見て、標準化されたAPI群、プログラミング環境、ユーザインタフェースのガイドラインが提供されている。 KDEとGNOMEは多数の言語に対応しており、翻訳家から見れば同時に各国語に対応するための基盤が整備されている。 アーティストから見れば、才能を共有する場でもある[信頼性要検証]。 人間工学の専門家から見れば、作業環境を単純化するのを手伝う機会を提供する。 アプリケーション開発者にとっては、統合のためのリファレンス環境を提供する。例えば OpenOffice.org がある。 ユーザーから見れば、完全なデスクトップ環境と一連の基本アプリケーション群を提供する。ファイルマネージャ、ウェブブラウザ、マルチメディアプレーヤー、電子メールクライアント、アドレス帳、PDFリーダー、写真マネージャなどである。 2000年代初め、KDE とGNOMEが円熟期に達した。その後もそれぞれが新たな向上のためのプロジェクトを推進した（KDEはAppeal、GNOMEはToPaZ）。どちらも目標は似たようなものだが、採用した人間工学的手法は異なる。KDEはアプリケーションの連携と相互運用の強化を推進しており、賢明なデフォルトを設定しようと試みつつ、高度にカスタマイズ可能で非常に複雑な機能を多く含んでいる。一方GNOMEはより規範的で、必須なタスクの細かい詳細に集中し、全体としては単純化しようとしている。結果としてそれぞれが異なるユーザー層と開発コミュニティをひきつけている。努力の重複を減らすため、非公式な協力ゾーンとしてfreedesktop.orgが生まれた。 GNOMEとKDEは高性能なコンピュータを主な対象としているため、低性能な古いシステム向けには別のデスクトップ環境が使われる。そのような軽量デスクトップ環境としてLXDEとXfceがある。どちらもGNOMEと同じGTKツールキットを採用している。KDEと同じQtテクノロジーをベースにした軽量デスクトップ環境としてはLXQtのほかBSD向けに開発されたLuminaなどがある。 Unix系での主要な7種類のデスクトップ環境のデフォルト構成の比較表を以下に示す: Microsoft Windows上で最も一般的なデスクトップ環境はMicrosoft Windowsに組み込まれているインタフェースである。Windows XPではLuna、Windows Vista以降ではAeroといったように、マーケティング目的で新しい呼び名を与えている。 macOSではAquaを採用している。 Unix系システムではX Window System上のデスクトップ環境として、CDE、KDE、GNOME、Xfce、LXDE、BSD向けのLuminaなどが使われている。X Window Systemがデファクトスタンダードになる以前は、その他のウィンドウシステムとその上のデスクトップ環境がいくつかあった。 他にも様々なデスクトップ環境がある。例えば、GEM、IRIX Interactive Desktop、Jesktop、Mezzo、Project Looking Glass、ROX Desktop、UDE、Xito、XFast などがある。また、ウィンドウマネージャFVWMの強力なコンフィギュレーションツールであるFVWM-Crystalは、デスクトップ環境の「コンストラクションキット」ともいうべきものである[要校閲][独自研究?]。 単独で機能することを意図して設計されたXウィンドウマネージャは、典型的なデスクトップ環境の要素を多く備えており、顕著な例として Enlightenment がある。他にも、Openbox、Fluxbox、WindowLab、FVWM、Window Maker、AfterStep などがあり、特に最後の2つはNeXTSTEP GUIのルック・アンド・フィールを採用している。 AmigaOSの当初のデスクトップ環境Workbenchから発展していった。Scalos、MorphOSのAmbientデスクトップ、AROSのWandererデスクトップなどがある。WindowLabもAmiga UIと似た機能を持っている。Directory OpusはAmiga上の単なるファイルマネージャだったが、最終的にデスクトップ環境Directory Opus Magellanに発展した。 IBM OS/2またはeComStationではワークプレース・シェルというデスクトップ環境が動作する。 BumpTopプロジェクトは実験的デスクトップ環境を構築するプロジェクトである。より実世界に近い3D実装を目標とし、例えば文書を仮想デスク内で自由に操作できる。 Ambient（英語版） Budgie CDE Cinnamon Cutefish DDE EDE Elokab Enlightenment Étoilé GNOME Shell GNUstep Innova Katana KDE SC（英語版） KDE Plasma 5 Liri Shell LXDE LXQt MATE MaXX Maynard（英語版） Mezzo（英語版） Moksha oZone GUI Pantheon Project Looking Glass（英語版） Razor-qt ROX Desktop（英語版） Sugar theShell Trinity UKUI（英語版） Unity Vera Xfce