Rewild Your Web
web browser dweb
at main 67 lines 2.8 kB view raw view rendered
1![A friendly beaver](media/beaver.png) 2 3# What / why / how 4 5The Web is our only hope for a platform that provides permissionless user agency. This project is about scratching that itch, building a Web based user agent that can play new tricks. 6 7Our mascot is a beaver because they are fantastic animals that heal their environment; read https://www.noemamag.com/we-need-to-rewild-the-internet/ for a good introduction, and come with us rewild your web! 8 9We build on [Servo](https://servo.org) because despite a new wave of browsers being built, they mostly go with forking blink, and that's not how we will diversify the Web. Also this is a very fun project to contribute to! 10 11The end goal is to have a suite of Web user agents. Running on top of an existing OS is a temporary stop-gap, because being a second class citizen on someone else's platform is a dead end. We will create new personal computing environments for mobile, desktop, media players, etc. We have a long road ahead, but we're not in a hurry. 12 13We hang out on [Servo's zulip](https://servo.zulipchat.com) if you want to chat about the project. 14 15# Building 16 17## Prerequisites 18 19- Install the `forkme` utility from https://tangled.org/me.webbeef.org/forkme 20- Run `forkme init` 21- From the `source` directory, run `./mach bootstrap --skip-lints` to setup Servo build dependencies. 22 23## Desktop builds 24 25- Update with `forkme apply` 26- Build with `cargo build -r -p browserhtml` 27- Run with `cargo run -r -p browserhtml` or directly from the `target` directory as usual for Rust projects. 28 29The current UI allows multiple windows, and each one is a simple tiling window manager. There is also a floating search window. 30 31![Overview of 3 pages in tiling arrangement](media/desktop_1.png) 32 33![Main menu and 2 pages in vertical stacking](media/desktop_2.png) 34 35![Scrolling in the tiling WM, and the context menu](media/desktop_3.png) 36 37![The settings app, with a few themes](media/desktop_4.png) 38 39![The floating search window](media/desktop_5.png) 40 41## Mobile builds 42 43The only tested platform is the Pixel 3a running Mobian (see https://wiki.debian.org/InstallingDebianOn/Google/Pixel3a). 44 45![A rewilding Pixel 3a](media/pixel_3a.jpeg) 46 47First create a sysroot by running `sysroot.sh` in the `scripts` directory. 48 49Then build with `./build-arm64.sh` or `./build-arm64.sh production` 50 51The build script expects to be able to ssh with key authentication to `mobian@mobian`. You can then run on device with this command: 52`mobian@mobian:~$ ./browserhtml/browserhtml` 53 54Note that you will have to set these 2 environment variables: 55 56- SURFMAN_FORCE_GLES=1 57- WAYLAND_DISPLAY=wayland-0 58 59Here's what this looks like 60 61![Simple homescreen](media/mobile_1.png) 62 63![Searching](media/mobile_2.png) 64 65![The radial context menu](media/mobile_3.png) 66 67![Editing the current page URL](media/mobile_4.png)