2020年2月6日 星期四

2006 Core Duo MacBook 老機重生 (調教篇)


安裝了 Linux Mint 之後,你會發現它看起來很清爽,跑起來也很流暢,但一堆詭異的非人性化設定及功能的缺失,造成這個系統還是很不好用,這篇文章我就來介紹我做了哪些事,讓手上這台已經十三歲的電腦,還能夠滿足我的基本需求。提醒一下,我以下提到的軟體大多可以用 Linux Mint 內建的 "軟體管理員" (Software Manager) 安裝,別迷信 sudo apt-get install 指令,兩者能安裝的軟體是一樣多的 (因為軟體源一樣阿),有圖形介面用為何不用呢?


硬體驅動

1. iSight:Linux 內建的驅動程式應付一些標準化的硬體 (如鍵盤、滑鼠、揚聲器等) 是沒有問題的,可是面對 Apple 當時內建於 MacBook 的新硬體 iSight 就沒辦法了,所以要額外安裝驅動程式。由於驅動程式都來自硬體廠提供,所以 "理論上" 要從 Mac OSX 的光碟或是系統中取得,在這個例子裡,驅動程式為 Mac OSX 10.5 (含) 之前的系統檔 AppleUSBVideoSupport,路徑為 (參考資料):/System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBVideoSupport.kext/Contents/MacOS/AppleUSBVideoSupport。

如果像我一樣已經把整個 Mac OSX 都移除,就只能在網上找看看了,目前這個 Github 頁面放的檔案還可以用。下載之後隨即安裝 isight-firmware-tools,安裝期間它會要求存取 AppleUSBVideoSupport 檔案,請記住檔案路徑必須要是全英文,如果失敗的話必須使用指令 sudo apt-get --purge remove isight-firmware-tools 進行完整移除,再重新安裝。安裝成功後,會在 /lib/firmware/ 檔案夾中看到 isight.fw 驅動檔 (/lib/firmware/isight.fw),先完全關機以重置硬體,開機後理論上 iSight 的攝影鏡頭就能用了 [1]。


我安裝了 Cheese 這款類似 PhotoBooth 的軟體做測試,可用是可用,但是這台筆電的顯卡太差了,沒跑幾分鐘就風扇狂轉,所以就此打住啦,至少掃個碼還沒問題。至於 iSight 的麥克風部份,很遺憾地它是無解的,這篇文章 (見 "Microphone" 一段) 中介紹的方法無效 (至少我在 Linux Mint 找不到相關選項,系統設定中也顯示沒有輸入設備),而專門的 iSight 音訊驅動 liSight 只適用於外接的 iSight 攝影機 (火線連接,很老的產品),像 MacBook 內建的 iSight 不支援 (USB 連接),所以這部份我只能放棄,若有高手知道解法請在文章下方的討論區留言。

2. 休眠 / 暫停:Mac 最優秀的地方除了作業系統之外,無與倫比的軟硬體結合也是一大賣點,因為軟硬體都是 Apple 一家控制的,像休眠這種考驗電源管理的功能應該很少有他牌電腦能夠跟 Mac 匹敵。Linux 的休眠指令請看我的舊文,不過這些東西在 2006 Core Duo MacBook 上通通沒有用!原因在於新版 Linux 內核本身就不支援這款筆電的休眠 (參考資料,見 "Suspend")。依我的使用經驗,一旦輸入休眠指令或是達到觸發休眠 / 暫停的條件,螢幕就會將亮度調得很高,但又顯示黑屏 (在 LCD 上你看得出來那個亮度),非常浪費電,而硬碟也完全沒有被斷電及鎖定。

根據參考資料,最近有支援休眠的一版是 2.6.22-12,要知道目前 Linux 內核已經超過 5.0 版了,而且內核每升一版差別都是巨大的,腦袋有洞才會為了這個把系統的內核降級,不僅操作非常麻煩而且有可能造成其他軟體的運行問題,我知道真的有老外腦袋有洞這樣幹了,但我採用一個曲線救國的方法:讓電腦不需要休眠。


想想看我們為何要讓筆電休眠?省那一點電嗎?當然不是,目的是為了讓移動時不要傷到硬碟嘛!那我讓硬碟不怕震不就好了?這就是我將這台老機器的機械硬碟升級成 SSD 的主要原因。上圖是我在電源管理頁面的設定值,注意要設定為永不暫停,且筆電閤蓋時設定為 "鎖定畫面" 或 "不做任何事" 即可。

3. 風扇:2006 年這款 MacBook 由於發生過 RSD (Random Shut Down),可知其散熱設計本來就有問題,而且無藥可救,頂多就是讓它不要亂關機而已。我這台 MacBook 即使使用 Mac OSX Tiger 也是常常風扇狂轉,特別是運行一些比較吃重硬體的工作,比如串流影片 (例如 Youtube) 或是瀏覽掛滿 Javascript 的網頁 (如 Facebook),換到 Linux 之後也是一樣。目前為止我沒有人為干預風扇的轉速,就先提供一個第三方的風扇驅動程式 mbpfan 給各位做個參考。


系統調教

1. gcin:Linux Mint 繁體中文介面的預設輸入法模組是 Fcitx,其軟體為大家很熟悉的新酷音 (或者說,它的某主要開發者更有名)。我不知道其他人是怎麼想的,我本人對於新酷音這種 "硬要用數字鍵選字" 的設定一點好感都沒有,這是微軟ㄅ半輸入法的餘毒嗎?為何不讓選字只用方向鍵解決?改都不能改。我用了幾分鐘十分痛苦,安裝 gcin 就解決一切了,唯一的問題是選字框會定死在視窗左上角,但安裝 gcin-gtk2-immodule 及 gcin-gtk3-immodule 之後就解決了 (參考資料)。

gcin 還有內建一個很實用的功能:簡體輸出 (參考資料),完全符合我在對岸論壇或 B 站留言時的低調需求 (驚)。以前在 Windows 及 Mac OSX 上還有奇摩輸入法提供簡中輸出的功能,可惜不繼續維護了 (已不相容 Windows 10),而小麥注音直接將此功能移除,真希望 gcin 能有原生 Mac 版。對了,新酷音也有簡體輸出功能,但真的難用,切換後還要等一下才能開始工作,這是在逗我嗎?

左方的方塊上按左鍵是切換全形半形,右鍵則有一堆功能選項,其中就包含簡體輸出

對了,如果是要轉換繁簡中文的文字檔,除了使用 iconv 轉碼工具之外 (但有點麻煩),Magic Len 開發的 s2twtw2s 也可以考慮,它們還提供逐行輸入轉換,挺有趣的。

2. Nemo-preview:說到 macOS 中我最常使用的功能,那一定是 Quick Look,用空白鍵預覽檔案實在太方便,Windows 上已經有第三方軟體抄了,在 Linux 上能不能做到呢?可以,這就是 Linux Mint Cinnamon 預裝的 Nemo-preview。


圖片、PDF、音樂、影片大致都沒問題,但是檔名似乎不支援中文 (攤手),可能還是編碼問題。說到檔案預覽功能,這跟桌面環境 (圖形介面) 裡的檔案管理器 (File manager) 有關,比如 Cinnamon 裡的檔案管理器為 Nemo,Nemo-preview 則為它的外掛程式,而網上很有名的另兩個預覽軟體 Gloobus previewGnome sushi 則為檔案管理器 Nautilus 的外掛程式,用在 Ubuntu 比較多。至於 MATE 桌面 .... 它的檔案管理器為 Caja,很遺憾這貨至今都不支援檔案預覽,老外也在問但沒下文,這就是我捨棄 MATE 而選擇 Cinnamon 的主要原因。

3. Nemo actions:一個系統就算功能再多,也不見得能滿足每個人的需求,我在 macOS 上寫了很多 Applescript / Automator 腳本,在 Linux 裡是否也有配套方案?當然有,那就是熱門的 Shell script,但是 Automator Services (右鍵選單) 有沒有呢?這也有,不過名稱為 "action",比如 Nemo actions、Nautilus-actions 及 Caja-actions,後兩者甚至有專門的開發工具 (e.g. Caja-actions configuration)。

Nemo actions 的儲存路徑:/usr/share/nemo/actions/

Nemo actions 似乎沒有專門的開發工具,不過接口設定能從系統內建的 action 去類推,由於我並不擅長寫 Shell script,時間有限也沒寫出多少好用的東西,所以就先不分享啦~

4. 改回英文路徑:Linux 的圖形介面有不少地方模仿 Windows,但又模仿不到精髓,比如說家目錄下各資料夾的名稱,Linux 將其改成符合使用者語系的名稱,原本的英文名就不存在了。例如,桌面資料夾是 ~/桌面/,用 ~/Desktop/ 去連結是找不到的,因為根本沒有這個資料夾。


Windows 跟 macOS 都有 "虛擬資料夾" 技術來避免這種窘境,Windows 的作法我不清楚,macOS 則是在資料夾裡放入一個沒有內容的隱藏檔  .localized,檔案管理器 (在 macOS 裡就是 Finder) 發現此檔就會進行相關的轉換,讓用戶雖然使用英文路徑,但看到的是其設定語系相對應的資料夾名稱。在 Linux 上也能做到,只是要以下列指令手動設定 (參考資料):

LANG=C xdg-user-dirs-gtk-update

執行上述指令有兩點需注意:1. 不是每個對桌面環境都有用,像我的 Linux Mint 19.1 MATE 就沒反應 (MacBook 的 19.3 Cinnamon 倒是沒問題),不知道有什麼套件沒裝,什麼錯誤訊息都沒有;2. 系統的確是將那些重要資料夾與新的英文路徑連結,但是舊的中文資料夾不會刪除,裏面的資料也沒有自動轉入新資料夾,也就是說系統不是單純地把資料夾改名,而是新增了一堆英文資料夾,使用者要自己把舊資料移入新的英文資料夾,再把舊的中文資料夾刪除。

5. 楷體問題:我在安裝 Linux Mint 19.1 MATE 之後,除了內建輸入法讓我不舒服之外,另外一點就是我發現網頁裡的字體都是楷體,像這種有襯線、筆劃又過細的字體非常不適合在電腦螢幕上閱讀,所以非改不可。問題的起因在於字體的 fallback 機制 (參考資料),Linux 系統的字體儲存在 /etc/fonts/conf.avail/,而系統調用的字體是在 /etc/fonts/conf.d/ 資料夾中,conf.d 資料夾裡的檔案全是 conf.avail 裡字體檔的替身 (或稱 soft link),所以將不要的字體檔替身刪除即可,這兩個待宰字體檔就是 65-fonts-arphic-ukai.conf 及 65-fonts-arphic-uming.conf (需有管理者權限)。不過,這個楷體問題我在 Linux Mint 19.3 Cinnamon 上沒遇到,不知道是不是系統重新做了設定,跟 bug 一樣被修掉了?

6. 純文字貼上:簡單的小功能,但我幾乎每天都要用,就是把複製到的、帶有格式的富文字 (rich text) 以純文字的型式貼到別的地方,看似很簡單但沒想像中直覺,在 macOS 上有 "貼上並符合格式" (Paste and Match Style) 的選單項 (限 Cocoa 軟體) 及一些專用軟體 (如 Plain Clip) 可以用,在 Linux 可以用什麼?答案很簡單,直接使用 Ctrl + Shift + v 的快捷鍵即可 (參考資料),連軟體都不用裝。這個快捷鍵很類似 macOS 的 "貼上並符合格式" 的快捷鍵 (Command + Shift + Alt / Option + v),但好按一點,由於 Linux 不是每個軟體都預設有工具列,所以這個通用快捷鍵我到最近才發現 ....

有網友推薦風評不錯的剪貼版管理器 Parcelite,其中當然也包含去除格式的功能,待我有需要時再來試試吧!

7. 桌面佈局調整:Cinnamon 預設的桌面工具列有個設定很令我蛋疼,就是所有打開的視窗不會以分頁的型式顯示在工具列上,而是縮到工具列上的程式圖標裡。我不知道 Cinnamon 的圖像交互工程師是怎麼想的,這很明顯又是一個 "想抄又抄不好" 的神來之筆,只是這次中獎的是 macOS。想想 macOS 上是怎麼做的?程式圖標集中在 Dock 上,使用中的程式圖標會有探照燈或指示標誌,手動縮小的視窗會收到 Dock 的右邊區域,一切都很清楚;Cinnamon 沒有 Expose,其視窗縮到程式圖標之後只有多一個微微發光的外圈,根本看不清楚,雖然第二個視窗開始會有數字腳標,但多數程式都是以單一視窗使用的阿,所以我常常看不出常駐在工具列的 Firefox 是否有啟動。再者,上述被稱為 Group Windows List 的功能在系統偏好設定中完全沒提及,如果你看它不爽,在程式圖標上按右鍵選擇偏好設定,並移除了它 ... 呵呵,你的工具列上再也不會顯示任何視窗與程式圖標,整個都爛了,並沒有調回來的方法。這種低級錯誤果然看到有老外在罵,解決方式就是開啟 "歡迎使用" 程式 (真沒想到這個程式我還會開啟第二次,第一次是安裝好系統後自動開啟的),在桌面佈局中選擇 "傳統" 或 "現代",當然,以前的設定值都沒了,按下去就是重置桌面佈局模式。


"現代"?科科。


第三方工具

1. PDF-Shuffler & Okular:預設的 PDF 瀏覽程式非常陽春,就只能看而已,所以裝幾個工具程式做簡單的編修是必要的。PDF-Shuffler 是非常好的 PDF 編輯程式,合併 / 旋轉及調整頁面順序都沒問題,可惜不能加註解;Okular 正好與 PDF-Shuffler 互補,選取 / 剪裁 / 加註解的功能都做得非常好。

 PDF-Shuffler

 Okular

上述兩個 PDF 工具應該已經非常夠用了,如果不夠可以看看這篇文章,裏面介紹一堆硬核 PDF 編輯軟體。

2. Alarm-clock-applet:簡單的鬧鐘及計時器,但我更看好的是它的自由度,因為它可以自訂提醒的音樂或是執行某個腳本,後者就非常有用了。


3. 行事曆及代辦事項:本來想推薦 Gnome -CalendarGnome-Todo, 兩者都是很好的小工具,但想想他們都不能跟 iCloud 同步 (我記得 Gnome-Calendar 能跟 Google Calendar 同步,但對我還是一點用都沒有),所以還是決定用 Calendar 及 Reminder 的 iCloud 網頁版。

4. File sharing:電腦 / 移動設備之間的傳檔是非常重要的剛性需求,但有時候比想像中還麻煩。Apple 開發了 Air Drop 方便傳檔,但 Linux 顯然搭不上這台順風車。由於不喜歡 "雙方都要安裝特定軟體" 的傳檔方式,我使用 Python 內建的檔案伺服器功能,也就是著名的指令 "python -m SimpleHTTPServer"。但問題是這個指令太陽春了,要自己選好資料夾、查好 IP,還不支援檔案上傳!所以我找到網友 jJayyyyyyy 改寫的 py3SimpleHTTPServerWithUpload.py (Github 頁面),將其放入 /usr/local/bin/ 資料夾中,寫一個 Shell script "file_sharing.sh" 去自動化查詢區網 IP、選定分享的資料夾、秀出分享的網址,讓其他裝置的人得知要用哪一個網址連入,而且這個檔案伺服器還支援上傳!


檔案伺服器連線頁面

由上圖程式碼可知我使用了 zenity 這個對話框工具 (很像 Applescript 的 display dialog) 及 Python 3,有缺的人請自行安裝 [2],雖然對於 Linux Mint 都是預裝的套件。最後提醒兩點:1. 執行這個腳本時,如果是雙擊執行請記得一定要選擇 "在終端機中執行",不然會很難關閉 (一般來說,關閉 Python 檔案伺服器只要關閉終端機即可);2. 請在防火牆打開 8000 連入的連接埠,這樣別的裝置才可以連入你的電腦。


這個 8000 的連接埠可以一直開著,反正你沒開伺服器別人也連不進來,不過我在已知很久不會使用的情況下都會關閉就是了。

5. SSH server:SSH 遠端登入可說是 Linux 的常規操作,不過有些 Linux 發行版沒有預裝 SSH server,只有 SSH client,所以可連出不能連入,因此若要讓其他裝置透過 SSH 連入,必須要先安裝 openssh-server。安裝了之後就可以為所欲為了,阿不是,SSH 的連線語法我在 "用樹莓派自製 VPN 翻牆機" 一文中提過,在此就不贅述,基本上 SSH 遠端登入後能用指令幹的事 "多半" 都能遠端操作 (嗯,還是有不少例外),但我這裡要講一個有趣的應用:從 iOS 遠端留言 / 傳話。


遠端記事本 / 剪貼版收到的文字

我放置一個空白文字檔 remote_clipboard 在家目錄下的 "桌面" 資料夾裡 (可自由改名,但捷徑裡也要跟著改),然後把選取的文字或自己輸入的文字藉由 SSH 傳到我的 Linux 電腦裡,附加到該文字檔裏面,我順便加了當時傳訊的時間,這部份可自由修改。乍看之下好像沒什麼,用 IM 軟體不就好了?可是 Linux 沒有那些 IM 軟體可以裝阿,而且有的還不支援傳訊給自己,比如說 LINE,至少我不知道怎麼做。OK,以上的 SSH 應用只是一個範例,至少對我有用,給各位做個參考,提醒一下,別忘了打開 SSH 要用的 22 連接埠喔!



後記

嗯 .... 所謂自己挖的坑含淚也要填完 .....

以上就是我為了這台 "新電腦" 所作的調教及優化。Linux 有很廣的自定義空間,只要有啥用了不爽就去想辦法改,雖然我不是喜歡折騰的人,但看到自己的老機器能夠一步步變得愈來愈好用,還是很有成就感的。真要說什麼做不到,小地方就不說了 [3],最大的弱項就是圖像編修及辦公軟體的貧弱,前者不是複雜如 GIMP,就是小畫家的弱化版;後者則必須點名批評 Libreoffice,這貨的修圖能力完全是垃圾。你能想像我為了把圖片裡的物件標注一個圓圈,或是想將兩張圖片合併在一起,在幾個軟體間折騰半小時以上,最後放棄有多蠢嗎?我在 macOS 上只需要不到五分鐘就能做完了。其中的主要原因就是 Libreoffice 裡編修完的圖片不能直接導出並儲存 (當然,由於圖像工具真的很難用,編修的過程已經很蛋疼了),必須先轉換成點陣圖才行,直接貼到 GIMP 也是強制轉成一樣的點陣圖,然後畫質就爛成一坨屎,好像不降解析度會死似的,而 GIMP 太複雜,直接在上面作業對新手的我來說還沒辦法立即上手。

嗯,還是 macOS 好,我估計 Libreoffice 的圖像工具五年之後還是同樣的德行,因為它從未變過,可能是自由軟體的人都不重視設計吧?抱怨歸抱怨,還是得感謝自由軟體社群的貢獻,讓我的十三年老機得以重獲新生。


2006 CoreDuo MacBook 老機重生系列:
2006 Core Duo MacBook 老機重生 1 (前言)
2006 Core Duo MacBook 老機重生 2 (安裝篇)
2006 Core Duo MacBook 老機重生 3 (調教篇)


附註
1. 據說較新版本的 Ubuntu 會出問題,相關資訊請看這篇說明
2. 該作者 Github 頁面裡的 py2SimpleHTTPServerWithUpload/ 也包含一個支援上傳的 Python 伺服器腳本,用的是 Python 2.7,可是檔名只要非英文就會亂碼,所以當然用 Python 3 的版本。
3. 比如說 SSH 那裡原本是要做直接推送到 Linux 剪貼簿的 Siri Shortcut,可是 xclip 一直有奇怪的問題,最後懶得折騰就放棄。

4 則留言:

  1. 偶然看到这篇博文。点个赞。 我有一台同样的老机器。我装了一个cloudready在几年前,还挺好用的,为什么不装一个?

    回覆刪除
    回覆
    1. 我查了一下,發現 Cloudready 這東西似乎是 Chrome OS 的隨身碟版。我當初不知道這個系統,但即使我知道,應該還是不會裝的,因為我可以用一個輕量級系統+Chrome 去取代它,而且不缺失安裝本地軟件的能力,所以我還是會選 Linux 囉!

      很高興認識同為 Mac 骨灰級用戶的你 :)

      刪除
  2. 作者已經移除這則留言。

    回覆刪除
  3. 近來翻箱時,突然發現我也有這台骨灰級的Mac(2006),正想著可以怎麼處理... 本想找人重灌就好,但看到了這文章突然想放棄...你們有什麼意見嗎?

    回覆刪除