Nate
Posts
#Sunstone #browser grew a couple of features over the past two days.
- History
This is in the same `places` database as bookmarks. For the time being, there is no interface for browsing history or deleting entries. I've added two settings, max_entries and max_days. Every fifteen minutes a background job runs at low priority to clear and history beyond what those two settings allow. There are a lot of plans for how history is going to be displayed such as grouping visits by host and deleting items from arbitrary ranges of time.
- Address bar completions
Whatever you type into the address bar is now saved and used as entry completions. This was something I was having a hard time living without while dogfooding the browser as my daily driver.
There was a lot of code cleanup and refactoring done in the past couple of days as well. Most of the Sql used to access the places database is stored as snippets in the GResources vfs.
Does Pam Bondi know that the Dow is no longer above 50k?
I spent a few hours today rethinking the schema for the bookmarks database in #Sunstone . The result is better functionality in less code, which is hopefully a lot less brittle. This database is also going to be used for history, and it's tied in to parsing address bar queries, so it's definitely worth getting it right before going too much further.
Next steps are going to be displaying bookmarks in list form in the sidebar, followed by serving a bookmarks page at the uri sunstone://bookmarks. Since the bookmarks are organized by tags, each tag will be available as a subfolder of that url (eventually).
It was a better day than I expected. My younger son came over and visited for a few hours. He's starting a new job at KSU tomorrow, so he'll be working really close to where I live and we might be seeing a lot more of him going forward.
A little work done on my web browser. I'm working on bookmarks, and instead of storing them in a text file like I originally planned I'm going to try out storing them in an sqlite database. Some of that infrastructure is in place. Bookmarks are going to be tag based rather than in folders, so you can tag a bookmark with multiple categories and it will show up in all of them. I think that's a better way of organizing them than the traditional folder view.
Downloads are working now, but the only feedback happens at the end of the download when it either finishes or fails. I'm working on a download widget that will provide progress bar, estimated time left and a cancel button for each download. Not sure if I want to stick downloads in a popover menu like Epiphany and Firefox do, in the sidebar, or in a dedicated tab (which gives the most space for feedback). Once I've added persistent settings I'll also add settings for choosing download locations. Right now it just defaults to ~/Downloads.
Speaking of feedback, there is a spinner on each tab button that lets the user know that a page is loading. However, there is no user feedback when the tab bar is hidden, so I'll be adding something to address that. Probably I'll add a spinner that is only shown in the control bar if the tab bar is hidden. I may add a very slim status bar at the bottom that will only show if the control bar is hidden, which will show some feedback when the rest of the interface is hidden. That requires adding some custom css, because I want it to be really slim and out of the way.
Currently 46° outside. The snow and ice are finally melting off the driveway enough to get the bike or for a ride. Had it out earlier picking up some candy for my wife for valentine's day and it immediately made me feel better than I have in months.
Some progress on Simple Web Browser today.
- Forward/Back/Reload implemented
- Control buttons are sensitive only when they do something (ie, forward button is greyed out if you can't go forward)
- Added a shortcut to focus the address bar
- Change text in address bar and window title when changing tabs
Repository is now public. Right now this is just called Swb, or Simple Web Browser. Open to naming suggestions.
Swb is being written in Vala using WebKitGtk. I've been daily driving Gnome Web since Mozilla's new CEO decided that Mozilla should be an AI company, but I'm cheap (actually quite poor) and have a crappy laptop with a small, low-resolution screen and I hate that there's no way to reduce the size of the interface. That was the original motivation, anyway.
I used DWB back in the day, and Qutebrowser for a number of years until I couldn't stomach the idea of Blink taking over the web. I love a browser with a minimal interface that can be driven from a keyboard, but I don't want to saddle people with Vim style keyboard shortcuts or make the thing unusable for newer users. The idea is to build something usable by people who just fired up their first Linux installation last week, and also for those who live 99% of their time on the command line. But I want those advanced users to have tools like short bookmark aliases (qutebrowser calls them Quickmarks) and easily configurable searchengines where you just prepend a short alias to the search query to tell it where to search. The sort of tool that you can use right away, but that you can grow into using really productively over time.
There is a ton left to do to make it what I want it to be. Right now it's sitting at just over 1100 lines of code and is basically just a minimally viable proof of concept. No saved state or settings, no bookmarks (yet) and not all browsing features like back/forward/reload are implemented. I'm putting it out there to hopefully attract contributions, so as such it's GPL3 licensed and has a code of conduct based on the one that the Rust project uses.
I mentioned a little while back that I was considering starting a new browser project using WebKitGtk. The result, written in Vala, is nearing minimum viability. Right now it's nothing special, just a simple tabbed browser that's missing a lot of features, but the skeleton is good and you already get some goodies that Gnome Web doesn't give you:
- Ability to hide the tab bar
- Ability to hide the address bar and other controls
- When the tab bar is hidden, am overview button appears in the controls like on a mobile browser
Once I have what I consider minimally viable, I'll make the repository on Codeberg public and link to it.