3 poin oleh GN⁺ 2025-10-03 | 2 komentar | Bagikan ke WhatsApp
  • Pendekatan baru berbasis Firefox yang menjadikan browser itu sendiri sebagai alat yang dapat diprogram melalui file konfigurasi TypeScript
  • Memungkinkan implementasi fitur tanpa batas seperti kustomisasi UI browser dan pemanggilan proses eksternal tanpa batasan keamanan yang dimiliki ekstensi web
  • Menyediakan sistem mode dan key mapping bergaya Vim untuk mendukung penjelajahan yang sepenuhnya berpusat pada keyboard tanpa mouse
  • Menyertakan fitur ramah pengembang seperti hint mode, tab fuzzy finder, dan REPL secara bawaan, serta telah teruji dalam penggunaan nyata selama 6 bulan
  • Versi alpha dapat diunduh untuk macOS dan Linux, serta sepenuhnya kompatibel dengan ekstensi Firefox dan workflow yang sudah ada

Latar belakang pengembangan Glide

  • Pengembang mengalami masalah batasan keamanan mendasar pada ekstensi web saat menggunakan ekstensi Tridactyl di Firefox
    • Di situs tertentu seperti addons.mozilla.org, ekstensi sepenuhnya dinonaktifkan sehingga semua key mapping tidak berfungsi
    • Tridactyl juga tidak berfungsi pada homepage kustom
  • Batasan ini adalah model keamanan penting milik browser untuk melindungi pengguna dari ekstensi berbahaya, tetapi pada saat yang sama sangat membatasi ekstensibilitas
  • Menyadari perlunya browser yang benar-benar dapat dikustomisasi tanpa batas, mulai dari kustomisasi UI browser itu sendiri hingga pemanggilan alat eksternal, lalu memulai pengembangan Glide

Pembeda utama Glide

  • File konfigurasi TypeScript memberikan kontrol penuh
    • Dapat menggunakan API dan fitur yang sama sekali tidak mungkin didukung oleh ekstensi web
    • Karena pengguna akhir menulis sendiri file konfigurasinya, tidak perlu menerapkan batasan keamanan yang ketat, sehingga model keamanannya secara mendasar berbeda
  • Hal-hal yang dapat dilakukan dari file konfigurasi
    • Mendefinisikan key mapping kustom
    • Mengakses API ekstensi web
    • Menjalankan proses eksternal arbitrer
    • Mendefinisikan macro, dan lain-lain
  • Dibangun berbasis Firefox sehingga ekstensi Firefox dan workflow yang sudah ada tetap berfungsi apa adanya

Contoh konfigurasi praktis

Clone otomatis repositori GitHub dan jalankan editor

glide.keymaps.set("normal", "gC", async () => {  
  // extract the owner and repo from a url like 'https://github.com/glide-browser/glide'  
  const [owner, repo] = glide.ctx.url.pathname.split("/").slice(1, 3);  
  if (!owner || !repo) throw new Error("current URL is not a github repo");  
  // * clone the current github repo to ~/github.com/$owner/$repo  
  // * start kitty with neovim open at the cloned repo  
  const repo_path = glide.path.join(glide.path.home_dir, "github.com", owner, repo);  
  await glide.process.execute("gh", ["repo", "clone", glide.ctx.url, repo_path]);  
  await glide.process.execute("kitty", ["-d", repo_path, "nvim"], { cwd: repo_path });  
}, { description: "open the GitHub repo in the focused tab in Neovim" });  
  • Saat menekan tombol gC di halaman repositori GitHub, tindakan berikut dijalankan secara otomatis
    • Mengekstrak nama pemilik dan repositori dari URL saat ini
    • Meng-clone repositori ke jalur ~/github.com/$owner/$repo
    • Membuka neovim di terminal kitty dan berpindah ke repositori hasil clone
  • Menghemat beberapa detik untuk tiap pekerjaan, sementara penambahan konfigurasi hanya memerlukan beberapa menit

Berpindah cepat ke tab kalender

glide.keymaps.set("normal", "gc", async () => {  
  const tab = await glide.tabs.get_first({ url: "https://calendar.google.com/*"; });  
  assert(tab && tab.id);  
  await browser.tabs.update(tab.id, { active: true });  
}, { description: "[g]o to [c]alendar.google.com" });  
  • Dengan tombol gc, Anda bisa langsung berpindah ke tab Google Calendar

Sistem mode

  • Mengadopsi konsep mode dari Vim, sehingga semua key mapping terhubung ke mode tertentu
  • Mode berubah otomatis sesuai interaksi dengan browser
    • mode normal: mode dasar
    • mode insert: otomatis aktif saat elemen <input> diklik, sehingga key mapping tidak mengganggu input teks
    • mode ignore: diaktifkan dengan Shift+Escape, digunakan saat situs web berbenturan dengan key mapping

Navigasi berbasis keyboard

Hint mode

  • Tekan tombol f untuk masuk ke hint mode
  • Menampilkan overlay label teks di atas semua elemen yang dapat diklik, seperti tautan dan tombol
  • Saat label diketik, elemen terkait akan difokuskan dan diklik
  • Memungkinkan pengoperasian halaman web sepenuhnya tanpa mouse

Fitur yang secara pribadi disukai

  • gI: otomatis memfokuskan elemen input terlihat terbesar di halaman, fitur yang terasa seperti sihir
  • <space><space>: menjalankan tab fuzzy finder untuk menemukan tab yang hilang dengan mudah
  • <c-i> dan <c-o>: penting untuk navigasi tab sebelumnya
  • :repl: menguji perubahan konfigurasi dengan cepat
  • hint mode: berguna saat tidak ingin meraih mouse
  • UI gaya which-key: antarmuka yang membantu mengingat berbagai key mapping

Status saat ini dan ketersediaan

  • Sudah digunakan sehari-hari selama sekitar 6 bulan
  • Masih dalam tahap alpha awal, tetapi sudah bisa diunduh untuk macOS dan Linux
  • Disarankan melihat tutorial melalui perintah :tutor (meski belum sepenuhnya selesai)
  • Pengguna Linux masih perlu mengekstrak arsip dan mengatur secara manual karena belum terdaftar di repositori paket
  • Lebih banyak contoh tersedia di cookbook dan dotfiles milik pengembang
  • Karena ini versi alpha, belum semua API diimplementasikan, tetapi tujuan utamanya adalah memberikan kontrol penuh

2 komentar

 
shakespeares 2025-10-07

Sepertinya harus dipakai dengan cukup maniak. Kalau memang bisa digunakan sampai cukup menutupi keunggulan GUI sih..

 
GN⁺ 2025-10-03
Komentar Hacker News
  • Ini memang bukan sepenuhnya seleraku, tapi fakta bahwa mereka mem-fork Firefox alih-alih Chromium terasa segar. Sekarang jadi ada tiga fork Firefox yang dimodifikasi besar-besaran bersama Zen dan Floorp
    • Tor juga ada, jadi bisa ditambahkan ke tren ini
    • Ada juga LibreWolf, dan secara pribadi aku berharap justru itu yang jadi standar bawaan
  • Menurutku idenya sangat bagus, dan aku merasa tenang setelah melihat komentar bahwa proyek ini dipelihara dengan cara mengikuti patch keamanan
  • Aku juga pernah mengalami batasan addons.mozilla.org saat memakai Vimium C. Memang tidak cukup sering sampai membuatku ingin ganti browser, tapi aku justru lebih tertarik pada alat yang membuat seluruh desktop Linux berpusat pada keyboard, seperti yang dilakukan homerow di macOS
  • Saya pembuatnya, silakan tanya apa pun kalau penasaran
    • Aku suka API hint-nya, terutama karena hint bisa diberikan juga ke elemen browser. Tapi rasanya pengguna tingkat lanjut akan ingin memilih berbagai jenis elemen lewat sistem hint. Akan bagus kalau ada perluasan fitur untuk mengirim CSS selector agar bisa menentukan elemen mana yang diberi hint. Misalnya, pengguna bisa membuat perintah untuk memilih elemen tertentu lalu menyalin teksnya
    • Aku penasaran apakah ada dukungan DRM. Ingin tahu apakah ini bisa dipakai di situs streaming komersial seperti Netflix. Dulu ini masalah besar di fork Firefox. Aku juga penasaran bagaimana dengan Firefox Sync. Lalu apakah RPC call dari proses eksternal juga dimungkinkan. Misalnya untuk mengambil URL, daftar, atau konten tab yang sedang terbuka, atau mengendalikan tab dari jarak jauh agar berpindah ke URL lain, sehingga bisa diintegrasikan dengan aplikasi atau skrip lain. Firefox cenderung kurang di area ini. Terakhir, aku juga ingin tahu seberapa aman ini
    • Proyek ini kelihatan sangat keren. Aku penasaran apakah konfigurasinya cukup fleksibel untuk mengatur keybinding bergaya Helix/Kakoune
    • Aku ingin tahu apakah file config bisa dipakai untuk mengotomatisasi pemasangan ekstensi dan mengubah pengaturan bawaan Firefox. Program-programku yang lain semua diatur lewat dotfiles, jadi akan menyenangkan kalau Firefox juga punya opsi seperti itu
  • Kelihatannya sangat keren. Saat ini aku sudah lama memakai kombinasi Firefox, VimFX, dan config.js yang rumit. Kalau paket NixOS-nya nanti sudah di-merge, aku pasti akan mencobanya. Jika kamu tetap memakai Firefox ESR bawaan, aku sangat merekomendasikan VimFX. Lihat https://github.com/akhodakivskiy/VimFx. Kekurangan terbesar VimFX adalah minimnya dokumentasi API internal Firefox. Untuk pekerjaan seperti manajemen tab, hal yang seharusnya mudah dengan WebExtensions API malah mengharuskan kita membongkar source code langsung. Hal yang paling membuatku antusias dari Glide adalah kemungkinan API seperti ini bisa dipakai dari file config
  • ʕ•ᴥ•ʔ Aku menemukan ini di Bear Blog dan sedang memakainya dengan cukup menyenangkan. Aku sedang mengujinya dalam stack produktivitas kerjaku dengan menyesuaikan sidebar dan pinned tab seperti di zen browser milikku. CSS glide-hint juga sudah kutemakan lewat userChrome.css sesuai selera estetikaku. Aku akan terus mengikuti perkembangannya dan berharap karya keren ini terus berlanjut
    1. https://freeimage.host/i/KMQu3EQ
    2. https://freeimage.host/i/KMQAJ9t
    • Aku penasaran, rata-rata kamu membuka berapa tab sekaligus. Apakah pernah merasa tidak nyaman harus mencari tab hanya dari favicon
  • Aku belum menelusuri struktur source code-nya secara mendalam, tapi kalau ini fork Firefox, aku penasaran bagaimana rencananya untuk mengintegrasikan patch keamanan atau perbaikan dari Firefox ke depannya
    • Ini diimplementasikan dengan metode patch otomatis dan penambahan file baru. Saat build, source Firefox diunduh lalu patch diterapkan, jadi menaikkan versi Firefox juga sangat mudah. Praktiknya, pembaruan bisa dilakukan sangat sering sehingga kami mengikuti channel beta Firefox
  • Akhirnya compact mode kembali, dan aku sangat berterima kasih untuk itu. Senang juga melihat fork Firefox, dan konsep seperti ini sangat menarik. Aku tipe orang yang memakai vim di mana-mana, jadi rasanya wajib mencobanya sendiri
    • Tapi saat scroll dengan j/k, gerakannya terasa kurang mulus. Aku penasaran apakah ada cara membuat scroll-nya terasa lebih natural, meski mungkin aku saja yang melewatkan dokumentasinya
  • Menurutku ini cukup keren. Aku sudah memakai Vimium di Chrome dan puas dengannya
    1. https://chromewebstore.google.com/detail/vimium/dbepggeogbaibhgnhhndojpepiihcmeb
    • Aku penasaran apakah ini juga bekerja di halaman chrome://. Versi Firefox dari Vimium selalu terasa kurang di bagian itu
  • Aku sudah membaca sekilas dokumentasinya, dan ini terasa seperti browser impianku. Berbasis Firefox, WebExt API juga tetap bisa dipakai penuh, bahkan bisa menjalankan perintah di luar browser. Aku berharap Firefox Developer Edition seperti ini, dan hari ini juga aku harus langsung mencobanya