wayBetter

(FOSS) 現在,什麼都是應用程式。

你用的應用程式, 好上加好。

wayBetter 把你已經在用的應用程式放進輕巧的原生視窗,並且就地擴充它們,就像 BetterDiscord 擴充 Discord 一樣。分頁、分割窗格、所有帳號並排、主題、外掛程式,還有針對應用程式本身錯誤的修正。任何人都能製作主題或外掛程式,任何人都能打造下一個應用程式。

取得 wayBetter for X

下載 Windows 版 wayBetter for X · 免費 · GPL-3.0-or-later · 不會遙測你閱讀或發佈的內容

  • wayBetter for X 內建 14 款主題
  • 14 個隨附的外掛程式
  • 9 項針對 X 本身錯誤的修正
  • 7.9 MB 下載大小
  • 0.23 s 即可開啟
  • waybetter 中有 0 個相依套件
  • 永久 $0

01 問題所在

每個應用程式都只給你所需的一半。

另一半你拿不到:能用幾個帳號、長什麼樣子、錯誤什麼時候修,都由應用程式決定。wayBetter 保留原本的應用程式,再補上另一半。

  1. A

    一個視窗一個帳號。登出、登入,周而復始。

    所有帳號並排,同時保持登入。

  2. B

    應用程式有錯誤?等他們修吧。

    在你的電腦上就地修好,今天就修。

  3. C

    外觀由他們挑。功能由他們給。

    任何人都能寫的主題和外掛程式。

  4. D

    每個桌面用戶端都塞進一整個瀏覽器。

    一個輕巧的原生視窗,執行在系統 WebView 上。

天生輕巧

現在,什麼都是應用程式。而且很輕巧。

在系統本來就有的 WebView 上執行的原生視窗,而不是又一個塞進每個應用程式的瀏覽器。

7.9 MB完整的 Windows 安裝程式
0.23 s從啟動到視窗出現在畫面上
17 ms主題、修正和外掛程式在頁面中載入完成
0頁面額外增加的長時間工作

在 Windows 11 上以 wayBetter for X 1.0 測得:已發佈下載檔的安裝程式大小;3 次啟動的中位數;執行階段評估時間與長時間工作(>50 ms)分別在有無 wayBetter 的情況下測量。

02 一套系統

三層架構,包在真正的應用程式外面。

每個 wayBetter 應用程式都是同一套系統:原生的外殼、頁面中的執行階段,以及一個了解該應用程式的小型轉接器。應用程式本身照常運作。沒有任何內容經過代理或重新託管;一切變更只發生在你的電腦上。

01 · 外殼

輕巧的原生視窗。

Tauri 2,執行在系統 WebView 上。你希望每個應用程式都有的外框:

  • 分頁、釘選分頁和分割窗格:把分頁或連結拖到邊緣即可
  • 每個帳號都有自己的設定檔,並排登入
  • 連結導向:在同一分頁、並排、新分頁或你的瀏覽器中開啟
  • 網址列與命令面板 Ctrl K
  • 經過簽署、靜默安裝的更新

02 · 執行階段

主題和外掛程式,就在頁面裡。

注入應用程式自己的頁面,所有 wayBetter 應用程式共用:

  • 建立在同一套色彩基礎上的主題(以 OKLab 模型描述應用程式的調色盤)
  • BetterDiscord 風格的 JavaScript 外掛程式,附帶精簡的輔助 API
  • 一個 DOM 中樞和一個請求中樞,讓各項功能保持低負擔
  • 你自己的 CSS,套用在主題之後

03 · 轉接器

每個應用程式只需一小塊。

唯一了解應用程式的部分:它的主機、版面配置、帳號按鈕,以及它本來就會載入的資料。

  • 一個原生的 SiteSpec 和一個頁面中的 SiteAdapter
  • 一份簡短且經過審查的清單,列出應用程式的分頁可以呼叫什麼
  • 其餘一切都由系統提供

03 第一個應用程式

wayBetter for X.

在分頁和分割窗格中使用真正的 x.com,所有帳號並排,十四款主題、八個區域外掛,以及 X 自帶錯誤的修正:互相搶先的喜歡與追蹤、消失的草稿、亂跳的時間軸。現已支援 Windows、macOS 和 Linux。

14內建主題,再加上你的
14隨附的外掛程式,由你決定何時開啟
9針對 X 本身錯誤的修正
36微調:可隱藏、顯示和改變 X
  • 01
    所有帳號,並排顯示

    在真正的 x.com 上使用分頁和分割窗格,每個帳號在各自的設定檔中同時登入。

  • 02
    X 的錯誤,修好了

    喜歡和追蹤確實生效、返回時保留位置、時間軸不亂跳、上傳失敗自動重試。

  • 03
    草稿保險庫

    每份草稿都連同修訂記錄保存在本機,X 弄丟時再幫你放回去。

  • 04
    十四款主題、八個區域外掛

    完整重新設計,不只是換顏色。Reader+、Chat+、Media+ 和另外五個區域外掛,每項功能都有開關。

  • 05
    Ctrl+K 搞定一切

    一個命令面板,涵蓋分頁、帳號、設定,以及帶有運算子標籤的 X 搜尋。

  • 06
    面板

    TweetDeck 風格的面板:X 的欄位並排顯示,每一欄使用你選的帳號,還有篩選條件和未讀數。

wayBetter for X

免費 · 開放原始碼 · 靜默更新

下載 Windows 版 查看全部

Windows · macOS · Linux

04 打造成你的

任何人都能製作主題和外掛程式。

主題就是一個 JSON 檔案,外掛程式就是一個 JavaScript 檔案。不必排隊審查,使用時也不需要帳號:寫好、放進去、分享檔案,或發佈到商店。會寫 CSS,就能替應用程式換上新造型。會寫一點 JavaScript,就能加上它從未推出的功能。

主題

色彩、字型、形狀、版面配置、背景、效果。

在「外觀」面板中匯入和匯出 JSON。對比度會替你檢查:文字在任何表面上都保持清晰易讀。

首頁發文
為你推薦正在追蹤
wayBetter@CRTkafa · 2m

內建十四款主題。第十五款是你的。

1248♥ 101
playfishies@playfishies · 9m

一個 JSON 檔案。拖進「外觀」→「匯入」即可。

Night Ink
deep-sea.theme.json
{
  "name": "Deep Sea",
  "author": "@you",
  "mode": "dark",
  "colors": { "bg": "#06141b", "text": "#e6f4f1", "accent": "#2ee6c5" },
  "font": { "family": ["Geist"], "scale": 1.02 },
  "shape": { "radius": 14, "button": 9999, "avatar": "rounded" },
  "layout": { "density": "compact", "cards": true },
  "background": { "kind": "pattern", "pattern": "grid",
                  "ink": "#2ee6c5", "opacity": 0.08, "size": 28 },
  "effects": { "hover": "glow" }
}
外掛程式

一個檔案。start() 和 stop()。

BetterDiscord 風格的 *.plugin.js,放進外掛程式資料夾,再到「設定」中開啟。繁瑣的部分交給輔助 API。

copy-quote.plugin.js
/**
 * @name Copy Quote
 * @description y on a focused post copies "@handle: text".
 * @version 1.0.0
 * @author @you
 */
module.exports = class CopyQuote {
  start() {
    const api = window.wayBetter.api;
    this.scope = api.scope();
    this.scope.onKey((event, post) => {
      if (event.key !== 'y' || !post) return;
      const t = api.tweet(post);
      if (t) api.copyText(`@${t.handle}: ${t.text}`)
        .then(() => api.toast('Copied'));
    });
  }
  stop() { this.scope.dispose(); }
};

輔助 API

  • storage(ns)
  • observe(sel, fn)
  • onRouteChange(fn)
  • onKey(fn)
  • tweet(el)
  • copyText(s)
  • toast(msg)
  • injectCSS(id, css)
  • waitFor(sel)
  • scope()

wayBetter for X 隨附十四個

  • Thread Reader
  • Exact Timestamps
  • Clean Links
  • Copy as Markdown
  • Alt-text Reminder
  • User Notes
  • Muted Regex
  • Reading Time
  • Media Grid Focus
  • Keyboard Plus
  • Emoji Picker
  • Hide Blue Checks
  • Focus Mode
  • Reply Guard

05 以它為基礎開發

整套系統就是一個套件。

wayBetter for X 背後的頁面執行階段和外殼模型,已經以 waybetter 發佈在 npm 上:純 ESM 並附帶型別,每個模組都有自己的子路徑,零相依套件。只拿你需要的部分,或打造一整個應用程式。

終端機

npm i waybetter

零相依套件ESM + .d.tsruntime/* 和 shell/*GPL-3.0-or-later
adapter.ts · 取自 README,經過精簡
import { configureRuntime, type SiteAdapter }
  from 'waybetter/runtime/site';

export const KICK: SiteAdapter = {
  product: 'wayBetter for Kick',
  hosts: ['kick.com'],
  runtimeGlobal: 'WayBetterKick',
  apiMarks: ['/api/'],
  // plugins, rail, account, links, themeSources …
};
configureRuntime(KICK);

waybetter/runtime/*

  • site轉接器的組合根
  • domHub一個 MutationObserver,一個影格
  • netHub所有功能共用一個 fetch/XHR 掛鉤
  • pluginApi給使用者外掛程式用的輔助函式
  • themeTokensOKLab 色彩模型
  • paneNav分割檢視中只保留一個導覽
  • linkRouting並排、分頁或瀏覽器
  • accountReport目前登入的是哪個帳號

waybetter/shell/*

  • addressModel網址列標籤
  • paneModel分割窗格、並排開啟連結
  • linkDrop放下一個連結,多一個窗格
  • palette命令面板的排序
  • profileModel帳號設定檔
  • updateModel更新標籤
  • windowControls標題列和視窗按鈕
  • chrome標題列和工具列的尺寸

06 下一步

X 是第一個。下一個由你來打造。

任何有網頁版的應用程式,都能擁有同樣的視窗、主題和外掛程式。以下這些可能是下一個。它們都尚未公布,也沒有日期:就等有人來寫轉接器。README 裡的轉接器範例就是 Kick。

有可能

wayBetter forYouTube?

影片用的分頁和分割窗格、所有頻道帳號並排、主題、外掛程式。

有可能

wayBetter forKick?

直播並排在同一個輕巧的視窗裡,搭配你的聊天室外掛程式和你的主題。

有可能

wayBetter forTwitch?

多直播分割窗格、所有帳號同時登入、聊天室外掛程式。

有可能

wayBetter forDiscord?

在輕巧的 Tauri 視窗中執行網頁應用程式,取代笨重的用戶端。同樣的外殼,同樣的外掛程式。

wayBetter for你在用的應用程式。

寫出轉接器,外殼、執行階段、主題和外掛程式就一併到位。

npm i waybetter

打造下一個。

從套件和 README 的轉接器範例開始。做出成果了嗎?發一個 pull request,把它加進「使用 wayBetter 的專案」清單。

開始開發

這些是可能的下一批應用程式,並非已公布的產品。YouTube、Kick、Twitch 和 Discord 是其各自擁有者的商標;顯示其標誌僅為指稱這些服務。wayBetter 與它們沒有任何關聯,也未獲其認可或贊助。

07 免費且開放原始碼

沒有陷阱。每一行都能讀。

  1. i.

    免費

    沒有付費方案、沒有廣告、不推銷升級。現在沒有,「測試版結束後」也不會有。

  2. ii.

    開放

    GPL-3.0-or-later。框架和各個應用程式的原始碼都公開在 git.crt.fyi。

  3. iii.

    私密

    沒有分析,不會遙測你閱讀或發佈的內容。草稿、設定和外掛程式都留在你的電腦上。

  4. iv.

    屬於你

    Fork 它、做主題、寫外掛程式、打造下一個應用程式。授權條款讓它對後來的人同樣保持開放。

08 原則

更好,而不是變樣。

真正的應用程式,就地使用

你登入的就是應用程式本身。沒有任何內容經過代理或重新託管;它只在你的電腦上被改變。

輕巧,不是又一個瀏覽器

執行在系統 WebView 上的 Tauri 視窗,每個應用程式一個,所有帳號都在裡面。

絕不代替你行動

修正是為了讓你自己的點擊確實生效。wayBetter 絕不會自行發文、追蹤或刪除任何東西。

安靜地保持最新

更新經過簽署並靜默安裝,修正自然到位,不必再跑一次安裝程式。

從 X 開始。
打造下一個。

看看 wayBetter for X