aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.bash_profile25
-rw-r--r--.bashrc11
-rw-r--r--.config/alacritty/alacritty.toml4
-rw-r--r--.config/alacritty/env.toml1
-rw-r--r--.config/alacritty/themes/catppuccin-frappe.toml65
-rw-r--r--.config/alacritty/themes/catppuccin-macchiato.toml66
-rw-r--r--.config/alacritty/themes/catppuccin-mocha.toml66
-rw-r--r--.config/alacritty/themes/embark.toml27
-rw-r--r--.config/alacritty/themes/fairyflossdark.yml32
-rw-r--r--.config/alacritty/themes/molokai.yml34
-rw-r--r--.config/alacritty/themes/rose-pine-dawn.toml75
-rw-r--r--.config/alacritty/themes/rose-pine-moon.toml75
-rw-r--r--.config/alacritty/themes/rose-pine.toml75
-rw-r--r--.config/alacritty/window.toml2
-rw-r--r--.config/base-packages.txt910
-rw-r--r--.config/bat/config1
-rw-r--r--.config/bat/themes/Catppuccin Mocha.tmTheme2081
-rw-r--r--.config/betterlockscreen/betterlockscreenrc50
-rw-r--r--.config/doom/config.el7
-rw-r--r--.config/doom/packages.el2
-rw-r--r--.config/fish/config.fish6
-rw-r--r--.config/lemon.go212
-rw-r--r--.config/lemonblocks/config.txt5
-rwxr-xr-x.config/lemonblocks/modules/cpu_load.sh10
-rwxr-xr-x.config/lemonblocks/modules/cpu_temp.sh5
-rwxr-xr-x.config/lemonblocks/modules/date.sh3
-rwxr-xr-x.config/lemonblocks/modules/mem_usage.sh4
-rwxr-xr-x.config/lemonblocks/modules/volume.sh9
-rwxr-xr-x.config/lemonblocks/start.sh41
-rw-r--r--.config/luastatus-scripts-dwm/alsa-gauge.lua18
-rw-r--r--.config/luastatus-scripts-dwm/alsa.lua11
-rw-r--r--.config/luastatus-scripts-dwm/backlight.lua18
-rw-r--r--.config/luastatus-scripts-dwm/battery.lua53
-rw-r--r--.config/luastatus-scripts-dwm/bluetooth.lua178
-rw-r--r--.config/luastatus-scripts-dwm/cpu-temperature.lua45
-rw-r--r--.config/luastatus-scripts-dwm/cpu-usage.lua7
-rw-r--r--.config/luastatus-scripts-dwm/file-contents.lua7
-rw-r--r--.config/luastatus-scripts-dwm/fs.lua14
-rw-r--r--.config/luastatus-scripts-dwm/ip.lua20
-rw-r--r--.config/luastatus-scripts-dwm/mem-usage.lua7
-rw-r--r--.config/luastatus-scripts-dwm/mpd.lua32
-rw-r--r--.config/luastatus-scripts-dwm/network.lua72
-rw-r--r--.config/luastatus-scripts-dwm/pulse-gauge.lua18
-rw-r--r--.config/luastatus-scripts-dwm/pulse.lua10
-rw-r--r--.config/luastatus-scripts-dwm/time-date.lua58
-rw-r--r--.config/luastatus-scripts-dwm/tor.lua13
-rw-r--r--.config/luastatus-scripts-dwm/weather.lua67
-rw-r--r--.config/luastatus-scripts-dwm/xkb.lua17
-rw-r--r--.config/nvim/init.vim54
-rw-r--r--.config/obs-studio/themes/Catppuccin.obt1872
-rw-r--r--.config/obs-studio/themes/Catppuccin_Mocha.ovt326
-rw-r--r--.config/picom.conf196
-rw-r--r--.config/qtile/__pycache__/bar.cpython-313.pycbin0 -> 6018 bytes
-rw-r--r--.config/qtile/__pycache__/bars.cpython-313.pycbin0 -> 6019 bytes
-rw-r--r--.config/qtile/__pycache__/config.cpython-313.pycbin0 -> 1087 bytes
-rw-r--r--.config/qtile/__pycache__/defaults.cpython-313.pycbin0 -> 2613 bytes
-rw-r--r--.config/qtile/__pycache__/keybindings.cpython-313.pycbin0 -> 5472 bytes
-rw-r--r--.config/qtile/__pycache__/mic_volume.cpython-313.pycbin0 -> 15992 bytes
-rw-r--r--.config/qtile/__pycache__/screens.cpython-313.pycbin0 -> 407 bytes
-rw-r--r--.config/qtile/bars.py194
-rw-r--r--.config/qtile/config.py25
-rw-r--r--.config/qtile/defaults.py102
-rw-r--r--.config/qtile/keybindings.py85
-rw-r--r--.config/qtile/screens.py13
-rw-r--r--.config/sxhkd/sxhkdrc131
-rw-r--r--.config/tint2/tint2rc216
-rw-r--r--.config/tint2/tint2rc.backup.1623112960215
-rw-r--r--.config/tint2/tint2rc.backup.1623114130216
-rw-r--r--.config/tint2/tint2rc.backup.1629287679216
-rw-r--r--.config/tint2/workspaces.tint2rc182
-rw-r--r--.config/tint2/workspaces.tint2rc.backup.1631544866110
-rwxr-xr-x.scripts/luastatus-dwm10
-rwxr-xr-x.scripts/switch-keyboard-layout11
-rwxr-xr-x.xprofile48
-rw-r--r--CGIT_README.md19
-rw-r--r--cgit.css1033
-rw-r--r--cgit.svg10
77 files changed, 5994 insertions, 3859 deletions
diff --git a/.bash_profile b/.bash_profile
new file mode 100644
index 0000000..5f7f323
--- /dev/null
+++ b/.bash_profile
@@ -0,0 +1,25 @@
+[[ -f ~/.bashrc ]] && . ~/.bashrc
+. "$HOME/.cargo/env"
+
+export EDITOR="nvim"
+export VISUAL="emacs"
+export TERMINAL="alacritty"
+export BROWSER="librewolf"
+export COLORTERM="truecolor"
+export PAGER="bat"
+
+export PATH=$HOME/.scripts:$PATH
+export PATH=$HOME/.local/bin:$PATH
+export PATH=$HOME/.config/emacs/bin:$PATH
+
+export PATH=/usr/local/bin:$PATH
+
+# export RUST_SRC_PATH=$HOME/.cargo
+export PATH=$HOME/.gopath:$PATH
+export GOPATH="$HOME/.gopath"
+# export PATH=$HOME/.local/flutter/bin:$PATH
+
+export ZDOTDIR="$HOME/.config/zsh"
+
+export QT_QPA_PLATFORMTHEME=qt5ct
+export QT_QPA_PLATFORMTHEME_QT6=qt6ct
diff --git a/.bashrc b/.bashrc
new file mode 100644
index 0000000..6d34d24
--- /dev/null
+++ b/.bashrc
@@ -0,0 +1,11 @@
+#
+# ~/.bashrc
+#
+
+# If not running interactively, don't do anything
+[[ $- != *i* ]] && return
+
+# alias ls='ls --color=auto'
+# alias grep='grep --color=auto'
+# PS1='[\u@\h \W]\$ '
+. "$HOME/.cargo/env"
diff --git a/.config/alacritty/alacritty.toml b/.config/alacritty/alacritty.toml
index c24bd97..1253808 100644
--- a/.config/alacritty/alacritty.toml
+++ b/.config/alacritty/alacritty.toml
@@ -5,6 +5,6 @@ import = [
#"~/.config/alacritty/mouse.toml",
"~/.config/alacritty/shell.toml",
"~/.config/alacritty/env.toml",
- #"~/.config/alacritty/window.toml",
- #"~/.config/alacritty/themes/dracula.toml"
+ "~/.config/alacritty/window.toml",
+ "~/.config/alacritty/themes/catppuccin-mocha.toml"
]
diff --git a/.config/alacritty/env.toml b/.config/alacritty/env.toml
index d8f1069..a2fc11a 100644
--- a/.config/alacritty/env.toml
+++ b/.config/alacritty/env.toml
@@ -1,2 +1,3 @@
[env]
WINIT_X11_SCALE_FACTOR = "1.1"
+TERM = "xterm-256color"
diff --git a/.config/alacritty/themes/catppuccin-frappe.toml b/.config/alacritty/themes/catppuccin-frappe.toml
new file mode 100644
index 0000000..3e6fac1
--- /dev/null
+++ b/.config/alacritty/themes/catppuccin-frappe.toml
@@ -0,0 +1,65 @@
+[colors.primary]
+background = "#303446"
+foreground = "#c6d0f5"
+dim_foreground = "#838ba7"
+bright_foreground = "#c6d0f5"
+
+[colors.cursor]
+text = "#303446"
+cursor = "#f2d5cf"
+
+[colors.vi_mode_cursor]
+text = "#303446"
+cursor = "#babbf1"
+
+[colors.search.matches]
+foreground = "#303446"
+background = "#a5adce"
+
+[colors.search.focused_match]
+foreground = "#303446"
+background = "#a6d189"
+
+[colors.footer_bar]
+foreground = "#303446"
+background = "#a5adce"
+
+[colors.hints.start]
+foreground = "#303446"
+background = "#e5c890"
+
+[colors.hints.end]
+foreground = "#303446"
+background = "#a5adce"
+
+[colors.selection]
+text = "#303446"
+background = "#f2d5cf"
+
+[colors.normal]
+black = "#51576d"
+red = "#e78284"
+green = "#a6d189"
+yellow = "#e5c890"
+blue = "#8caaee"
+magenta = "#f4b8e4"
+cyan = "#81c8be"
+white = "#b5bfe2"
+
+[colors.bright]
+black = "#626880"
+red = "#e78284"
+green = "#a6d189"
+yellow = "#e5c890"
+blue = "#8caaee"
+magenta = "#f4b8e4"
+cyan = "#81c8be"
+white = "#a5adce"
+
+[[colors.indexed_colors]]
+index = 16
+color = "#ef9f76"
+
+[[colors.indexed_colors]]
+index = 17
+color = "#f2d5cf"
diff --git a/.config/alacritty/themes/catppuccin-macchiato.toml b/.config/alacritty/themes/catppuccin-macchiato.toml
new file mode 100644
index 0000000..df5c8bc
--- /dev/null
+++ b/.config/alacritty/themes/catppuccin-macchiato.toml
@@ -0,0 +1,66 @@
+[colors.primary]
+#background = "#24273a"
+background = "#14161b"
+foreground = "#cad3f5"
+dim_foreground = "#8087a2"
+bright_foreground = "#cad3f5"
+
+[colors.cursor]
+text = "#24273a"
+cursor = "#f4dbd6"
+
+[colors.vi_mode_cursor]
+text = "#24273a"
+cursor = "#b7bdf8"
+
+[colors.search.matches]
+foreground = "#24273a"
+background = "#a5adcb"
+
+[colors.search.focused_match]
+foreground = "#24273a"
+background = "#a6da95"
+
+[colors.footer_bar]
+foreground = "#24273a"
+background = "#a5adcb"
+
+[colors.hints.start]
+foreground = "#24273a"
+background = "#eed49f"
+
+[colors.hints.end]
+foreground = "#24273a"
+background = "#a5adcb"
+
+[colors.selection]
+text = "#24273a"
+background = "#f4dbd6"
+
+[colors.normal]
+black = "#494d64"
+red = "#ed8796"
+green = "#a6da95"
+yellow = "#eed49f"
+blue = "#8aadf4"
+magenta = "#f5bde6"
+cyan = "#8bd5ca"
+white = "#b8c0e0"
+
+[colors.bright]
+black = "#5b6078"
+red = "#ed8796"
+green = "#a6da95"
+yellow = "#eed49f"
+blue = "#8aadf4"
+magenta = "#f5bde6"
+cyan = "#8bd5ca"
+white = "#a5adcb"
+
+[[colors.indexed_colors]]
+index = 16
+color = "#f5a97f"
+
+[[colors.indexed_colors]]
+index = 17
+color = "#f4dbd6"
diff --git a/.config/alacritty/themes/catppuccin-mocha.toml b/.config/alacritty/themes/catppuccin-mocha.toml
new file mode 100644
index 0000000..7b752ce
--- /dev/null
+++ b/.config/alacritty/themes/catppuccin-mocha.toml
@@ -0,0 +1,66 @@
+[colors.primary]
+#background = "#1e1e2e"
+background = "#14161b"
+foreground = "#cdd6f4"
+dim_foreground = "#7f849c"
+bright_foreground = "#cdd6f4"
+
+[colors.cursor]
+text = "#1e1e2e"
+cursor = "#f5e0dc"
+
+[colors.vi_mode_cursor]
+text = "#1e1e2e"
+cursor = "#b4befe"
+
+[colors.search.matches]
+foreground = "#1e1e2e"
+background = "#a6adc8"
+
+[colors.search.focused_match]
+foreground = "#1e1e2e"
+background = "#a6e3a1"
+
+[colors.footer_bar]
+foreground = "#1e1e2e"
+background = "#a6adc8"
+
+[colors.hints.start]
+foreground = "#1e1e2e"
+background = "#f9e2af"
+
+[colors.hints.end]
+foreground = "#1e1e2e"
+background = "#a6adc8"
+
+[colors.selection]
+text = "#1e1e2e"
+background = "#f5e0dc"
+
+[colors.normal]
+black = "#45475a"
+red = "#f38ba8"
+green = "#a6e3a1"
+yellow = "#f9e2af"
+blue = "#89b4fa"
+magenta = "#f5c2e7"
+cyan = "#94e2d5"
+white = "#bac2de"
+
+[colors.bright]
+black = "#585b70"
+red = "#f38ba8"
+green = "#a6e3a1"
+yellow = "#f9e2af"
+blue = "#89b4fa"
+magenta = "#f5c2e7"
+cyan = "#94e2d5"
+white = "#a6adc8"
+
+[[colors.indexed_colors]]
+index = 16
+color = "#fab387"
+
+[[colors.indexed_colors]]
+index = 17
+color = "#f5e0dc"
diff --git a/.config/alacritty/themes/embark.toml b/.config/alacritty/themes/embark.toml
new file mode 100644
index 0000000..209ed93
--- /dev/null
+++ b/.config/alacritty/themes/embark.toml
@@ -0,0 +1,27 @@
+[colors.bright]
+black = "#585273"
+blue = "#78a8ff"
+cyan = "#63f2f1"
+green = "#7fe9c3"
+magenta = "#7676ff"
+red = "#f02e6e"
+white = "#8a889d"
+yellow = "#f2b482"
+
+[colors.cursor]
+cursor = "#a1efd3"
+text = "#1e1c31"
+
+[colors.normal]
+black = "#1e1c31"
+blue = "#91ddff"
+cyan = "#abf8f7"
+green = "#a1efd3"
+magenta = "#d4bfff"
+red = "#f48fb1"
+white = "#cbe3e7"
+yellow = "#ffe6b3"
+
+[colors.primary]
+background = "#1e1c31"
+foreground = "#cbe3e7"
diff --git a/.config/alacritty/themes/fairyflossdark.yml b/.config/alacritty/themes/fairyflossdark.yml
deleted file mode 100644
index 61ff9a7..0000000
--- a/.config/alacritty/themes/fairyflossdark.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-# Colors (Molokai)
-colors:
- # Default colors
- primary:
- background: '0x42395d'
- foreground: '0xf8f8f2'
-
- # Colors the cursor will use if `custom_cursor_colors` is true
- # text: '0x'
- # cursor: '0x'
-
- # Normal colors
- normal:
- black: '0x42395d'
- red: '0xa8757b'
- green: '0xff857f'
- yellow: '0xe6c000'
- blue: '0xae81ff'
- magenta: '0x716799'
- cyan: '0xc2ffdf'
- white: '0xf8f8f2'
-
- # Bright colors
- bright:
- black: '0x75507b'
- red: '0xffb8d1'
- green: '0xf1568e'
- yellow: '0xd5a425'
- blue: '0xc5a3ff'
- magenta: '0x8077a8'
- cyan: '0xc2ffff'
- white: '0xf8f8f0'
diff --git a/.config/alacritty/themes/molokai.yml b/.config/alacritty/themes/molokai.yml
deleted file mode 100644
index b5bea8d..0000000
--- a/.config/alacritty/themes/molokai.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-# Colors (Molokai)
-colors:
- # Default colors
- primary:
- background: '0x151515'
- foreground: '0xeaeaea'
-
- # Colors the cursor will use if `custom_cursor_colors` is true
- cursor:
- text: '0x000000'
- cursor: '0xffffff'
-
- # Normal colors
- normal:
- black: '0x121212'
- red: '0xfa2573'
- # green: '0x98e123' # Correct Molokai colour
- green: '0x9cff00' # Better looking colour
- yellow: '0xdfd460'
- blue: '0x1080d0'
- magenta: '0x8700ff'
- cyan: '0x43a8d0'
- white: '0xbbbbbb'
-
- # Bright colors
- bright:
- black: '0x555555'
- red: '0xf6669d'
- green: '0xb1e05f'
- yellow: '0xfff26d'
- blue: '0x00afff'
- magenta: '0xaf87ff'
- cyan: '0x51ceff'
- white: '0xffffff'
diff --git a/.config/alacritty/themes/rose-pine-dawn.toml b/.config/alacritty/themes/rose-pine-dawn.toml
new file mode 100644
index 0000000..0e0444a
--- /dev/null
+++ b/.config/alacritty/themes/rose-pine-dawn.toml
@@ -0,0 +1,75 @@
+# Colors section of "Alacritty - TOML configuration file format"
+# https://github.com/alacritty/alacritty/blob/master/extra/man/alacritty.5.scd#colors
+
+[colors.primary]
+foreground = "#575279"
+background = "#faf4ed"
+dim_foreground = "#797593"
+bright_foreground = "#575279"
+
+[colors.cursor]
+text = "#575279"
+cursor = "#cecacd"
+
+[colors.vi_mode_cursor]
+text = "#575279"
+cursor = "#cecacd"
+
+[colors.search.matches]
+foreground = "#797593"
+background = "#f2e9e1"
+
+[colors.search.focused_match]
+foreground = "#faf4ed"
+background = "#d7827e"
+
+[colors.hints.start]
+foreground = "#797593"
+background = "#fffaf3"
+
+[colors.hints.end]
+foreground = "#9893a5"
+background = "#fffaf3"
+
+[colors.line_indicator]
+foreground = "None"
+background = "None"
+
+[colors.footer_bar]
+foreground = "#575279"
+background = "#fffaf3"
+
+[colors.selection]
+text = "#575279"
+background = "#dfdad9"
+
+[colors.normal]
+black = "#f2e9e1"
+red = "#b4637a"
+green = "#286983"
+yellow = "#ea9d34"
+blue = "#56949f"
+magenta = "#907aa9"
+cyan = "#d7827e"
+white = "#575279"
+
+[colors.bright]
+black = "#9893a5"
+red = "#b4637a"
+green = "#286983"
+yellow = "#ea9d34"
+blue = "#56949f"
+magenta = "#907aa9"
+cyan = "#d7827e"
+white = "#575279"
+
+[colors.dim]
+black = "#9893a5"
+red = "#b4637a"
+green = "#286983"
+yellow = "#ea9d34"
+blue = "#56949f"
+magenta = "#907aa9"
+cyan = "#d7827e"
+white = "#575279"
+
diff --git a/.config/alacritty/themes/rose-pine-moon.toml b/.config/alacritty/themes/rose-pine-moon.toml
new file mode 100644
index 0000000..3bbfe65
--- /dev/null
+++ b/.config/alacritty/themes/rose-pine-moon.toml
@@ -0,0 +1,75 @@
+# Colors section of "Alacritty - TOML configuration file format"
+# https://github.com/alacritty/alacritty/blob/master/extra/man/alacritty.5.scd#colors
+
+[colors.primary]
+foreground = "#e0def4"
+background = "#232136"
+dim_foreground = "#908caa"
+bright_foreground = "#e0def4"
+
+[colors.cursor]
+text = "#e0def4"
+cursor = "#56526e"
+
+[colors.vi_mode_cursor]
+text = "#e0def4"
+cursor = "#56526e"
+
+[colors.search.matches]
+foreground = "#908caa"
+background = "#393552"
+
+[colors.search.focused_match]
+foreground = "#232136"
+background = "#ea9a97"
+
+[colors.hints.start]
+foreground = "#908caa"
+background = "#2a273f"
+
+[colors.hints.end]
+foreground = "#6e6a86"
+background = "#2a273f"
+
+[colors.line_indicator]
+foreground = "None"
+background = "None"
+
+[colors.footer_bar]
+foreground = "#e0def4"
+background = "#2a273f"
+
+[colors.selection]
+text = "#e0def4"
+background = "#44415a"
+
+[colors.normal]
+black = "#393552"
+red = "#eb6f92"
+green = "#3e8fb0"
+yellow = "#f6c177"
+blue = "#9ccfd8"
+magenta = "#c4a7e7"
+cyan = "#ea9a97"
+white = "#e0def4"
+
+[colors.bright]
+black = "#6e6a86"
+red = "#eb6f92"
+green = "#3e8fb0"
+yellow = "#f6c177"
+blue = "#9ccfd8"
+magenta = "#c4a7e7"
+cyan = "#ea9a97"
+white = "#e0def4"
+
+[colors.dim]
+black = "#6e6a86"
+red = "#eb6f92"
+green = "#3e8fb0"
+yellow = "#f6c177"
+blue = "#9ccfd8"
+magenta = "#c4a7e7"
+cyan = "#ea9a97"
+white = "#e0def4"
+
diff --git a/.config/alacritty/themes/rose-pine.toml b/.config/alacritty/themes/rose-pine.toml
new file mode 100644
index 0000000..ff757b2
--- /dev/null
+++ b/.config/alacritty/themes/rose-pine.toml
@@ -0,0 +1,75 @@
+# Colors section of "Alacritty - TOML configuration file format"
+# https://github.com/alacritty/alacritty/blob/master/extra/man/alacritty.5.scd#colors
+
+[colors.primary]
+foreground = "#e0def4"
+background = "#191724"
+dim_foreground = "#908caa"
+bright_foreground = "#e0def4"
+
+[colors.cursor]
+text = "#e0def4"
+cursor = "#524f67"
+
+[colors.vi_mode_cursor]
+text = "#e0def4"
+cursor = "#524f67"
+
+[colors.search.matches]
+foreground = "#908caa"
+background = "#26233a"
+
+[colors.search.focused_match]
+foreground = "#191724"
+background = "#ebbcba"
+
+[colors.hints.start]
+foreground = "#908caa"
+background = "#1f1d2e"
+
+[colors.hints.end]
+foreground = "#6e6a86"
+background = "#1f1d2e"
+
+[colors.line_indicator]
+foreground = "None"
+background = "None"
+
+[colors.footer_bar]
+foreground = "#e0def4"
+background = "#1f1d2e"
+
+[colors.selection]
+text = "#e0def4"
+background = "#403d52"
+
+[colors.normal]
+black = "#26233a"
+red = "#eb6f92"
+green = "#31748f"
+yellow = "#f6c177"
+blue = "#9ccfd8"
+magenta = "#c4a7e7"
+cyan = "#ebbcba"
+white = "#e0def4"
+
+[colors.bright]
+black = "#6e6a86"
+red = "#eb6f92"
+green = "#31748f"
+yellow = "#f6c177"
+blue = "#9ccfd8"
+magenta = "#c4a7e7"
+cyan = "#ebbcba"
+white = "#e0def4"
+
+[colors.dim]
+black = "#6e6a86"
+red = "#eb6f92"
+green = "#31748f"
+yellow = "#f6c177"
+blue = "#9ccfd8"
+magenta = "#c4a7e7"
+cyan = "#ebbcba"
+white = "#e0def4"
+
diff --git a/.config/alacritty/window.toml b/.config/alacritty/window.toml
index 843f080..f0c281d 100644
--- a/.config/alacritty/window.toml
+++ b/.config/alacritty/window.toml
@@ -5,7 +5,7 @@ history = 20000
decorations = "full"
dynamic_padding = false
dynamic_title = true
-opacity = 0.7
+opacity = 0.75
startup_mode = "Windowed"
title = "Alacritty"
diff --git a/.config/base-packages.txt b/.config/base-packages.txt
deleted file mode 100644
index e3bdfd9..0000000
--- a/.config/base-packages.txt
+++ /dev/null
@@ -1,910 +0,0 @@
-a52dec
-aalib
-abseil-cpp
-accounts-qml-module
-acl
-adobe-source-code-pro-fonts
-adobe-source-han-sans-jp-fonts
-adobe-source-han-sans-kr-fonts
-adwaita-cursors
-adwaita-icon-theme
-alacritty
-alsa-card-profiles
-alsa-lib
-alsa-topology-conf
-alsa-ucm-conf
-amf-headers
-aom
-apparmor
-arandr
-archlinux-keyring
-argon2
-aribb24
-aribb25
-asio
-at-spi2-core
-atkmm
-attica5
-attr
-audit
-autoconf
-automake
-avahi
-avisynthplus
-babl
-base
-base-devel
-bash
-bat
-binutils
-bison
-blas
-blueman
-bluez
-bluez-libs
-bluez-utils
-boost-libs
-botan
-botan2
-box2d
-breeze-icons
-brightnessctl
-brotli
-btrfs-progs
-bzip2
-ca-certificates
-ca-certificates-mozilla
-ca-certificates-utils
-cabal-install
-cairo
-cairomm
-cantarell-fonts
-cdparanoia
-cef-minimal-obs-bin
-chromaprint
-chrpath
-cifs-utils
-cjson
-clang
-clucene
-cmake
-colorpicker
-compiler-rt
-confuse
-convertlit
-coreutils
-cppdap
-cryptsetup
-curl
-dart
-dav1d
-db
-db5.3
-dbus
-dbus-glib
-dbus-python
-dconf
-debugedit
-default-cursors
-desktop-file-utils
-device-mapper
-diffutils
-discord
-dkms
-dnssec-anchors
-double-conversion
-dracula-cursors-git
-dracula-gtk-theme
-duktape
-dunst
-dust
-e2fsprogs
-ebook-tools
-efibootmgr
-efivar
-egl-wayland
-eglexternalplatform
-exiv2
-expat
-eza
-faad2
-fakeroot
-ffmpeg-obs
-ffnvcodec-headers
-fftw
-figlet
-file
-filesystem
-findutils
-firejail
-fish
-flac
-flameshot
-flex
-fontconfig
-freeglut
-freetype2
-frei0r-plugins
-fribidi
-ftgl
-ftl-sdk
-galculator
-gawk
-gc
-gcc
-gcc-libs
-gcr-4
-gdbm
-gdk-pixbuf2
-gegl
-gettext
-ghc
-ghc-libs
-giflib
-gimp
-git
-glew
-glib-networking
-glib2
-glibc
-glibmm
-glm
-glslang
-glu
-gmp
-gnu-free-fonts
-gnupg
-gnutls
-go
-gobject-introspection-runtime
-gperftools
-gpgme
-gpm
-graphene
-graphite
-grep
-groff
-grub
-gsettings-desktop-schemas
-gsfonts
-gsm
-gssdp
-gst-plugins-bad-libs
-gst-plugins-base
-gst-plugins-base-libs
-gstreamer
-gtk-update-icon-cache
-gtk2
-gtk3
-gtkmm
-gtkmm3
-guile
-gupnp
-gupnp-igd
-gzip
-harfbuzz
-harfbuzz-icu
-haskell-aeson
-haskell-assoc
-haskell-async
-haskell-attoparsec
-haskell-base-compat
-haskell-base-compat-batteries
-haskell-base-orphans
-haskell-base16-bytestring
-haskell-base64-bytestring
-haskell-bifunctors
-haskell-comonad
-haskell-contravariant
-haskell-cryptohash-sha256
-haskell-data-array-byte
-haskell-data-default-class
-haskell-data-fix
-haskell-diff
-haskell-distributive
-haskell-dlist
-haskell-echo
-haskell-ed25519
-haskell-edit-distance
-haskell-erf
-haskell-fgl
-haskell-foldable1-classes-compat
-haskell-generically
-haskell-ghc-bignum-orphans
-haskell-hackage-security
-haskell-hashable
-haskell-http
-haskell-indexed-traversable
-haskell-indexed-traversable-instances
-haskell-integer-logarithms
-haskell-lukko
-haskell-network
-haskell-network-uri
-haskell-onetuple
-haskell-primitive
-haskell-quickcheck
-haskell-random
-haskell-regex-base
-haskell-regex-posix
-haskell-regex-tdfa
-haskell-resolv
-haskell-scientific
-haskell-semialign
-haskell-semigroupoids
-haskell-setlocale
-haskell-splitmix
-haskell-statevar
-haskell-strict
-haskell-tagged
-haskell-tar
-haskell-text-short
-haskell-th-abstraction
-haskell-th-compat
-haskell-these
-haskell-time-compat
-haskell-transformers-compat
-haskell-unordered-containers
-haskell-utf8-string
-haskell-uuid-types
-haskell-vector
-haskell-vector-stream
-haskell-witherable
-haskell-x11
-haskell-x11-xft
-haskell-zlib
-hicolor-icon-theme
-hidapi
-highway
-http-parser
-hunspell
-hwdata
-hwloc
-hyphen
-iana-etc
-icu
-imath
-imlib2
-iproute2
-iptables
-iputils
-iso-codes
-jack2
-jansson
-jasper
-jbigkit
-json-c
-json-glib
-jsoncpp
-kaccounts-integration
-karchive5
-kauth5
-kbd
-kbookmarks5
-kcmutils5
-kcodecs5
-kcompletion5
-kconfig5
-kconfigwidgets5
-kcoreaddons5
-kcrash5
-kdbusaddons5
-kdeclarative5
-kded5
-kdenlive
-keepassxc
-keyutils
-kfilemetadata5
-kglobalaccel5
-kguiaddons5
-ki18n5
-kiconthemes5
-kio5
-kirigami2
-kitemviews5
-kjobwidgets5
-kmod
-knewstuff5
-knotifications5
-knotifyconfig5
-kpackage5
-krb5
-kservice5
-ktextwidgets5
-kvantum
-kvantum-theme-dracula-git
-kwallet5
-kwidgetsaddons5
-kwindowsystem5
-kxmlgui5
-l-smash
-ladspa
-lame
-lapack
-lcms2
-ldb
-ldns
-lensfun
-lf-bin
-libabw
-libaccounts-glib
-libaccounts-qt
-libaio
-libajantv2
-libappindicator-gtk3
-libarchive
-libass
-libassuan
-libasyncns
-libatasmart
-libatomic_ops
-libavc1394
-libb2
-libblockdev
-libbluray
-libbpf
-libbs2b
-libbsd
-libbytesize
-libcaca
-libcamera
-libcamera-ipa
-libcanberra
-libcap
-libcap-ng
-libcdio
-libcdio-paranoia
-libcdr
-libcloudproviders
-libcolord
-libconfig
-libcups
-libdaemon
-libdatrie
-libdbusmenu-glib
-libdbusmenu-gtk3
-libdbusmenu-qt5
-libdc1394
-libdca
-libde265
-libdecor
-libdeflate
-libdovi
-libdrm
-libdvbpsi
-libdvdcss
-libdvdnav
-libdvdread
-libe-book
-libebml
-libebur128
-libedit
-libelf
-libepoxy
-libepubgen
-libetonyek
-libev
-libevdev
-libevent
-libexif
-libexttextcat
-libfdk-aac
-libffi
-libfontenc
-libfreeaptx
-libfreehand
-libftdi
-libgcrypt
-libgexiv2
-libgirepository
-libgit2
-libglvnd
-libgme
-libgnomekbd
-libgoom2
-libgpg-error
-libgudev
-libheif
-libical
-libice
-libid3tag
-libidn
-libidn2
-libiec61883
-libimobiledevice
-libinih
-libinput
-libisl
-libjpeg-turbo
-libjxl
-libkate
-libksba
-liblangtag
-liblc3
-libldac
-libldap
-libluv
-libmad
-libmatroska
-libmd
-libmicrodns
-libmm-glib
-libmng
-libmnl
-libmodplug
-libmpc
-libmpcdec
-libmpeg2
-libmspack
-libmspub
-libmtp
-libmwaw
-libmypaint
-libmysofa
-libndp
-libnetfilter_conntrack
-libnewt
-libnfnetlink
-libnfs
-libnftnl
-libnghttp2
-libnice
-libnl
-libnm
-libnma
-libnma-common
-libnotify
-libnsl
-libnumbertext
-libnvme
-libodfgen
-libogg
-libomxil-bellagio
-libopenmpt
-libp11-kit
-libpagemaker
-libpcap
-libpciaccess
-libpgm
-libpipewire
-libplacebo
-libplist
-libpng
-libproxy
-libpsl
-libpulse
-libqxp
-libraw
-libraw1394
-libreoffice-still
-librevenge
-librewolf-bin
-librist
-librsvg
-libsamplerate
-libsasl
-libseccomp
-libsecret
-libshout
-libsigc++
-libsm
-libsndfile
-libsodium
-libsoup
-libsoup3
-libsoxr
-libspiro
-libssh
-libssh2
-libstaroffice
-libstemmer
-libsysprof-capture
-libtar
-libtasn1
-libteam
-libtermkey
-libthai
-libtheora
-libtiff
-libtiger
-libtirpc
-libtommath
-libtool
-libtorrent-rasterbar
-libunistring
-libunwind
-libupnp
-libusb
-libusb-compat
-libusbmuxd
-libutempter
-libuv
-libva
-libvdpau
-libverto
-libvisio
-libvorbis
-libvpx
-libvterm
-libwacom
-libwbclient
-libwebp
-libwmf
-libwpd
-libwpg
-libwps
-libx11
-libxau
-libxcb
-libxcomposite
-libxcrypt
-libxcursor
-libxcvt
-libxdamage
-libxdmcp
-libxext
-libxfixes
-libxfont2
-libxft
-libxi
-libxinerama
-libxkbcommon
-libxkbcommon-x11
-libxkbfile
-libxklavier
-libxml2
-libxmu
-libxpm
-libxpresent
-libxrandr
-libxrender
-libxshmfence
-libxslt
-libxss
-libxt
-libxtst
-libxv
-libxxf86vm
-libyaml
-libzip
-libzmf
-licenses
-lightdm
-lightdm-slick-greeter
-lilv
-linux
-linux-api-headers
-linux-firmware
-linux-firmware-whence
-linux-headers
-lirc
-live-media
-llvm-libs
-llvm14
-llvm14-libs
-lm_sensors
-lmdb
-lpsolve
-lua51
-luajit
-lv2
-lvm2
-lz4
-lzo
-m4
-mailcap
-make
-mbedtls
-md4c
-mdadm
-media-player-info
-mesa
-mesa-utils
-minizip
-mkinitcpio
-mkinitcpio-busybox
-mlt
-mobile-broadband-provider-info
-mpfr
-mpg123
-mpv
-msgpack-c
-mtdev
-mujs
-mypaint-brushes1
-nasm
-ncurses
-neofetch
-neon
-neovim
-nettle
-network-manager-applet
-networkmanager
-nitrogen
-nlohmann-json
-nm-connection-editor
-npth
-nspr
-nss
-nsxiv
-numactl
-nvidia
-nvidia-utils
-obs-studio-browser
-ocl-icd
-onevpl
-oniguruma
-openal
-opencl-headers
-opencore-amr
-openexr
-openjpeg2
-openmpi
-openpmix
-openssh
-openssl
-optimus-manager
-opus
-orc
-p11-kit
-pacman
-pacman-mirrorlist
-pahole
-pam
-pambase
-pango
-pangomm
-parted
-paru-bin
-patch
-pavucontrol
-pciutils
-pcre
-pcre2
-pcsclite
-perl
-perl-error
-perl-mailtools
-perl-timedate
-pfetch
-picom
-pinentry
-pipewire
-pipewire-audio
-pipewire-media-session
-pipewire-pulse
-pixman
-pkgconf
-playerctl
-polkit
-polkit-qt5
-poppler
-poppler-data
-poppler-glib
-poppler-qt5
-popt
-portaudio
-portmidi
-portsmf
-procps-ng
-projectm
-protobuf
-psmisc
-purpose5
-python
-python-annotated-types
-python-autocommand
-python-babel
-python-build
-python-cairo
-python-certifi
-python-charset-normalizer
-python-docopt
-python-docutils
-python-fastjsonschema
-python-gobject
-python-gpgme
-python-idna
-python-imagesize
-python-inflect
-python-installer
-python-jaraco.context
-python-jaraco.functools
-python-jaraco.text
-python-jinja
-python-keyutils
-python-markupsafe
-python-more-itertools
-python-ordered-set
-python-packaging
-python-platformdirs
-python-pydantic
-python-pydantic-core
-python-pygments
-python-pyproject-hooks
-python-pyqt5
-python-pyqt5-sip
-python-pysocks
-python-pytz
-python-requests
-python-setuptools
-python-snowballstemmer
-python-sphinx
-python-sphinx-alabaster-theme
-python-sphinxcontrib-applehelp
-python-sphinxcontrib-devhelp
-python-sphinxcontrib-htmlhelp
-python-sphinxcontrib-jsmath
-python-sphinxcontrib-qthelp
-python-sphinxcontrib-serializinghtml
-python-tomli
-python-trove-classifiers
-python-typing_extensions
-python-urllib3
-python-validate-pyproject
-python-wheel
-python-yaml
-qbittorrent
-qca-qt5
-qrencode
-qt5-base
-qt5-declarative
-qt5-graphicaleffects
-qt5-location
-qt5-multimedia
-qt5-networkauth
-qt5-quickcontrols
-qt5-quickcontrols2
-qt5-speech
-qt5-svg
-qt5-translations
-qt5-wayland
-qt5-webchannel
-qt5-webengine
-qt5-x11extras
-qt6-base
-qt6-declarative
-qt6-svg
-qt6-translations
-qt6-wayland
-raptor
-rasqal
-rav1e
-readline
-redland
-rhash
-ripgrep
-rnnoise
-rubberband
-sbc
-sdl12-compat
-sdl2
-sdl_image
-sed
-serd
-shaderc
-shadow
-shared-mime-info
-shellcheck
-signon-kwallet-extension
-signon-plugin-oauth2
-signon-ui
-signond
-slang
-smbclient
-snappy
-sndio
-solid5
-sonnet5
-sord
-sound-theme-freedesktop
-soundtouch
-speex
-speexdsp
-spirv-tools
-sqlite
-sratom
-srt
-starship
-startup-notification
-sudo
-suil
-suitesparse
-svt-av1
-swig
-syndication5
-systemd
-systemd-libs
-systemd-sysvcompat
-taglib
-talloc
-tar
-tdb
-tenacity
-tevent
-texinfo
-thin-provisioning-tools
-thunderbird
-tor
-torbrowser-launcher
-tpm2-tss
-tracker3
-tree-sitter
-tslib
-twolame
-tzdata
-uchardet
-udiskie
-udisks2
-unibilium
-unzip
-upower
-usbmuxd
-uthash
-util-linux
-util-linux-libs
-v4l-utils
-v4l2loopback-dkms
-v4l2loopback-utils
-vamp-plugin-sdk
-vcdimager
-vid.stab
-vim
-vim-plug
-vim-runtime
-vivaldi
-vlc-luajit
-vmaf
-volume_key
-vulkan-headers
-vulkan-icd-loader
-wayland
-wayland-protocols
-webrtc-audio-processing-1
-websocketpp
-wget
-which
-wpa_supplicant
-wxwidgets-common
-wxwidgets-gtk3
-x264
-x265
-xapp
-xcb-proto
-xcb-util
-xcb-util-cursor
-xcb-util-image
-xcb-util-keysyms
-xcb-util-renderutil
-xcb-util-wm
-xdg-utils
-xdotool
-xf86-input-libinput
-xkeyboard-config
-xmlsec
-xmonad
-xmonad-contrib
-xorg-fonts-encodings
-xorg-server
-xorg-server-common
-xorg-server-xephyr
-xorg-setxkbmap
-xorg-xkbcomp
-xorg-xmodmap
-xorg-xprop
-xorg-xrandr
-xorg-xrdb
-xorg-xset
-xorgproto
-xosd
-xsel
-xvidcore
-xz
-yt-dlp
-zeromq
-zimg
-zip
-zlib
-zsh
-zstd
-zvbi
-zxing-cpp
diff --git a/.config/bat/config b/.config/bat/config
new file mode 100644
index 0000000..b7de378
--- /dev/null
+++ b/.config/bat/config
@@ -0,0 +1 @@
+--theme="Catppuccin Mocha"
diff --git a/.config/bat/themes/Catppuccin Mocha.tmTheme b/.config/bat/themes/Catppuccin Mocha.tmTheme
new file mode 100644
index 0000000..6bd0f29
--- /dev/null
+++ b/.config/bat/themes/Catppuccin Mocha.tmTheme
@@ -0,0 +1,2081 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>name</key>
+ <string>Catppuccin Mocha</string>
+ <key>semanticClass</key>
+ <string>theme.dark.catppuccin-mocha</string>
+ <key>uuid</key>
+ <string>627ce890-fabb-4d39-9819-7be71f4bdca7</string>
+ <key>author</key>
+ <string>Catppuccin Org</string>
+ <key>colorSpaceName</key>
+ <string>sRGB</string>
+ <key>settings</key>
+ <array>
+ <dict>
+ <key>settings</key>
+ <dict>
+ <key>background</key>
+ <string>#1e1e2e</string>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ <key>caret</key>
+ <string>#f5e0dc</string>
+ <key>lineHighlight</key>
+ <string>#313244</string>
+ <key>misspelling</key>
+ <string>#f38ba8</string>
+ <key>accent</key>
+ <string>#cba6f7</string>
+ <key>selection</key>
+ <string>#9399b240</string>
+ <key>activeGuide</key>
+ <string>#45475a</string>
+ <key>findHighlight</key>
+ <string>#3e5767</string>
+ <key>gutterForeground</key>
+ <string>#7f849c</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Basic text &amp; variable names (incl. leading punctuation)</string>
+ <key>scope</key>
+ <string>text, source, variable.other.readwrite, punctuation.definition.variable</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Parentheses, Brackets, Braces</string>
+ <key>scope</key>
+ <string>punctuation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#9399b2</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Comments</string>
+ <key>scope</key>
+ <string>comment, punctuation.definition.comment</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#6c7086</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>string, punctuation.definition.string</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6e3a1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>constant.character.escape</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5c2e7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Booleans, constants, numbers</string>
+ <key>scope</key>
+ <string>constant.numeric, variable.other.constant, entity.name.constant, constant.language.boolean, constant.language.false, constant.language.true, keyword.other.unit.user-defined, keyword.other.unit.suffix.floating-point</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>keyword, keyword.operator.word, keyword.operator.new, variable.language.super, support.type.primitive, storage.type, storage.modifier, punctuation.definition.keyword</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>entity.name.tag.documentation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Punctuation</string>
+ <key>scope</key>
+ <string>keyword.operator, punctuation.accessor, punctuation.definition.generic, meta.function.closure punctuation.section.parameters, punctuation.definition.tag, punctuation.separator.key-value</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>entity.name.function, meta.function-call.method, support.function, support.function.misc, variable.function</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Classes</string>
+ <key>scope</key>
+ <string>entity.name.class, entity.other.inherited-class, support.class, meta.function-call.constructor, entity.name.struct</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Enum</string>
+ <key>scope</key>
+ <string>entity.name.enum</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Enum member</string>
+ <key>scope</key>
+ <string>meta.enum variable.other.readwrite, variable.other.enummember</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Object properties</string>
+ <key>scope</key>
+ <string>meta.property.object</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Types</string>
+ <key>scope</key>
+ <string>meta.type, meta.type-alias, support.type, entity.name.type</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Decorators</string>
+ <key>scope</key>
+ <string>meta.annotation variable.function, meta.annotation variable.annotation.function, meta.annotation punctuation.definition.annotation, meta.decorator, punctuation.decorator</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>variable.parameter, meta.function.parameters</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eba0ac</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Built-ins</string>
+ <key>scope</key>
+ <string>constant.language, support.function.builtin</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f38ba8</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>entity.other.attribute-name.documentation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f38ba8</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Preprocessor directives</string>
+ <key>scope</key>
+ <string>keyword.control.directive, punctuation.definition.directive</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Type parameters</string>
+ <key>scope</key>
+ <string>punctuation.definition.typeparameters</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89dceb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Namespaces</string>
+ <key>scope</key>
+ <string>entity.name.namespace</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Property names (left hand assignments in json/yaml/css)</string>
+ <key>scope</key>
+ <string>support.type.property-name.css</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>This/Self keyword</string>
+ <key>scope</key>
+ <string>variable.language.this, variable.language.this punctuation.definition.variable</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f38ba8</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Object properties</string>
+ <key>scope</key>
+ <string>variable.object.property</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>String template interpolation</string>
+ <key>scope</key>
+ <string>string.template variable, string variable</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>`new` as bold</string>
+ <key>scope</key>
+ <string>keyword.operator.new</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string>bold</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C++ extern keyword</string>
+ <key>scope</key>
+ <string>storage.modifier.specifier.extern.cpp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C++ scope resolution</string>
+ <key>scope</key>
+ <string>entity.name.scope-resolution.template.call.cpp, entity.name.scope-resolution.parameter.cpp, entity.name.scope-resolution.cpp, entity.name.scope-resolution.function.definition.cpp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C++ doc keywords</string>
+ <key>scope</key>
+ <string>storage.type.class.doxygen</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C++ operators</string>
+ <key>scope</key>
+ <string>storage.modifier.reference.cpp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C# Interpolated Strings</string>
+ <key>scope</key>
+ <string>meta.interpolation.cs</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>C# xml-style docs</string>
+ <key>scope</key>
+ <string>comment.block.documentation.cs</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Classes, reflecting the className color in JSX</string>
+ <key>scope</key>
+ <string>source.css entity.other.attribute-name.class.css, entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Operators</string>
+ <key>scope</key>
+ <string>punctuation.separator.operator.css</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Pseudo classes</string>
+ <key>scope</key>
+ <string>source.css entity.other.attribute-name.pseudo-class</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>source.css constant.other.unicode-range</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>source.css variable.parameter.url</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6e3a1</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>CSS vendored property names</string>
+ <key>scope</key>
+ <string>support.type.vendored.property-name</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89dceb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Less/SCSS right-hand variables (@/$-prefixed)</string>
+ <key>scope</key>
+ <string>source.css meta.property-value variable, source.css meta.property-value variable.other.less, source.css meta.property-value variable.other.less punctuation.definition.variable.less, meta.definition.variable.scss</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eba0ac</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>CSS variables (--prefixed)</string>
+ <key>scope</key>
+ <string>source.css meta.property-list variable, meta.property-list variable.other.less, meta.property-list variable.other.less punctuation.definition.variable.less</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>CSS Percentage values, styled the same as numbers</string>
+ <key>scope</key>
+ <string>keyword.other.unit.percentage.css</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>CSS Attribute selectors, styled the same as strings</string>
+ <key>scope</key>
+ <string>source.css meta.attribute-selector</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6e3a1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON/YAML keys, other left-hand assignments</string>
+ <key>scope</key>
+ <string>keyword.other.definition.ini, punctuation.support.type.property-name.json, support.type.property-name.json, punctuation.support.type.property-name.toml, support.type.property-name.toml, entity.name.tag.yaml, punctuation.support.type.property-name.yaml, support.type.property-name.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON/YAML constants</string>
+ <key>scope</key>
+ <string>constant.language.json, constant.language.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>YAML anchors</string>
+ <key>scope</key>
+ <string>entity.name.type.anchor.yaml, variable.other.alias.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>TOML tables / ini groups</string>
+ <key>scope</key>
+ <string>support.type.property-name.table, entity.name.section.group-title.ini</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>TOML dates</string>
+ <key>scope</key>
+ <string>constant.other.time.datetime.offset.toml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5c2e7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>YAML anchor puctuation</string>
+ <key>scope</key>
+ <string>punctuation.definition.anchor.yaml, punctuation.definition.alias.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5c2e7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>YAML triple dashes</string>
+ <key>scope</key>
+ <string>entity.other.document.begin.yaml</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5c2e7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markup Diff</string>
+ <key>scope</key>
+ <string>markup.changed.diff</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Diff</string>
+ <key>scope</key>
+ <string>meta.diff.header.from-file, meta.diff.header.to-file, punctuation.definition.from-file.diff, punctuation.definition.to-file.diff</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Diff Inserted</string>
+ <key>scope</key>
+ <string>markup.inserted.diff</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6e3a1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Diff Deleted</string>
+ <key>scope</key>
+ <string>markup.deleted.diff</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f38ba8</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>dotenv left-hand side assignments</string>
+ <key>scope</key>
+ <string>variable.other.env</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>dotenv reference to existing env variable</string>
+ <key>scope</key>
+ <string>string.quoted variable.other.env</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GDScript functions</string>
+ <key>scope</key>
+ <string>support.function.builtin.gdscript</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GDScript constants</string>
+ <key>scope</key>
+ <string>constant.language.gdscript</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Comment keywords</string>
+ <key>scope</key>
+ <string>comment meta.annotation.go</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eba0ac</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>go:embed, go:build, etc.</string>
+ <key>scope</key>
+ <string>comment meta.annotation.parameters.go</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Go constants (nil, true, false)</string>
+ <key>scope</key>
+ <string>constant.language.go</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GraphQL variables</string>
+ <key>scope</key>
+ <string>variable.graphql</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GraphQL aliases</string>
+ <key>scope</key>
+ <string>string.unquoted.alias.graphql</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f2cdcd</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GraphQL enum members</string>
+ <key>scope</key>
+ <string>constant.character.enum.graphql</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>GraphQL field in types</string>
+ <key>scope</key>
+ <string>meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f2cdcd</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>HTML/XML DOCTYPE as keyword</string>
+ <key>scope</key>
+ <string>keyword.other.doctype, meta.tag.sgml.doctype punctuation.definition.tag, meta.tag.metadata.doctype entity.name.tag, meta.tag.metadata.doctype punctuation.definition.tag</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>HTML/XML-like &lt;tags/&gt;</string>
+ <key>scope</key>
+ <string>entity.name.tag</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Special characters like &amp;amp;</string>
+ <key>scope</key>
+ <string>text.html constant.character.entity, text.html constant.character.entity punctuation, constant.character.entity.xml, constant.character.entity.xml punctuation, constant.character.entity.js.jsx, constant.charactger.entity.js.jsx punctuation, constant.character.entity.tsx, constant.character.entity.tsx punctuation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f38ba8</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>HTML/XML tag attribute values</string>
+ <key>scope</key>
+ <string>entity.other.attribute-name</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Components</string>
+ <key>scope</key>
+ <string>support.class.component, support.class.component.jsx, support.class.component.tsx, support.class.component.vue</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5c2e7</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Annotations</string>
+ <key>scope</key>
+ <string>punctuation.definition.annotation, storage.type.annotation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Java enums</string>
+ <key>scope</key>
+ <string>constant.other.enum.java</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Java imports</string>
+ <key>scope</key>
+ <string>storage.modifier.import.java</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Javadoc</string>
+ <key>scope</key>
+ <string>comment.block.javadoc.java keyword.other.documentation.javadoc.java</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Exported Variable</string>
+ <key>scope</key>
+ <string>meta.export variable.other.readwrite.js</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eba0ac</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JS/TS constants &amp; properties</string>
+ <key>scope</key>
+ <string>variable.other.constant.js, variable.other.constant.ts, variable.other.property.js, variable.other.property.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSDoc; these are mainly params, so styled as such</string>
+ <key>scope</key>
+ <string>variable.other.jsdoc, comment.block.documentation variable.other</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eba0ac</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSDoc keywords</string>
+ <key>scope</key>
+ <string>storage.type.class.jsdoc</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>support.type.object.console.js</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Node constants as keywords (module, etc.)</string>
+ <key>scope</key>
+ <string>support.constant.node, support.type.object.module.js</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>implements as keyword</string>
+ <key>scope</key>
+ <string>storage.modifier.implements</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Builtin types</string>
+ <key>scope</key>
+ <string>constant.language.null.js, constant.language.null.ts, constant.language.undefined.js, constant.language.undefined.ts, support.type.builtin.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>variable.parameter.generic</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Arrow functions</string>
+ <key>scope</key>
+ <string>keyword.declaration.function.arrow.js, storage.type.function.arrow.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Decorator punctuations (decorators inherit from blue functions, instead of styleguide peach)</string>
+ <key>scope</key>
+ <string>punctuation.decorator.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Extra JS/TS keywords</string>
+ <key>scope</key>
+ <string>keyword.operator.expression.in.js, keyword.operator.expression.in.ts, keyword.operator.expression.infer.ts, keyword.operator.expression.instanceof.js, keyword.operator.expression.instanceof.ts, keyword.operator.expression.is, keyword.operator.expression.keyof.ts, keyword.operator.expression.of.js, keyword.operator.expression.of.ts, keyword.operator.expression.typeof.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Julia macros</string>
+ <key>scope</key>
+ <string>support.function.macro.julia</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Julia language constants (true, false)</string>
+ <key>scope</key>
+ <string>constant.language.julia</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Julia other constants (these seem to be arguments inside arrays)</string>
+ <key>scope</key>
+ <string>constant.other.symbol.julia</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eba0ac</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>LaTeX preamble</string>
+ <key>scope</key>
+ <string>text.tex keyword.control.preamble</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>LaTeX be functions</string>
+ <key>scope</key>
+ <string>text.tex support.function.be</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89dceb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>LaTeX math</string>
+ <key>scope</key>
+ <string>constant.other.general.math.tex</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f2cdcd</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Lua docstring keywords</string>
+ <key>scope</key>
+ <string>comment.line.double-dash.documentation.lua storage.type.annotation.lua</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Lua docstring variables</string>
+ <key>scope</key>
+ <string>comment.line.double-dash.documentation.lua entity.name.variable.lua, comment.line.double-dash.documentation.lua variable.lua</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.1.markdown punctuation.definition.heading.markdown, heading.1.markdown, markup.heading.atx.1.mdx, markup.heading.atx.1.mdx punctuation.definition.heading.mdx, markup.heading.setext.1.markdown, markup.heading.heading-0.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f38ba8</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.2.markdown punctuation.definition.heading.markdown, heading.2.markdown, markup.heading.atx.2.mdx, markup.heading.atx.2.mdx punctuation.definition.heading.mdx, markup.heading.setext.2.markdown, markup.heading.heading-1.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.3.markdown punctuation.definition.heading.markdown, heading.3.markdown, markup.heading.atx.3.mdx, markup.heading.atx.3.mdx punctuation.definition.heading.mdx, markup.heading.heading-2.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.4.markdown punctuation.definition.heading.markdown, heading.4.markdown, markup.heading.atx.4.mdx, markup.heading.atx.4.mdx punctuation.definition.heading.mdx, markup.heading.heading-3.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6e3a1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.5.markdown punctuation.definition.heading.markdown, heading.5.markdown, markup.heading.atx.5.mdx, markup.heading.atx.5.mdx punctuation.definition.heading.mdx, markup.heading.heading-4.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>heading.6.markdown punctuation.definition.heading.markdown, heading.6.markdown, markup.heading.atx.6.mdx, markup.heading.atx.6.mdx punctuation.definition.heading.mdx, markup.heading.heading-5.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.bold</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f38ba8</string>
+ <key>fontStyle</key>
+ <string>bold</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.italic</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f38ba8</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.strikethrough</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6adc8</string>
+ <key>fontStyle</key>
+ <string>strikethrough</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown auto links</string>
+ <key>scope</key>
+ <string>punctuation.definition.link, markup.underline.link</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown links</string>
+ <key>scope</key>
+ <string>text.html.markdown punctuation.definition.link.title, string.other.link.title.markdown, markup.link, punctuation.definition.constant.markdown, constant.other.reference.link.markdown, markup.substitution.attribute-reference</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#b4befe</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown code spans</string>
+ <key>scope</key>
+ <string>punctuation.definition.raw.markdown, markup.inline.raw.string.markdown, markup.raw.block.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6e3a1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown triple backtick language identifier</string>
+ <key>scope</key>
+ <string>fenced_code.block.language</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89dceb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown triple backticks</string>
+ <key>scope</key>
+ <string>markup.fenced_code.block punctuation.definition, markup.raw support.asciidoc</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#9399b2</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown quotes</string>
+ <key>scope</key>
+ <string>markup.quote, punctuation.definition.quote.begin</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5c2e7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown separators</string>
+ <key>scope</key>
+ <string>meta.separator.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Markdown list bullets</string>
+ <key>scope</key>
+ <string>punctuation.definition.list.begin.markdown, markup.list.bullet</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Nix attribute names</string>
+ <key>scope</key>
+ <string>entity.other.attribute-name.multipart.nix, entity.other.attribute-name.single.nix</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Nix parameter names</string>
+ <key>scope</key>
+ <string>variable.parameter.name.nix</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Nix interpolated parameter names</string>
+ <key>scope</key>
+ <string>meta.embedded variable.parameter.name.nix</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#b4befe</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Nix paths</string>
+ <key>scope</key>
+ <string>string.unquoted.path.nix</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5c2e7</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHP Attributes</string>
+ <key>scope</key>
+ <string>support.attribute.builtin, meta.attribute.php</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHP Parameters (needed for the leading dollar sign)</string>
+ <key>scope</key>
+ <string>meta.function.parameters.php punctuation.definition.variable.php</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eba0ac</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHP Constants (null, __FILE__, etc.)</string>
+ <key>scope</key>
+ <string>constant.language.php</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHP functions</string>
+ <key>scope</key>
+ <string>text.html.php support.function</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89dceb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>PHPdoc keywords</string>
+ <key>scope</key>
+ <string>keyword.other.phpdoc.php</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python argument functions reset to text, otherwise they inherit blue from function-call</string>
+ <key>scope</key>
+ <string>support.variable.magic.python, meta.function-call.arguments.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python double underscore functions</string>
+ <key>scope</key>
+ <string>support.function.magic.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89dceb</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python `self` keyword</string>
+ <key>scope</key>
+ <string>variable.parameter.function.language.special.self.python, variable.language.special.self.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f38ba8</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python keyword flow/logical (for ... in)</string>
+ <key>scope</key>
+ <string>keyword.control.flow.python, keyword.operator.logical.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python storage type</string>
+ <key>scope</key>
+ <string>storage.type.function.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python function support</string>
+ <key>scope</key>
+ <string>support.token.decorator.python, meta.function.decorator.identifier.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89dceb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python function calls</string>
+ <key>scope</key>
+ <string>meta.function-call.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python function decorators</string>
+ <key>scope</key>
+ <string>entity.name.function.decorator.python, punctuation.definition.decorator.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python placeholder reset to normal string</string>
+ <key>scope</key>
+ <string>constant.character.format.placeholder.other.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5c2e7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python exception &amp; builtins such as exit()</string>
+ <key>scope</key>
+ <string>support.type.exception.python, support.function.builtin.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>entity.name.type</string>
+ <key>scope</key>
+ <string>support.type.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>python constants (True/False)</string>
+ <key>scope</key>
+ <string>constant.language.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Arguments accessed later in the function body</string>
+ <key>scope</key>
+ <string>meta.indexed-name.python, meta.item-access.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eba0ac</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python f-strings/binary/unicode storage types</string>
+ <key>scope</key>
+ <string>storage.type.string.python</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6e3a1</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Python type hints</string>
+ <key>scope</key>
+ <string>meta.function.parameters.python</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex string begin/end in JS/TS</string>
+ <key>scope</key>
+ <string>string.regexp punctuation.definition.string.begin, string.regexp punctuation.definition.string.end</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5c2e7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex anchors (^, $)</string>
+ <key>scope</key>
+ <string>keyword.control.anchor.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex regular string match</string>
+ <key>scope</key>
+ <string>string.regexp.ts</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex group parenthesis &amp; backreference (\1, \2, \3, ...)</string>
+ <key>scope</key>
+ <string>punctuation.definition.group.regexp, keyword.other.back-reference.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#a6e3a1</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex character class []</string>
+ <key>scope</key>
+ <string>punctuation.definition.character-class.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex character classes (\d, \w, \s)</string>
+ <key>scope</key>
+ <string>constant.other.character-class.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5c2e7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex range</string>
+ <key>scope</key>
+ <string>constant.other.character-class.range.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5e0dc</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex quantifier</string>
+ <key>scope</key>
+ <string>keyword.operator.quantifier.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex constant/numeric</string>
+ <key>scope</key>
+ <string>constant.character.numeric.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Regex lookaheads, negative lookaheads, lookbehinds, negative lookbehinds</string>
+ <key>scope</key>
+ <string>punctuation.definition.group.no-capture.regexp, meta.assertion.look-ahead.regexp, meta.assertion.negative-look-ahead.regexp</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust attribute</string>
+ <key>scope</key>
+ <string>meta.annotation.rust, meta.annotation.rust punctuation, meta.attribute.rust, punctuation.definition.attribute.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust attribute strings</string>
+ <key>scope</key>
+ <string>meta.attribute.rust string.quoted.double.rust, meta.attribute.rust string.quoted.single.char.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust keyword</string>
+ <key>scope</key>
+ <string>entity.name.function.macro.rules.rust, storage.type.module.rust, storage.modifier.rust, storage.type.struct.rust, storage.type.enum.rust, storage.type.trait.rust, storage.type.union.rust, storage.type.impl.rust, storage.type.rust, storage.type.function.rust, storage.type.type.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust u/i32, u/i64, etc.</string>
+ <key>scope</key>
+ <string>entity.name.type.numeric.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ <key>fontStyle</key>
+ <string/>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust generic</string>
+ <key>scope</key>
+ <string>meta.generic.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust impl</string>
+ <key>scope</key>
+ <string>entity.name.impl.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust module</string>
+ <key>scope</key>
+ <string>entity.name.module.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust trait</string>
+ <key>scope</key>
+ <string>entity.name.trait.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust struct</string>
+ <key>scope</key>
+ <string>storage.type.source.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust union</string>
+ <key>scope</key>
+ <string>entity.name.union.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust enum member</string>
+ <key>scope</key>
+ <string>meta.enum.rust storage.type.source.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust macro</string>
+ <key>scope</key>
+ <string>support.macro.rust, meta.macro.rust support.function.rust, entity.name.function.macro.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust lifetime</string>
+ <key>scope</key>
+ <string>storage.modifier.lifetime.rust, entity.name.type.lifetime</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust string formatting</string>
+ <key>scope</key>
+ <string>string.quoted.double.rust constant.other.placeholder.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5c2e7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust return type generic</string>
+ <key>scope</key>
+ <string>meta.function.return-type.rust meta.generic.rust storage.type.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust functions</string>
+ <key>scope</key>
+ <string>meta.function.call.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust angle brackets</string>
+ <key>scope</key>
+ <string>punctuation.brackets.angle.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89dceb</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust constants</string>
+ <key>scope</key>
+ <string>constant.other.caps.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust function parameters</string>
+ <key>scope</key>
+ <string>meta.function.definition.rust variable.other.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#eba0ac</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust closure variables</string>
+ <key>scope</key>
+ <string>meta.function.call.rust variable.other.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust self</string>
+ <key>scope</key>
+ <string>variable.language.self.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f38ba8</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Rust metavariable names</string>
+ <key>scope</key>
+ <string>variable.other.metavariable.name.rust, meta.macro.metavariable.rust keyword.operator.macro.dollar.rust</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5c2e7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell shebang</string>
+ <key>scope</key>
+ <string>comment.line.shebang, comment.line.shebang punctuation.definition.comment, comment.line.shebang, punctuation.definition.comment.shebang.shell, meta.shebang.shell</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5c2e7</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell shebang command</string>
+ <key>scope</key>
+ <string>comment.line.shebang constant.language</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell interpolated command</string>
+ <key>scope</key>
+ <string>meta.function-call.arguments.shell punctuation.definition.variable.shell, meta.function-call.arguments.shell punctuation.section.interpolation, meta.function-call.arguments.shell punctuation.definition.variable.shell, meta.function-call.arguments.shell punctuation.section.interpolation</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f38ba8</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell interpolated command variable</string>
+ <key>scope</key>
+ <string>meta.string meta.interpolation.parameter.shell variable.other.readwrite</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ <key>fontStyle</key>
+ <string>italic</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>source.shell punctuation.section.interpolation, punctuation.definition.evaluation.backticks.shell</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell EOF</string>
+ <key>scope</key>
+ <string>entity.name.tag.heredoc.shell</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Shell quoted variable</string>
+ <key>scope</key>
+ <string>string.quoted.double.shell variable.other.normal.shell</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cdd6f4</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON Keys</string>
+ <key>scope</key>
+ <string>source.json meta.mapping.key string</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>JSON key surrounding quotes</string>
+ <key>scope</key>
+ <string>source.json meta.mapping.key punctuation.definition.string.begin, source.json meta.mapping.key punctuation.definition.string.end</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#9399b2</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.synopsis.man, markup.heading.title.man, markup.heading.other.man, markup.heading.env.man</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#cba6f7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.commands.man</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#89b4fa</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.env.man</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f5c2e7</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>name</key>
+ <string>Man page options</string>
+ <key>scope</key>
+ <string>entity.name</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#94e2d5</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.1.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f38ba8</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.2.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#fab387</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>scope</key>
+ <string>markup.heading.markdown</string>
+ <key>settings</key>
+ <dict>
+ <key>foreground</key>
+ <string>#f9e2af</string>
+ </dict>
+ </dict>
+ </array>
+ </dict>
+</plist> \ No newline at end of file
diff --git a/.config/betterlockscreen/betterlockscreenrc b/.config/betterlockscreen/betterlockscreenrc
deleted file mode 100644
index cd9a6db..0000000
--- a/.config/betterlockscreen/betterlockscreenrc
+++ /dev/null
@@ -1,50 +0,0 @@
-# ~/.config/betterlockscreenrc
-
-# default options
-display_on=0
-span_image=false
-lock_timeout=300
-fx_list=(dim blur dimblur pixel dimpixel color)
-dim_level=40
-blur_level=1
-pixel_scale=10,1000
-solid_color=333333
-wallpaper_cmd="feh --bg-fill"
-quiet=true
-
-# default theme
-loginbox=00000066
-loginshadow=00000000
-locktext="UwU may I has ur password"
-font="sans-serif"
-ringcolor=C678DDff
-insidecolor=00000000
-separatorcolor=00000000
-ringvercolor=FB6F92ff
-insidevercolor=00000000
-ringwrongcolor=FB6F92ff
-insidewrongcolor=00000000
-timecolor=ffffffff
-time_format="%H:%M:%S"
-greetercolor=ffffffff
-layoutcolor=C678DDff
-keyhlcolor=C678DDff
-bshlcolor=C678DDff
-veriftext="" # "aanh ur password is shooo big"
-verifcolor=ffffffff
-wrongtext="you are not my senpai"
-wrongcolor=FB6F92ff
-modifcolor=FB6F92ff
-bgcolor=000000ff
-
-
-#
-# expert options (change at own risk!)
-#
-
-# i3lockcolor_bin="i3lock-color" # Manually set command for i3lock-color
-# suspend_command="systemctl suspend" # Manually change action e.g. hibernate/suspend-command
-
-# i3lock-color - custom arguments
-# lockargs=() # overwriting default "(-n)"
-# lockargs+=(--ignore-empty-password) # appending new argument
diff --git a/.config/doom/config.el b/.config/doom/config.el
index 2388d3b..00502ef 100644
--- a/.config/doom/config.el
+++ b/.config/doom/config.el
@@ -35,7 +35,12 @@
(setq doom-font "Source Code Pro:size=16")
-(setq doom-theme 'doom-one)
+;(setq doom-theme 'doom-one)
+(setq doom-theme 'catppuccin)
+
+; transparent background
+(set-frame-parameter nil 'alpha-background 85)
+(add-to-list 'default-frame-alist '(alpha-background . 85))
;; This determines the style of line numbers in effect. If set to `nil', line
;; numbers are disabled. For relative line numbers, set this to `relative'.
diff --git a/.config/doom/packages.el b/.config/doom/packages.el
index 364e6e9..ead1529 100644
--- a/.config/doom/packages.el
+++ b/.config/doom/packages.el
@@ -1,3 +1,5 @@
+(package! catppuccin-theme)
+
;; -*- no-byte-compile: t; -*-
;;; $DOOMDIR/packages.el
diff --git a/.config/fish/config.fish b/.config/fish/config.fish
index 46d9e35..5e21637 100644
--- a/.config/fish/config.fish
+++ b/.config/fish/config.fish
@@ -22,7 +22,9 @@ if status is-interactive
set -x RUST_SRC_PATH $HOME/.cargo
set -x GOPATH $HOME/.gopath
- set -x QT_QPA_PLATFORMTHEME "gtk2"
+
+ set -x QT_QPA_PLATFORMTHEME "qt5ct"
+ set -x QT_QPA_PLATFORMTHEME_QT6 "qt6ct"
# PATH for different languages
fish_add_path $GOPATH/bin
@@ -43,5 +45,5 @@ if status is-interactive
# disable greeting
set fish_greeting
fish_ssh_agent
- cowsay -f sus "amogus" | lolcat
+ cowsay -f sus "kernel panic? Or was it sabotage?" | lolcat
end
diff --git a/.config/lemon.go b/.config/lemon.go
deleted file mode 100644
index f873d2b..0000000
--- a/.config/lemon.go
+++ /dev/null
@@ -1,212 +0,0 @@
-package main
-
-import (
- "bufio"
- "fmt"
- "os"
- "time"
- "golang.org/x/sys/unix"
- "os/exec"
- "strconv"
- "strings"
- "io/ioutil"
-)
-
-var (
- data, connectedWiFi, memPercentage, cpuTemp, cpuPercentage, volumeLevel string
- batteryLevel, chargingStatus string
- text string = "\n"
- moduleColor0, moduleColor1 string = "#9b1bed", "#ff0aa3"
-)
-
-func dataLoop() {
- for {
- data = getData()
- time.Sleep(time.Second / 10)
- }
-}
-
-func stdinLoop() {
- reader := bufio.NewReader(os.Stdin)
- for {
- text, _ = reader.ReadString('\n')
- }
-}
-
-// to update modules every 5 seconds
-func fiveSecLoop() {
- for {
- memPercentage = getMemUsage()
- cpuTemp = getCPUTemp()
- cpuPercentage = getCPUUsage()
-
- time.Sleep(time.Second * 5)
- }
-}
-
-// to update modules every 10 seconds
-func tenSecLoop() {
- for {
- connectedWiFi = getWiFiName()
- chargingStatus, batteryLevel = getBatteryInfo()
-
- time.Sleep(time.Second * 10)
- }
-}
-
-// very creative name
-// used to update modules like volume, etc
-// don't want lag on those modules!
-func veryFastLoop() {
- for {
- volumeLevel = getVolumeLevel()
- time.Sleep(time.Second / 10)
- }
-}
-
-func main() {
- go dataLoop()
- go stdinLoop()
- go fiveSecLoop()
- go tenSecLoop()
- go veryFastLoop()
-
- for {
- fmt.Print(data + text)
- time.Sleep(time.Second / 10)
- }
-}
-
-func getData() string {
- time := "%{F" + moduleColor0 + "} " + getTime() + "%{F-} "
- wifiName := "%{F" + moduleColor1 + "} WiFI: " + connectedWiFi + "%{F-} "
- rootFree := "%{F" + moduleColor0 + "} / " + getDisk("/") + "%%{F-} "
- homeFree := "%{F" + moduleColor1 + "} /home " + getDisk("/home") + "%%{F-} "
- hddFree := "%{F" + moduleColor0 + "} /hdd " + getDisk("/hdd") + "%%{F-} "
- cpuUsage := "%{F" + moduleColor1 + "} CPU: " + cpuPercentage + "%%{F-} "
- cpuTemp := "%{F" + moduleColor0 + "} TEMP: " + cpuTemp + "%{F-} "
- memUsage := "%{F" + moduleColor1 + "} MEM: " + memPercentage + "%{F-} "
-
- volume := "%{F" + moduleColor0 + "}"
- if volumeLevel != "muted" {
- volume = volume + "} VOL: " + volumeLevel + "%{F-} "
- } else {
- volume = volume + "} MUTED%{F-} "
- }
-
- // shows battery level in different color
- // depending on charging status
- // hidden when full
- var battery string
- btlvl, _ := strconv.Atoi(batteryLevel)
- if btlvl < 100 {
- col := moduleColor1
- if chargingStatus == "Charging" { col = moduleColor0 }
- battery = fmt.Sprintf("%%{F%s} BATT: %s%%{F-} ", col, batteryLevel)
- }
-
- // TODO add brightness (new)
- return time + wifiName + rootFree + homeFree + hddFree + cpuUsage + cpuTemp + "%{r}" + memUsage + battery
-}
-
-func getWiFiName() string {
- // script located in ~/.scripts/
- // look at github.com/MikunoNaka/dots
- cmd := exec.Command("get_wifi_name.sh")
- name, _ := cmd.Output()
- return string(name)
-}
-
-func getMemUsage() string {
- // script located in ~/.scripts/
- // look at github.com/MikunoNaka/dots
- cmd := exec.Command("ram_usage.sh")
- usage, _ := cmd.Output()
- return string(usage)
-}
-
-
-func getCPUTemp() string {
- // script located in ~/.scripts/
- // look at github.com/MikunoNaka/dots
- cmd := exec.Command("cpu_temp.sh")
- temp, _ := cmd.Output()
- return string(temp)
-}
-
-func getVolumeLevel() string {
- // script located in ~/.scripts/
- // look at github.com/MikunoNaka/dots
- cmd := exec.Command("volume_level.sh")
- level, _ := cmd.Output()
- return string(level)
-}
-
-func getBatteryInfo() (string, string) {
- // scripts located in ~/.scripts/
- // look at github.com/MikunoNaka/dots
- statCmd := exec.Command("charging_status.sh")
- stat, _ := statCmd.Output()
-
- levelCmd := exec.Command("battery_level.sh")
- level, _ := levelCmd.Output()
-
- return string(stat), string(level)
-}
-
-// TODO: maybe add dates on click
-func getTime() string {
- now := time.Now()
- return now.Format(" 3:04 PM")
-}
-
-// TODO: maybe show percentages instead of free space
-func getDisk(mountPoint string) string {
- var stat unix.Statfs_t
- unix.Statfs(mountPoint, &stat)
-
- // this is witchcraft. I wrote this but I have -10000 idea how AND IF it works
- totalSize := float64(stat.Blocks) * float64(stat.Bsize) / 1073741824
- usedSpace := float64(stat.Bfree) * float64(stat.Bsize) / 1073741824
-
- return strconv.FormatFloat((100 - (usedSpace / totalSize) * 100), 'f', 0, 64)
-}
-
-func getCPUSample() (idle, total uint64) {
- contents, err := ioutil.ReadFile("/proc/stat")
- if err != nil {
- return
- }
- lines := strings.Split(string(contents), "\n")
- for _, line := range(lines) {
- fields := strings.Fields(line)
- if fields[0] == "cpu" {
- numFields := len(fields)
- for i := 1; i < numFields; i++ {
- val, err := strconv.ParseUint(fields[i], 10, 64)
- if err != nil {
- fmt.Println("Error: ", i, fields[i], err)
- }
- total += val // tally up all the numbers to get total ticks
- if i == 4 { // idle is the 5th field in the cpu line
- idle = val
- }
- }
- return
- }
- }
- return
-}
-
-func getCPUUsage() string {
- idle0, total0 := getCPUSample()
- time.Sleep(3 * time.Second)
- idle1, total1 := getCPUSample()
-
- idleTicks := float64(idle1 - idle0)
- totalTicks := float64(total1 - total0)
- cpuUsage := 100 * (totalTicks - idleTicks) / totalTicks
-
- return strconv.Itoa(int(cpuUsage))
-}
-
diff --git a/.config/lemonblocks/config.txt b/.config/lemonblocks/config.txt
deleted file mode 100644
index 62991c3..0000000
--- a/.config/lemonblocks/config.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-0,5,NULL,/usr/bin/lbscripts/volume.sh,r,NULL,130F23,fe6c69,pamixer -t; killall lemonblocks -5,NULL,pavucontrol && killall lemonblocks -5,pamixer -i 5; killall lemonblocks -5,pamixer -d 5; killall lemonblocks -5, ,
-5,4,NULL,/usr/bin/lbscripts/cpu_temp.sh,r,NULL,130F23,1045cc,NULL,NULL,NULL,NULL,NULL, ,
-5,3,NULL,/usr/bin/lbscripts/cpu_load.sh,r,NULL,130F23,7410cc,st -e htop,NULL,NULL,NULL,NULL, ,
-5,2,NULL,/usr/bin/lbscripts/mem_usage.sh,r,NULL,130F23,10cc8e,NULL,NULL,NULL,NULL,NULL, ,
-30,1,NULL,/usr/bin/lbscripts/date.sh,r,NULL,130F23,6C71C4,NULL,NULL,NULL,NULL,NULL, ,
diff --git a/.config/lemonblocks/modules/cpu_load.sh b/.config/lemonblocks/modules/cpu_load.sh
deleted file mode 100755
index 1a677a9..0000000
--- a/.config/lemonblocks/modules/cpu_load.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-
-read cpu a b c previdle rest < /proc/stat
-prevtotal=$((a+b+c+previdle))
-sleep 0.5
-read cpu a b c idle rest < /proc/stat
-total=$((a+b+c+idle))
-cpu=$((100*( (total-prevtotal) - (idle-previdle) ) / (total-prevtotal) ))
-
-printf " CPU:%s%% " $cpu
diff --git a/.config/lemonblocks/modules/cpu_temp.sh b/.config/lemonblocks/modules/cpu_temp.sh
deleted file mode 100755
index a5286ad..0000000
--- a/.config/lemonblocks/modules/cpu_temp.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-CEL=$'\xc2\xb0C'
-temp=$( cat /sys/devices/virtual/thermal/thermal_zone0/temp )
-temp=`expr $temp / 1000`
-printf " TEMP:$temp$CEL "
diff --git a/.config/lemonblocks/modules/date.sh b/.config/lemonblocks/modules/date.sh
deleted file mode 100755
index dcd0681..0000000
--- a/.config/lemonblocks/modules/date.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-date=$(date +"%d %b(%A) %H:%M")
-printf " $date "
diff --git a/.config/lemonblocks/modules/mem_usage.sh b/.config/lemonblocks/modules/mem_usage.sh
deleted file mode 100755
index 6b939eb..0000000
--- a/.config/lemonblocks/modules/mem_usage.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/bash
-
-mem=$(free -m | grep Mem: | awk '{print$3 / $2 * 100}')
-printf " MEM: %.0f%% " $mem
diff --git a/.config/lemonblocks/modules/volume.sh b/.config/lemonblocks/modules/volume.sh
deleted file mode 100755
index a0843dd..0000000
--- a/.config/lemonblocks/modules/volume.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-
-printf " VOL:$(pamixer --get-volume-human)% "
-# if [ $volume_level == "muted" ]; then
- # printf "%{F#ff0058}VOL: $(pamixer --get-volume)%{F-}"
-# else
- # printf "VOL: $volume_level"
-# fi
-
diff --git a/.config/lemonblocks/start.sh b/.config/lemonblocks/start.sh
deleted file mode 100755
index 0537b89..0000000
--- a/.config/lemonblocks/start.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/bash
-
-CLICKABLE_AREAS=8
-PANEL_WIDTH=566
-PANEL_HEIGHT=21
-PANEL_HORIZONTAL_OFFSET=800
-PANEL_VERTICAL_OFFSET=0
-PANEL_FONT="Source Han Sans JP:size=10"
-PANEL_ICON_FONT="RobotoMono Nerd Font:style=Regular:size=15"
-COLOR_DEFAULT_FG="#FFFFFF"
-COLOR_DEFAULT_BG="#171520"
-UNDERLINE_HEIGHT=3
-PANEL_WM_NAME="lemon"
-
-# Kill potential instances of lemonblocks
-#killall "lemonbar"
-killall "lemonblocks"
-
-# Make sure the named pipe already exists
-mkfifo /tmp/lemonblockspipe
-
-# start xmonad status lemonbar
-# Start lemonbar
-cat "/tmp/lemonblockspipe" | lemonbar -b -a "$CLICKABLE_AREAS" \
- -g "$PANEL_WIDTH"x"$PANEL_HEIGHT"+"$PANEL_HORIZONTAL_OFFSET"+"$PANEL_VERTICAL_OFFSET" \
- -o -3 -f "$PANEL_FONT" -o 0 -f "$PANEL_ICON_FONT" -F "$COLOR_DEFAULT_FG" -B "$COLOR_DEFAULT_BG" \
- -u "$UNDERLINE_HEIGHT" -n "$PANEL_WM_NAME" | bash &
-
-sleep 0.5
-
-# Make sure lemonbar is hidden below a fullscreen window
-## Bspwm
-# wid=$(xdo id -a "$PANEL_WM_NAME")
-# xdo above -t "$(xdo id -N Bspwm -n root | sort | head -n 1)" "$wid"
-
-if [ $# -eq 0 ]
-then
- lemonblocks
-else
- ./bin/lemonblocks
-fi
diff --git a/.config/luastatus-scripts-dwm/alsa-gauge.lua b/.config/luastatus-scripts-dwm/alsa-gauge.lua
new file mode 100644
index 0000000..966e625
--- /dev/null
+++ b/.config/luastatus-scripts-dwm/alsa-gauge.lua
@@ -0,0 +1,18 @@
+local GAUGE_NCHARS = 10
+
+local function mk_gauge(level, full, empty)
+ local nfull = math.floor(level * GAUGE_NCHARS + 0.5)
+ return full:rep(nfull) .. empty:rep(GAUGE_NCHARS - nfull)
+end
+
+widget = {
+ plugin = 'alsa',
+ cb = function(t)
+ local level = (t.vol.cur - t.vol.min) / (t.vol.max - t.vol.min)
+ if t.mute then
+ return mk_gauge(level, '×', '—')
+ else
+ return mk_gauge(level, '●', '○')
+ end
+ end,
+}
diff --git a/.config/luastatus-scripts-dwm/alsa.lua b/.config/luastatus-scripts-dwm/alsa.lua
new file mode 100644
index 0000000..054a806
--- /dev/null
+++ b/.config/luastatus-scripts-dwm/alsa.lua
@@ -0,0 +1,11 @@
+widget = {
+ plugin = 'alsa',
+ cb = function(t)
+ if t.mute then
+ return '[mute]'
+ else
+ local percent = (t.vol.cur - t.vol.min) / (t.vol.max - t.vol.min) * 100
+ return string.format('[%3d%%]', math.floor(0.5 + percent))
+ end
+ end,
+}
diff --git a/.config/luastatus-scripts-dwm/backlight.lua b/.config/luastatus-scripts-dwm/backlight.lua
new file mode 100644
index 0000000..37267ed
--- /dev/null
+++ b/.config/luastatus-scripts-dwm/backlight.lua
@@ -0,0 +1,18 @@
+-- Note that this widget only shows backlight level when it changes.
+widget = luastatus.require_plugin('backlight-linux').widget{
+ cb = function(level)
+ if level ~= nil then
+ local brightness = level * 100
+
+ local icon = "󰃠"
+ if brightness < 30 then
+ icon = "󰃞"
+ elseif brightness < 70 then
+ icon = "󰃟"
+ end
+
+ io.write(level * 100)
+ return string.format(' %s %3.0f%%', icon, brightness)
+ end
+ end,
+}
diff --git a/.config/luastatus-scripts-dwm/battery.lua b/.config/luastatus-scripts-dwm/battery.lua
new file mode 100644
index 0000000..377a30e
--- /dev/null
+++ b/.config/luastatus-scripts-dwm/battery.lua
@@ -0,0 +1,53 @@
+widget = luastatus.require_plugin('battery-linux').widget{
+ period = 2,
+ cb = function(t)
+ icon = ""
+ if t.status == "Discharging" then
+ if t.capacity < 10 then
+ icon = "󰁺"
+ elseif t.capacity < 20 then
+ icon = "󰁻"
+ elseif t.capacity < 30 then
+ icon = "󰁼"
+ elseif t.capacity < 40 then
+ icon = "󰁽"
+ elseif t.capacity < 50 then
+ icon = "󰁾"
+ elseif t.capacity < 60 then
+ icon = "󰁿"
+ elseif t.capacity < 70 then
+ icon = "󰂀"
+ elseif t.capacity < 80 then
+ icon = "󰂁"
+ elseif t.capacity < 90 then
+ icon = "󰂂"
+ else
+ icon = "󰁹"
+ end
+ else
+ if t.capacity < 10 then
+ icon = "󰢜"
+ elseif t.capacity < 20 then
+ icon = "󰂆"
+ elseif t.capacity < 30 then
+ icon = "󰂇"
+ elseif t.capacity < 40 then
+ icon = "󰂈"
+ elseif t.capacity < 50 then
+ icon = "󰢝"
+ elseif t.capacity < 60 then
+ icon = "󰂉"
+ elseif t.capacity < 70 then
+ icon = "󰢞"
+ elseif t.capacity < 80 then
+ icon = "󰂊"
+ elseif t.capacity < 90 then
+ icon = "󰂋"
+ else
+ icon = "󰂅"
+ end
+ end
+
+ return string.format('%s %3d%% ', icon, t.capacity)
+ end,
+}
diff --git a/.config/luastatus-scripts-dwm/bluetooth.lua b/.config/luastatus-scripts-dwm/bluetooth.lua
new file mode 100644
index 0000000..baf4b8c
--- /dev/null
+++ b/.config/luastatus-scripts-dwm/bluetooth.lua
@@ -0,0 +1,178 @@
+-- A widget to display currently connected and paired bluetooth devices.
+-- To change output format modify reprint_devices function.
+
+separator = " "
+
+-- Object paths look like /org/bluez/hci0/dev_XX_XX_XX_XX_XX_XX/somethingsomething
+function get_device_mac_address(device_object_path)
+ return device_object_path:gsub("/.*/dev_", ""):gsub("/.*", ""):gsub("_", ":")
+end
+
+-- For reference bluetoothctl devices output looks like that:
+-- Device XX:XX:XX:XX:XX:XX JBL T450BT
+-- Device YY:YY:YY:YY:YY:YY Redmi 8
+--
+-- Function returns mac addresses of all devices.
+function get_devices()
+ local devices = {}
+ local handle = io.popen(string.format("bluetoothctl devices"))
+ for line in handle:lines() do
+ table.insert(devices, string.match(line, "Device ([%x:]+)"))
+ end
+ handle:close()
+ return devices
+end
+
+function get_power_state()
+ local handle = io.popen(string.format("bluetoothctl show"))
+ local power_state = false
+ for line in handle:lines() do
+ local state = string.match(line, "^%s*PowerState:%s*(%w+)")
+ if state then
+ if state == "off" then
+ power_state = false
+ else
+ power_state = true
+ end
+ break
+ end
+ end
+ handle:close()
+
+ return power_state
+end
+
+-- For reference bluetoothctl info output looks like that:
+-- Device XX:XX:XX:XX:XX:XX (public)
+-- Name: JBL T450BT
+-- Alias: JBL T450BT
+-- Class: 0xFFFFFFFF
+-- Icon: audio-card
+-- Paired: yes
+-- Trusted: yes
+-- Blocked: no
+-- Connected: yes
+-- LegacyPairing: no
+-- UUID: Headset (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
+-- ...
+-- UUID: Handsfree (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
+--
+-- Given this input function returns a following table:
+-- [alias] string JBL T450BT
+-- [blocked] boolean false
+-- [class] string 0x00240404
+-- [connected] boolean true
+-- [icon] string audio
+-- [legacypairing] boolean false
+-- [name] string JBL T450BT
+-- [paired] boolean true
+-- [trusted] boolean true
+function get_device_info(mac_address)
+ if mac_address == nil then
+ mac_address = ""
+ end
+ local device_info = {}
+ local handle = io.popen(string.format("bluetoothctl info %s", mac_address))
+ for line in handle:lines() do
+ local key, value = string.match(line, "(%w+): (.*)")
+ -- Filter junk
+ if key ~= "UUID" and key ~= nil and value ~= nil then
+ key = string.lower(key)
+ if key ~= "name" and key ~= "alias" and key ~= "icon" then
+ if value == "yes" then
+ value = true
+ end
+ if value == "no" then
+ value = false
+ end
+ end
+ device_info[key] = value
+ end
+ end
+ handle:close()
+ return device_info
+end
+
+devices = {}
+
+function reprint_devices(power_state)
+ if power_state then
+ local t = {}
+ for mac_address, device in pairs(devices) do
+ -- table.insert(t, string.format("󰂱 %s", device["alias"]))
+ return "󰂱 "
+ end
+ if next(t) == nil then
+ return "󰂯"
+ else
+ return table.concat(t, separator)
+ end
+ else
+ return "󰂲"
+ end
+end
+
+widget = {
+ plugin = "dbus",
+ opts = {
+ greet = true,
+ -- https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/device-api.txt
+ signals = {
+ {
+ sender = "org.bluez",
+ interface = "org.freedesktop.DBus.Properties",
+ signal = "PropertiesChanged",
+ arg0 = "org.bluez.Device1",
+ bus = "system"
+ }, {
+ sender = "org.bluez",
+ interface = "org.freedesktop.DBus.Properties",
+ signal = "PropertiesChanged",
+ arg0 = "org.bluez.Adapter1",
+ bus = "system"
+ }
+ }
+ },
+ cb = function(t)
+ local power_state = false
+ if t.what == "hello" then
+ power_state = get_power_state()
+ local mac_addresses = get_devices()
+ for i, mac_address in pairs(mac_addresses) do
+ local device = get_device_info(mac_address)
+ if device["connected"] and device["paired"] then
+ devices[mac_address] = device
+ end
+ end
+ elseif t.what == "signal" then
+ -- For reference message from dbus looks like that:
+ -- table
+ -- [1] string org.bluez.Device1
+ -- [2] table
+ -- [2] [1] table
+ -- [2] [1] [1] string SomethingSomething
+ -- [2] [1] [2] boolean false
+ -- [2] [2] table
+ -- [2] [2] [1] string Connected
+ -- [2] [2] [2] boolean true
+ -- [3] table
+ if t.signal == "PropertiesChanged" then
+ power_state = get_power_state()
+ for i, message in pairs(t.parameters[2]) do
+ if message[1] == "Connected" or message[1] == "Paired" then
+ local mac_address = get_device_mac_address(t.object_path)
+ if message[2] then
+ local device = get_device_info(mac_address)
+ if device["paired"] then
+ devices[mac_address] = device
+ end
+ else
+ devices[mac_address] = nil
+ end
+ end
+ end
+ end
+ end
+ return " " .. reprint_devices(power_state)
+ end
+}
diff --git a/.config/luastatus-scripts-dwm/cpu-temperature.lua b/.config/luastatus-scripts-dwm/cpu-temperature.lua
new file mode 100644
index 0000000..38b25d0
--- /dev/null
+++ b/.config/luastatus-scripts-dwm/cpu-temperature.lua
@@ -0,0 +1,45 @@
+paths = {}
+do
+ -- Replace "*" with "[^0]*" in the first glob if your zeroeth thermal sensor is virtual (and
+ -- thus useless):
+ local f = assert(io.popen([[
+ #for file in /sys/class/thermal/thermal_zone*/temp
+ #do
+ # [ -e "$file" ] || break
+ # printf "%s\n" "$file"
+ #done
+for dir in /sys/class/hwmon/*
+do
+ [ -e "$dir" ] || break
+ IFS= read -r monitor_name < "$dir"/name
+ # You may have more than one hardware monitor enabled
+ # If so, disable ones that are not needed
+ case "$monitor_name" in
+ coretemp|fam15h_power|k10temp)
+ printf "%s\n" "$dir"/temp*_input
+ esac
+done
+]]))
+ for p in f:lines() do
+ table.insert(paths, p)
+ end
+ f:close()
+end
+
+widget = {
+ plugin = 'timer',
+ opts = {period = 2},
+ cb = function()
+ for _, p in ipairs(paths) do
+ local f = assert(io.open(p, 'r'))
+ local temp = f:read('*number') / 1000
+ local icon = ""
+ if temp > 55 then
+ icon = ""
+ elseif temp > 80 then
+ icon = ""
+ end
+ return string.format('%s %.0f°C', icon, temp)
+ end
+ end,
+}
diff --git a/.config/luastatus-scripts-dwm/cpu-usage.lua b/.config/luastatus-scripts-dwm/cpu-usage.lua
new file mode 100644
index 0000000..90c75ed
--- /dev/null
+++ b/.config/luastatus-scripts-dwm/cpu-usage.lua
@@ -0,0 +1,7 @@
+widget = luastatus.require_plugin('cpu-usage-linux').widget{
+ cb = function(usage)
+ if usage ~= nil then
+ return string.format('%5.1f%%', usage * 100)
+ end
+ end,
+}
diff --git a/.config/luastatus-scripts-dwm/file-contents.lua b/.config/luastatus-scripts-dwm/file-contents.lua
new file mode 100644
index 0000000..1ed02ac
--- /dev/null
+++ b/.config/luastatus-scripts-dwm/file-contents.lua
@@ -0,0 +1,7 @@
+widget = luastatus.require_plugin('file-contents-linux').widget{
+ filename = "/tmp/bar_status",
+ cb = function(f)
+ -- show the first line of the file
+ return string.format(" %s", f:read('*line'))
+ end,
+}
diff --git a/.config/luastatus-scripts-dwm/fs.lua b/.config/luastatus-scripts-dwm/fs.lua
new file mode 100644
index 0000000..e780dc6
--- /dev/null
+++ b/.config/luastatus-scripts-dwm/fs.lua
@@ -0,0 +1,14 @@
+widget = {
+ plugin = 'fs',
+ opts = {
+ paths = {'/', '/home'},
+ },
+ cb = function(t)
+ local res = {}
+ for k, v in pairs(t) do
+ table.insert(res, string.format('%s %.0f%%', k,
+ (1 - v.avail / v.total) * 100))
+ end
+ return res
+ end,
+}
diff --git a/.config/luastatus-scripts-dwm/ip.lua b/.config/luastatus-scripts-dwm/ip.lua
new file mode 100644
index 0000000..37bc43a
--- /dev/null
+++ b/.config/luastatus-scripts-dwm/ip.lua
@@ -0,0 +1,20 @@
+widget = {
+ plugin = 'network-linux',
+ cb = function(t)
+ local r = {}
+ for iface, params in pairs(t) do
+ local addr = params.ipv4
+ if addr then
+ -- strip out "label" from the interface name
+ iface = iface:gsub(':.*', '')
+ -- strip out "zone index" from the address
+ addr = addr:gsub('%%.*', '')
+
+ if iface ~= 'lo' then
+ r[#r + 1] = string.format('[%s: %s]', iface, addr)
+ end
+ end
+ end
+ return r
+ end,
+}
diff --git a/.config/luastatus-scripts-dwm/mem-usage.lua b/.config/luastatus-scripts-dwm/mem-usage.lua
new file mode 100644
index 0000000..1c34219
--- /dev/null
+++ b/.config/luastatus-scripts-dwm/mem-usage.lua
@@ -0,0 +1,7 @@
+widget = luastatus.require_plugin('mem-usage-linux').widget{
+ timer_opts = {period = 2},
+ cb = function(t)
+ local used_kb = t.total.value - t.avail.value
+ return string.format('  %3.2f GiB ', used_kb / 1024 / 1024)
+ end,
+}
diff --git a/.config/luastatus-scripts-dwm/mpd.lua b/.config/luastatus-scripts-dwm/mpd.lua
new file mode 100644
index 0000000..32cddc6
--- /dev/null
+++ b/.config/luastatus-scripts-dwm/mpd.lua
@@ -0,0 +1,32 @@
+-- you need to install 'utf8' module (e.g. with luarocks) if using Lua <=5.2.
+utf8 = require 'utf8'
+
+titlewidth = 40
+
+widget = {
+ plugin = 'mpd',
+ cb = function(t)
+ if t.what == 'update' then
+ local title
+ if t.song.Title then
+ title = t.song.Title
+ if t.song.Artist then
+ title = t.song.Artist .. ': ' .. title
+ end
+ else
+ title = t.song.file or ''
+ end
+ title = (utf8.len(title) <= titlewidth)
+ and title
+ or utf8.sub(title, 1, titlewidth - 1) .. '…'
+
+ return string.format('%s %s',
+ ({play = '▶', pause = '‖', stop = '■'})[t.status.state],
+ title
+ )
+ else
+ -- 'connecting' or 'error'
+ return t.what
+ end
+ end
+}
diff --git a/.config/luastatus-scripts-dwm/network.lua b/.config/luastatus-scripts-dwm/network.lua
new file mode 100644
index 0000000..4ec808a
--- /dev/null
+++ b/.config/luastatus-scripts-dwm/network.lua
@@ -0,0 +1,72 @@
+local MIN_DBM, MAX_DBM = -90, -20
+local NGAUGE = 5
+local COLOR_DIM = '#709080'
+
+local function round(x)
+ return math.floor(x + 0.5)
+end
+
+local function make_wifi_gauge(dbm)
+ if dbm < MIN_DBM then dbm = MIN_DBM end
+ if dbm > MAX_DBM then dbm = MAX_DBM end
+ local nbright = round(NGAUGE * (1 - 0.7 * (MAX_DBM - dbm) / (MAX_DBM - MIN_DBM)))
+
+ if nbright == 0 then
+ return "󰤭"
+ elseif nbright == 1 then
+ return "󰤯"
+ elseif nbright == 2 then
+ return "󰤟"
+ elseif nbright == 3 then
+ return "󰤢"
+ elseif nbright == 4 then
+ return "󰤥"
+ else
+ return "󰤨"
+ end
+end
+
+widget = {
+ plugin = 'network-linux',
+ opts = {
+ wireless = true,
+ timeout = 10,
+ },
+ cb = function(t)
+ if not t then
+ return nil
+ end
+
+ local x = ""
+ local sep = " "
+
+ if t.eno1 then
+ if t.eno1.ipv4 or t.eno1.ipv6 then
+ x = ""
+ end
+ end
+
+ if t.enp5s0f3u1 then
+ if x ~= "" then
+ x = x .. sep
+ end
+ if t.enp5s0f3u1.ipv4 or t.enp5s0f3u1.ipv6 then
+ x = x .. "󱎔"
+ end
+ end
+
+ if t.wlo1.wireless then
+ if x ~= "" then
+ x = x .. sep
+ end
+ if t.wlo1.wireless.signal_dbm then
+ x = x .. make_wifi_gauge(t.wlo1.wireless.signal_dbm)
+ else
+ x = x .. "󰤭"
+ end
+ end
+
+ x = " " .. x .. " "
+ return x
+ end,
+}
diff --git a/.config/luastatus-scripts-dwm/pulse-gauge.lua b/.config/luastatus-scripts-dwm/pulse-gauge.lua
new file mode 100644
index 0000000..dbc5c67
--- /dev/null
+++ b/.config/luastatus-scripts-dwm/pulse-gauge.lua
@@ -0,0 +1,18 @@
+local GAUGE_NCHARS = 10
+
+local function mk_gauge(level, full, empty)
+ local nfull = math.floor(level * GAUGE_NCHARS + 0.5)
+ return full:rep(nfull) .. empty:rep(GAUGE_NCHARS - nfull)
+end
+
+widget = {
+ plugin = 'pulse',
+ cb = function(t)
+ local level = t.cur / t.norm
+ if t.mute then
+ return mk_gauge(level, '×', '—')
+ else
+ return mk_gauge(level, '●', '○')
+ end
+ end,
+}
diff --git a/.config/luastatus-scripts-dwm/pulse.lua b/.config/luastatus-scripts-dwm/pulse.lua
new file mode 100644
index 0000000..59b73e8
--- /dev/null
+++ b/.config/luastatus-scripts-dwm/pulse.lua
@@ -0,0 +1,10 @@
+widget = {
+ plugin = 'pulse',
+ cb = function(t)
+ if t.mute then
+ return '[mute]'
+ end
+ local percent = (t.cur / t.norm) * 100
+ return string.format('[%3d%%]', math.floor(0.5 + percent))
+ end,
+}
diff --git a/.config/luastatus-scripts-dwm/time-date.lua b/.config/luastatus-scripts-dwm/time-date.lua
new file mode 100644
index 0000000..8fce7a1
--- /dev/null
+++ b/.config/luastatus-scripts-dwm/time-date.lua
@@ -0,0 +1,58 @@
+months = {'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'}
+wday = {'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'}
+widget = {
+ plugin = 'timer',
+ cb = function()
+ local d = os.date('*t')
+
+ if d.hour < 12 then
+ suffix = "a.m."
+ else
+ suffix = "p.m."
+ d.hour = d.hour - 12
+ end
+
+ local date_suffix = "th"
+ if not (d.day % 100 >= 11 and d.day % 100 <= 13) then
+ local last_digit = d.day % 10
+ if last_digit == 1 then
+ date_suffix = "st"
+ elseif last_digit == 2 then
+ date_suffix = "nd"
+ elseif last_digit == 3 then
+ date_suffix = "rd"
+ end
+ end
+
+ local time_icon = ""
+ if d.hour == 0 or d.hour == 12 then
+ time_icon = "󱑖"
+ elseif d.hour == 1 then
+ time_icon = "󱑋"
+ elseif d.hour == 2 then
+ time_icon = "󱑌"
+ elseif d.hour == 3 then
+ time_icon = "󱑍"
+ elseif d.hour == 4 then
+ time_icon = "󱑎"
+ elseif d.hour == 5 then
+ time_icon = "󱑏"
+ elseif d.hour == 6 then
+ time_icon = "󱑐"
+ elseif d.hour == 7 then
+ time_icon = "󱑑"
+ elseif d.hour == 8 then
+ time_icon = "󱑒"
+ elseif d.hour == 9 then
+ time_icon = "󱑓"
+ elseif d.hour == 10 then
+ time_icon = "󱑔"
+ elseif d.hour == 11 then
+ time_icon = "󱑕"
+ end
+
+ return {
+ string.format('󰃭 %d%s %s %d (%s) %s %d:%02d %s ', d.day, date_suffix, months[d.month], d.year, wday[d.wday], time_icon, d.hour, d.min, suffix),
+ }
+ end,
+}
diff --git a/.config/luastatus-scripts-dwm/tor.lua b/.config/luastatus-scripts-dwm/tor.lua
new file mode 100644
index 0000000..db97225
--- /dev/null
+++ b/.config/luastatus-scripts-dwm/tor.lua
@@ -0,0 +1,13 @@
+-- Trivial but somewhat useful widget showing if the Tor daemon is running.
+
+widget = {
+ plugin = 'timer',
+ opts = {period = 5},
+ cb = function()
+ local f = io.open('/var/run/tor/tor.pid', 'r')
+ if f then
+ f:close()
+ return '[TOR]'
+ end
+ end,
+}
diff --git a/.config/luastatus-scripts-dwm/weather.lua b/.config/luastatus-scripts-dwm/weather.lua
new file mode 100644
index 0000000..d626689
--- /dev/null
+++ b/.config/luastatus-scripts-dwm/weather.lua
@@ -0,0 +1,67 @@
+-- you need to install 'luasec' module (e.g. with luarocks)
+-- you can look up all available flags here: https://github.com/chubin/wttr.in#one-line-output
+
+local https = require('ssl.https')
+local ltn12 = require('ltn12')
+
+-- All the arguments except for 'url' may be absent or nil; default method is GET.
+-- Returns: code (integer), body (string), headers (table), status (string).
+function request(url, headers, method, body)
+ local out_body = {}
+ local is_ok, code_or_errmsg, out_headers, status = https.request(
+ {
+ url = url,
+ sink = ltn12.sink.table(out_body),
+ redirect = false,
+ cafile = '/etc/ssl/certs/ca-certificates.crt',
+ verify = 'peer',
+ method = method,
+ headers = headers,
+ },
+ body)
+ assert(is_ok, code_or_errmsg)
+ return code_or_errmsg, table.concat(out_body), out_headers, status
+end
+
+-- Arguments are the same to those of 'request'.
+-- Returns: body (string), headers (table).
+function request_check_code(...)
+ local code, body, headers, status = request(...)
+ assert(code == 200, string.format('HTTP %s %s', code, status))
+ return body, headers
+end
+
+function urlencode(s)
+ return string.gsub(s, '[^-_.~a-zA-Z0-9]', function(c)
+ return string.format('%%%02X', string.byte(c))
+ end)
+end
+
+local BASE_URL = 'wttr.in'
+local LANG = 'en'
+local LOCATION = ''
+
+function get_weather(format)
+ -- encoding is needed to allow usage of special use characters
+ format = urlencode(format)
+ local url = string.format('https://%s.%s/%s?format=%s', LANG, BASE_URL, LOCATION, format)
+ local is_ok, body = pcall(request_check_code, url)
+ if is_ok then
+ return body:gsub("\n", "")
+ else
+ return nil
+ end
+end
+
+widget = {
+ plugin = 'timer',
+ opts = {period = 15 * 60},
+ cb = function()
+ local text = get_weather('%l: %C %t(%f)')
+ if text == nil then
+ luastatus.plugin.push_period(60) -- retry in 60 seconds
+ text = '......'
+ end
+ return text
+ end,
+}
diff --git a/.config/luastatus-scripts-dwm/xkb.lua b/.config/luastatus-scripts-dwm/xkb.lua
new file mode 100644
index 0000000..358f0d7
--- /dev/null
+++ b/.config/luastatus-scripts-dwm/xkb.lua
@@ -0,0 +1,17 @@
+widget = {
+ plugin = 'xkb',
+ cb = function(t)
+ if t.name then
+ local base_layout = t.name:match('[^(]+')
+ if base_layout == 'gb' or base_layout == 'us' then
+ return '[En]'
+ elseif base_layout == 'ru' then
+ return '[Ru]'
+ else
+ return '[' .. base_layout:sub(1, 1):upper() .. base_layout:sub(2) .. ']'
+ end
+ else
+ return '[? ID ' .. t.id .. ']'
+ end
+ end,
+}
diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim
index 0ae0bf0..9dfcdc0 100644
--- a/.config/nvim/init.vim
+++ b/.config/nvim/init.vim
@@ -1,33 +1,31 @@
call plug#begin('~/.local/share/nvim/plugged')
-
-" basic
Plug 'itchyny/lightline.vim'
Plug 'Yggdroot/indentLine'
-" Plug 'romgrk/doom-one.vim'
-Plug 'MikunoNaka/doom-one.vim'
-
+Plug 'catppuccin/nvim', { 'as': 'catppuccin' }
+Plug 'nvim-lualine/lualine.nvim'
+Plug 'nvim-tree/nvim-web-devicons'
call plug#end()
-
" line numbers
set number
set nu
-" colorscheme config
-colorscheme doom-one
+" disable word wrapping
+set nowrap
+
+colorscheme catppuccin
set termguicolors
syntax enable
+highlight Normal ctermbg=NONE guibg=NONE
+highlight NormalNC ctermbg=NONE guibg=NONE
-" remove vim status because lightline replaces it
-set noshowmode
-
-" lightline config
-" colorscheme wombat for lightline
-let g:lightline = {
- \ 'colorscheme': 'darcula'
- \ }
-
-
+lua << END
+require('lualine').setup {
+ options = {
+ theme = "catppuccin-mocha",
+ }
+}
+END
" for tab stop
filetype plugin indent on
@@ -38,23 +36,3 @@ set tabstop=2
set softtabstop=2
" when indenting with '>', use 2 spaces width
set shiftwidth=2
-
-" mouse support for visual, etc
-set mouse=a
-
-" disable word wrapping
-set nowrap
-
-
-" copy/paste from clipboard
-" Copy to clipboard
-vnoremap <leader>y "+y
-nnoremap <leader>Y "+yg_
-nnoremap <leader>y "+y
-nnoremap <leader>yy "+yy
-
-" Paste from clipboard
-nnoremap <leader>p "+p
-nnoremap <leader>P "+P
-vnoremap <leader>p "+p
-vnoremap <leader>P "+P
diff --git a/.config/obs-studio/themes/Catppuccin.obt b/.config/obs-studio/themes/Catppuccin.obt
new file mode 100644
index 0000000..4d64a60
--- /dev/null
+++ b/.config/obs-studio/themes/Catppuccin.obt
@@ -0,0 +1,1872 @@
+@OBSThemeMeta {
+ name: 'Catppuccin';
+ id: 'com.obsproject.Catppuccin';
+ author: 'Xurdejl';
+ dark: 'true';
+}
+
+@OBSThemeVars {
+ --palette_window: var(--ctp_mantle);
+ --palette_windowText: var(--ctp_subtext0);
+
+ --palette_base: var(--ctp_mantle);
+ --palette_alternateBase: var(--ctp_crust);
+
+ --palette_text: var(--ctp_text);
+
+ --palette_button: var(--ctp_surface0);
+ --palette_buttonText: var(--ctp_subtext0);
+
+ --palette_brightText: var(--ctp_subtext0);
+
+ --palette_light: var(--ctp_surface0);
+ --palette_mid: var(--ctp_base);
+ --palette_dark: var(--ctp_mantle);
+ --palette_shadow: var(--ctp_crust);
+
+ --palette_primary: var(--ctp_surface1);
+ --palette_primaryLight: var(--ctp_blue);
+ --palette_primaryDark: var(--ctp_crust);
+
+ --palette_highlight: var(--ctp_blue);
+ --palette_highlightText: var(--ctp_subtext0);
+
+ --palette_text: var(--ctp_text);
+ --palette_link: var(--ctp_rosewater);
+ --palette_linkVisited: var(--ctp_flamingo);
+
+ --palette_windowText_disabled: var(--ctp_overlay1);
+ --palette_text_disabled: var(--ctp_overlay1);
+ --palette_button_disabled: var(--ctp_base);
+
+ --palette_buttonText_disabled: var(--ctp_mantle);
+ --palette_brightText_disabled: var(--ctp_mantle);
+
+ --palette_text_inactive: var(--ctp_subtext0);
+
+ --palette_highlight_inactive: var(--ctp_crust);
+ --palette_highlightText_inactive: var(--ctp_text);
+
+ /* Layout */
+ /* Configurable Values */
+ --font_base_value: 10; /* TODO: Min 8, Max 12, Step 1 */
+ --spacing_base_value: 4; /* TODO: Min 2, Max 7, Step 1 */
+ --padding_base_value: 4; /* TODO: Min 0.25, Max 10, Step 2 */
+
+ --border_highlight: "transparent"; /* TODO: Better Accessibility focus state */
+ /* TODO: Move Accessibilty Colors to Theme config system */
+
+ /* OS Fixes */
+ --os_mac_font_base_value: 12;
+
+ --font_base: calc(1pt * var(--font_base_value));
+ --font_small: calc(0.9pt * var(--font_base_value));
+ --font_large: calc(1.1pt * var(--font_base_value));
+ --font_xlarge: calc(1.5pt * var(--font_base_value));
+
+ --font_heading: calc(2.5pt * var(--font_base_value));
+
+ --icon_base: calc(6px + var(--font_base_value));
+
+ --spacing_base: calc(0.5px * var(--spacing_base_value));
+ --spacing_large: calc(1px * var(--spacing_base_value));
+ --spacing_small: calc(0.25px * var(--spacing_base_value));
+ --spacing_title: 4px;
+
+ --padding_base: calc(0.5px * var(--padding_base_value));
+ --padding_large: calc(1px * var(--padding_base_value));
+ --padding_xlarge: calc(1.75px * var(--padding_base_value));
+ --padding_small: calc(0.25px * var(--padding_base_value));
+
+ --padding_wide: calc(8px + calc(2 * var(--padding_base_value)));
+ --padding_menu: calc(4px + calc(2 * var(--padding_base_value)));
+
+ --padding_base_border: calc(var(--padding_base) + 1px);
+
+ --spinbox_button_height: calc(var(--input_height_half) - 1px);
+
+ --volume_slider: calc(calc(4px + var(--font_base_value)) / 4);
+ --volume_slider_box: calc(var(--volume_slider) * 4);
+ --volume_slider_label: calc(var(--volume_slider_box) * 2);
+
+ --scrollbar_size: 12px;
+ --settings_scrollbar_size: calc(var(--scrollbar_size) + 9px);
+
+ /* Inputs / Controls */
+ --border_radius: 4px;
+ --border_radius_small: 2px;
+ --border_radius_large: 6px;
+
+ --input_font_scale: calc(var(--font_base_value) * 2.2);
+ --input_font_padding: calc(var(--padding_base_value) * 2);
+
+ --input_height_base: calc(var(--input_font_scale) + var(--input_font_padding));
+ --input_padding: var(--padding_large);
+ --input_height: calc(var(--input_height_base) - calc(var(--input_padding) * 2));
+ --input_height_half: calc(var(--input_height_base) / 2);
+
+ --spacing_input: var(--spacing_base);
+}
+
+/* --------------------- */
+/* General Styling Hints */
+
+/* Backgrounds */
+
+.bg_window {
+ background-color: var(--ctp_base);
+}
+
+.bg-base {
+ background-color: palette(base);
+}
+
+.text-heading {
+ font-size: var(--font_heading);
+ font-weight: bold;
+}
+
+.text-large {
+ font-size: var(--font_large);
+}
+
+.text-bright {
+ color: var(--ctp_surface0);
+}
+
+.text-muted {
+ color: var(--ctp_overlay1);
+}
+
+.text-warning {
+ color: var(--ctp_peach);
+}
+
+.text-danger {
+ color: var(--ctp_maroon);
+}
+
+.text-success {
+ color: var(--ctp_green);
+}
+
+.frame-notice {
+ background: var(--ctp_crust);
+ border-radius: var(--border_radius);
+ padding: var(--padding_xlarge) var(--padding_large);
+}
+
+.frame-notice QLabel {
+ padding: var(--padding_large) 0px;
+}
+
+/* Icon Overrides */
+
+.icon-plus {
+ qproperty-icon: url(theme:Dark/plus.svg);
+}
+
+.icon-minus {
+ qproperty-icon: url(theme:Dark/minus.svg);
+}
+
+.icon-trash {
+ qproperty-icon: url(theme:Dark/trash.svg);
+}
+
+.icon-clear {
+ qproperty-icon: url(theme:Dark/entry-clear.svg);
+}
+
+.icon-gear {
+ qproperty-icon: url(theme:Dark/settings/general.svg);
+}
+
+.icon-dots-vert {
+ qproperty-icon: url(theme:Dark/dots-vert.svg);
+}
+
+.icon-refresh {
+ qproperty-icon: url(theme:Dark/refresh.svg);
+}
+
+.icon-cogs {
+ qproperty-icon: url(theme:Dark/cogs.svg);
+}
+
+.icon-touch {
+ qproperty-icon: url(theme:Dark/interact.svg);
+}
+
+.icon-up {
+ qproperty-icon: url(theme:Dark/up.svg);
+}
+
+.icon-down {
+ qproperty-icon: url(theme:Dark/down.svg);
+}
+
+.icon-pause {
+ qproperty-icon: url(theme:Dark/media-pause.svg);
+}
+
+.icon-filter {
+ qproperty-icon: url(theme:Dark/filter.svg);
+}
+
+.icon-revert {
+ qproperty-icon: url(theme:Dark/revert.svg);
+}
+
+.icon-save {
+ qproperty-icon: url(theme:Dark/save.svg);
+}
+
+/* Media icons */
+
+.icon-media-play {
+ qproperty-icon: url(theme:Dark/media/media_play.svg);
+}
+
+.icon-media-pause {
+ qproperty-icon: url(theme:Dark/media/media_pause.svg);
+}
+
+.icon-media-restart {
+ qproperty-icon: url(theme:Dark/media/media_restart.svg);
+}
+
+.icon-media-stop {
+ qproperty-icon: url(theme:Dark/media/media_stop.svg);
+}
+
+.icon-media-next {
+ qproperty-icon: url(theme:Dark/media/media_next.svg);
+}
+
+.icon-media-prev {
+ qproperty-icon: url(theme:Dark/media/media_previous.svg);
+}
+
+/* Default widget style, we override only what is needed. */
+
+QWidget {
+ alternate-background-color: palette(base);
+ color: palette(text);
+ selection-background-color: var(--ctp_selection_background);
+ selection-color: palette(text);
+ font-size: var(--font_base);
+ font-family: 'Open Sans', '.AppleSystemUIFont', Helvetica, Arial, 'MS Shell Dlg', sans-serif;
+}
+
+QWidget:disabled {
+ color: var(--ctp_overlay1);
+}
+
+/* Container windows */
+
+QDialog,
+QMainWindow,
+QStatusBar,
+QMenuBar,
+QMenu {
+ background-color: var(--ctp_base);
+}
+
+/* macOS Separator Fix */
+
+QMainWindow::separator {
+ background: transparent;
+ width: var(--spacing_large);
+ height: var(--spacing_large);
+ margin: 0px;
+}
+
+QMainWindow::separator:hover {
+ border: 1px solid transparent;
+ margin: 1px;
+}
+
+/* General Widgets */
+
+QLabel,
+QGroupBox,
+QCheckBox {
+ background: transparent;
+}
+
+QComboBox,
+QCheckBox,
+QPushButton,
+QSpinBox,
+QDoubleSpinBox {
+ margin-top: var(--spacing_input);
+ margin-bottom: var(--spacing_input);
+}
+
+QListWidget QWidget,
+SceneTree QWidget,
+SourceTree QWidget {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+* [frameShape="1"],
+* [frameShape="2"],
+* [frameShape="3"],
+* [frameShape="4"],
+* [frameShape="5"],
+* [frameShape="6"] {
+ border: 1px solid palette(dark);
+}
+
+
+/* Misc */
+
+QAbstractItemView {
+ background-color: palette(base);
+}
+
+QToolTip {
+ background-color: palette(base);
+ color: palette(text);
+ border: none;
+}
+
+/* Context Menu */
+
+QMenu::icon {
+ left: 4px;
+}
+
+QMenu::separator {
+ background: var(--ctp_overlay0);
+ height: 1px;
+ margin: var(--spacing_base) var(--spacing_large);
+}
+
+QMenu::item:disabled {
+ color: var(--ctp_overlay1);
+ background: transparent;
+}
+
+QMenu::right-arrow {
+ image: url(theme:Dark/expand.svg);
+}
+
+/* Top Menu Bar Items */
+QMenuBar::item {
+ background-color: transparent;
+}
+
+QMenuBar::item:selected {
+ background: var(--ctp_surface1);
+}
+
+/* Item Lists */
+QListWidget {
+ border-radius: var(--border_radius);
+}
+
+QListWidget::item {
+ color: palette(text);
+}
+
+QListWidget,
+QMenu,
+SceneTree,
+SourceTree {
+ padding: var(--spacing_base);
+}
+
+QListWidget::item,
+SourceTreeItem,
+SceneTree::item {
+ padding: var(--padding_large);
+}
+
+QMenu::item {
+ padding: var(--padding_large) var(--padding_menu);
+ padding-right: 20px;
+}
+
+QListWidget::item,
+SourceTreeItem,
+QMenu::item,
+SceneTree::item {
+ border-radius: var(--border_radius);
+ color: palette(text);
+ border: 1px solid transparent;
+}
+
+SourceTree::item {
+ border-radius: var(--border_radius);
+ color: palette(text);
+}
+
+QMenu::item:selected,
+QListWidget::item:selected,
+SceneTree::item:selected,
+SourceTree::item:selected {
+ background-color: var(--ctp_surface1);
+}
+
+QMenu::item:hover,
+QListWidget::item:hover,
+SceneTree::item:hover,
+SourceTree::item:hover,
+QMenu::item:selected:hover,
+QListWidget::item:selected:hover,
+SceneTree::item:selected:hover,
+SourceTree::item:selected:hover {
+ background-color: var(--ctp_surface0);
+ color: palette(text);
+}
+
+QMenu::item:focus,
+QListWidget::item:focus,
+SceneTree::item:focus,
+SourceTree::item:focus,
+QMenu::item:selected:focus,
+QListWidget::item:selected:focus,
+SceneTree::item:selected:focus,
+SourceTree::item:selected:focus {
+ border: 1px solid var(--border_highlight);
+}
+
+QListWidget::item:disabled,
+QListWidget::item:disabled:hover,
+SourceTree::item:disabled,
+SourceTree::item:disabled:hover,
+SceneTree::item:disabled,
+SceneTree::item:disabled:hover {
+ background: transparent;
+ color: var(--ctp_overlay1);
+}
+
+QListWidget QLineEdit,
+SceneTree QLineEdit,
+SourceTree QLineEdit {
+ padding: 0;
+ padding-bottom: 1px;
+ margin: 0;
+ border: 1px solid var(--ctp_text);
+ border-radius: var(--border_radius);
+}
+
+QListWidget QLineEdit:focus,
+SceneTree QLineEdit:focus,
+SourceTree QLineEdit:focus {
+ border: 1px solid var(--ctp_text);
+}
+
+/* Settings QList */
+
+OBSBasicSettings QListWidget {
+ border-radius: var(--border_radius);
+ padding: var(--spacing_base);
+}
+
+OBSBasicSettings QListWidget::item {
+ border-radius: var(--border_radius);
+ padding: var(--padding_large);
+}
+
+OBSBasicSettings QScrollBar:vertical {
+ width: var(--settings_scrollbar_size);
+ margin-left: 9px;
+}
+
+OBSBasicSettings QScrollBar:horizontal {
+ height: var(--settings_scrollbar_size);
+ margin-top: 9px;
+}
+
+/* Settings properties view */
+OBSBasicSettings #PropertiesContainer {
+ background-color: palette(dark);
+}
+
+/* Dock Widget */
+OBSDock > QWidget {
+ background: palette(dark);
+ border-bottom-left-radius: var(--border_radius);
+ border-bottom-right-radius: var(--border_radius);
+ border: 1px solid var(--ctp_mantle);
+ border-top: none;
+}
+
+#transitionsFrame {
+ padding: var(--padding_large);
+}
+
+OBSDock QLabel {
+ background: transparent;
+}
+
+QDockWidget {
+ font-size: var(--font_base);
+ font-weight: bold;
+
+ titlebar-close-icon: url(theme:Dark/close.svg);
+ titlebar-normal-icon: url(theme:Dark/popout.svg);
+}
+
+QDockWidget::title {
+ text-align: left;
+ background-color: palette(base);
+ padding: var(--padding_large);
+ border-top-left-radius: var(--border_radius);
+ border-top-right-radius: var(--border_radius);
+}
+
+QDockWidget::close-button,
+QDockWidget::float-button {
+ border: none;
+ border-radius: var(--border_radius);
+ background: transparent;
+ margin-right: 1px;
+}
+
+QDockWidget::close-button:hover,
+QDockWidget::float-button:hover {
+ background: var(--ctp_surface1);
+}
+
+QDockWidget::close-button:pressed,
+QDockWidget::float-button:pressed {
+ padding: 1px -1px -1px 1px;
+}
+
+QScrollArea {
+ border-radius: var(--border_radius);
+}
+
+/* Qt enforces a padding inside its status bar, so we
+ * oversize it and use margin to crunch it back down
+ */
+OBSBasicStatusBar {
+ margin-top: 4px;
+ border-top: 1px solid var(--ctp_mantle);
+ background: palette(dark);
+}
+
+StatusBarWidget > QFrame {
+ margin-top: 1px;
+ border: 0px solid transparent;
+ border-left-width: 1px;
+ padding: 0px 8px 2px;
+}
+
+/* Group Box */
+
+QGroupBox {
+ background: palette(dark);
+ border-radius: var(--border_radius);
+ padding-top: var(--input_height_base);
+ padding-bottom: var(--padding_large);
+ font-weight: bold;
+ margin-bottom: var(--spacing_large);
+}
+
+QGroupBox::title {
+ subcontrol-origin: margin;
+ left: var(--spacing_title);
+ top: var(--spacing_title);
+}
+
+
+/* ScrollBars */
+
+QScrollBar {
+ background-color: var(--ctp_crust);
+ margin: 0px;
+ border-radius: var(--border_radius);
+}
+
+::corner {
+ background-color: palette(window);
+ border: none;
+}
+
+QScrollBar:vertical {
+ width: var(--scrollbar_size);
+}
+
+QScrollBar::add-line:vertical,
+QScrollBar::sub-line:vertical {
+ border: none;
+ background: none;
+ height: 0px;
+}
+
+QScrollBar::up-arrow:vertical,
+QScrollBar::down-arrow:vertical,
+QScrollBar::add-page:vertical,
+QScrollBar::sub-page:vertical {
+ border: none;
+ background: none;
+ color: none;
+}
+
+QScrollBar:horizontal {
+ height: var(--scrollbar_size);
+}
+
+QScrollBar::add-line:horizontal,
+QScrollBar::sub-line:horizontal {
+ border: none;
+ background: none;
+ width: 0px;
+}
+
+QScrollBar::left-arrow:horizontal,
+QScrollBar::right-arrow:horizontal,
+QScrollBar::add-page:horizontal,
+QScrollBar::sub-page:horizontal {
+ border: none;
+ background: none;
+ color: none;
+}
+
+QScrollBar::handle {
+ background-color: var(--ctp_surface0);
+ margin: 2px;
+ border-radius: var(--border_radius_small);
+ border: 1px solid var(--ctp_surface0);
+}
+
+QScrollBar::handle:hover {
+ background-color: var(--ctp_surface1);
+ border-color: var(--ctp_surface1);
+}
+
+QScrollBar::handle:pressed {
+ background-color: var(--ctp_surface0);
+ border-color: var(--ctp_surface0);
+}
+
+QScrollBar::handle:vertical {
+ min-height: 32px;
+}
+
+QScrollBar::handle:horizontal {
+ min-width: 32px;
+}
+
+QScrollBar::handle:disabled {
+ background: transparent;
+ border-color: transparent;
+}
+
+/* Source Context Bar */
+
+#contextContainer {
+ background-color: palette(dark);
+ margin-top: 4px;
+ border-radius: var(--border_radius);
+}
+
+#contextContainer QPushButton {
+ padding-left: 12px;
+ padding-right: 12px;
+}
+
+QPushButton#sourcePropertiesButton {
+ qproperty-icon: url(theme:Dark/settings/general.svg);
+ icon-size: var(--icon_base);
+}
+
+QPushButton#sourceFiltersButton {
+ qproperty-icon: url(theme:Dark/filter.svg);
+ icon-size: var(--icon_base);
+}
+
+/* Scenes and Sources toolbar */
+
+QToolBar {
+ background-color: transparent;
+ border: none;
+ margin: var(--spacing_base) 0px;
+}
+
+QToolBar QToolBarSeparator {
+ background-color: var(--ctp_surface0);
+}
+
+QToolBarExtension {
+ background: palette(button);
+ min-width: 12px;
+ max-width: 12px;
+ padding: 4px 0px;
+ margin-left: 0px;
+
+ qproperty-icon: url(theme:Dark/dots-vert.svg);
+}
+
+
+/* Tab Widget */
+
+/* The tab widget frame */
+QTabWidget::pane {
+ border-top: 4px solid palette(base);
+}
+
+QTabWidget::tab-bar {
+ alignment: left;
+}
+
+QTabBar QToolButton {
+ background: var(--ctp_surface0);
+ border: none;
+}
+
+QTabBar::tab:top {
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+}
+
+QTabBar::tab:bottom {
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+}
+
+QTabBar::tab {
+ background: palette(dark);
+ color: palette(text);
+ border: none;
+ padding: 8px 12px;
+ min-width: 50px;
+ margin: 1px 0px;
+ margin-right: 2px;
+ border: 1px solid var(--ctp_overlay0);
+}
+
+QTabBar::tab:pressed {
+ background: var(--ctp_crust);
+}
+
+QTabBar::tab:hover {
+ background: var(--ctp_surface1);
+ border-color: var(--ctp_overlay0);
+ color: palette(text);
+}
+
+QTabBar::tab:focus {
+ border-color: var(--ctp_overlay0);
+}
+
+QTabBar::tab:selected {
+ background: var(--ctp_surface0);
+ color: palette(text);
+}
+
+QTabBar::tab:top {
+ border-bottom: 0px solid transparent;
+ margin-bottom: 0px;
+}
+
+QTabBar::tab:bottom {
+ border-top: 0px solid transparent;
+ margin-top: 0px;
+}
+
+QTabBar QToolButton {
+ background: palette(base);
+ min-width: 16px;
+ padding: 0px;
+}
+
+/* ComboBox */
+
+QComboBox,
+QDateTimeEdit {
+ background-color: var(--ctp_surface0);
+ border: 1px solid var(--ctp_surface0);
+ border-radius: var(--border_radius);
+ padding: var(--padding_large) var(--padding_large);
+ padding-left: 10px;
+}
+
+QComboBox QAbstractItemView::item:selected,
+QComboBox QAbstractItemView::item:hover {
+ background-color: var(--ctp_crust);
+}
+
+QComboBox:hover,
+QComboBox:focus,
+QDateTimeEdit:hover,
+QDateTimeEdit:selected {
+ border-color: var(--ctp_overlay0);
+}
+
+QComboBox::drop-down,
+QDateTimeEdit::drop-down {
+ border: none;
+ border-left: 1px solid var(--ctp_crust);
+ width: var(--input_height);
+}
+
+QComboBox::down-arrow,
+QDateTimeEdit::down-arrow {
+ qproperty-alignment: AlignTop;
+ image: url(theme:Dark/collapse.svg);
+ width: 100%;
+}
+
+QComboBox:editable:hover {
+ background-color: var(--ctp_surface1);
+ border-color: var(--ctp_overlay0);
+}
+
+QComboBox:on,
+QDateTimeEdit:on,
+QComboBox:editable:focus {
+ background-color: var(--ctp_surface1);
+ border-color: var(--ctp_overlay0);
+}
+
+QComboBox::drop-down:editable,
+QDateTimeEdit::drop-down:editable {
+ border-top-right-radius: 4px;
+ border-bottom-right-radius: 4px;
+}
+
+QComboBox::down-arrow:editable,
+QDateTimeEdit::down-arrow:editable {
+ qproperty-alignment: AlignTop;
+ image: url(theme:Dark/collapse.svg);
+ width: 100%;
+}
+
+/* Textedits etc */
+
+QLineEdit,
+QTextEdit,
+QPlainTextEdit {
+ background-color: var(--ctp_surface0);
+ border-radius: var(--border_radius);
+ padding: var(--input_padding) var(--padding_small) var(--input_padding) var(--input_padding);
+ padding-left: 8px;
+ border: 1px solid var(--ctp_surface0);
+ height: var(--input_height);
+}
+
+QLineEdit:hover,
+QTextEdit:hover,
+QPlainTextEdit:hover {
+ background-color: palette(mid);
+ border-color: var(--ctp_surface2);
+}
+
+QLineEdit:focus,
+QTextEdit:focus,
+QPlainTextEdit:focus {
+ background-color: palette(mid);
+ border-color: var(--ctp_surface1);
+}
+
+QTextEdit:!editable,
+QTextEdit:!editable:hover,
+QTextEdit:!editable:focus {
+ background-color: var(--ctp_surface0);
+}
+
+/* Spinbox and doubleSpinbox */
+
+QSpinBox,
+QDoubleSpinBox {
+ background-color: var(--ctp_surface0);
+ border: 1px solid var(--ctp_surface0);
+ border-radius: var(--border_radius);
+ padding: var(--input_padding) 0px var(--input_padding) var(--input_padding);
+ padding-left: 8px;
+ max-height: var(--spinbox_button_height);
+}
+
+QSpinBox:hover,
+QDoubleSpinBox:hover {
+ background-color: palette(mid);
+ border-color: var(--ctp_surface2);
+}
+
+QSpinBox:focus,
+QDoubleSpinBox:focus {
+ background-color: palette(mid);
+ border-color: var(--ctp_surface1);
+}
+
+QSpinBox::up-button,
+QDoubleSpinBox::up-button {
+ subcontrol-origin: padding;
+ /* position at the top right corner */
+ subcontrol-position: top right;
+
+ width: var(--input_height);
+ border-left: 1px solid var(--ctp_crust);
+ border-bottom: 1px solid transparent;
+ border-radius: 0px;
+ border-top-right-radius: var(--border_radius_small);
+}
+
+QSpinBox::down-button,
+QDoubleSpinBox::down-button {
+ subcontrol-origin: padding;
+ /* position at the top right corner */
+ subcontrol-position: bottom right;
+
+ width: var(--input_height);
+ border-left: 1px solid var(--ctp_crust);
+ border-top: 1px solid transparent;
+ border-radius: 0px;
+ border-bottom-right-radius: var(--border_radius_small);
+}
+
+QSpinBox::up-button:hover,
+QSpinBox::down-button:hover,
+QDoubleSpinBox::up-button:hover,
+QDoubleSpinBox::down-button:hover {
+ background-color: var(--ctp_surface1);
+}
+
+QSpinBox::up-button:pressed,
+QSpinBox::down-button:pressed,
+QDoubleSpinBox::up-button:pressed,
+QDoubleSpinBox::down-button:pressed {
+ background-color: var(--ctp_crust);
+}
+
+QSpinBox::up-button:disabled,
+QSpinBox::up-button:off,
+QSpinBox::down-button:disabled,
+QSpinBox::down-button:off {
+ background-color: var(--ctp_crust);
+}
+
+QDoubleSpinBox::up-button:disabled,
+QDoubleSpinBox::up-button:off,
+QDoubleSpinBox::down-button:disabled,
+QDoubleSpinBox::down-button:off {
+ background-color: var(--ctp_crust);
+}
+
+QSpinBox::up-arrow,
+QDoubleSpinBox::up-arrow {
+ image: url(theme:Dark/up.svg);
+ width: 100%;
+ margin: 2px;
+}
+
+QSpinBox::down-arrow,
+QDoubleSpinBox::down-arrow {
+ image: url(theme:Dark/down.svg);
+ width: 100%;
+ padding: 2px;
+}
+
+/* Controls Dock */
+#controlsFrame {
+ padding: var(--padding_large);
+}
+
+#controlsFrame QPushButton {
+ margin: var(--spacing_base) var(--spacing_small);
+}
+
+#streamButton,
+#recordButton,
+#replayBufferButton,
+#broadcastButton {
+ padding: var(--padding_large);
+}
+
+#pauseRecordButton,
+#saveReplayButton,
+#virtualCamConfigButton {
+ padding: var(--padding_large) var(--padding_large);
+ width: var(--input_height);
+ max-width: var(--input_height);
+}
+
+/* Primary Control Button Checked Coloring */
+#streamButton:!hover:!pressed:checked,
+#recordButton:!hover:!pressed:checked,
+#replayBufferButton:!hover:!pressed:checked,
+#virtualCamButton:!hover:!pressed:checked,
+#modeSwitch:!hover:!pressed:checked,
+#broadcastButton:!hover:!pressed:checked {
+ background: var(--ctp_blue);
+ color: var(--ctp_crust);
+}
+
+/* Primary Control Button Hover Coloring */
+#streamButton:hover:!pressed:checked,
+#recordButton:hover:!pressed:checked,
+#replayBufferButton:!pressed:checked,
+#virtualCamButton:!pressed:checked,
+#modeSwitch:hover:!pressed:checked,
+#broadcastButton:hover:!pressed:checked {
+ background: var(--ctp_lavender);
+ color: var(--ctp_crust);
+}
+
+
+/* Buttons */
+
+QPushButton {
+ color: palette(text);
+ background-color: palette(button);
+ border-radius: var(--border_radius);
+ height: var(--input_height);
+ max-height: var(--input_height);
+ padding: var(--input_padding) var(--padding_wide);
+ icon-size: var(--icon_base);
+}
+
+QPushButton {
+ border: 1px solid palette(button);
+}
+
+QToolButton {
+ border: 1px solid palette(button);
+}
+
+QToolButton,
+.btn-tool {
+ background-color: palette(button);
+ padding: var(--padding_base) var(--padding_base);
+ margin: 0px var(--spacing_base);
+ border: 1px solid transparent;
+ border-radius: var(--border_radius);
+ icon-size: var(--icon_base);
+}
+
+QToolButton:last-child,
+.btn-tool:last-child {
+ margin-right: 0px;
+}
+
+QPushButton:hover,
+QPushButton:focus {
+ border-color: var(--ctp_surface1);
+}
+
+QPushButton:hover {
+ background-color: var(--ctp_surface1);
+}
+
+QToolButton:hover,
+QToolButton:focus,
+.btn-tool:hover,
+.btn-tool:focus,
+.indicator-mute::indicator:hover,
+.indicator-mute::indicator:focus {
+ border-color: var(--ctp_surface1);
+ background-color: var(--ctp_surface1);
+}
+
+QPushButton::flat {
+ background-color: var(--ctp_surface0);
+}
+
+QPushButton:checked {
+ background-color: var(--ctp_surface1);
+}
+
+QPushButton:checked:hover,
+QPushButton:checked:focus {
+ background-color: var(--ctp_surface1);
+}
+
+QToolButton:pressed,
+QToolButton:pressed:hover {
+ background-color: var(--ctp_crust);
+ border-color: var(--ctp_crust);
+}
+
+QPushButton:pressed,
+QPushButton:pressed:hover,
+.btn-tool:pressed,
+.btn-tool:pressed:hover {
+ background-color: var(--ctp_crust);
+ border-color: var(--ctp_crust);
+}
+
+QPushButton:disabled {
+ background-color: var(--ctp_crust);
+ border-color: var(--ctp_crust);
+}
+
+QToolButton:disabled,
+.btn-tool:disabled {
+ background-color: transparent;
+ border-color: transparent;
+}
+
+QPushButton::menu-indicator {
+ image: url(theme:Dark/down.svg);
+ subcontrol-position: right;
+ subcontrol-origin: padding;
+ width: 25px;
+}
+
+/* Sliders */
+
+QSlider::groove {
+ background-color: var(--ctp_surface0);
+ border: none;
+ border-radius: 2px;
+}
+
+QSlider::groove:horizontal {
+ height: 4px;
+}
+
+QSlider::groove:vertical {
+ width: 4px;
+}
+
+QSlider::sub-page:horizontal {
+ background-color: palette(highlight);
+ border-radius: 2px;
+}
+
+QSlider::sub-page:horizontal:disabled {
+ background-color: palette(window);
+ border-radius: 2px;
+}
+
+QSlider::add-page:horizontal:disabled {
+ background-color: var(--ctp_crust);
+ border-radius: 2px;
+}
+
+QSlider::add-page:vertical {
+ background-color: palette(highlight);
+ border-radius: 2px;
+}
+
+QSlider::add-page:vertical:disabled {
+ background-color: palette(window);
+ border-radius: 2px;
+}
+
+QSlider::sub-page:vertical:disabled {
+ background-color: var(--ctp_crust);
+ border-radius: 2px;
+}
+
+QSlider::handle {
+ background-color: palette(text);
+ border-radius: var(--border_radius);
+}
+
+QSlider::handle:horizontal {
+ height: 10px;
+ width: 20px;
+ /* Handle is placed by default on the contents rect of the groove. Expand outside the groove */
+ margin: -3px 0;
+}
+
+QSlider::handle:vertical {
+ width: 10px;
+ height: 20px;
+ /* Handle is placed by default on the contents rect of the groove. Expand outside the groove */
+ margin: 0 -3px;
+}
+
+QSlider::handle:hover {
+ background-color: var(--ctp_subtext1);
+}
+
+QSlider::handle:pressed {
+ background-color: var(--ctp_overlay1);
+}
+
+QSlider::handle:disabled {
+ background-color: var(--ctp_overlay1);
+}
+
+/* Volume Control */
+
+#stackedMixerArea QPushButton {
+ width: var(--icon_base);
+ height: var(--icon_base);
+ background-color: var(--ctp_surface0);
+ padding: var(--padding_base_border) var(--padding_base_border);
+ margin: 0px;
+ border: 1px solid transparent;
+ border-radius: var(--border_radius);
+ icon-size: var(--icon_base);
+}
+
+/* This is an incredibly cursed but necessary fix */
+#stackedMixerArea QPushButton:!hover {
+ background-color: palette(base);
+}
+
+#stackedMixerArea QPushButton:hover {
+ background-color: var(--ctp_surface1);
+ border-color: var(--ctp_surface1);
+}
+
+#stackedMixerArea QPushButton:pressed {
+ background-color: var(--ctp_crust);
+}
+
+#stackedMixerArea {
+ border: none;
+ padding: 0px;
+ border-bottom: 1px solid palette(window);
+}
+
+VolControl #volLabel {
+ padding: var(--padding_base) 0px var(--padding_base);
+ text-align: center;
+ font-size: var(--font_base);
+ color: var(--ctp_overlay1);
+}
+
+/* Horizontal Mixer */
+#hMixerScrollArea VolControl {
+ padding: 0px var(--padding_xlarge) var(--padding_base);
+ border-bottom: 1px solid var(--ctp_surface0);
+}
+
+#hMixerScrollArea VolControl QSlider {
+ margin: 0px 0px var(--padding_base);
+}
+
+#hMixerScrollArea VolControl QSlider::groove:horizontal {
+ background: palette(window);
+ height: var(--volume_slider);
+}
+
+/* Vertical Mixer */
+#stackedMixerArea QScrollBar:vertical {
+ border-left: 1px solid var(--ctp_surface0);
+}
+
+#vMixerScrollArea VolControl {
+ padding: var(--padding_large) 0px var(--padding_base);
+ border-right: 1px solid var(--ctp_surface0);
+}
+
+#vMixerScrollArea VolControl QSlider {
+ width: var(--volume_slider_box);
+ margin: 0px var(--padding_xlarge);
+}
+
+#vMixerScrollArea VolControl #volLabel {
+ padding: var(--padding_base) 0px var(--padding_base);
+ min-width: var(--volume_slider_label);
+ margin-left: var(--padding_xlarge);
+ text-align: center;
+}
+
+#vMixerScrollArea VolControl QSlider::groove:vertical {
+ background: palette(window);
+ width: var(--volume_slider);
+}
+
+#vMixerScrollArea VolControl #volMeterFrame {
+ padding: var(--padding_large) var(--padding_xlarge) var(--padding_large) 0px;
+}
+
+#vMixerScrollArea VolControl QLabel {
+ padding: 0px var(--padding_large);
+}
+
+#vMixerScrollArea VolControl QPushButton {
+ margin-right: var(--padding_xlarge);
+}
+
+#vMixerScrollArea VolControl .indicator-mute {
+ margin-left: var(--padding_xlarge);
+}
+
+VolControl {
+ background: palette(base);
+}
+
+VolumeMeter {
+ background: transparent;
+}
+
+VolumeMeter {
+ qproperty-backgroundNominalColor: var(--ctp_green);
+ qproperty-backgroundWarningColor: var(--ctp_peach);
+ qproperty-backgroundErrorColor: var(--ctp_red);
+ qproperty-foregroundNominalColor: var(--ctp_green);
+ qproperty-foregroundWarningColor: var(--ctp_peach);
+ qproperty-foregroundErrorColor: var(--ctp_red);
+
+ qproperty-backgroundNominalColorDisabled: var(--ctp_surface0);
+ qproperty-backgroundWarningColorDisabled: var(--ctp_overlay0);
+ qproperty-backgroundErrorColorDisabled: var(--ctp_subtext1);
+ qproperty-foregroundNominalColorDisabled: var(--ctp_surface1);
+ qproperty-foregroundWarningColorDisabled: var(--ctp_overlay1);
+ qproperty-foregroundErrorColorDisabled: var(--ctp_subtext0);
+
+ qproperty-magnitudeColor: var(--ctp_surface0);
+ qproperty-majorTickColor: var(--ctp_text);
+ qproperty-minorTickColor: var(--ctp_overlay0);
+ qproperty-peakDecayRate: 23.4;
+}
+
+/* Status Bar */
+
+QStatusBar::item {
+ border: none;
+}
+
+/* Table View */
+
+QTableView {
+ background: palette(base);
+ gridline-color: palette(light);
+}
+
+QTableView::item {
+ margin: 0px;
+ padding: 0px;
+}
+
+QTableView QLineEdit {
+ background: palette(mid);
+ padding: 0;
+ margin: 0;
+}
+
+QTableView QPushButton,
+QTableView QToolButton {
+ padding: 0px;
+ margin: -1px;
+ border_radius: 0px;
+}
+
+QHeaderView::section {
+ background-color: var(--ctp_surface0);
+ color: palette(text);
+ border: none;
+ border-left: 1px solid palette(window);
+ border-right: 1px solid palette(window);
+ padding: 3px 0px;
+ margin-bottom: 2px;
+}
+
+/* Canvas / Preview background color */
+
+OBSQTDisplay {
+ qproperty-displayBackgroundColor: var(--ctp_crust);
+}
+
+/* Filters Window */
+
+OBSBasicFilters QListWidget {
+ border-radius: var(--border_radius_large);
+ padding: var(--spacing_base);
+}
+
+OBSBasicFilters QListWidget::item {
+ border-radius: var(--border_radius);
+ padding: var(--padding_base) var(--padding_large);
+}
+
+OBSBasicFilters #widget,
+OBSBasicFilters #widget_2 {
+ margin: 0px;
+ padding: 0px;
+ padding-bottom: var(--padding_base);
+}
+
+OBSBasicFilters #widget QPushButton,
+OBSBasicFilters #widget_2 QPushButton {
+ min-width: 16px;
+ padding: var(--padding_base) var(--padding_large);
+ margin-top: 0px;
+}
+
+/* Preview/Program labels */
+
+.label-preview-title {
+ font-size: var(--font_xlarge);
+ font-weight: bold;
+ color: var(--ctp_subtext0);
+ margin-bottom: 4px;
+}
+
+/* Settings Icons */
+
+OBSBasicSettings {
+ qproperty-generalIcon: url(theme:Dark/settings/general.svg);
+ qproperty-appearanceIcon: url(theme:Dark/settings/appearance.svg);
+ qproperty-streamIcon: url(theme:Dark/settings/stream.svg);
+ qproperty-outputIcon: url(theme:Dark/settings/output.svg);
+ qproperty-audioIcon: url(theme:Dark/settings/audio.svg);
+ qproperty-videoIcon: url(theme:Dark/settings/video.svg);
+ qproperty-hotkeysIcon: url(theme:Dark/settings/hotkeys.svg);
+ qproperty-accessibilityIcon: url(theme:Dark/settings/accessibility.svg);
+ qproperty-advancedIcon: url(theme:Dark/settings/advanced.svg);
+}
+
+/* Checkboxes */
+
+QCheckBox::indicator,
+QGroupBox::indicator {
+ width: var(--icon_base);
+ height: var(--icon_base);
+}
+
+QGroupBox::indicator {
+ margin-left: 2px;
+}
+
+QCheckBox::indicator:unchecked,
+QGroupBox::indicator:unchecked {
+ image: url(theme:Yami/checkbox_unchecked.svg);
+}
+
+QCheckBox::indicator:unchecked:hover,
+QGroupBox::indicator:unchecked:hover {
+ border: none;
+ image: url(theme:Yami/checkbox_unchecked_focus.svg);
+}
+
+QCheckBox::indicator:checked,
+QGroupBox::indicator:checked {
+ image: url(theme:Yami/checkbox_checked.svg);
+}
+
+QCheckBox::indicator:checked:hover,
+QGroupBox::indicator:checked:hover {
+ image: url(theme:Yami/checkbox_checked_focus.svg);
+}
+
+QCheckBox::indicator:checked:disabled,
+QGroupBox::indicator:checked:disabled {
+ image: url(theme:Yami/checkbox_checked_disabled.svg);
+}
+
+QCheckBox::indicator:unchecked:disabled,
+QGroupBox::indicator:unchecked:disabled {
+ image: url(theme:Yami/checkbox_unchecked_disabled.svg);
+}
+
+/* Icon Checkboxes */
+.checkbox-icon {
+ outline: none;
+ background: transparent;
+ max-width: var(--icon_base);
+ max-height: var(--icon_base);
+ padding: var(--padding_base);
+ margin-right: var(--spacing_large);
+ border: 1px solid transparent;
+ border-radius: 4px;
+}
+
+.checkbox-icon::indicator {
+ width: var(--icon_base);
+ height: var(--icon_base);
+}
+
+.checkbox-icon:hover,
+.checkbox-icon:focus {
+ border-color: var(--border_highlight);
+}
+
+/* Locked CheckBox */
+
+.indicator-lock::indicator:checked,
+.indicator-lock::indicator:checked:hover {
+ image: url(theme:Dark/locked.svg);
+}
+
+.indicator-lock::indicator:unchecked,
+.indicator-lock::indicator:unchecked:hover {
+ image: url(:res/images/unlocked.svg);
+}
+
+/* Visibility CheckBox */
+
+.indicator-visibility::indicator:checked,
+.indicator-visibility::indicator:checked:hover {
+ image: url(theme:Dark/visible.svg);
+}
+
+.indicator-visibility::indicator:unchecked,
+.indicator-visibility::indicator:unchecked:hover {
+ image: url(:res/images/invisible.svg);
+}
+
+/* Mute CheckBox */
+
+.indicator-mute {
+ outline: none;
+}
+
+.indicator-mute::indicator,
+.indicator-mute::indicator:unchecked {
+ width: var(--icon_base);
+ height: var(--icon_base);
+ background-color: palette(button);
+ padding: var(--padding_base_border) var(--padding_base_border);
+ margin: 0px;
+ border: 1px solid transparent;
+ border-radius: var(--border_radius);
+ icon-size: var(--icon_base);
+}
+
+.indicator-mute::indicator:hover,
+.indicator-mute::indicator:unchecked:hover {
+ background-color: palette(mid);
+ padding: var(--padding_base_border) var(--padding_base_border);
+ margin: 0px;
+ border: 1px solid var(--ctp_surface1);
+ icon-size: var(--icon_base);
+}
+
+.indicator-mute::indicator:pressed,
+.indicator-mute::indicator:pressed:hover {
+ background-color: palette(mid);
+ border-color: var(--ctp_surface1);
+}
+
+.indicator-mute::indicator:checked {
+ image: url(theme:Dark/mute.svg);
+}
+
+.indicator-mute::indicator:indeterminate {
+ image: url(theme:Dark/unassigned.svg);
+}
+
+.indicator-mute::indicator:unchecked {
+ image: url(theme:Dark/settings/audio.svg);
+}
+
+.indicator-mute::indicator:unchecked:hover {
+ image: url(theme:Dark/settings/audio.svg);
+}
+
+.indicator-mute::indicator:unchecked:focus {
+ image: url(theme:Dark/settings/audio.svg);
+}
+
+.indicator-mute::indicator:checked:hover {
+ image: url(theme:Dark/mute.svg);
+}
+
+.indicator-mute::indicator:checked:focus {
+ image: url(theme:Dark/mute.svg);
+}
+
+.indicator-mute::indicator:checked:disabled {
+ image: url(theme:Dark/mute.svg);
+}
+
+.indicator-mute::indicator:unchecked:disabled {
+ image: url(theme:Dark/settings/audio.svg);
+}
+
+#hotkeyFilterReset {
+ margin-top: 0px;
+}
+
+OBSHotkeyWidget {
+ padding: 8px 0px;
+ margin: 2px 0px;
+}
+
+OBSHotkeyLabel {
+ padding: 4px 0px;
+}
+
+OBSHotkeyWidget QPushButton {
+ min-width: 16px;
+ padding: var(--padding_base);
+ margin-top: 0px;
+ margin-left: var(--spacing_base);
+}
+
+
+/* Sources List Group Collapse Checkbox */
+
+.indicator-expand::indicator:checked,
+.indicator-expand::indicator:checked:hover {
+ image: url(theme:Dark/expand.svg);
+}
+
+.indicator-expand::indicator:unchecked,
+.indicator-expand::indicator:unchecked:hover {
+ image: url(theme:Dark/collapse.svg);
+}
+
+/* Source Icons */
+
+OBSBasic {
+ qproperty-imageIcon: url(theme:Dark/sources/image.svg);
+ qproperty-colorIcon: url(theme:Dark/sources/brush.svg);
+ qproperty-slideshowIcon: url(theme:Dark/sources/slideshow.svg);
+ qproperty-audioInputIcon: url(theme:Dark/sources/microphone.svg);
+ qproperty-audioOutputIcon: url(theme:Dark/settings/audio.svg);
+ qproperty-desktopCapIcon: url(theme:Dark/settings/video.svg);
+ qproperty-windowCapIcon: url(theme:Dark/sources/window.svg);
+ qproperty-gameCapIcon: url(theme:Dark/sources/gamepad.svg);
+ qproperty-cameraIcon: url(theme:Dark/sources/camera.svg);
+ qproperty-textIcon: url(theme:Dark/sources/text.svg);
+ qproperty-mediaIcon: url(theme:Dark/sources/media.svg);
+ qproperty-browserIcon: url(theme:Dark/sources/globe.svg);
+ qproperty-groupIcon: url(theme:Dark/sources/group.svg);
+ qproperty-sceneIcon: url(theme:Dark/sources/scene.svg);
+ qproperty-defaultIcon: url(theme:Dark/sources/default.svg);
+ qproperty-audioProcessOutputIcon: url(theme:Dark/sources/windowaudio.svg);
+}
+
+/* Scene Tree Grid Mode */
+
+SceneTree {
+ qproperty-gridItemWidth: 154;
+ qproperty-gridItemHeight: var(--input_height_base);
+}
+
+.list-grid SceneTree::item {
+ color: palette(text);
+ background-color: palette(button);
+ border-radius: var(--border_radius);
+ margin: var(--spacing_base);
+}
+
+.list-grid SceneTree::item:selected {
+ background-color: var(--ctp_surface1);
+}
+
+.list-grid SceneTree::item:checked {
+ background-color: var(--ctp_surface1);
+}
+
+.list-grid SceneTree::item:hover {
+ background-color: var(--ctp_surface1);
+}
+
+.list-grid SceneTree::item:selected:hover {
+ background-color: var(--ctp_surface1);
+}
+
+/* Studio Mode T-Bar */
+
+.slider-tbar {
+ height: 24px;
+}
+
+.slider-tbar::groove:horizontal {
+ height: 8px;
+}
+
+.slider-tbar::sub-page:horizontal {
+ background: var(--ctp_blue);
+}
+
+.slider-tbar::handle:horizontal {
+ width: 12px;
+ height: 24px;
+ margin: -24px 0px;
+}
+
+/* YouTube Integration */
+OBSYoutubeActions {
+ qproperty-thumbPlaceholder: url(theme:Dark/sources/image.svg);
+}
+
+#ytEventList QLabel {
+ color: palette(text);
+ background-color: var(--ctp_surface0);
+ border: none;
+ border-radius: var(--border_radius);
+ padding: 4px 20px;
+}
+
+#ytEventList QLabel:hover {
+ background-color: var(--ctp_surface1);
+}
+
+#ytEventList .row-selected {
+ background-color: var(--ctp_surface1);
+ border: none;
+}
+
+#ytEventList .row-selected:hover {
+ background-color: var(--ctp_blue);
+ color: palette(text);
+}
+
+/* Calendar Widget */
+QDateTimeEdit::down-arrow {
+ qproperty-alignment: AlignTop;
+ image: url(theme:Dark/down.svg);
+ width: 100%;
+}
+
+QDateTimeEdit:on {
+ background-color: palette(mid);
+}
+
+/* Calendar Top Bar */
+QCalendarWidget QWidget#qt_calendar_navigationbar {
+ background-color: palette(base);
+ padding: var(--padding_base) var(--padding_large);
+}
+
+/* Calendar Top Bar Buttons */
+QCalendarWidget QToolButton {
+ background-color: palette(base);
+ padding: 2px 16px;
+ border-radius: var(--border_radius);
+ margin: var(--spacing_base);
+}
+
+#qt_calendar_monthbutton::menu-indicator {
+ image: url(theme:Dark/down.svg);
+ subcontrol-position: right;
+ padding-top: var(--padding_small);
+ padding-right: var(--padding_base);
+ height: 10px;
+ width: 10px;
+}
+
+QCalendarWidget #qt_calendar_prevmonth {
+ padding: var(--padding_small);
+ qproperty-icon: url(theme:Dark/left.svg);
+ icon-size: var(--icon_base);
+}
+
+QCalendarWidget #qt_calendar_nextmonth {
+ padding: var(--padding_small);
+ qproperty-icon: url(theme:Dark/right.svg);
+ icon-size: var(--icon_base);
+}
+
+QCalendarWidget QToolButton:hover {
+ background-color: var(--ctp_surface1);
+ border-radius: var(--border_radius);
+}
+
+QCalendarWidget QToolButton:pressed {
+ background-color: var(--ctp_crust);
+}
+
+/* Month Dropdown Menu */
+QCalendarWidget QMenu {}
+
+/* Year spinbox */
+QCalendarWidget QSpinBox {
+ background-color: var(--ctp_crust);
+ border: none;
+ border-radius: var(--border_radius);
+ margin: 0px var(--spacing_base) 0px 0px;
+ padding: var(--padding_base) 16px;
+}
+
+QCalendarWidget QSpinBox::up-button {
+ subcontrol-origin: border;
+ subcontrol-position: top right;
+ width: 16px;
+}
+
+QCalendarWidget QSpinBox::down-button {
+ subcontrol-origin: border;
+ subcontrol-position: bottom right;
+ width: 16px;
+}
+
+QCalendarWidget QSpinBox::up-arrow {
+ width: 10px;
+ height: 10px;
+}
+
+QCalendarWidget QSpinBox::down-arrow {
+ width: 10px;
+ height: 10px;
+}
+
+/* Days of the Week Bar */
+QCalendarWidget QWidget {
+ alternate-background-color: palette(mid);
+}
+
+QCalendarWidget QAbstractItemView:enabled {
+ background-color: palette(base);
+ color: palette(text);
+}
+
+QCalendarWidget QAbstractItemView:disabled {
+ color: var(--ctp_overlay1);
+}
+
+/* VirtualCam Plugin Fixes */
+
+#VirtualProperties QWidget {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+/* Disable icons on QDialogButtonBox */
+QDialogButtonBox {
+ dialogbuttonbox-buttons-have-icons: 0;
+}
+
+/* Stats dialog */
+OBSBasicStats {
+ background: palette(dark);
+}
+
+/* Advanced audio dialog */
+OBSBasicAdvAudio #scrollAreaWidgetContents {
+ background: palette(dark);
+}
+
+#previewScalePercent,
+#previewScalingMode {
+ background: transparent;
+ color: var(--ctp_text);
+ font-size: var(--font_xsmall);
+ height: 14px;
+ max-height: 14px;
+ padding: 0px var(--padding_xlarge);
+ margin: 0;
+ border: none;
+ border-radius: 0;
+}
+
+#previewXContainer {
+ border: 1px solid var(--ctp_base);
+}
+
+#previewScalingMode {
+ border: 1px solid var(--ctp_base);
+}
+
+#previewScalingMode:hover,
+#previewScalingMode:focus {
+ border-color: var(--ctp_base);
+}
+
+#previewXScrollBar,
+#previewYScrollBar {
+ background: transparent;
+ border: 1px solid var(--ctp_base);
+ border-radius: 0;
+}
+
+#previewXScrollBar {
+ border-left: none;
+ height: 16px;
+}
+
+#previewXScrollBar::handle,
+#previewYScrollBar::handle {
+ margin: 3px;
+}
+
+#previewYScrollBar {
+ width: 16px;
+}
diff --git a/.config/obs-studio/themes/Catppuccin_Mocha.ovt b/.config/obs-studio/themes/Catppuccin_Mocha.ovt
new file mode 100644
index 0000000..0dd4ae7
--- /dev/null
+++ b/.config/obs-studio/themes/Catppuccin_Mocha.ovt
@@ -0,0 +1,326 @@
+@OBSThemeMeta {
+ name: 'Mocha';
+ id: 'com.obsproject.Catppuccin.Mocha';
+ extends: 'com.obsproject.Catppuccin';
+ author: 'Xurdejl';
+ dark: 'true';
+}
+
+@OBSThemeVars {
+ --ctp_rosewater: #f5e0dc;
+ --ctp_flamingo: #f2cdcd;
+ --ctp_pink: #f5c2e7;
+ --ctp_mauve: #cba6f7;
+ --ctp_red: #f38ba8;
+ --ctp_maroon: #eba0ac;
+ --ctp_peach: #fab387;
+ --ctp_yellow: #f9e2af;
+ --ctp_green: #a6e3a1;
+ --ctp_teal: #94e2d5;
+ --ctp_sky: #89dceb;
+ --ctp_sapphire: #74c7ec;
+ --ctp_blue: #89b4fa;
+ --ctp_lavender: #b4befe;
+ --ctp_text: #cdd6f4;
+ --ctp_subtext1: #bac2de;
+ --ctp_subtext0: #a6adc8;
+ --ctp_overlay2: #9399b2;
+ --ctp_overlay1: #7f849c;
+ --ctp_overlay0: #6c7086;
+ --ctp_surface2: #585b70;
+ --ctp_surface1: #45475a;
+ --ctp_surface0: #313244;
+ --ctp_base: #1e1e2e;
+ --ctp_mantle: #181825;
+ --ctp_crust: #11111b;
+ --ctp_selection_background: #353649;
+}
+
+VolumeMeter {
+ qproperty-foregroundNominalColor: #6fd266;
+ qproperty-foregroundWarningColor: #f7853f;
+ qproperty-foregroundErrorColor: #ec4675;
+}
+
+/* Icon Overrides */
+
+.icon-plus {
+ qproperty-icon: url(theme:Dark/plus.svg);
+}
+
+.icon-minus {
+ qproperty-icon: url(theme:Dark/minus.svg);
+}
+
+.icon-trash {
+ qproperty-icon: url(theme:Dark/trash.svg);
+}
+
+.icon-clear {
+ qproperty-icon: url(theme:Dark/entry-clear.svg);
+}
+
+.icon-gear {
+ qproperty-icon: url(theme:Dark/settings/general.svg);
+}
+
+.icon-dots-vert {
+ qproperty-icon: url(theme:Dark/dots-vert.svg);
+}
+
+.icon-refresh {
+ qproperty-icon: url(theme:Dark/refresh.svg);
+}
+
+.icon-cogs {
+ qproperty-icon: url(theme:Dark/cogs.svg);
+}
+
+.icon-touch {
+ qproperty-icon: url(theme:Dark/interact.svg);
+}
+
+.icon-up {
+ qproperty-icon: url(theme:Dark/up.svg);
+}
+
+.icon-down {
+ qproperty-icon: url(theme:Dark/down.svg);
+}
+
+.icon-pause {
+ qproperty-icon: url(theme:Dark/media-pause.svg);
+}
+
+.icon-filter {
+ qproperty-icon: url(theme:Dark/filter.svg);
+}
+
+.icon-revert {
+ qproperty-icon: url(theme:Dark/revert.svg);
+}
+
+.icon-save {
+ qproperty-icon: url(theme:Dark/save.svg);
+}
+
+/* Media icons */
+
+.icon-media-play {
+ qproperty-icon: url(theme:Dark/media/media_play.svg);
+}
+
+.icon-media-pause {
+ qproperty-icon: url(theme:Dark/media/media_pause.svg);
+}
+
+.icon-media-restart {
+ qproperty-icon: url(theme:Dark/media/media_restart.svg);
+}
+
+.icon-media-stop {
+ qproperty-icon: url(theme:Dark/media/media_stop.svg);
+}
+
+.icon-media-next {
+ qproperty-icon: url(theme:Dark/media/media_next.svg);
+}
+
+.icon-media-prev {
+ qproperty-icon: url(theme:Dark/media/media_previous.svg);
+}
+
+/* Context Menu */
+QMenu::right-arrow {
+ image: url(theme:Dark/expand.svg);
+}
+
+/* Dock Widget */
+QDockWidget {
+ titlebar-close-icon: url(theme:Dark/close.svg);
+ titlebar-normal-icon: url(theme:Dark/popout.svg);
+}
+
+/* Source Context Bar */
+QPushButton#sourcePropertiesButton {
+ qproperty-icon: url(theme:Dark/settings/general.svg);
+}
+
+QPushButton#sourceFiltersButton {
+ qproperty-icon: url(theme:Dark/filter.svg);
+}
+
+/* Scenes and Sources toolbar */
+QToolBarExtension {
+ qproperty-icon: url(theme:Dark/dots-vert.svg);
+}
+
+/* ComboBox */
+QComboBox::down-arrow,
+QDateTimeEdit::down-arrow {
+ image: url(theme:Dark/collapse.svg);
+}
+
+QComboBox::down-arrow:editable,
+QDateTimeEdit::down-arrow:editable {
+ image: url(theme:Dark/collapse.svg);
+}
+
+/* Spinbox and doubleSpinbox */
+QSpinBox::up-arrow,
+QDoubleSpinBox::up-arrow {
+ image: url(theme:Dark/up.svg);
+}
+
+QSpinBox::down-arrow,
+QDoubleSpinBox::down-arrow {
+ image: url(theme:Dark/down.svg);
+}
+
+/* Buttons */
+QPushButton::menu-indicator {
+ image: url(theme:Dark/down.svg);
+}
+
+/* Settings Icons */
+OBSBasicSettings {
+ qproperty-generalIcon: url(theme:Dark/settings/general.svg);
+ qproperty-appearanceIcon: url(theme:Dark/settings/appearance.svg);
+ qproperty-streamIcon: url(theme:Dark/settings/stream.svg);
+ qproperty-outputIcon: url(theme:Dark/settings/output.svg);
+ qproperty-audioIcon: url(theme:Dark/settings/audio.svg);
+ qproperty-videoIcon: url(theme:Dark/settings/video.svg);
+ qproperty-hotkeysIcon: url(theme:Dark/settings/hotkeys.svg);
+ qproperty-accessibilityIcon: url(theme:Dark/settings/accessibility.svg);
+ qproperty-advancedIcon: url(theme:Dark/settings/advanced.svg);
+}
+
+/* Checkboxes */
+QCheckBox::indicator:unchecked,
+QGroupBox::indicator:unchecked {
+ image: url(theme:Yami/checkbox_unchecked.svg);
+}
+
+QCheckBox::indicator:unchecked:hover,
+QGroupBox::indicator:unchecked:hover {
+ border: none;
+ image: url(theme:Yami/checkbox_unchecked_focus.svg);
+}
+
+QCheckBox::indicator:checked,
+QGroupBox::indicator:checked {
+ image: url(theme:Yami/checkbox_checked.svg);
+}
+
+QCheckBox::indicator:checked:hover,
+QGroupBox::indicator:checked:hover {
+ image: url(theme:Yami/checkbox_checked_focus.svg);
+}
+
+QCheckBox::indicator:checked:disabled,
+QGroupBox::indicator:checked:disabled {
+ image: url(theme:Yami/checkbox_checked_disabled.svg);
+}
+
+/* Locked CheckBox */
+.indicator-lock::indicator:checked,
+.indicator-lock::indicator:checked:hover {
+ image: url(theme:Dark/locked.svg);
+}
+
+/* Visibility CheckBox */
+.indicator-visibility::indicator:checked,
+.indicator-visibility::indicator:checked:hover {
+ image: url(theme:Dark/visible.svg);
+}
+
+/* Mute CheckBox */
+.indicator-mute::indicator:checked {
+ image: url(theme:Dark/mute.svg);
+}
+
+.indicator-mute::indicator:indeterminate {
+ image: url(theme:Dark/unassigned.svg);
+}
+
+.indicator-mute::indicator:unchecked {
+ image: url(theme:Dark/settings/audio.svg);
+}
+
+.indicator-mute::indicator:unchecked:hover {
+ image: url(theme:Dark/settings/audio.svg);
+}
+
+.indicator-mute::indicator:unchecked:focus {
+ image: url(theme:Dark/settings/audio.svg);
+}
+
+.indicator-mute::indicator:checked:hover {
+ image: url(theme:Dark/mute.svg);
+}
+
+.indicator-mute::indicator:checked:focus {
+ image: url(theme:Dark/mute.svg);
+}
+
+.indicator-mute::indicator:checked:disabled {
+ image: url(theme:Dark/mute.svg);
+}
+
+.indicator-mute::indicator:unchecked:disabled {
+ image: url(theme:Dark/settings/audio.svg);
+}
+
+/* Sources List Group Collapse Checkbox */
+.indicator-expand::indicator:checked,
+.indicator-expand::indicator:checked:hover {
+ image: url(theme:Dark/expand.svg);
+}
+
+.indicator-expand::indicator:unchecked,
+.indicator-expand::indicator:unchecked:hover {
+ image: url(theme:Dark/collapse.svg);
+}
+
+/* Source Icons */
+OBSBasic {
+ qproperty-imageIcon: url(theme:Dark/sources/image.svg);
+ qproperty-colorIcon: url(theme:Dark/sources/brush.svg);
+ qproperty-slideshowIcon: url(theme:Dark/sources/slideshow.svg);
+ qproperty-audioInputIcon: url(theme:Dark/sources/microphone.svg);
+ qproperty-audioOutputIcon: url(theme:Dark/settings/audio.svg);
+ qproperty-desktopCapIcon: url(theme:Dark/settings/video.svg);
+ qproperty-windowCapIcon: url(theme:Dark/sources/window.svg);
+ qproperty-gameCapIcon: url(theme:Dark/sources/gamepad.svg);
+ qproperty-cameraIcon: url(theme:Dark/sources/camera.svg);
+ qproperty-textIcon: url(theme:Dark/sources/text.svg);
+ qproperty-mediaIcon: url(theme:Dark/sources/media.svg);
+ qproperty-browserIcon: url(theme:Dark/sources/globe.svg);
+ qproperty-groupIcon: url(theme:Dark/sources/group.svg);
+ qproperty-sceneIcon: url(theme:Dark/sources/scene.svg);
+ qproperty-defaultIcon: url(theme:Dark/sources/default.svg);
+ qproperty-audioProcessOutputIcon: url(theme:Dark/sources/windowaudio.svg);
+}
+
+/* YouTube Integration */
+OBSYoutubeActions {
+ qproperty-thumbPlaceholder: url(theme:Dark/sources/image.svg);
+}
+
+/* Calendar Widget */
+QDateTimeEdit::down-arrow {
+ image: url(theme:Dark/down.svg);
+}
+
+/* Calendar Top Bar Buttons */
+#qt_calendar_monthbutton::menu-indicator {
+ image: url(theme:Dark/down.svg);
+}
+
+QCalendarWidget #qt_calendar_prevmonth {
+ qproperty-icon: url(theme:Dark/left.svg);
+}
+
+QCalendarWidget #qt_calendar_nextmonth {
+ qproperty-icon: url(theme:Dark/right.svg);
+}
diff --git a/.config/picom.conf b/.config/picom.conf
index 920289e..b4bf1ea 100644
--- a/.config/picom.conf
+++ b/.config/picom.conf
@@ -166,7 +166,7 @@ focus-exclude = [ "class_g = 'Cairo-clock'" ];
blur: {
method = "dual_kawase";
- strength = 3;
+ strength = 4;
}
# Parameters for background blurring, see the *BLUR* section for more information.
@@ -239,197 +239,25 @@ mark-wmwin-focused = true;
# mark-ovredir-focused = false
mark-ovredir-focused = true;
-corner-radius = 6;
-
-# Try to detect windows with rounded corners and don't consider them
-# shaped windows. The accuracy is not very high, unfortunately.
-#
-# detect-rounded-corners = false
+corner-radius = 0;
detect-rounded-corners = true;
-
-# Detect '_NET_WM_OPACITY' on client windows, useful for window managers
-# not passing '_NET_WM_OPACITY' of client windows to frame windows.
-#
-# detect-client-opacity = false
detect-client-opacity = true;
+refresh-rate = 0
-# Specify refresh rate of the screen. If not specified or 0, picom will
-# try detecting this with X RandR extension.
-#
-# refresh-rate = 60
-refresh-rate = 144
-
-# Limit picom to repaint at most once every 1 / 'refresh_rate' second to
-# boost performance. This should not be used with
-# vsync drm/opengl/opengl-oml
-# as they essentially does sw-opti's job already,
-# unless you wish to specify a lower refresh rate than the actual value.
-#
-# sw-opti =
-
-# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
-# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
-# provided that the WM supports it.
-#
-# use-ewmh-active-win = false
-
-# Unredirect all windows if a full-screen opaque window is detected,
-# to maximize performance for full-screen windows. Known to cause flickering
-# when redirecting/unredirecting windows.
-#
-# unredir-if-possible = false
-
-# Delay before unredirecting the window, in milliseconds. Defaults to 0.
-# unredir-if-possible-delay = 0
-
-# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
-# unredir-if-possible-exclude = []
+rounded-corners-exclude = [
+ "window_type = 'dock'",
+ "class_g = 'Qtile'",
+];
-# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
-# in the same group focused at the same time.
-#
-# detect-transient = false
detect-transient = true
-
-# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same
-# group focused at the same time. 'WM_TRANSIENT_FOR' has higher priority if
-# detect-transient is enabled, too.
-#
-# detect-client-leader = false
detect-client-leader = true
-# Resize damaged region by a specific number of pixels.
-# A positive value enlarges it while a negative one shrinks it.
-# If the value is positive, those additional pixels will not be actually painted
-# to screen, only used in blur calculation, and such. (Due to technical limitations,
-# with use-damage, those pixels will still be incorrectly painted to screen.)
-# Primarily used to fix the line corruption issues of blur,
-# in which case you should use the blur radius value here
-# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`,
-# with a 5x5 one you use `--resize-damage 2`, and so on).
-# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
-#
-# resize-damage = 1
-
-# Specify a list of conditions of windows that should be painted with inverted color.
-# Resource-hogging, and is not well tested.
-#
-# invert-color-include = []
-
-# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
-# Might cause incorrect opacity when rendering transparent content (but never
-# practically happened) and may not work with blur-background.
-# My tests show a 15% performance boost. Recommended.
-#
-# glx-no-stencil = false
-
-# GLX backend: Avoid rebinding pixmap on window damage.
-# Probably could improve performance on rapid window content changes,
-# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.).
-# Recommended if it works.
-#
-# glx-no-rebind-pixmap = false
-
-# Disable the use of damage information.
-# This cause the whole screen to be redrawn everytime, instead of the part of the screen
-# has actually changed. Potentially degrades the performance, but might fix some artifacts.
-# The opposing option is use-damage
-#
# no-use-damage = false
-use-damage = true
-
-# Use X Sync fence to sync clients' draw calls, to make sure all draw
-# calls are finished before picom starts drawing. Needed on nvidia-drivers
-# with GLX backend for some users.
-#
-# xrender-sync-fence = false
-
-# GLX backend: Use specified GLSL fragment shader for rendering window contents.
-# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl`
-# in the source tree for examples.
-#
-# glx-fshader-win = ''
-
-# Force all windows to be painted with blending. Useful if you
-# have a glx-fshader-win that could turn opaque pixels transparent.
-#
-# force-win-blend = false
-
-# Do not use EWMH to detect fullscreen windows.
-# Reverts to checking if a window is fullscreen based only on its size and coordinates.
-#
-# no-ewmh-fullscreen = false
-
-# Dimming bright windows so their brightness doesn't exceed this set value.
-# Brightness of a window is estimated by averaging all pixels in the window,
-# so this could comes with a performance hit.
-# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
-#
-# max-brightness = 1.0
-
-# Make transparent windows clip other windows like non-transparent windows do,
-# instead of blending on top of them.
-#
-# transparent-clipping = false
-
-# Set the log level. Possible values are:
-# "trace", "debug", "info", "warn", "error"
-# in increasing level of importance. Case doesn't matter.
-# If using the "TRACE" log level, it's better to log into a file
-# using *--log-file*, since it can generate a huge stream of logs.
-#
-# log-level = "debug"
-log-level = "warn";
-
-# Set the log file.
-# If *--log-file* is never specified, logs will be written to stderr.
-# Otherwise, logs will to written to the given file, though some of the early
-# logs might still be written to the stderr.
-# When setting this option from the config file, it is recommended to use an absolute path.
-#
-# log-file = '/path/to/your/log/file'
-
-# Show all X errors (for debugging)
-# show-all-xerrors = false
-
-# Write process ID to a file.
-# write-pid-path = '/path/to/your/log/file'
-
-# Window type settings
-#
-# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard:
-# "unknown", "desktop", "dock", "toolbar", "menu", "utility",
-# "splash", "dialog", "normal", "dropdown_menu", "popup_menu",
-# "tooltip", "notification", "combo", and "dnd".
-#
-# Following per window-type options are available: ::
-#
-# fade, shadow:::
-# Controls window-type-specific shadow and fade settings.
-#
-# opacity:::
-# Controls default opacity of the window type.
-#
-# focus:::
-# Controls whether the window of this type is to be always considered focused.
-# (By default, all window types except "normal" and "dialog" has this on.)
-#
-# full-shadow:::
-# Controls whether shadow is drawn under the parts of the window that you
-# normally won't be able to see. Useful when the window has parts of it
-# transparent, and you want shadows in those areas.
-#
-# redir-ignore:::
-# Controls whether this type of windows should cause screen to become
-# redirected again after been unredirected. If you have unredir-if-possible
-# set, and doesn't want certain window to cause unnecessary screen redirection,
-# you can set this to `true`.
-#
wintypes:
{
- tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
- dock = { shadow = false; }
- dnd = { shadow = false; }
- popup_menu = { opacity = 0.8; shadow = false; }
- dropdown_menu = { opacity = 0.8; shadow = false; }
+ tooltip = { fade = true; shadow = false; opacity = 0.75; focus = true; full-shadow = false; };
+ dock = { shadow = false; corners-radius = 0; };
+ dnd = { shadow = false; };
+ popup_menu = { opacity = 0.8; shadow = false; };
+ dropdown_menu = { opacity = 0.8; shadow = false; };
};
diff --git a/.config/qtile/__pycache__/bar.cpython-313.pyc b/.config/qtile/__pycache__/bar.cpython-313.pyc
new file mode 100644
index 0000000..8aef3a9
--- /dev/null
+++ b/.config/qtile/__pycache__/bar.cpython-313.pyc
Binary files differ
diff --git a/.config/qtile/__pycache__/bars.cpython-313.pyc b/.config/qtile/__pycache__/bars.cpython-313.pyc
new file mode 100644
index 0000000..ad6bad6
--- /dev/null
+++ b/.config/qtile/__pycache__/bars.cpython-313.pyc
Binary files differ
diff --git a/.config/qtile/__pycache__/config.cpython-313.pyc b/.config/qtile/__pycache__/config.cpython-313.pyc
new file mode 100644
index 0000000..4ce1de6
--- /dev/null
+++ b/.config/qtile/__pycache__/config.cpython-313.pyc
Binary files differ
diff --git a/.config/qtile/__pycache__/defaults.cpython-313.pyc b/.config/qtile/__pycache__/defaults.cpython-313.pyc
new file mode 100644
index 0000000..3d6a3d7
--- /dev/null
+++ b/.config/qtile/__pycache__/defaults.cpython-313.pyc
Binary files differ
diff --git a/.config/qtile/__pycache__/keybindings.cpython-313.pyc b/.config/qtile/__pycache__/keybindings.cpython-313.pyc
new file mode 100644
index 0000000..5ccab13
--- /dev/null
+++ b/.config/qtile/__pycache__/keybindings.cpython-313.pyc
Binary files differ
diff --git a/.config/qtile/__pycache__/mic_volume.cpython-313.pyc b/.config/qtile/__pycache__/mic_volume.cpython-313.pyc
new file mode 100644
index 0000000..7d1ae2f
--- /dev/null
+++ b/.config/qtile/__pycache__/mic_volume.cpython-313.pyc
Binary files differ
diff --git a/.config/qtile/__pycache__/screens.cpython-313.pyc b/.config/qtile/__pycache__/screens.cpython-313.pyc
new file mode 100644
index 0000000..f5b78f9
--- /dev/null
+++ b/.config/qtile/__pycache__/screens.cpython-313.pyc
Binary files differ
diff --git a/.config/qtile/bars.py b/.config/qtile/bars.py
new file mode 100644
index 0000000..e6701d5
--- /dev/null
+++ b/.config/qtile/bars.py
@@ -0,0 +1,194 @@
+from libqtile import bar
+
+from qtile_extras import widget
+from qtile_extras.widget.groupbox2 import GroupBoxRule
+
+from defaults import colors, powerline_0, powerline_1, powerline_2
+
+class CapsLockWidget(widget.CapsNumLockIndicator):
+ def poll(self):
+ for lock, state in self.get_indicators():
+ if lock == "Caps" and state == "on":
+ return "CAPS LOCK"
+
+ return ""
+
+class NumLockWidget(widget.CapsNumLockIndicator):
+ def poll(self):
+ for lock, state in self.get_indicators():
+ if lock == "Num" and state == "on":
+ return "NUM LOCK"
+
+ return ""
+
+def default_bar():
+ return bar.Bar(
+ [
+ widget.Spacer(
+ length=1,
+ **powerline_1
+ ),
+
+ widget.Clock(
+ format="󰔚 %-I:%M%p",
+ padding=8,
+ background=colors[-1][0],
+ foreground=colors[-1][1],
+ **powerline_1
+ ),
+
+ widget.Clock(
+ format="󰃭 %d %B %Y (%A)",
+ padding=8,
+ background=colors[-2][0],
+ foreground=colors[-2][1],
+ **powerline_0
+ ),
+
+ widget.Battery(
+ format="󱐋{percent:2.0%}",
+ padding=8,
+ show_short_text=False,
+ update_interval=30,
+ low_background=colors[-3][0],
+ low_foreground=colors[-3][1],
+ background=colors[-4][0],
+ foreground=colors[-4][1],
+ charging_background=colors[-5][0],
+ charging_foreground=colors[-5][1],
+ **powerline_1
+ ),
+
+ widget.Backlight(
+ backlight_name = "amdgpu_bl1",
+ padding=8,
+ format=" {percent:2.0%}",
+ background=colors[-6][0],
+ foreground=colors[-6][1],
+ **powerline_0
+ ),
+
+ widget.PulseVolume(
+ padding=8,
+ mute_format="󰖁",
+ unmute_format="󰕾 {volume}%",
+ emoji=False,
+ emoji_list=["󰝟", "󰕿", "󰖀", "󰕾"],
+ background=colors[-7][0],
+ foreground=colors[-7][1],
+ **powerline_2
+ ),
+
+ widget.WindowName(
+ padding=10,
+ max_chars=60,
+ background=colors[11][0],
+ foreground=colors[11][1],
+ **powerline_0
+ ),
+
+ widget.Memory(
+ format=" {MemPercent}%",
+ padding=8,
+ background=colors[-10][0],
+ foreground=colors[-10][1],
+ **powerline_0
+ ),
+
+ widget.CPU(
+ format=" {load_percent}%",
+ padding=8,
+ background=colors[-9][0],
+ foreground=colors[-9][1],
+ **powerline_0
+ ),
+
+ widget.ThermalSensor(
+ format="󰏈 {temp:.1f}{unit}",
+ padding=8,
+ background=colors[-8][0],
+ foreground=colors[-8][1],
+ **powerline_0
+ ),
+
+ widget.WindowCount(
+ show_zero=True,
+ text_format=" {num}",
+ padding=6,
+ background=colors[10][0],
+ foreground=colors[10][1],
+ **powerline_0
+ ),
+
+ NumLockWidget(
+ fmt="󰌾 {}",
+ background=colors[9][0],
+ foreground=colors[9][1],
+ **powerline_0
+ ),
+
+ CapsLockWidget(
+ fmt="󰪛 {}",
+ background=colors[8][0],
+ foreground=colors[8][1],
+ **powerline_0
+ ),
+
+ widget.CurrentLayout(
+ fmt=" {}",
+ background=colors[7][0],
+ foreground=colors[7][1],
+ padding=10,
+ **powerline_2
+ ),
+
+ widget.Spacer(length=5),
+
+ widget.Systray(),
+
+ widget.Spacer(length=15),
+
+ widget.GroupBox2(
+ font = "Source Han Sans JP",
+ highlight_method="block",
+ rounded=False,
+ borderwidth=4,
+ padding_y=6,
+ padding_x=10,
+
+ rules = [
+ GroupBoxRule(
+ line_width=3,
+ ).when(),
+
+ GroupBoxRule(
+ line_colour=colors[5][0],
+ #text_colour=colors[5][1],
+ ).when(screen=GroupBoxRule.SCREEN_THIS),
+
+ GroupBoxRule(
+ line_colour=colors[6][0],
+ #text_colour=colors[6][1],
+ ).when(screen=GroupBoxRule.SCREEN_OTHER),
+
+ GroupBoxRule(
+ text_colour=colors[2][1],
+ ).when(occupied=False),
+
+ GroupBoxRule(
+ text_colour=colors[3][1],
+ ).when(occupied=True),
+
+ #doesn't work. just marks ALL groups as urgent
+ # GroupBoxRule(
+ # line_colour=colors[4][0],
+ # text_colour=colors[4][1],
+ # ).when(urgent=True),
+ ],
+ )
+ ],
+ 32,
+ background = colors[1][0],
+ border_width=[0, 0, 1, 0],
+ border_color=[colors[0][0], colors[0][0], colors[0][1], colors[0][0]]
+ )
diff --git a/.config/qtile/config.py b/.config/qtile/config.py
new file mode 100644
index 0000000..f2b2549
--- /dev/null
+++ b/.config/qtile/config.py
@@ -0,0 +1,25 @@
+import defaults
+import keybindings
+import screens
+
+groups = defaults.groups
+keys = keybindings.keybindings(defaults.mod, defaults._mod, groups)
+mouse = keybindings.mousebindings(defaults.mod, defaults._mod)
+layouts = defaults.layouts
+floating_layout = defaults.floating_layout
+widget_defaults = defaults.widget_defaults
+extension_defaults = defaults.extension_defaults
+screens = screens.screens
+floating_layout = defaults.floating_layout
+
+dgroups_key_binder = None
+dgroups_app_rules = []
+follow_mouse_focus = True
+bring_front_click = False
+floats_kept_above = True
+cursor_warp = False
+auto_fullscreen = True
+focus_on_window_activation = "smart"
+reconfigure_screens = True
+auto_minimize = True
+wmname = "LG3D"
diff --git a/.config/qtile/defaults.py b/.config/qtile/defaults.py
new file mode 100644
index 0000000..7d13cc6
--- /dev/null
+++ b/.config/qtile/defaults.py
@@ -0,0 +1,102 @@
+from libqtile import layout
+from libqtile.config import Group, Match
+
+from qtile_extras.widget.decorations import PowerLineDecoration
+
+mod = "mod4"
+_mod = "mod1"
+
+colors = [
+ ["#1e1e2e", "#cba6f7", # tiled border (in/active)
+ "#313244", "#a6e3a1", # stack border (in/active)
+ "#585b70", "#f38ba8"] # floating border (in/active)
+
+ # [bg, fg]
+ , ["#1e1e2e", "#cdd6f4"] # bar color
+ , [None, "#6c7086"] # empty group
+ , [None, "#cdd6f4"] # non empty group
+ , ["#f38ba8", "#f2cdcd"] # urgent group
+ , ["#cba6f7", "#cdd6f4"] # active group (active monitor)
+ , ["#a6e3a1", "#a6e3a1"] # active group (inactive monitor)
+
+ , ["#94e2d5", "#11111b"] # layout indicator
+ , ["#f38ba8", "#11111b"] # caps lock indicator
+ , ["#eba0ac", "#11111b"] # num lock indicator
+ , ["#f5e0dc", "#11111b"] # window count
+ , ["#24273a", "#cdd6f4"] # window name
+
+ , ["#b4befe", "#11111b"] # mem usage
+ , ["#74c7ec", "#11111b"] # cpu usage
+ , ["#f38ba8", "#11111b"] # cpu temp
+ , ["#a6e3a1", "#11111b"] # volume
+ , ["#89b4fa", "#11111b"] # backlight
+ , ["#fab387", "#11111b"] # battery (plugged in)
+ , ["#f38ba8", "#11111b"] # battery (discharging)
+ , ["#f38ba8", "#11111b"] # battery (low)
+ , ["#f5c2e7", "#11111b"] # date
+ , ["#cba6f7", "#11111b"] # time
+]
+
+groups = [Group(i) for i in "一二三四五六七八九十"]
+# groups = [Group(i) for i in "󰮫󰈹󰣀"]
+
+center_floating_windows_by_class = [
+ "arandr", "blueman-manager", "pavucontrol"
+]
+
+default_border_width=3
+
+floating_layout = layout.Floating(
+ border_width=default_border_width,
+ border_normal=colors[0][4],
+ border_focus=colors[0][5],
+ float_rules = [
+ *layout.Floating.default_float_rules,
+ *[Match(wm_class=x) for x in center_floating_windows_by_class],
+ ],
+)
+
+layouts = [
+ layout.Columns(
+ insert_position=1,
+ border_width=default_border_width,
+ align=layout.Columns._left,
+ margin=[4, 4, 4, 4],
+ margin_on_single=[0, 0, 0, 0],
+ border_normal=colors[0][0],
+ border_focus=colors[0][1],
+ border_normal_stack=colors[0][2],
+ border_focus_stack=colors[0][3],
+ ),
+ layout.Max(),
+ layout.Matrix(),
+ layout.MonadWide(),
+ layout.VerticalTile(),
+ floating_layout,
+]
+
+widget_defaults = dict(
+ font = "NotoSans NF:style=Regular",
+ fontsize = 14,
+ padding = 3,
+)
+
+extension_defaults = widget_defaults.copy()
+
+powerline_0 = {
+ "decorations": [
+ PowerLineDecoration(path="forward_slash")
+ ]
+}
+
+powerline_1 = {
+ "decorations": [
+ PowerLineDecoration(path="arrow_left")
+ ]
+}
+
+powerline_2 = {
+ "decorations": [
+ PowerLineDecoration(path="arrow_right")
+ ]
+}
diff --git a/.config/qtile/keybindings.py b/.config/qtile/keybindings.py
new file mode 100644
index 0000000..3a5d953
--- /dev/null
+++ b/.config/qtile/keybindings.py
@@ -0,0 +1,85 @@
+from libqtile.config import Click, Drag, Key
+from libqtile.lazy import lazy
+
+def mousebindings(mod, _mod):
+ return [
+ Drag([mod], "Button1", lazy.window.set_position_floating(), start=lazy.window.get_position()),
+ Drag([mod], "Button3", lazy.window.set_size_floating(), start=lazy.window.get_size()),
+ Click([mod], "Button2", lazy.window.bring_to_front()),
+ ]
+
+def keybindings(mod, _mod, groups):
+ keys = [
+ # Switch between windows
+ Key([mod], "h", lazy.layout.left(), desc="Move focus to left"),
+ Key([mod], "l", lazy.layout.right(), desc="Move focus to right"),
+ Key([mod], "j", lazy.layout.down(), desc="Move focus down"),
+ Key([mod], "k", lazy.layout.up(), desc="Move focus up"),
+ Key([mod], "space", lazy.layout.next(), desc="Move window focus to other window"),
+ Key([mod, "shift"], "space", lazy.layout.previous(), desc="Move window focus to other window"),
+
+ # Move windows between left/right columns or move up/down in current stack.
+ # Moving out of range in Columns layout will create new column.
+ Key([mod, "shift"], "h", lazy.layout.shuffle_left(), desc="Move window to the left"),
+ Key([mod, "shift"], "l", lazy.layout.shuffle_right(), desc="Move window to the right"),
+ Key([mod, "shift"], "j", lazy.layout.shuffle_down(), desc="Move window down"),
+ Key([mod, "shift"], "k", lazy.layout.shuffle_up(), desc="Move window up"),
+
+ # Grow windows. If current window is on the edge of screen and direction
+ # will be to screen edge - window would shrink.
+ Key([mod, "control"], "h", lazy.layout.grow_left(), desc="Grow window to the left"),
+ Key([mod, "control"], "l", lazy.layout.grow_right(), desc="Grow window to the right"),
+ Key([mod, "control"], "j", lazy.layout.grow_down(), desc="Grow window down"),
+ Key([mod, "control"], "k", lazy.layout.grow_up(), desc="Grow window up"),
+ Key([mod], "n", lazy.layout.normalize(), desc="Reset all window sizes"),
+
+ Key([_mod], "h", lazy.screen.prev_group(), desc="Switch to previous group."),
+ Key([_mod], "l", lazy.screen.next_group(), desc="Switch to next group."),
+
+ # Toggle between split and unsplit sides of stack.
+ # Split = all windows displayed
+ # Unsplit = 1 window displayed, like Max layout, but still with
+ # multiple stack panes
+ Key(
+ [mod, "shift"],
+ "Return",
+ lazy.layout.toggle_split(),
+ desc="Toggle between split and unsplit sides of stack",
+ ),
+ # Toggle between different layouts as defined below
+ Key([mod], "Tab", lazy.next_layout(), desc="Toggle between layouts"),
+ Key([mod], "w", lazy.window.kill(), desc="Kill focused window"),
+ Key(
+ [mod],
+ "f",
+ lazy.window.toggle_fullscreen(),
+ desc="Toggle fullscreen on the focused window",
+ ),
+ Key([mod], "t", lazy.window.toggle_floating(), desc="Toggle floating on the focused window"),
+ Key([mod, "control"], "r", lazy.reload_config(), desc="Reload the config"),
+ Key([mod, "control"], "q", lazy.shutdown(), desc="Shutdown Qtile"),
+ ]
+
+ for i in range(len(groups)):
+ key = str(i + 1)
+ if key == "10":
+ key = "0"
+
+ keys.extend(
+ [
+ Key(
+ [mod],
+ key,
+ lazy.group[groups[i].name].toscreen(),
+ desc=f"Switch to group {groups[i].name}",
+ ),
+ Key(
+ [mod, "shift"],
+ key,
+ lazy.window.togroup(groups[i].name, switch_group=True),
+ desc=f"Switch to & move focused window to group {groups[i].name}",
+ ),
+ ]
+ )
+
+ return keys
diff --git a/.config/qtile/screens.py b/.config/qtile/screens.py
new file mode 100644
index 0000000..568399f
--- /dev/null
+++ b/.config/qtile/screens.py
@@ -0,0 +1,13 @@
+from libqtile.config import Screen
+
+import bars
+
+default_screen = Screen(
+ top=bars.default_bar(),
+)
+
+monitor = Screen(
+ top=bars.default_bar(),
+)
+
+screens = [default_screen, monitor]
diff --git a/.config/sxhkd/sxhkdrc b/.config/sxhkd/sxhkdrc
index 8824f7b..719939b 100644
--- a/.config/sxhkd/sxhkdrc
+++ b/.config/sxhkd/sxhkdrc
@@ -1,114 +1,39 @@
-# terminal emulator
-super + Return
- prime-run alacritty
-
-# program launcher
-super + shift + p
- dmenu_run
-
-# make sxhkd reload its configuration files:
-super + Escape
- pkill -USR1 -x sxhkd
-
-# bspwm hotkeys
-# quit/restart bspwm
-super + shift + {q,r}
- bspc {quit,wm -r}
-
-# kill and close
-alt + {_,shift + }w
- bspc node -{k,c}
-
-# alternate between the tiled and monocle layout
-super + f
- bspc desktop -l next
-
-# send the newest marked node to the newest preselected node
-super + y
- bspc node newest.marked.local -n newest.!automatic.local
-
-# swap the current node and the biggest window
-# super + g
-# bspc node -s biggest.window
-
-#
-# state/flags
-#
-
-# set the window state
-super + {a,shift + a,shift + f,f}
- bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
+# show/hide notification center
+super + backslash
+ kill -s USR1 $(pidof deadd-notification-center)
-# set the node flags
-super + ctrl + {m,x,v,z}
- bspc node -g {marked,locked,sticky,private}
+# cycles between dvorak & qwerty
+super + space
+ switch-keyboard-layout
-#
-# focus/swap
-#
-
-# focus the node in the given direction
-super + {_,shift + }{h,j,k,l}
- bspc node -{f,s} {west,south,north,east}
-
-# focus the node for the given path jump
-super + {p,b,comma,period}
- bspc node -f @{parent,brother,first,second}
-
-# focus the next/previous window in the current desktop
-alt + {j,k}
- bspc node -f {prev,next}.local.!hidden.window
-
-# focus the next/previous desktop in the current monitor
-alt + {h,l}
- bspc desktop -f {prev,next}.local
-
-# focus the last node/desktop
-# super + {grave,Tab}
-# bspc {node,desktop} -f last
-
-# focus the older or newer node in the focus history
-# super + {o,i}
-# bspc wm -h off; \
-# bspc node {older,newer} -f; \
-# bspc wm -h on
-
-# focus or send to the given desktop
-super + {_,shift + }{1-9,0}
- bspc {desktop -f,node -d} '^{1-9,10}'
-
-#
-# preselect
-#
-
-# preselect the direction
-super + ctrl + {h,j,k,l}
- bspc node -p {west,south,north,east}
+super + Return
+ open_terminal
-# preselect the ratio
-super + ctrl + {1-9}
- bspc node -o 0.{1-9}
+super + g
+ rofi -show drun
-# cancel the preselection for the focused node
-super + ctrl + space
- bspc node -p cancel
+super
+ rofi -show drun
-# cancel the preselection for the focused desktop super + ctrl + shift + space bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
-# move/resize
-#
+# Media keys config
-# expand a window by moving one of its side outward
-super + alt + {h,j,k,l}
- bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
+XF86MonBrightness{Up,Down}
+ brightnessctl s 1%{+,-}
-# contract a window by moving one of its side inward
-super + alt + shift + {h,j,k,l}
- bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
+XF86Audio{Raise,Lower}Volume
+ pamixer -{i,d} 1
+
+XF86AudioMute
+ pamixer -t
-# move a floating window
-super + {Left,Down,Up,Right}
- bspc node -v {-20 0,0 20,0 -20,20 0}
+shift + XF86Audio{Raise,Lower}Volume
+ pamixer --default-source -{i,d} 1
+shift + XF86AudioMute
+ pamixer --default-source -t
+Print
+ flameshot gui
-# other keybindings
+shift + Print
+ flameshot launcher
diff --git a/.config/tint2/tint2rc b/.config/tint2/tint2rc
deleted file mode 100644
index 702b944..0000000
--- a/.config/tint2/tint2rc
+++ /dev/null
@@ -1,216 +0,0 @@
-#---- Generated by tint2conf 1c5e ----
-# See https://gitlab.com/o9000/tint2/wikis/Configure for
-# full documentation of the configuration options.
-#-------------------------------------
-# Gradients
-#-------------------------------------
-# Backgrounds
-# Background 1: Battery, Panel
-rounded = 0
-border_width = 0
-border_sides = TBLR
-border_content_tint_weight = 0
-background_content_tint_weight = 0
-background_color = #171520 100
-border_color = #171520 100
-background_color_hover = #000000 60
-border_color_hover = #000000 30
-background_color_pressed = #000000 60
-border_color_pressed = #000000 30
-
-# Background 2: Default task, Iconified task
-rounded = 0
-border_width = 1
-border_sides = LR
-border_content_tint_weight = 0
-background_content_tint_weight = 0
-background_color = #9325e7 30
-border_color = #9325e7 40
-background_color_hover = #9325e7 90
-border_color_hover = #eaeaea 44
-background_color_pressed = #9325e7 100
-border_color_pressed = #eaeaea 44
-
-# Background 3: Active task
-rounded = 0
-border_width = 1
-border_sides = LR
-border_content_tint_weight = 0
-background_content_tint_weight = 0
-background_color = #9325e7 100
-border_color = #9325e7 100
-background_color_hover = #ad5aed 100
-border_color_hover = #eaeaea 44
-background_color_pressed = #ad5aed 90
-border_color_pressed = #eaeaea 44
-
-# Background 4: Urgent task
-rounded = 0
-border_width = 1
-border_sides = TBLR
-border_content_tint_weight = 0
-background_content_tint_weight = 0
-background_color = #aa4400 100
-border_color = #aa7733 100
-background_color_hover = #cc7700 100
-border_color_hover = #aa7733 100
-background_color_pressed = #555555 4
-border_color_pressed = #aa7733 100
-
-# Background 5: Tooltip
-rounded = 1
-border_width = 1
-border_sides = TBLR
-border_content_tint_weight = 0
-background_content_tint_weight = 0
-background_color = #222222 100
-border_color = #333333 100
-background_color_hover = #ffffaa 100
-border_color_hover = #000000 100
-background_color_pressed = #ffffaa 100
-border_color_pressed = #000000 100
-
-#-------------------------------------
-# Panel
-panel_items = TFSBC
-panel_size = 100% 32
-panel_margin = 0 0
-panel_padding = 2 0 2
-panel_background_id = 1
-wm_menu = 1
-panel_dock = 0
-panel_pivot_struts = 0
-panel_position = top center horizontal
-panel_layer = normal
-panel_monitor = primary
-panel_shrink = 0
-autohide = 0
-autohide_show_timeout = 0
-autohide_hide_timeout = 0.5
-autohide_height = 1
-strut_policy = minimum
-panel_window_name = taskbar
-disable_transparency = 1
-mouse_effects = 1
-font_shadow = 0
-mouse_hover_icon_asb = 100 0 10
-mouse_pressed_icon_asb = 100 0 0
-scale_relative_to_dpi = 1
-scale_relative_to_screen_height = 1
-
-#-------------------------------------
-# Taskbar
-taskbar_mode = single_desktop
-taskbar_hide_if_empty = 0
-taskbar_padding = 0 0 2
-taskbar_background_id = 0
-taskbar_active_background_id = 0
-taskbar_name = 1
-taskbar_hide_inactive_tasks = 0
-taskbar_hide_different_monitor = 0
-taskbar_hide_different_desktop = 0
-taskbar_always_show_all_desktop_tasks = 0
-taskbar_name_padding = 12 0
-taskbar_name_background_id = 0
-taskbar_name_active_background_id = 0
-taskbar_name_font = Source Han Sans JP Semi-Bold 12
-taskbar_name_font_color = #e3e3e3 100
-taskbar_name_active_font_color = #ffffff 100
-taskbar_distribute_size = 0
-taskbar_sort_order = center
-task_align = left
-
-#-------------------------------------
-# Task
-task_text = 1
-task_icon = 0
-task_centered = 1
-urgent_nb_of_blink = 100000
-task_maximum_size = 220 0
-task_padding = 0 0 0
-task_font = Source Code Pro 14
-task_tooltip = 1
-task_thumbnail = 0
-task_thumbnail_size = 8
-task_font_color = #ffffff 100
-task_background_id = 2
-task_active_background_id = 3
-task_urgent_background_id = 4
-task_iconified_background_id = 2
-mouse_left = toggle_iconify
-mouse_middle = none
-mouse_right = close
-mouse_scroll_up = toggle
-mouse_scroll_down = iconify
-
-#-------------------------------------
-# System tray (notification area)
-systray_padding = 0 4 2
-systray_background_id = 0
-systray_sort = ascending
-systray_icon_size = 24
-systray_icon_asb = 100 0 0
-systray_monitor = 1
-systray_name_filter =
-
-#-------------------------------------
-# Launcher
-launcher_padding = 2 4 2
-launcher_background_id = 0
-launcher_icon_background_id = 0
-launcher_icon_size = 24
-launcher_icon_asb = 100 0 0
-launcher_icon_theme_override = 0
-startup_notifications = 1
-launcher_tooltip = 1
-launcher_item_app = tint2conf.desktop
-launcher_item_app = firefox.desktop
-launcher_item_app = iceweasel.desktop
-launcher_item_app = chromium-browser.desktop
-launcher_item_app = google-chrome.desktop
-
-#-------------------------------------
-# Clock
-time1_format = %H:%M
-time2_format = %A %d %B
-time1_timezone =
-time2_timezone =
-clock_font_color = #ffffff 100
-clock_padding = 2 0
-clock_background_id = 0
-clock_tooltip =
-clock_tooltip_timezone =
-clock_lclick_command =
-clock_rclick_command = orage
-clock_mclick_command =
-clock_uwheel_command =
-clock_dwheel_command =
-
-#-------------------------------------
-# Battery
-battery_tooltip = 1
-battery_low_status = 25
-battery_low_cmd = notify-send "Battery Low!" "Charge yo laptop."
-battery_full_cmd = notify-send "Battery Full!" "Disconnect yo charger."
-battery_font_color = #ffffff 100
-bat1_format =
-bat2_format =
-battery_padding = 1 0
-battery_background_id = 1
-battery_hide = 101
-battery_lclick_command =
-battery_rclick_command =
-battery_mclick_command =
-battery_uwheel_command =
-battery_dwheel_command =
-ac_connected_cmd = notify-send "Charger Connected." "Yo laptop is now charging."
-ac_disconnected_cmd = notify-send "Charger Disconnected." "Yo laptop aint charging"
-
-#-------------------------------------
-# Tooltip
-tooltip_show_timeout = 0.5
-tooltip_hide_timeout = 0.1
-tooltip_padding = 4 4
-tooltip_background_id = 5
-tooltip_font_color = #dddddd 100
-
diff --git a/.config/tint2/tint2rc.backup.1623112960 b/.config/tint2/tint2rc.backup.1623112960
deleted file mode 100644
index 551777b..0000000
--- a/.config/tint2/tint2rc.backup.1623112960
+++ /dev/null
@@ -1,215 +0,0 @@
-#---- Generated by tint2conf b4b1 ----
-# See https://gitlab.com/o9000/tint2/wikis/Configure for
-# full documentation of the configuration options.
-#-------------------------------------
-# Gradients
-#-------------------------------------
-# Backgrounds
-# Background 1: Panel
-rounded = 0
-border_width = 0
-border_sides = TBLR
-border_content_tint_weight = 0
-background_content_tint_weight = 0
-background_color = #171520 100
-border_color = #171520 100
-background_color_hover = #000000 60
-border_color_hover = #000000 30
-background_color_pressed = #000000 60
-border_color_pressed = #000000 30
-
-# Background 2: Default task, Iconified task
-rounded = 0
-border_width = 1
-border_sides = LR
-border_content_tint_weight = 0
-background_content_tint_weight = 0
-background_color = #9325e7 30
-border_color = #9325e7 40
-background_color_hover = #9325e7 90
-border_color_hover = #eaeaea 44
-background_color_pressed = #9325e7 100
-border_color_pressed = #eaeaea 44
-
-# Background 3: Active task
-rounded = 0
-border_width = 1
-border_sides = LR
-border_content_tint_weight = 0
-background_content_tint_weight = 0
-background_color = #9325e7 100
-border_color = #9325e7 100
-background_color_hover = #ad5aed 100
-border_color_hover = #eaeaea 44
-background_color_pressed = #ad5aed 90
-border_color_pressed = #eaeaea 44
-
-# Background 4: Urgent task
-rounded = 0
-border_width = 1
-border_sides = TBLR
-border_content_tint_weight = 0
-background_content_tint_weight = 0
-background_color = #aa4400 100
-border_color = #aa7733 100
-background_color_hover = #cc7700 100
-border_color_hover = #aa7733 100
-background_color_pressed = #555555 4
-border_color_pressed = #aa7733 100
-
-# Background 5: Tooltip
-rounded = 1
-border_width = 1
-border_sides = TBLR
-border_content_tint_weight = 0
-background_content_tint_weight = 0
-background_color = #222222 100
-border_color = #333333 100
-background_color_hover = #ffffaa 100
-border_color_hover = #000000 100
-background_color_pressed = #ffffaa 100
-border_color_pressed = #000000 100
-
-#-------------------------------------
-# Panel
-# panel_items = TFSBC
-panel_items = TFSBC
-panel_size = 100% 35
-panel_margin = 0 0
-panel_padding = 2 0 2
-panel_background_id = 1
-wm_menu = 1
-panel_dock = 0
-panel_pivot_struts = 0
-panel_position = bottom center horizontal
-panel_layer = top
-panel_monitor = all
-panel_shrink = 0
-autohide = 0
-autohide_show_timeout = 0
-autohide_hide_timeout = 0.5
-autohide_height = 2
-strut_policy = follow_size
-panel_window_name = tint2
-disable_transparency = 1
-mouse_effects = 1
-font_shadow = 0
-mouse_hover_icon_asb = 100 0 10
-mouse_pressed_icon_asb = 100 0 0
-scale_relative_to_dpi = 0
-scale_relative_to_screen_height = 0
-
-#-------------------------------------
-# Taskbar
-taskbar_mode = single_desktop
-taskbar_hide_if_empty = 1
-taskbar_padding = 0 0 0
-taskbar_background_id = 0
-taskbar_active_background_id = 0
-taskbar_name = 1
-taskbar_hide_inactive_tasks = 1
-taskbar_hide_different_monitor = 0
-taskbar_hide_different_desktop = 0
-taskbar_always_show_all_desktop_tasks = 0
-taskbar_name_padding = 4 4
-taskbar_name_background_id = 0
-taskbar_name_active_background_id = 0
-taskbar_name_font_color = #e3e3e3 100
-taskbar_name_active_font_color = #ffffff 100
-taskbar_distribute_size = 0
-taskbar_sort_order = center
-task_align = left
-
-#-------------------------------------
-# Task
-task_text = 0
-task_icon = 0
-task_centered = 1
-urgent_nb_of_blink = 100000
-task_maximum_size = 150 35
-task_padding = 0 0 0
-task_tooltip = 1
-task_thumbnail = 0
-task_thumbnail_size = 210
-task_font_color = #ffffff 100
-task_background_id = 2
-task_active_background_id = 3
-task_urgent_background_id = 4
-task_iconified_background_id = 2
-mouse_left = toggle_iconify
-mouse_middle = none
-mouse_right = close
-mouse_scroll_up = toggle
-mouse_scroll_down = iconify
-
-#-------------------------------------
-# System tray (notification area)
-systray_padding = 0 4 2
-systray_background_id = 0
-systray_sort = ascending
-systray_icon_size = 24
-systray_icon_asb = 100 0 0
-systray_monitor = 1
-systray_name_filter =
-
-#-------------------------------------
-# Launcher
-launcher_padding = 2 4 2
-launcher_background_id = 0
-launcher_icon_background_id = 0
-launcher_icon_size = 24
-launcher_icon_asb = 100 0 0
-launcher_icon_theme_override = 0
-startup_notifications = 1
-launcher_tooltip = 1
-launcher_item_app = tint2conf.desktop
-launcher_item_app = firefox.desktop
-launcher_item_app = iceweasel.desktop
-launcher_item_app = chromium-browser.desktop
-launcher_item_app = google-chrome.desktop
-
-#-------------------------------------
-# Clock
-time1_format = %H:%M
-time2_format = %A %d %B
-time1_timezone =
-time2_timezone =
-clock_font_color = #ffffff 100
-clock_padding = 2 0
-clock_background_id = 0
-clock_tooltip =
-clock_tooltip_timezone =
-clock_lclick_command =
-clock_rclick_command = orage
-clock_mclick_command =
-clock_uwheel_command =
-clock_dwheel_command =
-
-#-------------------------------------
-# Battery
-battery_tooltip = 1
-battery_low_status = 10
-battery_low_cmd = xmessage 'tint2: Battery low!'
-battery_full_cmd =
-battery_font_color = #ffffff 100
-bat1_format =
-bat2_format =
-battery_padding = 1 0
-battery_background_id = 0
-battery_hide = 101
-battery_lclick_command =
-battery_rclick_command =
-battery_mclick_command =
-battery_uwheel_command =
-battery_dwheel_command =
-ac_connected_cmd =
-ac_disconnected_cmd =
-
-#-------------------------------------
-# Tooltip
-tooltip_show_timeout = 0.5
-tooltip_hide_timeout = 0.1
-tooltip_padding = 4 4
-tooltip_background_id = 5
-tooltip_font_color = #dddddd 100
-
diff --git a/.config/tint2/tint2rc.backup.1623114130 b/.config/tint2/tint2rc.backup.1623114130
deleted file mode 100644
index 887f037..0000000
--- a/.config/tint2/tint2rc.backup.1623114130
+++ /dev/null
@@ -1,216 +0,0 @@
-#---- Generated by tint2conf ef13 ----
-# See https://gitlab.com/o9000/tint2/wikis/Configure for
-# full documentation of the configuration options.
-#-------------------------------------
-# Gradients
-#-------------------------------------
-# Backgrounds
-# Background 1: Panel
-rounded = 0
-border_width = 0
-border_sides = TBLR
-border_content_tint_weight = 0
-background_content_tint_weight = 0
-background_color = #171520 100
-border_color = #171520 100
-background_color_hover = #000000 60
-border_color_hover = #000000 30
-background_color_pressed = #000000 60
-border_color_pressed = #000000 30
-
-# Background 2: Default task, Iconified task
-rounded = 0
-border_width = 1
-border_sides = LR
-border_content_tint_weight = 0
-background_content_tint_weight = 0
-background_color = #9325e7 30
-border_color = #9325e7 40
-background_color_hover = #9325e7 90
-border_color_hover = #eaeaea 44
-background_color_pressed = #9325e7 100
-border_color_pressed = #eaeaea 44
-
-# Background 3: Active task
-rounded = 0
-border_width = 1
-border_sides = LR
-border_content_tint_weight = 0
-background_content_tint_weight = 0
-background_color = #9325e7 100
-border_color = #9325e7 100
-background_color_hover = #ad5aed 100
-border_color_hover = #eaeaea 44
-background_color_pressed = #ad5aed 90
-border_color_pressed = #eaeaea 44
-
-# Background 4: Urgent task
-rounded = 0
-border_width = 1
-border_sides = TBLR
-border_content_tint_weight = 0
-background_content_tint_weight = 0
-background_color = #aa4400 100
-border_color = #aa7733 100
-background_color_hover = #cc7700 100
-border_color_hover = #aa7733 100
-background_color_pressed = #555555 4
-border_color_pressed = #aa7733 100
-
-# Background 5: Tooltip
-rounded = 1
-border_width = 1
-border_sides = TBLR
-border_content_tint_weight = 0
-background_content_tint_weight = 0
-background_color = #222222 100
-border_color = #333333 100
-background_color_hover = #ffffaa 100
-border_color_hover = #000000 100
-background_color_pressed = #ffffaa 100
-border_color_pressed = #000000 100
-
-#-------------------------------------
-# Panel
-panel_items = TFSBC
-panel_size = 100% 32
-panel_margin = 0 0
-panel_padding = 2 0 2
-panel_background_id = 1
-wm_menu = 1
-panel_dock = 0
-panel_pivot_struts = 0
-panel_position = bottom center horizontal
-panel_layer = top
-panel_monitor = all
-panel_shrink = 0
-autohide = 0
-autohide_show_timeout = 0
-autohide_hide_timeout = 0.5
-autohide_height = 2
-strut_policy = follow_size
-panel_window_name = taskbar
-disable_transparency = 1
-mouse_effects = 1
-font_shadow = 0
-mouse_hover_icon_asb = 100 0 10
-mouse_pressed_icon_asb = 100 0 0
-scale_relative_to_dpi = 1
-scale_relative_to_screen_height = 1
-
-#-------------------------------------
-# Taskbar
-taskbar_mode = single_desktop
-taskbar_hide_if_empty = 0
-taskbar_padding = 0 0 2
-taskbar_background_id = 0
-taskbar_active_background_id = 0
-taskbar_name = 1
-taskbar_hide_inactive_tasks = 0
-taskbar_hide_different_monitor = 0
-taskbar_hide_different_desktop = 0
-taskbar_always_show_all_desktop_tasks = 0
-taskbar_name_padding = 0 0
-taskbar_name_background_id = 0
-taskbar_name_active_background_id = 0
-taskbar_name_font = Source Han Sans JP Semi-Bold 12
-taskbar_name_font_color = #e3e3e3 100
-taskbar_name_active_font_color = #ffffff 100
-taskbar_distribute_size = 0
-taskbar_sort_order = center
-task_align = left
-
-#-------------------------------------
-# Task
-task_text = 1
-task_icon = 0
-task_centered = 1
-urgent_nb_of_blink = 100000
-task_maximum_size = 220 0
-task_padding = 0 0 0
-task_font = Source Code Pro 14
-task_tooltip = 1
-task_thumbnail = 0
-task_thumbnail_size = 8
-task_font_color = #ffffff 100
-task_background_id = 2
-task_active_background_id = 3
-task_urgent_background_id = 4
-task_iconified_background_id = 2
-mouse_left = toggle_iconify
-mouse_middle = none
-mouse_right = close
-mouse_scroll_up = toggle
-mouse_scroll_down = iconify
-
-#-------------------------------------
-# System tray (notification area)
-systray_padding = 0 4 2
-systray_background_id = 0
-systray_sort = ascending
-systray_icon_size = 24
-systray_icon_asb = 100 0 0
-systray_monitor = 1
-systray_name_filter =
-
-#-------------------------------------
-# Launcher
-launcher_padding = 2 4 2
-launcher_background_id = 0
-launcher_icon_background_id = 0
-launcher_icon_size = 24
-launcher_icon_asb = 100 0 0
-launcher_icon_theme_override = 0
-startup_notifications = 1
-launcher_tooltip = 1
-launcher_item_app = tint2conf.desktop
-launcher_item_app = firefox.desktop
-launcher_item_app = iceweasel.desktop
-launcher_item_app = chromium-browser.desktop
-launcher_item_app = google-chrome.desktop
-
-#-------------------------------------
-# Clock
-time1_format = %H:%M
-time2_format = %A %d %B
-time1_timezone =
-time2_timezone =
-clock_font_color = #ffffff 100
-clock_padding = 2 0
-clock_background_id = 0
-clock_tooltip =
-clock_tooltip_timezone =
-clock_lclick_command =
-clock_rclick_command = orage
-clock_mclick_command =
-clock_uwheel_command =
-clock_dwheel_command =
-
-#-------------------------------------
-# Battery
-battery_tooltip = 1
-battery_low_status = 25
-battery_low_cmd = notify-send "Battery Low!" "Charge yo laptop"
-battery_full_cmd = notify-send "Battery Full!" "Disconnect yo charger"
-battery_font_color = #ffffff 100
-bat1_format =
-bat2_format =
-battery_padding = 1 0
-battery_background_id = 0
-battery_hide = 101
-battery_lclick_command =
-battery_rclick_command =
-battery_mclick_command =
-battery_uwheel_command =
-battery_dwheel_command =
-ac_connected_cmd =
-ac_disconnected_cmd =
-
-#-------------------------------------
-# Tooltip
-tooltip_show_timeout = 0.5
-tooltip_hide_timeout = 0.1
-tooltip_padding = 4 4
-tooltip_background_id = 5
-tooltip_font_color = #dddddd 100
-
diff --git a/.config/tint2/tint2rc.backup.1629287679 b/.config/tint2/tint2rc.backup.1629287679
deleted file mode 100644
index f5eff27..0000000
--- a/.config/tint2/tint2rc.backup.1629287679
+++ /dev/null
@@ -1,216 +0,0 @@
-#---- Generated by tint2conf c27e ----
-# See https://gitlab.com/o9000/tint2/wikis/Configure for
-# full documentation of the configuration options.
-#-------------------------------------
-# Gradients
-#-------------------------------------
-# Backgrounds
-# Background 1: Battery, Panel
-rounded = 0
-border_width = 0
-border_sides = TBLR
-border_content_tint_weight = 0
-background_content_tint_weight = 0
-background_color = #171520 100
-border_color = #171520 100
-background_color_hover = #000000 60
-border_color_hover = #000000 30
-background_color_pressed = #000000 60
-border_color_pressed = #000000 30
-
-# Background 2: Default task, Iconified task
-rounded = 0
-border_width = 1
-border_sides = LR
-border_content_tint_weight = 0
-background_content_tint_weight = 0
-background_color = #9325e7 30
-border_color = #9325e7 40
-background_color_hover = #9325e7 90
-border_color_hover = #eaeaea 44
-background_color_pressed = #9325e7 100
-border_color_pressed = #eaeaea 44
-
-# Background 3: Active task
-rounded = 0
-border_width = 1
-border_sides = LR
-border_content_tint_weight = 0
-background_content_tint_weight = 0
-background_color = #9325e7 100
-border_color = #9325e7 100
-background_color_hover = #ad5aed 100
-border_color_hover = #eaeaea 44
-background_color_pressed = #ad5aed 90
-border_color_pressed = #eaeaea 44
-
-# Background 4: Urgent task
-rounded = 0
-border_width = 1
-border_sides = TBLR
-border_content_tint_weight = 0
-background_content_tint_weight = 0
-background_color = #aa4400 100
-border_color = #aa7733 100
-background_color_hover = #cc7700 100
-border_color_hover = #aa7733 100
-background_color_pressed = #555555 4
-border_color_pressed = #aa7733 100
-
-# Background 5: Tooltip
-rounded = 1
-border_width = 1
-border_sides = TBLR
-border_content_tint_weight = 0
-background_content_tint_weight = 0
-background_color = #222222 100
-border_color = #333333 100
-background_color_hover = #ffffaa 100
-border_color_hover = #000000 100
-background_color_pressed = #ffffaa 100
-border_color_pressed = #000000 100
-
-#-------------------------------------
-# Panel
-panel_items = TFSBC
-panel_size = 100% 32
-panel_margin = 0 0
-panel_padding = 2 0 2
-panel_background_id = 1
-wm_menu = 1
-panel_dock = 0
-panel_pivot_struts = 0
-panel_position = bottom center horizontal
-panel_layer = top
-panel_monitor = all
-panel_shrink = 0
-autohide = 0
-autohide_show_timeout = 0
-autohide_hide_timeout = 0.5
-autohide_height = 2
-strut_policy = follow_size
-panel_window_name = taskbar
-disable_transparency = 1
-mouse_effects = 1
-font_shadow = 0
-mouse_hover_icon_asb = 100 0 10
-mouse_pressed_icon_asb = 100 0 0
-scale_relative_to_dpi = 1
-scale_relative_to_screen_height = 1
-
-#-------------------------------------
-# Taskbar
-taskbar_mode = single_desktop
-taskbar_hide_if_empty = 0
-taskbar_padding = 0 0 2
-taskbar_background_id = 0
-taskbar_active_background_id = 0
-taskbar_name = 1
-taskbar_hide_inactive_tasks = 0
-taskbar_hide_different_monitor = 0
-taskbar_hide_different_desktop = 0
-taskbar_always_show_all_desktop_tasks = 0
-taskbar_name_padding = 12 0
-taskbar_name_background_id = 0
-taskbar_name_active_background_id = 0
-taskbar_name_font = Source Han Sans JP Semi-Bold 12
-taskbar_name_font_color = #e3e3e3 100
-taskbar_name_active_font_color = #ffffff 100
-taskbar_distribute_size = 0
-taskbar_sort_order = center
-task_align = left
-
-#-------------------------------------
-# Task
-task_text = 1
-task_icon = 0
-task_centered = 1
-urgent_nb_of_blink = 100000
-task_maximum_size = 220 0
-task_padding = 0 0 0
-task_font = Source Code Pro 14
-task_tooltip = 1
-task_thumbnail = 0
-task_thumbnail_size = 8
-task_font_color = #ffffff 100
-task_background_id = 2
-task_active_background_id = 3
-task_urgent_background_id = 4
-task_iconified_background_id = 2
-mouse_left = toggle_iconify
-mouse_middle = none
-mouse_right = close
-mouse_scroll_up = toggle
-mouse_scroll_down = iconify
-
-#-------------------------------------
-# System tray (notification area)
-systray_padding = 0 4 2
-systray_background_id = 0
-systray_sort = ascending
-systray_icon_size = 24
-systray_icon_asb = 100 0 0
-systray_monitor = 1
-systray_name_filter =
-
-#-------------------------------------
-# Launcher
-launcher_padding = 2 4 2
-launcher_background_id = 0
-launcher_icon_background_id = 0
-launcher_icon_size = 24
-launcher_icon_asb = 100 0 0
-launcher_icon_theme_override = 0
-startup_notifications = 1
-launcher_tooltip = 1
-launcher_item_app = tint2conf.desktop
-launcher_item_app = firefox.desktop
-launcher_item_app = iceweasel.desktop
-launcher_item_app = chromium-browser.desktop
-launcher_item_app = google-chrome.desktop
-
-#-------------------------------------
-# Clock
-time1_format = %H:%M
-time2_format = %A %d %B
-time1_timezone =
-time2_timezone =
-clock_font_color = #ffffff 100
-clock_padding = 2 0
-clock_background_id = 0
-clock_tooltip =
-clock_tooltip_timezone =
-clock_lclick_command =
-clock_rclick_command = orage
-clock_mclick_command =
-clock_uwheel_command =
-clock_dwheel_command =
-
-#-------------------------------------
-# Battery
-battery_tooltip = 1
-battery_low_status = 25
-battery_low_cmd = notify-send "Battery Low!" "Charge yo laptop."
-battery_full_cmd = notify-send "Battery Full!" "Disconnect yo charger."
-battery_font_color = #ffffff 100
-bat1_format =
-bat2_format =
-battery_padding = 1 0
-battery_background_id = 1
-battery_hide = 101
-battery_lclick_command =
-battery_rclick_command =
-battery_mclick_command =
-battery_uwheel_command =
-battery_dwheel_command =
-ac_connected_cmd = notify-send "Charger Connected." "Yo laptop is now charging."
-ac_disconnected_cmd = notify-send "Charger Disconnected." "Yo laptop aint charging"
-
-#-------------------------------------
-# Tooltip
-tooltip_show_timeout = 0.5
-tooltip_hide_timeout = 0.1
-tooltip_padding = 4 4
-tooltip_background_id = 5
-tooltip_font_color = #dddddd 100
-
diff --git a/.config/tint2/workspaces.tint2rc b/.config/tint2/workspaces.tint2rc
deleted file mode 100644
index c2cb867..0000000
--- a/.config/tint2/workspaces.tint2rc
+++ /dev/null
@@ -1,182 +0,0 @@
-#---- Generated by tint2conf 6c6f ----
-# See https://gitlab.com/o9000/tint2/wikis/Configure for
-# full documentation of the configuration options.
-#-------------------------------------
-# Gradients
-#-------------------------------------
-# Backgrounds
-# Background 1: Active taskbar, Default task, Inactive taskbar, Panel
-rounded = 0
-border_width = 0
-border_sides = TBLR
-border_content_tint_weight = 0
-background_content_tint_weight = 0
-background_color = #000000 100
-border_color = #000000 100
-background_color_hover = #ffffaa 100
-border_color_hover = #000000 100
-background_color_pressed = #ffffaa 100
-border_color_pressed = #000000 100
-
-# Background 2: Inactive desktop name
-rounded = 0
-border_width = 0
-border_sides = TBLR
-border_content_tint_weight = 0
-background_content_tint_weight = 0
-background_color = #000000 100
-border_color = #777777 30
-background_color_hover = #ffffff 22
-border_color_hover = #eaeaea 44
-background_color_pressed = #ffffff 100
-border_color_pressed = #eaeaea 44
-
-# Background 3: Active desktop name
-rounded = 0
-border_width = 0
-border_sides = TBLR
-border_content_tint_weight = 0
-background_content_tint_weight = 0
-background_color = #d33682 100
-border_color = #ffffff 40
-background_color_hover = #aaaaaa 22
-border_color_hover = #eaeaea 44
-background_color_pressed = #555555 4
-border_color_pressed = #eaeaea 44
-
-#-------------------------------------
-# Panel
-panel_items = T:
-panel_size = 26% 32
-panel_margin = 0 0
-panel_padding = 6 6 0
-panel_background_id = 1
-wm_menu = 0
-panel_dock = 0
-panel_pivot_struts = 0
-panel_position = bottom center horizontal
-panel_layer = normal
-panel_monitor = all
-panel_shrink = 0
-autohide = 0
-autohide_show_timeout = 0
-autohide_hide_timeout = 0.5
-autohide_height = 2
-strut_policy = none
-panel_window_name = workspace-panel
-disable_transparency = 1
-mouse_effects = 1
-font_shadow = 0
-mouse_hover_icon_asb = 100 0 10
-mouse_pressed_icon_asb = 100 0 8
-scale_relative_to_dpi = 0
-scale_relative_to_screen_height = 0
-
-#-------------------------------------
-# Taskbar
-taskbar_mode = multi_desktop
-taskbar_hide_if_empty = 0
-taskbar_padding = 0 2 0
-taskbar_background_id = 1
-taskbar_active_background_id = 1
-taskbar_name = 1
-taskbar_hide_inactive_tasks = 1
-taskbar_hide_different_monitor = 0
-taskbar_hide_different_desktop = 0
-taskbar_always_show_all_desktop_tasks = 0
-taskbar_name_padding = 8 2
-taskbar_name_background_id = 2
-taskbar_name_active_background_id = 3
-taskbar_name_font = Source Han Sans JP 12
-taskbar_name_font_color = #268bd2 100
-taskbar_name_active_font_color = #ffffff 100
-taskbar_distribute_size = 0
-taskbar_sort_order = none
-task_align = center
-
-#-------------------------------------
-# Task
-task_text = 0
-task_icon = 0
-task_centered = 1
-urgent_nb_of_blink = 100000
-task_maximum_size = 0 30
-task_padding = 0 0 0
-task_font = Noto Sans 8
-task_tooltip = 1
-task_thumbnail = 0
-task_thumbnail_size = 210
-task_font_color = #ffffff 100
-task_background_id = 1
-mouse_left = toggle_iconify
-mouse_middle = none
-mouse_right = close
-mouse_scroll_up = none
-mouse_scroll_down = none
-
-#-------------------------------------
-# System tray (notification area)
-systray_padding = 0 0 0
-systray_background_id = -1
-systray_sort = ascending
-systray_icon_size = 0
-systray_icon_asb = 100 0 0
-systray_monitor = primary
-systray_name_filter =
-
-#-------------------------------------
-# Launcher
-launcher_padding = 0 0 0
-launcher_background_id = -1
-launcher_icon_background_id = -1
-launcher_icon_size = 0
-launcher_icon_asb = 100 0 0
-launcher_icon_theme_override = 0
-startup_notifications = 0
-launcher_tooltip = 0
-
-#-------------------------------------
-# Clock
-time1_format =
-time2_format =
-time1_timezone =
-time2_timezone =
-clock_font_color = #000000 100
-clock_padding = 0 0
-clock_background_id = -1
-clock_tooltip =
-clock_tooltip_timezone =
-clock_lclick_command =
-clock_rclick_command =
-clock_mclick_command =
-clock_uwheel_command =
-clock_dwheel_command =
-
-#-------------------------------------
-# Battery
-battery_tooltip = 1
-battery_low_status = 0
-battery_low_cmd =
-battery_full_cmd =
-battery_font_color = #000000 100
-bat1_format =
-bat2_format =
-battery_padding = 0 0
-battery_background_id = -1
-battery_hide = 0
-battery_lclick_command =
-battery_rclick_command =
-battery_mclick_command =
-battery_uwheel_command =
-battery_dwheel_command =
-ac_connected_cmd =
-ac_disconnected_cmd =
-
-#-------------------------------------
-# Tooltip
-tooltip_show_timeout = 0
-tooltip_hide_timeout = 0
-tooltip_padding = 0 0
-tooltip_background_id = -1
-tooltip_font_color = #000000 100
-
diff --git a/.config/tint2/workspaces.tint2rc.backup.1631544866 b/.config/tint2/workspaces.tint2rc.backup.1631544866
deleted file mode 100644
index 5b2f0b7..0000000
--- a/.config/tint2/workspaces.tint2rc.backup.1631544866
+++ /dev/null
@@ -1,110 +0,0 @@
-# Backgrounds
-# Background 1:
-rounded = 0
-border_width = 0
-border_sides = TBLR
-border_content_tint_weight = 0
-background_content_tint_weight = 0
-background_color = #000000 100
-border_color = #000000 100
-background_color_hover = #ffffaa 100
-border_color_hover = #000000 100
-background_color_pressed = #ffffaa 100
-border_color_pressed = #000000 100
-
-# Background 2:
-rounded = 0
-border_width = 0
-border_sides = TBLR
-border_content_tint_weight = 0
-background_content_tint_weight = 0
-background_color = #000000 100
-border_color = #777777 30
-background_color_hover = #ffffff 22
-border_color_hover = #eaeaea 44
-background_color_pressed = #ffffff 100
-border_color_pressed = #eaeaea 44
-
-# Background 3:
-rounded = 0
-border_width = 0
-border_sides = TBLR
-border_content_tint_weight = 0
-background_content_tint_weight = 0
-background_color = #d33682 100
-border_color = #ffffff 40
-background_color_hover = #aaaaaa 22
-border_color_hover = #eaeaea 44
-background_color_pressed = #555555 4
-border_color_pressed = #eaeaea 44
-
-# Panel
-panel_items = T:
-panel_size = 26% 32
-panel_margin = 0 0
-panel_padding = 0 0 0
-panel_background_id = 1
-wm_menu = 1
-panel_dock = 0
-panel_pivot_struts = 0
-panel_position = bottom left horizontal
-panel_layer = normal
-panel_monitor = all
-panel_shrink = 0
-autohide = 0
-autohide_show_timeout = 0
-autohide_hide_timeout = 0.5
-autohide_height = 2
-strut_policy = none
-panel_window_name = workspace-panel
-disable_transparency = 1
-mouse_effects = 1
-font_shadow = 0
-mouse_hover_icon_asb = 100 0 10
-mouse_pressed_icon_asb = 100 0 0
-scale_relative_to_dpi = 0
-scale_relative_to_screen_height = 0
-
-#-------------------------------------
-# Taskbar
-taskbar_mode = multi_desktop
-taskbar_hide_if_empty = 0
-taskbar_padding = 0 2 0
-taskbar_background_id = 1
-taskbar_active_background_id = 1
-taskbar_name = 1
-taskbar_hide_inactive_tasks = 1
-taskbar_hide_different_monitor = 0
-taskbar_hide_different_desktop = 0
-taskbar_always_show_all_desktop_tasks = 0
-taskbar_name_padding = 8 2
-taskbar_name_background_id = 2
-taskbar_name_active_background_id = 3
-taskbar_name_font = Source Han Sans JP 12
-taskbar_name_font_color = #268bd2 100
-taskbar_name_active_font_color = #ffffff 100
-taskbar_name_unoccupied_font_color = #026fc4 100
-taskbar_distribute_size = 0
-taskbar_sort_order = none
-# if not centered it glitches while changing ws
-task_align = center
-
-#-------------------------------------
-# Task
-task_text = 0
-task_icon = 0
-task_centered = 1
-urgent_nb_of_blink = 100000
-task_maximum_size = 0
-task_padding = 0 0 0
-task_font = Noto Sans 8
-task_tooltip = 1
-task_thumbnail = 0
-task_thumbnail_size = 210
-task_font_color = #ffffff 100
-task_background_id = 1
-mouse_left = none #toggle_iconify
-mouse_middle = none
-mouse_right = none #close
-mouse_scroll_up = none #toggle
-mouse_scroll_down = none #iconify
diff --git a/.scripts/luastatus-dwm b/.scripts/luastatus-dwm
new file mode 100755
index 0000000..b9b8412
--- /dev/null
+++ b/.scripts/luastatus-dwm
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+echo "" > /tmp/bar_status
+
+cd ~/.config/luastatus-scripts-dwm/
+
+# luastatus -b dwm -B separator=' ' file-contents.lua wireless.lua mem-usage.lua cpu-usage.lua cpu-temperature.lua bluetooth.lua battery.lua time-date.lua backlight.lua
+
+# temporarily disabling cpu temp as it's *probbaly* causing issues
+luastatus -b dwm -B separator='' backlight.lua mem-usage.lua cpu-usage.lua bluetooth.lua network.lua battery.lua time-date.lua
diff --git a/.scripts/switch-keyboard-layout b/.scripts/switch-keyboard-layout
new file mode 100755
index 0000000..124fd9c
--- /dev/null
+++ b/.scripts/switch-keyboard-layout
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+current_layout=$(setxkbmap -query | awk '/variant/{print $2}')
+
+if [[ "$current_layout" == "dvorak" ]]; then
+ setxkbmap -layout us -option caps:swapescape
+ notify-send "Keyboard Layout" "Switched to QWERTY"
+else
+ setxkbmap -layout us -variant dvorak -option caps:swapescape
+ notify-send "Keyboard Layout" "Switched to Dvorak"
+fi
diff --git a/.xprofile b/.xprofile
index 837554b..fc018f5 100755
--- a/.xprofile
+++ b/.xprofile
@@ -1,12 +1,11 @@
-#!/bin/zsh
+#!/bin/sh
# set .zshenv
-[[ -f ~/.config/zsh/.zshenv ]] && source ~/.config/zsh/.zshenv
+# [[ -f ~/.config/zsh/.zshenv ]] && source ~/.config/zsh/.zshenv
# makes gnome-keyring work
-# dbus-update-activation-environment --all &
+bus-update-activation-environment --all &
-# autostart apps for both xmonad and any other DE
# emacs --daemon &
#virtual_mic.sh &
@@ -14,25 +13,24 @@ nitrogen --restore &
# turn on the red danger light on the side
# so i know it's turned on without opening the lid
-brightnessctl --device hp::hddprotect set 100%
-
-# autostart apps only for XMonad
-if [[ "$DESKTOP_SESSION" = "dwm" ]]; then
- # screensetup.sh &
-
- # autostart apps
- # picom &
- # dunst &
- # udiskie &
-
- # glava -dm radial &
- # polystart &
- # nm-applet &
- # blueman-applet &
- # flameshot &
-
- while :; do
- xsetroot -name "BAT: $(acpi | awk '{print $4}' | sed s/,//) | $(date '+%Y-%m-%d %H:%M:%S')"
- sleep 1
- done &
+brightnessctl --device hp::hddprotect set 100% &
+
+deadd-notification-center &
+screensetup.sh &
+lxpolkit &
+#$(setxkbmap -layout us,us -variant dvorak, -option caps:swapescape && sxhkd) &
+$(~/.scripts/switch-keyboard-layout && sxhkd) &
+
+picom &
+# dunst &
+# udiskie &
+
+# glava -dm radial &
+# polystart &
+nm-applet &
+blueman-applet &
+flameshot &
+
+if [ "$DESKTOP_SESSION" = "dwm" ]; then
+ luastatus-dwm &
fi
diff --git a/CGIT_README.md b/CGIT_README.md
new file mode 100644
index 0000000..52fb19e
--- /dev/null
+++ b/CGIT_README.md
@@ -0,0 +1,19 @@
+# Yahallo y'all
+
+I'm Vidhu Kant. I'm a hobbyist, self taught developer and like to write little
+programs to make my life easier (or harder depending on when you ask me). If
+you check out my projects and want to either contribute, or just have
+suggestions or just appreciate what I do, you can find my contact info over at
+<https://vidhukant.com>. Hearing from people makes me happy!
+
+## My websites
+
+I have a personal website hosted at <https://vidhukant.com> where I sometimes
+also sometimes update my blog to post about nerdy stuff. My main blog,
+[The NonPersonal Diary](https://the.nonpersonal.diary/) is also
+worth checking out.
+
+## Find me in other places
+
+I also have accounts on [GitLab](https://gitlab.com/VidhuKant) and
+[GitHub](https://github.com/VidhuKant) but I don't really use them much.
diff --git a/cgit.css b/cgit.css
deleted file mode 100644
index c8c7123..0000000
--- a/cgit.css
+++ /dev/null
@@ -1,1033 +0,0 @@
-:root {
- --bg1: #dfdfdf;
- --bg2: #fff;
- --bg3: #afafaf;
-
- --fg1: #232627;
- --fg2: #232627;
- --fg3: #2ed19b;
- --fg-disabled: gray;
-
- --codeblock-bg: #303132;
- --codeblock-fg: #ffffff;
-
- --accent1: #BF87D0;
- --accent1rgb: rgb(191, 135, 208);
- --accent1rgba7: rgba(191, 135, 208, 0.7);
- --accent1rgba9: rgba(191, 135, 208, 0.9);
-
- --red1: red;
- --red2: #c00;
- --red3: #a00;
- --red4: #c55;
-
- --green1: green;
- --green2: #5c5;
- --green3: #0a0;
- --green4: #080;
-
- --yellow1: #aa0;
-
- --magenta1: #a0a;
-
- --blue1: #00a;
- --blue2: #009;
-
- --cyan1: #0aa;
-
- --gray1: #777;
- --gray2: gray;
- --gray3: #888;
-}
-
-@media (prefers-color-scheme: dark) {
- :root {
- --bg1: #232627;
- --bg2: #161020;
- --bg3: #151515;
-
- --fg1: white;
- --fg2: #232627;
- --fg3: #2ed19b;
- --fg-disabled: lightgray;
-
- --accent1: #BF87D0;
- --accent1rgb: rgb(191, 135, 208);
- --accent1rgba7: rgba(191, 135, 208, 0.7);
- --accent1rgba9: rgba(191, 135, 208, 0.9);
-
- --red1: #e25b5b;
- --green1: #46a446;
- --blue2: #6957f3;
- }
-}
-
-.markdown-body h1 a,
-.markdown-body h2 a,
-.markdown-body h3 a,
-.markdown-body h4 a,
-.markdown-body h5 a,
-.markdown-body h6 a {
- color: var(--fg1) !important;
-}
-
-code {
- background-color: var(--codeblock-bg);
- color: var(--codeblock-fg);
- padding: 5px 8px;
- border-radius: 4px;
- font-family: monospace;
-}
-
-pre code {
- overflow-x: auto;
- display: block;
-}
-
-.markdown-body pre,
-.markdown-body code {
- background-color: var(--codeblock-bg) !important;
- color: var(--codeblock-fg) !important;
-}
-
-.ctrl select {
- background-color: var(--bg1);
- color: var(--fg1);
- border: 1px solid var(--accent1);
-}
-
-div#cgit {
- padding: 0em;
- margin: 0em;
- font-family: sans-serif;
- font-size: 10pt;
- color: var(--fg1);
- background: var(--bg1);
- padding: 4px;
-}
-
-table.list tbody tr.nohover th a {
- color: var(--fg-disabled);
-}
-
-body {
- background-color: var(--bg2);
- color: var(--fg1);
-}
-
-div#cgit a {
- color: var(--fg3);
- text-decoration: none;
-}
-
-div#cgit a:hover {
- text-decoration: underline;
-}
-
-div#cgit table {
- border-collapse: collapse;
-}
-
-div#cgit table#header {
- width: 100%;
- margin-bottom: 1em;
-}
-
-div#cgit table#header td.logo {
- width: 96px;
- vertical-align: top;
-}
-
-div#cgit table#header td.main {
- font-size: 250%;
- padding-left: 10px;
- white-space: nowrap;
-}
-
-div#cgit table#header td.main a {
- color: var(--fg1);
-}
-
-div#cgit table#header td.form {
- text-align: right;
- vertical-align: bottom;
- padding-right: 1em;
- padding-bottom: 2px;
- white-space: nowrap;
-}
-
-div#cgit table#header td.form form,
-div#cgit table#header td.form input,
-div#cgit table#header td.form select {
- background-color: var(--bg1);
- color: var(--fg1);
-}
-
-div#cgit table#header td.form input,
-div#cgit table#header td.form select {
- border: 1px solid var(--accent1);
- padding: 0.2rem 0.8rem;
-}
-
-div#cgit table#header td.sub {
- color: var(--fg1);
- padding-left: 10px;
- padding-top: 1rem;
-}
-
-div#cgit table.tabs {
- border-bottom: solid 3px var(--accent1);
- border-collapse: collapse;
- margin-top: 2em;
- margin-bottom: 0px;
- width: 100%;
-}
-
-div#cgit table.tabs td {
- padding: 0px 1em;
- vertical-align: bottom;
-}
-
-div#cgit table.tabs td a {
- padding: 2px 0.75em;
- color: var(--fg1);
- font-size: 110%;
-}
-
-div#cgit table.tabs td a.active {
- color: var(--fg2);
- background-color: var(--accent1);
-}
-
-div#cgit table.tabs a[href^="http://"]:after, div#cgit table.tabs a[href^="https://"]:after {
- content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAQAAAAnOwc2AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfgAhcJDQY+gm2TAAAAHWlUWHRDb21tZW50AAAAAABDcmVhdGVkIHdpdGggR0lNUGQuZQcAAABbSURBVAhbY2BABs4MU4CwhYHBh2Erww4wrGFQZHjI8B8IgUIscJWyDHcggltQhI4zGDCcRwhChPggHIggP1QoAVmQkSETrGoHsiAEsACtBYN0oDAMbgU6EBcAAL2eHUt4XUU4AAAAAElFTkSuQmCC);
- opacity: 0.5;
- margin: 0 0 0 5px;
-}
-
-div#cgit table.tabs td.form {
- text-align: right;
-}
-
-div#cgit table.tabs td.form form {
- padding-bottom: 2px;
- font-size: 90%;
- white-space: nowrap;
-}
-
-div#cgit table.tabs td.form input,
-div#cgit table.tabs td.form select {
- padding: 0.2rem 0.8rem;
- background-color: var(--bg1);
- color: var(--fg1);
- border: 1px solid var(--accent1);
-}
-
-div#cgit div.path {
- margin: 0px;
- padding: 5px 2em 2px 2em;
- color: var(--fg1);
- background-color: var(--bg1);
-}
-
-div#cgit div.content {
- margin: 0px;
- padding: 2em;
- border-bottom: solid 3px var(--accent1);
-}
-
-
-div#cgit table.list {
- width: 100%;
- border: none;
- border-collapse: collapse;
-}
-
-div#cgit table.list tr {
- background-color: var(--bg1);
-}
-
-div#cgit table.list tr.logheader {
- background: var(--bg1);
-}
-
-div#cgit table.list tr:nth-child(even) {
- background: var(--bg3);
-}
-
-div#cgit table.list tr:nth-child(odd) {
- background: var(--bg1);
-}
-
-div#cgit table.list tr:hover {
- background-color: var(--accent1rgba7);
-}
-
-div#cgit table.list tr:hover td a {
- color: var(--fg1);
-}
-
-div#cgit table.list tr.nohover {
- background-color: var(--accent1rgba9);
- color: var(--bg1);
-}
-
-div#cgit table.list tr.nohover a {
- color: var(--bg2);
-}
-
-div#cgit table.list tr.nohover:hover {
- background-color: var(--accent1rgb);
-}
-
-div#cgit table.list tr.nohover-highlight:hover:nth-child(even) {
- background-color: var(--accent1rgba9);
-}
-
-div#cgit table.list tr.nohover-highlight:hover:nth-child(odd) {
- background-color: var(--accent1rgba7);
-}
-
-div#cgit table.list th {
- font-weight: bold;
- padding: 0.1em 0.5em 0.05em 0.5em;
- vertical-align: baseline;
-}
-
-div#cgit table.list td {
- border: none;
- padding: 0.1em 0.5em 0.1em 0.5em;
-}
-
-div#cgit table.list td.commitgraph {
- font-family: monospace;
- white-space: pre;
-}
-
-div#cgit table.list td.commitgraph .column1 {
- color: var(--red3);
-}
-
-div#cgit table.list td.commitgraph .column2 {
- color: var(--green3);
-}
-
-div#cgit table.list td.commitgraph .column3 {
- color: var(--yellow1);
-}
-
-div#cgit table.list td.commitgraph .column4 {
- color: var(--blue1);
-}
-
-div#cgit table.list td.commitgraph .column5 {
- color: var(--magenta1);
-}
-
-div#cgit table.list td.commitgraph .column6 {
- color: var(--cyan1);
-}
-
-div#cgit table.list td.logsubject {
- font-family: monospace;
- font-weight: bold;
-}
-
-div#cgit table.list td.logmsg {
- font-family: monospace;
- white-space: pre;
- padding: 0 0.5em;
-}
-
-div#cgit table.list td a {
- color: var(--fg1);
-}
-
-div#cgit table.list td a.ls-dir {
- font-weight: bold;
- color: var(--accent1);
-}
-
-div#cgit table.list td a:hover {
- color: var(--fg1);
-}
-
-div#cgit img {
- border: none;
-}
-
-div#cgit input#switch-btn {
- margin: 2px 0px 0px 0px;
-}
-
-div#cgit td#sidebar input.txt {
- width: 100%;
- margin: 2px 0px 0px 0px;
-}
-
-div#cgit table#grid {
- margin: 0px;
-}
-
-div#cgit td#content {
- vertical-align: top;
- padding: 1em 2em 1em 1em;
- border: none;
-}
-
-div#cgit div#summary {
- vertical-align: top;
- margin-bottom: 1em;
-}
-
-div#cgit table#downloads {
- float: right;
- border-collapse: collapse;
- border: solid 1px var(--gray1);
- margin-left: 0.5em;
- margin-bottom: 0.5em;
-}
-
-div#cgit table#downloads th {
- background-color: var(--bg1);
-}
-
-div#cgit div#blob {
- border: solid 1px black;
-}
-
-div#cgit div.error {
- color: var(--red1);
- font-weight: bold;
- margin: 1em 2em;
-}
-
-div#cgit a.ls-blob, div#cgit a.ls-dir, div#cgit .ls-mod {
- font-family: monospace;
-}
-
-div#cgit td.ls-size {
- text-align: right;
- font-family: monospace;
- width: 10em;
-}
-
-div#cgit td.ls-mode {
- font-family: monospace;
- width: 10em;
-}
-
-div#cgit table.blob {
- margin-top: 0.5em;
- border-top: solid 1px black;
-}
-
-div#cgit table.blob td.hashes,
-div#cgit table.blob td.lines {
- margin: 0; padding: 0 0 0 0.5em;
- vertical-align: top;
- color: var(--fg1);
-}
-
-div#cgit table.blob td.linenumbers {
- margin: 0; padding: 0 0.5em 0 0.5em;
- vertical-align: top;
- text-align: right;
- border-right: 1px solid var(--gray2);
-}
-
-div#cgit table.blob pre {
- padding: 0; margin: 0;
-}
-
-div#cgit table.blob td.linenumbers a,
-div#cgit table.ssdiff td.lineno a {
- color: var(--gray2);
- text-align: right;
- text-decoration: none;
-}
-
-div#cgit table.blob td.linenumbers a:hover,
-div#cgit table.ssdiff td.lineno a:hover {
- color: var(--fg1);
-}
-
-div#cgit table.blame td.hashes,
-div#cgit table.blame td.lines,
-div#cgit table.blame td.linenumbers {
- padding: 0;
-}
-
-div#cgit table.blame td.hashes div.alt,
-div#cgit table.blame td.lines div.alt {
- padding: 0 0.5em 0 0.5em;
-}
-
-div#cgit table.blame td.linenumbers div.alt {
- padding: 0 0.5em 0 0;
-}
-
-div#cgit table.blame div.alt:nth-child(even) {
- background: var(--bg3);
-}
-
-div#cgit table.blame div.alt:nth-child(odd) {
- background: var(--bg1);
-}
-
-div#cgit table.blame td.lines > div {
- position: relative;
-}
-
-div#cgit table.blame td.lines > div > pre {
- padding: 0 0 0 0.5em;
- position: absolute;
- top: 0;
-}
-
-div#cgit table.bin-blob {
- margin-top: 0.5em;
- border: solid 1px black;
-}
-
-div#cgit table.bin-blob th {
- font-family: monospace;
- white-space: pre;
- border: solid 1px var(--gray1);
- padding: 0.5em 1em;
-}
-
-div#cgit table.bin-blob td {
- font-family: monospace;
- white-space: pre;
- border-left: solid 1px var(--gray1);
- padding: 0em 1em;
-}
-
-div#cgit table.nowrap td {
- white-space: nowrap;
-}
-
-div#cgit table.commit-info {
- border-collapse: collapse;
- margin-top: 1.5em;
-}
-
-div#cgit div.cgit-panel {
- float: right;
- margin-top: 1.5em;
-}
-
-div#cgit div.cgit-panel table {
- border-collapse: collapse;
- border: solid 1px var(--accent1);
- background-color: var(--bg1);
-}
-
-div#cgit div.cgit-panel th {
- text-align: center;
-}
-
-div#cgit div.cgit-panel td {
- padding: 0.25em 0.5em;
-}
-
-div#cgit div.cgit-panel td.label {
- padding-right: 0.5em;
-}
-
-div#cgit div.cgit-panel td.ctrl {
- padding-left: 0.5em;
-}
-
-div#cgit table.commit-info th {
- text-align: left;
- font-weight: normal;
- padding: 0.1em 1em 0.1em 0.1em;
- vertical-align: top;
-}
-
-div#cgit table.commit-info td {
- font-weight: normal;
- padding: 0.1em 1em 0.1em 0.1em;
-}
-
-div#cgit div.commit-subject {
- font-weight: bold;
- font-size: 125%;
- margin: 1.5em 0em 0.5em 0em;
- padding: 0em;
-}
-
-div#cgit div.commit-msg {
- white-space: pre;
- font-family: monospace;
-}
-
-div#cgit div.notes-header {
- font-weight: bold;
- padding-top: 1.5em;
-}
-
-div#cgit div.notes {
- white-space: pre;
- font-family: monospace;
- border: solid 1px #ee9;
- background-color: #ffd;
- padding: 0.3em 2em 0.3em 1em;
- float: left;
-}
-
-div#cgit div.notes-footer {
- clear: left;
-}
-
-div#cgit div.diffstat-header {
- font-weight: bold;
- padding-top: 1.5em;
-}
-
-div#cgit table.diffstat {
- border-collapse: collapse;
- border: solid 1px var(--accent1);
- background-color: var(--bg1);
-}
-
-div#cgit table.diffstat th {
- font-weight: normal;
- text-align: left;
- text-decoration: underline;
- padding: 0.1em 1em 0.1em 0.1em;
- font-size: 100%;
-}
-
-div#cgit table.diffstat td {
- padding: 0.2em 0.2em 0.1em 0.1em;
- font-size: 100%;
- border: none;
-}
-
-div#cgit table.diffstat td.mode {
- white-space: nowrap;
-}
-
-div#cgit table.diffstat td span.modechange {
- padding-left: 1em;
- color: var(--red1);
-}
-
-div#cgit table.diffstat td.add a {
- color: var(--green1);
-}
-
-div#cgit table.diffstat td.del a {
- color: var(--red1);
-}
-
-div#cgit table.diffstat td.upd a {
- color: var(--fg-disabled);
-}
-
-div#cgit table.diffstat td.graph {
- width: 500px;
- vertical-align: middle;
-}
-
-div#cgit table.diffstat td.graph table {
- border: none;
-}
-
-div#cgit table.diffstat td.graph td {
- padding: 0px;
- border: 0px;
- height: 7pt;
-}
-
-div#cgit table.diffstat td.graph td.add {
- background-color: var(--green2);
-}
-
-div#cgit table.diffstat td.graph td.rem {
- background-color: var(--red4);
-}
-
-div#cgit div.diffstat-summary {
- color: var(--gray3);
- padding-top: 0.5em;
-}
-
-div#cgit table.diff {
- width: 100%;
-}
-
-div#cgit table.diff td {
- font-family: monospace;
- white-space: pre;
-}
-
-div#cgit table.diff td div.head {
- font-weight: bold;
- margin-top: 1em;
- color: black;
-}
-
-div#cgit table.diff td div.hunk {
- color: var(--blue2);
-}
-
-div#cgit table.diff td div.add {
- color: var(--green1);
-}
-
-div#cgit table.diff td div.del {
- color: var(--red1);
-}
-
-div#cgit .sha1 {
- font-family: monospace;
- font-size: 90%;
-}
-
-div#cgit .left {
- text-align: left;
-}
-
-div#cgit .right {
- text-align: right;
-}
-
-div#cgit table.list td.reposection {
- font-style: italic;
- color: var(--gray3);
-}
-
-div#cgit a.button {
- font-size: 80%;
- padding: 0em 0.5em;
-}
-
-div#cgit a.primary {
- font-size: 100%;
-}
-
-div#cgit a.secondary {
- font-size: 90%;
-}
-
-div#cgit td.toplevel-repo {
-
-}
-
-div#cgit table.list td.sublevel-repo {
- padding-left: 1.5em;
-}
-
-div#cgit ul.pager {
- list-style-type: none;
- text-align: center;
- margin: 1em 0em 0em 0em;
- padding: 0;
-}
-
-div#cgit ul.pager li {
- display: inline-block;
- margin: 0.25em 0.5em;
-}
-
-div#cgit ul.pager a {
- color: var(--gray1);
-}
-
-div#cgit ul.pager .current {
- font-weight: bold;
-}
-
-div#cgit span.age-mins {
- font-weight: bold;
- color: var(--green4);
-}
-
-div#cgit span.age-hours {
- color: var(--green4);
-}
-
-div#cgit span.age-days {
- color: #040;
-}
-
-div#cgit span.age-weeks {
- color: #444;
-}
-
-div#cgit span.age-months {
- color: var(--gray3);
-}
-
-div#cgit span.age-years {
- color: #bbb;
-}
-
-div#cgit span.insertions {
- color: var(--green4);
-}
-
-div#cgit span.deletions {
- color: #800;
-}
-
-div#cgit div.footer {
- margin-top: 0.5em;
- text-align: center;
- font-size: 80%;
- color: #ffcc88;
-}
-
-div#cgit div.footer a {
- text-decoration: none;
-}
-
-div#cgit div.footer a:hover {
- text-decoration: underline;
-}
-
-div#cgit a.branch-deco {
- color: black !important;
- margin: 0px 0.5em;
- padding: 0px 0.25em;
- background-color: #88ff88;
- border: solid 1px #007700;
-}
-
-div#cgit a.tag-deco {
- color: #000 !important;
- margin: 0px 0.5em;
- padding: 0px 0.25em;
- background-color: #ffff88;
- border: solid 1px #777700;
-}
-
-div#cgit a.tag-annotated-deco {
- color: #000 !important;
- margin: 0px 0.5em;
- padding: 0px 0.25em;
- background-color: #ffcc88;
- border: solid 1px #777700;
-}
-
-div#cgit a.remote-deco {
- color: #000 !important;
- margin: 0px 0.5em;
- padding: 0px 0.25em;
- background-color: #ccccff;
- border: solid 1px #000077;
-}
-
-div#cgit a.deco {
- color: #000 !important;
- margin: 0px 0.5em;
- padding: 0px 0.25em;
- background-color: #ff8888;
- border: solid 1px #770000;
-}
-
-div#cgit div.commit-subject a.branch-deco,
-div#cgit div.commit-subject a.tag-deco,
-div#cgit div.commit-subject a.tag-annotated-deco,
-div#cgit div.commit-subject a.remote-deco,
-div#cgit div.commit-subject a.deco {
- margin-left: 1em;
- font-size: 75%;
-}
-
-div#cgit table.stats {
- border: solid 1px black;
- border-collapse: collapse;
-}
-
-div#cgit table.stats th {
- text-align: left;
- padding: 1px 0.5em;
- background-color: #eee;
- border: solid 1px black;
-}
-
-div#cgit table.stats td {
- text-align: right;
- padding: 1px 0.5em;
- border: solid 1px black;
-}
-
-div#cgit table.stats td.total {
- font-weight: bold;
- text-align: left;
-}
-
-div#cgit table.stats td.sum {
- color: var(--red2);
- font-weight: bold;
-/* background-color: #eee; */
-}
-
-div#cgit table.stats td.left {
- text-align: left;
-}
-
-div#cgit table.vgraph {
- border-collapse: separate;
- border: solid 1px black;
- height: 200px;
-}
-
-div#cgit table.vgraph th {
- background-color: #eee;
- font-weight: bold;
- border: solid 1px var(--fg1);
- padding: 1px 0.5em;
-}
-
-div#cgit table.vgraph td {
- vertical-align: bottom;
- padding: 0px 10px;
-}
-
-div#cgit table.vgraph div.bar {
- background-color: #eee;
-}
-
-div#cgit table.hgraph {
- border: solid 1px black;
- width: 800px;
-}
-
-div#cgit table.hgraph th {
- background-color: #eee;
- font-weight: bold;
- border: solid 1px black;
- padding: 1px 0.5em;
-}
-
-div#cgit table.hgraph td {
- vertical-align: middle;
- padding: 2px 2px;
-}
-
-div#cgit table.hgraph div.bar {
- background-color: #eee;
- height: 1em;
-}
-
-div#cgit table.ssdiff {
- width: 100%;
-}
-
-div#cgit table.ssdiff td {
- font-size: 75%;
- font-family: monospace;
- white-space: pre;
- padding: 1px 4px 1px 4px;
- border-left: solid 1px #aaa;
- border-right: solid 1px #aaa;
-}
-
-div#cgit table.ssdiff td.add {
- color: black;
- background: #cfc;
- min-width: 50%;
-}
-
-div#cgit table.ssdiff td.add_dark {
- color: black;
- background: #aca;
- min-width: 50%;
-}
-
-div#cgit table.ssdiff span.add {
- background: #cfc;
- font-weight: bold;
-}
-
-div#cgit table.ssdiff td.del {
- color: black;
- background: #fcc;
- min-width: 50%;
-}
-
-div#cgit table.ssdiff td.del_dark {
- color: black;
- background: #caa;
- min-width: 50%;
-}
-
-div#cgit table.ssdiff span.del {
- background: #fcc;
- font-weight: bold;
-}
-
-div#cgit table.ssdiff td.changed {
- color: black;
- background: #ffc;
- min-width: 50%;
-}
-
-div#cgit table.ssdiff td.changed_dark {
- color: black;
- background: #cca;
- min-width: 50%;
-}
-
-div#cgit table.ssdiff td.lineno {
- color: black;
- background: #eee;
- text-align: right;
- width: 3em;
- min-width: 3em;
-}
-
-div#cgit table.ssdiff td.hunk {
- color: black;
- background: #ccf;
- border-top: solid 1px #aaa;
- border-bottom: solid 1px #aaa;
-}
-
-div#cgit table.ssdiff td.head {
- border-top: solid 1px #aaa;
- border-bottom: solid 1px #aaa;
-}
-
-div#cgit table.ssdiff td.head div.head {
- font-weight: bold;
- color: black;
-}
-
-div#cgit table.ssdiff td.foot {
- border-top: solid 1px #aaa;
- border-left: none;
- border-right: none;
- border-bottom: none;
-}
-
-div#cgit table.ssdiff td.space {
- border: none;
-}
-
-div#cgit table.ssdiff td.space div {
- min-height: 3em;
-}
-
-/* Style definition file generated by highlight 3.9, http://www.andre-simon.de/ */
-/* Highlighting theme: Kwrite Editor */
-/* adapted for cgit */
-div#cgit table.blob .num { color:#b07e00; }
-div#cgit table.blob .esc { color:#ff00ff; }
-div#cgit table.blob .str { color:#bf0303; }
-div#cgit table.blob .pps { color:#818100; }
-div#cgit table.blob .slc { color:#838183; font-style:italic; }
-div#cgit table.blob .com { color:#838183; font-style:italic; }
-div#cgit table.blob .ppc { color:#008200; }
-div#cgit table.blob .opt { color:#000000; }
-div#cgit table.blob .lin { color:#555555; }
-div#cgit table.blob .kwa { color:#000000; font-weight:bold; }
-div#cgit table.blob .kwb { color:#0057ae; }
-div#cgit table.blob .kwc { color:#000000; font-weight:bold; }
-div#cgit table.blob .kwd { color:#010181; }
diff --git a/cgit.svg b/cgit.svg
new file mode 100644
index 0000000..a21b364
--- /dev/null
+++ b/cgit.svg
@@ -0,0 +1,10 @@
+<svg viewBox="0 0 450.00002 299.5628" xmlns="http://www.w3.org/2000/svg">
+ <path
+ id="logo--v"
+ d="M -6.0375967e-7,1.9495423e-4 166.24502,299.56193 v 9e-4 h 9.4e-4 84.65414 0.002 l -9.9e-4,-0.002 50.77369,-91.48962 -42.32754,-76.27186 -50.77365,91.49097 L 84.656177,-5.0457712e-6 Z"
+ style="fill:#cdd6f4;fill-opacity:1;stroke-width:44.983" />
+ <path
+ id="logo--k"
+ d="M 332.49004,1.9495423e-4 265.79447,120.18178 h -9.9e-4 l 99.55045,179.38105 H 450 L 350.44955,120.18178 417.14611,1.9495423e-4 Z"
+ style="fill:#a6e3a1;fill-opacity:1;stroke-width:44.983" />
+</svg>