[HN Gopher] Show HN: Glide, an extensible, keyboard-focused web ...
___________________________________________________________________
Show HN: Glide, an extensible, keyboard-focused web browser
Author : probablyrobert
Score : 92 points
Date : 2025-09-30 19:43 UTC (1 days ago)
(HTM) web link (blog.craigie.dev)
(TXT) w3m dump (blog.craigie.dev)
| shaneos wrote:
| Whoa, so excited to try this out! As a regular Firefox user, does
| it pull over my settings?
| probablyrobert wrote:
| Currently the easiest way to pull over settings I'm aware of is
| to use Firefox Sync[0]. I haven't looked into other settings
| import solutions yet.
|
| [0]: https://www.firefox.com/en-GB/features/sync/
| probablyrobert wrote:
| Author here - happy to answer any questions :)
| dandersch wrote:
| Can it provide vim keybindings and modes inside a textbox?
| probablyrobert wrote:
| Yes! All standard input elements have vim motions support but
| fair warning that a lot of the standard motions aren't
| implemented yet.
| Limero wrote:
| Is it possible to automatically install extensions and set
| native Firefox configuration through the config? All my other
| programs are setup by just cloning my dotfiles and I really
| wish Firefox had that option.
| probablyrobert wrote:
| You can't configure extensions yet but you can set prefs!
| https://glide-browser.app/api#glide.prefs.set
| MarsIronPI wrote:
| I've never managed to figure out how to configure
| extensions through the Firefox JS APIs, but installing an
| add-on using the internal APIs isn't too hard. I do it in
| my VimFX config.js[0]. Hope this is useful.
|
| 0: https://ba.ln.ea.cx/src/marsironpi/dotfiles/tree/common/
| .vim...
| probablyrobert wrote:
| oh that is very helpful, thanks for sharing :)
| MarsIronPI wrote:
| No problem, thanks for making Glide. I'm looking forward
| to trying it. Also, feel free to take inspiration from
| anything else you might stumble upon in my configs.
| MarsIronPI wrote:
| I like the hints API, especially that it can hint on browser
| elements. However, power users may find it desirable to be able
| to use the hints system to select arbitrary kinds of elements.
| Perhaps you could extend the hint functionality to allow
| callers to pass a CSS selector that determines what elements
| get hinted? One use case is to write a command that lets the
| user choose an element and copy its text.
| probablyrobert wrote:
| You can use CSS selectors already! https://glide-
| browser.app/hints#excmds
|
| I've used it to add keymappings so that hints only apply to
| certain kinds of buttons on a page, e.g. https://github.com/R
| obertCraigie/dotfiles/blob/ecfd6f66e8a77...
| MarsIronPI wrote:
| Ah, I missed that option, sorry. I was looking at
| `glide.hints.show'. Are CSS selectors usable with that
| function? The documentation doesn't say so. Also, would you
| consider making it return a promise instead of taking a
| callback? I think that would be more ergonomic.
| probablyrobert wrote:
| ah yeah sorry about that, the API docs aren't quite
| complete yet.
|
| I'd recommend just looking at the glide.d.ts[0], it
| should be pretty readable (I hope).
|
| Yes the TS API supports it as well with the `selector`
| property:
|
| ``` glide.hints.show({ selector: "..." }); ```
|
| > Also, would you consider making it return a promise
| instead of taking a callback? I think that would be more
| ergonomic.
|
| The reason it doesn't return a Promise directly is
| because the hints that are generated are not static, try
| scrolling while hints are active and you'll see them
| refresh.
|
| So the return type would have to be something else to
| work well with this functionality imo.
|
| [0]: https://github.com/glide-
| browser/glide/blob/8171c5c2af000b71...
| cosmic_cheese wrote:
| While this isn't quite my cup of tea, it's nice to see Firefox
| being forked instead of Chromium. With this, there's now at least
| three significantly modified Firefox forks, alongside Zen and
| Floorp.
| sc68cal wrote:
| I haven't looked at the source too deeply yet to investigate how
| you implement the fork, but you state that it's a fork of
| Firefox, how do you plan to integrate fixes from Firefox
| (security, etc)?
| probablyrobert wrote:
| It's implemented as a set of patches + new files for net new
| files I add myself, then to build it, the firefox source is
| downloaded and patched automatically - so bumping the
| underlying firefox version is generally very easy.
|
| I'm currently actually tracking the firefox beta channel
| because the frequent small updates are so easy to do.
| sc68cal wrote:
| great thanks
| dandersch wrote:
| I've run into the restrictions regarding addons.mozilla.org
| myself using Vimium C, but it didn't happen often enough for me
| to consider switching my browser over it. I think I'd rather have
| something that makes my entire Linux desktop environment keyboard
| centric at that point, like homerow seems to do for macOS.
| asadm wrote:
| Pretty cool.
|
| I have been using Vimium[1] on Chrome which works ok.
|
| 1.
| https://chromewebstore.google.com/detail/vimium/dbepggeogbai...
| MarsIronPI wrote:
| Does it work on chrome:// pages? That always bugged me about
| the Vimium Firefox port.
| leephillips wrote:
| It does not.
| robotamerica wrote:
| found this on your ?**? Bear Blog. having fun with it. set it up
| like my zen browser (with the sidebar + pinned tabs) and testing
| it out for my productivity stack at work. I themed out the glide-
| hint css via userChrome.css to better match my aesthetics. keep
| up the great work, i will be keenly following along.
|
| 1. https://freeimage.host/i/KMQu3EQ 2.
| https://freeimage.host/i/KMQAJ9t
| probablyrobert wrote:
| Oh wow this is very cool, thank you for sharing!!
| robotamerica wrote:
| no worries, thanks to you!
| MarsIronPI wrote:
| How many tabs do you have open on average? Do you ever have
| trouble finding tabs with just being able to see the favicon?
| robotamerica wrote:
| i typically have 5 tabs open, no more, no less. i always have
| them in the same order so that i can navigate via alt+1,
| alt+2, alt+3, etc.. one tab is always my personalised
| homescreen which has all the main links+software i use in a
| day. having them in the same order means i don't even need to
| look at the sidebar to navigate to them, it just helps to see
| what tab i am focused on sometimes.
|
| with glide you can also make keymaps:
|
| glide.keymaps.set("normal", "gd", () =>
| openOrFocus("docs.google.com/document",
| "https://docs.google.com"), { description: "Go Docs" });
|
| so i can close a tab quickly in normal mode using: tx. then
| hit gd to open google docs as an example.
|
| i do have a hidden bookmarks bar with a ton of junk and sites
| i rarely open, but it is there if i need to find something.
| MarsIronPI wrote:
| [delayed]
| MarsIronPI wrote:
| This looks really cool! My current setup is Firefox with VimFX[0]
| and an elaborate config.js, but when the NixOS package gets
| merged I will definitely try it.
|
| For anyone wanting to stick to stock Firefox ESR, I highly
| recommend checking out VimFX.
|
| 0: https://github.com/akhodakivskiy/VimFx
|
| The big downside of VimFX compared to Glide is lack of Firefox
| internal API documentation. I've had to dig through Firefox
| source code several times to find out how to do things e.g.
| wrangle tabs that would have been easy to do with the
| WebExtensions APIs. The fact that Glide makes these APIs
| available in the config file is the part I'm most excited about.
| MitPitt wrote:
| Cool. Currently on some websites I hit TAB until I reach the
| needed button/input. Try it right now on hacker news.
| TrevorFSmith wrote:
| That's a sweet idea and I'm glad to see your comment about
| maintaining it as a patch on top of Firefox sources so you can
| roll in their security fixes.
___________________________________________________________________
(page generated 2025-10-01 23:00 UTC)