GNOME

桌面环境和图形用户界面

GNOME/ɡˈnm/[5]/ˈnm/[6])是一個完全由自由軟件組成的桌面環境。它的目標作業系統Linux,但是大部分的BSD系統亦支持GNOME。

GNOME
Web、Weather和GNOME Files在GNOME 46上運行
Web、Weather和GNOME Files在GNOME 46上運行
原作者GNOME基金會
開發者GNOME基金會(主要由Red Hat
首次發布1999年3月3日,​25年前​(1999-03-03[1]
當前版本
  • 47.1(2024年10月22日;穩定版本)[2]
編輯維基數據鏈接
源代碼庫 編輯維基數據鏈接
編程語言C語言C++ValaPythonJavaScript[3]
操作系統類Unix系統(使用WaylandX11
語言38種語言[4]
類型桌面環境
許可協議 編輯維基數據鏈接
網站www.gnome.org/ 編輯維基數據

GNOME是由志願貢獻者和受僱貢獻者組成的GNOME計劃開發,其最大的公司貢獻者為紅帽公司[7][8]。它是一個為開發軟件框架、基於這些框架來開發用戶端軟件及協調軟件翻譯和開發無障礙軟件的專案。

GNOME最初是GNU網絡對象模型環境(GNU Network Object Model Environment)的縮寫,但是已經被廢棄了。[9]

GNOME以前曾是GNU計劃的一部分。但在2021年時,GNOME基金會的執行董事Neil McGovern在他的推特發文,表示已多次要求GNU將GNOME從GNU計畫頁面中移除[10],而GNOME基金會也在他們的官方推特中發布貼文,澄清GNOME不是GNU計畫的一部份。[11]

歷史

GNOME 1

 
GNOME 1,1999年

1996年KDE Plasma發佈,但KDE所依賴的Qt當時並未使用GPL授權。出於這種考慮,兩個項目在1997年8月發起:一個是作為Qt庫替代品的「Harmony英語Harmony (toolkit)」,另外一個就是建立一個基於非Qt庫的桌面系統,即GNOME項目。GNOME的發起者為米格爾·德伊卡薩費德里科·梅納[12]

GIMP Toolkit(GTK+)被選中做為Qt toolkit的替代,擔當GNOME桌面的基礎。GTK+使用LGPL,允許鏈接到此庫的軟件(例如GNOME的應用程序)使用任意的許可協議。GNOME計劃的應用程序通常使用GPL許可證[13]

在GNOME變得普及後,1999年Qt加入GPL授權[14][15]。Troll Tech在GNU GPLQPL英語QPL雙重許可證下發布了Unix版的Qt庫。Qt加入GPL授權後,在2000年年底Harmony項目停止了開發,而KDE不再依賴非GPL的軟體。2009年3月,Qt 4.5發布,加入了LGPL授權作為第三選擇。

「GNOME」這個名稱最初是「GNU Network Object Model Environment」的縮寫,以反映最初為了開發類似微軟物件連結與嵌入的框架[16]。但這個縮寫最後被放棄,因為它不再反映GNOME專案的遠景[17]

加州初創企業Eazel公司英語Eazel於1999至2001年開發Nautilus檔案瀏覽器米格爾·德伊卡薩納特·弗里德曼英語Nat Friedman於1999年創立後來成為Ximian的Helix Code公司。該公司開發了GNOME的基礎設施和軟件,2003年被Novell收購。

GNOME 2

 
GNOME 2.32 (2010年9月),最後一版的GNOME 2,運行於Ubuntu 10.10

GNOME 2與傳統桌面界面十分相似,擁有一個用戶可以與不同例如窗口、圖示、檔案等虛擬物件互動的桌面環境。GNOME 2使用Metacity為它的預設窗口管理器。GNOME 2的窗口、程式和檔案管理和一般的桌面操作系統十分相似。在預設的設定中,桌面有一個啓動選單,可以用以開啓已安裝的程式及檔案;己存在的窗口在下方的工作列列出;而在右上角則有一個通知區以顯示在背景運行的程式。不過,這些功能可以隨用戶喜好而更改位置、取代或甚至移除。

GNOME 3

 
GNOME 3使用現代方法來設計用戶界面和命名應用程式。此為在 3.14 版的GNOME Shell中執行GNOME Weather的螢幕截圖(2014年9月)

在GNOME 3之前,GNOME是根據傳統的桌面比擬而設計,但在GNOME 3便被GNOME Shell所取代,所有轉換窗口及虛擬桌面都在「活動」畫面中進行。此外,因為Mutter取代了Metacity成為預設的窗口管理器,最小化及放大按鈕不再預設在名稱列中。Adwaita英語Adwaita (design language)取代了Clearlooks英語Clearlooks成為預設主題。很多GNOME核心程式英語GNOME Core Applications都重新設計以提供更連貫的用戶體驗。

這些重大的改變最初引來了廣泛的批評。MATE桌面環境專案由GNOME 2的源始碼衍生,目標為保留GNOME 2的傳統界面,同時支援最新的Linux技術,例如GTK+ 3。Linux Mint團隊則以開發「Mint GNOME Shell Extensions」一系列於GNOME 3上執行之外掛程式解決此問題,這些外掛程式使GNOME 3的界面變回傳統比擬界面。最後,Linux Mint決定從GNOME 3的源代碼衍生另外一個桌面環境「Cinnamon」。

截至2015年 (2015-Missing required parameter 1=month!),對GNOME 3的整體評價已大致轉為正面[18]。Linux發行版Debian於GNOME 3發佈時把XFCE改成預設的桌面環境,但在Debian 8己改回預設使用GNOME 3[19][18]。Linux創始者林納斯·托瓦茲於2013年已改回使用GNOME 3[18]

GNOME 40

GNOME 40 與GTK 4.0 於2021年3月同時發布。使用者概覽界面改為水平界面,與以往Gnome 3.X 的垂直界面不同。Dash 方向亦由垂直改為水平。並且新釋出版本亦引進新的觸控板手勢。

 
GNOME 40 界面

版本

組成 GNOME 計劃的每一部分都有自己的版本號和發布規劃,通過各模塊的維護者之間的定期協調(六個月),建立一個完整的 GNOME 發布版本。下邊的發布版本列表分類屬於穩定版。提供給測試和開發者的不穩定版本並未列入。

Gnome 3.38 之後採用新編號方式,推出Gnome 40,下個版本將是Gnome 41,Gnome 40 穩定板發行後以40.1、40.2、40.3……等來發布更新。

設計

GNOME的目標是要簡單易用[41]

GNOME Shell

 
1
2
3
4
5
6
7
GNOME Shell的「活動」界面
1
「活動」按鈕
2
Dash面版
3
搜尋框
4
通知區
5
狀態列
6
桌面列表
7
小工具列

GNOME Shell是GNOME桌面環境的預設使用者介面。它的上方有一條面版,裏面有(由左至右)「活動」按鈕、正使用程式的選單、時鐘及一個系統選單[42][43]。程式選單顯示當前使用程式的名稱及提供例如程式設定、關閉程式等的選項。狀態列有代表電腦不同狀態的圖示、往系統設定的捷徑以及登出、轉換用戶、以及關機的選項。

按下「活動」按鈕、把鼠標移動至左上角或按下超級鍵會進入「活動」畫面[44]。「活動」畫面讓用戶縱覽現時在執行的程式,以及讓用戶轉換窗口、桌面,和執行程式。左邊的Dash面版裏面有最愛程式的捷徑、所有正在執行程式的圖示及往所有已安裝程式列表的按鈕[42]。在上方出現一個搜尋框及右邊有一個列出所有桌面的桌面列。通知在按下上方中央的時鐘後的列表內[45]

GNOME Classic

 
GNOME 3經典模式

從GNOME 3.8起,GNOME提供一個經典模式,提供一個較傳統的介面(類似GNOME 2)[46]

相容性

GNOME運行在X11之上,在GNOME 3.10後亦可在Wayland下執行[43]。在大部分Linux發行版上的GNOME都是預設桌面環境或可安裝的,而在大部分BSD系統上為Ports

2011年5月倫內德·柏特菱英語Lennart Poettering建議把systemd列為GNOME運行需要的軟件[47]。因為systemd是Linux獨有,這個提議亦引起了未來停止支援其他平台的討論。由GNOME 3.2起,多席位配置英語multiseat configuration只支援使用systemd的系統[48]。2012年11月GNOME發佈小組結論,指非基本的功能可以依賴systemd[49]

Freedesktop.org與GNOME

Freedesktop.org是一項幫助在不同的X Window桌面——例如GNOME,KDE或者XFCE——之間實現互操作和共享技術的計劃。儘管並非正式標準化組織,Freedesktop.org定義了X桌面的基本特徵,包括程序之間的拖放、窗口管理器規範、菜單布局、最近文件列表、程序之間複製粘貼和共享的MIME類型數據庫等等。遵從Freedesktop.org規範使得GNOME應用程序能夠集成到其他桌面(反之亦然),並起到鼓勵桌面環境之間的競爭和合作的作用。

人機界面指南

自GNOME 2以起,可用性是GNOME的主要焦點。所以,GNOME人機界面指南英語Human Interface Guidelines便開始發展。所有GNOME程式都有連貫的圖形使用者介面,但是不止於使用同一套控制項(英語:GUI widgets)。因為GNOME介面的設計是由在指南中的概念所引導,而指南自身則發展自認知工效學英語cognitive ergonomics[50]。跟從人機界面指南,開發者可以創造優質、連貫和可用性高的介面程式,因為指南裏由介面設計至介面佈局亦有規定。

在GNOME 2的重新編程中,很多對大部分使用者而言用途不大的選項都被移除。夏霍·邊靈頓英語Havoc Pennington在他於2002年發佈的文章「自由軟件的使用者界面」(英語:Free Software UI)中總結了關於GNOME可用性的工作,強調所有偏好設定都有它的代價。使軟件功能在預設時操作暢順,比在設定中加入選項才令軟件操作和預期一樣更好:

一個傳統的自由軟件是可配置的,使它集合所有在新舊所有同類軟件所見的功能,或甚至可配置得擁有任何新舊軟件的所有功能(Emacs*咳*)。
這會造成問題嗎?它會造成問題。原來選項有它們的代價。當然,某些選項亦有重要的價值-亦可成為關鍵的界面功能。但是每一個都有它們的代價,要小心地衡量它們的價值。很多用戶和開發者都不明白此代價,令他們的選項有很大的代價但只有微小的價值。

——夏霍·邊靈頓[51]

無障礙

GNOME旨在使桌面環境對身心障礙者物理上認知英語Cognitive ergonomics上都符合人體工學。GNOME的人機界面指南嘗試把此因素包個在內,但是某些個別問題使由須由特別的軟件解決。

GNOME透過無障礙套件英語Accessibility ToolkitATK應用程式介面以解決計算機輔助功能上的問題,它容許特別的輸入法語音合成語音識別以改善用戶體驗。某些工具在ATK內透過輔助技術服務供應介面英語Assistive Technology Service Provider InterfaceAT-SPI)註冊,以在整個桌面環境中都可以使用。幾個輔助技術軟件,例如Orca英語Orca (assistive technology)螢幕閱讀器Dasher英語Dasher (software)輸入法是針對在GNOME上使用而開發的。

軟件

核心程式

使用GTK+編寫或基於Clutter編寫的程式多不勝數,由不同開發者開發[52]。自GNOME 3以來,GNOME計劃開發了一系列的程式,為GNOME核心程式英語GNOME Core Applications。所有GNOME核心程式都是根據人機界面指南而設計的[50]

遊戲

GNOME遊戲有與GNOME核心程式外觀,以及與GNOME軟件版本週期同時發佈。它們全部都已根據人機界面指南重寫。

開發工具

Anjuta整合開發環境Glade使用者介面設計工具及Devhelp英語Devhelp應用程式介面閱覽器是為了促進開發與GNOME連貫的軟件而開發的。Accerciser計算機輔助閱覽器以及其他調試工具,包括Nemiver英語NemiverGtkInspector烏克蘭語GtkInspector和Alleyoop亦是為了促進開發GNOME軟件而開發[53][54]

與第三方軟件整合,例如與NoFlo整合亦有提供[55]

組織

和大多數自由軟件類似,GNOME組織也很鬆散,其關於開發的討論散布於眾多向任何人開放的郵件列表。為了處理管理工作、施加影響以及與同對開發GNOME軟件有興趣的公司聯繫,2000年8月成立了GNOME基金會。基金會並不直接參與技術決策,而是協調發布和決定哪些對象應該成為GNOME的組成部分。基金會網站將其成員資格定義為:

「按照GNOME基金會章程,任何對GNOME有貢獻者都可能是合格的成員。儘管很難精確定義,貢獻者一般必須對GNOME計劃有不小幫助。其貢獻形式包括代碼、文檔、翻譯、計劃範圍的資源維護或者其它對GNOME計劃有意義的重要活動 。」

基金會成員每年11月選舉董事會,其候選人必須也是貢獻者。

參見

參考文獻

  1. ^ GNOME 1.0 Released!. March 3, 1999. (原始內容存檔於2016-04-19). 
  2. ^ GNOME 47.1 released. 2024年10月22日 [2024年10月25日] (英語). 
  3. ^ GNOME Languages. Ohloh. Black Duck Software. [May 22, 2014]. (原始內容存檔於2014-05-22). 
  4. ^ Day, Allan. GNOME 3.28 Release Notes. The GNOME Project. [May 22, 2014]. (原始內容存檔於2018-05-05). 
  5. ^ Introducing GNOME 3.12. You Tube (video). Google. 2014-03-26 [2014-07-02]. (原始內容存檔於2014-05-23). 
  6. ^ Clinton, Jason D. GNOME 3: Fewer interruptions. The GNOME Project (video). YouTube. 2011-04-02 [2011-04-07]. (原始內容存檔於2011-04-09). 
  7. ^ GNOME census (PDF), Neary, [2015-07-20], (原始內容 (PDF)存檔於2012-01-20) .
  8. ^ Staring into the abyss. Gnome. 2012-07-27 [2014-03-15]. (原始內容存檔於2014-06-29). 
  9. ^ Klapper, Andre. Re: GNOME -> Gnome. GNOME marketing list (郵件列表). 6 April 2010 [26 March 2017]. (原始內容存檔於2014-12-28). 
  10. ^ Neil McGovern. "I asked (as ED for @GNOME ) GNU to remove us from that page multiple times. They have refused to do so.". 2021-04-14 [2024-01-02]. (原始內容存檔於2021-11-13) –透過Twitter. 
  11. ^ GNOME. "Let's also clarify that here. GNOME is NOT a GNU project.". 2021-04-14 [2024-01-02]. (原始內容存檔於2021-04-14) –透過Twitter. 
  12. ^ About Us | GNOME. [2013-03-10]. (原始內容存檔於2011-12-16). 
  13. ^ The GNOME Project: "GNOME Foundation Guidelines on Copyright Assignment頁面存檔備份,存於網際網路檔案館)". Accessed March 26, 2013.
  14. ^ Announcement: Qt version 2.0 released, 1999-06-25 [2014-04-16], (原始內容存檔於1999-10-07) 
  15. ^ Stallman, Richard Stallman. Stallman on Qt, the GPL, KDE, and GNOME. 2000-09-05 [2005-09-09]. (原始內容存檔於2012-04-19). 
  16. ^ Pennington, Havoc. GTK+ / Gnome Application Development. 1999 [2015-07-24]. (原始內容存檔於2010-07-11).  |chapter=被忽略 (幫助)
  17. ^ Re: GNOME -> Gnome. [2011-12-10]. (原始內容存檔於2012-04-06). 
  18. ^ 18.0 18.1 18.2 Hoffman, Chris. How GNOME 3.14 is winning back disillusioned Linux users. PC World. IDG TechNetwork. [2015-04-05]. (原始內容存檔於2015-03-29). 
  19. ^ Tozzi, Christopher. Open Source GNOME 3 Desktop Environment Wins Back Fans. The VAR Guy. Penton. [2015-04-05]. (原始內容存檔於2015-03-30). 
  20. ^ Michael Larabel. Eight Interesting Improvements In GNOME 2.22. phoronix. 2008-01-29 [2008-01-30]. (原始內容存檔於2008-01-30). 
  21. ^ GNOME Roadmap. [2008-06-02]. (原始內容存檔於2008-05-27). 
  22. ^ GNOME 2.22 Release Notes. [2008-06-02]. (原始內容存檔於2008-06-01). 
  23. ^ Untz, Vincent. Celebrating the release of GNOME 2.26!. gnome-announce-list (郵件列表). 2009-03-18 [2009-03-18]. (原始內容存檔於2019-04-28). 
  24. ^ http://library.gnome.org/misc/release-notes/2.28/index.html.zh_CN頁面存檔備份,存於網際網路檔案館) GNOME 2.28發行註記
  25. ^ Holwerda, Thom. GNOME 2.30 Released. OS News. 2010-03-31 [2010-04-04]. (原始內容存檔於2018-11-06). 
  26. ^ GNOME 2.32 Release Notes. [2010-10-31]. (原始內容存檔於2012-12-22). 
  27. ^ GNOME 3.0 Release Notes. [2011-04-07]. (原始內容存檔於2013-01-27). 
  28. ^ Wallen, Jack. GNOME 3.10 has resurrected what was once the darling of the Linux desktop. TechRepublic. 2014-03-28 [2015-07-23]. (原始內容存檔於2014-03-28). 
  29. ^ GNOME 3.20. March 23, 2016 [2016-07-02]. (原始內容存檔於2016-04-08). 
  30. ^ GNOME 3.22 Release Notes. [2018-06-16]. (原始內容存檔於2017-09-19). 
  31. ^ GNOME 3.24 Release Notes. [2018-06-16]. (原始內容存檔於2018-11-20). 
  32. ^ GNOME 3.26 Release Notes. [2018-06-16]. (原始內容存檔於2017-12-22). 
  33. ^ GNOME 3.28 Release Notes. [2018-05-05]. (原始內容存檔於2018-05-07). 
  34. ^ GNOME 3.30 Release Notes. [2019-06-14]. (原始內容存檔於2019-06-25). 
  35. ^ GNOME 3.32 Release Notes. [2019-06-14]. (原始內容存檔於2019-05-22). 
  36. ^ GNOME 3.34 Release Notes. [2020-09-22]. (原始內容存檔於2020-08-17). 
  37. ^ GNOME 3.36 Release Notes. [2020-09-22]. (原始內容存檔於2020-05-24). 
  38. ^ GNOME 3.38 Release Notes. [2020-09-22]. (原始內容存檔於2020-09-16). 
  39. ^ GNOME 40 Release Notes. [2021-03-24]. (原始內容存檔於2021-03-24). 
  40. ^ GNOME 41 Release Notes. [2021-09-22]. (原始內容存檔於2021-09-22). 
  41. ^ GNOME 3. The GNOME Project. [2014-06-12]. (原始內容存檔於2014-06-04). 
  42. ^ 42.0 42.1 Terminology for Gnome Shell. GNOME Wiki. The GNOME Project. [2014-05-22]. (原始內容存檔於2014-05-22). 
  43. ^ 43.0 43.1 Day, Allan. GNOME 3.10 Release Notes. The GNOME Project. [2014-05-22]. (原始內容存檔於2014-06-25). 
  44. ^ GNOME 3 Cheat Sheet. GNOME Wiki. The GNOME Project. [2014-06-13]. (原始內容存檔於2014-06-01). 
  45. ^ GNOME Shell Design. The GNOME Project. [2011-12-03]. (原始內容存檔於2011-11-26). 
  46. ^ Day, Allan. GNOME 3.8 Release Notes. The GNOME Project. [2014-06-13]. (原始內容存檔於2014-06-21). 
  47. ^ 柏特菱, 倫內德. systemd as external dependency. desktop-devel (郵件列表). 2011-05-18 [2014-06-12]. (原始內容存檔於2014-10-10).  }}
  48. ^ Vitters, Olav; Klapper, André; Day, Allan. GNOME 3.2 Release Notes. The GNOME Project. [2011-10-05]. (原始內容存檔於2012-12-23). 
  49. ^ Peters, Frederic. 20121104 meeting minutes. release-team (郵件列表). 2012-11-06 [2014-06-12]. (原始內容存檔於2014-09-07). 
  50. ^ 50.0 50.1 GNOME人機界面指南. [2015-07-23]. (原始內容存檔於2015-09-11). 
  51. ^ Pennington, Havoc. Free Software UI. April 2002 [2011-12-04]. (原始內容存檔於2011-08-23). 
  52. ^ Applications - GNOME. GNOME. The GNOME Project. [2015-07-13]. (原始內容存檔於2015-07-02). 
  53. ^ Matthias Clasen. GtkInspector Author's blog entry. 2014-05-15 [2014-05-17]. (原始內容存檔於2014-05-17). 
  54. ^ GtkInspector in GNOME wiki. 2014-05-15 [2014-05-17]. (原始內容存檔於2014-05-24). 
  55. ^ Bergius: Flowhub and the GNOME Developer Experience. LWN.net. 2014-05-02 [2014-05-24]. (原始內容存檔於2018-12-26). 

外部連結

官方網站
第三方站點
參與中文翻譯
其他