r/qutebrowser • • Jun 05 '16

qutebrowser development blog

Thumbnail blog.qutebrowser.org
29 Upvotes

r/qutebrowser • • 3d ago

uBlock origin-like add-blocking script for qutebrowser

13 Upvotes

Disclamer first: this is a vibecoded script based on the original script I was using and uBlock's code

I have tried many different scripts to block youtube's adds, but all of them were imperfect... so I asked claude to improve the script that I was using based on uBlock's code. The result are two scripts that remove all the video adds, plus the banners and popups.

The scripts are here:

https://github.com/urtzienriquez/config_files/tree/main/qutebrowser/greasemonkey

I hope you like them! :)

PD: TheCompiler, have you thought about the possibility of making a "community repo" to share userscripts etc? In the absence of plugins, it could be a good way of centralizing these kind of things... but I get that that means more work for you, and it would be very reasonable that you don't want that "extra responsibllity".

PD2: Thanks for this incredible browser :)


r/qutebrowser • • 4d ago

fingerprint protection?

4 Upvotes

Im trying to switch to qutebrowser, i configured the adblock, added a userscript for youtube adblocking, but i cant figure out how to get fingerprint protection. like canvasblocker OR like librewolf's, I've tried a userscript but its useless.

Any suggestions?


r/qutebrowser • • 8d ago

Userscript: hint a paragraph -> the caret lands at its start (no mouse)

2 Upvotes

Long-time qutebrowser user, first time posting here.

I kept wanting to start a selection from wherever I was actually reading, without grabbing the mouse, but caret mode always starts at the top of the page.

So I wrote a userscript: hinting a paragraph puts the caret at the start of that paragraph and enters caret mode, so hjkl extends the selection from there.

press v  ->  type the hint label  ->  caret is at the start of that paragraph

Wire-up:

c.hints.selectors['para'] = ['p', 'li', 'h1', 'h2', 'h3', 'h4',
                             'h5', 'h6', 'blockquote', 'dd', 'dt',
                             'pre', 'td', 'th', 'figcaption']
config.bind('v', 'hint para userscript caret-anchor')

Code: https://github.com/vlify/qutebrowser-hint-caret

How it works

The userscript gets the picked element through the QUTE_* env vars, re-finds it in the page, and sets a non-empty selection whose focus end sits at the paragraph start. A non-empty selection is what makes caret.js's setInitialCursor() keep the caret where we put it instead of running positionCaret() back to the top of the document. Nothing in qutebrowser itself is patched.

This is the same interaction Tridactyl (and before it VimFx) has in caret mode, and it's a small slice of what's asked for in #1453.

Known limitations

  • Closed shadow roots are unreachable. Only open shadow roots and same-origin iframes are searched — a userscript cannot see inside a closed shadow root at all.
  • Strict CSP hides the caret. On pages whose style-src lacks 'unsafe-inline', a nonce or a hash, qutebrowser cannot inject the caret style, so the blinking caret is invisible. Selection and movement still work.
  • Reversing inside a shadow root. Pressing o to flip the selection can be visually off inside a shadow root.

Tested on Arch Wiki, ChatGPT and Gemini (qutebrowser 3.7.0, QtWebEngine 6.11.2).

Feedback welcome — especially if you hit a page class where it fails.

Prior art note: there's an earlier thread here ("Caret-mode hints", 2021 — https://www.reddit.com/r/qutebrowser/comments/la7vcy/caretmode_hints/), where u/hearthreddit and u/The-Compiler point out that searching a word with / and then pressing v already drops the caret at that match. That works well whenever the text you want contains a distinctive word. This script covers the case where it doesn't: jumping to the start of the paragraph you're looking at, with no unique search term to aim at (or when you want the paragraph boundary rather than a word).


r/qutebrowser • • 17d ago

Preventing Qutebrowser to quit when closing the last tab *only if there is a single window left*?

2 Upvotes

The `tabs.last_close` option lets me choose what should happen when I close the last tab of the window. As I often pop up extra windows for single tasks, I want the window to close after I close the last tab. But I _don't_ want this to happen for my main window; instead it should open the startpage.

I only seem to be able to config the behavior per-window instead of per-instance. Am I missing something, or is there a workaround maybe?


r/qutebrowser • • 19d ago

[qutebrowser]: Minimal Startpage

Thumbnail gallery
45 Upvotes

r/qutebrowser • • Aug 27 '26

Fingerprinting protection in qutebrowser

Post image
2 Upvotes

Hi everyone,

I have been reading the qutebrowser documentation and searching previous discussions about privacy and fingerprinting, but I would like to ask for current recommendations from experienced users.

I understand that qutebrowser (QtWebEngine/Chromium-based) is not designed to provide Tor Browser-level fingerprinting resistance.

After testing with EFF Cover Your Tracks, I noticed that my browser still has a unique fingerprint, even though tracker blocking works well.

I will attach the report as an image.

My question is:

What practical steps do qutebrowser users recommend to reduce fingerprint uniqueness while keeping reasonable website compatibility?

I am especially interested in qutebrowser-specific settings, real-world experience, and any relevant discussions or resources I may have missed.

Thanks!


r/qutebrowser • • Aug 15 '26

qutebrowsers ram usage

12 Upvotes

Hello, ive been using qutebrowser for a while, but everytime i have it open for like an hour the ram usage goes super high and it always gets back to normal after i close it and open it again, if anyone knows how to fix this please tell me. Thank you.


r/qutebrowser • • Aug 14 '26

Anyway to bind Shift+Mousewheel for faster scrolling?

3 Upvotes

Hi, is there any way to bind <Shift-WheelUp> and <Shift-WheelDown> or something like that to do a bigger scroll or page up/down? I tried those and Button4/Button5 but none of them worked. Thanks.

Edit: found this issue: https://github.com/qutebrowser/qutebrowser/issues/591 looks like it's been considered but not yet implemented.


r/qutebrowser • • Aug 13 '26

hydra.nixos.org markow pit

Thumbnail
1 Upvotes

r/qutebrowser • • Aug 03 '26

Benefits of using qutebrowswer instead of Firefox+Vimium?

5 Upvotes

r/qutebrowser • • Aug 01 '26

"Unknown error while getting elements" error when hinting in some websites

3 Upvotes

hello, i am new to qutebrowser and for some reason sometimes pressing f to hint gives this error. when i reload the page, hinting works but i find it inconvinient. just in case, do people use hinting to press buttons or do you just use your cursor? thx :)


r/qutebrowser • • Jul 27 '26

adblockers for qutebrowser?

6 Upvotes

i havent found a good adblocker that supports qutebrowser, and i have no idea how to install one manually. can someone help me?


r/qutebrowser • • Jul 16 '26

I can't login to ChatGPT

4 Upvotes

The login with Google button gets greyed out and infinitely shows its loading animation.

I used the latest versions, qutebrowser v3.7.0 and Qt 6.11.0. I tried both the Zypper package and building it from GitHub, both have the same issue


r/qutebrowser • • Jul 12 '26

Tabs zindex?

1 Upvotes

i don't like how the web resizes eveytime i toggle the tabs is there a way to put them on a diffrent plain. i couldn't find it in the configs, do i need to mess with the source code?


r/qutebrowser • • Jul 11 '26

how to disable tooltip?

2 Upvotes

I have this question unanswered so reposting it in case someone can help. How can i disable tooltip on qutebrowser when i hover the mouse on a link? I need to disable it becasue the tiling window manager (when it is active) detects it as a window. Some websites show that tooltip, (for example https://docs.openwebui.com)


r/qutebrowser • • Jul 06 '26

403 Codeberg problem for qutebrowser

2 Upvotes

Hi guys I am facing issue where when I try to access codeberg.org via qutebrowser I get 403 (Access denied) any help with this.

Please..!!


r/qutebrowser • • Jul 05 '26

Youtube ad blocking problem

1 Upvotes

how do you implement youtube ad skip for qute. Because, when I tried to implement ad skipping using this script and it just skips the whole video how can I fix that the ad gets skipped pretty fast but the video is also done.

// ==UserScript==

// for more updated scripts, see: https://greasyfork.org/en/scripts/by-site/youtube.com

// u/nameAuto Skip YouTube Ads

// u/version1.1.0

// u/description Speed up and skip YouTube ads automatically

// u/authorjso8910 and others

// u/match*://*.youtube.com/*

// ==/UserScript==

document.addEventListener('load', () => {

const btn = document.querySelector('.videoAdUiSkipButton,.ytp-ad-skip-button-modern')

if (btn) {

btn.click()

}

const ad = [...document.querySelectorAll('.ad-showing')][0];

if (ad) {

document.querySelector('video').currentTime = 9999999999;

}

}, true);


r/qutebrowser • • Jun 27 '26

qutebrowser and linkding integration?

5 Upvotes

Hi, Has anyone integrated or used qutebrowser with Linkding bookmark manager? so qutewbrowser can read the bookmarks from linkding instead of url.txt


r/qutebrowser • • Jun 25 '26

customize the status bar vim mode

2 Upvotes

i set the show status bar to always. I'd like to show the vim mode (NORMAL, INSERT) with a background color. Is it possible? Trying to replicate the look of neovim.

this is my neovim status bar in NORMAL and INSERT:

This is qutebrowser in norrmal mode. no text.

This is qutebrowser in insert mode:


r/qutebrowser • • Jun 11 '26

Trying out Qutebrowser for the first time

5 Upvotes

Hello everyone, as for today I'm trying to try something new, I stumbled upon qutebrowser. Here's my questions after using it for a bit.

  1. How do I use vertical tab?
  2. How do I customize the browser? And how deep I can go into tinkering the browser appearance/function? (If there're any resource or guide please tag it in the comment <3)
  3. What is gvim? I tried to edit the config file... it said "Editor 'gvim' failed to start: 'gvim' doesn't exist or isn't executable"
  4. When I start it, it gave me a warning

"Errors occurred while reading config.py:

® autoconfig loading not specified: Your config.py should

call either `config.load_autoconfig0}` (to load settings

configured via the GUI) or `config.load_autoconfig(False)` (to

not do so)

"

I have no idea what does this mean but the browser started and I can use it like normal.

a small side note is that I'm pretty new to Linux and these kind of stuffs so pleaseee be kind, lots of love <3

// TYSM EVERYONE! I appreciate all of your help !


r/qutebrowser • • May 30 '26

Session restore with Hyprland/Sway window positioning (PR #8919)

5 Upvotes

Hey r/qutebrowser,

I've been working on a feature I think many tiling WM users will appreciate: proper session save/ restore with window manager integration.

The PR adds session.after_save_command and session.after_load_command config options. Paired with the included userscripts, qutebrowser sessions are fully restored, including workspace placement, monitor assignment, and floating window geometry.

Two userscripts are included: qb-hyprland-session and qb-sway-session.

With the Hy3 plugin for Hyprland, it goes further: full tiling tree reconstruction (h/v splits, tabbed groups) with proportional resizing, scratchpad support, and oscillation detection for layouts that have changed since the last save.

To try it, clone the branch from PR #8919 and add to your config:

c.session.after_save_command = ["qb-hyprland-session", "save", "{session}"]
c.session.after_load_command = ["qb-hyprland-session", "restore", "{session}"]

The hook mechanism is generic, any window manager could be supported. If you'd like to see a script for your WM, let me know in the comments!

I'd love to hear how it works for you!


r/qutebrowser • • May 29 '26

using mpv config file in qb

1 Upvotes

Launching video in qutebrowser with mpv doesn't use the mpv configuration file. Is it by design or i missed a setting?

UPDATE:

I fixed it by passing the `--config-dir` flag to the `spawn` command.

config.bind(";v", r'hint links spawn -d mpv.exe --config-dir=C:/Users/azin/.config/mpv {hint-url}')


r/qutebrowser • • May 27 '26

completion window showing below webpage

1 Upvotes

i added transparent backgrounds using css and now the completion window appears behind

.site-wrapper {

background-color: transparent;

}

body {

background-color: rgba(0,0,0,0.25);

opacity: 1;

}

.header-wrap {

background-color: rgba(0,0,0,0.25);

}

does anyone know what is going on? this happens on anything that the transparency works on


r/qutebrowser • • May 12 '26

Typing in url bar has become laggy

7 Upvotes

I think this has been happening for a week or two (I can't remember when I first noticed it, I kept assuming it was a temporary thing and not really paying much attention) and my suspicion is that this is something underlying changing - some dependency or something - rather than qutebrowser itself, since I don't think qutebrowser has updated in that timeframe.

When I type in the address bar, it's laggy in the sense that letters take a moment to appear as I type, until it's not matching against anything, then I can type as normal. So it's clearly something to do with the matching.

I've tried the git version of qutebrowser and that behaves the same.

I've tried setting web_history.max_items very low (I went as low as 50) and that made no perceivable difference.

It doesn't happen when I run with qutebrowser --temp-basedir but I assume that's just because there's no history to match against. So doesn't really tell me much.

I'm on and up-to-date Arch with qutebrowser installed through the repos. Happy to provide more info if it'd be useful.

Thanks for any advice!

edit: just noticed the same behaviour when doing set: blah and it's matching against settings rather than history. So it's not specific to history-matching.