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 $right l
|
||||||
set $term kitty
|
set $term kitty
|
||||||
set $files nautilus
|
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 $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'
|
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
|
# Browser
|
||||||
bindsym $mod+b exec $browser
|
bindsym $mod+b exec $browser
|
||||||
|
|
||||||
|
# Bitwarden
|
||||||
|
bindsym $mod+Shift+b exec $bitwarden
|
||||||
|
|
||||||
# Kill focused window
|
# Kill focused window
|
||||||
bindsym $mod+q kill
|
bindsym $mod+q kill
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -103,6 +103,7 @@ required_packages_pacman:
|
||||||
- less
|
- less
|
||||||
- blueman
|
- blueman
|
||||||
- qutebrowser
|
- qutebrowser
|
||||||
|
- python-tldextrct
|
||||||
|
|
||||||
flatpak_remote:
|
flatpak_remote:
|
||||||
- { name: "flathub", url: "https://dl.flathub.org/repo/flathub.flatpakrepo" }
|
- { name: "flathub", url: "https://dl.flathub.org/repo/flathub.flatpakrepo" }
|
||||||
|
|
@ -120,6 +121,7 @@ required_packages_flatpak:
|
||||||
- io.podman_desktop.PodmanDesktop
|
- io.podman_desktop.PodmanDesktop
|
||||||
- sh.loft.devpod
|
- sh.loft.devpod
|
||||||
- com.parsecgaming.parsec
|
- com.parsecgaming.parsec
|
||||||
|
- io.gitlab.librewolf-community
|
||||||
|
|
||||||
systemd_service:
|
systemd_service:
|
||||||
- cronie.service
|
- cronie.service
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue