v0.2.0
Prerelease
An Arch package
This is the first release with an Arch package attached, along with a CycloneDX inventory of what is in it. Install it with sudo pacman -U omaweb-git-*.pkg.tar.zst.
- The package depends on the distribution's
qt6-webengine. An engine security update arrives with a system upgrade rather than a new Omaweb release. fcitx5-qtis an optional dependency. Omarchy setsQT_IM_MODULE=fcitxwithout installing that plugin, so without it an input method does nothing.- When the desktop names an input method whose plugin is missing, Omaweb warns at startup and shows a notice in Settings, under Keyboard.
- The VA-API driver packages are optional dependencies, each naming the GPU it is for.
Linux desktop integration
- Omaweb opens the address it is started with.
omaweb https://example.comused to open a blank tab. Onlyhttp,httpsandfileaddresses open, and an address with no scheme is refused. - A second launch hands its address to the browser already running and exits, so a link from another application arrives as a tab. A launch with no address raises the running browser.
- Settings offers to make Omaweb the default browser, under About. The offer goes through
xdg-settings, and Omaweb never takes the setting on its own. - Printing goes through the desktop's print portal, and its dialog stands over the window that asked. If system Qt is not the exact version the package was built on, the dialog opens on its own until a rebuild.
- Pages can send notifications through the desktop's notification service. With no notification daemon running, the capability stays off.
- Video decodes on the GPU where a VA-API driver answers. Omaweb adds
--enable-features=VaapiVideoDecodeLinuxGLto the engine command line, and a host with no driver decodes in software as before. To turn it off, put--disable-features=VaapiVideoDecodeLinuxGLinQTWEBENGINE_CHROMIUM_FLAGS. - The window class is
omawebon Wayland and X11. Omarchy applies 0.985 opacity to every window, the page included. To keep pages opaque, add the rule inintegrations/omarchy/README.mdto~/.config/hypr/looknfeel.lua.
Following the Omarchy theme
- On a machine with Omarchy, the first start installs the theme template to
~/.config/omarchy/themed/and renders the active theme. Following the desktop used to take three commands by hand. A template already there is never overwritten, andOMAWEB_NO_OMARCHY_TEMPLATEstops the write. - A theme switch repaints the browser without a restart. Omarchy relinks the theme directory on a switch, and Omaweb used to go on watching the theme you had left. The controls drawn from the Omarchy kit, such as the current tab's fill and the address field's edge, follow the switch too.
- A theme with a colour that cannot clear the contrast floor everywhere keeps its other colours. Such a theme used to fall back to the built-in palette, and the Omarchy template always produced one.
- The font follows
omarchy font set. The template names themonospacealias first, where it used to name a variable Omarchy does not have. - Private windows tint each of the theme's own surfaces towards its Private accent. They used to come out olive at 62% alpha, because Qt read the template's alpha suffix as part of the colour.
- Quiet text clears 4.5:1 against every surface it sits on. On one reported theme it held 1.98:1, fainter than a disabled control at 2.36:1.
- Borders keep the theme's colour instead of turning near-white: starsend's
#617877had become#c6d1d0. Dividers take a newseparatorcolour, the theme's text colour at 0.12. - The sidebar's opacity rises to 0.95 and the sheet's to 0.92. An unfocused Omarchy terminal sits at about 0.94, so the sidebar at 0.90 read thinner than the windows beside it. The Omnibar stays at 0.96.
- Developer tools draw code in the colours an editor gives the same theme, with red kept out of code.
Site security and privacy
- Site permissions belong to one Space. Camera, microphone, geolocation and notifications offer Allow once, Always allow and Block. Clipboard read and screen sharing ask every time.
- After a reset, a site is asked again. Chromium used to keep permissions on disk and answer from there. A page already holding a capability keeps it until the site is opened again.
- Third-party cookies and site storage are blocked. A sign-in or payment flow can be given one origin's Third-party cookie allowance in one Space, held in memory until the session ends.
- Certificate failures block. The one exception is an overridable, non-fatal failure in a Local-development site's main frame, and Omaweb never remembers it.
- The address trigger draws the connection from the engine's report: a lock, an open lock or a warning. The warning stays while a Certificate exception stands, and a load that never arrived is no longer called unencrypted.
- Site information shows the origin, the connection, the Refusal tally, the site data the Space holds and the Space's decisions for that origin. Its questions open in the centred dialog.
- Site information offers three clears, each named before it acts: this site's storage, the Space's cookies and cache, and the origin's decisions. A notice says what each one took.
- This site's storage is emptied from inside the page: local storage, session storage, databases, caches and service worker registrations. Cookies stay with the Space-wide clear.
- Clearing browsing data opens a dialog. Pick from cookies, site storage, cache, Site permissions and history, a time range, and this Space or every Space. Clearing every Space asks you to type CLEAR ALL.
- The dialog remembers the categories and the time range. The scope starts on the Space on show each time. Tab and Shift+Tab move through it, Space ticks, Enter confirms and Escape closes.
- A launch flag that would lower a web security boundary browser-wide stops Omaweb from starting. Sandbox-disabling switches are refused in
QTWEBENGINE_CHROMIUM_FLAGSas well as on the command line. - On a Linux kernel that cannot isolate a renderer, Omaweb names the problem and does not start. Settings says whether the build meets the Engine security baseline.
Downloads
- Executables, scripts, installers, disk images and archives ask before they download. A file name already taken goes to the desktop's save dialog.
- A finished download is marked with where it came from and loses its execute bits. Omaweb never opens a download.
- A page that downloads without a click, or starts a second download during its first, needs a Site permission in that Space.
- The downloads list offers cancel, retry, show where the file landed, and remove from history without deleting the file. The download directory is one setting for every window.
- The Download mark in the outline footer shows how many downloads are running and their combined progress. Point at it or focus it to see each file, and press it to open the downloads section. It works in Private windows too.
Tabs and Spaces
- A background tab's page is frozen, and it continues where it stopped when you select it. A tab with Developer tools open, a tab making sound and a Pinned tab marked Keep active keep running.
- Switching Spaces freezes the away Space's pages instead of discarding them. Nothing reloads when you come back.
- The Omnibar searches history off the interface thread. In a test with 40,000 visits in one session, a keystroke held the interface 8 ms at the median. Now none measures above 1 ms.
- History is trimmed back to its 5,000-visit bound every 256 visits. It used to be trimmed only when a Space's database opened, so a long session grew past it.
- Hiding or showing the sidebar lays the page out once each way, instead of at every frame of the slide.
- Settings has a new Interface section with two switches, both on by default. Floating controls shows the controls over the page while the sidebar is hidden. Ease the sidebar animates the slide.
- Favicons show in their own colours by default. The tint setting stays, and a choice you already made is kept. The chip is sized from the theme's smallest type instead of a fixed 18 pixels.
- A Pinned tab marked Keep active says so on its row.
- The ordinary tab list is gapped like the pins, and the navigation area above it is tighter.
- Content blocking reuses cosmetic resources across page loads. A cold navigation assembles them once instead of five times, and a warm one not at all. A finished load no longer rewrites the page's stylesheet.
- Settings, History and the Start page share one 48-pixel inset above their headings. Section labels are larger and in capitals.
- The Shortcut sheet and Settings size themselves from the theme's type, so a larger font no longer clips them. The Shortcut sheet fills a wide window instead of stopping at 760 pixels.
Fixes
- Clearing browsing data works. Its first step used to throw an error, so the cache clear after it never ran.
- The Refusal tally belongs to the page on show in its Space. A tab switch used to leave the previous tab's count on screen, and a reload counted on top of the load before it.
- A
file://page loads the remote scripts, stylesheets and fonts it names. Access to other local files stays off. - A content-blocking settings file that listed no filter list never subscribed EasyList and EasyPrivacy again. If yours was empty, the two lists come back once.
- With no filter list subscribed, Settings says so and offers EasyList and EasyPrivacy back.
- Reopening a tab's menu shows the tab as it stands. It used to show the list from the first opening, so a tab just marked Keep active still offered Keep active.
- A menu dismissed straight after opening no longer takes the keyboard back.
Full changelog: https://github.com/villekivela/omaweb/compare/v0.1.2...v0.2.0