update
This commit is contained in:
parent
87b1df2190
commit
8f6c20f8b2
15 changed files with 862 additions and 1 deletions
4
.config/qt5ct/colors/catpuccin.conf
Normal file
4
.config/qt5ct/colors/catpuccin.conf
Normal file
|
|
@ -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
|
||||
0
.config/qutebrowser/bookmarks/urls
Normal file
0
.config/qutebrowser/bookmarks/urls
Normal file
34
.config/qutebrowser/catppuccin/.editorconfig
Normal file
34
.config/qutebrowser/catppuccin/.editorconfig
Normal file
|
|
@ -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
|
||||
1
.config/qutebrowser/catppuccin/.gitignore
vendored
Normal file
1
.config/qutebrowser/catppuccin/.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
**/__pycache__/
|
||||
21
.config/qutebrowser/catppuccin/LICENSE
Normal file
21
.config/qutebrowser/catppuccin/LICENSE
Normal file
|
|
@ -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.
|
||||
94
.config/qutebrowser/catppuccin/README.md
Normal file
94
.config/qutebrowser/catppuccin/README.md
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
<h3 align="center">
|
||||
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/logos/exports/1544x1544_circle.png" width="100" alt="Logo"/><br/>
|
||||
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/misc/transparent.png" height="30" width="0px"/>
|
||||
Catppuccin for <a href="https://github.com/qutebrowser/qutebrowser">qutebrowser</a>
|
||||
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/misc/transparent.png" height="30" width="0px"/>
|
||||
</h3>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/catppuccin/qutebrowser/stargazers"><img src="https://img.shields.io/github/stars/catppuccin/qutebrowser?colorA=363a4f&colorB=b7bdf8&style=for-the-badge"></a>
|
||||
<a href="https://github.com/catppuccin/qutebrowser/issues"><img src="https://img.shields.io/github/issues/catppuccin/qutebrowser?colorA=363a4f&colorB=f5a97f&style=for-the-badge"></a>
|
||||
<a href="https://github.com/catppuccin/qutebrowser/contributors"><img src="https://img.shields.io/github/contributors/catppuccin/qutebrowser?colorA=363a4f&colorB=a6da95&style=for-the-badge"></a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<img src="https://raw.githubusercontent.com/catppuccin/qutebrowser/main/assets/screenshot.png"/>
|
||||
</p>
|
||||
|
||||
## Usage
|
||||
|
||||
There are two ways to install & manage this theme:
|
||||
|
||||
### Manual config:
|
||||
|
||||
1. Find out where the qutebrowser stores its `config` directory for your OS.<br/>
|
||||
Run `:version`, and take a look at `Paths: config` to find out.
|
||||
2. Clone this repo into that `config` directory:
|
||||
|
||||
```sh
|
||||
# Linux
|
||||
$ git clone https://github.com/catppuccin/qutebrowser.git ~/.config/qutebrowser/catppuccin
|
||||
# macOS
|
||||
$ git clone https://github.com/catppuccin/qutebrowser.git ~/.qutebrowser/catppuccin
|
||||
# windows
|
||||
$ git clone https://github.com/catppuccin/qutebrowser.git $LOCALAPPDATA/qutebrowser/config/catppuccin
|
||||
```
|
||||
|
||||
3. Make sure your `config.py` contains:
|
||||
|
||||
```python
|
||||
import catppuccin
|
||||
|
||||
# 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)
|
||||
```
|
||||
|
||||
4. Done!
|
||||
|
||||
### Let qutebrowser manage your themes:
|
||||
|
||||
1. Insert the following code into your `config.py`:
|
||||
|
||||
```python
|
||||
import os
|
||||
from urllib.request import urlopen
|
||||
|
||||
# load your autoconfig, use this, if the rest of your config is empty!
|
||||
config.load_autoconfig()
|
||||
|
||||
if not os.path.exists(config.configdir / "theme.py"):
|
||||
theme = "https://raw.githubusercontent.com/catppuccin/qutebrowser/main/setup.py"
|
||||
with urlopen(theme) as themehtml:
|
||||
with open(config.configdir / "theme.py", "a") as file:
|
||||
file.writelines(themehtml.read().decode("utf-8"))
|
||||
|
||||
if os.path.exists(config.configdir / "theme.py"):
|
||||
import theme
|
||||
theme.setup(c, 'mocha', True)
|
||||
```
|
||||
|
||||
2. Remove your current theme from your `.qutebrowser` directory & reload `config.py`.
|
||||
|
||||
## 💝 Thanks to
|
||||
|
||||
- [winston](https://github.com/nekowinston)
|
||||
- [iruzo](https://github.com/iruzo)
|
||||
|
||||
|
||||
|
||||
<p align="center">
|
||||
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/footers/gray0_ctp_on_line.svg?sanitize=true" />
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
Copyright © 2021-present <a href="https://github.com/catppuccin" target="_blank">Catppuccin Org</a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/catppuccin/catppuccin/blob/main/LICENSE"><img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=MIT&logoColor=d9e0ee&colorA=363a4f&colorB=b7bdf8"/></a>
|
||||
</p>
|
||||
1
.config/qutebrowser/catppuccin/__init__.py
Normal file
1
.config/qutebrowser/catppuccin/__init__.py
Normal file
|
|
@ -0,0 +1 @@
|
|||
from .setup import setup
|
||||
BIN
.config/qutebrowser/catppuccin/assets/screenshot.png
Normal file
BIN
.config/qutebrowser/catppuccin/assets/screenshot.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 864 KiB |
346
.config/qutebrowser/catppuccin/setup.py
Normal file
346
.config/qutebrowser/catppuccin/setup.py
Normal file
|
|
@ -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"]
|
||||
# }}}
|
||||
129
.config/qutebrowser/config.py
Normal file
129
.config/qutebrowser/config.py
Normal file
|
|
@ -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("<ctrl-y>", "spawn --userscript ytdl.sh")
|
||||
config.bind("tT", "config-cycle tabs.position top left")
|
||||
config.bind("gJ", "tab-move +")
|
||||
config.bind("gK", "tab-move -")
|
||||
config.bind("gm", "tab-move")
|
||||
config.bind("x", "tab-close")
|
||||
|
||||
# styles, cosmetics
|
||||
# c.content.user_stylesheets = ["~/.config/qutebrowser/styles/youtube-tweaks.css"]
|
||||
c.tabs.padding = {"top": 5, "bottom": 5, "left": 9, "right": 9}
|
||||
c.tabs.indicator.width = 0 # no tab indicators
|
||||
# c.window.transparent = True # apparently not needed
|
||||
c.tabs.width = "7%"
|
||||
|
||||
# fonts
|
||||
c.fonts.default_family = []
|
||||
c.fonts.default_size = "13pt"
|
||||
c.fonts.web.family.fixed = "monospace"
|
||||
c.fonts.web.family.sans_serif = "monospace"
|
||||
c.fonts.web.family.serif = "monospace"
|
||||
c.fonts.web.family.standard = "monospace"
|
||||
|
||||
# privacy - adjust these settings based on your preference
|
||||
# config.set("completion.cmd_history_max_items", 0)
|
||||
# config.set("content.private_browsing", True)
|
||||
config.set("content.webgl", False, "*")
|
||||
config.set("content.canvas_reading", False)
|
||||
config.set("content.geolocation", False)
|
||||
config.set("content.webrtc_ip_handling_policy", "default-public-interface-only")
|
||||
config.set("content.cookies.accept", "all")
|
||||
config.set("content.cookies.store", True)
|
||||
# config.set("content.javascript.enabled", False) # tsh keybind to toggle
|
||||
|
||||
# Adblocking info -->
|
||||
# For yt ads: place the greasemonkey script yt-ads.js in your greasemonkey folder (~/.config/qutebrowser/greasemonkey).
|
||||
# The script skips through the entire ad, so all you have to do is click the skip button.
|
||||
# Yeah it's not ublock origin, but if you want a minimal browser, this is a solution for the tradeoff.
|
||||
# You can also watch yt vids directly in mpv, see qutebrowser FAQ for how to do that.
|
||||
# If you want additional blocklists, you can get the python-adblock package, or you can uncomment the ublock lists here.
|
||||
c.content.blocking.enabled = True
|
||||
# c.content.blocking.method = 'adblock' # uncomment this if you install python-adblock
|
||||
# c.content.blocking.adblock.lists = [
|
||||
# "https://github.com/ewpratten/youtube_ad_blocklist/blob/master/blocklist.txt",
|
||||
# "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/filters-2022.txt",
|
||||
# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/filters-2023.txt",
|
||||
# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/filters-2024.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/annoyances-cookies.txt",
|
||||
# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/annoyances-others.txt",
|
||||
# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/badlists.txt",
|
||||
# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/quick-fixes.txt",
|
||||
# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/resource-abuse.txt",
|
||||
# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/unbreak.txt"]
|
||||
206
.config/qutebrowser/greasemonkey/redirect.js
Normal file
206
.config/qutebrowser/greasemonkey/redirect.js
Normal file
|
|
@ -0,0 +1,206 @@
|
|||
// ==UserScript==
|
||||
// @name Privacy Redirector
|
||||
// @description Redirect social media platforms to their privacy respecting frontends
|
||||
// @namespace https://github.com/dybdeskarphet/privacy-redirector
|
||||
// @author Ahmet Arda Kavakcı
|
||||
// @license GPLv3
|
||||
// @version 1.6.2
|
||||
// @run-at document-start
|
||||
// @match *://*.bandcamp.com/*
|
||||
// @match *://*.fandom.com/*
|
||||
// @match *://*.genius.com/*
|
||||
// @match *://*.google.com/*
|
||||
// @match *://*.imdb.com/*
|
||||
// @match *://*.imgur.com/*
|
||||
// @match *://*.imgur.io/*
|
||||
// @match *://*.instagram.com/*
|
||||
// @match *://*.medium.com/*
|
||||
// @match *://*.pinterest.com/*
|
||||
// @match *://*.quora.com/*
|
||||
// @match *://*.reddit.com/*
|
||||
// @match *://*.reuters.com/*
|
||||
// @match *://*.soundcloud.com/*
|
||||
// @match *://*.tiktok.com/*
|
||||
// @match *://*.twitch.tv/*
|
||||
// @match *://*.deepl.com/*
|
||||
// @match *://*.deviantart.com/*
|
||||
// @match *://twitch.tv/*
|
||||
// @match *://*.twitter.com/*
|
||||
// @match *://*.x.com/*
|
||||
// @match *://*.tumblr.com/*
|
||||
// @match *://x.com/*
|
||||
// @match *://*.wikipedia.org/*
|
||||
// @match *://*.youtube-nocookie.com/*
|
||||
// @match *://*.youtube.com/*
|
||||
// @match *://f4.bcbits.com/*
|
||||
// @match *://genius.com/*
|
||||
// @match *://i.pinimg.com/*
|
||||
// @match *://imgur.com/*
|
||||
// @match *://instagram.com/*
|
||||
// @match *://medium.com/*
|
||||
// @match *://news.ycombinator.com/*
|
||||
// @match *://reddit.com/*
|
||||
// @match *://stackoverflow.com/*
|
||||
// @match *://t4.bcbits.com/*
|
||||
// @match *://translate.google.com/*
|
||||
// @match *://twitter.com/*
|
||||
// @match *://www.goodreads.com/*
|
||||
// @match *://www.pixiv.net/*
|
||||
// @match *://youtube.com/*
|
||||
// @exclude *://*.youtube.com/redirect*
|
||||
// @exclude *://youtube.com/redirect*
|
||||
// @downloadURL https://update.greasyfork.org/scripts/436359/Privacy%20Redirector.user.js
|
||||
// @updateURL https://update.greasyfork.org/scripts/436359/Privacy%20Redirector.meta.js
|
||||
// ==/UserScript==
|
||||
|
||||
/*
|
||||
___ _ _ ___ _____ _____
|
||||
/ _ \| \ | | / _ \| ___| ___|
|
||||
| | | | \| |_____| | | | |_ | |_
|
||||
| |_| | |\ |_____| |_| | _| | _|
|
||||
\___/|_| \_| \___/|_| |_|
|
||||
|
||||
CHANGE THE RELEVANT VALUE TO "false" TO
|
||||
DISABLE THE REDIRECTION/FARSIDE FOR THAT
|
||||
PARTICULAR PLATFORM */
|
||||
|
||||
//original script https://greasyfork.org/scripts/436359-privacy-redirector/code/Privacy%20Redirector.user.js
|
||||
|
||||
// REDIRECTON / FARSIDE
|
||||
|
||||
let reddit = [true, false];
|
||||
let youtube = [false, false];
|
||||
|
||||
// PREFERRED FRONTEND
|
||||
let youtubeFrontend = "invidious"; // accepts "invidious", "piped", "tubo", "freetube"
|
||||
let redditFrontend = "libreddit"; // accepts "libreddit", "teddit"
|
||||
|
||||
/*
|
||||
___ _
|
||||
|_ _|_ __ ___| |_ __ _ _ __ ___ ___ ___
|
||||
| || '_ \/ __| __/ _` | '_ \ / __/ _ \/ __|
|
||||
| || | | \__ \ || (_| | | | | (_| __/\__ \
|
||||
|___|_| |_|___/\__\__,_|_| |_|\___\___||___/
|
||||
|
||||
LIST OF INSTANCES TO USE IF FARSIDE IS NOT ENABLED
|
||||
*/
|
||||
|
||||
const Instances = {
|
||||
invidious: [
|
||||
"invidious.durp.info"
|
||||
],
|
||||
libreddit: [
|
||||
"redlib.durp.info",
|
||||
],
|
||||
};
|
||||
|
||||
const hash = window.location.hash,
|
||||
scheme = `https://`;
|
||||
|
||||
let debug_mode = false;
|
||||
|
||||
if (debug_mode) {
|
||||
alert(
|
||||
"\n== DEBUG MODE IS ON ==" +
|
||||
"\nIf you're seeing this" +
|
||||
"\nset the debug_mode value to" +
|
||||
"\nfalse for Privacy Redirector." +
|
||||
"\n======================" +
|
||||
"\n\nHostname: " +
|
||||
window.location.hostname +
|
||||
"\nPath: " +
|
||||
window.location.pathname +
|
||||
"\nQuery: " +
|
||||
window.location.search +
|
||||
"\nHash: " +
|
||||
hash,
|
||||
);
|
||||
}
|
||||
|
||||
let selectedInstance = "",
|
||||
newURL = "";
|
||||
|
||||
const getrandom = async (instances) =>
|
||||
instances[Math.floor(Math.random() * instances.length)];
|
||||
|
||||
|
||||
async function redirectReddit() {
|
||||
if (reddit[0] && !window.location.pathname.startsWith("/domain")) {
|
||||
window.stop();
|
||||
let pathname = window.location.pathname;
|
||||
let search = window.location.search;
|
||||
|
||||
selectedInstance = reddit[1]
|
||||
? `${farsideInstance}/${redditFrontend}`
|
||||
: await getrandom(Instances[redditFrontend]);
|
||||
|
||||
if (pathname === "/media" && search) {
|
||||
const params = new URLSearchParams(search);
|
||||
const mediaURL = new URL(params.get("url"));
|
||||
if (["i.redd.it", "preview.redd.it"].includes(mediaURL.hostname)) {
|
||||
pathname = `/img${mediaURL.pathname}`;
|
||||
search = mediaURL.search;
|
||||
}
|
||||
}
|
||||
newURL = `${scheme}${selectedInstance}${pathname}${search}${hash}`;
|
||||
|
||||
window.location.replace(newURL);
|
||||
}
|
||||
}
|
||||
|
||||
async function redirectYoutube(frontend) {
|
||||
if (youtube[0]) {
|
||||
window.stop();
|
||||
let searchpath = `${window.location.pathname}${window.location.search}`;
|
||||
if (window.location.pathname.startsWith("/embed")) {
|
||||
selectedInstance = youtube[1]
|
||||
? `${farsideInstance}/invidious`
|
||||
: await getrandom(Instances["invidious"]);
|
||||
newURL = `${scheme}${selectedInstance}${window.location.pathname}${window.location.search
|
||||
}${hash}`;
|
||||
window.location.replace(newURL);
|
||||
} else {
|
||||
if (frontend === "tubo") {
|
||||
selectedInstance = await getrandom(Instances.tubo);
|
||||
|
||||
searchpath = `/stream?url=${window.location.href}`;
|
||||
if (
|
||||
window.location.pathname.startsWith("/@") ||
|
||||
window.location.pathname.startsWith("/channel")
|
||||
)
|
||||
searchpath = `/channel?url=${window.location.href}`;
|
||||
} else if (frontend === "freetube") {
|
||||
let youtube_link = window.location.href;
|
||||
window.location.replace(`freetube://${youtube_link}`);
|
||||
return;
|
||||
} else {
|
||||
selectedInstance =
|
||||
youtube[1] && frontend !== "hyperpipe"
|
||||
? `${farsideInstance}/${frontend}`
|
||||
: await getrandom(Instances[frontend]);
|
||||
}
|
||||
|
||||
newURL = `${scheme}${selectedInstance}${searchpath}${hash}`;
|
||||
window.location.replace(newURL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const urlHostname = window.location.hostname;
|
||||
|
||||
switch (urlHostname) {
|
||||
case "www.youtube.com":
|
||||
case "m.youtube.com":
|
||||
case "www.youtube-nocookie.com":
|
||||
redirectYoutube(youtubeFrontend);
|
||||
break;
|
||||
|
||||
case urlHostname.includes("reddit.com") ? urlHostname : 0:
|
||||
redirectReddit();
|
||||
break;
|
||||
}
|
||||
|
||||
// export module for the test in github action
|
||||
typeof module !== "undefined"
|
||||
? (module.exports = { Instances: Instances })
|
||||
: true;
|
||||
19
.config/qutebrowser/greasemonkey/yt-ads.js
Normal file
19
.config/qutebrowser/greasemonkey/yt-ads.js
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
// ==UserScript==
|
||||
// @name Auto Skip YouTube Ads
|
||||
// @version 1.1.0
|
||||
// @description Speed up and skip YouTube ads automatically
|
||||
// @author jso8910 and others
|
||||
// @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);
|
||||
0
.config/qutebrowser/quickmarks
Normal file
0
.config/qutebrowser/quickmarks
Normal file
|
|
@ -16,7 +16,8 @@ set $up k
|
|||
set $right l
|
||||
set $term kitty
|
||||
set $files nautilus
|
||||
set $browser flatpak run app.zen_browser.zen
|
||||
set $browser flatpak run io.gitlab.librewolf-community
|
||||
set $bitwarden flatpak run com.bitwarden.desktop
|
||||
set $menu wofi
|
||||
|
||||
set $next_or_new swaymsg -r -t get_workspaces | jq -r --arg OUTPUT $(swaymsg -t get_outputs -r | jq -r '.[] | select(.focused == true) | .name') '(. | (max_by(.num) | .num)) as $max | [.[] | select(.output == $OUTPUT)] | (max_by(.num) | .num) as $maxOutput | (.[] | select(.focused == true) | .num) as $current | if $maxOutput > $current then "next_on_output" else $max + 1 end'
|
||||
|
|
@ -82,6 +83,9 @@ bindsym $mod+Shift+i exec /opt/goland/bin/goland.sh
|
|||
# Browser
|
||||
bindsym $mod+b exec $browser
|
||||
|
||||
# Bitwarden
|
||||
bindsym $mod+Shift+b exec $bitwarden
|
||||
|
||||
# Kill focused window
|
||||
bindsym $mod+q kill
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue