/r/qutebrowser
A subreddit for qutebrowser - a keyboard-driven, vim-like browser based on Python and Qt.
A keyboard-driven browser.
Be polite and considerate, follow qutebrowser's Code of Conduct
No spam allowed
Posts must be related to qutebrowser
/r/qutebrowser
As an example, when I try to show hints for links on reddit's left sidebar, I see hints for the links at the top of the communities section, but not for any of the communities themselves.
I've been searching for an answer for this for the past few days and messing with adding things to the hints.selectors sections in my config.py, but haven't had any luck.
The objects do have <a href=...> associated with them, so they should just work, but for whatever reason, they're never given hints.
Love qutebrowser btw. Amazing idea.
When I tried to share my screen on Google Meet, qutebrowser just stop working whitout showing any error. How can I solve that?
I use Swaywm. My info:
qutebrowser v3.3.1
Git commit: 07bd9a691 on main (2024-11-11 12:53:29 +0100)
Backend: QtWebEngine 6.7.3
based on Chromium 118.0.5993.220
with security patches up to 129.0.6668.58 (plus any distribution patches)
(source: api)
Qt: 6.7.3 (compiled 6.7.1)
CPython: 3.12.3
PyQt: 6.7.1
Qt wrapper info:
PyQt6: success
PyQt5: not imported
-> selected: PyQt6 (via autoselect)
colorama: 0.4.6
jinja2: 3.1.4
pygments: 2.18.0
yaml: 6.0.2
adblock: 0.6.0
objc: no
PyQt6.QtWebEngineCore: 6.7.0
PyQt6.sip: 6.8.6
pdf.js: no
sqlite: 3.46.1
QtNetwork SSL: OpenSSL 3.0.13 30 Jan 2024
Style: QFusionStyle
Platform plugin: wayland
OpenGL: Intel, 4.6 (Compatibility Profile) Mesa 24.0.9-0ubuntu0.2
Platform: Linux-6.8.0-49-generic-x86_64-with-glibc2.39, 64bit
Linux distribution: Ubuntu 24.04.1 LTS (ubuntu)
Frozen: False
Imported from ~/qutebrowser/qutebrowser
Using Python from ~/qutebrowser/.venv/bin/python3
Qt library executable path: ~/qutebrowser/.venv/lib/python3.12/site-packages/PyQt6/Qt6/libexec, data path: ~/qutebrowser/.venv/lib/python3.12/site-packages/PyQt6/Qt6
Paths:
cache: ~/.cache/qutebrowser
config: ~/.config/qutebrowser
data: ~/.local/share/qutebrowser
runtime: /run/user/1000/qutebrowser
Autoconfig loaded: yes
Config.py: no config.py was loaded
Uptime: 0:00:12qutebrowser v3.3.1
Git commit: 07bd9a691 on main (2024-11-11 12:53:29 +0100)
Backend: QtWebEngine 6.7.3
based on Chromium 118.0.5993.220
with security patches up to 129.0.6668.58 (plus any distribution patches)
(source: api)
Qt: 6.7.3 (compiled 6.7.1)
CPython: 3.12.3
PyQt: 6.7.1
Qt wrapper info:
PyQt6: success
PyQt5: not imported
-> selected: PyQt6 (via autoselect)
colorama: 0.4.6
jinja2: 3.1.4
pygments: 2.18.0
yaml: 6.0.2
adblock: 0.6.0
objc: no
PyQt6.QtWebEngineCore: 6.7.0
PyQt6.sip: 6.8.6
pdf.js: no
sqlite: 3.46.1
QtNetwork SSL: OpenSSL 3.0.13 30 Jan 2024
Style: QFusionStyle
Platform plugin: wayland
OpenGL: Intel, 4.6 (Compatibility Profile) Mesa 24.0.9-0ubuntu0.2
Platform: Linux-6.8.0-49-generic-x86_64-with-glibc2.39, 64bit
Linux distribution: Ubuntu 24.04.1 LTS (ubuntu)
Frozen: False
Imported from ~/qutebrowser/qutebrowser
Using Python from ~/qutebrowser/.venv/bin/python3
Qt library executable path: ~/qutebrowser/.venv/lib/python3.12/site-packages/PyQt6/Qt6/libexec, data path: ~/qutebrowser/.venv/lib/python3.12/site-packages/PyQt6/Qt6
Paths:
cache: ~/.cache/qutebrowser
config: ~/.config/qutebrowser
data: ~/.local/share/qutebrowser
runtime: /run/user/1000/qutebrowser
Autoconfig loaded: yes
Config.py: no config.py was loaded
Uptime: 0:00:12
I'm working on a userscript for managing passwords. I'm looking for a little feedback on my approach, hopefully I'm not missing something obvious. I use bitwarden and the qute-bitwarden script, which works great, except that its not very fast. Obviously that's no fault of the qute-bitwarden author, bw-cli is not super fast.
This password manager is a wrapper around qute-bitwarden, and other password managers. It encrypts credentials locally using gnupg and checks for credentials locally first, if the password is not found locally it checks whichever remote password manager the user has configured. I never write the unencrypted credentials to the disk. gnupg and bitwarden both require you to enter a master password before providing credentials.
Currently I have it in a proof of concept phase. It seems to work well for me. Logging in is significantly faster. I'm wondering if this is something anyone else is interested in. I'm hoping there's not a major security vulnerability that I'm missing. Right now its more a fun project to work on than anything else, but if someone else is interested in it I'd be happy to get some feedback and or help with testing.
Chromium-based browsers like Chrome or Opera or Edge keep a history of accessed webpages that's of a certain length, after which the oldest entries disappear. I believe, from my memories of using Firefox, this wasn't the case, or it was a longer length.
It seems that qutebrowser does something like this, because I searched for pages from months ago and didn't find them.
I have the following questions:
The config-clear command is not working. I want to keep my bookmarks and other shortcuts, but somehow my settings are all messed up. Webpages are literally unreadable.
Hello, I really enjoyed qutebrowser. It's native adblock with fuckfuckadblock and easylist filter was amazing, I've been so happy. But recently, it just stopped working, and it shows so many annoying ads on reddit and youtube. Anyone with same problems? Any solutions?
Certain shady websites have new tabs that popup whenever you click on any button. UBlock seems to block this, is there a way to stop this in qutebrowser?
Hi! I cannot see video from Udemy or X. How can I solve it? I know this is because of DRM and qutebrowser doesn't have widevinecdm.so, but I don't know what to do?
I use Ubuntu 24.04 and Swaywm as window manager
Not a programmer of any sort, idk what goes on behind the scenes of applications but I am very interested in qutebrowser as I love its implementation of vim bindings, im just not a fan of webkit and prefer librewolf based browsers, but qb seems to be an exception!
May I ask how qb implements vim bindings? is it some kind of extension or....
Is qb light weight, as in, not very resource intensive, I would like a lightweight, minmal browser for wayland and so surf will not do, and qb, i already like but I want to know, is there anything i can do to make it less resource intensive? Is it more resource intensive that librewolf?
Great browser btw, normally i hate webkit and chromium based stuff, this is the only good/great none firefox browser I have come across and am planing to swap to it.
edit: another question lol, is qb supported on OpenBSD?
I am having an issue where videos will not play on most sites. I can play 80% of YouTube vids, but on X (twitter) for instance, the vids will not play. Is anyone else having the same issue? Is there a solution? Can you guys point me to the right research direction?
I find the mobile version of the german wikipedia much easier to read and would like qutebrowser to always request this version. Can anyone help me with creating such a rule?
Edit: I went with „The-Compiler“‘s suggestion and set it to present a mobile user agent for the german wikipedia site.
:set -u
de.wikipedia.org
content.headers.user_agent 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/{webkit_version} (KHTML, like Gecko) Chrome/{upstream_browser_version} Mobile Safari/{webkit_version}'
My qutebrowser is acting weird all of a sudden. When I open it it goes Fullscreen automatically hiding even waybar. And my window layout key bindings don't work. I use void Linux with RiverWM. Even if there are windows open already it doesn't open in a split window but take full screen space and my Fullscreen key bindings doesn't work. I did update my system recently but it's hard to say what caused this.my qutebrowser version is 3.3.1_1 from void package repos
I am finding qutebrowser is failing to load some map types on different websites due to WebGL2.0 support not being found. If I check https://webglreport.com/?v=1, both WebGL 1 and 2 tabs report "This browser supports WebGL X, but it is disabled or unavailable". Is this a known issue? I of course have content.webgl
set to true (default).
EDIT: Solved, `qt.force_software_rendering` was set to `chromium` in `config.py`. Returning this to its default `none` resolved all WebGL issues.
There is a chrome-extension to make chatgpt your standard search engine. I know qb doesn't support extensions but maybe someone has an idea how I could configure it to achieve the same thing?
I saw this post with one of the top comments discussing the possibility of using Gecko with qutebrowser (similar to how there is a QtWebKit backend available). This is something im interested in, becuase I'd rather use something other than Chromium (although I know QtWebEngine is a bit less than Chromium), but QtWebKit was been way too slow in my experience (I initially tried luakit, but it was just unsuable, for me).
In the discussion, it was mentioned that there are efforts to separate Gecko from Firefox, but it was too early to tell. Well, that was 5 years ago, so I was wondering if there were any changes, or no luck?
I tried searching on the github issues for 'Gecko' and 'Engine', but wasn't able to find anything :/
I thought adblock-update would activate it and I also installed python-adblock, but I'm still seeing ads everywhere : on Reddit, Youtube, and random web pages.
I really like everything else about this browser but the ads are just absolutely insufferable. Please help.
Unless my eyes are deceiving me and I'm jumping the gun, QtWebEngine will finally support chromium extensions come Qt 6.9!!! If this pans out, we're one step closer to qutebrowser becoming the ideal hackable browser!
I use an extension to censor OCD trigger words on webpages in firefox. I know I can’t install extensions, but could something similar be achieved in qute?
Here’s the extension for those curious https://addons.mozilla.org/en-US/firefox/addon/advanced_profanity_filter/
This userscript rearranges tabs in qutebrowser. Feel free to use it and if you have improvements they are very welcome.
I made it as response to this post:
I think it works well, although it is not extensively tested and I am sure there are cases I have not thought of where it breaks.
So it uses this userscript (zsh) which calls a python script (tried doing it in zsh at first but it was too complicated for me, in python it was easy).
notes
#!/bin/zsh
# Define file paths
input_file="$HOME/.local/share/qutebrowser/sessions/tab-rearrange-input.yml"
temp_file="/tmp/tab-reorder.md"
output_file="$HOME/.local/share/qutebrowser/sessions/tab-rearrange-output.yml"
# remove input and output
rm -f "$input_file" "$output_file"
qutebrowser ":session-save --only-active $input_file"
sleep 1s
# Extract titles and URLs with indices to handle duplicates
yq -r '.windows[].tabs[].history[] | "\(.title) - \(.url)"' "$input_file" | nl -ba -w1 -s' ' > "$temp_file"
# make it zero-based index without looing the original index
choice1=$(echo -e 'sort how:\nmanual\nsort title\nsort title (reverse)\nsort url sort url (reverse)' | fzfmenu.sh --header-lines --popup)
if [ ! "$(printf %s "$choice1" | sed -n '$=')" -eq 1 ]; then choice1=$(echo "$choice1" | tail -n +2); fi
if [ -z "$choice1" ]; then exit; fi
# echo "$choice1"
case "$choice1" in
manual)
# Open the extracted data in the editor
alacritty --title 'qutebrowser tab-reorder popup' -e $EDITOR "$temp_file"
;;
sort\ title)
# Sort the extracted data by title
cat "$temp_file" | sort -k2
sort\ title\ \(reverse\)
echo 'yes'
esac
# remove empty lines
sed -i '/^$/d' "$temp_file"
python $HOME/Dropbox/share/qutebrowser/in-use/userscripts/qutebrowser-rearrange-tabs-helper.py
sleep 1s
# Read the edited file
qutebrowser ":session-load $output_file"
and here's the helper script:
#!/usr/bin/env python3
import yaml
input_file = '$HOME/.local/share/qutebrowser/sessions/tab-rearrange-input.yml'
temp_file = '/tmp/tab-reorder.md'
output_file = '$HOME/.local/share/qutebrowser/sessions/tab-rearrange-output.yml'
# replace $HOME with the actual path
import os
input_file = os.path.expandvars(input_file)
output_file = os.path.expandvars(output_file)
# Read the new order of indices from the temp file
new_order_indices = []
with open(temp_file, 'r') as f:
for line in f:
index_str = line.strip().split()[0]
if index_str.isdigit():
new_order_indices.append(int(index_str))
# Read the original session data
with open(input_file, 'r') as f:
data = yaml.safe_load(f)
# Process each window in the session
for window in data.get('windows', []):
tabs = window.get('tabs', [])
num_tabs = len(tabs)
original_indices = set(range(num_tabs))
remaining_indices = original_indices - set(new_order_indices)
# Rearrange the tabs based on the new indices
new_tabs = [tabs[i] for i in new_order_indices if i < num_tabs]
# Append any tabs not in the edited list to the end
new_tabs.extend([tabs[i] for i in sorted(remaining_indices)])
window['tabs'] = new_tabs
# Write the modified session data to the output file
with open(output_file, 'w') as f:
yaml.safe_dump(data, f)
print(f"Session data rearranged and saved to {output_file}")
Hi ! My config folder for qutebrowser is located at ~/.qutebrowser but I would love to move it to another location where I have all my config files for other softwares. I checked all the help pages but found nothing ..
it barely works in a Google docs and such as.
For today websites, the ad blocker is absolutely useless.
Is anybody using this browser as a daily driver?
You can find the post here: https://gist.github.com/YasserKa/9a02bc50e75e7239f6f0c8f04fe4cfb1
I submitted this post a week ago [1], and the post is visible on my end, but for some reason other users can't view it, so I am re-posting it again using a gist.
Edit: It's the reddit post is visible thanks to the compiler
(Windows 10)
I'd like to be able to access my currently open tabs programmatically in order to sort them.
As I understand it, batch userscripts can't continuously interface with qutebrowser, they're just given variables, allowed one final command to pass onto qb, and this then ends the script.
As per ww7k3v, if you're willing to reload all the tabs after modifying the session file, there may be a hack. But I just wanna sort them as if I've used tab-move
multiple times.
Hello, i've been using qutebrowser the past few days and i love it, problem is, i've encountered a really frustrating problem with the search engine i use, kagi.
Kagi has a function that allows the user to scroll through the search results with the arrow (and j/k) keys but qutebrowser just won't let me do that.
When i try to use the arrow keys i just scroll through the page normally, and the kagi's search function doesn't work which is really frustrating.
It works fine on other browsers like firefox and looking online i can't find anyone facing the same problem.
For some reason, links of www.reddit.com started showing as yellow in the status bar, which looking at the documentation means there's a warning.
But how can i find out what the actual warning is? There's not anything on :messages
I am trying to use the userscript functions with IPC commands to achieve the following behavior.
In a page with a list of links---such as a search result---, I call hints and forward them to a userscript. The first time, the userscript creates a new window and opens the URL on it without giving focus to it. The second time and later, the userscript finds the previous window and opens the URL in a new tab.
I cannot use the "last-focused" window because it is the one I am using. I pretend to open the windows using the "ipc" module from qutebrowser, which I already use to open new windows. The problem is that I do not find how to get a list of windows and how to specify a particular window through IPC.
If anybody has a suggestion on how to proceed to achieve the behavior I mention, please let me know. Thank you very much.
I'm happy to announce that I just released qutebrowser v3.3.0, followed by v3.3.1 due to a few accidentally unpushed commits.
A short overview of future release plans:
Here is the combined changelog (.0 is missing the "Updated the workaround for Google sign-in issues." commit):
qt.workarounds.disable_hangouts_extension
setting,
for disabling the Google Hangouts extension built into Chromium/QtWebEngine.$TEMP/pytest-current/pytest-screenshots/
or attached to the GitHub actions
run as an artifact. (#7625)url.yank_ignored_parameters
) are now
respected when yanking any URL (for example, through hints with hint links
yank
). The {url:yank}
substitution has also been added as a version of
{url}
that respects ignored URL query parameters. (#7879)