Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/cprussin/minichrome

A minimal web browser built for tiling window managers
https://github.com/cprussin/minichrome

Last synced: about 2 months ago
JSON representation

A minimal web browser built for tiling window managers

Awesome Lists containing this project

README

        

# Minichrome

Minichrome is a minimalistic web browser, built especially with tiling window
managers in mind. It explicitly does not have a tabbed UI and avoids most UI
chrome in favor of keyboard shortcuts.

![screenshot](./screenshot.png)

## Why Minichrome?

I used to be an avid user of browsers like [surf](https://surf.suckless.org/)
and [uzbl](https://www.uzbl.org/). However, these browsers are built on top of
webkit, and have fallen behind modern Chrome in a few ways, most especially the
developer tooling.

Minichrome is built on [Electron](https://electronjs.org), and thus tracks
fairly close to the latest Blink rendering engine, and always has up-to-date
Chrome dev tools.

In order to stay as light as possible on resources, Minichrome is built as a
client-server architecture. The server exposes an HTTP interface and owns all
browser windows, and the client provides a simple CLI wrapper over the HTTP
calls to create and manipulate windows. This means you'll only have one
instance of Electron running for all your Minichrome windows, rather than one
instance of Electron per window. It also means you can script pretty much
anything around Minichrome by using the client interface, and could even build
software that remotely interfaces with minichrome via the HTTP interface.

Note that individual frames render in their own process, so you still will have
process isolation between websites.

## Installing

There is an AUR package for arch linux users, available
[here](https://aur.archlinux.org/packages/minichrome/).

_We welcome contributions--please help us by contributing packaging
files for other distributions!_

For other users, you can download and install from the latest [release
tarball](https://github.com/cprussin/minichrome/releases).

You can also build from source:

```bash
cd
yarn package
```

Minichrome assets will be built to the `build/minichrome-{platform}` directory.

## CLI

To run the server, simply run

```sh
minichrome
```

To open a new window, when a minichrome server is running, run:

```sh
minichrome browse "http://xkcd.com"
```

You can run `minichrome help` for help on how you can send commands to windows.

## Keybindings

Minichrome uses vim-style keybindings:

- h - scroll left
- l - scroll right
- j - scroll down
- k - scroll up
- C-u - big scroll up
- C-d - big scroll down
- G - scroll to the bottom of the page
- g g - scroll to the top of the page
- C-+ - zoom in
- C-- - zoom out
- C-0 - reset zoom
- C-o - go back
- C-i - go forward
- C-r - refresh page
- C-R - hard refresh page (refresh ignoring cache)
- y y - yank the current URL into the clipboard
- Escape - leave insert mode or clear the current search
- : - enter ex mode
- / - start a search
- n - go to the next search result
- N - go to the previous search result
- i - select the first insertable element and switch to insert mode

## Configuring

Coming soon!

## Status

This project is undergoing heavy development, and we welcome contributions!
Especially helpful are:

- Bug reports / bugfix PRs
- Feature requests / feature PRs
- Packaging implementations for other platforms