GNOME Shell 十餘年後使用小感
自從 2011 年的 Fedora 15 發行版採用了 GNOME 3 桌面環境後,DR 自己就頗為認份地接受了它的多項變化。而其中最主要的變革核心,就是 GNOME Shell,也就是 GNOME 桌面環境從第 3 版起引入的主介面,取代了傳統的工作列及選單列,用於控制視窗的編排與切換,以及應用程式的啟動與關閉。
於是就這樣默默地、也逐漸習慣地用了十幾年。不過直到最近,DR 才赫然驚覺,這個自己使用率最高、也最為習慣的圖形操作環境,過了十幾年後,好像依然堪稱是現今為止最為激進(而且依然存活)的互動設計。因為對照身邊其它也有機會接觸到的系統介面,如 Windows、macOS、iOS、Android、Xfce、Cinnamon,等等這些,至今都沒有像 GNOME Shell 那樣,讓桌面就是純粹的背景,而沒有任何其它的作用。
(桌布來源:Philip Straub)
雖然是有某些擴充套件能夠改變這項特性,但無論如何,在 GNOME Shell 的原生設計裡,桌面無法用來放置任何東西,它就是一個純粹的背景圖像,不能放置檔案、資料夾或者任何的啟動捷徑。換言之,桌面成為某種常用、或者快速存取途徑的作用完全消失,但這樣的設計是怎麼出現的?
對此疑問,其實 DR 也沒有特別去查詢背後的歷史資料,只是簡單地做出了個人的推論:因為 GHOME Shell 同時消滅了視窗最小化的功能(是的,這是 GNOME Shell 帶來的另一項變革)。在 GNOME Shell 上,視窗只有前後景之分,而沒有最小化的概念。使用者切換視窗的方式,除了常見的 Tab + Alt 鍵外,就是仰賴不只一種能夠呼叫出視窗概覽畫面的途徑,來從中選取指定的視窗程式。例如按下 Windows/Super 鍵,或者點選畫面左上角的總覽按鈕,以及滑鼠游標直接移至左上角邊緣也有相同的作用。此外雙擊視窗則能夠對視窗做最大化或者是切換至原尺寸。並且也依然可以透過滑鼠拖曳來調整視窗大小,或者藉此移動個別視窗至指定位置。
(Fedora 40,呼叫出視窗概覽畫面)
至於快速啟動應用程式的方式,則可以將應用程式釘選到概覽畫面下方的應用程式列中。以及在概覽畫面中,也可以直接輸入文字來搜尋檔案、資料夾、應用程式或者網路上的資訊。
所以在移除視窗最小化的設計下,倘若桌面依然是維持傳統的作用,那麼實際上是很難被利用的。因為使用者在一旦開啟應用程式後,就沒有很自然的途徑能夠再回頭檢視到完整的桌面(雖然在 GNOME 中切換至新的工作區可以立即看到完整桌面,但這並非是該項功能的設計意義)。也正是因為如此的激進,當 Red Hat 在 2014 年發佈的 RHEL/CentOS 7 發行版裡,同樣地引入了 GNOME 3 桌面環境時,與此同時也透過數種擴充套件的集合(GNOME Classic),讓預設的桌面環境有更貼近於傳統的使用概念。不過自 RHEL 8 以後就沒有再提供這樣的解決方案了,或許是 Red Hat 對於使用者在 GNOME Shell 特性上的接受程度,可能已經有了更大的信心;此外,Red Hat 也有投注心力在諸如 Cockpit 這樣的網頁式管理工具上,可能也一定比例分擔了在桌面環境上的需求程度。
(Fedora 40,以前後景區分的視窗程式)
如果使用者能夠適應這樣的設計概念,那麼這其實是一個蠻高效的工作模式。後來 DR 在其它作業系統上都蠻常會習慣性的想把滑鼠移到畫面左上角,然後在發現沒有作用時頓時感到有些失落。與此同時,使用者環境也會更加整潔,沒有傳統桌面經常會逐漸累積的那種凌亂、甚至是失序感(當然這跟使用者的組織觀念還是有關係的)。不過相應的代價,就是桌面真的完全無用,它就是純粹的背景圖像。這尤其在跟其它的系統介面對照之下,使用者很難不會發覺這當中的激進之處。
用了這麼多年,至今為止,事實上 DR 對於 GNOME Shell 覺得最有意見的一個地方,是它並沒有為多螢幕的操作環境,規劃在視窗程式處於全螢幕模式下的例外控制情形。試想一種並不算常見、但也確實存在的情境:同一部電腦接上兩台螢幕,以延伸螢幕的模式,其中一台螢幕播放影片給小朋友看;而另一台螢幕則可以繼續用來做其它的工作,然後期望兩者之間彼此不會互相干擾──這樣的期望無法實現,因為當使用者呼叫出概覽畫面時(這在 GNOME Shell 的互動思維裡,會很頻繁地使用到),就會對所有視窗程式、包含全螢幕的程式在內,產生微縮的效果,直到任一程式被選取至前景為止。
(RHEL 9,筆電接上延伸螢幕後的視窗概覽情形)
在 GNOME 內建的【多工作業】(Multitasking)設定選項裡,並沒有任何能夠消除此情形的選項。至於借助擴充套件的解決方案,則例如 V-Shell 是有選項能夠有效地減低視窗程式的微縮情形,但也依然不是 100% 地消除(參見網路上的相關討論)。所以如果真的不希望出現任何片刻間的畫面微縮,那麼若不是放棄同一部電腦做兩件事情的構想,就是其中一台螢幕不能與電腦有直接的連接。而是透過例如 Chromecast 這類的裝置連接至螢幕,再藉此將內容投放到螢幕上。舉例來說,Linux 平台上的 Google Chrome 瀏覽器及 VLC 播放程式,都有具備投放至 Chromecast 的功能。