Readit News logoReadit News
cosmic_cheese · 4 months ago
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.
hyperbolablabla · 4 months ago
And Tor!
user3939382 · 4 months ago
LibreWolf which should be the default
TrevorFSmith · 4 months ago
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.
dandersch · 4 months ago
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.
probablyrobert · 4 months ago
Author here - happy to answer any questions :)
MarsIronPI · 4 months ago
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 · 4 months ago
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/RobertCraigie/dotfiles/blob/ecfd6f66e8a77...

SwiftyBug · 4 months ago
This is my dream browser. Thank you so much for this!! I love that by default all inputs work in modal text editing. Do you plan on adding more complete Vim motions do that? For example, daw to delete the word, D to delete to the end of line, etc.
probablyrobert · 4 months ago
Thank you! I just implemented the ones I use the most, e.g. diw, but the motions system is still in very early stages and there are lots of motions I haven't implemented yet.

I do plan on implementing as many motions as is feasible, but there are some intentional differences, e.g. `f` is used for hints instead of jump-to-char.

slightwinder · 4 months ago
Does this support DRM? Like playing Netflix and other commercial streaming-sites. I remember this being a big problem with Firefox-forks. What about Firefox Sync?

Is RPC from external processes possible with this? For example, calling the URL of the open tab, or a list of open tabs and their URLs and/or content? Or remote control a tab, navigating to other URLs, etc? This would be interesting for integrating it with other apps and scripts, and Firefox is somewhat lacking in that field.

How secure is this?

probablyrobert · 4 months ago
DRM is not possible to support unfortunately: https://glide-browser.app/faq#why-can't-i-play-drm-content

Firefox Sync does work!

RPC is not currently supported but I agree it would be pretty interesting, tweety[0] was recently shared with me and that looks like it'd be quite nice, although I haven't tried it yet.

So far the only divergence from Firefox that could impact security is evaluating the config file, so I've described how that is sandboxed in the security[1] docs but I'm not super happy with the contents of that docs page; anything else you'd like to see mentioned?

[0]: https://github.com/pomdtr/tweety

[1]: https://glide-browser.app/security

Deleted Comment

Limero · 4 months ago
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 · 4 months ago
You can't configure extensions yet but you can set prefs! https://glide-browser.app/api#glide.prefs.set
dtj1123 · 4 months ago
This looks awesome, great project! I'm wondering if the config is flexible enough to allow for setting up Helix/Kakoune style keybindings?
probablyrobert · 4 months ago
I'm not very familiar with Helix keybindings myself but if there are vim equivalents (and if they're actually implemented, a fair amount of mappings are missing right now) then you should be able to! There's a `motion` excmd you can use in your mappings.

I don't think it'll be possible to implement multi-cursor support through the config though unfortunately.

dandersch · 4 months ago
Can it provide vim keybindings and modes inside a textbox?
probablyrobert · 4 months ago
Yes! All standard input elements have vim motions support but fair warning that a lot of the standard motions aren't implemented yet.
robotamerica · 4 months ago
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

MarsIronPI · 4 months ago
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 · 4 months ago
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.

probablyrobert · 4 months ago
Oh wow this is very cool, thank you for sharing!!
robotamerica · 4 months ago
no worries, thanks to you!
MarsIronPI · 4 months ago
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.

sc68cal · 4 months ago
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 · 4 months ago
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 · 4 months ago
great thanks
asadm · 4 months ago
Pretty cool.

I have been using Vimium[1] on Chrome which works ok.

1. https://chromewebstore.google.com/detail/vimium/dbepggeogbai...

MarsIronPI · 4 months ago
Does it work on chrome:// pages? That always bugged me about the Vimium Firefox port.
149765 · 4 months ago
Vimium C has this option, you have to enable 'extensions-on-chrome-urls' flag.
leephillips · 4 months ago
It does not.