Linux案頭玩家裝B指南:03.針對Gnome 3的Linux案頭進行美化

來源:互聯網
上載者:User
特別說明

要在我的隨筆後寫評論的小夥伴們請注意了:我的部落格是使用 Markdown 編寫的,並且啟用了 MathJax 數學公式支援。如果某條評論中出現了兩個$,則 MathJax 會認為這兩個$之間的內容是數學公式,從而出現格式混亂。如果大家確定自己寫的評論不是數學公式,請使用\$轉義一下,謝謝。

想從頭閱讀該系列嗎?下面是傳送門:

  • Linux案頭玩家裝B指南:01.玩轉Linux系統的方法論
  • Linux案頭玩家裝B指南:02.以最簡潔的方式打造實用的Vim環境
前言

四年前,我寫了一篇 Linux 案頭美化那點事兒,是基於 Ubuntu 14.04 的,那時 Ubuntu 還是使用的 Unity 案頭。在四年的時間裡,這篇隨筆獲得了大約 60000 的訪問量,我甚是欣慰。世易時移,情隨事遷,Ubuntu 目前的發行版已經放棄了 Unity 案頭,迴歸到了 Gnome 3,以前的美化方案就不太適用了。在這一篇中,我將針對 Gnome 3,講一講 Linux 案頭的美化思路。

Linux 案頭的美化是非常必要的,我認為,不談美化而勸人使用Linux案頭都是耍流氓。就算你把 Linux 案頭說得天花亂墜,別人安裝完一看,不漂亮不順眼不 professional,就不會再繼續用下去了。Ubuntu 和 Fedora 的案頭已經算是比較美觀的了,但是世上沒有完美的系統,只有按照自己的想法進行改進,才能獲得比較舒服的體驗。

Gnome 3 案頭的美化可以從以下幾個方面著手:

1、主題和擴充。可以通過訪問網站 www.gnome-look.org/ 來查看和下載主題。在 Gnome 3 中,主要需要考慮的是 gnome-shell 主題、GTK 3 主題和表徵圖主題。在 Ubuntu 中,預設的主題已經很不錯了,所以我一般不改。Fedora 預設的主題稍差,那種比較 low 的灰灰的 3D 質感我並不喜歡,所以我往往會把它改成簡單的、扁平的樣式。在網路上,還有不少通過修改主題來讓 Linux 案頭變成和 Mac OS 一樣的外觀,這種一味的模仿我並不喜歡,但確實可以試一試。另外,對於 gnome-shell,還可以安裝 extensions 來擴充它的功能和進行美化,除了官方軟體源中提供的 extensions,還可以訪問 extensions.gnome.org/ 來尋找最新的擴充。

2、壁紙。賞心悅目的壁紙當然是可以點亮好心情的啦。看過我前面的隨筆的朋友們應該會發現,我特別喜歡半透明的全屏視窗,露出後面的壁紙。所以,我收集了一大票的壁紙,然後設定為自動定時切換,怎一個爽字了得。

3、字型。Linux 案頭系統的字型一直是一個曆史遺留問題,當有人覺得 Linux 案頭不好看、不專業時,有很大一部分原因就是字型惹的禍。我曾經有一段時間就是因為 Redhat 的 Linux 字型發虛,而中科紅旗的 Linux 字型清晰而放棄過 Redhat,甚至寫過一些不正確的文章。當然,當我認識到 Linux 的字型是可以配置的後,我就把這些不正確的文章都刪了。下一篇,我再專門論述 Linux 系統中字型的曆史、現狀以及配置方法。

4、案頭小組件。一些精美的案頭小組件可以提供一些很實用的功能,同時也可以提高案頭的美化程度。由於我本人並不是特別喜歡案頭小組件,我不僅不喜歡案頭小組件,我連案頭表徵圖都不放,所以這一部分並不做特別介紹。喜歡案頭小組件的朋友,可以瞭解一下 conky。

5、Dock。即可以方便我們啟動程式,又能在螢幕底下顯示點東西,解決 Gnome 3 案頭頭重腳輕的問題。在 Gnome 3 中,使用 Dash to dock 擴充就可以取得不錯的效果了。如果一定要模仿蘋果那樣酷炫的效果,也可以選擇 Cairo-dock。

必須得說明的是,案頭美化是一個仁者見仁、智者見智的事。有可能你認為很美的介面,別人認為土得掉渣;有可能你認為很炫的特效,別人認為華而不實。我這裡主要是為了讓大家瞭解 Linux 案頭美化的機制,並提供一些美化思路,並不是說都讓大家把案頭搞得和我一模一樣。

Gnome 3 的特點

業界對 Gnome 3 案頭吹得很厲害,說它領先案頭設計領域十幾年。可是對我這樣的使用者來講,卻總覺得 Gnome 3 預設的介面比較醜,還不流暢。這一定是我的開啟檔案不對。Gnome 3 究竟有哪些值得稱道的地方呢?我們先來看看 Gnome Shell 的官方 wiki 對它的介紹。後面的圖片均來自於 Gnome Shell 的官方 wiki。

首先,是它的 Desktop 介面,這是我們主要的工作區域,如:

這就是一個中規中矩的案頭,應用程式的視窗顯示在案頭上,只要配色和外觀不要太醜,就不影響我們工作。和 Gnome 2 比,它的主要變化是去掉了案頭底部的 panel,只保留了螢幕頂部的 panel。同時,頂部 panel 中的元素也大大減少,沒有類似 Windows 中開始菜單、視窗列表這樣的元素,取而代之是最左邊的那個 Activities 按鈕。點擊該按鈕,就會彈出 Activities Overview 介面,如:

該介面中,左邊顯示的是 Dash,可以點擊裡面的表徵圖啟動常用的程式。中間顯示的是應用程式視窗,可以查看當前開啟的視窗有哪些,要切換到哪個視窗就點哪個視窗。右側顯示的是工作區,也可以通過滑鼠的點擊在工作區之間切換。如:

Activites Overview 介面不僅可以顯示開啟的視窗,還可以顯示系統中安裝的程式,便於啟動 Dash 中沒有的程式。程式都是大表徵圖,而且有搜尋功能,如:

通過上面的展示,真不覺得 Gnome 3 有什麼值得吹噓的黑科技,如果真要說有什麼先進的理念的話,大概就是對觸控螢幕裝置的支援吧。主要表現有:1. Activites Overview 是佔據整個螢幕的大介面,而不是像 Windows 的開始菜單那樣只佔據螢幕的一小部分;2.應用程式介面都是大表徵圖,便於手指的點擊;3.工作區表徵圖也比較大,便於手指點擊,也便於預覽每個工作區中有哪些視窗。

而我們案頭使用者不一樣,案頭使用者依賴的是鍵盤和滑鼠的輸入,可以精準點擊,對大表徵圖沒有多少依賴。如果能熟練使用快速鍵,對 Gnome 3 的使用體驗也是可以提升不少的。例如,不用點 Activities 按鈕,按 Super 鍵(也就是鍵盤上的 Win 鍵)也可以調出 Activites Overview 介面。有一個比較人性化的功能是 Gnome 3 的工作區是動態工作區,只要佔滿了現有的工作區,它就會馬上自動建立一個新工作區,省掉了我們自己建工作區的操作。在工作區之間切換,也可以使用快速鍵,Ctrl+Alt+↑ 和 Ctrl+Alt+↓。最後,在視窗間切換也可以使用快速鍵 Alt+Tab。視窗切換的效果如:

可以上的內容還是不足以說明 Gnome Shell 有多優秀啊。我們繼續挖掘 Gnome Shell 背後的技術。Gnome Shell 的技術架構是這樣的:

原來整個 Gnome Shell 都建立在 OpenGL 之上,這麼說來效能應該是杠杠的了,使用顯卡加速應該是妥妥的了。在 OpenGL 之上,建立了 Clutter 圖形庫,在 Clutter 之上,建立了 mutter 視窗管理器和 Shell Toolkit,而且 Shell Toolkit 是可以使用 CSS 定義外觀的。再往上,還建立了一個 JavaScript 引擎和 gobject-introspection,這樣就可以使用 JavaScript 來操控 Gnome Shell。原來黑科技藏在這裡呢,我心裡舒服多了。而且這一整條技術棧都是可以學習的,我們程式員的玩具又多了一種。

Ubuntu中的 Gnome 3 案頭存在的問題

看完 Gnome Shell 的官方介紹,我們再回到親愛的 Ubuntu。Ubuntu 這個發行版是已經對這個案頭做過一定美化的,而且 Ubuntu 一直都是那種暖紅色的主題,還是比較討人喜歡的,我就很喜歡 Eclipse 在 Ubuntu 中的表現。但是,Ubuntu 的案頭還是有不少需要改進的地方。見:

①左側的 Dash。Ubuntu 的傳統特色,也是我每次都要去掉的特色。Dash 雖然方便,但是螢幕左邊緣被佔掉這一條空間還是令人不爽的,而且和右邊緣不對稱。而且 Dash 的配色並不一定總能和案頭上的工作視窗保持同樣的風格,所以有時看起來比較突兀。在以前的 Ubuntu 版本中,我總是設定為自動掩藏,然後滑鼠在螢幕左側划過時出現。在現在的版本總,該 Dash 是由 gnome-shell-extension-ubuntu-dock 擴充提供的,可以把它刪掉,也可以把它設定為顯示到螢幕底部。

②左上方的“活動”按鈕。這個按鈕很彆扭,本來把“Activities”翻譯成“活動”,就很有點詞不達意。而且這個按鈕有點多餘,不要它也可以,直接使用 Super 鍵調出 Activities Overview 介面更方便。使用 gnome-shell-extension-hide-activities 可以把這個按鈕隱藏。

③案頭頂端佔用空間太多。可以看到,當我把一個視窗最大化後,頂部有 Gnome Shell 的 top panel,其次是視窗的標題列(top bar),再然後是視窗的功能表列。這幾個元素就佔據了案頭頂端太多的空間。解決這個問題,有兩個方案,一個是把視窗的標題列放到 top panel 中,另一個是把功能表列放到 top panel 中。可以使用 pixelsaver 外掛程式或者 Global Application Menu 外掛程式。

④位於 top panel 中間的時鐘。為了在 top panel 中留出足夠的空間,我們需要把時鐘移動到右邊,可以使用 Frippery Move Clock 外掛程式。

⑤頭重腳輕的問題。螢幕頂端元素眾多,螢幕底端啥都沒有,有點頭重腳輕的感覺。可以使用 Dash to dock 外掛程式,並設定為 Dock 顯示在底部。當然,也可以使用 Cairo-dock。

⑥背景圖片太單一的問題。我當然有背景輪換大法啦。

安裝Gnome Shell的Extension

分析完問題,下面開始實戰。先從 gnome-shell-extension 入手,我們即可以使用 Ubuntu 官方軟體倉庫中的 extension,也可以到 extensions.gnome.org/ 下載 extension。我們需要安裝兩個工具,gnome-tweak-tool 和 chrome-gnome-shell,前者是 Gnome 的設定工具,後者可以使我們直接在 extensions.gnome.org/ 的網頁上安裝 extension。安裝這兩個工具的命令如下:

sudo aptitude install gnome-tweak-toolsudo chrome-gnome-shell

使用sudo aptitude search gnome-shell-extension命令看一下 Ubuntu 的官方軟體倉庫中提供哪些 extension,並開啟 gnome-tweak-tool 看看 Ubuntu 已經給我們預裝了哪些 extension。如:

這兩個外掛程式都不是我們想要的,把它們卸載掉吧。命令:

sudo aptitude purge gnome-shell-extenion-appindicator gnome-shell-extension-ubuntu-dock

按 Alt+F2,輸入 r,按 Enter 運行,可以重啟 Gnome Shell,卸載下面兩個外掛程式後,討厭的左邊 Dash 不見了,如:

下面,來看看怎麼把時鐘移到右邊。開啟 extensions.gnome.org/ ,搜尋 Frippery Move Clock,然後開啟這個 extension 的頁面,如:

我們先要確認一下該 extension 能夠支援的 gnome-shell 版本,Ubuntu 18.04 中的 gnome-shell 是 3.28 版,所以這個 extension 是可以裝的。別的 extension 也一樣,如果不支援這個版本的 gnome-shell,安裝就會出錯。直接在網頁中點右上方的按鈕,就可以安裝了。安裝完之後,時鐘自動移到了 top panel 的右邊,網頁中的 extension 狀態也從 off 變成了 on,如:

有一些外掛程式 Ubuntu 官方倉庫中的就不錯,可以直接安裝。例如 Hide Activities 和 pixelsaver,還有 remove dropdown arrows。使用如下命令安裝:

sudo aptitude install gnome-shell-extension-hide-activitiessudo aptitude install gnome-shell-extension-pixelsaversudo aptitude install gnome-shell-extension-remove-dropdown-arrows

安裝完這三個 extension,重啟 gnome-shell,使用 gnome-tweak-tool 開啟這三個 extension 後,效果是這樣的:

可以看到,“活動”按鈕隱藏起來了,以後要啟動程式必須使用 Super 鍵了。視窗的標題列和 top panel 合并了,節約了一行空間。唯一的遺憾是視窗的最大化、最小化和關閉按鈕不是在螢幕的最右端,想關視窗的時候找起來有點費勁。不過沒關係,我們可以把這三個按鈕放置到視窗的左邊。這真的不是為了模仿蘋果哦,是這樣放要關視窗的時候按起來最方便。如:

反正安裝 extension 就這兩種方法,後面我就不講安裝過程了,直接展示 extension 的效果。

Dash to dock,解決頭重腳輕的問題,將 dock 設定為顯示在螢幕下方,如:

Frippery Applications Menu,顯示一個類似 Windows 開始菜單的應用程式菜單,我個人認為沒啥用,畢竟我們不能總是用 Windows 的習慣使用電腦嘛。如:

Places Status Indicator,顯示一個菜單,便於我們快速定位檔案系統中的常用位置。我也認為這個 extension 沒啥用,因為 Gnome 內建的檔案管理工具就有這樣的快速定位功能。如:

Open Weather,顯示天氣功能,如:

System Monitor,系統監控,如:

我還是認為以上兩個外掛程式沒什麼用。下面是 Coverflow Alt-Tab,可以使視窗切換的效果更佳酷炫,如:

在以上我考察的 extension 中,至少有四個我認為是沒有用的,它們分別是:Frippery Applications Menu、Places Status Indicator、Open Weather、System Monitor。前面兩個我認為沒用,是因為 Gnome 3 已經有更好的 Overview 介面和 Dash 了,檔案管理工具也足夠好用了,沒必要再來這兩個菜單。後兩個我認為沒用,是因為我覺得在案頭美化領域,大家一直以來都嚴重缺乏創意,不是顯示天氣,就是顯示系統監控,如果用 conky 搞案頭小組件,顯示的也是天氣、CPU、記憶體、檔案位置什麼的,真的是爛大街了。至於視窗切換的效果,我覺得要不要都無所謂,沒有誰一天到晚切換視窗玩,而且我覺得 Gnome 3 的動態工作區和它的快速鍵已經很好用了。

所以,我的案頭最終是下面這樣的,前面考察的十個 extension,我只開啟了五個,而且關閉了 Dock 的自動隱藏。如:

更改Gnome Shell的主題

Ubuntu 的主題我已經覺得很漂亮了,不想改。所以我就弄個 Fedora 28 玩一玩。我一般到 www.gnome-look.org/ 尋找主題,當然,你也可以去 github 上找。Gnome Shell 的主題很多,一個一個試總會找到自己滿意的。我這裡就俗一把,以網路上最常見的模仿蘋果的主題來做樣本吧。

中的這幾個都是模仿 MacOS 的主題,就選擇 macOS High sierra 和 macOS High sierra Dark 吧,點進去,會發現這兩個主題都提供 for dash to dock 和 for dash to panel 的版本,而每個版本還分為透明和不透明。這裡就選擇 for dash to dock 的版本吧。下載,解壓縮,然後把包含主題的檔案夾拷貝到/usr/share/themes目錄中。然後,通過 Gnome Tweak Tool 更改 Gnome Shell 的主題,如:

可以看到,Top panel 的顏色改變了。當然,這還不夠,我們需要所有的視窗、視窗中的控制項都改變樣式。這需要 GTK 3 主題。我選擇的是 X Arc Collection 這一款,如:

安裝過程是一樣的,下載、解壓縮,然後拷貝到/usr/share/themes目錄,使用 Gnome Tweak Tool 設定 GTK 3 主題(應用程式主題),如:

設定完之後,發現視窗漂亮多了。現在,我們還缺 dock 和表徵圖主題。至於表徵圖主題,可以選用經典的 numix 系列。非常幸運的是,Fedora 28 的官方倉庫中內建該表徵圖主題。使用如下命令安裝:

sudo dnf install numix-icon-theme numix-icon-theme-circle

如:

dock 就安裝 dash to dock 吧,可以在 extensions.gnome.org/ 中安裝,也可以直接使用 Fedora 28 官方軟體倉庫中內建的。如果使用官方軟體倉庫中內建的,使用如下命令安裝:

sudo dnf install gnome-shell-extension-dash-to-dock

將 dock 設定為顯示在螢幕底部,並使用 numix-circle 表徵圖主題,其效果如:

從可以看出,Gnome Shell 的主題有亮色和暗色可以選,相應的 GTK 3 主題也有亮色和暗色可以選。一般情況下,亮色和亮色搭配,暗色和暗色搭配。如果都選擇暗色,就是下面這樣的效果:

還是很漂亮的,不是嗎?當然,這裡只是簡單展示了一下修改主題,除了修改主題之外,前面提到的 Hide Activities、pixelsaver、Frippery Move Clock、Remove Dropdown Arrow 等 extension 也是可以安裝的,以便於進一步提升 Fedora 28 的體驗。如果說還差點什麼的話,那就是案頭壁紙不那麼令人滿意了。下一節,我們來設定讓 Gnome 3 動態切換壁紙。

動態切換壁紙

所以我們需要自己去網上下載一些自己喜歡的壁紙,風景也好,美女也好,動漫也好,遊戲電影 CG 也好,看自己的愛好了。壁紙的尺寸和自己螢幕的解析度匹配最佳,這樣避免壁紙在放大縮小的過程中出現失真。把下載的圖片都移動到/usr/share/backgrounds/目錄下,因為存取權限的原因,需要使用sudo mv命令,如:

Gnome 3 內建自動切換壁紙的功能,這個功能是由兩個 XML 檔案控制的。首先,是在/usr/share/backgrounds/contest目錄下需要有一個動態壁紙定義檔案,它定義了有哪些壁紙參與切換,以及切換的時間和頻率;其次,是/usr/share/gnome-background-properties/目錄下需要一個 XML 檔案,只有在這裡的 XML 設定檔中提到的壁紙和動態壁紙,才能在 Gnome 3 的系統設定介面中看到。

先來編寫/usr/share/backgrounds/contest目錄下的動態壁紙定義檔案。進入該目錄後,可以看到系統內建一個動態壁紙定義檔案 bionic.xml,我們可以參考其中的內容,依葫蘆畫瓢編寫我們自己的動態壁紙定義檔案。系統內建的動態壁紙定義檔案如下:

該檔案的內容非常清晰明了,它就是設定每一張壁紙先保留多少秒,然後切換到另外一張壁紙,切換過程經過幾秒。我下載的壁紙比較多,要手動寫一個這樣的設定檔是不可能的,一個一個的輸入圖片的路徑和名稱會累死人的,所以需要一個 Bash 指令碼來自動產生一個這樣的設定檔。我寫的產生動態壁紙設定檔的 Bash 指令碼如下:

files=`ls -U /usr/share/backgrounds | grep -v contest`last_file='empty'echo '<background>'echo '  <starttime>'echo '    <year>2016</year>'echo '    <month>07</month>'echo '    <day>15</day>'echo '    <hour>00</hour>'echo '    <minute>00</minute>'echo '    <second>00</second>'echo '  </starttime>'for current_file in $filesdo    if [[ $last_file == 'empty' ]]    then        last_file=$current_file        echo '  <static>'        echo '    <duration>300.0</duration>'        echo "    <file>/usr/share/backgrounds/$last_file</file>"        echo '  </static>'    else        echo '  <transition>'        echo '    <duration>5.0</duration>'        echo "    <from>/usr/share/backgrounds/$last_file</from>"        echo "    <to>/usr/share/backgrounds/$current_file</to>"        echo '  </transition>'        echo '  <static>'        echo '    <duration>300.0</duration>'        echo "    <file>/usr/share/backgrounds/$current_file</file>"        echo '  </static>'        last_file=$current_file    fidoneecho '</background>'

把上面的指令碼儲存為generate_mywallpaper_xml.sh,然後使用chmod u+x generate_mywallpaper_xml.sh為該指令碼添加運行許可權。這個指令碼是直接存取/usr/share/backgrounds目錄的,產生的 XML 設定檔直接輸出到標準輸出。所以,這樣產生自己的設定檔:

./generate_mywallpaper_xml.sh > youxia.xmlsudo mv youxia.xml /usr/share/backgrounds/contest

再來編寫/usr/share/gnome-background-properties/目錄下的 XML 設定檔。進入該目錄後,同樣可以看到兩個系統內建的設定檔,開啟其中一個,參考其中的內容,使用sudo vim youxia-wallpapers.xml命令建立我們自己的設定檔,在該檔案中,引用前面產生的/usr/share/backgrounds/contest/youxia.xml,如:

儲存該檔案後,就可以在系統設定中設定壁紙了,選擇這個自訂的動態壁紙即可,如:

在 Ubuntu 中設定好自動壁紙切換後的效果,我在Linux案頭玩家裝B指南:01.玩轉Linux系統的方法論中已經大量展示了,所以這裡就不了。在 Fedora 28 中走完以上所有步驟後,可以得到如下的效果:

總結

這一篇隨筆主要講的是 Gnome 3 案頭的美化思路。這裡展示了 gnome-shell-extension 的安裝、主題的更改(包括 shell 主題、GTK 3 主題和表徵圖主題)以及自動壁紙切換。影響 Linux 案頭是否好看好用還有一個非常重要的方面,那就是字型。關於 Linux 案頭字型配置方面的內容,敬請期待我的下一篇。

求打賞

我對這次寫的這個系列要求是非常高的:首先內容要有意義、夠充實,資訊量要足夠豐富;其次是每一個知識點要講透徹,不能模稜兩可含糊不清;最後是包含豐富的,讓那些不想裝 Linux 系統的朋友們也可以領略到 Linux 案頭的風采。如果我的努力得到大家的認可,可以掃下面的二維碼打賞一下:

著作權申明

該隨筆由京山遊俠在2018年09月12日發佈於部落格園,引用請註明出處,或出版請聯絡博主。QQ郵箱:1841079@qq.com

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.