diff --git a/.config/qt5ct/colors/catpuccin.conf b/.config/qt5ct/colors/catpuccin.conf new file mode 100644 index 0000000..24eb507 --- /dev/null +++ b/.config/qt5ct/colors/catpuccin.conf @@ -0,0 +1,4 @@ +[ColorScheme] +active_colors= #ffcdd6f4, #ff45475a, #ff585b70, #ff313244, #ff11111b, #ff181825, #ffcdd6f4, #ffcdd6f4, #ffcdd6f4, #ff1e1e2e, #ff181825, #ff11111b, #ffeba0ac, #ff11111b, #ff89b4fa, #ffb4befe, #ff181825, #ffffffff, #ff1e1e2e, #ffcdd6f4, #806c7086, #ffeba0ac +inactive_colors=#ff7f849c, #ff1e1e2e, #ff45475a, #ff313244, #ff11111b, #ff181825, #ff7f849c, #ffcdd6f4, #ff7f849c, #ff1e1e2e, #ff181825, #ff11111b, #ff313244, #ff7f849c, #ff7f849c, #ff7f849c, #ff181825, #ffffffff, #ff1e1e2e, #ffcdd6f4, #806c7086, #ff313244 +disabled_colors=#ff6c7086, #ff313244, #ff45475a, #ff313244, #ff11111b, #ff181825, #ff6c7086, #ffcdd6f4, #ff6c7086, #ff1e1e2e, #ff181825, #ff11111b, #ff181825, #ff6c7086, #ffa9bcdb, #ffc7cceb, #ff181825, #ffffffff, #ff1e1e2e, #ffcdd6f4, #806c7086, #ff181825 diff --git a/.config/qutebrowser/bookmarks/urls b/.config/qutebrowser/bookmarks/urls new file mode 100644 index 0000000..e69de29 diff --git a/.config/qutebrowser/catppuccin/.editorconfig b/.config/qutebrowser/catppuccin/.editorconfig new file mode 100644 index 0000000..d86ac02 --- /dev/null +++ b/.config/qutebrowser/catppuccin/.editorconfig @@ -0,0 +1,34 @@ +# EditorConfig helps developers define and maintain consistent +# coding styles between different editors and IDEs +# EditorConfig is awesome: https://EditorConfig.org + +root = true + +[*] +charset = utf-8 +indent_size = 2 +indent_style = space +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +# go +[*.go] +indent_style = tab +indent_size = 4 + +# python +[*.{ini,py,py.tpl,rst}] +indent_size = 4 + +# rust +[*.rs] +indent_size = 4 + +# documentation, utils +[*.{md,mdx,diff}] +trim_trailing_whitespace = false + +# windows shell scripts +[*.{cmd,bat,ps1}] +end_of_line = crlf diff --git a/.config/qutebrowser/catppuccin/.gitignore b/.config/qutebrowser/catppuccin/.gitignore new file mode 100644 index 0000000..61f2dc9 --- /dev/null +++ b/.config/qutebrowser/catppuccin/.gitignore @@ -0,0 +1 @@ +**/__pycache__/ diff --git a/.config/qutebrowser/catppuccin/LICENSE b/.config/qutebrowser/catppuccin/LICENSE new file mode 100644 index 0000000..006383b --- /dev/null +++ b/.config/qutebrowser/catppuccin/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Catppuccin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/.config/qutebrowser/catppuccin/README.md b/.config/qutebrowser/catppuccin/README.md new file mode 100644 index 0000000..3e313ab --- /dev/null +++ b/.config/qutebrowser/catppuccin/README.md @@ -0,0 +1,94 @@ +

+
+
+
+
+ Copyright © 2021-present Catppuccin Org +
+ + diff --git a/.config/qutebrowser/catppuccin/__init__.py b/.config/qutebrowser/catppuccin/__init__.py new file mode 100644 index 0000000..64655ad --- /dev/null +++ b/.config/qutebrowser/catppuccin/__init__.py @@ -0,0 +1 @@ +from .setup import setup diff --git a/.config/qutebrowser/catppuccin/assets/screenshot.png b/.config/qutebrowser/catppuccin/assets/screenshot.png new file mode 100644 index 0000000..c77fc13 Binary files /dev/null and b/.config/qutebrowser/catppuccin/assets/screenshot.png differ diff --git a/.config/qutebrowser/catppuccin/setup.py b/.config/qutebrowser/catppuccin/setup.py new file mode 100644 index 0000000..fb37450 --- /dev/null +++ b/.config/qutebrowser/catppuccin/setup.py @@ -0,0 +1,346 @@ +# vim:fileencoding=utf-8:foldmethod=marker + + +def setup(c, flavour, samecolorrows = False): + palette = {} + + # flavours {{{ + if flavour == "latte": + palette = { + "rosewater": "#dc8a78", + "flamingo": "#dd7878", + "pink": "#ea76cb", + "mauve": "#8839ef", + "red": "#d20f39", + "maroon": "#e64553", + "peach": "#fe640b", + "yellow": "#df8e1d", + "green": "#40a02b", + "teal": "#179299", + "sky": "#04a5e5", + "sapphire": "#209fb5", + "blue": "#1e66f5", + "lavender": "#7287fd", + "text": "#4c4f69", + "subtext1": "#5c5f77", + "subtext0": "#6c6f85", + "overlay2": "#7c7f93", + "overlay1": "#8c8fa1", + "overlay0": "#9ca0b0", + "surface2": "#acb0be", + "surface1": "#bcc0cc", + "surface0": "#ccd0da", + "base": "#eff1f5", + "mantle": "#e6e9ef", + "crust": "#dce0e8", + } + elif flavour == "frappe": + palette = { + "rosewater": "#f2d5cf", + "flamingo": "#eebebe", + "pink": "#f4b8e4", + "mauve": "#ca9ee6", + "red": "#e78284", + "maroon": "#ea999c", + "peach": "#ef9f76", + "yellow": "#e5c890", + "green": "#a6d189", + "teal": "#81c8be", + "sky": "#99d1db", + "sapphire": "#85c1dc", + "blue": "#8caaee", + "lavender": "#babbf1", + "text": "#c6d0f5", + "subtext1": "#b5bfe2", + "subtext0": "#a5adce", + "overlay2": "#949cbb", + "overlay1": "#838ba7", + "overlay0": "#737994", + "surface2": "#626880", + "surface1": "#51576d", + "surface0": "#414559", + "base": "#303446", + "mantle": "#292c3c", + "crust": "#232634", + } + elif flavour == "macchiato": + palette = { + "rosewater": "#f4dbd6", + "flamingo": "#f0c6c6", + "pink": "#f5bde6", + "mauve": "#c6a0f6", + "red": "#ed8796", + "maroon": "#ee99a0", + "peach": "#f5a97f", + "yellow": "#eed49f", + "green": "#a6da95", + "teal": "#8bd5ca", + "sky": "#91d7e3", + "sapphire": "#7dc4e4", + "blue": "#8aadf4", + "lavender": "#b7bdf8", + "text": "#cad3f5", + "subtext1": "#b8c0e0", + "subtext0": "#a5adcb", + "overlay2": "#939ab7", + "overlay1": "#8087a2", + "overlay0": "#6e738d", + "surface2": "#5b6078", + "surface1": "#494d64", + "surface0": "#363a4f", + "base": "#24273a", + "mantle": "#1e2030", + "crust": "#181926", + } + else: + palette = { + "rosewater": "#f5e0dc", + "flamingo": "#f2cdcd", + "pink": "#f5c2e7", + "mauve": "#cba6f7", + "red": "#f38ba8", + "maroon": "#eba0ac", + "peach": "#fab387", + "yellow": "#f9e2af", + "green": "#a6e3a1", + "teal": "#94e2d5", + "sky": "#89dceb", + "sapphire": "#74c7ec", + "blue": "#89b4fa", + "lavender": "#b4befe", + "text": "#cdd6f4", + "subtext1": "#bac2de", + "subtext0": "#a6adc8", + "overlay2": "#9399b2", + "overlay1": "#7f849c", + "overlay0": "#6c7086", + "surface2": "#585b70", + "surface1": "#45475a", + "surface0": "#313244", + "base": "#1e1e2e", + "mantle": "#181825", + "crust": "#11111b", + } + # }}} + + # completion {{{ + ## Background color of the completion widget category headers. + c.colors.completion.category.bg = palette["base"] + ## Bottom border color of the completion widget category headers. + c.colors.completion.category.border.bottom = palette["mantle"] + ## Top border color of the completion widget category headers. + c.colors.completion.category.border.top = palette["overlay2"] + ## Foreground color of completion widget category headers. + c.colors.completion.category.fg = palette["green"] + ## Background color of the completion widget for even and odd rows. + if samecolorrows: + c.colors.completion.even.bg = palette["mantle"] + c.colors.completion.odd.bg = c.colors.completion.even.bg + else: + c.colors.completion.even.bg = palette["mantle"] + c.colors.completion.odd.bg = palette["crust"] + ## Text color of the completion widget. + c.colors.completion.fg = palette["subtext0"] + + ## Background color of the selected completion item. + c.colors.completion.item.selected.bg = palette["surface2"] + ## Bottom border color of the selected completion item. + c.colors.completion.item.selected.border.bottom = palette["surface2"] + ## Top border color of the completion widget category headers. + c.colors.completion.item.selected.border.top = palette["surface2"] + ## Foreground color of the selected completion item. + c.colors.completion.item.selected.fg = palette["text"] + ## Foreground color of the selected completion item. + c.colors.completion.item.selected.match.fg = palette["rosewater"] + ## Foreground color of the matched text in the completion. + c.colors.completion.match.fg = palette["text"] + + ## Color of the scrollbar in completion view + c.colors.completion.scrollbar.bg = palette["crust"] + ## Color of the scrollbar handle in completion view. + c.colors.completion.scrollbar.fg = palette["surface2"] + # }}} + + # downloads {{{ + c.colors.downloads.bar.bg = palette["base"] + c.colors.downloads.error.bg = palette["base"] + c.colors.downloads.start.bg = palette["base"] + c.colors.downloads.stop.bg = palette["base"] + + c.colors.downloads.error.fg = palette["red"] + c.colors.downloads.start.fg = palette["blue"] + c.colors.downloads.stop.fg = palette["green"] + c.colors.downloads.system.fg = "none" + c.colors.downloads.system.bg = "none" + # }}} + + # hints {{{ + ## Background color for hints. Note that you can use a `rgba(...)` value + ## for transparency. + c.colors.hints.bg = palette["peach"] + + ## Font color for hints. + c.colors.hints.fg = palette["mantle"] + + ## Hints + c.hints.border = "1px solid " + palette["mantle"] + + ## Font color for the matched part of hints. + c.colors.hints.match.fg = palette["subtext1"] + # }}} + + # keyhints {{{ + ## Background color of the keyhint widget. + c.colors.keyhint.bg = palette["mantle"] + + ## Text color for the keyhint widget. + c.colors.keyhint.fg = palette["text"] + + ## Highlight color for keys to complete the current keychain. + c.colors.keyhint.suffix.fg = palette["subtext1"] + # }}} + + # messages {{{ + ## Background color of an error message. + c.colors.messages.error.bg = palette["overlay0"] + ## Background color of an info message. + c.colors.messages.info.bg = palette["overlay0"] + ## Background color of a warning message. + c.colors.messages.warning.bg = palette["overlay0"] + + ## Border color of an error message. + c.colors.messages.error.border = palette["mantle"] + ## Border color of an info message. + c.colors.messages.info.border = palette["mantle"] + ## Border color of a warning message. + c.colors.messages.warning.border = palette["mantle"] + + ## Foreground color of an error message. + c.colors.messages.error.fg = palette["red"] + ## Foreground color an info message. + c.colors.messages.info.fg = palette["text"] + ## Foreground color a warning message. + c.colors.messages.warning.fg = palette["peach"] + # }}} + + # prompts {{{ + ## Background color for prompts. + c.colors.prompts.bg = palette["mantle"] + + # ## Border used around UI elements in prompts. + c.colors.prompts.border = "1px solid " + palette["overlay0"] + + ## Foreground color for prompts. + c.colors.prompts.fg = palette["text"] + + ## Background color for the selected item in filename prompts. + c.colors.prompts.selected.bg = palette["surface2"] + + ## Background color for the selected item in filename prompts. + c.colors.prompts.selected.fg = palette["rosewater"] + # }}} + + # statusbar {{{ + ## Background color of the statusbar. + c.colors.statusbar.normal.bg = palette["base"] + ## Background color of the statusbar in insert mode. + c.colors.statusbar.insert.bg = palette["crust"] + ## Background color of the statusbar in command mode. + c.colors.statusbar.command.bg = palette["base"] + ## Background color of the statusbar in caret mode. + c.colors.statusbar.caret.bg = palette["base"] + ## Background color of the statusbar in caret mode with a selection. + c.colors.statusbar.caret.selection.bg = palette["base"] + + ## Background color of the progress bar. + c.colors.statusbar.progress.bg = palette["base"] + ## Background color of the statusbar in passthrough mode. + c.colors.statusbar.passthrough.bg = palette["base"] + + ## Foreground color of the statusbar. + c.colors.statusbar.normal.fg = palette["text"] + ## Foreground color of the statusbar in insert mode. + c.colors.statusbar.insert.fg = palette["rosewater"] + ## Foreground color of the statusbar in command mode. + c.colors.statusbar.command.fg = palette["text"] + ## Foreground color of the statusbar in passthrough mode. + c.colors.statusbar.passthrough.fg = palette["peach"] + ## Foreground color of the statusbar in caret mode. + c.colors.statusbar.caret.fg = palette["peach"] + ## Foreground color of the statusbar in caret mode with a selection. + c.colors.statusbar.caret.selection.fg = palette["peach"] + + ## Foreground color of the URL in the statusbar on error. + c.colors.statusbar.url.error.fg = palette["red"] + + ## Default foreground color of the URL in the statusbar. + c.colors.statusbar.url.fg = palette["text"] + + ## Foreground color of the URL in the statusbar for hovered links. + c.colors.statusbar.url.hover.fg = palette["sky"] + + ## Foreground color of the URL in the statusbar on successful load + c.colors.statusbar.url.success.http.fg = palette["teal"] + + ## Foreground color of the URL in the statusbar on successful load + c.colors.statusbar.url.success.https.fg = palette["green"] + + ## Foreground color of the URL in the statusbar when there's a warning. + c.colors.statusbar.url.warn.fg = palette["yellow"] + + ## PRIVATE MODE COLORS + ## Background color of the statusbar in private browsing mode. + c.colors.statusbar.private.bg = palette["mantle"] + ## Foreground color of the statusbar in private browsing mode. + c.colors.statusbar.private.fg = palette["subtext1"] + ## Background color of the statusbar in private browsing + command mode. + c.colors.statusbar.command.private.bg = palette["base"] + ## Foreground color of the statusbar in private browsing + command mode. + c.colors.statusbar.command.private.fg = palette["subtext1"] + + # }}} + + # tabs {{{ + ## Background color of the tab bar. + c.colors.tabs.bar.bg = palette["crust"] + ## Background color of unselected even tabs. + c.colors.tabs.even.bg = palette["surface2"] + ## Background color of unselected odd tabs. + c.colors.tabs.odd.bg = palette["surface1"] + + ## Foreground color of unselected even tabs. + c.colors.tabs.even.fg = palette["overlay2"] + ## Foreground color of unselected odd tabs. + c.colors.tabs.odd.fg = palette["overlay2"] + + ## Color for the tab indicator on errors. + c.colors.tabs.indicator.error = palette["red"] + ## Color gradient interpolation system for the tab indicator. + ## Valid values: + ## - rgb: Interpolate in the RGB color system. + ## - hsv: Interpolate in the HSV color system. + ## - hsl: Interpolate in the HSL color system. + ## - none: Don't show a gradient. + c.colors.tabs.indicator.system = "none" + + # ## Background color of selected even tabs. + c.colors.tabs.selected.even.bg = palette["base"] + # ## Background color of selected odd tabs. + c.colors.tabs.selected.odd.bg = palette["base"] + + # ## Foreground color of selected even tabs. + c.colors.tabs.selected.even.fg = palette["text"] + # ## Foreground color of selected odd tabs. + c.colors.tabs.selected.odd.fg = palette["text"] + # }}} + + # context menus {{{ + c.colors.contextmenu.menu.bg = palette["base"] + c.colors.contextmenu.menu.fg = palette["text"] + + c.colors.contextmenu.disabled.bg = palette["mantle"] + c.colors.contextmenu.disabled.fg = palette["overlay0"] + + c.colors.contextmenu.selected.bg = palette["overlay0"] + c.colors.contextmenu.selected.fg = palette["rosewater"] + # }}} diff --git a/.config/qutebrowser/config.py b/.config/qutebrowser/config.py new file mode 100644 index 0000000..9c735e6 --- /dev/null +++ b/.config/qutebrowser/config.py @@ -0,0 +1,129 @@ +import catppuccin +import subprocess + +c = c # noqa: F821 pylint: disable=E0602,C0103 +config = config # noqa: F821 pylint: disable=E0602,C0103 + +import subprocess + + +def read_xresources(prefix): + props = {} + x = subprocess.run(["xrdb", "-query"], capture_output=True, check=True, text=True) + lines = x.stdout.split("\n") + for line in filter(lambda l: l.startswith(prefix), lines): + prop, _, value = line.partition(":\t") + props[prop] = value + return props + + +c.window.hide_decoration = True + +# load your autoconfig, use this, if the rest of your config is empty! +config.load_autoconfig() + +# set the flavor you'd like to use +# valid options are 'mocha', 'macchiato', 'frappe', and 'latte' +# last argument (optional, default is False): enable the plain look for the menu rows +catppuccin.setup(c, "mocha", True) + +# Dark Mode +c.colors.webpage.darkmode.enabled = True +c.colors.webpage.darkmode.algorithm = "lightness-cielab" +c.colors.webpage.darkmode.policy.images = "never" +config.set("colors.webpage.darkmode.enabled", False, "file://*") + +# +c.tabs.title.format = "{audio}{current_title}" +c.fonts.web.size.default = 20 + +c.url.searchengines = { + # note - if you use duckduckgo, you can make use of its built in bangs, of which there are many! https://duckduckgo.com/bangs + "DEFAULT": "https://duckduckgo.com/?q={}", + "!aw": "https://wiki.archlinux.org/?search={}", + "!apkg": "https://archlinux.org/packages/?sort=&q={}&maintainer=&flagged=", + "!gh": "https://github.com/search?o=desc&q={}&s=stars", + "!yt": "https://invidious.durp.info/results?search_query={}", +} + +c.completion.open_categories = [ + "searchengines", + "quickmarks", + "bookmarks", + "history", + "filesystem", +] + +c.auto_save.session = False # save tabs on quit/restart + +# keybinding changes +config.bind("=", "cmd-set-text -s :open") +config.bind("h", "history") +config.bind("cs", "cmd-set-text -s :config-source") +config.bind("tH", "config-cycle tabs.show multiple never") +config.bind("sH", "config-cycle statusbar.show always never") +config.bind("T", "hint links tab") +config.bind("pP", "open -- {primary}") +config.bind("pp", "open -- {clipboard}") +config.bind("pt", "open -t -- {clipboard}") +config.bind("qm", "macro-record") +config.bind("