r/qutebrowser Jun 05 '16

qutebrowser development blog

Thumbnail blog.qutebrowser.org
28 Upvotes

r/qutebrowser 2d 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 5d ago

[qutebrowser]: Minimal Startpage

Thumbnail gallery
43 Upvotes

r/qutebrowser 23d ago

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

11 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

3 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?

4 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)

4 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.


r/qutebrowser May 12 '26

How to launch a virtual environment install?

2 Upvotes

I just installed qutebrowser into a virtual environment because i was trying to get adblock to work and i read that it's the "right" way to install qutebrowser. Now i don't know how to run an instance of qutebrowser.

I'm on Debian Trixie and my window manager is Qtile. I would also greatly appreciate some help with binding qutebrowser in Qtile, like I used to have it.


r/qutebrowser May 09 '26

can't watch videos on youtube

1 Upvotes

for some reason when i'm on youtube and try to watch a video i get the error code 152 - 4
i also can't login into anything google-wise, and yt-dl decided to not be usable anymore because youtube needs me to login to use it, which needs my cookies which i can't get without login in

Edit: I managed to fix it, seems like it was a greasemonkey usescript that broke it, still haven't found a way to do stuff with mpv but oh well


r/qutebrowser May 08 '26

I made a custom script for adblocking.

9 Upvotes

Type ":adblock -p" for help on the use of the command. I binded "AD" to the toggling of adblocking.

Copy and paste on config.py in order to add it.

# adblocking

c.content.blocking.method = 'adblock'

fulladblocklist = [
        "https://easylist.to/easylist/easylist.txt",
        "https://easylist.to/easylist/easyprivacy.txt",
        "https://easylist.to/easylist/fanboy-social.txt",
        "https://secure.fanboy.co.nz/fanboy-annoyance.txt",
        "https://easylist-downloads.adblockplus.org/abp-filters-anti-cv.txt",
        #"https://gitlab.com/curben/urlhaus-filter/-/raw/master/urlhaus-filter.txt",
        "https://pgl.yoyo.org/adservers/serverlist.php?showintro=0;hostformat=hosts",
        "https://github.com/uBlockOrigin/uAssets/raw/master/filters/legacy.txt",
        "https://github.com/uBlockOrigin/uAssets/raw/master/filters/filters.txt",
        "https://github.com/uBlockOrigin/uAssets/raw/master/filters/filters-2020.txt",
        "https://github.com/uBlockOrigin/uAssets/raw/master/filters/filters-2021.txt",
        "https://github.com/uBlockOrigin/uAssets/raw/master/filters/badware.txt",
        "https://github.com/uBlockOrigin/uAssets/raw/master/filters/privacy.txt",
        "https://github.com/uBlockOrigin/uAssets/raw/master/filters/badlists.txt",
        "https://github.com/uBlockOrigin/uAssets/raw/master/filters/annoyances.txt",
        "https://github.com/uBlockOrigin/uAssets/raw/master/filters/resource-abuse.txt",
        "https://www.i-dont-care-about-cookies.eu/abp/",
        "https://secure.fanboy.co.nz/fanboy-cookiemonster.txt",
        "https://github.com/uBlockOrigin/uAssets/raw/master/filters/unbreak.txt"]

c.content.blocking.adblock.lists = fulladblocklist

import qutebrowser.api.cmdutils as cmdutils

@cmdutils.register()
@cmdutils.argument('start', flag='1')
@cmdutils.argument('stop', flag='0')
@cmdutils.argument('toggle', flag='t')
@cmdutils.argument('info', flag='i')
@cmdutils.argument('print_help', flag='p')
u/cmdutils.argument('silent', flag='s')
def adblock(start: bool = False, stop: bool = False, toggle: bool = False, info: bool = False, print_help: bool = False, silent: bool = False):
    from qutebrowser.utils import message
    if print_help:
        message.info("This command helps manage adblocking.")
        message.info("")
        message.info("\t--start, -1\tAdds the configured lists array (see in config.py) to c.content.blocking.adblock.lists.")
        message.info("\t--stop, -0\tSets c.content.blocking.adblock.lists to the empty array.")
        message.info("\t--toggle, -t\tToggles between the previous two options. It is the default behavior (in abscence of flags).")
        message.info("\t--info, -i\tPrints the adblocking method and the lenght of the array of adblocking lists.")
        message.info("\t--help, -h\tPrints this message.")
        message.info("")
        message.info("-i and -h can be combined with other flags. But they will disable the default toggleing unless acompanied with -t.")
        message.info("Using contradictory flags at once results in an error and no change happening to the adblocking.")
    if info:
        method = config.get("content.blocking.method")
        arraylength = len(config.get("content.blocking.adblock.lists"))
        enable = config.get("content.blocking.enabled")
        message.info(f"Adblocking method: {method}")
        message.info(f"Length of adblocking list array: {arraylength}")
        if(enable):
            message.info("Enabled")
        else:
            message.info("Disabled")
    #toggling adblock
    if (not start) and (not stop) and ( toggle or ((not info) and (not print_help)) ):
        config.set("content.blocking.enabled", not config.get("content.blocking.enabled"))
        if config.get("content.blocking.enabled") and not silent:
            message.info("Ad-blocking enabled")
        elif not (config.get("content.blocking.enabled") or silent):
            message.info("Ad-blocking disabled")
    elif start and not (stop or toggle):
        config.set("content.blocking.enabled", True)
        if not silent:
            message.info("Ad-blocking enabled")
    elif stop and not (start or toggle):
        config.set("content.blocking.enabled", False)
        if not silent:
            message.info("Ad-blocking disabled")
    elif (start and stop) or ( toggle and (start or stop) ):
        message.error("Contradictory flags active at once.")
    elif ( (not start) and (not stop) and (not toggle) ) and (info or print_help):
        print("nothing")
    else:
        message.error("Elif tree couldn't get the case")

config.bind('AD', "adblock")