- Vala 86.6%
- CSS 4%
- C 3.4%
- HTML 2.7%
- Meson 2.5%
- Other 0.8%
|
|
||
|---|---|---|
| data | Add page navigation to history; Use correct scheme for host field in | |
| po | Renamed from swb to sunstone | |
| src | Sidebar bookmarks fixes | |
| .gitignore | Vertical tabs mostly working | |
| compile_flags.txt | Fix bugs and deficiencies in bookmark search; Begin using resources as | |
| LICENSE.md | Add license and readme | |
| meson.build | Fix bugs and deficiencies in bookmark search; Begin using resources as | |
| org.codeberg.jeang3nie.sunstone.json | Fix first-run issues and flatpak build | |
| README.md | Add menu item and shortcut for opening web inspector; Add missing | |
Sunstone Web Browser
Contents
Introduction
Sunstone Web Browser is an attempt to create a simple and easy to use web browser from freely available components like Gtk+ and WebKit. While there are no doubt many choices available in this space, the overall dominance of Blink based browsers coupled with the troubling state of Mozilla has many Free Software enthusiasts worried about the future of the web. Sunstone aims to be easy to use while providing features that can streamline workflows such as a tag-based bookmarking system, short aliases for web search engines and bookmarks and the ability to hide most or all of the interface. That particular quality makes Sunstone better suited for smaller, low-resolution laptop screens than many other options.
Overal Philosofy
- Simplicity is great, but can be taken too far if it makes a tool more difficult or annoying to use.
- All users deserve good tools. That includes new users, but it also includes "power users" or those with decades of computing experience. Catering to the latter is often denigrated as elitism, but they are just another type of user and deserving of consideration.
- Low-spec hardware is commonly used in the real world. Developers must consider how a program looks and performs on a Black Friday laptop with a 720p screen at least as much as they consider "proper" machines.
- Perfect is the enemy of the good. Release often, accept that bugs exist in all software. Choose a language and tooling that are good enough while allowing you to be productive.
Building
Prerequisites
- Tooling
- The Vala compiler, valac
- meson
- ninja
- a c23 compatible C compiler
- Libraries and headers
- libgee-0.8
- gtk+ version 4
- webkitgtk-6.0
- libadwaita
- sqlite
- json-glib
# Setup the build directory
meson setup build
# Build the program
ninja -C build
Usage
Keyboard Shortcuts
For the moment, keyboard shortcuts are not configurable. In the future they will be.
| Action | Shortcut |
|---|---|
| app.quit | <Ctrl>q |
| win.new_tab | <Ctrl>t |
| win.close_tab | <Ctrl>w |
| win.open_file | <Ctrl>o |
| win.save_page | <Ctrl>s |
| win.save_as | <Ctrl><Shift>s |
| win.bookmark_page | <Ctrl>d |
| win.open_bookmarks | <Ctrl><Shift>d |
| win.reload | <Ctrl>r |
| win.go_back | <Alt>Left |
| win.go_forward | <Alt>Right |
| win.previous_tab | <Ctrl>Left |
| win.next_tab | <Ctrl>Right |
| win.bookmark_page | <Ctrl>d |
| win.toggle_sidebar | <Ctrl><Shift>z |
| win.toggle_tabBar | <Ctrl><Shift>t |
| win.focus_addrBar | <Ctrl>g |
| win.toggle_cmdBar | <Ctrl><Shift>g |
| win.open_overview | <Ctrl><Shift>o |
| win.zoom_in | <Ctrl>plus |
| win.zoom_out | <Ctrl>minus |
| win.zoom_reset | <Ctrl>0 |
| win.open_inspector | <Ctrl><Shift>i |
Contributing
By submitting pull requests you agree to license your contributions as GPLv3. Also note that there is a strict policy against LLM generated or assisted contributions.
Coding style
- four space indent, no tabs
- class names are CamelCase, variable and function names are snake_case
- break lines if they are much over 80 characters
- prefer clarity over conciseness
- comment your code if something isn't really obvious
Code of Conduct
- We (the project creators) are committed to providing a friendly, safe and welcoming environment for all, regardless of level of experience, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, nationality, or other similar characteristic.
- Please avoid using overtly sexual aliases or other nicknames that might detract from a friendly, safe and welcoming environment for all.
- Please be kind and courteous. There’s no need to be mean or rude.
- We will exclude you from interaction if you insult, demean or harass anyone participating in the project, whether that harrassment is public or private.
- Likewise any spamming, trolling, flaming, baiting or other attention-stealing behavior is not welcome.
- Likewise, public behavior that insults, demeans, belittles or shames others not directly associated with the project may get you banned. We have no desire to associate with known fascists, racists, or bigots even if you keep those sentiments to yourself in the context of the project.
Roadmap
Short Term Goals
- Working proof of concept web browser
- Integrate bookmark and search engine aliases into url resolving from the address bar
- Make the interface mostly usable mouse-free, providing keyboard shortcuts to show/hide interface tools such as address and tab bars
Medium Term Goals
- Provide a multi-function panel with tabs for history, settings, bookmarks, etc.
Long Term Goals
- Explore using Servo as an alternate redering engine