GPL-3.0-or-later · 0.11.1, beta · Linux、Windows、macOS、瀏覽器

sharkfin

適用於以 ROYUAN 硬體為基礎的鍵盤的開源設定工具:Attack Shark、Akko、 Epomaker、MonsGeek、Ajazz、Hator、ikbc 等。在鍵盤圖片上重新映射按鍵、 設定燈效、逐鍵上色、錄製巨集、在磁軸鍵盤上設定軸體, 並把設定備份成檔案。支援清單中有 1412 款鍵盤。

瀏覽器版本需要 Chrome、Edge 或其他 Chromium 瀏覽器。寫入需要 USB 傳輸線。除非套件已經裝好,Linux 需要一行 udev 規則。 Beta 階段:重新調整設定之前,請先匯出一份備份。

sharkfin 鍵盤配置編輯器,顯示逐鍵繪製的 Attack Shark X86,採用 Abyss 配色 sharkfin 鍵盤配置編輯器,顯示逐鍵繪製的 Attack Shark X86,採用 Olivia 配色 sharkfin 鍵盤配置編輯器,顯示逐鍵繪製的 Attack Shark X86,採用 Laser 配色 sharkfin 鍵盤配置編輯器,顯示逐鍵繪製的 Attack Shark X86,採用 Botanical 配色 sharkfin 鍵盤配置編輯器,顯示逐鍵繪製的 Attack Shark X86,採用 8008 配色

功能

  • 按鍵。在鍵盤圖片上點選一個按鍵,把它設成另一個按鍵、滑鼠按鈕、游標移動、滾輪、一個巨集或一個媒體控制鍵。基礎層與 Fn 層,以及旋鈕。每次寫入都會立刻送到鍵盤。
  • 燈光。鍵盤韌體自帶的燈效,多數鍵盤有 18 種,可設定方向、顏色、亮度與速度。你調整時,燈效就在鍵盤圖片上執行。放開滑桿時才寫入鍵盤。鍵盤具備邊緣 LED 時會出現側邊燈控制項。
  • 上色。為個別按鍵上色,再把圖案傳送到鍵盤。傳送是另外一次點選,而且有速率限制,因為圖案會寫入鍵盤的快閃記憶體。
  • 巨集。錄製按鍵與滑鼠序列,每個動作可設定延遲,存入 50 個板載插槽,並可在任一層把某個按鍵綁定到一個巨集:重複、切換,或按住觸發。
  • 軸體。在磁軸鍵盤上:觸發點、回彈點、rapid trigger、死區、動態行程、mod-tap、toggle 與 snap,可依單鍵或全部按鍵設定。已讀出韌體的鍵盤可以寫入,設定精靈也能為你的鍵盤開啟寫入。
  • 裝置。去彈跳、Windows 鍵鎖定、WASD 與方向鍵互換、關閉背光、自動偵測主機作業系統、睡眠逾時、回復原廠設定,以及為有螢幕的鍵盤設定螢幕圖片。
  • 備份。把鍵盤配置、燈效與設定匯出成檔案,之後可以還原。巨集與逐鍵上色不在檔案裡。設定檔儲存在鍵盤本身。
  • 設定精靈。給 sharkfin 還不認識的鍵盤用:幾項測試與問題,把它從唯讀帶到可用,並產生一份回報,讓它對所有人都能用。參見 設定精靈。

支援的鍵盤

sharkfin 與以 ROYUAN 硬體為基礎的鍵盤溝通。大多數回報 USB 廠商 ID 3151;也有些以自家品牌的 ID 出貨。 鍵盤插上時會依照它自己的回應辨識,所以從來不需要你選擇型號。

支援清單中的鍵盤1412
開箱即可寫入1181
連線時向鍵盤詢問指令集,你允許後即可寫入231
開箱即逐鍵繪製373
與你的鍵盤一次性確認後逐鍵繪製832

沒有繪製圖片的鍵盤一樣能用:你會看到按鍵插槽網格,也可以在 「按鍵」分頁裡 繪製鍵盤。完全不在列表中的鍵盤會從它自己的回答讀出,設定精靈 頁面允許變更並逐項檢查。「支援」在各種狀態下分別代表什麼:支援情況。

安全與隱私

  • sharkfin 只寫入設定,絕不寫入韌體。沒有東西可以變磚。如果鍵盤不再回應,拔線十秒。安全
  • 指令集未知的鍵盤不會被寫入。鍵盤會說明自己使用哪一套。
  • 瀏覽器版本載入完成後不會發出任何自己的請求,它拿到的是鍵盤的設定通道,從來不是你打的字。沒有帳號、沒有分析追蹤、沒有 cookie。隱私

常見問題

我的鍵盤有支援嗎?

插上鍵盤,sharkfin 就會告訴你它看到什麼。鍵盤列表每款型號一頁,列出它的 USB ID 以及 sharkfin 在它上面能做什麼。不在列表中的鍵盤會從它自己的回答讀出,並在 設定精靈 頁面完成設定。

我用的是 Linux,需要 udev 規則嗎?

.deb、.rpm 與 Arch 套件會自動安裝。使用 AppImage 或瀏覽器版本時,請將以下內容貼到終端機,然後重新插上鍵盤:

echo 'SUBSYSTEM=="hidraw", ATTRS{idVendor}=="3151|0461|046a|0db0|145f|14a5|2ea8|3121|3299|331a|374a|379a|38a9|38ee|391d|3984|39a8|39ab|54ab", MODE="0660", TAG+="uaccess"' \
  | sudo tee /etc/udev/rules.d/70-sharkfin.rules >/dev/null \
  && sudo udevadm control --reload-rules && sudo udevadm trigger
只會寫入一個規則檔並重新載入 udev。

來自 VIA、Vial 或原廠套件的規則可能就已足夠。sharkfin 找到一個它打不開的鍵盤時,會顯示同樣這條指令。更多內容見 Linux。

需要傳輸線嗎?

寫入時需要。透過 2.4 GHz 接收器時,sharkfin 只能讀到接收器轉送的內容:有些接收器帶設定通道,有些什麼都不帶,而同一款型號兩種都有出貨,所以沒有適用每款鍵盤的統一答案。把接收器插上,應用程式會告訴你手上這個屬於哪一種。藍牙 沒有設定通道。設定儲存在鍵盤上,所以之後在無線狀態下仍然有效。

它會讓我的鍵盤變磚嗎?

它從不燒錄韌體。目前已知最嚴重的狀況是鍵盤忽略 USB,直到你重新插拔為止:關閉應用程式,拔線十秒,再插回去。整個過程中打字功能都不受影響。

在 GitHub 上為 sharkfin 加星

加星能幫助其他使用這些鍵盤的人找到 sharkfin。原始碼、問題回報與鍵盤回報也都在那裡。