找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

97

积分

0

好友

17

主题
发表于 2025-10-5 23:48:51 | 查看: 10| 回复: 0

你是否厌倦了在浏览器中频繁地在键盘和鼠标之间切换?是否想要像使用 Vim 一样流畅地操作浏览器?今天给大家介绍一个基于 Firefox 的开源浏览器 —— Glide Browser,它让你用 TypeScript 配置浏览器行为,彻底解放鼠标。

源码下载:
glide-main.zip (9.1 MB, 下载次数: 1)


💡 项目亮点

Glide Browser 是一个可扩展的、键盘优先的 Web 浏览器,基于 Firefox 内核构建。它最大的特色是支持使用 TypeScript 编写配置文件,让开发者可以像写代码一样定制浏览器。

核心特性

1. 键盘导航优先

完全摆脱鼠标依赖,所有操作都可以通过键盘完成。类似 Vim 的操作体验,j/k 上下滚动,gg/G 跳转页面顶部/底部。

2. 模态化键位映射

借鉴 Vim 的设计理念,支持 Normal 模式和 Insert 模式。在 Normal 模式下快速导航,在 Insert 模式下正常输入。

3. TypeScript 配置

这是最吸引前端工程师的特性!配置文件使用 TypeScript 编写,享受完整的类型提示和代码补全。

import type { GlideConfig } from 'glide-browser/glide'

export default {
  keymaps: {
    normal: {
      'j': 'scrollDown',
      'k': 'scrollUp',
      '<space><space>': 'fuzzyTabManager'
    }
  }
} satisfies GlideConfig

4. 站点特定配置

为不同网站定义专属键位和行为:

sites: {
  'github.com': {
    keymaps: {
      'gp': () => {
        // 快速跳转到 Pull Requests
        window.location.href = `/pulls`
      }
    }
  }
}

5. 模糊标签页管理器

<space><space> 唤起模糊搜索界面,快速切换标签页。对于经常打开几十个标签页的开发者来说,这是神器级功能。


🏗️ 技术架构

技术栈组成

  • 主要语言: TypeScript (82.8%)
  • 基础内核: Firefox
  • 扩展支持: Web Extensions API
  • 许可证: Mozilla Public License 2.0

设计模式

Glide 采用了几个经典的设计模式:

命令模式(Command Pattern)
每个键位映射对应一个命令,支持自定义命令和内置命令的组合使用。

策略模式(Strategy Pattern)
不同网站可以有不同的导航策略,通过站点配置灵活切换。

观察者模式(Observer Pattern)
监听浏览器事件(URL 变化、标签页切换等),触发相应的配置加载。


🎨 实际应用场景

场景一:GitHub 代码审查

sites: {
  'github.com': {
    keymaps: {
      'gp': 'gotoPullRequests',
      'gi': 'gotoIssues',
      'gc': 'gotoCode',
      '<leader>v': () => {
        // 在 VS Code Web 中打开
        const url = location.href.replace('github.com', 'github.dev')
        window.open(url)
      }
    }
  }
}

场景二:视频网站控制

sites: {
  'youtube.com': {
    keymaps: {
      'p': () => document.querySelector('video')?.click(),
      'f': () => document.querySelector('.ytp-fullscreen-button')?.click(),
      'm': () => document.querySelector('.ytp-mute-button')?.click()
    }
  }
}

场景三:开发工具集成

commands: {
  'openDevTools': async () => {
    const url = glide.ctx.url
    // 打开 PageSpeed Insights
    await browser.tabs.create({ 
      url: `https://pagespeed.web.dev/report?url=${url}` 
    })
  }
}

🚀 快速上手

安装

从 GitHub Releases 下载对应平台的安装包:

  • macOS: .dmg 文件
  • Linux: .tar.zst 源码包

配置文件位置

配置文件位于用户目录下的 .glide/config.ts,首次启动会自动创建示例配置。

学习曲线

如果你熟悉 Vim 或 TypeScript,上手会非常快。即使是新手,官方文档也提供了详细的键位映射表和配置示例。


💭 我的使用体验

作为一名前端工程师,我最喜欢的是 TypeScript 配置 这个特性。传统浏览器的配置要么是 JSON(缺乏灵活性),要么是 Lua(学习成本高),而 Glide 直接使用 TypeScript,对前端开发者极其友好。

优点:

  • 类型安全,配置错误在编写时就能发现
  • 代码复用,可以抽取公共配置函数
  • 生态丰富,可以直接使用 npm 包
  • 调试方便,支持 console.log 和断点

不足:

  • 目前还是 Alpha 版本,可能存在稳定性问题
  • 社区规模较小,插件生态还在建设中
  • 基于 Firefox,对 Chrome 扩展的兼容性有限

🎯 适合人群

强烈推荐:

  • Vim 用户
  • 键盘流爱好者
  • 前端/全栈工程师
  • 喜欢折腾的 Geek

⚠️ 不太适合:

  • 习惯鼠标操作的普通用户
  • 需要大量 Chrome 专属扩展的用户

📊 项目数据

  • GitHub Stars: 642
  • 最新版本: 0.1.51a
  • 主要语言: TypeScript
  • 活跃度: 持续更新中
  • 贡献者: 3 位核心开发者

🔚 结语

Glide Browser 代表了浏览器发展的一个有趣方向:Configuration as Code(配置即代码)。它将浏览器的可定制性提升到了新的高度,让开发者可以用熟悉的编程语言打造专属的浏览体验。

虽然目前还处于早期阶段,但项目的设计理念和技术实现都值得关注。如果你也是键盘流的拥趸,不妨试试这款浏览器,说不定会打开新世界的大门。


关注《云栈大前端》,获取更多前端、移动、全栈领域的开源项目盘点!


📎 项目资源


标签:  #GlideBrowser #GitHub #TypeScript #开源浏览器 #键盘导航 #Firefox #前端工具 #开发者工具


您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|云栈社区(YunPan.Plus) ( 苏ICP备2022046150号-2 )

GMT+8, 2025-10-16 20:45 , Processed in 0.053396 second(s), 43 queries .

Powered by Discuz! X3.5

© 2025-2025 CloudStack.

快速回复 返回顶部 返回列表