Clean tab-less browser based on webkit2 and GTK4.

Overview

Rose Browser

Simple browser based on webkit2-5.0/GTK4.

Showcase

Requirements

In order to build rose you need gtk4 and webkit2gtk-5.0.

In order to use the functionalities:

  • video support: gst-libav, gst-plugins-good
  • searchbar/find/history: dmenu
  • tabs: tabbed
  • download: aria2c

Installation

Run following command to build and install (if necessary as root):

$ make clean install

Usage

To set default homepage change config.h

Opening new window with specific website:

$ rose https://duckduckgo.com

TODO

  • Add tabs option in config
  • Improve mass weight image loading time
  • Add support for xdg-open and opening files
Comments
  • Running rose without systemd

    Running rose without systemd

    When i tried to pull the dependencies for rose: gtk4 and webkit2gtk5.0, gtk4 installed just fine, but webkit2gtk5.0 seems to be needing systemd etc as dependency. I'm running artix linux with openrc though and therefor dont have systemd etc. I don't really see why i would need systemd for a browser/webkit anyway lol

    I searched for a minimalistic browser for quite a while now and this looks really promising, but it seems like i wont be able to install it without changing distro

    So this may be the wrong place to ask, but is there a way to run the browser without systemd?

    in progress 
    opened by MrMineDe 9
  • Cannot build

    Cannot build

    Describe the bug I'm trying to build rose and I'm not successful. I have downloaded the dependencies.

    Expected behavior To work, idk...

    Screenshots Rather than screenshot, I'm going to give the error message:

    window.c: In function ‘load_changed_callback’:
    window.c:325:13: error: ‘privacy’ undeclared (first use in this function)
      325 |         if (privacy[HISTORY]) {
          |             ^~~~~~~
    window.c:325:13: note: each undeclared identifier is reported only once for each function it appears in
    window.c: In function ‘rose_webview_new’:
    window.c:396:32: error: ‘privacy’ undeclared (first use in this function)
      396 |         if (!options[CACHE] && privacy[CACHING]) {
          |                                ^~~~~~~
    

    Desktop (please complete the following information):

    • OS: ArcoLinux
    • WebKit: 2.36.3-1
    • Gtk: 4.6.6

    Additional context I was able to build a previous commit. I don't know if that helps but I'm mention it anyway.

    bug 
    opened by rempas 5
  • kraut.zone does not render fonts correctly

    kraut.zone does not render fonts correctly

    Describe the bug As shown in the screenshot, the fonts do not render correctly in kraut.zone. I have tried some other sites and I the fonts seemed to work correctly. I don't know what's different about this site however...

    Expected behavior I suppose to render correctly...

    Screenshots krautzone

    Desktop (please complete the following information):

    • OS: ArcoLinux
    • WebKit: 2.36.5
    • Gtk: 4.6.6
    bug wontfix 
    opened by rempas 4
  • Linking error: undefined reference

    Linking error: undefined reference

    I cannot build rose due to ld error:

    /bin/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/libjavascriptcoregtk-5.0.so: undefined reference to `std::condition_variable::wait(std::unique_lock<std::mutex>&)@GLIBCXX_3.4.30'
    /bin/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../lib/libwebkit2gtk-5.0.so: undefined reference to `std::__glibcxx_assert_fail(char const*, int, char const*, char const*)@GLIBCXX_3.4.30'
    collect2: error: ld returned 1 exit status
    make: *** [makefile:27: rose] Error 1
    

    I'm guessing I miss some library but I don't know which. I also tried to install an AUR package, hoping it would automatically install all the dependencies but it didn't.

    opened by NikitaIvanovV 3
  • colour of rose program is to bright and tinted purple

    colour of rose program is to bright and tinted purple

    Describe the bug the colours of websites and inspector

    Expected behavior the colours are as expected

    Screenshots 2022-05-26-170830_1920x1080_scrot

    2022-05-26-171222_1920x1080_scrot this image bellow is for reference on how those websites look in Firefox 2022-05-26-171314_1920x1080_scrot

    Desktop (please complete the following information):

    • OS: artix linux
    • webkit2gtk-5.0 2.36.2-1 installed from arch repo
    • gtk4 1:4.6.4-1 installed from artix repo
    bug in queue 
    opened by zooki2006 3
  • Remove x11

    Remove x11

    is it possible x11 from rose so you can use it on wayland? something that netsurf has and https://sr.ht/~sircmpwn/visurf/. Otherwise i love rose keep up the good work

    opened by ghost 3
  • searx preferences completely freezes rose

    searx preferences completely freezes rose

    building with let's say https://paulgo.lo as a searx instance default homepage works just fine. once the site is loaded and I try to change the theme of the searx instance to dark rose freezes

    in progress 
    opened by se7en-x230 3
  • feat: redirect websites to open-source frontends

    feat: redirect websites to open-source frontends

    1. Adds code for redirecting annoying websites to their open-source frontends, when these exist.

    2. Organize this in a "plugins" folder

    As before, let me know if these kind of changes are not in scope and I'll just keep them in my private repo

    opened by NunoSempere 2
  • use `execlp` instead of `execvp`

    use `execlp` instead of `execvp`

    • Don't use execvp if argv is known in advance, execlp is a lot cleaner imho.
    • Why spawn a shell to run aria2c? (Is there any reason behind that?) Just spawn aria2c.

    P.S.: When is rose_download(char) triggered?

    opened by alpheratz0 2
  • Freezing on scroll

    Freezing on scroll

    Describe the bug Scrolling quickly with laptop touchpad freezes rose.

    Expected behavior Browser should scroll without freezing.

    Desktop:

    • OS: Arch Linux
    • WebKit: webkit2gtk-5.0 2.36.4-2
    • Gtk gtk4 1:4.6.6-1

    Additional context I don't have a physical mouse with me, but rose seems to handle touchscreen scrolling fine, but not scrolling with the touchpad.

    https://user-images.githubusercontent.com/32435060/180493818-8bbb9181-3f52-4fd3-82e3-0860f472b796.mp4

    bug 
    opened by MckinleyX 2
  • Won't build on Arch Linux | rose-beta doesn't exist

    Won't build on Arch Linux | rose-beta doesn't exist

    What I did Executed yay -Sy rose-browser

    What I expected Rose to install successfully.

    What I got instead ==> Starting build()... /home/blank/.cache/yay/rose-browser/PKGBUILD: line 15: cd: /home/blank/.cache/yay/rose-browser/src/rose-beta: No such file or directory ==> ERROR: A failure occurred in build(). Aborting... -> error making: rose-browser

    What I tried

    • Manually building with makepkg
    • Creating a rose-beta directory/renaming the rose file to rose-beta
    • Inspecting the PKGBUILD Manually to see if I can fix.
    • Making sure all proper dependencies were installed and up to date.
    • Tried building on another computer with fresh install of arch

    Software Information Distro: Arch Kernel: 6.0.8-arch1-1 i3wm gaps yay v11.3.0.r4.gb6b1888 - libalpm v13.0.2

    -- I would love a fix to this as I really like the concept of rose and want to try it out.

    opened by blank1-Dev 1
Releases(release)
  • release(May 22, 2022)

    Changes

    • Added tabs
    • Removed unused things
    • Improved keybinds detection
    • Fixed bugs

    sha512sum: fa8309eb25f0d476dbe90a32a7a029e7d6a763708740ce8df88628f8823290557bffed7ee3c18c59069d1e6066f31d7c3fac6057f1b0a6ccec711760cfcc94ce rose

    Source code(tar.gz)
    Source code(zip)
    rose.tar.gz(13.26 KB)
Owner
Rosé
Rosé
A Minimal Web Browser with Built-in Adblocker in Less Than 100 Lines of Code

A Minimal QtWebEngine Web Browser with Adblocker How Does It Work This is a minimal network filter implementation using QWebEngineUrlRequestIntercepto

Penk Chen 19 Jul 23, 2022
Vimb - the vim like browser is a webkit based web browser that behaves like the vimperator plugin for the firefox and usage paradigms from the great editor vim.

Vimb - the vim like browser is a webkit based web browser that behaves like the vimperator plugin for the firefox and usage paradigms from the great editor vim. The goal of vimb is to build a completely keyboard-driven, efficient and pleasurable browsing-experience.

Daniel Carl 1.2k Dec 30, 2022
Tab module for imgui. Should be relatively forwardly compatible.

Tab module for imgui. Should be relatively forwardly compatible.

Scott Mudge 121 Dec 8, 2022
agent-less and lightweight communication library compatible with rclcpp for embedded devices

mros2 mros2 (formally mROS 2) realizes an agent-less and lightweight runtime environment compatible with ROS 2 for embedded devices. It consists of ba

null 123 Dec 21, 2022
An optimized "RTOS" (more than HAL but less than RTOS) for ROV controling and getting sensor data

Nitori-ROV-OS 一个专门为水下机器人(ROV、AUV)进行优化的实时操作系统,暂命名为 Nitori,中文名 荷取 可以通过修改硬件兼容层(Port)进行移植 预计最初版本支持stm32f407和stm32h750,并在实验室目前的水下机器人中进行部署 系统分为四层,六个主要组件: 硬件

Doublues_G 2 Jan 10, 2022
A C++11 large integer library with effective high performance, simplistic in nature and also clean in the eyes.

BigIntegerCPP BigIntegerCPP is a C++11 port of large integer library used in CryptoLib4Pascal. It allows mostly parsing of numbers as strings in diffe

Telepati 26 Dec 22, 2022
Blade - A simple, fast, clean, and dynamic language that allows you to develop complex applications quickly.

The Blade Programming Language Quick links: BUILDING | CONTRIBUTING | DOCS | LICENSE | tl;dr Blade is a simple, fast, clean and dynamic language that

Blade Programming Language 121 Dec 31, 2022
A bright opening, a clear sight, a clean slate.

Skylight A bright opening, a clean window. Etymology According to dictionary.com, a "skylight" is: an opening in a roof or ceiling, fitted with glass,

null 52 Dec 24, 2022
Source Code for 'Clean C++20' by Stephan Roth

Apress Source Code This repository accompanies Clean C++20 by Stephan Roth (Apress, 2021). Download the files as a zip using the green button, or clon

Apress 20 Dec 24, 2022
Surf - simple webkit-based browser

Surf - simple webkit-based browser

Johannes Hove-Henriksen 1 Nov 21, 2021
QtWebKit-based web browser on Linux framebuffer.

FBrowser QtWebKit-based web browser on Linux framebuffer. Security Notes This browser is not intended for visiting untrusted websites. By default, OSB

null 24 Jan 1, 2023
Browser and NodeJS Web Assembly audio decoder libraries that are highly optimized for size and performance.

WASM Audio Decoders WASM Audio Decoders is a collection of Web Assembly audio decoder libraries that are highly optimized for browser use. Each module

Ethan Halsall 81 Jan 4, 2023
A static C library to build applications for the Foenix retro computers, and, eventually, a single-tasking operating system and file browser that sits atop the Foenix MCP Kernel

@mainpage Foenix A2560 Foenix Retro OS: fr/OS A2560-FoenixRetroOS This project provides 2 things: A static C library/framework that anyone can use to

null 4 Jun 24, 2022
Filter and launch links in a browser of your choice!

Link Launcher Filter links with regular expressions and launch them into your favourite browsers Have you ever wanted to open a youtube link from othe

null 5 Aug 20, 2021
A homebrew browser that's actually good.

Better Homebrew Browser The homebrew browser that's actually good. Massive thanks to GrapheneCt on his work on ScePaf. Features It is the second ever

Ibrahim 70 Dec 25, 2022
an easy-to-use cross platform web browser controller for C++

WebBrowser++ 这是一个基于C++17的唯头文件跨平台浏览器控制库。 您只需要将本目录下的Include文件夹拷贝至您的项目中即可使用。如果使用CMake编译,则可直接include_directories(Include),也可以模仿本项目的CMakeLists.txt进行编写。 建立该

null 8 Nov 17, 2021
A modern ESM build of the Potrace library for use in the browser.

ESM Potrace Wasm A modern ESM build of the Potrace library for use in the browser. Installation npm install --save esm-potrace-wasm Usage import potra

Thomas Steiner 40 Nov 5, 2022
An easy programming language that runs in the browser

easylang.online An easy programming language that runs in the browser Website easylang.online Build in Linux Dependencies Download Emscripten SDK and

chkas 98 Dec 29, 2022
Scriptable Headless Browser

PhantomJS - Scriptable Headless WebKit PhantomJS (phantomjs.org) is a headless WebKit scriptable with JavaScript. The latest stable release is version

Ariya Hidayat 29.1k Jan 3, 2023