之前看了 terminator source code 裡的 .desktop 時,想說為什麼沒有寫 Icon 的完整路徑,於是就跳過這段,後來碰到問題,下去看了才知道。
根據 .desktop 的 specification,.desktop 裡的 Icon 不建議放完整路徑的檔名,只要放名稱就可以了,桌面環境會自動去 /usr/share/icons、/usr/share/pixmaps 下找。
所以如果你的程式要有 icon,那麼你應該在這些地方放你的 icon
- /usr/share/icons/hicolor/<size>/apps:
size: 16×16, 22×22, 24×24, 32×32, 48×48, scalable,除 scalable 是 svg 外,其他都是 png/jpg。 - /usr/share/pixmaps/ :這裡也是 png/jpg
照這樣放了以後,.desktop 裡就不需要放完整路徑的檔名,只要放名稱就可以了。
之前還笨笨的寫 sed 去替換說,可是用 sed 替換,在 launchpad build server 上,會遇到一些問題 (因為我是把 sed 這段寫在 setup.py 裡),不得已,回頭看 terminator 研究,才知道來龍去脈。