qutebrowser: Add function to remove floating elements

Primarily used to get rid of cookie banners or
'subscribe-to-my-newsletter' annoyances.
This commit is contained in:
Marty Oehme 2025-12-01 10:22:52 +01:00
parent 9159ea177d
commit 7003fe992f
Signed by: Marty
GPG key ID: 4E535BC19C61886E
3 changed files with 8 additions and 2 deletions

View file

@ -43,3 +43,6 @@ c.aliases["recent-downloads"] = "spawn --userscript recently-downloaded"
# annotate with hypothesis
c.aliases["hypothesis"] = "jseval (function(){window.hypothesisConfig=function(){return{showHighlights:true,appType:'bookmarklet'};};var d=document,s=d.createElement('script');s.setAttribute('src','https://hypothes.is/embed.js');d.body.appendChild(s)})();'hypothesis enabled'"
# remove any sticky banners (e.g. cookie banners)
c.aliases["remove-floating"] = 'jseval (function(){var i,elements=document.querySelectorAll("body *");for(i=0;i<elements.length;i++){var pos=getComputedStyle(elements[i]).position;if(pos==="fixed"||pos==="sticky"){elements[i].parentNode.removeChild(elements[i]);}}})();'

View file

@ -98,4 +98,4 @@ colorscheme = f"{state_dir}/qutebrowser/colorscheme.py"
if os.path.isfile(colorscheme):
config.source(colorscheme)
c.url.start_pages = "https://start.duckduckgo.com/html"
c.url.start_pages = "https://html.duckduckgo.com/lite"

View file

@ -50,7 +50,9 @@ config.bind(leader + "tV", "set tabs.position left")
# bind mpv to play the current page/links, using a single instance which queues the next link passed
config.bind(lleader + "m", "hint links spawn umpv {hint-url}")
config.bind(lleader + "i", "hint links spawn uoeia -v imv {hint-url}")
config.bind(lleader + "I", "hint images spawn uoeia -v imv {hint-url}") # for images directly
config.bind(
lleader + "I", "hint images spawn uoeia -v imv {hint-url}"
) # for images directly
# [G]emini shortcuts
# the full power of qutebrowser at your fingertips for any gemini page!
@ -98,6 +100,7 @@ config.bind(leader + "a", "cmd-set-text -s :taskadd")
# Enable and disable javascript
config.bind(leader + "js", "config-cycle content.javascript.enabled true false")
config.bind(leader + "jf", "remove-floating", mode="normal")
# Reload configuration
config.bind(leader + "VV", "config-source")