rosenrot/README.md
2023-03-28 12:01:08 -06:00

3.8 KiB

Rosenrot

A small browser forked from rose.

  • Rose is a minimal browser based on webkit2gtk which aims to be a "basement for creating your own browser using [the] gtk and webkit libraries".
  • Rosenrot is my fork from rose. It has accumulated cruft that I like, like a "readability" plugin that simplifies annoying websites like Matt Levine's Money Stuff newsletter.
  • Rosenrot is also a song by the German hardcore rock band Rammstein.

You can see some screenshots in the screenshots folder.

Features

  • tabs, cookies, caching
  • minimal ui, autohiding elements
  • ~467L core code (the rose.c file)
  • custom gtk and websites css
  • builtin rose-mklink script for in-shell static links
  • A few quality of life improvements.
    • Optional adblocking through wyebadblock
    • Plugin system:
      • Libre redirect: Redirect annoying websites to open source frontends
      • Readability: Strip webpages of unnecessary elements for ease of reading with a custom shortcut
      • Custom style: Override the css of predetermined websites
      • Stand in plugin: Mimick function definitions which do nothing for the above plugins so that they can be quickly removed

Installation

Install dependencies, then:

make build
make install # or sudo make install

You can also see more detailed instructions here, for Ubuntu 20.04 in particular—though they should generalize trivially.

👐 Contribute

  • Contribute upstream to github.com/mini-rose/rose for core functionality changes.
  • Contribute here for quality of life improvements, by sending a pull request on Github.

To do

  • Add an installation tutorial
  • Look at using relative rather than absolute paths
  • Add css for js alerts
  • Figure out if downloading files is doable.
  • Figure out better way to have plugins
  • Double check newtab/next-tab behavior
  • Find out what each of the css elements refers to.
  • Use something other than Whatsapp as an example syslink.
  • Set webkit_web_context_set_sandbox_enabled, as recommended here
  • Fix bug about distorted audio. Maybe related to this pipewire issue?

Done:

  • Document stand_in.c better
  • Use a makefile.
    • Add clean, uninstall to makefile
  • Mask user agent
  • Launch with more than one tab from command line
  • Figure out merge with upstream
  • String substitution on uri in order to redirect to better frontends.
  • Present "standard" browser keybindings as an alternative.
  • Fix zoom in new tab
  • Reader mode
  • Add reader mode to config.def.
  • Make tab bar slightly prettier.
  • Add "open in new window" functionality.
    • Useful for opening links in new tab when clicking on them and selecting that option
    • And for actually opening links with the href new_tab option.
    • Links: 1, 2, 3, 4

Known bugs

  • Doesn't work with when Spanish is selected as the language, for some reason.