2013年4月2日 星期二

清除 Dock 上的 "最近開啟項目"


我想很多人都遇過上圖的尷尬場面,當初你可能只是為了要關閉程式,而在它的圖示上按個右鍵,結果就 ....... (要跪算盤啦  T_T)

"最近開啟項目" (Recent Items) 是 Mac OSX 程式中一個通用的功能,如果這個程式牽扯到檔案的使用,都可以將這個功能放入,甚至可以說是 Cocoa Framework 裡內建的,有點像 "複製" 或 "貼上" 那樣。所以這個功能充斥在大大小小的程式中,比如說影片播放軟體如 MPlayerX 及 Quicktime Player X、文書軟體如 LibreOffice 及 iWork 等等都是受害者。但是,在 10.7 Lion 推出前,有用過、或是有注意到的人卻沒有想像中地多,這是為什麼呢?


原因有兩點,第一點看上圖便知 .... 發現了嗎?這個功能的選單位於 "檔案" 的目錄下,沒特別去找的人不見得會發現,當然這有點硬凹 ..... 而第二點是 -- 很多人都不需要這個功能。大家不彷想一想,你記不記得你要用的檔案放在哪裡?不記得嗎?那麼你會怎麼做?我想是用搜尋吧?如果是近期使用過的檔案,會忘記擺在哪裡的人就更少了,就算真的忘記,多數人還是會用搜尋去找,不見得會去看某軟體的 "最近開啟項目",何況由於檔案系統的 "自由" 性,你還不見得記得那個檔案當初是用哪個軟體去開啟的咧![1]

所以,儘管有些人很常用 "最近開啟項目" 的功能,但我並不認為它是很必要的東西 [2],反倒是增加了 "擾民" 的缺點,原因也不用多說了,瞧瞧上面兩張精美的螢幕擷圖便知。然而,如果像之前 "最近開啟項目" 是藏在 "檔案" 選單裡也就算了,在 10.7 (Lion) 之後,這個討人厭的選單開始在 Dock 右鍵選單中出現,實在讓人看了蛋疼,而且想不看到都難,所以網路上開始有不少人討論該怎麼把這個選單清除掉 [3]。

其實要清除這個選單並不困難,端看你要 "暫時性或永久性清除" 及 "清除個別軟體或全部軟體" 的差別而已,以下我來簡介一下作法:


暫時性清除

  1. 如本文的第二張圖,若要清除某一軟體的 "最近開啟項目",在 "檔案" > "最近開啟的" 選單中,按下  "清除選單"。
  2. 將該軟體的圖示拖離 Dock,或是重新開啟 Dock (在 "終端機" 中打入 "killall Dock" 指令即可)。
真是直覺到不行,應該不用解釋了,第二步是為了讓 Dock 重新讀取新的清單,這樣可以立即看到效果。


永久性清除 (全部軟體)


如果要永久性地清除 "最近開啟項目",則必須更改一些設定,作法是先將選單清除,再設定限制的數目,今後使用該軟體時,"最近開啟項目" 就只會記錄到你要的數目為止,如果設定為 0 就是全部清除。

Mac OSX 的 "系統偏好設定" 已經內建這個清單的全域性設定,位置在 "一般" 選單中,只要設定限制的數目即可,美中不足的是只有 0、5、10 等 5 的倍數可以挑選。設定完之後不會重啟 Dock,所以要等一下才會看到改變,當然你也可以自己重啟 Dock 使其立即生效。


永久性清除 (個別軟體)


這部份就得自己來了,雖然邏輯與清除全部軟體相同,但要自己輸入指令去調整,依序為:
  1. defaults delete [AppIdentifier].LSSharedFileList RecentDocuments
  2. defaults write [AppIdentifier] NSRecentDocumentsLimit 0
  3. defaults write [AppIdentifier].LSSharedFileList RecentDocuments -dict-add MaxAmount 0
  4. killall Dock
上述的 [AppIdentifier] 為該軟體之 plist 設定檔的檔名,比如說 Quicktime Player X 的設定檔名就是 com.apple.QuickTimePlayerX。這些設定檔都在 ~/Library/Preferences 資料夾中,而且你會發現有 "最近開啟項目" 的軟體都會有一個額外的 [AppIdentifier].LSSharedFileList 設定檔,那就是記錄 "最近開啟項目" 的設定檔。可是,直結刪除它是沒用的,只是暫時地清除,一旦再次使用該軟體還是會繼續紀錄,所以必須要在兩個地方更改設定,也就是上述的第二及第三條指令在做的事 (我是設定成 0,你也可以改成其他的數目)。

ClearRecentItems 下載連結

如果你覺得打指令很麻煩,也可以使用小弟我寫的小程式,它是一個 Droplet,只要將你想調整 "最近開啟項目" 的軟體拖到它的圖示上 (可以一次拖入多個軟體),就會出現下面的視窗:


說明如下:
  1. Clear items:此為預設值,作用就是繼續進行調整限制數目的作業,輸入框已做好防呆,你打上髒話都不會當掉,請各位放心  orz
  2. Restore to default:將 "Clear items" 做的設定刪除,跟直接用 "Clear items" 設定限制數目為 10 不同,因為若不將其刪除,"系統偏好設定" 的全域設定就管不了這個軟體的 "最近開啟項目" [4],故想回到當初的狀態就用這個選項。
  3. Cancel:結束程式。附帶一提,在此程式中任何對話視窗裡的 "Cancel" 都是直接結束程式的意思。
以上,如果有任何問題,歡迎跟我聯絡。

題外話,我覺得 Mac OSX 在 10.7 Lion 之後變得太過於 "終端使用者" 化,雖然增加不少方便的功能,但限制多了很多,有些地方甚至讓人困擾,有空再來寫這些 tweak 的小技巧。



附註
1. 上述的言論在 iOS 這種沒有檔案總管的系統裡也適用,因為每個 App 管理的檔案少,想忘也難,何況很多 App 都會自動儲存檔案的使用進度,所以在 iOS 上鮮少看到 "最近開啟項目" 這類功能,實際上也不需要 (目前我只在 Acrobat Reader 上看過)。
2. 不過瀏覽器很需要這類功能,但 Safari 反而做爛了,這個有空再說。
3. 小弟我用 10.4 後就直接跳 10.8 了,沒用過 10.7,對此現象算是後知後覺 orz
4. 講仔細一點就是系統的廣域設定會以使用者新增的 NSRecentDocumentsLimit 字串為優先基準。

1 則留言: