KeepZotero 防止 Zotero 被關掉

這是我寫的 Zotero 的 Add-on,功能很簡單,就是防止 Zotero 被關。

Zotero 並沒有縮小到右下角 (話說右下角那塊該怎麼稱呼?) 的選項,所以當關閉程式後,Zotero 就會關閉;但是這樣會導致瀏覽器的 connecter 無法加入文獻 (現在有多了連接網路帳戶功能,所以有啟用的話關掉是不會影響),但其他功能還是需要保持他開著,但我有時候會不小心的把他關起來,要再把 Zotero 打開就覺得很麻煩且會打斷操作。因此寫了 KeepZotero ,雖然達不到縮小到右下角的模式,但最後達成的效果是差不多的;一般關閉方式如 Ctrl+W 等會變成縮小,這樣就不容易關掉了,只有當最小化或者設定的結束才能關閉。

KeepZotero 展示 (預設)

  • Ctrl (Command) + W, 右上角關閉 或者 Alt + F4 只會縮小視窗
  • Crtl+Q 會關閉 Zotero
  • 當最小化時可以關閉 Zotero

安裝流程

  1. 從 Release 下載 xpi
  2. 打開 Zotero → Tools → Add-ons
  3. 右上角齒輪打開選擇 Install Add-on From File…
  4. 選擇剛剛下載的 xpi 即可安裝

詳細功能介紹

  1. (預設啟用) 當 Zotero 不是最小化時,一般關閉的方式只會使之最小化。這包含右上角的關閉按鈕、Alt + F4。當最小化時,從工具列關閉才能關閉 Zotero,另外從上方工具列的 File/Close 或者 File/Exit 還是保持原來作用。
  2. (預設啟用) 增加 Ctrl (Command) + W 讓他最小化。此快捷鍵在其他介面如 pdf reader 等仍保持原作用關閉該分頁
  3. (預設停用) 當關閉 Zotero 時,會跳出提示視窗詢問是否要退出。但這個目前不是很穩定,在 MacOS 上更是如此,如果沒有打開設定一次過,基本上會沒有作用。
  4. (預設停用) 將 Alt + F4 設為關閉 Zotero。當第一項啟用時,Alt + F4 會是最小化,配合此項可以再讓它變成關閉 Zotero
  5. (預設啟用) 增加 Ctrl + Q 關閉 Zotero

第 4, 5 項是只有在 Windows 和 Linux 上才有作用,因為 MacOS 並沒有使用 Alt + F4Command + Q 就會關閉 Zotero 了

開發過程跟問題

雖然我有寫過其他程式語言,但 Javascript 或者 web extension 基本上沒碰過,整個能完成,主要是靠 Thunderbird keepintaskbar 給我一開始搜尋的方向,Zotfilezotero-hellow-world 讓我能夠照著架構把這個完成。但途中我也遇到一些問題,但搜尋起來好像沒有個所以然,所以如果有人能幫忙解釋的話就幫大忙了。

  • 我有試過將監聽事件加入到按下 File/Close。他有再關閉前偵測到事件,但 Zotero 還是會關閉,即便我用 stopPropagation() and preventDefault() ,印象中也有使用 capture: true 的方式,但還是一樣
  • 有試過使用 visbilitychange 而不是 beforeunload (第三項功能),但 Zotero 好像不會改變 visiblitychange 這項。
  • 我只能用 2 而非 Components.interfaces.nsIDOMChromeWindow.STATE_MINIMIZED 來檢查是否最小化,後面那項會直接顯示 undefined 未定義。
  • 沒找到如何在設定頁面顯示確認按鈕於 MacOS 上,所以我把同步設定的改到 unload 時觸發。

結語

以上就是我寫的 KeepZotero 介紹跟一些開發上遇到的問題,歡迎大家來使用,也希望這個是大家所需要的功能之一,使用上發現任何問題都歡迎來回報。

1個讚