diff options
Diffstat (limited to '.config/qutebrowser/config.py')
-rwxr-xr-x | .config/qutebrowser/config.py | 105 |
1 files changed, 81 insertions, 24 deletions
diff --git a/.config/qutebrowser/config.py b/.config/qutebrowser/config.py index c86a473..e24591b 100755 --- a/.config/qutebrowser/config.py +++ b/.config/qutebrowser/config.py @@ -2,38 +2,78 @@ # ~/.config/qutebrowser/config.py # rgoncalves.se +import html import logging import os import re -import subprocess -import platform +import socket + +from PyQt5.QtCore import QUrl + +from qutebrowser.api import cmdutils +from qutebrowser.browser.urlmarks import ( + AlreadyExistsError as UrlAlreadyExistsError +) +from qutebrowser.browser.urlmarks import UrlMarkManager +from qutebrowser.config.config import ConfigContainer +from qutebrowser.config.configfiles import ConfigAPI +from qutebrowser.utils import message, objreg +from qutebrowser.utils.usertypes import PromptMode +from userscripts.urlmarks import urlmarkmanager_save + +config: ConfigAPI = config # noqa: F821 pylint: disable=E0602,C0103 +c: ConfigContainer = c # noqa: F821 pylint: disable=E0602,C0103 logging.basicConfig(level=logging.DEBUG) -""" -Bypass flake8 warnings. -""" -try: - config -except NameError: - config = None + +UrlMarkManager.save = ( + lambda manager: urlmarkmanager_save(manager, config.configdir) +) -def is_musl_system(): - return bool(re.search('musl', os.popen("ldd /bin/ls").read())) +def is_musl_system() -> bool: + return bool(re.search('musl', os.popen('ldd /bin/ls').read())) -def select_qt_arguments(): +def get_qt_arguments() -> list: """ Select best arguments for launching qutebrowser. Empty by default, it picks lag free options for musl systems. """ - args = [] + filters = { + 'disable-seccomp-filter-sandbox': is_musl_system() + } - if is_musl_system(): - args.append('disable-seccomp-filter-sandbox') + return list( + filter(lambda x: x, map(lambda x: x[1], list(filters.items()))) + ) - return args + +try: + @cmdutils.register() + def bookmark_save(url: QUrl): + """Save the current page as a bookmark.""" + manager = objreg.get('bookmark-manager') + tags = message.ask( + title="Add bookmark:", + mode=PromptMode.text, + url=url.toString(QUrl.RemovePassword | QUrl.FullyEncoded), + text=( + "Please enter bookmark tags for<br/><b>" + f"{html.escape(url.toDisplayString())}</b>" + ), + ) + + if not tags: + return + + try: + manager.add(url, tags) + except UrlAlreadyExistsError: + message.warning("Bookmark already exists.") +except ValueError: + pass config.load_autoconfig(False) @@ -41,9 +81,8 @@ config.set('auto_save.session', True) config.set('scrolling.smooth', False) config.set('qt.highdpi', False) config.set('qt.force_software_rendering', 'none') -config.set('qt.args', select_qt_arguments()) - -config.bind(',m', 'spawn mpv {url}') +config.set('qt.args', get_qt_arguments()) +config.set('messages.timeout', 2500) config.set('content.images', True, 'chrome-devtools://*') config.set('content.images', True, 'devtools://*') @@ -56,12 +95,17 @@ config.set('content.notifications.enabled', False) config.set('content.notifications.enabled', True, '*://*.zoho.eu/*') config.set('content.notifications.enabled', True, '*://*.viperdev.io/*') config.set('content.notifications.enabled', True, '*://*.rgoncalves.se/*') +config.set('content.notifications.enabled', True, '*://app.slack.com/*') +config.set('content.notifications.enabled', True, '*://mail.google.com/*') config.set('content.register_protocol_handler', False) config.set('content.geolocation', False) -config.set('content.media.audio_video_capture', True, '*://*.zoho.eu/*') -config.set('content.media.audio_capture', True, '*://*.zoho.eu/*') -config.set('content.media.video_capture', True, '*://*.zoho.eu/*') +# config.set('content.media.audio_video_capture', True, '*://*.zoho.eu/*') +# config.set('content.media.audio_capture', True, '*://*.zoho.eu/*') +# config.set('content.media.video_capture', True, '*://*.zoho.eu/*') +config.set('content.media.audio_video_capture', True, 'https://meet.google.com/*') +config.set('content.media.audio_capture', True, 'https://meet.google.com/*') +config.set('content.media.video_capture', True, 'https://meet.google.com/*') config.set('completion.web_history.max_items', 0) config.set('tabs.background', True) @@ -92,13 +136,26 @@ config.set('content.prefers_reduced_motion', True) config.set('content.headers.referer', 'same-domain') config.set('url.default_page', 'https://lite.duckduckgo.com/lite/') config.set('url.start_pages', 'https://lite.duckduckgo.com/lite/') -config.set('url.searchengines', - {'DEFAULT': 'https://lite.duckduckgo.com/lite/?q={}'}) +config.set( + 'url.searchengines', {'DEFAULT': 'https://lite.duckduckgo.com/lite/?q={}'} +) config.set('downloads.location.directory', f'{os.environ["HOME"]}/downloads') +config.set('downloads.prevent_mixed_content', False) config.set('content.autoplay', False) config.set('content.cookies.accept', 'no-3rdparty') +config.set('content.javascript.alert', False) config.set('content.headers.do_not_track', False, '*://*.thetrainline.com/*') config.set('content.blocking.enabled', False, '*://*.thetrainline.com/*') config.set('content.cookies.accept', 'all', '*://*.thetrainline.com/*') + +config.set( + 'editor.command', ["st", "nvim", "+normal {line}G{column0}l", "{file}"] +) + +config.bind(',m', 'spawn mpv --force-window=immediate {url}') +config.bind('M', 'bookmark-save {url}') + +if socket.gethostname() == 'ws-work01': + config.set('fonts.default_size', '14pt') |