diff --git a/.gitignore b/.gitignore
index e349900..b17ec87 100644
--- a/.gitignore
+++ b/.gitignore
@@ -268,4 +268,6 @@ build-iPhoneSimulator/
# Used by RuboCop. Remote config files pulled in from inherit_from directive.
# .rubocop-https?--*
+mpv/shaders/
+
# End of https://www.toptal.com/developers/gitignore/api/perl,python,ruby
diff --git a/README.md b/README.md
index d6346dd..a612127 100644
--- a/README.md
+++ b/README.md
@@ -21,6 +21,7 @@ This repository contains my configuration files for the following tools:
- **Shells & Prompt**
- `zsh` + `starship`
- **Terminal Emulator & Multiplexer**
+ - `foot`
- `kitty`
- `tmux`
- **Editors & CLI Tools**
@@ -31,11 +32,17 @@ This repository contains my configuration files for the following tools:
- `lazygit`
- `lazydocker`
- `k9s`
+- **Wayland Environment**
+ - `fuzzel` (launcher)
+ - `waybar` (status bar)
+ - `mako` (notification daemon)
+ - `sway` (window manager)
- **Utilities**
- `fastfetch`
- `zoxide`
- `mpv`
- `yt-dlp`
+ - `zathura`
---
diff --git a/fuzzel/.config/fuzzel/fuzzel.ini b/fuzzel/.config/fuzzel/fuzzel.ini
new file mode 100644
index 0000000..07ed0d2
--- /dev/null
+++ b/fuzzel/.config/fuzzel/fuzzel.ini
@@ -0,0 +1,21 @@
+[main]
+font=FiraCode Nerd Font:size=10
+icon-theme=Papirus
+include=~/.config/fuzzel/themes/catppuccin-mocha/lavender.ini
+hide-before-typing=no
+fields=filename,name,generic
+match-mode=fzf
+sort-result=yes
+match-counter=yes
+show-actions=no
+anchor = center
+x-margin=0
+y-margin=0
+lines=10
+width=70
+tabs=4
+horizontal-pad=40
+vertical-pad=8
+inner-pad=0
+layer=overlay # values (top, overlay)
+
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-frappe/blue.ini b/fuzzel/.config/fuzzel/themes/catppuccin-frappe/blue.ini
new file mode 100644
index 0000000..ed78ea1
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-frappe/blue.ini
@@ -0,0 +1,12 @@
+[colors]
+background=303446dd
+text=c6d0f5ff
+prompt=b5bfe2ff
+placeholder=838ba7ff
+input=c6d0f5ff
+match=8caaeeff
+selection=626880ff
+selection-text=c6d0f5ff
+selection-match=8caaeeff
+counter=838ba7ff
+border=8caaeeff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-frappe/flamingo.ini b/fuzzel/.config/fuzzel/themes/catppuccin-frappe/flamingo.ini
new file mode 100644
index 0000000..a9b606c
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-frappe/flamingo.ini
@@ -0,0 +1,12 @@
+[colors]
+background=303446dd
+text=c6d0f5ff
+prompt=b5bfe2ff
+placeholder=838ba7ff
+input=c6d0f5ff
+match=eebebeff
+selection=626880ff
+selection-text=c6d0f5ff
+selection-match=eebebeff
+counter=838ba7ff
+border=eebebeff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-frappe/green.ini b/fuzzel/.config/fuzzel/themes/catppuccin-frappe/green.ini
new file mode 100644
index 0000000..e36fbf6
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-frappe/green.ini
@@ -0,0 +1,12 @@
+[colors]
+background=303446dd
+text=c6d0f5ff
+prompt=b5bfe2ff
+placeholder=838ba7ff
+input=c6d0f5ff
+match=a6d189ff
+selection=626880ff
+selection-text=c6d0f5ff
+selection-match=a6d189ff
+counter=838ba7ff
+border=a6d189ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-frappe/lavender.ini b/fuzzel/.config/fuzzel/themes/catppuccin-frappe/lavender.ini
new file mode 100644
index 0000000..6cdaea4
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-frappe/lavender.ini
@@ -0,0 +1,12 @@
+[colors]
+background=303446dd
+text=c6d0f5ff
+prompt=b5bfe2ff
+placeholder=838ba7ff
+input=c6d0f5ff
+match=babbf1ff
+selection=626880ff
+selection-text=c6d0f5ff
+selection-match=babbf1ff
+counter=838ba7ff
+border=babbf1ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-frappe/maroon.ini b/fuzzel/.config/fuzzel/themes/catppuccin-frappe/maroon.ini
new file mode 100644
index 0000000..9910976
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-frappe/maroon.ini
@@ -0,0 +1,12 @@
+[colors]
+background=303446dd
+text=c6d0f5ff
+prompt=b5bfe2ff
+placeholder=838ba7ff
+input=c6d0f5ff
+match=ea999cff
+selection=626880ff
+selection-text=c6d0f5ff
+selection-match=ea999cff
+counter=838ba7ff
+border=ea999cff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-frappe/mauve.ini b/fuzzel/.config/fuzzel/themes/catppuccin-frappe/mauve.ini
new file mode 100644
index 0000000..56ef194
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-frappe/mauve.ini
@@ -0,0 +1,12 @@
+[colors]
+background=303446dd
+text=c6d0f5ff
+prompt=b5bfe2ff
+placeholder=838ba7ff
+input=c6d0f5ff
+match=ca9ee6ff
+selection=626880ff
+selection-text=c6d0f5ff
+selection-match=ca9ee6ff
+counter=838ba7ff
+border=ca9ee6ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-frappe/peach.ini b/fuzzel/.config/fuzzel/themes/catppuccin-frappe/peach.ini
new file mode 100644
index 0000000..c05d46b
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-frappe/peach.ini
@@ -0,0 +1,12 @@
+[colors]
+background=303446dd
+text=c6d0f5ff
+prompt=b5bfe2ff
+placeholder=838ba7ff
+input=c6d0f5ff
+match=ef9f76ff
+selection=626880ff
+selection-text=c6d0f5ff
+selection-match=ef9f76ff
+counter=838ba7ff
+border=ef9f76ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-frappe/pink.ini b/fuzzel/.config/fuzzel/themes/catppuccin-frappe/pink.ini
new file mode 100644
index 0000000..86613ce
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-frappe/pink.ini
@@ -0,0 +1,12 @@
+[colors]
+background=303446dd
+text=c6d0f5ff
+prompt=b5bfe2ff
+placeholder=838ba7ff
+input=c6d0f5ff
+match=f4b8e4ff
+selection=626880ff
+selection-text=c6d0f5ff
+selection-match=f4b8e4ff
+counter=838ba7ff
+border=f4b8e4ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-frappe/red.ini b/fuzzel/.config/fuzzel/themes/catppuccin-frappe/red.ini
new file mode 100644
index 0000000..d7f150b
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-frappe/red.ini
@@ -0,0 +1,12 @@
+[colors]
+background=303446dd
+text=c6d0f5ff
+prompt=b5bfe2ff
+placeholder=838ba7ff
+input=c6d0f5ff
+match=e78284ff
+selection=626880ff
+selection-text=c6d0f5ff
+selection-match=e78284ff
+counter=838ba7ff
+border=e78284ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-frappe/rosewater.ini b/fuzzel/.config/fuzzel/themes/catppuccin-frappe/rosewater.ini
new file mode 100644
index 0000000..562fc4b
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-frappe/rosewater.ini
@@ -0,0 +1,12 @@
+[colors]
+background=303446dd
+text=c6d0f5ff
+prompt=b5bfe2ff
+placeholder=838ba7ff
+input=c6d0f5ff
+match=f2d5cfff
+selection=626880ff
+selection-text=c6d0f5ff
+selection-match=f2d5cfff
+counter=838ba7ff
+border=f2d5cfff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-frappe/sapphire.ini b/fuzzel/.config/fuzzel/themes/catppuccin-frappe/sapphire.ini
new file mode 100644
index 0000000..7afb2bb
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-frappe/sapphire.ini
@@ -0,0 +1,12 @@
+[colors]
+background=303446dd
+text=c6d0f5ff
+prompt=b5bfe2ff
+placeholder=838ba7ff
+input=c6d0f5ff
+match=85c1dcff
+selection=626880ff
+selection-text=c6d0f5ff
+selection-match=85c1dcff
+counter=838ba7ff
+border=85c1dcff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-frappe/sky.ini b/fuzzel/.config/fuzzel/themes/catppuccin-frappe/sky.ini
new file mode 100644
index 0000000..4717d7b
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-frappe/sky.ini
@@ -0,0 +1,12 @@
+[colors]
+background=303446dd
+text=c6d0f5ff
+prompt=b5bfe2ff
+placeholder=838ba7ff
+input=c6d0f5ff
+match=99d1dbff
+selection=626880ff
+selection-text=c6d0f5ff
+selection-match=99d1dbff
+counter=838ba7ff
+border=99d1dbff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-frappe/teal.ini b/fuzzel/.config/fuzzel/themes/catppuccin-frappe/teal.ini
new file mode 100644
index 0000000..785b17d
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-frappe/teal.ini
@@ -0,0 +1,12 @@
+[colors]
+background=303446dd
+text=c6d0f5ff
+prompt=b5bfe2ff
+placeholder=838ba7ff
+input=c6d0f5ff
+match=81c8beff
+selection=626880ff
+selection-text=c6d0f5ff
+selection-match=81c8beff
+counter=838ba7ff
+border=81c8beff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-frappe/yellow.ini b/fuzzel/.config/fuzzel/themes/catppuccin-frappe/yellow.ini
new file mode 100644
index 0000000..a2eae4c
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-frappe/yellow.ini
@@ -0,0 +1,12 @@
+[colors]
+background=303446dd
+text=c6d0f5ff
+prompt=b5bfe2ff
+placeholder=838ba7ff
+input=c6d0f5ff
+match=e5c890ff
+selection=626880ff
+selection-text=c6d0f5ff
+selection-match=e5c890ff
+counter=838ba7ff
+border=e5c890ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-latte/blue.ini b/fuzzel/.config/fuzzel/themes/catppuccin-latte/blue.ini
new file mode 100644
index 0000000..c1ad804
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-latte/blue.ini
@@ -0,0 +1,12 @@
+[colors]
+background=eff1f5dd
+text=4c4f69ff
+prompt=5c5f77ff
+placeholder=8c8fa1ff
+input=4c4f69ff
+match=1e66f5ff
+selection=acb0beff
+selection-text=4c4f69ff
+selection-match=1e66f5ff
+counter=8c8fa1ff
+border=1e66f5ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-latte/flamingo.ini b/fuzzel/.config/fuzzel/themes/catppuccin-latte/flamingo.ini
new file mode 100644
index 0000000..027f212
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-latte/flamingo.ini
@@ -0,0 +1,12 @@
+[colors]
+background=eff1f5dd
+text=4c4f69ff
+prompt=5c5f77ff
+placeholder=8c8fa1ff
+input=4c4f69ff
+match=dd7878ff
+selection=acb0beff
+selection-text=4c4f69ff
+selection-match=dd7878ff
+counter=8c8fa1ff
+border=dd7878ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-latte/green.ini b/fuzzel/.config/fuzzel/themes/catppuccin-latte/green.ini
new file mode 100644
index 0000000..4065e87
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-latte/green.ini
@@ -0,0 +1,12 @@
+[colors]
+background=eff1f5dd
+text=4c4f69ff
+prompt=5c5f77ff
+placeholder=8c8fa1ff
+input=4c4f69ff
+match=40a02bff
+selection=acb0beff
+selection-text=4c4f69ff
+selection-match=40a02bff
+counter=8c8fa1ff
+border=40a02bff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-latte/lavender.ini b/fuzzel/.config/fuzzel/themes/catppuccin-latte/lavender.ini
new file mode 100644
index 0000000..3c92b88
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-latte/lavender.ini
@@ -0,0 +1,12 @@
+[colors]
+background=eff1f5dd
+text=4c4f69ff
+prompt=5c5f77ff
+placeholder=8c8fa1ff
+input=4c4f69ff
+match=7287fdff
+selection=acb0beff
+selection-text=4c4f69ff
+selection-match=7287fdff
+counter=8c8fa1ff
+border=7287fdff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-latte/maroon.ini b/fuzzel/.config/fuzzel/themes/catppuccin-latte/maroon.ini
new file mode 100644
index 0000000..c8dae37
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-latte/maroon.ini
@@ -0,0 +1,12 @@
+[colors]
+background=eff1f5dd
+text=4c4f69ff
+prompt=5c5f77ff
+placeholder=8c8fa1ff
+input=4c4f69ff
+match=e64553ff
+selection=acb0beff
+selection-text=4c4f69ff
+selection-match=e64553ff
+counter=8c8fa1ff
+border=e64553ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-latte/mauve.ini b/fuzzel/.config/fuzzel/themes/catppuccin-latte/mauve.ini
new file mode 100644
index 0000000..249ab46
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-latte/mauve.ini
@@ -0,0 +1,12 @@
+[colors]
+background=eff1f5dd
+text=4c4f69ff
+prompt=5c5f77ff
+placeholder=8c8fa1ff
+input=4c4f69ff
+match=8839efff
+selection=acb0beff
+selection-text=4c4f69ff
+selection-match=8839efff
+counter=8c8fa1ff
+border=8839efff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-latte/peach.ini b/fuzzel/.config/fuzzel/themes/catppuccin-latte/peach.ini
new file mode 100644
index 0000000..c45981d
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-latte/peach.ini
@@ -0,0 +1,12 @@
+[colors]
+background=eff1f5dd
+text=4c4f69ff
+prompt=5c5f77ff
+placeholder=8c8fa1ff
+input=4c4f69ff
+match=fe640bff
+selection=acb0beff
+selection-text=4c4f69ff
+selection-match=fe640bff
+counter=8c8fa1ff
+border=fe640bff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-latte/pink.ini b/fuzzel/.config/fuzzel/themes/catppuccin-latte/pink.ini
new file mode 100644
index 0000000..38c04ee
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-latte/pink.ini
@@ -0,0 +1,12 @@
+[colors]
+background=eff1f5dd
+text=4c4f69ff
+prompt=5c5f77ff
+placeholder=8c8fa1ff
+input=4c4f69ff
+match=ea76cbff
+selection=acb0beff
+selection-text=4c4f69ff
+selection-match=ea76cbff
+counter=8c8fa1ff
+border=ea76cbff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-latte/red.ini b/fuzzel/.config/fuzzel/themes/catppuccin-latte/red.ini
new file mode 100644
index 0000000..36fb973
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-latte/red.ini
@@ -0,0 +1,12 @@
+[colors]
+background=eff1f5dd
+text=4c4f69ff
+prompt=5c5f77ff
+placeholder=8c8fa1ff
+input=4c4f69ff
+match=d20f39ff
+selection=acb0beff
+selection-text=4c4f69ff
+selection-match=d20f39ff
+counter=8c8fa1ff
+border=d20f39ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-latte/rosewater.ini b/fuzzel/.config/fuzzel/themes/catppuccin-latte/rosewater.ini
new file mode 100644
index 0000000..25a53ef
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-latte/rosewater.ini
@@ -0,0 +1,12 @@
+[colors]
+background=eff1f5dd
+text=4c4f69ff
+prompt=5c5f77ff
+placeholder=8c8fa1ff
+input=4c4f69ff
+match=dc8a78ff
+selection=acb0beff
+selection-text=4c4f69ff
+selection-match=dc8a78ff
+counter=8c8fa1ff
+border=dc8a78ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-latte/sapphire.ini b/fuzzel/.config/fuzzel/themes/catppuccin-latte/sapphire.ini
new file mode 100644
index 0000000..be92da0
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-latte/sapphire.ini
@@ -0,0 +1,12 @@
+[colors]
+background=eff1f5dd
+text=4c4f69ff
+prompt=5c5f77ff
+placeholder=8c8fa1ff
+input=4c4f69ff
+match=209fb5ff
+selection=acb0beff
+selection-text=4c4f69ff
+selection-match=209fb5ff
+counter=8c8fa1ff
+border=209fb5ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-latte/sky.ini b/fuzzel/.config/fuzzel/themes/catppuccin-latte/sky.ini
new file mode 100644
index 0000000..4d0fa89
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-latte/sky.ini
@@ -0,0 +1,12 @@
+[colors]
+background=eff1f5dd
+text=4c4f69ff
+prompt=5c5f77ff
+placeholder=8c8fa1ff
+input=4c4f69ff
+match=04a5e5ff
+selection=acb0beff
+selection-text=4c4f69ff
+selection-match=04a5e5ff
+counter=8c8fa1ff
+border=04a5e5ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-latte/teal.ini b/fuzzel/.config/fuzzel/themes/catppuccin-latte/teal.ini
new file mode 100644
index 0000000..59e1c4b
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-latte/teal.ini
@@ -0,0 +1,12 @@
+[colors]
+background=eff1f5dd
+text=4c4f69ff
+prompt=5c5f77ff
+placeholder=8c8fa1ff
+input=4c4f69ff
+match=179299ff
+selection=acb0beff
+selection-text=4c4f69ff
+selection-match=179299ff
+counter=8c8fa1ff
+border=179299ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-latte/yellow.ini b/fuzzel/.config/fuzzel/themes/catppuccin-latte/yellow.ini
new file mode 100644
index 0000000..8c5d300
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-latte/yellow.ini
@@ -0,0 +1,12 @@
+[colors]
+background=eff1f5dd
+text=4c4f69ff
+prompt=5c5f77ff
+placeholder=8c8fa1ff
+input=4c4f69ff
+match=df8e1dff
+selection=acb0beff
+selection-text=4c4f69ff
+selection-match=df8e1dff
+counter=8c8fa1ff
+border=df8e1dff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/blue.ini b/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/blue.ini
new file mode 100644
index 0000000..20c6dec
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/blue.ini
@@ -0,0 +1,12 @@
+[colors]
+background=24273add
+text=cad3f5ff
+prompt=b8c0e0ff
+placeholder=8087a2ff
+input=cad3f5ff
+match=8aadf4ff
+selection=5b6078ff
+selection-text=cad3f5ff
+selection-match=8aadf4ff
+counter=8087a2ff
+border=8aadf4ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/flamingo.ini b/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/flamingo.ini
new file mode 100644
index 0000000..104e37f
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/flamingo.ini
@@ -0,0 +1,12 @@
+[colors]
+background=24273add
+text=cad3f5ff
+prompt=b8c0e0ff
+placeholder=8087a2ff
+input=cad3f5ff
+match=f0c6c6ff
+selection=5b6078ff
+selection-text=cad3f5ff
+selection-match=f0c6c6ff
+counter=8087a2ff
+border=f0c6c6ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/green.ini b/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/green.ini
new file mode 100644
index 0000000..859bd9e
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/green.ini
@@ -0,0 +1,12 @@
+[colors]
+background=24273add
+text=cad3f5ff
+prompt=b8c0e0ff
+placeholder=8087a2ff
+input=cad3f5ff
+match=a6da95ff
+selection=5b6078ff
+selection-text=cad3f5ff
+selection-match=a6da95ff
+counter=8087a2ff
+border=a6da95ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/lavender.ini b/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/lavender.ini
new file mode 100644
index 0000000..2959faa
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/lavender.ini
@@ -0,0 +1,12 @@
+[colors]
+background=24273add
+text=cad3f5ff
+prompt=b8c0e0ff
+placeholder=8087a2ff
+input=cad3f5ff
+match=b7bdf8ff
+selection=5b6078ff
+selection-text=cad3f5ff
+selection-match=b7bdf8ff
+counter=8087a2ff
+border=b7bdf8ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/maroon.ini b/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/maroon.ini
new file mode 100644
index 0000000..9332140
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/maroon.ini
@@ -0,0 +1,12 @@
+[colors]
+background=24273add
+text=cad3f5ff
+prompt=b8c0e0ff
+placeholder=8087a2ff
+input=cad3f5ff
+match=ee99a0ff
+selection=5b6078ff
+selection-text=cad3f5ff
+selection-match=ee99a0ff
+counter=8087a2ff
+border=ee99a0ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/mauve.ini b/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/mauve.ini
new file mode 100644
index 0000000..b465c83
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/mauve.ini
@@ -0,0 +1,12 @@
+[colors]
+background=24273add
+text=cad3f5ff
+prompt=b8c0e0ff
+placeholder=8087a2ff
+input=cad3f5ff
+match=c6a0f6ff
+selection=5b6078ff
+selection-text=cad3f5ff
+selection-match=c6a0f6ff
+counter=8087a2ff
+border=c6a0f6ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/peach.ini b/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/peach.ini
new file mode 100644
index 0000000..08068f8
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/peach.ini
@@ -0,0 +1,12 @@
+[colors]
+background=24273add
+text=cad3f5ff
+prompt=b8c0e0ff
+placeholder=8087a2ff
+input=cad3f5ff
+match=f5a97fff
+selection=5b6078ff
+selection-text=cad3f5ff
+selection-match=f5a97fff
+counter=8087a2ff
+border=f5a97fff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/pink.ini b/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/pink.ini
new file mode 100644
index 0000000..061066e
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/pink.ini
@@ -0,0 +1,12 @@
+[colors]
+background=24273add
+text=cad3f5ff
+prompt=b8c0e0ff
+placeholder=8087a2ff
+input=cad3f5ff
+match=f5bde6ff
+selection=5b6078ff
+selection-text=cad3f5ff
+selection-match=f5bde6ff
+counter=8087a2ff
+border=f5bde6ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/red.ini b/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/red.ini
new file mode 100644
index 0000000..0bf6a7d
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/red.ini
@@ -0,0 +1,12 @@
+[colors]
+background=24273add
+text=cad3f5ff
+prompt=b8c0e0ff
+placeholder=8087a2ff
+input=cad3f5ff
+match=ed8796ff
+selection=5b6078ff
+selection-text=cad3f5ff
+selection-match=ed8796ff
+counter=8087a2ff
+border=ed8796ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/rosewater.ini b/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/rosewater.ini
new file mode 100644
index 0000000..f31584d
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/rosewater.ini
@@ -0,0 +1,12 @@
+[colors]
+background=24273add
+text=cad3f5ff
+prompt=b8c0e0ff
+placeholder=8087a2ff
+input=cad3f5ff
+match=f4dbd6ff
+selection=5b6078ff
+selection-text=cad3f5ff
+selection-match=f4dbd6ff
+counter=8087a2ff
+border=f4dbd6ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/sapphire.ini b/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/sapphire.ini
new file mode 100644
index 0000000..c057cea
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/sapphire.ini
@@ -0,0 +1,12 @@
+[colors]
+background=24273add
+text=cad3f5ff
+prompt=b8c0e0ff
+placeholder=8087a2ff
+input=cad3f5ff
+match=7dc4e4ff
+selection=5b6078ff
+selection-text=cad3f5ff
+selection-match=7dc4e4ff
+counter=8087a2ff
+border=7dc4e4ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/sky.ini b/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/sky.ini
new file mode 100644
index 0000000..28f2241
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/sky.ini
@@ -0,0 +1,12 @@
+[colors]
+background=24273add
+text=cad3f5ff
+prompt=b8c0e0ff
+placeholder=8087a2ff
+input=cad3f5ff
+match=91d7e3ff
+selection=5b6078ff
+selection-text=cad3f5ff
+selection-match=91d7e3ff
+counter=8087a2ff
+border=91d7e3ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/teal.ini b/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/teal.ini
new file mode 100644
index 0000000..a58a6fe
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/teal.ini
@@ -0,0 +1,12 @@
+[colors]
+background=24273add
+text=cad3f5ff
+prompt=b8c0e0ff
+placeholder=8087a2ff
+input=cad3f5ff
+match=8bd5caff
+selection=5b6078ff
+selection-text=cad3f5ff
+selection-match=8bd5caff
+counter=8087a2ff
+border=8bd5caff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/yellow.ini b/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/yellow.ini
new file mode 100644
index 0000000..a980df8
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-macchiato/yellow.ini
@@ -0,0 +1,12 @@
+[colors]
+background=24273add
+text=cad3f5ff
+prompt=b8c0e0ff
+placeholder=8087a2ff
+input=cad3f5ff
+match=eed49fff
+selection=5b6078ff
+selection-text=cad3f5ff
+selection-match=eed49fff
+counter=8087a2ff
+border=eed49fff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-mocha/blue.ini b/fuzzel/.config/fuzzel/themes/catppuccin-mocha/blue.ini
new file mode 100644
index 0000000..f6ce89a
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-mocha/blue.ini
@@ -0,0 +1,12 @@
+[colors]
+background=1e1e2edd
+text=cdd6f4ff
+prompt=bac2deff
+placeholder=7f849cff
+input=cdd6f4ff
+match=89b4faff
+selection=585b70ff
+selection-text=cdd6f4ff
+selection-match=89b4faff
+counter=7f849cff
+border=89b4faff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-mocha/flamingo.ini b/fuzzel/.config/fuzzel/themes/catppuccin-mocha/flamingo.ini
new file mode 100644
index 0000000..95670c5
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-mocha/flamingo.ini
@@ -0,0 +1,12 @@
+[colors]
+background=1e1e2edd
+text=cdd6f4ff
+prompt=bac2deff
+placeholder=7f849cff
+input=cdd6f4ff
+match=f2cdcdff
+selection=585b70ff
+selection-text=cdd6f4ff
+selection-match=f2cdcdff
+counter=7f849cff
+border=f2cdcdff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-mocha/green.ini b/fuzzel/.config/fuzzel/themes/catppuccin-mocha/green.ini
new file mode 100644
index 0000000..e66672e
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-mocha/green.ini
@@ -0,0 +1,12 @@
+[colors]
+background=1e1e2edd
+text=cdd6f4ff
+prompt=bac2deff
+placeholder=7f849cff
+input=cdd6f4ff
+match=a6e3a1ff
+selection=585b70ff
+selection-text=cdd6f4ff
+selection-match=a6e3a1ff
+counter=7f849cff
+border=a6e3a1ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-mocha/lavender.ini b/fuzzel/.config/fuzzel/themes/catppuccin-mocha/lavender.ini
new file mode 100644
index 0000000..2070fc5
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-mocha/lavender.ini
@@ -0,0 +1,12 @@
+[colors]
+background=1e1e2edd
+text=cdd6f4ff
+prompt=bac2deff
+placeholder=7f849cff
+input=cdd6f4ff
+match=b4befeff
+selection=585b70ff
+selection-text=cdd6f4ff
+selection-match=b4befeff
+counter=7f849cff
+border=b4befeff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-mocha/maroon.ini b/fuzzel/.config/fuzzel/themes/catppuccin-mocha/maroon.ini
new file mode 100644
index 0000000..0fb3c40
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-mocha/maroon.ini
@@ -0,0 +1,12 @@
+[colors]
+background=1e1e2edd
+text=cdd6f4ff
+prompt=bac2deff
+placeholder=7f849cff
+input=cdd6f4ff
+match=eba0acff
+selection=585b70ff
+selection-text=cdd6f4ff
+selection-match=eba0acff
+counter=7f849cff
+border=eba0acff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-mocha/mauve.ini b/fuzzel/.config/fuzzel/themes/catppuccin-mocha/mauve.ini
new file mode 100644
index 0000000..f4749a8
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-mocha/mauve.ini
@@ -0,0 +1,12 @@
+[colors]
+background=1e1e2edd
+text=cdd6f4ff
+prompt=bac2deff
+placeholder=7f849cff
+input=cdd6f4ff
+match=cba6f7ff
+selection=585b70ff
+selection-text=cdd6f4ff
+selection-match=cba6f7ff
+counter=7f849cff
+border=cba6f7ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-mocha/peach.ini b/fuzzel/.config/fuzzel/themes/catppuccin-mocha/peach.ini
new file mode 100644
index 0000000..7ed3f73
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-mocha/peach.ini
@@ -0,0 +1,12 @@
+[colors]
+background=1e1e2edd
+text=cdd6f4ff
+prompt=bac2deff
+placeholder=7f849cff
+input=cdd6f4ff
+match=fab387ff
+selection=585b70ff
+selection-text=cdd6f4ff
+selection-match=fab387ff
+counter=7f849cff
+border=fab387ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-mocha/pink.ini b/fuzzel/.config/fuzzel/themes/catppuccin-mocha/pink.ini
new file mode 100644
index 0000000..fb30292
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-mocha/pink.ini
@@ -0,0 +1,12 @@
+[colors]
+background=1e1e2edd
+text=cdd6f4ff
+prompt=bac2deff
+placeholder=7f849cff
+input=cdd6f4ff
+match=f5c2e7ff
+selection=585b70ff
+selection-text=cdd6f4ff
+selection-match=f5c2e7ff
+counter=7f849cff
+border=f5c2e7ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-mocha/red.ini b/fuzzel/.config/fuzzel/themes/catppuccin-mocha/red.ini
new file mode 100644
index 0000000..fcea05d
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-mocha/red.ini
@@ -0,0 +1,12 @@
+[colors]
+background=1e1e2edd
+text=cdd6f4ff
+prompt=bac2deff
+placeholder=7f849cff
+input=cdd6f4ff
+match=f38ba8ff
+selection=585b70ff
+selection-text=cdd6f4ff
+selection-match=f38ba8ff
+counter=7f849cff
+border=f38ba8ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-mocha/rosewater.ini b/fuzzel/.config/fuzzel/themes/catppuccin-mocha/rosewater.ini
new file mode 100644
index 0000000..e79bfdb
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-mocha/rosewater.ini
@@ -0,0 +1,12 @@
+[colors]
+background=1e1e2edd
+text=cdd6f4ff
+prompt=bac2deff
+placeholder=7f849cff
+input=cdd6f4ff
+match=f5e0dcff
+selection=585b70ff
+selection-text=cdd6f4ff
+selection-match=f5e0dcff
+counter=7f849cff
+border=f5e0dcff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-mocha/sapphire.ini b/fuzzel/.config/fuzzel/themes/catppuccin-mocha/sapphire.ini
new file mode 100644
index 0000000..2d7ab23
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-mocha/sapphire.ini
@@ -0,0 +1,12 @@
+[colors]
+background=1e1e2edd
+text=cdd6f4ff
+prompt=bac2deff
+placeholder=7f849cff
+input=cdd6f4ff
+match=74c7ecff
+selection=585b70ff
+selection-text=cdd6f4ff
+selection-match=74c7ecff
+counter=7f849cff
+border=74c7ecff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-mocha/sky.ini b/fuzzel/.config/fuzzel/themes/catppuccin-mocha/sky.ini
new file mode 100644
index 0000000..101d896
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-mocha/sky.ini
@@ -0,0 +1,12 @@
+[colors]
+background=1e1e2edd
+text=cdd6f4ff
+prompt=bac2deff
+placeholder=7f849cff
+input=cdd6f4ff
+match=89dcebff
+selection=585b70ff
+selection-text=cdd6f4ff
+selection-match=89dcebff
+counter=7f849cff
+border=89dcebff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-mocha/teal.ini b/fuzzel/.config/fuzzel/themes/catppuccin-mocha/teal.ini
new file mode 100644
index 0000000..4fb9507
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-mocha/teal.ini
@@ -0,0 +1,12 @@
+[colors]
+background=1e1e2edd
+text=cdd6f4ff
+prompt=bac2deff
+placeholder=7f849cff
+input=cdd6f4ff
+match=94e2d5ff
+selection=585b70ff
+selection-text=cdd6f4ff
+selection-match=94e2d5ff
+counter=7f849cff
+border=94e2d5ff
diff --git a/fuzzel/.config/fuzzel/themes/catppuccin-mocha/yellow.ini b/fuzzel/.config/fuzzel/themes/catppuccin-mocha/yellow.ini
new file mode 100644
index 0000000..a9959a1
--- /dev/null
+++ b/fuzzel/.config/fuzzel/themes/catppuccin-mocha/yellow.ini
@@ -0,0 +1,12 @@
+[colors]
+background=1e1e2edd
+text=cdd6f4ff
+prompt=bac2deff
+placeholder=7f849cff
+input=cdd6f4ff
+match=f9e2afff
+selection=585b70ff
+selection-text=cdd6f4ff
+selection-match=f9e2afff
+counter=7f849cff
+border=f9e2afff
diff --git a/imv/.config/imv/config b/imv/.config/imv/config
new file mode 100644
index 0000000..8f8afd5
--- /dev/null
+++ b/imv/.config/imv/config
@@ -0,0 +1,4 @@
+[options]
+background=1e1e2e
+overlay_text_color=cdd6f4
+overlay_background_color=11111b
diff --git a/mako/.config/mako/config b/mako/.config/mako/config
new file mode 100644
index 0000000..6043042
--- /dev/null
+++ b/mako/.config/mako/config
@@ -0,0 +1,38 @@
+# Global configuration options
+max-history=10
+sort=-time
+
+# Binding options
+on-button-left=invoke-default-action
+on-button-middle=none
+on-button-right=dismiss
+on-touch=dismiss
+on-notify=none
+
+# Style options
+font=FiraCode Nerd Font 10
+width=400
+height=100
+outer-margin=0
+margin= 20
+padding=12
+border-size=2
+border-radius=4
+icons=1
+max-icon-size=48
+icon-location=left
+icon-border-radius=0
+actions=1
+history=1
+text-alignment=left
+default-timeout=5000
+ignore-timeout=0
+max-visible=3
+output=*
+layer=overlay
+anchor=top-right
+group-by=app-name
+
+# Includes section
+include=~/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-blue
+
diff --git a/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-blue b/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-blue
new file mode 100644
index 0000000..bfaa2cd
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-blue
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#303446
+text-color=#c6d0f5
+border-color=#8caaee
+progress-color=over #414559
+
+[urgency=high]
+border-color=#ef9f76
diff --git a/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-flamingo b/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-flamingo
new file mode 100644
index 0000000..7620a11
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-flamingo
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#303446
+text-color=#c6d0f5
+border-color=#eebebe
+progress-color=over #414559
+
+[urgency=high]
+border-color=#ef9f76
diff --git a/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-green b/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-green
new file mode 100644
index 0000000..dc11511
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-green
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#303446
+text-color=#c6d0f5
+border-color=#a6d189
+progress-color=over #414559
+
+[urgency=high]
+border-color=#ef9f76
diff --git a/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-lavender b/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-lavender
new file mode 100644
index 0000000..e71c05a
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-lavender
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#303446
+text-color=#c6d0f5
+border-color=#babbf1
+progress-color=over #414559
+
+[urgency=high]
+border-color=#ef9f76
diff --git a/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-maroon b/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-maroon
new file mode 100644
index 0000000..62c7608
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-maroon
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#303446
+text-color=#c6d0f5
+border-color=#ea999c
+progress-color=over #414559
+
+[urgency=high]
+border-color=#ef9f76
diff --git a/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-mauve b/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-mauve
new file mode 100644
index 0000000..0eb47ef
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-mauve
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#303446
+text-color=#c6d0f5
+border-color=#ca9ee6
+progress-color=over #414559
+
+[urgency=high]
+border-color=#ef9f76
diff --git a/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-peach b/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-peach
new file mode 100644
index 0000000..a985560
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-peach
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#303446
+text-color=#c6d0f5
+border-color=#ef9f76
+progress-color=over #414559
+
+[urgency=high]
+border-color=#ef9f76
diff --git a/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-pink b/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-pink
new file mode 100644
index 0000000..8d18cae
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-pink
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#303446
+text-color=#c6d0f5
+border-color=#f4b8e4
+progress-color=over #414559
+
+[urgency=high]
+border-color=#ef9f76
diff --git a/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-red b/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-red
new file mode 100644
index 0000000..82afc30
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-red
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#303446
+text-color=#c6d0f5
+border-color=#e78284
+progress-color=over #414559
+
+[urgency=high]
+border-color=#ef9f76
diff --git a/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-rosewater b/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-rosewater
new file mode 100644
index 0000000..b2a322b
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-rosewater
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#303446
+text-color=#c6d0f5
+border-color=#f2d5cf
+progress-color=over #414559
+
+[urgency=high]
+border-color=#ef9f76
diff --git a/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-sapphire b/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-sapphire
new file mode 100644
index 0000000..c320aae
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-sapphire
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#303446
+text-color=#c6d0f5
+border-color=#85c1dc
+progress-color=over #414559
+
+[urgency=high]
+border-color=#ef9f76
diff --git a/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-sky b/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-sky
new file mode 100644
index 0000000..ab787d2
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-sky
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#303446
+text-color=#c6d0f5
+border-color=#99d1db
+progress-color=over #414559
+
+[urgency=high]
+border-color=#ef9f76
diff --git a/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-teal b/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-teal
new file mode 100644
index 0000000..0a69ca2
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-teal
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#303446
+text-color=#c6d0f5
+border-color=#81c8be
+progress-color=over #414559
+
+[urgency=high]
+border-color=#ef9f76
diff --git a/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-yellow b/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-yellow
new file mode 100644
index 0000000..234288d
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-frappe/catppuccin-frappe-yellow
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#303446
+text-color=#c6d0f5
+border-color=#e5c890
+progress-color=over #414559
+
+[urgency=high]
+border-color=#ef9f76
diff --git a/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-blue b/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-blue
new file mode 100644
index 0000000..994bc8d
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-blue
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#eff1f5
+text-color=#4c4f69
+border-color=#1e66f5
+progress-color=over #ccd0da
+
+[urgency=high]
+border-color=#fe640b
diff --git a/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-flamingo b/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-flamingo
new file mode 100644
index 0000000..0fa7988
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-flamingo
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#eff1f5
+text-color=#4c4f69
+border-color=#dd7878
+progress-color=over #ccd0da
+
+[urgency=high]
+border-color=#fe640b
diff --git a/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-green b/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-green
new file mode 100644
index 0000000..50c592c
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-green
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#eff1f5
+text-color=#4c4f69
+border-color=#40a02b
+progress-color=over #ccd0da
+
+[urgency=high]
+border-color=#fe640b
diff --git a/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-lavender b/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-lavender
new file mode 100644
index 0000000..4e9d5d3
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-lavender
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#eff1f5
+text-color=#4c4f69
+border-color=#7287fd
+progress-color=over #ccd0da
+
+[urgency=high]
+border-color=#fe640b
diff --git a/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-maroon b/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-maroon
new file mode 100644
index 0000000..0ccb2b6
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-maroon
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#eff1f5
+text-color=#4c4f69
+border-color=#e64553
+progress-color=over #ccd0da
+
+[urgency=high]
+border-color=#fe640b
diff --git a/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-mauve b/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-mauve
new file mode 100644
index 0000000..cf91cdb
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-mauve
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#eff1f5
+text-color=#4c4f69
+border-color=#8839ef
+progress-color=over #ccd0da
+
+[urgency=high]
+border-color=#fe640b
diff --git a/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-peach b/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-peach
new file mode 100644
index 0000000..a76858f
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-peach
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#eff1f5
+text-color=#4c4f69
+border-color=#fe640b
+progress-color=over #ccd0da
+
+[urgency=high]
+border-color=#fe640b
diff --git a/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-pink b/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-pink
new file mode 100644
index 0000000..f873703
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-pink
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#eff1f5
+text-color=#4c4f69
+border-color=#ea76cb
+progress-color=over #ccd0da
+
+[urgency=high]
+border-color=#fe640b
diff --git a/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-red b/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-red
new file mode 100644
index 0000000..b825052
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-red
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#eff1f5
+text-color=#4c4f69
+border-color=#d20f39
+progress-color=over #ccd0da
+
+[urgency=high]
+border-color=#fe640b
diff --git a/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-rosewater b/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-rosewater
new file mode 100644
index 0000000..8a5da7d
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-rosewater
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#eff1f5
+text-color=#4c4f69
+border-color=#dc8a78
+progress-color=over #ccd0da
+
+[urgency=high]
+border-color=#fe640b
diff --git a/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-sapphire b/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-sapphire
new file mode 100644
index 0000000..ae0e859
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-sapphire
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#eff1f5
+text-color=#4c4f69
+border-color=#209fb5
+progress-color=over #ccd0da
+
+[urgency=high]
+border-color=#fe640b
diff --git a/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-sky b/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-sky
new file mode 100644
index 0000000..5379fe2
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-sky
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#eff1f5
+text-color=#4c4f69
+border-color=#04a5e5
+progress-color=over #ccd0da
+
+[urgency=high]
+border-color=#fe640b
diff --git a/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-teal b/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-teal
new file mode 100644
index 0000000..d4b79c5
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-teal
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#eff1f5
+text-color=#4c4f69
+border-color=#179299
+progress-color=over #ccd0da
+
+[urgency=high]
+border-color=#fe640b
diff --git a/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-yellow b/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-yellow
new file mode 100644
index 0000000..6209f89
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-latte/catppuccin-latte-yellow
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#eff1f5
+text-color=#4c4f69
+border-color=#df8e1d
+progress-color=over #ccd0da
+
+[urgency=high]
+border-color=#fe640b
diff --git a/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-blue b/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-blue
new file mode 100644
index 0000000..ba13b0e
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-blue
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#24273a
+text-color=#cad3f5
+border-color=#8aadf4
+progress-color=over #363a4f
+
+[urgency=high]
+border-color=#f5a97f
diff --git a/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-flamingo b/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-flamingo
new file mode 100644
index 0000000..07614a8
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-flamingo
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#24273a
+text-color=#cad3f5
+border-color=#f0c6c6
+progress-color=over #363a4f
+
+[urgency=high]
+border-color=#f5a97f
diff --git a/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-green b/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-green
new file mode 100644
index 0000000..6d157f6
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-green
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#24273a
+text-color=#cad3f5
+border-color=#a6da95
+progress-color=over #363a4f
+
+[urgency=high]
+border-color=#f5a97f
diff --git a/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-lavender b/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-lavender
new file mode 100644
index 0000000..831011f
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-lavender
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#24273a
+text-color=#cad3f5
+border-color=#b7bdf8
+progress-color=over #363a4f
+
+[urgency=high]
+border-color=#f5a97f
diff --git a/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-maroon b/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-maroon
new file mode 100644
index 0000000..b2b1840
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-maroon
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#24273a
+text-color=#cad3f5
+border-color=#ee99a0
+progress-color=over #363a4f
+
+[urgency=high]
+border-color=#f5a97f
diff --git a/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-mauve b/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-mauve
new file mode 100644
index 0000000..859e262
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-mauve
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#24273a
+text-color=#cad3f5
+border-color=#c6a0f6
+progress-color=over #363a4f
+
+[urgency=high]
+border-color=#f5a97f
diff --git a/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-peach b/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-peach
new file mode 100644
index 0000000..a7de568
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-peach
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#24273a
+text-color=#cad3f5
+border-color=#f5a97f
+progress-color=over #363a4f
+
+[urgency=high]
+border-color=#f5a97f
diff --git a/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-pink b/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-pink
new file mode 100644
index 0000000..38c13cc
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-pink
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#24273a
+text-color=#cad3f5
+border-color=#f5bde6
+progress-color=over #363a4f
+
+[urgency=high]
+border-color=#f5a97f
diff --git a/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-red b/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-red
new file mode 100644
index 0000000..3bdf3da
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-red
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#24273a
+text-color=#cad3f5
+border-color=#ed8796
+progress-color=over #363a4f
+
+[urgency=high]
+border-color=#f5a97f
diff --git a/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-rosewater b/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-rosewater
new file mode 100644
index 0000000..4bd9426
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-rosewater
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#24273a
+text-color=#cad3f5
+border-color=#f4dbd6
+progress-color=over #363a4f
+
+[urgency=high]
+border-color=#f5a97f
diff --git a/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-sapphire b/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-sapphire
new file mode 100644
index 0000000..68fbbbc
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-sapphire
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#24273a
+text-color=#cad3f5
+border-color=#7dc4e4
+progress-color=over #363a4f
+
+[urgency=high]
+border-color=#f5a97f
diff --git a/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-sky b/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-sky
new file mode 100644
index 0000000..1b9cf44
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-sky
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#24273a
+text-color=#cad3f5
+border-color=#91d7e3
+progress-color=over #363a4f
+
+[urgency=high]
+border-color=#f5a97f
diff --git a/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-teal b/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-teal
new file mode 100644
index 0000000..42e270a
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-teal
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#24273a
+text-color=#cad3f5
+border-color=#8bd5ca
+progress-color=over #363a4f
+
+[urgency=high]
+border-color=#f5a97f
diff --git a/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-yellow b/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-yellow
new file mode 100644
index 0000000..c2892dc
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-macchiato/catppuccin-macchiato-yellow
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#24273a
+text-color=#cad3f5
+border-color=#eed49f
+progress-color=over #363a4f
+
+[urgency=high]
+border-color=#f5a97f
diff --git a/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-blue b/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-blue
new file mode 100644
index 0000000..60ce5c1
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-blue
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#1e1e2e
+text-color=#cdd6f4
+border-color=#89b4fa
+progress-color=over #313244
+
+[urgency=high]
+border-color=#fab387
diff --git a/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-flamingo b/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-flamingo
new file mode 100644
index 0000000..5c4ddb5
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-flamingo
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#1e1e2e
+text-color=#cdd6f4
+border-color=#f2cdcd
+progress-color=over #313244
+
+[urgency=high]
+border-color=#fab387
diff --git a/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-green b/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-green
new file mode 100644
index 0000000..262b5b5
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-green
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#1e1e2e
+text-color=#cdd6f4
+border-color=#a6e3a1
+progress-color=over #313244
+
+[urgency=high]
+border-color=#fab387
diff --git a/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-lavender b/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-lavender
new file mode 100644
index 0000000..717e84a
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-lavender
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#1e1e2e
+text-color=#cdd6f4
+border-color=#b4befe
+progress-color=over #313244
+
+[urgency=high]
+border-color=#fab387
diff --git a/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-maroon b/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-maroon
new file mode 100644
index 0000000..bb3f4cf
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-maroon
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#1e1e2e
+text-color=#cdd6f4
+border-color=#eba0ac
+progress-color=over #313244
+
+[urgency=high]
+border-color=#fab387
diff --git a/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-mauve b/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-mauve
new file mode 100644
index 0000000..4959ef6
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-mauve
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#1e1e2e
+text-color=#cdd6f4
+border-color=#cba6f7
+progress-color=over #313244
+
+[urgency=high]
+border-color=#fab387
diff --git a/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-peach b/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-peach
new file mode 100644
index 0000000..180c12e
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-peach
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#1e1e2e
+text-color=#cdd6f4
+border-color=#fab387
+progress-color=over #313244
+
+[urgency=high]
+border-color=#fab387
diff --git a/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-pink b/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-pink
new file mode 100644
index 0000000..ebf6ace
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-pink
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#1e1e2e
+text-color=#cdd6f4
+border-color=#f5c2e7
+progress-color=over #313244
+
+[urgency=high]
+border-color=#fab387
diff --git a/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-red b/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-red
new file mode 100644
index 0000000..9c7ec01
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-red
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#1e1e2e
+text-color=#cdd6f4
+border-color=#f38ba8
+progress-color=over #313244
+
+[urgency=high]
+border-color=#fab387
diff --git a/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-rosewater b/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-rosewater
new file mode 100644
index 0000000..53a7306
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-rosewater
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#1e1e2e
+text-color=#cdd6f4
+border-color=#f5e0dc
+progress-color=over #313244
+
+[urgency=high]
+border-color=#fab387
diff --git a/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-sapphire b/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-sapphire
new file mode 100644
index 0000000..fd01684
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-sapphire
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#1e1e2e
+text-color=#cdd6f4
+border-color=#74c7ec
+progress-color=over #313244
+
+[urgency=high]
+border-color=#fab387
diff --git a/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-sky b/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-sky
new file mode 100644
index 0000000..eecb4b6
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-sky
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#1e1e2e
+text-color=#cdd6f4
+border-color=#89dceb
+progress-color=over #313244
+
+[urgency=high]
+border-color=#fab387
diff --git a/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-teal b/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-teal
new file mode 100644
index 0000000..68016ad
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-teal
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#1e1e2e
+text-color=#cdd6f4
+border-color=#94e2d5
+progress-color=over #313244
+
+[urgency=high]
+border-color=#fab387
diff --git a/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-yellow b/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-yellow
new file mode 100644
index 0000000..54b1e7c
--- /dev/null
+++ b/mako/.config/mako/themes/catppuccin-mocha/catppuccin-mocha-yellow
@@ -0,0 +1,9 @@
+# Colors
+
+background-color=#1e1e2e
+text-color=#cdd6f4
+border-color=#f9e2af
+progress-color=over #313244
+
+[urgency=high]
+border-color=#fab387
diff --git a/mpv/.config/mpv/mpv.conf b/mpv/.config/mpv/mpv.conf
index 272c8be..5b01362 100755
--- a/mpv/.config/mpv/mpv.conf
+++ b/mpv/.config/mpv/mpv.conf
@@ -2,3 +2,25 @@ hwdec=auto
# vo=gpu-next #This will break Anime4K
gpu-api=opengl
script-opts=ytdl_hook-ytdl_path=yt-dlp
+
+# Main mpv options
+background-color='#1e1e2e'
+osd-back-color='#11111b'
+osd-border-color='#11111b'
+osd-color='#cdd6f4'
+osd-shadow-color='#1e1e2e'
+
+# Stats script options
+# Options are on separate lines for clarity
+# Colors are in #BBGGRR format
+script-opts-append=stats-border_color=251818
+script-opts-append=stats-font_color=f4d6cd
+script-opts-append=stats-plot_bg_border_color=afe2f9
+script-opts-append=stats-plot_bg_color=251818
+script-opts-append=stats-plot_color=afe2f9
+
+# External script options
+# It is fine to leave these here even if one does not use these scripts because they are just ignored unless a script uses them
+
+# UOSC options
+script-opts-append=uosc-color=foreground=f9e2af,foreground_text=313244,background=1e1e2e,background_text=cdd6f4,curtain=181825,success=a6e3a1,error=f38ba8
diff --git a/starship/.config/starship.toml b/starship/.config/starship.toml
index e667550..3255a74 100644
--- a/starship/.config/starship.toml
+++ b/starship/.config/starship.toml
@@ -49,7 +49,6 @@ $custom\
$sudo\
$cmd_duration\
$line_break\
-$jobs\
$time\
$status\
$container\
@@ -322,7 +321,7 @@ CentOS = " "
Debian = " "
DragonFly = " "
Emscripten = " "
-EndeavourOS = " "
+EndeavourOS = " "
Fedora = " "
FreeBSD = " "
Garuda = " "
diff --git a/sway/.config/gtk-3.0/settings.ini b/sway/.config/gtk-3.0/settings.ini
new file mode 100644
index 0000000..de3920e
--- /dev/null
+++ b/sway/.config/gtk-3.0/settings.ini
@@ -0,0 +1,17 @@
+[Settings]
+gtk-theme-name=Catppuccin
+gtk-icon-theme-name=Papirus-Dark
+gtk-font-name=JetBrainsMono Nerd Font 12
+gtk-cursor-theme-name=Catppuccin-cursor
+gtk-cursor-theme-size=0
+gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ
+gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
+gtk-button-images=0
+gtk-menu-images=0
+gtk-enable-event-sounds=1
+gtk-enable-input-feedback-sounds=1
+gtk-xft-antialias=1
+gtk-xft-hinting=1
+gtk-xft-hintstyle=hintmedium
+gtk-modules=gail:atk-bridge
+gtk-xft-rgba=none
diff --git a/sway/.config/sway/conf.d/window.conf b/sway/.config/sway/conf.d/window.conf
new file mode 100644
index 0000000..e283d84
--- /dev/null
+++ b/sway/.config/sway/conf.d/window.conf
@@ -0,0 +1,66 @@
+#-----------------------#
+# Windows configuration #
+# ----------------------#
+ bindsym $mod+shift+g exec swaymsg gaps outer all set 0 && swaymsg gaps inner all set 5
+ bindsym $mod+g exec swaymsg gaps outer all set 0 && swaymsg gaps inner all set 0
+
+ # No gaps when there is a single window
+ #smart_gaps on
+
+ # Activate smart borders (always)
+ #smart_borders on
+
+ default_border pixel 3
+ default_floating_border pixel 3
+ gaps inner 5
+ gaps outer 5
+
+#------------------------------#
+# Always float certain windows #
+#------------------------------#
+ for_window [app_id="pop-up"] floating enable
+ for_window [app_id="bubble"] floating enable
+ for_window [app_id="task_dialog"] floating enable
+ for_window [app_id="Preferences"] floating enable
+ for_window [app_id="dialog"] floating enable
+ for_window [app_id="menu"] floating enable
+ for_window [app_id="Organizer"] floating enable
+ for_window [app_id="About"] floating enable
+ for_window [app_id="toolbox"] floating enable
+ for_window [app_id="page-info"] floating enable
+ for_window [app_id="webconsole"] floating enable
+ for_window [app_id="Authy"] floating enable
+ for_window [app_id="termfloat"] floating enable
+ for_window [app_id="termfloat"] resize set height 540
+ for_window [app_id="termfloat"] resize set width 960
+ for_window [app_id="mpv"] floating enable
+ for_window [app_id="mpv"] resize set height 540
+ for_window [app_id="mpv"] resize set width 960
+
+#-------------------------------------------------------#
+# Sticky floating windows(sticky enable|disable|toggle) #
+#-------------------------------------------------------#
+ for_window [app_id="danmufloat"] floating enable
+ for_window [app_id="danmufloat"] sticky enable
+ for_window [app_id="danmufloat"] resize set height 540
+ for_window [app_id="danmufloat"] resize set width 960
+
+#-----------------#
+# Program Opacity #
+#-----------------#
+ for_window [app_id="telegram"] opacity 1.00
+
+#------------------------------------------#
+# Placing software in a specific workspace #
+#------------------------------------------#
+ assign [app_id="foot"]: workspace number 1
+ for_window [app_id="foot"]: focus
+ assign [app_id="firefox"]: workspace number 2
+ for_window [app_id="firefox"] focus
+ assign [app_id="telegram"]: workspace number 5
+ for_window [app_id="telegram"] focus
+
+#---------------------#
+# Focus follows mouse #
+#---------------------#
+ focus_follows_mouse no
diff --git a/sway/.config/sway/config b/sway/.config/sway/config
new file mode 100644
index 0000000..8755a40
--- /dev/null
+++ b/sway/.config/sway/config
@@ -0,0 +1,315 @@
+### Variables
+#
+# Logo key. Use Mod1 for Alt.
+set $mod Mod4
+
+# Home row direction keys, like vim
+set $left h
+set $down j
+set $up k
+set $right l
+
+# Your preferred terminal emulator
+set $term 'foot'
+
+# Your preferred application launcher
+set $menu 'fuzzel'
+
+# Your preferred browser
+set $browser 'firefox'
+
+# Your preferred notification daemon
+set $notification 'mako'
+
+# Set theme
+include themes/catppuccin-mocha
+
+# target title bg text indicator border
+client.focused $lavender $base $text $rosewater $lavender
+client.focused_inactive $overlay0 $base $text $rosewater $overlay0
+client.unfocused $overlay0 $base $text $rosewater $overlay0
+client.urgent $peach $base $peach $overlay0 $peach
+client.placeholder $overlay0 $base $text $overlay0 $overlay0
+client.background $base
+
+# Setting cursor
+seat seat0 xcursor_theme catppuccin-mocha-lavender-cursors 25
+
+### Output configuration
+#
+# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
+# output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
+
+output * bg ~/.config/sway/wallpaper.jpg fill
+
+#
+# Example configuration:
+#
+# output HDMI-A-1 resolution 1920x1080 position 1920,0
+#
+# You can get the names of your outputs by running: swaymsg -t get_outputs
+
+### Idle configuration
+set $lockman exec bash ~/.config/sway/lockman.sh
+exec swayidle -w \
+ timeout 300 'swaylock -f' \
+ timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \
+ before-sleep 'swaylock -f'
+
+# This will lock your screen after 300 seconds of inactivity, then turn off
+# your displays after another 300 seconds, and turn your screens back on when
+# resumed. It will also lock your screen before your computer goes to sleep.
+
+### Run notification daemon
+exec $notification
+
+### Start Pipewire session
+exec pipewire
+
+# Run clipboard manager
+exec wl-paste -t text --watch clipman store --no-persist
+
+# OSD server
+exec swayosd-server
+
+#----------------#
+# set gtk+ theme #
+#----------------#
+set $gnome-schema org.gnome.desktop.interface
+exec_always {
+ gsettings set $gnome-schema gtk-theme 'Catppuccin'
+ gsettings set $gnome-schema icon-theme 'Papirus-Dark'
+ gsettings set $gnome-schema cursor-theme 'Catppuccin-cursor'
+ gsettings set $gnome-schema font-name 'jetbrains mono nerd font 12'
+}
+
+### Input configuration
+#
+# Example configuration:
+#
+# input type:touchpad {
+# dwt enabled
+# tap enabled
+# natural_scroll enabled
+# middle_emulation enabled
+# }
+#
+# input type:keyboard {
+# xkb_layout "eu"
+# }
+#
+# You can also configure each device individually.
+# Read `man 5 sway-input` for more information about this section.
+
+ input type:touchpad {
+ dwt enabled
+ tap enabled
+ natural_scroll enabled
+ middle_emulation enabled
+ }
+
+ input type:keyboard {
+ xkb_layout "us(intl)"
+ xkb_options "grp:win_space_toggle"
+ }
+### Key bindings
+#
+# Basics:
+#
+ # Start a terminal
+ bindsym $mod+Return exec $term
+
+ # Kill focused window
+ bindsym $mod+Shift+q kill
+
+ # Start your launcher
+ bindsym $mod+d exec $menu
+
+ # Star my browser
+ bindsym $mod+Shift+b exec $browser
+
+ # Drag floating windows by holding down $mod and left mouse button.
+ # Resize them with right mouse button + $mod.
+ # Despite the name, also works for non-floating windows.
+ # Change normal to inverse to use left mouse button for resizing and right
+ # mouse button for dragging.
+ floating_modifier $mod normal
+
+ # Reload the configuration file
+ bindsym $mod+Shift+c reload
+
+ # Exit sway (logs you out of your Wayland session)
+ #bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
+ bindsym $mod+Shift+e exec wlogout
+
+ # Waybar toggle
+ bindsym $mod+o exec killall -SIGUSR1 waybar
+
+ bindsym $mod+t exec --no-startup-id telegram-desktop
+
+#
+# Moving around:
+#
+ # Move your focus around
+ bindsym $mod+$left focus left
+ bindsym $mod+$down focus down
+ bindsym $mod+$up focus up
+ bindsym $mod+$right focus right
+ # Or use $mod+[up|down|left|right]
+ bindsym $mod+Left focus left
+ bindsym $mod+Down focus down
+ bindsym $mod+Up focus up
+ bindsym $mod+Right focus right
+
+ # Move the focused window with the same, but add Shift
+ bindsym $mod+Shift+$left move left
+ bindsym $mod+Shift+$down move down
+ bindsym $mod+Shift+$up move up
+ bindsym $mod+Shift+$right move right
+ # Ditto, with arrow keys
+ bindsym $mod+Shift+Left move left
+ bindsym $mod+Shift+Down move down
+ bindsym $mod+Shift+Up move up
+ bindsym $mod+Shift+Right move right
+
+#
+# Workspaces:
+#
+ # Switch to workspace
+ bindsym $mod+1 workspace number 1
+ bindsym $mod+2 workspace number 2
+ bindsym $mod+3 workspace number 3
+ bindsym $mod+4 workspace number 4
+ bindsym $mod+5 workspace number 5
+ bindsym $mod+6 workspace number 6
+ bindsym $mod+7 workspace number 7
+ bindsym $mod+8 workspace number 8
+ bindsym $mod+9 workspace number 9
+ bindsym $mod+0 workspace number 10
+
+ # Move focused container to workspace
+ bindsym $mod+Shift+1 move container to workspace number 1
+ bindsym $mod+Shift+2 move container to workspace number 2
+ bindsym $mod+Shift+3 move container to workspace number 3
+ bindsym $mod+Shift+4 move container to workspace number 4
+ bindsym $mod+Shift+5 move container to workspace number 5
+ bindsym $mod+Shift+6 move container to workspace number 6
+ bindsym $mod+Shift+7 move container to workspace number 7
+ bindsym $mod+Shift+8 move container to workspace number 8
+ bindsym $mod+Shift+9 move container to workspace number 9
+ bindsym $mod+Shift+0 move container to workspace number 10
+
+ bindsym $mod+period workspace next
+ bindsym $mod+comma workspace prev
+
+#
+# Layout stuff:
+#
+ # You can "split" the current object of your focus with
+ # $mod+b or $mod+v, for horizontal and vertical splits
+ # respectively.
+ bindsym $mod+b splith
+ bindsym $mod+v splitv
+
+ # Switch the current container between different layout styles
+ bindsym $mod+s layout stacking
+ bindsym $mod+w layout tabbed
+ bindsym $mod+e layout toggle split
+
+ # Make the current focus fullscreen
+ bindsym $mod+f fullscreen
+
+ # Toggle the current focus between tiling and floating mode
+ bindsym $mod+Shift+space floating toggle
+
+ # Swap focus between the tiling area and the floating area
+ bindsym $mod+space focus mode_toggle
+
+ # Move focus to the parent container
+ bindsym $mod+a focus parent
+
+#
+# Scratchpad:
+#
+ # Sway has a "scratchpad", which is a bag of holding for windows.
+ # You can send windows there and get them back later.
+
+ # Move the currently focused window to the scratchpad
+ bindsym $mod+Shift+minus move scratchpad
+
+ # Show the next scratchpad window or hide the focused scratchpad window.
+ # If there are multiple scratchpad windows, this command cycles through them.
+ bindsym $mod+minus scratchpad show
+
+#
+# Resizing containers:
+#
+mode "resize" {
+ # left will shrink the containers width
+ # right will grow the containers width
+ # up will shrink the containers height
+ # down will grow the containers height
+ bindsym $left resize shrink width 10px
+ bindsym $down resize grow height 10px
+ bindsym $up resize shrink height 10px
+ bindsym $right resize grow width 10px
+
+ # Ditto, with arrow keys
+ bindsym Left resize shrink width 10px
+ bindsym Down resize grow height 10px
+ bindsym Up resize shrink height 10px
+ bindsym Right resize grow width 10px
+
+ # Return to default mode
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+}
+
+bindsym $mod+r mode "resize"
+
+#
+# Utilities:
+#
+ # Special keys to adjust volume via PulseAudio
+ # bindsym --locked XF86AudioMute exec pactl set-sink-mute \@DEFAULT_SINK@ toggle
+ # bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -5%
+ # bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +5%
+ # bindsym --locked XF86AudioMicMute exec pactl set-source-mute \@DEFAULT_SOURCE@ toggle
+ # Special keys to adjust brightness via brightnessctl
+ # bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%-
+ # bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+
+
+ # Client commands for SwayOSD
+ # For enable this service start systemd service swayosd-libinput-backend.service
+
+ # Sink volume toggle mute
+ bindsym XF86AudioMute exec swayosd-client --output-volume mute-toggle
+ # Source volume toggle mute
+ bindsym XF86AudioMicMute exec swayosd-client --input-volume mute-toggle
+ # Volume raise with custom value
+ bindsym XF86AudioRaiseVolume exec swayosd-client --output-volume 5
+ # Volume lower with custom value
+ bindsym XF86AudioLowerVolume exec swayosd-client --output-volume -5
+ # Capslock (If you don't want to use the backend)
+ bindsym --release Caps_Lock exec swayosd-client --caps-lock
+ # Brightness raise with custom value('+' sign needed)
+ bindsym XF86MonBrightnessUp exec swayosd-client --brightness +5
+ # Brightness lower with custom value('-' sign needed)
+ bindsym XF86MonBrightnessDown exec swayosd-client --brightness -5
+ # Special key to take a screenshot with grim
+ bindsym Print exec grim ~/Pictures/Screenshots/$(date "+%Y-%m-%d"T"%H:%M:%S").png
+ # Lock the screen
+ bindsym $mod+Alt+l exec $lockman
+ # Kill focused window
+ bindsym $mod+Shift+p kill
+
+#
+# Status Bar:
+#
+# Read `man 5 sway-bar` for more information about this section.
+bar {
+ swaybar_command waybar
+}
+
+include $HOME/.config/sway/conf.d/*.conf
+include /etc/sway/config.d/*
diff --git a/sway/.config/sway/lockman.sh b/sway/.config/sway/lockman.sh
new file mode 100755
index 0000000..85ef098
--- /dev/null
+++ b/sway/.config/sway/lockman.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+
+# Times the screen off and puts it to background
+swayidle \
+ timeout 10 'swaymsg "output * dpms off"' \
+ resume 'swaymsg "output * dpms on"' &
+# Locks the screen immediately
+swaylock -f
+# Kills last background task so idle timer doesn't keep running
+kill %%
diff --git a/sway/.config/sway/themes/catppuccin-frappe b/sway/.config/sway/themes/catppuccin-frappe
new file mode 100644
index 0000000..227d2cb
--- /dev/null
+++ b/sway/.config/sway/themes/catppuccin-frappe
@@ -0,0 +1,26 @@
+set $rosewater #f2d5cf
+set $flamingo #eebebe
+set $pink #f4b8e4
+set $mauve #ca9ee6
+set $red #e78284
+set $maroon #ea999c
+set $peach #ef9f76
+set $yellow #e5c890
+set $green #a6d189
+set $teal #81c8be
+set $sky #99d1db
+set $sapphire #85c1dc
+set $blue #8caaee
+set $lavender #babbf1
+set $text #c6d0f5
+set $subtext1 #b5bfe2
+set $subtext0 #a5adce
+set $overlay2 #949cbb
+set $overlay1 #838ba7
+set $overlay0 #737994
+set $surface2 #626880
+set $surface1 #51576d
+set $surface0 #414559
+set $base #303446
+set $mantle #292c3c
+set $crust #232634
diff --git a/sway/.config/sway/themes/catppuccin-latte b/sway/.config/sway/themes/catppuccin-latte
new file mode 100644
index 0000000..b5164c6
--- /dev/null
+++ b/sway/.config/sway/themes/catppuccin-latte
@@ -0,0 +1,26 @@
+set $rosewater #dc8a78
+set $flamingo #dd7878
+set $pink #ea76cb
+set $mauve #8839ef
+set $red #d20f39
+set $maroon #e64553
+set $peach #fe640b
+set $yellow #df8e1d
+set $green #40a02b
+set $teal #179299
+set $sky #04a5e5
+set $sapphire #209fb5
+set $blue #1e66f5
+set $lavender #7287fd
+set $text #4c4f69
+set $subtext1 #5c5f77
+set $subtext0 #6c6f85
+set $overlay2 #7c7f93
+set $overlay1 #8c8fa1
+set $overlay0 #9ca0b0
+set $surface2 #acb0be
+set $surface1 #bcc0cc
+set $surface0 #ccd0da
+set $base #eff1f5
+set $mantle #e6e9ef
+set $crust #dce0e8
diff --git a/sway/.config/sway/themes/catppuccin-macchiato b/sway/.config/sway/themes/catppuccin-macchiato
new file mode 100644
index 0000000..7523f26
--- /dev/null
+++ b/sway/.config/sway/themes/catppuccin-macchiato
@@ -0,0 +1,26 @@
+set $rosewater #f4dbd6
+set $flamingo #f0c6c6
+set $pink #f5bde6
+set $mauve #c6a0f6
+set $red #ed8796
+set $maroon #ee99a0
+set $peach #f5a97f
+set $yellow #eed49f
+set $green #a6da95
+set $teal #8bd5ca
+set $sky #91d7e3
+set $sapphire #7dc4e4
+set $blue #8aadf4
+set $lavender #b7bdf8
+set $text #cad3f5
+set $subtext1 #b8c0e0
+set $subtext0 #a5adcb
+set $overlay2 #939ab7
+set $overlay1 #8087a2
+set $overlay0 #6e738d
+set $surface2 #5b6078
+set $surface1 #494d64
+set $surface0 #363a4f
+set $base #24273a
+set $mantle #1e2030
+set $crust #181926
diff --git a/sway/.config/sway/themes/catppuccin-mocha b/sway/.config/sway/themes/catppuccin-mocha
new file mode 100644
index 0000000..77749f6
--- /dev/null
+++ b/sway/.config/sway/themes/catppuccin-mocha
@@ -0,0 +1,26 @@
+set $rosewater #f5e0dc
+set $flamingo #f2cdcd
+set $pink #f5c2e7
+set $mauve #cba6f7
+set $red #f38ba8
+set $maroon #eba0ac
+set $peach #fab387
+set $yellow #f9e2af
+set $green #a6e3a1
+set $teal #94e2d5
+set $sky #89dceb
+set $sapphire #74c7ec
+set $blue #89b4fa
+set $lavender #b4befe
+set $text #cdd6f4
+set $subtext1 #bac2de
+set $subtext0 #a6adc8
+set $overlay2 #9399b2
+set $overlay1 #7f849c
+set $overlay0 #6c7086
+set $surface2 #585b70
+set $surface1 #45475a
+set $surface0 #313244
+set $base #1e1e2e
+set $mantle #181825
+set $crust #11111b
diff --git a/sway/.config/sway/wallpaper.jpg b/sway/.config/sway/wallpaper.jpg
new file mode 100644
index 0000000..26a5ef1
Binary files /dev/null and b/sway/.config/sway/wallpaper.jpg differ
diff --git a/sway/.config/swaylock/config b/sway/.config/swaylock/config
new file mode 100644
index 0000000..2f465a1
--- /dev/null
+++ b/sway/.config/swaylock/config
@@ -0,0 +1,30 @@
+image=~/.config/swaylock/current_bg
+color=1e1e2e
+bs-hl-color=f5e0dc
+caps-lock-bs-hl-color=f5e0dc
+caps-lock-key-hl-color=a6e3a1
+inside-color=00000000
+inside-clear-color=00000000
+inside-caps-lock-color=00000000
+inside-ver-color=00000000
+inside-wrong-color=00000000
+key-hl-color=a6e3a1
+layout-bg-color=00000000
+layout-border-color=00000000
+layout-text-color=cdd6f4
+line-color=00000000
+line-clear-color=00000000
+line-caps-lock-color=00000000
+line-ver-color=00000000
+line-wrong-color=00000000
+ring-color=b4befe
+ring-clear-color=f5e0dc
+ring-caps-lock-color=fab387
+ring-ver-color=89b4fa
+ring-wrong-color=eba0ac
+separator-color=00000000
+text-color=cdd6f4
+text-clear-color=f5e0dc
+text-caps-lock-color=fab387
+text-ver-color=89b4fa
+text-wrong-color=eba0ac
diff --git a/sway/.config/swaylock/current_bg b/sway/.config/swaylock/current_bg
new file mode 100644
index 0000000..2243141
Binary files /dev/null and b/sway/.config/swaylock/current_bg differ
diff --git a/sway/.config/swayosd/style.css b/sway/.config/swayosd/style.css
new file mode 100644
index 0000000..5002ac5
--- /dev/null
+++ b/sway/.config/swayosd/style.css
@@ -0,0 +1,38 @@
+window#osd {
+ border-radius: 999px;
+ border: none;
+ background: #{"alpha(@theme_bg_color, 0.8)"};
+
+ #container {
+ margin: 16px;
+ }
+
+ image,
+ label {
+ color: #{"@theme_fg_color"};
+ }
+
+ progressbar:disabled,
+ image:disabled {
+ opacity: 0.5;
+ }
+
+ progressbar {
+ min-height: 6px;
+ border-radius: 999px;
+ background: transparent;
+ border: none;
+ }
+ trough {
+ min-height: inherit;
+ border-radius: inherit;
+ border: none;
+ background: #{"alpha(@theme_fg_color, 0.5)"};
+ }
+ progress {
+ min-height: inherit;
+ border-radius: inherit;
+ border: none;
+ background: #{"@theme_fg_color"};
+ }
+}
diff --git a/sway/.config/wlogout/icons/hibernate.svg b/sway/.config/wlogout/icons/hibernate.svg
new file mode 100644
index 0000000..26f2364
--- /dev/null
+++ b/sway/.config/wlogout/icons/hibernate.svg
@@ -0,0 +1,7 @@
+
+
+
+
diff --git a/sway/.config/wlogout/icons/lock.svg b/sway/.config/wlogout/icons/lock.svg
new file mode 100644
index 0000000..581af6b
--- /dev/null
+++ b/sway/.config/wlogout/icons/lock.svg
@@ -0,0 +1,7 @@
+
+
+
+
diff --git a/sway/.config/wlogout/icons/logout.svg b/sway/.config/wlogout/icons/logout.svg
new file mode 100644
index 0000000..3459f51
--- /dev/null
+++ b/sway/.config/wlogout/icons/logout.svg
@@ -0,0 +1,7 @@
+
+
+
+
diff --git a/sway/.config/wlogout/icons/reboot.svg b/sway/.config/wlogout/icons/reboot.svg
new file mode 100644
index 0000000..f128c6b
--- /dev/null
+++ b/sway/.config/wlogout/icons/reboot.svg
@@ -0,0 +1,7 @@
+
+
+
+
diff --git a/sway/.config/wlogout/icons/shutdown.svg b/sway/.config/wlogout/icons/shutdown.svg
new file mode 100644
index 0000000..2892505
--- /dev/null
+++ b/sway/.config/wlogout/icons/shutdown.svg
@@ -0,0 +1,7 @@
+
+
+
+
diff --git a/sway/.config/wlogout/icons/suspend.svg b/sway/.config/wlogout/icons/suspend.svg
new file mode 100644
index 0000000..a52433c
--- /dev/null
+++ b/sway/.config/wlogout/icons/suspend.svg
@@ -0,0 +1,7 @@
+
+
+
+
diff --git a/sway/.config/wlogout/style.css b/sway/.config/wlogout/style.css
new file mode 100644
index 0000000..4130c0c
--- /dev/null
+++ b/sway/.config/wlogout/style.css
@@ -0,0 +1,51 @@
+* {
+ background-image: none;
+ box-shadow: none;
+}
+
+window {
+ background-color: rgba(30, 30, 46, 0.90);
+}
+
+button {
+ border-radius: 0;
+ border-color: #89b4fa;
+ text-decoration-color: #cdd6f4;
+ color: #cdd6f4;
+ background-color: #181825;
+ border-style: solid;
+ border-width: 1px;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 25%;
+}
+
+button:focus, button:active, button:hover {
+ /* 20% Overlay 2, 80% mantle */
+ background-color: rgb(48, 50, 66);
+ outline-style: none;
+}
+
+#lock {
+ background-image: url("/home/fscotto/.config/wlogout/icons/lock.svg");
+}
+
+#logout {
+ background-image: url("/home/fscotto/.config/wlogout/icons/logout.svg");
+}
+
+#suspend {
+ background-image: url("/home/fscotto/.config/wlogout/icons/suspend.svg");
+}
+
+#hibernate {
+ background-image: url("/home/fscotto/.config/wlogout/icons/hibernate.svg");
+}
+
+#shutdown {
+ background-image: url("/home/fscotto/.config/wlogout/icons/shutdown.svg");
+}
+
+#reboot {
+ background-image: url("/home/fscotto/.config/wlogout/icons/reboot.svg");
+}
diff --git a/sway/.themes/Catppuccin/gtk-3.0/gtk-dark.css b/sway/.themes/Catppuccin/gtk-3.0/gtk-dark.css
new file mode 100644
index 0000000..ce1b52b
--- /dev/null
+++ b/sway/.themes/Catppuccin/gtk-3.0/gtk-dark.css
@@ -0,0 +1 @@
+@import url("resource:///org/gnome/theme/gtk-dark.css");
diff --git a/sway/.themes/Catppuccin/gtk-3.0/gtk.css b/sway/.themes/Catppuccin/gtk-3.0/gtk.css
new file mode 100644
index 0000000..8ec1521
--- /dev/null
+++ b/sway/.themes/Catppuccin/gtk-3.0/gtk.css
@@ -0,0 +1 @@
+@import url("resource:///org/gnome/theme/gtk.css");
diff --git a/sway/.themes/Catppuccin/gtk-3.0/gtk.gresource b/sway/.themes/Catppuccin/gtk-3.0/gtk.gresource
new file mode 100644
index 0000000..301398e
Binary files /dev/null and b/sway/.themes/Catppuccin/gtk-3.0/gtk.gresource differ
diff --git a/sway/.themes/Catppuccin/gtk-3.0/thumbnail.png b/sway/.themes/Catppuccin/gtk-3.0/thumbnail.png
new file mode 100644
index 0000000..0a21769
Binary files /dev/null and b/sway/.themes/Catppuccin/gtk-3.0/thumbnail.png differ
diff --git a/sway/.themes/Catppuccin/gtk-4.0/gtk-dark.css b/sway/.themes/Catppuccin/gtk-4.0/gtk-dark.css
new file mode 100644
index 0000000..ce1b52b
--- /dev/null
+++ b/sway/.themes/Catppuccin/gtk-4.0/gtk-dark.css
@@ -0,0 +1 @@
+@import url("resource:///org/gnome/theme/gtk-dark.css");
diff --git a/sway/.themes/Catppuccin/gtk-4.0/gtk.css b/sway/.themes/Catppuccin/gtk-4.0/gtk.css
new file mode 100644
index 0000000..8ec1521
--- /dev/null
+++ b/sway/.themes/Catppuccin/gtk-4.0/gtk.css
@@ -0,0 +1 @@
+@import url("resource:///org/gnome/theme/gtk.css");
diff --git a/sway/.themes/Catppuccin/gtk-4.0/gtk.gresource b/sway/.themes/Catppuccin/gtk-4.0/gtk.gresource
new file mode 100644
index 0000000..23b68bd
Binary files /dev/null and b/sway/.themes/Catppuccin/gtk-4.0/gtk.gresource differ
diff --git a/sway/.themes/Catppuccin/gtk-4.0/thumbnail.png b/sway/.themes/Catppuccin/gtk-4.0/thumbnail.png
new file mode 100644
index 0000000..0a21769
Binary files /dev/null and b/sway/.themes/Catppuccin/gtk-4.0/thumbnail.png differ
diff --git a/sway/.themes/Catppuccin/index.theme b/sway/.themes/Catppuccin/index.theme
new file mode 100644
index 0000000..93b97c0
--- /dev/null
+++ b/sway/.themes/Catppuccin/index.theme
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Type=X-GNOME-Metatheme
+Name=Catppuccin
+Comment=A Catppuccin like Gtk+ theme based on WhiteSur
+Encoding=UTF-8
+
+[X-GNOME-Metatheme]
+GtkTheme=Catppuccin
+MetacityTheme=catppuccin
+ButtonLayout=close,minimize,maximize:menu
diff --git a/sway/.themes/Catppuccin/plank/dock.theme b/sway/.themes/Catppuccin/plank/dock.theme
new file mode 100644
index 0000000..dd2312c
--- /dev/null
+++ b/sway/.themes/Catppuccin/plank/dock.theme
@@ -0,0 +1,66 @@
+#This theme written by Vince Liuice.
+#Forked & edited by @sadrach for Catppuccin proyect
+
+[PlankDrawingTheme]
+#The roundness of the top corners.
+TopRoundness=16
+#The roundness of the bottom corners.
+BottomRoundness=16
+#The thickness (in pixels) of lines drawn.
+LineWidth=1
+#The color (RGBA) of the outer stroke.
+OuterStrokeColor=0;;0;;0;;200
+#The starting color (RGBA) of the fill gradient.
+FillStartColor=15;;15;;15;;150
+#The ending color (RGBA) of the fill gradient.
+FillEndColor=15;;15;;15;;175
+#The color (RGBA) of the inner stroke.
+InnerStrokeColor=100;;100;;100;;100
+
+[PlankDrawingDockTheme]
+#The padding on the left/right dock edges, in tenths of a percent of IconSize.
+HorizPadding=0
+#The padding on the top dock edge, in tenths of a percent of IconSize.
+TopPadding=2
+#The padding on the bottom dock edge, in tenths of a percent of IconSize.
+BottomPadding=2
+#The padding between items on the dock, in tenths of a percent of IconSize.
+ItemPadding=4
+#The size of item indicators, in tenths of a percent of IconSize.
+IndicatorSize=5
+#The size of the icon-shadow behind every item, in tenths of a percent of IconSize.
+IconShadowSize=2
+#The height (in percent of IconSize) to bounce an icon when the application sets urgent.
+UrgentBounceHeight=1.6666666666666667
+#The height (in percent of IconSize) to bounce an icon when launching an application.
+LaunchBounceHeight=0.625
+#The opacity value (0 to 1) to fade the dock to when hiding it.
+FadeOpacity=1
+#The amount of time (in ms) for click animations.
+ClickTime=300
+#The amount of time (in ms) to bounce an urgent icon.
+UrgentBounceTime=600
+#The amount of time (in ms) to bounce an icon when launching an application.
+LaunchBounceTime=600
+#The amount of time (in ms) for active window indicator animations.
+ActiveTime=300
+#The amount of time (in ms) to slide icons into/out of the dock.
+SlideTime=300
+#The time (in ms) to fade the dock in/out on a hide (if FadeOpacity is < 1).
+FadeTime=250
+#The time (in ms) to slide the dock in/out on a hide (if FadeOpacity is 1).
+HideTime=150
+#The size of the urgent glow (shown when dock is hidden), in tenths of a percent of IconSize.
+GlowSize=30
+#The total time (in ms) to show the hidden-dock urgent glow.
+GlowTime=10000
+#The time (in ms) of each pulse of the hidden-dock urgent glow.
+GlowPulseTime=2000
+#The hue-shift (-180 to 180) of the urgent indicator color.
+UrgentHueShift=150
+#The time (in ms) to move an item to its new position or its addition/removal to/from the dock.
+ItemMoveTime=450
+#Whether background and icons will unhide/hide with different speeds. The top-border of both will leave/hit the screen-edge at the same time.
+CascadeHide=true
+#The color (RGBA) of the badge displaying urgent count
+BadgeColor=0;;0;;0;;0
diff --git a/sway/.themes/Catppuccin/plank/hover.theme b/sway/.themes/Catppuccin/plank/hover.theme
new file mode 100644
index 0000000..a7e1435
--- /dev/null
+++ b/sway/.themes/Catppuccin/plank/hover.theme
@@ -0,0 +1,18 @@
+#This file written by Daniel Fore to match eGTK tooltips.
+#Forked & edited by @sadrach for Catppuccin proyect
+
+[PlankDrawingTheme]
+#The roundness of the top corners.
+TopRoundness=6
+#The roundness of the bottom corners.
+BottomRoundness=6
+#The thickness (in pixels) of lines drawn.
+LineWidth=0
+#The color (RGBA) of the outer stroke.
+OuterStrokeColor=41;;41;;41;;255
+#The starting color (RGBA) of the fill gradient.
+FillStartColor=0;;0;;0;;217
+#The ending color (RGBA) of the fill gradient.
+FillEndColor=0;;0;;0;;217
+#The color (RGBA) of the inner stroke.
+InnerStrokeColor=255;;255;;255;;255
diff --git a/tmux/.tmux.conf b/tmux/.tmux.conf
index 0a3d83e..1390acb 100644
--- a/tmux/.tmux.conf
+++ b/tmux/.tmux.conf
@@ -15,7 +15,7 @@ setw -g pane-base-index 1
bind c new-window -c "#{pane_current_path}"
# Fix Tmux for colors
-set-option -a terminal-features 'xterm-256color:RGB'
+set-option -a terminal-features 'foot:RGB'
set -g allow-passthrough on
set -ga update-environment TERM
set -ga update-environment TERM_PROGRAM
diff --git a/waybar/.config/waybar/config.jsonc b/waybar/.config/waybar/config.jsonc
new file mode 100644
index 0000000..7560713
--- /dev/null
+++ b/waybar/.config/waybar/config.jsonc
@@ -0,0 +1,156 @@
+{
+ "layer": "top", // Waybar at top layer
+ "position": "top", // Waybar position (top|bottom|left|right)
+ "modules-left": [
+ "custom/launcher",
+ "sway/workspaces",
+ "temperature",
+ "idle_inhibitor",
+ "mpd",
+ ],
+ "modules-center": [
+ "clock"
+ ],
+ "modules-right": [
+ "memory",
+ "cpu",
+ "pulseaudio",
+ "backlight",
+ "network",
+ "bluetooth",
+ "battery",
+ "custom/powermenu",
+ "tray"
+ ],
+ "custom/launcher": {
+ "format": " " ,
+ "on-click": "fuzzel &",
+ "tooltip": false
+ },
+ "sway/workspaces": {
+ "disable-scroll": true,
+ "disable-markup": false,
+ "all-outputs": true,
+ "format": " {icon} ",
+ "on-click": "activate",
+ "sort-by-number": true,
+ "format-icons": {
+ "1": "",
+ "2": "",
+ "3": "",
+ "4": "",
+ "5": "",
+ "urgent": "",
+ "active": "",
+ "default": ""
+ },
+ },
+ "idle_inhibitor": {
+ "format": "{icon}",
+ "format-icons": {
+ "activated": "",
+ "deactivated": ""
+ },
+ "tooltip": false
+ },
+ "backlight": {
+ "device": "intel_backlight",
+ "on-scroll-up": "light -A 5",
+ "on-scroll-down": "light -U 5",
+ "format": "{percent}% {icon}",
+ "format-icons": [ "", "", "", "", "", "", "", "", "" ]
+ },
+ "pulseaudio": {
+ "scroll-step": 1,
+ "format": "{volume}% {icon}",
+ "format-muted": " {format_source}",
+ "format-icons": {
+ "headphone": "",
+ "phone": "",
+ "portable": "",
+ "car": "",
+ "default": ["", "", " "]
+ },
+ "on-click": "pavucontrol &",
+ //"on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle",
+ },
+ "battery": {
+ "interval": 10,
+ "states": {
+ "warning": 20,
+ "critical": 10
+ },
+ "format": "{capacity}% {icon}",
+ "format-charging": "{capacity}% ",
+ "format-plugged": "{capacity}% ",
+ "format-alt": "{time} {icon}",
+ "format-icons": [ "", "", "", "", "", "", "", "", "" ]
+ },
+ "clock": {
+ "interval": 1,
+ "timezone": "Europe/Rome",
+ "format": "{:%I:%M %p %A %b %d}",
+ "tooltip-format": "{:%Y %B}\n{calendar}",
+ "format-alt": "{:%d/%m/%Y}",
+ },
+ "memory": {
+ "interval": 1,
+ "format": "{percentage}% ",
+ "states": {
+ "warning": 85,
+ },
+ },
+ "cpu": {
+ "interval": 1,
+ "format": "{usage}% ",
+ "tooltip": false
+ },
+ "mpd": {
+ "max-length": 25,
+ "format": " {title}",
+ "format-paused": " {title}",
+ "format-stopped":"",
+ "format-disconnected": "",
+ "on-click": "mpc --quiet toggle",
+ "on-click-right": "mpc ls | mpc add",
+ "on-click-middle": "kitty ncmpcpp",
+ "on-scroll-up": "mpc --quiet prev",
+ "on-scroll-down": "mpc --quiet next",
+ "smooth-scrolling-threshold":5,
+ "tooltip-format": "{title} - {artist} ({elapsedTime:%M:%S}/{totalTime:%H:%M:%S})"
+ },
+ "network": {
+ "interval": 1,
+ "format-wifi": "{essid} ",
+ "format-ethernet": "{ifname} ({ipaddr}) ",
+ "format-linked": "{essid} (No IP) ",
+ "format-disconnected": "Disconnected ⚠",
+ "tooltip": false,
+ "on-click": "nm-connection-editor &"
+ },
+ "temperature": {
+ "hwmon-path": "/sys/class/hwmon/hwmon6/temp2_input",
+ "tooltip": false,
+ "format": "{temperatureC}°C "
+ },
+ "custom/powermenu": {
+ "format": "",
+ "on-click": "wlogout &",
+ "tooltip": false
+ },
+ "tray": {
+ "icon-size": 15,
+ "spacing": 5
+ },
+ "bluetooth": {
+ "format": "{status} ",
+ "format-connected": "{device_alias} ",
+ "format-connected-battery": "{device_alias} {device_battery_percentage}% ",
+ "format-off": "", // "format-device-preference": [ "device1", "device2" ], // preference list deciding the displayed device
+ "tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected",
+ "tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}",
+ "tooltip-format-enumerate-connected": "{device_alias}\t{device_address}",
+ "tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}%",
+ "on-click": "blueman-manager &"
+ }
+}
diff --git a/waybar/.config/waybar/style.css b/waybar/.config/waybar/style.css
new file mode 100644
index 0000000..1362a3a
--- /dev/null
+++ b/waybar/.config/waybar/style.css
@@ -0,0 +1,136 @@
+@import "themes/mocha.css";
+
+* {
+ font-family: "JetBrainsMono Nerd Font";
+ font-size: 12pt;
+ font-weight: bold;
+ border-radius: 0px;
+ transition-property: background-color;
+ transition-duration: 0.5s;
+}
+@keyframes blink_red {
+ to {
+ background-color: @flamingo;
+ color: @mantle;
+ }
+}
+.warning, .critical, .urgent {
+ animation-name: blink_red;
+ animation-duration: 1s;
+ animation-timing-function: linear;
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
+}
+window#waybar {
+ background-color: transparent;
+}
+window > box {
+ margin-left: 5px;
+ margin-right: 5px;
+ margin-top: 5px;
+ background-color: @base;
+}
+#workspaces {
+ padding-left: 0px;
+ padding-right: 4px;
+}
+#workspaces button {
+ color: @teal;
+ padding-top: 5px;
+ padding-bottom: 5px;
+ padding-left: 6px;
+ padding-right: 6px;
+}
+#workspaces button.focused {
+ background-color: @teal;
+ color: @mantle;
+}
+#workspaces button.urgent {
+ color: @mantle;
+}
+#workspaces button:hover {
+ background-color: @peach;
+ color: @mantle;
+}
+tooltip {
+ background: @surface0;
+}
+tooltip label {
+ color: @text;
+}
+#custom-launcher {
+ padding-left: 8px;
+ padding-right: 6px;
+ color: @mauve;
+}
+#mode, #clock, #memory, #temperature, #cpu, #mpd, #idle_inhibitor, #temperature, #backlight, #pulseaudio, #network, #battery, #custom-powermenu, #bluetooth {
+ padding-left: 10px;
+ padding-right: 10px;
+}
+#memory {
+ color: @teal;
+}
+#cpu {
+ color: @pink;
+}
+#clock {
+ color: @text;
+}
+#idle_inhibitor {
+ color: @mauve;
+}
+#temperature {
+ color: @sapphire;
+}
+#backlight {
+ color: @peach;
+}
+#pulseaudio {
+ color: @rosewater;
+}
+#network {
+ color: @green;
+}
+#network.disconnected {
+ color: @text;
+}
+#battery {
+ color: @sky;
+}
+#battery.charging {
+ color: @green;
+}
+#battery.full, #battery.discharging {
+ color: @yellow;
+}
+#battery.critical:not(.charging) {
+ color: @red;
+ animation-name: blink;
+ animation-duration: 0.5s;
+ animation-timing-function: linear;
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
+}
+#custom-powermenu {
+ color: @red;
+}
+#tray {
+ padding-right: 8px;
+ padding-left: 10px;
+}
+#mpd.paused {
+ color: @blue;
+ font-style: italic;
+}
+#mpd.stopped {
+ background: transparent;
+}
+#mpd {
+ color: @sky;
+}
+#bluetooth {
+ color: @blue;
+}
+#custom-launcher {
+ color: @text;
+}
diff --git a/waybar/.config/waybar/themes/frappe.css b/waybar/.config/waybar/themes/frappe.css
new file mode 100644
index 0000000..c06b8fb
--- /dev/null
+++ b/waybar/.config/waybar/themes/frappe.css
@@ -0,0 +1,26 @@
+@define-color rosewater #f2d5cf;
+@define-color flamingo #eebebe;
+@define-color pink #f4b8e4;
+@define-color mauve #ca9ee6;
+@define-color red #e78284;
+@define-color maroon #ea999c;
+@define-color peach #ef9f76;
+@define-color yellow #e5c890;
+@define-color green #a6d189;
+@define-color teal #81c8be;
+@define-color sky #99d1db;
+@define-color sapphire #85c1dc;
+@define-color blue #8caaee;
+@define-color lavender #babbf1;
+@define-color text #c6d0f5;
+@define-color subtext1 #b5bfe2;
+@define-color subtext0 #a5adce;
+@define-color overlay2 #949cbb;
+@define-color overlay1 #838ba7;
+@define-color overlay0 #737994;
+@define-color surface2 #626880;
+@define-color surface1 #51576d;
+@define-color surface0 #414559;
+@define-color base #303446;
+@define-color mantle #292c3c;
+@define-color crust #232634;
diff --git a/waybar/.config/waybar/themes/latte.css b/waybar/.config/waybar/themes/latte.css
new file mode 100644
index 0000000..bb101b1
--- /dev/null
+++ b/waybar/.config/waybar/themes/latte.css
@@ -0,0 +1,26 @@
+@define-color rosewater #dc8a78;
+@define-color flamingo #dd7878;
+@define-color pink #ea76cb;
+@define-color mauve #8839ef;
+@define-color red #d20f39;
+@define-color maroon #e64553;
+@define-color peach #fe640b;
+@define-color yellow #df8e1d;
+@define-color green #40a02b;
+@define-color teal #179299;
+@define-color sky #04a5e5;
+@define-color sapphire #209fb5;
+@define-color blue #1e66f5;
+@define-color lavender #7287fd;
+@define-color text #4c4f69;
+@define-color subtext1 #5c5f77;
+@define-color subtext0 #6c6f85;
+@define-color overlay2 #7c7f93;
+@define-color overlay1 #8c8fa1;
+@define-color overlay0 #9ca0b0;
+@define-color surface2 #acb0be;
+@define-color surface1 #bcc0cc;
+@define-color surface0 #ccd0da;
+@define-color base #eff1f5;
+@define-color mantle #e6e9ef;
+@define-color crust #dce0e8;
diff --git a/waybar/.config/waybar/themes/macchiato.css b/waybar/.config/waybar/themes/macchiato.css
new file mode 100644
index 0000000..112ee32
--- /dev/null
+++ b/waybar/.config/waybar/themes/macchiato.css
@@ -0,0 +1,26 @@
+@define-color rosewater #f4dbd6;
+@define-color flamingo #f0c6c6;
+@define-color pink #f5bde6;
+@define-color mauve #c6a0f6;
+@define-color red #ed8796;
+@define-color maroon #ee99a0;
+@define-color peach #f5a97f;
+@define-color yellow #eed49f;
+@define-color green #a6da95;
+@define-color teal #8bd5ca;
+@define-color sky #91d7e3;
+@define-color sapphire #7dc4e4;
+@define-color blue #8aadf4;
+@define-color lavender #b7bdf8;
+@define-color text #cad3f5;
+@define-color subtext1 #b8c0e0;
+@define-color subtext0 #a5adcb;
+@define-color overlay2 #939ab7;
+@define-color overlay1 #8087a2;
+@define-color overlay0 #6e738d;
+@define-color surface2 #5b6078;
+@define-color surface1 #494d64;
+@define-color surface0 #363a4f;
+@define-color base #24273a;
+@define-color mantle #1e2030;
+@define-color crust #181926;
diff --git a/waybar/.config/waybar/themes/mocha.css b/waybar/.config/waybar/themes/mocha.css
new file mode 100644
index 0000000..0eb6a82
--- /dev/null
+++ b/waybar/.config/waybar/themes/mocha.css
@@ -0,0 +1,26 @@
+@define-color rosewater #f5e0dc;
+@define-color flamingo #f2cdcd;
+@define-color pink #f5c2e7;
+@define-color mauve #cba6f7;
+@define-color red #f38ba8;
+@define-color maroon #eba0ac;
+@define-color peach #fab387;
+@define-color yellow #f9e2af;
+@define-color green #a6e3a1;
+@define-color teal #94e2d5;
+@define-color sky #89dceb;
+@define-color sapphire #74c7ec;
+@define-color blue #89b4fa;
+@define-color lavender #b4befe;
+@define-color text #cdd6f4;
+@define-color subtext1 #bac2de;
+@define-color subtext0 #a6adc8;
+@define-color overlay2 #9399b2;
+@define-color overlay1 #7f849c;
+@define-color overlay0 #6c7086;
+@define-color surface2 #585b70;
+@define-color surface1 #45475a;
+@define-color surface0 #313244;
+@define-color base #1e1e2e;
+@define-color mantle #181825;
+@define-color crust #11111b;
diff --git a/yazi/.config/yazi/Catppuccin Mocha.tmTheme b/yazi/.config/yazi/Catppuccin Mocha.tmTheme
new file mode 100644
index 0000000..ff135ab
--- /dev/null
+++ b/yazi/.config/yazi/Catppuccin Mocha.tmTheme
@@ -0,0 +1,2048 @@
+
+
+
+
+ name
+ Catppuccin Mocha
+ semanticClass
+ theme.dark.catppuccin-mocha
+ uuid
+ 627ce890-fabb-4d39-9819-7be71f4bdca7
+ author
+ Catppuccin Org
+ colorSpaceName
+ sRGB
+ settings
+
+
+ settings
+
+ background
+ #1e1e2e
+ foreground
+ #cdd6f4
+ caret
+ #f5e0dc
+ lineHighlight
+ #313244
+ misspelling
+ #f38ba8
+ accent
+ #cba6f7
+ selection
+ #9399b240
+ activeGuide
+ #45475a
+ findHighlight
+ #3e5767
+ gutterForeground
+ #7f849c
+
+
+
+ name
+ Basic text & variable names (incl. leading punctuation)
+ scope
+ text, source, variable.other.readwrite, punctuation.definition.variable
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ name
+ Parentheses, Brackets, Braces
+ scope
+ punctuation
+ settings
+
+ foreground
+ #9399b2
+ fontStyle
+
+
+
+
+ name
+ Comments
+ scope
+ comment, punctuation.definition.comment
+ settings
+
+ foreground
+ #6c7086
+ fontStyle
+ italic
+
+
+
+ scope
+ string, punctuation.definition.string
+ settings
+
+ foreground
+ #a6e3a1
+
+
+
+ scope
+ constant.character.escape
+ settings
+
+ foreground
+ #f5c2e7
+
+
+
+ name
+ Booleans, constants, numbers
+ scope
+ 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
+ settings
+
+ foreground
+ #fab387
+
+
+
+ scope
+ keyword, keyword.operator.word, keyword.operator.new, variable.language.super, support.type.primitive, storage.type, storage.modifier, punctuation.definition.keyword
+ settings
+
+ foreground
+ #cba6f7
+ fontStyle
+
+
+
+
+ scope
+ entity.name.tag.documentation
+ settings
+
+ foreground
+ #cba6f7
+
+
+
+ name
+ Punctuation
+ scope
+ keyword.operator, punctuation.accessor, punctuation.definition.generic, meta.function.closure punctuation.section.parameters, punctuation.definition.tag, punctuation.separator.key-value
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ scope
+ entity.name.function, meta.function-call.method, support.function, support.function.misc, variable.function
+ settings
+
+ foreground
+ #89b4fa
+ fontStyle
+ italic
+
+
+
+ name
+ Classes
+ scope
+ entity.name.class, entity.other.inherited-class, support.class, meta.function-call.constructor, entity.name.struct
+ settings
+
+ foreground
+ #f9e2af
+ fontStyle
+ italic
+
+
+
+ name
+ Enum
+ scope
+ entity.name.enum
+ settings
+
+ foreground
+ #f9e2af
+ fontStyle
+ italic
+
+
+
+ name
+ Enum member
+ scope
+ meta.enum variable.other.readwrite, variable.other.enummember
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ name
+ Object properties
+ scope
+ meta.property.object
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ name
+ Types
+ scope
+ meta.type, meta.type-alias, support.type, entity.name.type
+ settings
+
+ foreground
+ #f9e2af
+ fontStyle
+ italic
+
+
+
+ name
+ Decorators
+ scope
+ meta.annotation variable.function, meta.annotation variable.annotation.function, meta.annotation punctuation.definition.annotation, meta.decorator, punctuation.decorator
+ settings
+
+ foreground
+ #fab387
+
+
+
+ scope
+ variable.parameter, meta.function.parameters
+ settings
+
+ foreground
+ #eba0ac
+ fontStyle
+ italic
+
+
+
+ name
+ Built-ins
+ scope
+ constant.language, support.function.builtin
+ settings
+
+ foreground
+ #f38ba8
+
+
+
+ scope
+ entity.other.attribute-name.documentation
+ settings
+
+ foreground
+ #f38ba8
+
+
+
+ name
+ Preprocessor directives
+ scope
+ keyword.control.directive, punctuation.definition.directive
+ settings
+
+ foreground
+ #f9e2af
+
+
+
+ name
+ Type parameters
+ scope
+ punctuation.definition.typeparameters
+ settings
+
+ foreground
+ #89dceb
+
+
+
+ name
+ Namespaces
+ scope
+ entity.name.namespace
+ settings
+
+ foreground
+ #f9e2af
+
+
+
+ name
+ Property names (left hand assignments in json/yaml/css)
+ scope
+ support.type.property-name.css
+ settings
+
+ foreground
+ #89b4fa
+ fontStyle
+
+
+
+
+ name
+ This/Self keyword
+ scope
+ variable.language.this, variable.language.this punctuation.definition.variable
+ settings
+
+ foreground
+ #f38ba8
+
+
+
+ name
+ Object properties
+ scope
+ variable.object.property
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ name
+ String template interpolation
+ scope
+ string.template variable, string variable
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ name
+ `new` as bold
+ scope
+ keyword.operator.new
+ settings
+
+ fontStyle
+ bold
+
+
+
+ name
+ C++ extern keyword
+ scope
+ storage.modifier.specifier.extern.cpp
+ settings
+
+ foreground
+ #cba6f7
+
+
+
+ name
+ C++ scope resolution
+ scope
+ 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
+ settings
+
+ foreground
+ #f9e2af
+
+
+
+ name
+ C++ doc keywords
+ scope
+ storage.type.class.doxygen
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ C++ operators
+ scope
+ storage.modifier.reference.cpp
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ name
+ C# Interpolated Strings
+ scope
+ meta.interpolation.cs
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ name
+ C# xml-style docs
+ scope
+ comment.block.documentation.cs
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ name
+ Classes, reflecting the className color in JSX
+ scope
+ source.css entity.other.attribute-name.class.css, entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css
+ settings
+
+ foreground
+ #f9e2af
+
+
+
+ name
+ Operators
+ scope
+ punctuation.separator.operator.css
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ name
+ Pseudo classes
+ scope
+ source.css entity.other.attribute-name.pseudo-class
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ scope
+ source.css constant.other.unicode-range
+ settings
+
+ foreground
+ #fab387
+
+
+
+ scope
+ source.css variable.parameter.url
+ settings
+
+ foreground
+ #a6e3a1
+ fontStyle
+
+
+
+
+ name
+ CSS vendored property names
+ scope
+ support.type.vendored.property-name
+ settings
+
+ foreground
+ #89dceb
+
+
+
+ name
+ Less/SCSS right-hand variables (@/$-prefixed)
+ scope
+ 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
+ settings
+
+ foreground
+ #eba0ac
+
+
+
+ name
+ CSS variables (--prefixed)
+ scope
+ source.css meta.property-list variable, meta.property-list variable.other.less, meta.property-list variable.other.less punctuation.definition.variable.less
+ settings
+
+ foreground
+ #89b4fa
+
+
+
+ name
+ CSS Percentage values, styled the same as numbers
+ scope
+ keyword.other.unit.percentage.css
+ settings
+
+ foreground
+ #fab387
+
+
+
+ name
+ CSS Attribute selectors, styled the same as strings
+ scope
+ source.css meta.attribute-selector
+ settings
+
+ foreground
+ #a6e3a1
+
+
+
+ name
+ JSON/YAML keys, other left-hand assignments
+ scope
+ 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
+ settings
+
+ foreground
+ #89b4fa
+ fontStyle
+
+
+
+
+ name
+ JSON/YAML constants
+ scope
+ constant.language.json, constant.language.yaml
+ settings
+
+ foreground
+ #fab387
+
+
+
+ name
+ YAML anchors
+ scope
+ entity.name.type.anchor.yaml, variable.other.alias.yaml
+ settings
+
+ foreground
+ #f9e2af
+ fontStyle
+
+
+
+
+ name
+ TOML tables / ini groups
+ scope
+ support.type.property-name.table, entity.name.section.group-title.ini
+ settings
+
+ foreground
+ #f9e2af
+
+
+
+ name
+ TOML dates
+ scope
+ constant.other.time.datetime.offset.toml
+ settings
+
+ foreground
+ #f5c2e7
+
+
+
+ name
+ YAML anchor puctuation
+ scope
+ punctuation.definition.anchor.yaml, punctuation.definition.alias.yaml
+ settings
+
+ foreground
+ #f5c2e7
+
+
+
+ name
+ YAML triple dashes
+ scope
+ entity.other.document.begin.yaml
+ settings
+
+ foreground
+ #f5c2e7
+
+
+
+ name
+ Markup Diff
+ scope
+ markup.changed.diff
+ settings
+
+ foreground
+ #fab387
+
+
+
+ name
+ Diff
+ scope
+ meta.diff.header.from-file, meta.diff.header.to-file, punctuation.definition.from-file.diff, punctuation.definition.to-file.diff
+ settings
+
+ foreground
+ #89b4fa
+
+
+
+ name
+ Diff Inserted
+ scope
+ markup.inserted.diff
+ settings
+
+ foreground
+ #a6e3a1
+
+
+
+ name
+ Diff Deleted
+ scope
+ markup.deleted.diff
+ settings
+
+ foreground
+ #f38ba8
+
+
+
+ name
+ dotenv left-hand side assignments
+ scope
+ variable.other.env
+ settings
+
+ foreground
+ #89b4fa
+
+
+
+ name
+ dotenv reference to existing env variable
+ scope
+ string.quoted variable.other.env
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ name
+ GDScript functions
+ scope
+ support.function.builtin.gdscript
+ settings
+
+ foreground
+ #89b4fa
+
+
+
+ name
+ GDScript constants
+ scope
+ constant.language.gdscript
+ settings
+
+ foreground
+ #fab387
+
+
+
+ name
+ Comment keywords
+ scope
+ comment meta.annotation.go
+ settings
+
+ foreground
+ #eba0ac
+
+
+
+ name
+ go:embed, go:build, etc.
+ scope
+ comment meta.annotation.parameters.go
+ settings
+
+ foreground
+ #fab387
+
+
+
+ name
+ Go constants (nil, true, false)
+ scope
+ constant.language.go
+ settings
+
+ foreground
+ #fab387
+
+
+
+ name
+ GraphQL variables
+ scope
+ variable.graphql
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ name
+ GraphQL aliases
+ scope
+ string.unquoted.alias.graphql
+ settings
+
+ foreground
+ #f2cdcd
+
+
+
+ name
+ GraphQL enum members
+ scope
+ constant.character.enum.graphql
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ name
+ GraphQL field in types
+ scope
+ meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql
+ settings
+
+ foreground
+ #f2cdcd
+
+
+
+ name
+ HTML/XML DOCTYPE as keyword
+ scope
+ keyword.other.doctype, meta.tag.sgml.doctype punctuation.definition.tag, meta.tag.metadata.doctype entity.name.tag, meta.tag.metadata.doctype punctuation.definition.tag
+ settings
+
+ foreground
+ #cba6f7
+
+
+
+ name
+ HTML/XML-like <tags/>
+ scope
+ entity.name.tag
+ settings
+
+ foreground
+ #89b4fa
+ fontStyle
+
+
+
+
+ name
+ Special characters like &
+ scope
+ 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
+ settings
+
+ foreground
+ #f38ba8
+
+
+
+ name
+ HTML/XML tag attribute values
+ scope
+ entity.other.attribute-name
+ settings
+
+ foreground
+ #f9e2af
+
+
+
+ name
+ Components
+ scope
+ support.class.component, support.class.component.jsx, support.class.component.tsx, support.class.component.vue
+ settings
+
+ foreground
+ #f5c2e7
+ fontStyle
+
+
+
+
+ name
+ Annotations
+ scope
+ punctuation.definition.annotation, storage.type.annotation
+ settings
+
+ foreground
+ #fab387
+
+
+
+ name
+ Java enums
+ scope
+ constant.other.enum.java
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ name
+ Java imports
+ scope
+ storage.modifier.import.java
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ name
+ Javadoc
+ scope
+ comment.block.javadoc.java keyword.other.documentation.javadoc.java
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ Exported Variable
+ scope
+ meta.export variable.other.readwrite.js
+ settings
+
+ foreground
+ #eba0ac
+
+
+
+ name
+ JS/TS constants & properties
+ scope
+ variable.other.constant.js, variable.other.constant.ts, variable.other.property.js, variable.other.property.ts
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ name
+ JSDoc; these are mainly params, so styled as such
+ scope
+ variable.other.jsdoc, comment.block.documentation variable.other
+ settings
+
+ foreground
+ #eba0ac
+ fontStyle
+
+
+
+
+ name
+ JSDoc keywords
+ scope
+ storage.type.class.jsdoc
+ settings
+
+ fontStyle
+
+
+
+
+ scope
+ support.type.object.console.js
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ name
+ Node constants as keywords (module, etc.)
+ scope
+ support.constant.node, support.type.object.module.js
+ settings
+
+ foreground
+ #cba6f7
+
+
+
+ name
+ implements as keyword
+ scope
+ storage.modifier.implements
+ settings
+
+ foreground
+ #cba6f7
+
+
+
+ name
+ Builtin types
+ scope
+ constant.language.null.js, constant.language.null.ts, constant.language.undefined.js, constant.language.undefined.ts, support.type.builtin.ts
+ settings
+
+ foreground
+ #cba6f7
+
+
+
+ scope
+ variable.parameter.generic
+ settings
+
+ foreground
+ #f9e2af
+
+
+
+ name
+ Arrow functions
+ scope
+ keyword.declaration.function.arrow.js, storage.type.function.arrow.ts
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ name
+ Decorator punctuations (decorators inherit from blue functions, instead of styleguide peach)
+ scope
+ punctuation.decorator.ts
+ settings
+
+ foreground
+ #89b4fa
+ fontStyle
+ italic
+
+
+
+ name
+ Extra JS/TS keywords
+ scope
+ 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
+ settings
+
+ foreground
+ #cba6f7
+
+
+
+ name
+ Julia macros
+ scope
+ support.function.macro.julia
+ settings
+
+ foreground
+ #94e2d5
+ fontStyle
+ italic
+
+
+
+ name
+ Julia language constants (true, false)
+ scope
+ constant.language.julia
+ settings
+
+ foreground
+ #fab387
+
+
+
+ name
+ Julia other constants (these seem to be arguments inside arrays)
+ scope
+ constant.other.symbol.julia
+ settings
+
+ foreground
+ #eba0ac
+
+
+
+ name
+ LaTeX preamble
+ scope
+ text.tex keyword.control.preamble
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ name
+ LaTeX be functions
+ scope
+ text.tex support.function.be
+ settings
+
+ foreground
+ #89dceb
+
+
+
+ name
+ LaTeX math
+ scope
+ constant.other.general.math.tex
+ settings
+
+ foreground
+ #f2cdcd
+
+
+
+ name
+ Lua docstring keywords
+ scope
+ comment.line.double-dash.documentation.lua storage.type.annotation.lua
+ settings
+
+ foreground
+ #cba6f7
+ fontStyle
+
+
+
+
+ name
+ Lua docstring variables
+ scope
+ comment.line.double-dash.documentation.lua entity.name.variable.lua, comment.line.double-dash.documentation.lua variable.lua
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #f38ba8
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #fab387
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #f9e2af
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #a6e3a1
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #89b4fa
+
+
+
+ scope
+ 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
+ settings
+
+ foreground
+ #cba6f7
+
+
+
+ scope
+ markup.bold
+ settings
+
+ foreground
+ #f38ba8
+ fontStyle
+ bold
+
+
+
+ scope
+ markup.italic
+ settings
+
+ foreground
+ #f38ba8
+ fontStyle
+ italic
+
+
+
+ scope
+ markup.strikethrough
+ settings
+
+ foreground
+ #a6adc8
+ fontStyle
+ strikethrough
+
+
+
+ name
+ Markdown auto links
+ scope
+ punctuation.definition.link, markup.underline.link
+ settings
+
+ foreground
+ #89b4fa
+
+
+
+ name
+ Markdown links
+ scope
+ 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
+ settings
+
+ foreground
+ #b4befe
+
+
+
+ name
+ Markdown code spans
+ scope
+ punctuation.definition.raw.markdown, markup.inline.raw.string.markdown, markup.raw.block.markdown
+ settings
+
+ foreground
+ #a6e3a1
+
+
+
+ name
+ Markdown triple backtick language identifier
+ scope
+ fenced_code.block.language
+ settings
+
+ foreground
+ #89dceb
+
+
+
+ name
+ Markdown triple backticks
+ scope
+ markup.fenced_code.block punctuation.definition, markup.raw support.asciidoc
+ settings
+
+ foreground
+ #9399b2
+
+
+
+ name
+ Markdown quotes
+ scope
+ markup.quote, punctuation.definition.quote.begin
+ settings
+
+ foreground
+ #f5c2e7
+
+
+
+ name
+ Markdown separators
+ scope
+ meta.separator.markdown
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ name
+ Markdown list bullets
+ scope
+ punctuation.definition.list.begin.markdown, markup.list.bullet
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ name
+ Nix attribute names
+ scope
+ entity.other.attribute-name.multipart.nix, entity.other.attribute-name.single.nix
+ settings
+
+ foreground
+ #89b4fa
+
+
+
+ name
+ Nix parameter names
+ scope
+ variable.parameter.name.nix
+ settings
+
+ foreground
+ #cdd6f4
+ fontStyle
+
+
+
+
+ name
+ Nix interpolated parameter names
+ scope
+ meta.embedded variable.parameter.name.nix
+ settings
+
+ foreground
+ #b4befe
+ fontStyle
+
+
+
+
+ name
+ Nix paths
+ scope
+ string.unquoted.path.nix
+ settings
+
+ foreground
+ #f5c2e7
+ fontStyle
+
+
+
+
+ name
+ PHP Attributes
+ scope
+ support.attribute.builtin, meta.attribute.php
+ settings
+
+ foreground
+ #f9e2af
+
+
+
+ name
+ PHP Parameters (needed for the leading dollar sign)
+ scope
+ meta.function.parameters.php punctuation.definition.variable.php
+ settings
+
+ foreground
+ #eba0ac
+
+
+
+ name
+ PHP Constants (null, __FILE__, etc.)
+ scope
+ constant.language.php
+ settings
+
+ foreground
+ #cba6f7
+
+
+
+ name
+ PHP functions
+ scope
+ text.html.php support.function
+ settings
+
+ foreground
+ #89dceb
+
+
+
+ name
+ PHPdoc keywords
+ scope
+ keyword.other.phpdoc.php
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ Python argument functions reset to text, otherwise they inherit blue from function-call
+ scope
+ support.variable.magic.python, meta.function-call.arguments.python
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ name
+ Python double underscore functions
+ scope
+ support.function.magic.python
+ settings
+
+ foreground
+ #89dceb
+ fontStyle
+ italic
+
+
+
+ name
+ Python `self` keyword
+ scope
+ variable.parameter.function.language.special.self.python, variable.language.special.self.python
+ settings
+
+ foreground
+ #f38ba8
+ fontStyle
+ italic
+
+
+
+ name
+ python keyword flow/logical (for ... in)
+ scope
+ keyword.control.flow.python, keyword.operator.logical.python
+ settings
+
+ foreground
+ #cba6f7
+
+
+
+ name
+ python storage type
+ scope
+ storage.type.function.python
+ settings
+
+ foreground
+ #cba6f7
+
+
+
+ name
+ python function support
+ scope
+ support.token.decorator.python, meta.function.decorator.identifier.python
+ settings
+
+ foreground
+ #89dceb
+
+
+
+ name
+ python function calls
+ scope
+ meta.function-call.python
+ settings
+
+ foreground
+ #89b4fa
+
+
+
+ name
+ python function decorators
+ scope
+ entity.name.function.decorator.python, punctuation.definition.decorator.python
+ settings
+
+ foreground
+ #fab387
+ fontStyle
+ italic
+
+
+
+ name
+ python placeholder reset to normal string
+ scope
+ constant.character.format.placeholder.other.python
+ settings
+
+ foreground
+ #f5c2e7
+
+
+
+ name
+ Python exception & builtins such as exit()
+ scope
+ support.type.exception.python, support.function.builtin.python
+ settings
+
+ foreground
+ #fab387
+
+
+
+ name
+ entity.name.type
+ scope
+ support.type.python
+ settings
+
+ foreground
+ #fab387
+
+
+
+ name
+ python constants (True/False)
+ scope
+ constant.language.python
+ settings
+
+ foreground
+ #cba6f7
+
+
+
+ name
+ Arguments accessed later in the function body
+ scope
+ meta.indexed-name.python, meta.item-access.python
+ settings
+
+ foreground
+ #eba0ac
+ fontStyle
+ italic
+
+
+
+ name
+ Python f-strings/binary/unicode storage types
+ scope
+ storage.type.string.python
+ settings
+
+ foreground
+ #a6e3a1
+ fontStyle
+ italic
+
+
+
+ name
+ Python type hints
+ scope
+ meta.function.parameters.python
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ Regex string begin/end in JS/TS
+ scope
+ string.regexp punctuation.definition.string.begin, string.regexp punctuation.definition.string.end
+ settings
+
+ foreground
+ #f5c2e7
+
+
+
+ name
+ Regex anchors (^, $)
+ scope
+ keyword.control.anchor.regexp
+ settings
+
+ foreground
+ #cba6f7
+
+
+
+ name
+ Regex regular string match
+ scope
+ string.regexp.ts
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ name
+ Regex group parenthesis & backreference (\1, \2, \3, ...)
+ scope
+ punctuation.definition.group.regexp, keyword.other.back-reference.regexp
+ settings
+
+ foreground
+ #a6e3a1
+
+
+
+ name
+ Regex character class []
+ scope
+ punctuation.definition.character-class.regexp
+ settings
+
+ foreground
+ #f9e2af
+
+
+
+ name
+ Regex character classes (\d, \w, \s)
+ scope
+ constant.other.character-class.regexp
+ settings
+
+ foreground
+ #f5c2e7
+
+
+
+ name
+ Regex range
+ scope
+ constant.other.character-class.range.regexp
+ settings
+
+ foreground
+ #f5e0dc
+
+
+
+ name
+ Regex quantifier
+ scope
+ keyword.operator.quantifier.regexp
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ name
+ Regex constant/numeric
+ scope
+ constant.character.numeric.regexp
+ settings
+
+ foreground
+ #fab387
+
+
+
+ name
+ Regex lookaheads, negative lookaheads, lookbehinds, negative lookbehinds
+ scope
+ punctuation.definition.group.no-capture.regexp, meta.assertion.look-ahead.regexp, meta.assertion.negative-look-ahead.regexp
+ settings
+
+ foreground
+ #89b4fa
+
+
+
+ name
+ Rust attribute
+ scope
+ meta.annotation.rust, meta.annotation.rust punctuation, meta.attribute.rust, punctuation.definition.attribute.rust
+ settings
+
+ foreground
+ #f9e2af
+ fontStyle
+ italic
+
+
+
+ name
+ Rust attribute strings
+ scope
+ meta.attribute.rust string.quoted.double.rust, meta.attribute.rust string.quoted.single.char.rust
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ Rust keyword
+ scope
+ 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
+ settings
+
+ foreground
+ #cba6f7
+ fontStyle
+
+
+
+
+ name
+ Rust u/i32, u/i64, etc.
+ scope
+ entity.name.type.numeric.rust
+ settings
+
+ foreground
+ #cba6f7
+ fontStyle
+
+
+
+
+ name
+ Rust generic
+ scope
+ meta.generic.rust
+ settings
+
+ foreground
+ #fab387
+
+
+
+ name
+ Rust impl
+ scope
+ entity.name.impl.rust
+ settings
+
+ foreground
+ #f9e2af
+ fontStyle
+ italic
+
+
+
+ name
+ Rust module
+ scope
+ entity.name.module.rust
+ settings
+
+ foreground
+ #fab387
+
+
+
+ name
+ Rust trait
+ scope
+ entity.name.trait.rust
+ settings
+
+ foreground
+ #f9e2af
+ fontStyle
+ italic
+
+
+
+ name
+ Rust struct
+ scope
+ storage.type.source.rust
+ settings
+
+ foreground
+ #f9e2af
+
+
+
+ name
+ Rust union
+ scope
+ entity.name.union.rust
+ settings
+
+ foreground
+ #f9e2af
+
+
+
+ name
+ Rust enum member
+ scope
+ meta.enum.rust storage.type.source.rust
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ name
+ Rust macro
+ scope
+ support.macro.rust, meta.macro.rust support.function.rust, entity.name.function.macro.rust
+ settings
+
+ foreground
+ #89b4fa
+ fontStyle
+ italic
+
+
+
+ name
+ Rust lifetime
+ scope
+ storage.modifier.lifetime.rust, entity.name.type.lifetime
+ settings
+
+ foreground
+ #89b4fa
+ fontStyle
+ italic
+
+
+
+ name
+ Rust string formatting
+ scope
+ string.quoted.double.rust constant.other.placeholder.rust
+ settings
+
+ foreground
+ #f5c2e7
+
+
+
+ name
+ Rust return type generic
+ scope
+ meta.function.return-type.rust meta.generic.rust storage.type.rust
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ name
+ Rust functions
+ scope
+ meta.function.call.rust
+ settings
+
+ foreground
+ #89b4fa
+
+
+
+ name
+ Rust angle brackets
+ scope
+ punctuation.brackets.angle.rust
+ settings
+
+ foreground
+ #89dceb
+
+
+
+ name
+ Rust constants
+ scope
+ constant.other.caps.rust
+ settings
+
+ foreground
+ #fab387
+
+
+
+ name
+ Rust function parameters
+ scope
+ meta.function.definition.rust variable.other.rust
+ settings
+
+ foreground
+ #eba0ac
+
+
+
+ name
+ Rust closure variables
+ scope
+ meta.function.call.rust variable.other.rust
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ name
+ Rust self
+ scope
+ variable.language.self.rust
+ settings
+
+ foreground
+ #f38ba8
+
+
+
+ name
+ Rust metavariable names
+ scope
+ variable.other.metavariable.name.rust, meta.macro.metavariable.rust keyword.operator.macro.dollar.rust
+ settings
+
+ foreground
+ #f5c2e7
+
+
+
+ name
+ Shell shebang
+ scope
+ comment.line.shebang, comment.line.shebang punctuation.definition.comment, comment.line.shebang, punctuation.definition.comment.shebang.shell, meta.shebang.shell
+ settings
+
+ foreground
+ #f5c2e7
+ fontStyle
+ italic
+
+
+
+ name
+ Shell shebang command
+ scope
+ comment.line.shebang constant.language
+ settings
+
+ foreground
+ #94e2d5
+ fontStyle
+ italic
+
+
+
+ name
+ Shell interpolated command
+ scope
+ 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
+ settings
+
+ foreground
+ #f38ba8
+
+
+
+ name
+ Shell interpolated command variable
+ scope
+ meta.string meta.interpolation.parameter.shell variable.other.readwrite
+ settings
+
+ foreground
+ #fab387
+ fontStyle
+ italic
+
+
+
+ scope
+ source.shell punctuation.section.interpolation, punctuation.definition.evaluation.backticks.shell
+ settings
+
+ foreground
+ #94e2d5
+
+
+
+ name
+ Shell EOF
+ scope
+ entity.name.tag.heredoc.shell
+ settings
+
+ foreground
+ #cba6f7
+
+
+
+ name
+ Shell quoted variable
+ scope
+ string.quoted.double.shell variable.other.normal.shell
+ settings
+
+ foreground
+ #cdd6f4
+
+
+
+ scope
+ markup.heading.synopsis.man, markup.heading.title.man, markup.heading.other.man, markup.heading.env.man
+ settings
+
+ foreground
+ #cba6f7
+
+
+
+ scope
+ markup.heading.commands.man
+ settings
+
+ foreground
+ #89b4fa
+
+
+
+ scope
+ markup.heading.env.man
+ settings
+
+ foreground
+ #f5c2e7
+
+
+
+ scope
+ markup.heading.1.markdown
+ settings
+
+ foreground
+ #f38ba8
+
+
+
+ scope
+ markup.heading.2.markdown
+ settings
+
+ foreground
+ #fab387
+
+
+
+ scope
+ markup.heading.markdown
+ settings
+
+ foreground
+ #f9e2af
+
+
+
+
+
\ No newline at end of file
diff --git a/yazi/.config/yazi/flavors/.gitkeep b/yazi/.config/yazi/flavors/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/yazi/.config/yazi/keymap.toml b/yazi/.config/yazi/keymap.toml
new file mode 100644
index 0000000..14c0bc1
--- /dev/null
+++ b/yazi/.config/yazi/keymap.toml
@@ -0,0 +1,766 @@
+# A TOML linter such as https://taplo.tamasfe.dev/ can use this schema to validate your config.
+# If you encounter any issues, please make an issue at https://github.com/yazi-rs/schemas.
+"$schema" = "https://yazi-rs.github.io/schemas/keymap.json"
+
+[mgr]
+
+keymap = [
+ { on = [
+ "",
+ ], run = "escape", desc = "Exit visual mode, clear selected, or cancel search" },
+ { on = [
+ "",
+ ], run = "escape", desc = "Exit visual mode, clear selected, or cancel search" },
+ { on = [
+ "q",
+ ], run = "quit", desc = "Exit the process" },
+ { on = [
+ "Q",
+ ], run = "quit --no-cwd-file", desc = "Exit the process without writing cwd-file" },
+ { on = [
+ "",
+ ], run = "close", desc = "Close the current tab, or quit if it is last tab" },
+ { on = [
+ "",
+ ], run = "suspend", desc = "Suspend the process" },
+
+ # Navigation
+ { on = [
+ "k",
+ ], run = "arrow -1", desc = "Move cursor up" },
+ { on = [
+ "j",
+ ], run = "arrow 1", desc = "Move cursor down" },
+
+ { on = [
+ "K",
+ ], run = "arrow -5", desc = "Move cursor up 5 lines" },
+ { on = [
+ "J",
+ ], run = "arrow 5", desc = "Move cursor down 5 lines" },
+
+ { on = [
+ "",
+ ], run = "arrow -5", desc = "Move cursor up 5 lines" },
+ { on = [
+ "",
+ ], run = "arrow 5", desc = "Move cursor down 5 lines" },
+
+ { on = [
+ "",
+ ], run = "arrow -50%", desc = "Move cursor up half page" },
+ { on = [
+ "",
+ ], run = "arrow 50%", desc = "Move cursor down half page" },
+ { on = [
+ "",
+ ], run = "arrow -100%", desc = "Move cursor up one page" },
+ { on = [
+ "",
+ ], run = "arrow 100%", desc = "Move cursor down one page" },
+
+ { on = [
+ "",
+ ], run = "arrow -50%", desc = "Move cursor up half page" },
+ { on = [
+ "",
+ ], run = "arrow 50%", desc = "Move cursor down half page" },
+ { on = [
+ "",
+ ], run = "arrow -100%", desc = "Move cursor up one page" },
+ { on = [
+ "",
+ ], run = "arrow 100%", desc = "Move cursor down one page" },
+
+ { on = [
+ "h",
+ ], run = "leave", desc = "Go back to the parent directory" },
+ { on = [
+ "l",
+ ], run = "enter", desc = "Enter the child directory" },
+
+ { on = [
+ "H",
+ ], run = "back", desc = "Go back to the previous directory" },
+ { on = [
+ "L",
+ ], run = "forward", desc = "Go forward to the next directory" },
+
+ { on = [
+ "",
+ ], run = "seek -5", desc = "Seek up 5 units in the preview" },
+ { on = [
+ "",
+ ], run = "seek 5", desc = "Seek down 5 units in the preview" },
+ { on = [
+ "",
+ ], run = "seek -5", desc = "Seek up 5 units in the preview" },
+ { on = [
+ "",
+ ], run = "seek 5", desc = "Seek down 5 units in the preview" },
+
+ { on = [
+ "",
+ ], run = "arrow -1", desc = "Move cursor up" },
+ { on = [
+ "",
+ ], run = "arrow 1", desc = "Move cursor down" },
+ { on = [
+ "",
+ ], run = "leave", desc = "Go back to the parent directory" },
+ { on = [
+ "",
+ ], run = "enter", desc = "Enter the child directory" },
+
+ { on = [
+ "g",
+ "g",
+ ], run = "arrow -99999999", desc = "Move cursor to the top" },
+ { on = [
+ "G",
+ ], run = "arrow 99999999", desc = "Move cursor to the bottom" },
+
+ # Selection
+ { on = [
+ "",
+ ], run = [
+ "select --state=none",
+ "arrow 1",
+ ], desc = "Toggle the current selection state" },
+ { on = [
+ "v",
+ ], run = "visual_mode", desc = "Enter visual mode (selection mode)" },
+ { on = [
+ "V",
+ ], run = "visual_mode --unset", desc = "Enter visual mode (unset mode)" },
+ { on = [
+ "",
+ ], run = "select_all --state=true", desc = "Select all files" },
+ { on = [
+ "",
+ ], run = "select_all --state=none", desc = "Inverse selection of all files" },
+
+ # Operation
+ { on = [
+ "o",
+ ], run = "open", desc = "Open the selected files" },
+ { on = [
+ "O",
+ ], run = "open --interactive", desc = "Open the selected files interactively" },
+ { on = [
+ "",
+ ], run = "open", desc = "Open the selected files" },
+ { on = [
+ "",
+ ], run = "open --interactive", desc = "Open the selected files interactively" },
+ { on = [
+ "y",
+ ], run = "yank", desc = "Copy the selected files" },
+ { on = [
+ "Y",
+ ], run = "unyank", desc = "Cancel the yank status of files" },
+ { on = [
+ "x",
+ ], run = "yank --cut", desc = "Cut the selected files" },
+ { on = [
+ "X",
+ ], run = "unyank", desc = "Cancel the yank status of files" },
+ { on = [
+ "p",
+ ], run = "paste", desc = "Paste the files" },
+ { on = [
+ "P",
+ ], run = "paste --force", desc = "Paste the files (overwrite if the destination exists)" },
+ { on = [
+ "-",
+ ], run = "link", desc = "Symlink the absolute path of files" },
+ { on = [
+ "_",
+ ], run = "link --relative", desc = "Symlink the relative path of files" },
+ { on = [
+ "d",
+ ], run = "remove", desc = "Move the files to the trash" },
+ { on = [
+ "D",
+ ], run = "remove --permanently", desc = "Permanently delete the files" },
+ { on = [
+ "a",
+ ], run = "create", desc = "Create a file or directory (ends with / for directories)" },
+ { on = [
+ "r",
+ ], run = "rename --cursor=before_ext", desc = "Rename a file or directory" },
+ { on = [
+ ";",
+ ], run = "shell", desc = "Run a shell command" },
+ { on = [
+ ":",
+ ], run = "shell --block", desc = "Run a shell command (block the UI until the command finishes)" },
+ { on = [
+ ".",
+ ], run = "hidden toggle", desc = "Toggle the visibility of hidden files" },
+ { on = [
+ "s",
+ ], run = "search fd", desc = "Search files by name using fd" },
+ { on = [
+ "S",
+ ], run = "search rg", desc = "Search files by content using ripgrep" },
+ { on = [
+ "",
+ ], run = "search none", desc = "Cancel the ongoing search" },
+ { on = [
+ "z",
+ ], run = "plugin zoxide", desc = "Jump to a directory using zoxide" },
+ { on = [
+ "Z",
+ ], run = "plugin fzf", desc = "Jump to a directory, or reveal a file using fzf" },
+
+ # Linemode
+ { on = [
+ "m",
+ "s",
+ ], run = "linemode size", desc = "Set linemode to size" },
+ { on = [
+ "m",
+ "p",
+ ], run = "linemode permissions", desc = "Set linemode to permissions" },
+ { on = [
+ "m",
+ "m",
+ ], run = "linemode mtime", desc = "Set linemode to mtime" },
+ { on = [
+ "m",
+ "n",
+ ], run = "linemode none", desc = "Set linemode to none" },
+
+ # Copy
+ { on = [
+ "c",
+ "c",
+ ], run = "copy path", desc = "Copy the absolute path" },
+ { on = [
+ "c",
+ "d",
+ ], run = "copy dirname", desc = "Copy the path of the parent directory" },
+ { on = [
+ "c",
+ "f",
+ ], run = "copy filename", desc = "Copy the name of the file" },
+ { on = [
+ "c",
+ "n",
+ ], run = "copy name_without_ext", desc = "Copy the name of the file without the extension" },
+
+ # Filter
+ { on = [
+ "f",
+ ], run = "filter --smart", desc = "Filter the files" },
+
+ # Find
+ { on = [
+ "/",
+ ], run = "find --smart", desc = "Find next file" },
+ { on = [
+ "?",
+ ], run = "find --previous --smart", desc = "Find previous file" },
+ { on = [
+ "n",
+ ], run = "find_arrow", desc = "Go to next found file" },
+ { on = [
+ "N",
+ ], run = "find_arrow --previous", desc = "Go to previous found file" },
+
+ # Sorting
+ { on = [
+ ",",
+ "m",
+ ], run = "sort modified --dir-first", desc = "Sort by modified time" },
+ { on = [
+ ",",
+ "M",
+ ], run = "sort modified --reverse --dir-first", desc = "Sort by modified time (reverse)" },
+ { on = [
+ ",",
+ "c",
+ ], run = "sort created --dir-first", desc = "Sort by created time" },
+ { on = [
+ ",",
+ "C",
+ ], run = "sort created --reverse --dir-first", desc = "Sort by created time (reverse)" },
+ { on = [
+ ",",
+ "e",
+ ], run = "sort extension --dir-first", desc = "Sort by extension" },
+ { on = [
+ ",",
+ "E",
+ ], run = "sort extension --reverse --dir-first", desc = "Sort by extension (reverse)" },
+ { on = [
+ ",",
+ "a",
+ ], run = "sort alphabetical --dir-first", desc = "Sort alphabetically" },
+ { on = [
+ ",",
+ "A",
+ ], run = "sort alphabetical --reverse --dir-first", desc = "Sort alphabetically (reverse)" },
+ { on = [
+ ",",
+ "n",
+ ], run = "sort natural --dir-first", desc = "Sort naturally" },
+ { on = [
+ ",",
+ "N",
+ ], run = "sort natural --reverse --dir-first", desc = "Sort naturally (reverse)" },
+ { on = [
+ ",",
+ "s",
+ ], run = "sort size --dir-first", desc = "Sort by size" },
+ { on = [
+ ",",
+ "S",
+ ], run = "sort size --reverse --dir-first", desc = "Sort by size (reverse)" },
+
+ # Tabs
+ { on = [
+ "t",
+ ], run = "tab_create --current", desc = "Create a new tab using the current path" },
+
+ { on = [
+ "1",
+ ], run = "tab_switch 0", desc = "Switch to the first tab" },
+ { on = [
+ "2",
+ ], run = "tab_switch 1", desc = "Switch to the second tab" },
+ { on = [
+ "3",
+ ], run = "tab_switch 2", desc = "Switch to the third tab" },
+ { on = [
+ "4",
+ ], run = "tab_switch 3", desc = "Switch to the fourth tab" },
+ { on = [
+ "5",
+ ], run = "tab_switch 4", desc = "Switch to the fifth tab" },
+ { on = [
+ "6",
+ ], run = "tab_switch 5", desc = "Switch to the sixth tab" },
+ { on = [
+ "7",
+ ], run = "tab_switch 6", desc = "Switch to the seventh tab" },
+ { on = [
+ "8",
+ ], run = "tab_switch 7", desc = "Switch to the eighth tab" },
+ { on = [
+ "9",
+ ], run = "tab_switch 8", desc = "Switch to the ninth tab" },
+
+ { on = [
+ "[",
+ ], run = "tab_switch -1 --relative", desc = "Switch to the previous tab" },
+ { on = [
+ "]",
+ ], run = "tab_switch 1 --relative", desc = "Switch to the next tab" },
+
+ { on = [
+ "{",
+ ], run = "tab_swap -1", desc = "Swap the current tab with the previous tab" },
+ { on = [
+ "}",
+ ], run = "tab_swap 1", desc = "Swap the current tab with the next tab" },
+
+ # Tasks
+ { on = [
+ "w",
+ ], run = "tasks_show", desc = "Show the tasks manager" },
+
+ # Goto
+ { on = [
+ "g",
+ "h",
+ ], run = "cd ~", desc = "Go to the home directory" },
+ { on = [
+ "g",
+ "c",
+ ], run = "cd ~/.config", desc = "Go to the config directory" },
+ { on = [
+ "g",
+ "d",
+ ], run = "cd ~/Downloads", desc = "Go to the downloads directory" },
+ { on = [
+ "g",
+ "t",
+ ], run = "cd /tmp", desc = "Go to the temporary directory" },
+ { on = [
+ "g",
+ "",
+ ], run = "cd --interactive", desc = "Go to a directory interactively" },
+
+ # Help
+ { on = [
+ "~",
+ ], run = "help", desc = "Open help" },
+]
+
+prepend_keymap = []
+
+[tasks]
+
+keymap = [
+ { on = [
+ "",
+ ], run = "close", desc = "Hide the task manager" },
+ { on = [
+ "",
+ ], run = "close", desc = "Hide the task manager" },
+ { on = [
+ "",
+ ], run = "close", desc = "Hide the task manager" },
+ { on = [
+ "w",
+ ], run = "close", desc = "Hide the task manager" },
+
+ { on = [
+ "k",
+ ], run = "arrow -1", desc = "Move cursor up" },
+ { on = [
+ "j",
+ ], run = "arrow 1", desc = "Move cursor down" },
+
+ { on = [
+ "",
+ ], run = "arrow -1", desc = "Move cursor up" },
+ { on = [
+ "",
+ ], run = "arrow 1", desc = "Move cursor down" },
+
+ { on = [
+ "",
+ ], run = "inspect", desc = "Inspect the task" },
+ { on = [
+ "x",
+ ], run = "cancel", desc = "Cancel the task" },
+
+ { on = [
+ "~",
+ ], run = "help", desc = "Open help" },
+]
+
+[select]
+
+keymap = [
+ { on = [
+ "",
+ ], run = "close", desc = "Cancel selection" },
+ { on = [
+ "",
+ ], run = "close", desc = "Cancel selection" },
+ { on = [
+ "",
+ ], run = "close", desc = "Cancel selection" },
+ { on = [
+ "",
+ ], run = "close --submit", desc = "Submit the selection" },
+
+ { on = [
+ "k",
+ ], run = "arrow -1", desc = "Move cursor up" },
+ { on = [
+ "j",
+ ], run = "arrow 1", desc = "Move cursor down" },
+
+ { on = [
+ "K",
+ ], run = "arrow -5", desc = "Move cursor up 5 lines" },
+ { on = [
+ "J",
+ ], run = "arrow 5", desc = "Move cursor down 5 lines" },
+
+ { on = [
+ "",
+ ], run = "arrow -1", desc = "Move cursor up" },
+ { on = [
+ "",
+ ], run = "arrow 1", desc = "Move cursor down" },
+
+ { on = [
+ "",
+ ], run = "arrow -5", desc = "Move cursor up 5 lines" },
+ { on = [
+ "",
+ ], run = "arrow 5", desc = "Move cursor down 5 lines" },
+
+ { on = [
+ "~",
+ ], run = "help", desc = "Open help" },
+]
+
+[input]
+
+keymap = [
+ { on = [
+ "",
+ ], run = "close", desc = "Cancel input" },
+ { on = [
+ "",
+ ], run = "close --submit", desc = "Submit the input" },
+ { on = [
+ "",
+ ], run = "escape", desc = "Go back the normal mode, or cancel input" },
+ { on = [
+ "",
+ ], run = "escape", desc = "Go back the normal mode, or cancel input" },
+
+ # Mode
+ { on = [
+ "i",
+ ], run = "insert", desc = "Enter insert mode" },
+ { on = [
+ "a",
+ ], run = "insert --append", desc = "Enter append mode" },
+ { on = [
+ "I",
+ ], run = [
+ "move -999",
+ "insert",
+ ], desc = "Move to the BOL, and enter insert mode" },
+ { on = [
+ "A",
+ ], run = [
+ "move 999",
+ "insert --append",
+ ], desc = "Move to the EOL, and enter append mode" },
+ { on = [
+ "v",
+ ], run = "visual", desc = "Enter visual mode" },
+ { on = [
+ "V",
+ ], run = [
+ "move -999",
+ "visual",
+ "move 999",
+ ], desc = "Enter visual mode and select all" },
+
+ # Character-wise movement
+ { on = [
+ "h",
+ ], run = "move -1", desc = "Move back a character" },
+ { on = [
+ "l",
+ ], run = "move 1", desc = "Move forward a character" },
+ { on = [
+ "",
+ ], run = "move -1", desc = "Move back a character" },
+ { on = [
+ "",
+ ], run = "move 1", desc = "Move forward a character" },
+ { on = [
+ "",
+ ], run = "move -1", desc = "Move back a character" },
+ { on = [
+ "",
+ ], run = "move 1", desc = "Move forward a character" },
+
+ # Word-wise movement
+ { on = [
+ "b",
+ ], run = "backward", desc = "Move back to the start of the current or previous word" },
+ { on = [
+ "w",
+ ], run = "forward", desc = "Move forward to the start of the next word" },
+ { on = [
+ "e",
+ ], run = "forward --end-of-word", desc = "Move forward to the end of the current or next word" },
+ { on = [
+ "",
+ ], run = "backward", desc = "Move back to the start of the current or previous word" },
+ { on = [
+ "",
+ ], run = "forward --end-of-word", desc = "Move forward to the end of the current or next word" },
+
+ # Line-wise movement
+ { on = [
+ "0",
+ ], run = "move -999", desc = "Move to the BOL" },
+ { on = [
+ "$",
+ ], run = "move 999", desc = "Move to the EOL" },
+ { on = [
+ "",
+ ], run = "move -999", desc = "Move to the BOL" },
+ { on = [
+ "",
+ ], run = "move 999", desc = "Move to the EOL" },
+ { on = [
+ "",
+ ], run = "move -999", desc = "Move to the BOL" },
+ { on = [
+ "",
+ ], run = "move 999", desc = "Move to the EOL" },
+
+ # Delete
+ { on = [
+ "",
+ ], run = "backspace", desc = "Delete the character before the cursor" },
+ { on = [
+ "",
+ ], run = "backspace --under", desc = "Delete the character under the cursor" },
+ { on = [
+ "",
+ ], run = "backspace", desc = "Delete the character before the cursor" },
+ { on = [
+ "",
+ ], run = "backspace --under", desc = "Delete the character under the cursor" },
+
+ # Kill
+ { on = [
+ "",
+ ], run = "kill bol", desc = "Kill backwards to the BOL" },
+ { on = [
+ "",
+ ], run = "kill eol", desc = "Kill forwards to the EOL" },
+ { on = [
+ "",
+ ], run = "kill backward", desc = "Kill backwards to the start of the current word" },
+ { on = [
+ "",
+ ], run = "kill forward", desc = "Kill forwards to the end of the current word" },
+
+ # Cut/Yank/Paste
+ { on = [
+ "d",
+ ], run = "delete --cut", desc = "Cut the selected characters" },
+ { on = [
+ "D",
+ ], run = [
+ "delete --cut",
+ "move 999",
+ ], desc = "Cut until the EOL" },
+ { on = [
+ "c",
+ ], run = "delete --cut --insert", desc = "Cut the selected characters, and enter insert mode" },
+ { on = [
+ "C",
+ ], run = [
+ "delete --cut --insert",
+ "move 999",
+ ], desc = "Cut until the EOL, and enter insert mode" },
+ { on = [
+ "x",
+ ], run = [
+ "delete --cut",
+ "move 1 --in-operating",
+ ], desc = "Cut the current character" },
+ { on = [
+ "y",
+ ], run = "yank", desc = "Copy the selected characters" },
+ { on = [
+ "p",
+ ], run = "paste", desc = "Paste the copied characters after the cursor" },
+ { on = [
+ "P",
+ ], run = "paste --before", desc = "Paste the copied characters before the cursor" },
+
+ # Undo/Redo
+ { on = [
+ "u",
+ ], run = "undo", desc = "Undo the last operation" },
+ { on = [
+ "",
+ ], run = "redo", desc = "Redo the last operation" },
+
+ # Help
+ { on = [
+ "~",
+ ], run = "help", desc = "Open help" },
+]
+
+[completion]
+
+keymap = [
+ { on = [
+ "",
+ ], run = "close", desc = "Cancel completion" },
+ { on = [
+ "",
+ ], run = "close --submit", desc = "Submit the completion" },
+ { on = [
+ "",
+ ], run = [
+ "close --submit",
+ "close_input --submit",
+ ], desc = "Submit the completion and input" },
+
+ { on = [
+ "",
+ ], run = "arrow -1", desc = "Move cursor up" },
+ { on = [
+ "",
+ ], run = "arrow 1", desc = "Move cursor down" },
+
+ { on = [
+ "",
+ ], run = "arrow -1", desc = "Move cursor up" },
+ { on = [
+ "",
+ ], run = "arrow 1", desc = "Move cursor down" },
+
+ { on = [
+ "",
+ ], run = "arrow -1", desc = "Move cursor up" },
+ { on = [
+ "",
+ ], run = "arrow 1", desc = "Move cursor down" },
+
+ { on = [
+ "~",
+ ], run = "help", desc = "Open help" },
+]
+
+[help]
+
+keymap = [
+ { on = [
+ "",
+ ], run = "escape", desc = "Clear the filter, or hide the help" },
+ { on = [
+ "",
+ ], run = "escape", desc = "Clear the filter, or hide the help" },
+ { on = [
+ "q",
+ ], run = "close", desc = "Exit the process" },
+ { on = [
+ "",
+ ], run = "close", desc = "Hide the help" },
+
+ # Navigation
+ { on = [
+ "k",
+ ], run = "arrow -1", desc = "Move cursor up" },
+ { on = [
+ "j",
+ ], run = "arrow 1", desc = "Move cursor down" },
+
+ { on = [
+ "K",
+ ], run = "arrow -5", desc = "Move cursor up 5 lines" },
+ { on = [
+ "J",
+ ], run = "arrow 5", desc = "Move cursor down 5 lines" },
+
+ { on = [
+ "",
+ ], run = "arrow -1", desc = "Move cursor up" },
+ { on = [
+ "",
+ ], run = "arrow 1", desc = "Move cursor down" },
+
+ { on = [
+ "",
+ ], run = "arrow -5", desc = "Move cursor up 5 lines" },
+ { on = [
+ "",
+ ], run = "arrow 5", desc = "Move cursor down 5 lines" },
+
+ # Filtering
+ { on = [
+ "/",
+ ], run = "filter", desc = "Apply a filter for the help items" },
+]
diff --git a/yazi/.config/yazi/plugins/exifaudio.yazi/LICENSE b/yazi/.config/yazi/plugins/exifaudio.yazi/LICENSE
new file mode 100644
index 0000000..78aae84
--- /dev/null
+++ b/yazi/.config/yazi/plugins/exifaudio.yazi/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2024 Sonico98
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/yazi/.config/yazi/plugins/exifaudio.yazi/README.md b/yazi/.config/yazi/plugins/exifaudio.yazi/README.md
new file mode 100644
index 0000000..69a1597
--- /dev/null
+++ b/yazi/.config/yazi/plugins/exifaudio.yazi/README.md
@@ -0,0 +1,32 @@
+# exifaudio.yazi
+
+Preview audio metadata and cover on [Yazi](https://github.com/sxyazi/yazi).
+
+
+
+## Installation
+
+```sh
+# Linux/macOS
+git clone https://github.com/Sonico98/exifaudio.yazi.git ~/.config/yazi/plugins/exifaudio.yazi
+
+# Windows
+git clone https://github.com/Sonico98/exifaudio.yazi.git %AppData%\yazi\config\plugins\exifaudio.yazi
+```
+
+## Usage
+
+Add the following to your `yazi.toml`:
+
+```toml
+[plugin]
+prepend_previewers = [
+ { mime = "audio/*", run = "exifaudio"}
+]
+```
+
+Make sure you have [exiftool](https://exiftool.org/) installed and in your `PATH`.
+
+## Thanks
+
+Thanks to [sxyazi](https://github.com/sxyazi) for the PDF previewer code, on which this previewer is based on.
diff --git a/yazi/.config/yazi/plugins/exifaudio.yazi/init.lua b/yazi/.config/yazi/plugins/exifaudio.yazi/init.lua
new file mode 100644
index 0000000..521ff33
--- /dev/null
+++ b/yazi/.config/yazi/plugins/exifaudio.yazi/init.lua
@@ -0,0 +1,139 @@
+local M = {}
+
+function M:peek()
+ local cache = ya.file_cache(self)
+ if not cache then
+ return
+ end
+
+ local child = Command("exiftool")
+ :args({
+ "-q", "-q", "-S", "-Title", "-SortName",
+ "-TitleSort", "-TitleSortOrder", "-Artist",
+ "-SortArtist", "-ArtistSort", "-PerformerSortOrder",
+ "-Album", "-SortAlbum", "-AlbumSort", "-AlbumSortOrder",
+ "-AlbumArtist", "-SortAlbumArtist", "-AlbumArtistSort",
+ "-AlbumArtistSortOrder", "-Genre", "-TrackNumber",
+ "-Year", "-Duration", "-SampleRate",
+ "-AudioSampleRate", "-AudioBitrate", "-AvgBitrate",
+ "-Channels", "-AudioChannels", tostring(self.file.url),
+ })
+ :stdout(Command.PIPED)
+ :stderr(Command.NULL)
+ :spawn()
+
+ local limit = self.area.h
+ local i, metadata = 0, {}
+ repeat
+ local next, event = child:read_line()
+ if event == 1 then
+ return self:fallback_to_builtin()
+ elseif event ~= 0 then
+ break
+ end
+
+ i = i + 1
+ if i > self.skip then
+ local m_title, m_tag = prettify(next)
+ local ti = ui.Span(m_title):bold()
+ local ta = ui.Span(m_tag)
+ table.insert(metadata, ui.Line{ti, ta})
+ table.insert(metadata, ui.Line{})
+ end
+ until i >= self.skip + limit
+
+ local p = ui.Paragraph(self.area, metadata):wrap(ui.Paragraph.WRAP)
+ ya.preview_widgets(self, { p })
+
+ local cover_width = self.area.w / 2 - 5
+ local cover_height = (self.area.h / 4) + 3
+
+ local bottom_right = ui.Rect {
+ x = self.area.right - cover_width,
+ y = self.area.bottom - cover_height,
+ w = cover_width,
+ h = cover_height,
+ }
+
+ if self:preload() == 1 then
+ ya.image_show(cache, bottom_right)
+ end
+end
+
+function prettify(metadata)
+ local substitutions = {
+ Sortname = "Sort Title:",
+ SortName = "Sort Title:",
+ TitleSort = "Sort Title:",
+ TitleSortOrder = "Sort Title:",
+ ArtistSort = "Sort Artist:",
+ SortArtist = "Sort Artist:",
+ Artist = "Artist:",
+ ARTIST = "Artist:",
+ PerformerSortOrder = "Sort Artist:",
+ SortAlbumArtist = "Sort Album Artist:",
+ AlbumArtistSortOrder = "Sort Album Artist:",
+ AlbumArtistSort = "Sort Album Artist:",
+ AlbumSortOrder = "Sort Album:",
+ AlbumSort = "Sort Album:",
+ SortAlbum = "Sort Album:",
+ Album = "Album:",
+ ALBUM = "Album:",
+ AlbumArtist = "Album Artist:",
+ Genre = "Genre:",
+ GENRE = "Genre:",
+ TrackNumber = "Track Number:",
+ Year = "Year:",
+ Duration = "Duration:",
+ AudioBitrate = "Bitrate:",
+ AvgBitrate = "Average Bitrate:",
+ AudioSampleRate = "Sample Rate:",
+ SampleRate = "Sample Rate:",
+ AudioChannels = "Channels:"
+ }
+
+ for k, v in pairs(substitutions) do
+ metadata = metadata:gsub(tostring(k)..":", v, 1)
+ end
+
+ -- Separate the tag title from the tag data
+ local t={}
+ for str in string.gmatch(metadata , "([^"..":".."]+)") do
+ table.insert(t, str)
+ end
+
+ -- Add back semicolon to title, rejoin tag data if it happened to contain a semicolon
+ return t[1]..":", table.concat(t, ":", 2)
+
+end
+
+function M:seek(units)
+ local h = cx.active.current.hovered
+ if h and h.url == self.file.url then
+ ya.manager_emit("peek", {
+ tostring(math.max(0, cx.active.preview.skip + units)),
+ only_if = tostring(self.file.url),
+ })
+ end
+end
+
+function M:preload()
+ local cache = ya.file_cache(self)
+ if not cache or fs.cha(cache) then
+ return 1
+ end
+
+ local output = Command("exiftool")
+ :args({ "-b", "-CoverArt", "-Picture", tostring(self.file.url) })
+ :stdout(Command.PIPED)
+ :stderr(Command.PIPED)
+ :output()
+
+ if not output then
+ return 0
+ end
+
+ return fs.write(cache, output.stdout) and 1 or 2
+end
+
+return M
diff --git a/yazi/.config/yazi/plugins/hexyl.yazi/LICENSE b/yazi/.config/yazi/plugins/hexyl.yazi/LICENSE
new file mode 100644
index 0000000..de882e5
--- /dev/null
+++ b/yazi/.config/yazi/plugins/hexyl.yazi/LICENSE
@@ -0,0 +1,7 @@
+Copyright © 2024 Reledia
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/yazi/.config/yazi/plugins/hexyl.yazi/README.md b/yazi/.config/yazi/plugins/hexyl.yazi/README.md
new file mode 100644
index 0000000..7848a0e
--- /dev/null
+++ b/yazi/.config/yazi/plugins/hexyl.yazi/README.md
@@ -0,0 +1,22 @@
+# hexyl.yazi
+
+Preview any file on [Yazi](https://github.com/sxyazi/yazi) using [hexyl](https://github.com/sharkdp/hexyl). To install, clone the repo inside your `~/.config/yazi/plugins/`:
+
+```bash
+git clone https://github.com/Reledia/hexyl.yazi.git
+```
+
+then include it in your `yazi.toml` to use:
+
+```toml
+[plugin]
+append_previewers = [
+ { name = "*", run = "hexyl" },
+]
+```
+
+Make sure you have [hexyl](https://github.com/sharkdp/hexyl) installed, and can be found in `PATH`.
+
+## Preview
+
+
diff --git a/yazi/.config/yazi/plugins/hexyl.yazi/image.png b/yazi/.config/yazi/plugins/hexyl.yazi/image.png
new file mode 100644
index 0000000..f41bd00
Binary files /dev/null and b/yazi/.config/yazi/plugins/hexyl.yazi/image.png differ
diff --git a/yazi/.config/yazi/plugins/hexyl.yazi/init.lua b/yazi/.config/yazi/plugins/hexyl.yazi/init.lua
new file mode 100644
index 0000000..63d044f
--- /dev/null
+++ b/yazi/.config/yazi/plugins/hexyl.yazi/init.lua
@@ -0,0 +1,67 @@
+local M = {}
+
+function M:peek()
+ local child
+ local l = self.file.cha.length
+ if l == 0 then
+ child = Command("hexyl")
+ :args({
+ tostring(self.file.url),
+ })
+ :stdout(Command.PIPED)
+ :stderr(Command.PIPED)
+ :spawn()
+ else
+ child = Command("hexyl")
+ :args({
+ "--border",
+ "none",
+ "--terminal-width",
+ tostring(self.area.w),
+ tostring(self.file.url),
+ })
+ :stdout(Command.PIPED)
+ :stderr(Command.PIPED)
+ :spawn()
+ end
+
+ local limit = self.area.h
+ local i, lines = 0, ""
+ repeat
+ local next, event = child:read_line()
+ if event == 1 then
+ ya.err(tostring(event))
+ elseif event ~= 0 then
+ break
+ end
+
+ i = i + 1
+ if i > self.skip then
+ lines = lines .. next
+ end
+ until i >= self.skip + limit
+
+ child:start_kill()
+ if self.skip > 0 and i < self.skip + limit then
+ ya.manager_emit(
+ "peek",
+ { tostring(math.max(0, i - limit)), only_if = tostring(self.file.url), upper_bound = "" }
+ )
+ else
+ lines = lines:gsub("\t", string.rep(" ", PREVIEW.tab_size))
+ ya.preview_widgets(self, { ui.Paragraph.parse(self.area, lines) })
+ end
+end
+
+function M:seek(units)
+ local h = cx.active.current.hovered
+ if h and h.url == self.file.url then
+ local step = math.floor(units * self.area.h / 10)
+ ya.manager_emit("peek", {
+ tostring(math.max(0, cx.active.preview.skip + step)),
+ only_if = tostring(self.file.url),
+ })
+ end
+end
+
+return M
diff --git a/yazi/.config/yazi/plugins/miller.yazi/LICENSE b/yazi/.config/yazi/plugins/miller.yazi/LICENSE
new file mode 100644
index 0000000..de882e5
--- /dev/null
+++ b/yazi/.config/yazi/plugins/miller.yazi/LICENSE
@@ -0,0 +1,7 @@
+Copyright © 2024 Reledia
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/yazi/.config/yazi/plugins/miller.yazi/README.md b/yazi/.config/yazi/plugins/miller.yazi/README.md
new file mode 100644
index 0000000..172674e
--- /dev/null
+++ b/yazi/.config/yazi/plugins/miller.yazi/README.md
@@ -0,0 +1,26 @@
+# miller.yazi
+
+[Miller](https://github.com/johnkerl/miller) now in [yazi](https://github.com/sxyazi/yazi). To install, clone the repo inside `~/.config/yazi/plugins/`:
+
+```toml
+[plugin]
+prepend_previewers = [
+ { mime = "text/csv", run = "miller"},
+]
+```
+
+## Preview
+
+
+
+## Color
+
+To change colors of keys and values, edit the `init.lua` file after the `--key-color` and `--value-color` flags. To view a list of possible colors, use `mlr --list-color-names`. Make sure to have miller installed and inside your PATH.
+
+## Other types of file
+
+To adapt this plugin to the other format supported from miller (like json):
+- copy the plugin folder
+- change the name of the copied folder into miller_(fmt)
+- change the `--icsv` flag inside `init.lua` to `--i(fmt)`
+- add the correct mime/name rule into `prepend_previewers` and the exec as `miller_(fmt)`
diff --git a/yazi/.config/yazi/plugins/miller.yazi/init.lua b/yazi/.config/yazi/plugins/miller.yazi/init.lua
new file mode 100644
index 0000000..9a4a752
--- /dev/null
+++ b/yazi/.config/yazi/plugins/miller.yazi/init.lua
@@ -0,0 +1,59 @@
+local M = {}
+
+function M:peek()
+ local child = Command("mlr")
+ :args({
+ "--icsv",
+ "--opprint",
+ "-C",
+ "--key-color",
+ "darkcyan",
+ "--value-color",
+ "grey70",
+ "cat",
+ tostring(self.file.url),
+ })
+ :stdout(Command.PIPED)
+ :stderr(Command.PIPED)
+ :spawn()
+
+ local limit = self.area.h
+ local i, lines = 0, ""
+ repeat
+ local next, event = child:read_line()
+ if event == 1 then
+ ya.err(tostring(event))
+ elseif event ~= 0 then
+ break
+ end
+
+ i = i + 1
+ if i > self.skip then
+ lines = lines .. next
+ end
+ until i >= self.skip + limit
+
+ child:start_kill()
+ if self.skip > 0 and i < self.skip + limit then
+ ya.manager_emit(
+ "peek",
+ { tostring(math.max(0, i - limit)), only_if = tostring(self.file.url), upper_bound = "" }
+ )
+ else
+ lines = lines:gsub("\t", string.rep(" ", PREVIEW.tab_size))
+ ya.preview_widgets(self, { ui.Paragraph.parse(self.area, lines) })
+ end
+end
+
+function M:seek(units)
+ local h = cx.active.current.hovered
+ if h and h.url == self.file.url then
+ local step = math.floor(units * self.area.h / 10)
+ ya.manager_emit("peek", {
+ tostring(math.max(0, cx.active.preview.skip + step)),
+ only_if = tostring(self.file.url),
+ })
+ end
+end
+
+return M
diff --git a/yazi/.config/yazi/plugins/miller.yazi/preview.png b/yazi/.config/yazi/plugins/miller.yazi/preview.png
new file mode 100644
index 0000000..749ab25
Binary files /dev/null and b/yazi/.config/yazi/plugins/miller.yazi/preview.png differ
diff --git a/yazi/.config/yazi/theme.toml b/yazi/.config/yazi/theme.toml
new file mode 100644
index 0000000..b3bb10b
--- /dev/null
+++ b/yazi/.config/yazi/theme.toml
@@ -0,0 +1,756 @@
+[mgr]
+cwd = { fg = "#94e2d5" }
+
+hovered = { fg = "#1e1e2e", bg = "#f9e2af" }
+preview_hovered = { fg = "#1e1e2e", bg = "#cdd6f4" }
+
+find_keyword = { fg = "#f9e2af", italic = true }
+find_position = { fg = "#f5c2e7", bg = "reset", italic = true }
+
+marker_copied = { fg = "#a6e3a1", bg = "#a6e3a1" }
+marker_cut = { fg = "#f38ba8", bg = "#f38ba8" }
+marker_marked = { fg = "#94e2d5", bg = "#94e2d5" }
+marker_selected = { fg = "#f9e2af", bg = "#f9e2af" }
+
+count_copied = { fg = "#1e1e2e", bg = "#a6e3a1" }
+count_cut = { fg = "#1e1e2e", bg = "#f38ba8" }
+count_selected = { fg = "#1e1e2e", bg = "#f9e2af" }
+
+border_symbol = "│"
+border_style = { fg = "#7f849c" }
+
+syntect_theme = "~/.config/yazi/Catppuccin Mocha.tmTheme"
+
+[tabs]
+active = { fg = "#1e1e2e", bg = "#cdd6f4", bold = true }
+inactive = { fg = "#cdd6f4", bg = "#45475a" }
+
+[mode]
+normal_main = { fg = "#1e1e2e", bg = "#f9e2af", bold = true }
+normal_alt = { fg = "#f9e2af", bg = "#313244" }
+
+select_main = { fg = "#1e1e2e", bg = "#a6e3a1", bold = true }
+select_alt = { fg = "#a6e3a1", bg = "#313244" }
+
+unset_main = { fg = "#1e1e2e", bg = "#f2cdcd", bold = true }
+unset_alt = { fg = "#f2cdcd", bg = "#313244" }
+
+[status]
+separator_open = ""
+separator_close = ""
+
+progress_label = { fg = "#ffffff", bold = true }
+progress_normal = { fg = "#89b4fa", bg = "#45475a" }
+progress_error = { fg = "#f38ba8", bg = "#45475a" }
+
+perm_type = { fg = "#89b4fa" }
+perm_read = { fg = "#f9e2af" }
+perm_write = { fg = "#f38ba8" }
+perm_exec = { fg = "#a6e3a1" }
+perm_sep = { fg = "#7f849c" }
+
+[input]
+border = { fg = "#f9e2af" }
+title = {}
+value = {}
+selected = { reversed = true }
+
+[pick]
+border = { fg = "#f9e2af" }
+active = { fg = "#f5c2e7" }
+inactive = {}
+
+[confirm]
+border = { fg = "#f9e2af" }
+title = { fg = "#f9e2af" }
+content = {}
+list = {}
+btn_yes = { reversed = true }
+btn_no = {}
+
+[cmp]
+border = { fg = "#f9e2af" }
+
+[tasks]
+border = { fg = "#f9e2af" }
+title = {}
+hovered = { underline = true }
+
+[which]
+mask = { bg = "#313244" }
+cand = { fg = "#94e2d5" }
+rest = { fg = "#9399b2" }
+desc = { fg = "#f5c2e7" }
+separator = " "
+separator_style = { fg = "#585b70" }
+
+[help]
+on = { fg = "#94e2d5" }
+run = { fg = "#f5c2e7" }
+desc = { fg = "#9399b2" }
+hovered = { bg = "#585b70", bold = true }
+footer = { fg = "#cdd6f4", bg = "#45475a" }
+
+[notify]
+title_info = { fg = "#94e2d5" }
+title_warn = { fg = "#f9e2af" }
+title_error = { fg = "#f38ba8" }
+
+[filetype]
+rules = [
+ # Media
+ { mime = "image/*", fg = "#94e2d5" },
+ { mime = "{audio,video}/*", fg = "#f9e2af" },
+
+ # Archives
+ { mime = "application/*zip", fg = "#f5c2e7" },
+ { mime = "application/x-{tar,bzip*,7z-compressed,xz,rar}", fg = "#f5c2e7" },
+
+ # Documents
+ { mime = "application/{pdf,doc,rtf}", fg = "#a6e3a1" },
+
+ # Fallback
+ { name = "*", fg = "#cdd6f4" },
+ { name = "*/", fg = "#f9e2af" },
+]
+
+[spot]
+border = { fg = "#f9e2af" }
+title = { fg = "#f9e2af" }
+tbl_cell = { fg = "#f9e2af", reversed = true }
+tbl_col = { bold = true }
+
+[icon]
+files = [
+ { name = "kritadisplayrc", text = "", fg = "#cba6f7" },
+ { name = ".gtkrc-2.0", text = "", fg = "#f5e0dc" },
+ { name = "bspwmrc", text = "", fg = "#313244" },
+ { name = "webpack", text = "", fg = "#74c7ec" },
+ { name = "tsconfig.json", text = "", fg = "#74c7ec" },
+ { name = ".vimrc", text = "", fg = "#a6e3a1" },
+ { name = "gemfile$", text = "", fg = "#313244" },
+ { name = "xmobarrc", text = "", fg = "#f38ba8" },
+ { name = "avif", text = "", fg = "#7f849c" },
+ { name = "fp-info-cache", text = "", fg = "#f5e0dc" },
+ { name = ".zshrc", text = "", fg = "#a6e3a1" },
+ { name = "robots.txt", text = "", fg = "#6c7086" },
+ { name = "dockerfile", text = "", fg = "#89b4fa" },
+ { name = ".git-blame-ignore-revs", text = "", fg = "#fab387" },
+ { name = ".nvmrc", text = "", fg = "#a6e3a1" },
+ { name = "hyprpaper.conf", text = "", fg = "#74c7ec" },
+ { name = ".prettierignore", text = "", fg = "#89b4fa" },
+ { name = "rakefile", text = "", fg = "#313244" },
+ { name = "code_of_conduct", text = "", fg = "#f38ba8" },
+ { name = "cmakelists.txt", text = "", fg = "#cdd6f4" },
+ { name = ".env", text = "", fg = "#f9e2af" },
+ { name = "copying.lesser", text = "", fg = "#f9e2af" },
+ { name = "readme", text = "", fg = "#f5e0dc" },
+ { name = "settings.gradle", text = "", fg = "#585b70" },
+ { name = "gruntfile.coffee", text = "", fg = "#fab387" },
+ { name = ".eslintignore", text = "", fg = "#585b70" },
+ { name = "kalgebrarc", text = "", fg = "#89b4fa" },
+ { name = "kdenliverc", text = "", fg = "#89b4fa" },
+ { name = ".prettierrc.cjs", text = "", fg = "#89b4fa" },
+ { name = "cantorrc", text = "", fg = "#89b4fa" },
+ { name = "rmd", text = "", fg = "#74c7ec" },
+ { name = "vagrantfile$", text = "", fg = "#6c7086" },
+ { name = ".Xauthority", text = "", fg = "#fab387" },
+ { name = "prettier.config.ts", text = "", fg = "#89b4fa" },
+ { name = "node_modules", text = "", fg = "#f38ba8" },
+ { name = ".prettierrc.toml", text = "", fg = "#89b4fa" },
+ { name = "build.zig.zon", text = "", fg = "#fab387" },
+ { name = ".ds_store", text = "", fg = "#45475a" },
+ { name = "PKGBUILD", text = "", fg = "#89b4fa" },
+ { name = ".prettierrc", text = "", fg = "#89b4fa" },
+ { name = ".bash_profile", text = "", fg = "#a6e3a1" },
+ { name = ".npmignore", text = "", fg = "#f38ba8" },
+ { name = ".mailmap", text = "", fg = "#fab387" },
+ { name = ".codespellrc", text = "", fg = "#a6e3a1" },
+ { name = "svelte.config.js", text = "", fg = "#fab387" },
+ { name = "eslint.config.ts", text = "", fg = "#585b70" },
+ { name = "config", text = "", fg = "#7f849c" },
+ { name = ".gitlab-ci.yml", text = "", fg = "#fab387" },
+ { name = ".gitconfig", text = "", fg = "#fab387" },
+ { name = "_gvimrc", text = "", fg = "#a6e3a1" },
+ { name = ".xinitrc", text = "", fg = "#fab387" },
+ { name = "checkhealth", text = "", fg = "#89b4fa" },
+ { name = "sxhkdrc", text = "", fg = "#313244" },
+ { name = ".bashrc", text = "", fg = "#a6e3a1" },
+ { name = "tailwind.config.mjs", text = "", fg = "#74c7ec" },
+ { name = "ext_typoscript_setup.txt", text = "", fg = "#fab387" },
+ { name = "commitlint.config.ts", text = "", fg = "#94e2d5" },
+ { name = "py.typed", text = "", fg = "#f9e2af" },
+ { name = ".nanorc", text = "", fg = "#313244" },
+ { name = "commit_editmsg", text = "", fg = "#fab387" },
+ { name = ".luaurc", text = "", fg = "#89b4fa" },
+ { name = "fp-lib-table", text = "", fg = "#f5e0dc" },
+ { name = ".editorconfig", text = "", fg = "#f5e0dc" },
+ { name = "justfile", text = "", fg = "#7f849c" },
+ { name = "kdeglobals", text = "", fg = "#89b4fa" },
+ { name = "license.md", text = "", fg = "#f9e2af" },
+ { name = ".clang-format", text = "", fg = "#7f849c" },
+ { name = "docker-compose.yaml", text = "", fg = "#89b4fa" },
+ { name = "copying", text = "", fg = "#f9e2af" },
+ { name = "go.mod", text = "", fg = "#74c7ec" },
+ { name = "lxqt.conf", text = "", fg = "#89b4fa" },
+ { name = "brewfile", text = "", fg = "#313244" },
+ { name = "gulpfile.coffee", text = "", fg = "#f38ba8" },
+ { name = ".dockerignore", text = "", fg = "#89b4fa" },
+ { name = ".settings.json", text = "", fg = "#6c7086" },
+ { name = "tailwind.config.js", text = "", fg = "#74c7ec" },
+ { name = ".clang-tidy", text = "", fg = "#7f849c" },
+ { name = ".gvimrc", text = "", fg = "#a6e3a1" },
+ { name = "nuxt.config.cjs", text = "", fg = "#a6e3a1" },
+ { name = "xsettingsd.conf", text = "", fg = "#fab387" },
+ { name = "nuxt.config.js", text = "", fg = "#a6e3a1" },
+ { name = "eslint.config.cjs", text = "", fg = "#585b70" },
+ { name = "sym-lib-table", text = "", fg = "#f5e0dc" },
+ { name = ".condarc", text = "", fg = "#a6e3a1" },
+ { name = "xmonad.hs", text = "", fg = "#f38ba8" },
+ { name = "tmux.conf", text = "", fg = "#a6e3a1" },
+ { name = "xmobarrc.hs", text = "", fg = "#f38ba8" },
+ { name = ".prettierrc.yaml", text = "", fg = "#89b4fa" },
+ { name = ".pre-commit-config.yaml", text = "", fg = "#fab387" },
+ { name = "i3blocks.conf", text = "", fg = "#f5e0dc" },
+ { name = "xorg.conf", text = "", fg = "#fab387" },
+ { name = ".zshenv", text = "", fg = "#a6e3a1" },
+ { name = "vlcrc", text = "", fg = "#fab387" },
+ { name = "license", text = "", fg = "#f9e2af" },
+ { name = "unlicense", text = "", fg = "#f9e2af" },
+ { name = "tmux.conf.local", text = "", fg = "#a6e3a1" },
+ { name = ".SRCINFO", text = "", fg = "#89b4fa" },
+ { name = "tailwind.config.ts", text = "", fg = "#74c7ec" },
+ { name = "security.md", text = "", fg = "#bac2de" },
+ { name = "security", text = "", fg = "#bac2de" },
+ { name = ".eslintrc", text = "", fg = "#585b70" },
+ { name = "gradle.properties", text = "", fg = "#585b70" },
+ { name = "code_of_conduct.md", text = "", fg = "#f38ba8" },
+ { name = "PrusaSlicerGcodeViewer.ini", text = "", fg = "#fab387" },
+ { name = "PrusaSlicer.ini", text = "", fg = "#fab387" },
+ { name = "procfile", text = "", fg = "#7f849c" },
+ { name = "mpv.conf", text = "", fg = "#1e1e2e" },
+ { name = ".prettierrc.json5", text = "", fg = "#89b4fa" },
+ { name = "i3status.conf", text = "", fg = "#f5e0dc" },
+ { name = "prettier.config.mjs", text = "", fg = "#89b4fa" },
+ { name = ".pylintrc", text = "", fg = "#7f849c" },
+ { name = "prettier.config.cjs", text = "", fg = "#89b4fa" },
+ { name = ".luacheckrc", text = "", fg = "#89b4fa" },
+ { name = "containerfile", text = "", fg = "#89b4fa" },
+ { name = "eslint.config.mjs", text = "", fg = "#585b70" },
+ { name = "gruntfile.js", text = "", fg = "#fab387" },
+ { name = "bun.lockb", text = "", fg = "#f5e0dc" },
+ { name = ".gitattributes", text = "", fg = "#fab387" },
+ { name = "gruntfile.ts", text = "", fg = "#fab387" },
+ { name = "pom.xml", text = "", fg = "#313244" },
+ { name = "favicon.ico", text = "", fg = "#f9e2af" },
+ { name = "package-lock.json", text = "", fg = "#313244" },
+ { name = "build", text = "", fg = "#a6e3a1" },
+ { name = "package.json", text = "", fg = "#f38ba8" },
+ { name = "nuxt.config.ts", text = "", fg = "#a6e3a1" },
+ { name = "nuxt.config.mjs", text = "", fg = "#a6e3a1" },
+ { name = "mix.lock", text = "", fg = "#7f849c" },
+ { name = "makefile", text = "", fg = "#7f849c" },
+ { name = "gulpfile.js", text = "", fg = "#f38ba8" },
+ { name = "lxde-rc.xml", text = "", fg = "#9399b2" },
+ { name = "kritarc", text = "", fg = "#cba6f7" },
+ { name = "gtkrc", text = "", fg = "#f5e0dc" },
+ { name = "ionic.config.json", text = "", fg = "#89b4fa" },
+ { name = ".prettierrc.mjs", text = "", fg = "#89b4fa" },
+ { name = ".prettierrc.yml", text = "", fg = "#89b4fa" },
+ { name = ".npmrc", text = "", fg = "#f38ba8" },
+ { name = "weston.ini", text = "", fg = "#f9e2af" },
+ { name = "gulpfile.babel.js", text = "", fg = "#f38ba8" },
+ { name = "i18n.config.ts", text = "", fg = "#7f849c" },
+ { name = "commitlint.config.js", text = "", fg = "#94e2d5" },
+ { name = ".gitmodules", text = "", fg = "#fab387" },
+ { name = "gradle-wrapper.properties", text = "", fg = "#585b70" },
+ { name = "hypridle.conf", text = "", fg = "#74c7ec" },
+ { name = "vercel.json", text = "▲", fg = "#f5e0dc" },
+ { name = "hyprlock.conf", text = "", fg = "#74c7ec" },
+ { name = "go.sum", text = "", fg = "#74c7ec" },
+ { name = "kdenlive-layoutsrc", text = "", fg = "#89b4fa" },
+ { name = "gruntfile.babel.js", text = "", fg = "#fab387" },
+ { name = "compose.yml", text = "", fg = "#89b4fa" },
+ { name = "i18n.config.js", text = "", fg = "#7f849c" },
+ { name = "readme.md", text = "", fg = "#f5e0dc" },
+ { name = "gradlew", text = "", fg = "#585b70" },
+ { name = "go.work", text = "", fg = "#74c7ec" },
+ { name = "gulpfile.ts", text = "", fg = "#f38ba8" },
+ { name = "gnumakefile", text = "", fg = "#7f849c" },
+ { name = "FreeCAD.conf", text = "", fg = "#f38ba8" },
+ { name = "compose.yaml", text = "", fg = "#89b4fa" },
+ { name = "eslint.config.js", text = "", fg = "#585b70" },
+ { name = "hyprland.conf", text = "", fg = "#74c7ec" },
+ { name = "docker-compose.yml", text = "", fg = "#89b4fa" },
+ { name = "groovy", text = "", fg = "#585b70" },
+ { name = "QtProject.conf", text = "", fg = "#a6e3a1" },
+ { name = "platformio.ini", text = "", fg = "#fab387" },
+ { name = "build.gradle", text = "", fg = "#585b70" },
+ { name = ".nuxtrc", text = "", fg = "#a6e3a1" },
+ { name = "_vimrc", text = "", fg = "#a6e3a1" },
+ { name = ".zprofile", text = "", fg = "#a6e3a1" },
+ { name = ".xsession", text = "", fg = "#fab387" },
+ { name = "prettier.config.js", text = "", fg = "#89b4fa" },
+ { name = ".babelrc", text = "", fg = "#f9e2af" },
+ { name = "workspace", text = "", fg = "#a6e3a1" },
+ { name = ".prettierrc.json", text = "", fg = "#89b4fa" },
+ { name = ".prettierrc.js", text = "", fg = "#89b4fa" },
+ { name = ".Xresources", text = "", fg = "#fab387" },
+ { name = ".gitignore", text = "", fg = "#fab387" },
+ { name = ".justfile", text = "", fg = "#7f849c" },
+]
+exts = [
+ { name = "otf", text = "", fg = "#f5e0dc" },
+ { name = "import", text = "", fg = "#f5e0dc" },
+ { name = "krz", text = "", fg = "#cba6f7" },
+ { name = "adb", text = "", fg = "#94e2d5" },
+ { name = "ttf", text = "", fg = "#f5e0dc" },
+ { name = "webpack", text = "", fg = "#74c7ec" },
+ { name = "dart", text = "", fg = "#585b70" },
+ { name = "vsh", text = "", fg = "#7f849c" },
+ { name = "doc", text = "", fg = "#585b70" },
+ { name = "zsh", text = "", fg = "#a6e3a1" },
+ { name = "ex", text = "", fg = "#7f849c" },
+ { name = "hx", text = "", fg = "#fab387" },
+ { name = "fodt", text = "", fg = "#74c7ec" },
+ { name = "mojo", text = "", fg = "#fab387" },
+ { name = "templ", text = "", fg = "#f9e2af" },
+ { name = "nix", text = "", fg = "#74c7ec" },
+ { name = "cshtml", text = "", fg = "#585b70" },
+ { name = "fish", text = "", fg = "#585b70" },
+ { name = "ply", text = "", fg = "#7f849c" },
+ { name = "sldprt", text = "", fg = "#a6e3a1" },
+ { name = "gemspec", text = "", fg = "#313244" },
+ { name = "mjs", text = "", fg = "#f9e2af" },
+ { name = "csh", text = "", fg = "#585b70" },
+ { name = "cmake", text = "", fg = "#cdd6f4" },
+ { name = "fodp", text = "", fg = "#fab387" },
+ { name = "vi", text = "", fg = "#f9e2af" },
+ { name = "msf", text = "", fg = "#89b4fa" },
+ { name = "blp", text = "", fg = "#89b4fa" },
+ { name = "less", text = "", fg = "#45475a" },
+ { name = "sh", text = "", fg = "#585b70" },
+ { name = "odg", text = "", fg = "#f9e2af" },
+ { name = "mint", text = "", fg = "#a6e3a1" },
+ { name = "dll", text = "", fg = "#11111b" },
+ { name = "odf", text = "", fg = "#f38ba8" },
+ { name = "sqlite3", text = "", fg = "#f5e0dc" },
+ { name = "Dockerfile", text = "", fg = "#89b4fa" },
+ { name = "ksh", text = "", fg = "#585b70" },
+ { name = "rmd", text = "", fg = "#74c7ec" },
+ { name = "wv", text = "", fg = "#74c7ec" },
+ { name = "xml", text = "", fg = "#fab387" },
+ { name = "markdown", text = "", fg = "#cdd6f4" },
+ { name = "qml", text = "", fg = "#a6e3a1" },
+ { name = "3gp", text = "", fg = "#fab387" },
+ { name = "pxi", text = "", fg = "#89b4fa" },
+ { name = "flac", text = "", fg = "#6c7086" },
+ { name = "gpr", text = "", fg = "#cba6f7" },
+ { name = "huff", text = "", fg = "#585b70" },
+ { name = "json", text = "", fg = "#f9e2af" },
+ { name = "gv", text = "", fg = "#585b70" },
+ { name = "bmp", text = "", fg = "#7f849c" },
+ { name = "lock", text = "", fg = "#bac2de" },
+ { name = "sha384", text = "", fg = "#7f849c" },
+ { name = "cobol", text = "⚙", fg = "#585b70" },
+ { name = "cob", text = "⚙", fg = "#585b70" },
+ { name = "java", text = "", fg = "#f38ba8" },
+ { name = "cjs", text = "", fg = "#f9e2af" },
+ { name = "qm", text = "", fg = "#74c7ec" },
+ { name = "ebuild", text = "", fg = "#45475a" },
+ { name = "mustache", text = "", fg = "#fab387" },
+ { name = "terminal", text = "", fg = "#a6e3a1" },
+ { name = "ejs", text = "", fg = "#f9e2af" },
+ { name = "brep", text = "", fg = "#a6e3a1" },
+ { name = "rar", text = "", fg = "#fab387" },
+ { name = "gradle", text = "", fg = "#585b70" },
+ { name = "gnumakefile", text = "", fg = "#7f849c" },
+ { name = "applescript", text = "", fg = "#7f849c" },
+ { name = "elm", text = "", fg = "#74c7ec" },
+ { name = "ebook", text = "", fg = "#fab387" },
+ { name = "kra", text = "", fg = "#cba6f7" },
+ { name = "tf", text = "", fg = "#585b70" },
+ { name = "xls", text = "", fg = "#585b70" },
+ { name = "fnl", text = "", fg = "#f9e2af" },
+ { name = "kdbx", text = "", fg = "#a6e3a1" },
+ { name = "kicad_pcb", text = "", fg = "#f5e0dc" },
+ { name = "cfg", text = "", fg = "#7f849c" },
+ { name = "ape", text = "", fg = "#74c7ec" },
+ { name = "org", text = "", fg = "#94e2d5" },
+ { name = "yml", text = "", fg = "#7f849c" },
+ { name = "swift", text = "", fg = "#fab387" },
+ { name = "eln", text = "", fg = "#7f849c" },
+ { name = "sol", text = "", fg = "#74c7ec" },
+ { name = "awk", text = "", fg = "#585b70" },
+ { name = "7z", text = "", fg = "#fab387" },
+ { name = "apl", text = "⍝", fg = "#fab387" },
+ { name = "epp", text = "", fg = "#fab387" },
+ { name = "app", text = "", fg = "#45475a" },
+ { name = "dot", text = "", fg = "#585b70" },
+ { name = "kpp", text = "", fg = "#cba6f7" },
+ { name = "eot", text = "", fg = "#f5e0dc" },
+ { name = "hpp", text = "", fg = "#7f849c" },
+ { name = "spec.tsx", text = "", fg = "#585b70" },
+ { name = "hurl", text = "", fg = "#f38ba8" },
+ { name = "cxxm", text = "", fg = "#74c7ec" },
+ { name = "c", text = "", fg = "#89b4fa" },
+ { name = "fcmacro", text = "", fg = "#f38ba8" },
+ { name = "sass", text = "", fg = "#f38ba8" },
+ { name = "yaml", text = "", fg = "#7f849c" },
+ { name = "xz", text = "", fg = "#fab387" },
+ { name = "material", text = "", fg = "#f38ba8" },
+ { name = "json5", text = "", fg = "#f9e2af" },
+ { name = "signature", text = "λ", fg = "#fab387" },
+ { name = "3mf", text = "", fg = "#7f849c" },
+ { name = "jpg", text = "", fg = "#7f849c" },
+ { name = "xpi", text = "", fg = "#fab387" },
+ { name = "fcmat", text = "", fg = "#f38ba8" },
+ { name = "pot", text = "", fg = "#74c7ec" },
+ { name = "bin", text = "", fg = "#45475a" },
+ { name = "xlsx", text = "", fg = "#585b70" },
+ { name = "aac", text = "", fg = "#74c7ec" },
+ { name = "kicad_sym", text = "", fg = "#f5e0dc" },
+ { name = "xcstrings", text = "", fg = "#74c7ec" },
+ { name = "lff", text = "", fg = "#f5e0dc" },
+ { name = "xcf", text = "", fg = "#585b70" },
+ { name = "azcli", text = "", fg = "#6c7086" },
+ { name = "license", text = "", fg = "#f9e2af" },
+ { name = "jsonc", text = "", fg = "#f9e2af" },
+ { name = "xaml", text = "", fg = "#585b70" },
+ { name = "md5", text = "", fg = "#7f849c" },
+ { name = "xm", text = "", fg = "#74c7ec" },
+ { name = "sln", text = "", fg = "#6c7086" },
+ { name = "jl", text = "", fg = "#7f849c" },
+ { name = "ml", text = "", fg = "#fab387" },
+ { name = "http", text = "", fg = "#89b4fa" },
+ { name = "x", text = "", fg = "#89b4fa" },
+ { name = "wvc", text = "", fg = "#74c7ec" },
+ { name = "wrz", text = "", fg = "#7f849c" },
+ { name = "csproj", text = "", fg = "#585b70" },
+ { name = "wrl", text = "", fg = "#7f849c" },
+ { name = "wma", text = "", fg = "#74c7ec" },
+ { name = "woff2", text = "", fg = "#f5e0dc" },
+ { name = "woff", text = "", fg = "#f5e0dc" },
+ { name = "tscn", text = "", fg = "#7f849c" },
+ { name = "webmanifest", text = "", fg = "#f9e2af" },
+ { name = "webm", text = "", fg = "#fab387" },
+ { name = "fcbak", text = "", fg = "#f38ba8" },
+ { name = "log", text = "", fg = "#cdd6f4" },
+ { name = "wav", text = "", fg = "#74c7ec" },
+ { name = "wasm", text = "", fg = "#585b70" },
+ { name = "styl", text = "", fg = "#a6e3a1" },
+ { name = "gif", text = "", fg = "#7f849c" },
+ { name = "resi", text = "", fg = "#f38ba8" },
+ { name = "aiff", text = "", fg = "#74c7ec" },
+ { name = "sha256", text = "", fg = "#7f849c" },
+ { name = "igs", text = "", fg = "#a6e3a1" },
+ { name = "vsix", text = "", fg = "#6c7086" },
+ { name = "vim", text = "", fg = "#a6e3a1" },
+ { name = "diff", text = "", fg = "#45475a" },
+ { name = "drl", text = "", fg = "#eba0ac" },
+ { name = "erl", text = "", fg = "#f38ba8" },
+ { name = "vhdl", text = "", fg = "#a6e3a1" },
+ { name = "🔥", text = "", fg = "#fab387" },
+ { name = "hrl", text = "", fg = "#f38ba8" },
+ { name = "fsi", text = "", fg = "#74c7ec" },
+ { name = "mm", text = "", fg = "#74c7ec" },
+ { name = "bz", text = "", fg = "#fab387" },
+ { name = "vh", text = "", fg = "#a6e3a1" },
+ { name = "kdb", text = "", fg = "#a6e3a1" },
+ { name = "gz", text = "", fg = "#fab387" },
+ { name = "cpp", text = "", fg = "#74c7ec" },
+ { name = "ui", text = "", fg = "#6c7086" },
+ { name = "txt", text = "", fg = "#a6e3a1" },
+ { name = "spec.ts", text = "", fg = "#74c7ec" },
+ { name = "ccm", text = "", fg = "#f38ba8" },
+ { name = "typoscript", text = "", fg = "#fab387" },
+ { name = "typ", text = "", fg = "#89dceb" },
+ { name = "txz", text = "", fg = "#fab387" },
+ { name = "test.ts", text = "", fg = "#74c7ec" },
+ { name = "tsx", text = "", fg = "#585b70" },
+ { name = "mk", text = "", fg = "#7f849c" },
+ { name = "webp", text = "", fg = "#7f849c" },
+ { name = "opus", text = "", fg = "#6c7086" },
+ { name = "bicep", text = "", fg = "#74c7ec" },
+ { name = "ts", text = "", fg = "#74c7ec" },
+ { name = "tres", text = "", fg = "#7f849c" },
+ { name = "torrent", text = "", fg = "#94e2d5" },
+ { name = "cxx", text = "", fg = "#74c7ec" },
+ { name = "iso", text = "", fg = "#f2cdcd" },
+ { name = "ixx", text = "", fg = "#74c7ec" },
+ { name = "hxx", text = "", fg = "#7f849c" },
+ { name = "gql", text = "", fg = "#f38ba8" },
+ { name = "tmux", text = "", fg = "#a6e3a1" },
+ { name = "ini", text = "", fg = "#7f849c" },
+ { name = "m3u8", text = "", fg = "#f38ba8" },
+ { name = "image", text = "", fg = "#f2cdcd" },
+ { name = "tfvars", text = "", fg = "#585b70" },
+ { name = "tex", text = "", fg = "#45475a" },
+ { name = "cbl", text = "⚙", fg = "#585b70" },
+ { name = "flc", text = "", fg = "#f5e0dc" },
+ { name = "elc", text = "", fg = "#7f849c" },
+ { name = "test.tsx", text = "", fg = "#585b70" },
+ { name = "twig", text = "", fg = "#a6e3a1" },
+ { name = "sql", text = "", fg = "#f5e0dc" },
+ { name = "test.jsx", text = "", fg = "#74c7ec" },
+ { name = "htm", text = "", fg = "#fab387" },
+ { name = "gcode", text = "", fg = "#6c7086" },
+ { name = "test.js", text = "", fg = "#f9e2af" },
+ { name = "ino", text = "", fg = "#74c7ec" },
+ { name = "tcl", text = "", fg = "#585b70" },
+ { name = "cljs", text = "", fg = "#74c7ec" },
+ { name = "tsconfig", text = "", fg = "#fab387" },
+ { name = "img", text = "", fg = "#f2cdcd" },
+ { name = "t", text = "", fg = "#74c7ec" },
+ { name = "fcstd1", text = "", fg = "#f38ba8" },
+ { name = "out", text = "", fg = "#45475a" },
+ { name = "jsx", text = "", fg = "#74c7ec" },
+ { name = "bash", text = "", fg = "#a6e3a1" },
+ { name = "edn", text = "", fg = "#74c7ec" },
+ { name = "rss", text = "", fg = "#fab387" },
+ { name = "flf", text = "", fg = "#f5e0dc" },
+ { name = "cache", text = "", fg = "#f5e0dc" },
+ { name = "sbt", text = "", fg = "#f38ba8" },
+ { name = "cppm", text = "", fg = "#74c7ec" },
+ { name = "svelte", text = "", fg = "#fab387" },
+ { name = "mo", text = "∞", fg = "#7f849c" },
+ { name = "sv", text = "", fg = "#a6e3a1" },
+ { name = "ko", text = "", fg = "#f5e0dc" },
+ { name = "suo", text = "", fg = "#6c7086" },
+ { name = "sldasm", text = "", fg = "#a6e3a1" },
+ { name = "icalendar", text = "", fg = "#313244" },
+ { name = "go", text = "", fg = "#74c7ec" },
+ { name = "sublime", text = "", fg = "#fab387" },
+ { name = "stl", text = "", fg = "#7f849c" },
+ { name = "mobi", text = "", fg = "#fab387" },
+ { name = "graphql", text = "", fg = "#f38ba8" },
+ { name = "m3u", text = "", fg = "#f38ba8" },
+ { name = "cpy", text = "⚙", fg = "#585b70" },
+ { name = "kdenlive", text = "", fg = "#89b4fa" },
+ { name = "pyo", text = "", fg = "#f9e2af" },
+ { name = "po", text = "", fg = "#74c7ec" },
+ { name = "scala", text = "", fg = "#f38ba8" },
+ { name = "exs", text = "", fg = "#7f849c" },
+ { name = "odp", text = "", fg = "#fab387" },
+ { name = "dump", text = "", fg = "#f5e0dc" },
+ { name = "stp", text = "", fg = "#a6e3a1" },
+ { name = "step", text = "", fg = "#a6e3a1" },
+ { name = "ste", text = "", fg = "#a6e3a1" },
+ { name = "aif", text = "", fg = "#74c7ec" },
+ { name = "strings", text = "", fg = "#74c7ec" },
+ { name = "cp", text = "", fg = "#74c7ec" },
+ { name = "fsscript", text = "", fg = "#74c7ec" },
+ { name = "mli", text = "", fg = "#fab387" },
+ { name = "bak", text = "", fg = "#7f849c" },
+ { name = "ssa", text = "", fg = "#f9e2af" },
+ { name = "toml", text = "", fg = "#585b70" },
+ { name = "makefile", text = "", fg = "#7f849c" },
+ { name = "php", text = "", fg = "#7f849c" },
+ { name = "zst", text = "", fg = "#fab387" },
+ { name = "spec.jsx", text = "", fg = "#74c7ec" },
+ { name = "kbx", text = "", fg = "#6c7086" },
+ { name = "fbx", text = "", fg = "#7f849c" },
+ { name = "blend", text = "", fg = "#fab387" },
+ { name = "ifc", text = "", fg = "#a6e3a1" },
+ { name = "spec.js", text = "", fg = "#f9e2af" },
+ { name = "so", text = "", fg = "#f5e0dc" },
+ { name = "desktop", text = "", fg = "#45475a" },
+ { name = "sml", text = "λ", fg = "#fab387" },
+ { name = "slvs", text = "", fg = "#a6e3a1" },
+ { name = "pp", text = "", fg = "#fab387" },
+ { name = "ps1", text = "", fg = "#6c7086" },
+ { name = "dropbox", text = "", fg = "#6c7086" },
+ { name = "kicad_mod", text = "", fg = "#f5e0dc" },
+ { name = "bat", text = "", fg = "#a6e3a1" },
+ { name = "slim", text = "", fg = "#fab387" },
+ { name = "skp", text = "", fg = "#a6e3a1" },
+ { name = "css", text = "", fg = "#89b4fa" },
+ { name = "xul", text = "", fg = "#fab387" },
+ { name = "ige", text = "", fg = "#a6e3a1" },
+ { name = "glb", text = "", fg = "#fab387" },
+ { name = "ppt", text = "", fg = "#f38ba8" },
+ { name = "sha512", text = "", fg = "#7f849c" },
+ { name = "ics", text = "", fg = "#313244" },
+ { name = "mdx", text = "", fg = "#74c7ec" },
+ { name = "sha1", text = "", fg = "#7f849c" },
+ { name = "f3d", text = "", fg = "#a6e3a1" },
+ { name = "ass", text = "", fg = "#f9e2af" },
+ { name = "godot", text = "", fg = "#7f849c" },
+ { name = "ifb", text = "", fg = "#313244" },
+ { name = "cson", text = "", fg = "#f9e2af" },
+ { name = "lib", text = "", fg = "#11111b" },
+ { name = "luac", text = "", fg = "#74c7ec" },
+ { name = "heex", text = "", fg = "#7f849c" },
+ { name = "scm", text = "", fg = "#f5e0dc" },
+ { name = "psd1", text = "", fg = "#7f849c" },
+ { name = "sc", text = "", fg = "#f38ba8" },
+ { name = "scad", text = "", fg = "#f9e2af" },
+ { name = "kts", text = "", fg = "#6c7086" },
+ { name = "svh", text = "", fg = "#a6e3a1" },
+ { name = "mts", text = "", fg = "#74c7ec" },
+ { name = "nfo", text = "", fg = "#f9e2af" },
+ { name = "pck", text = "", fg = "#7f849c" },
+ { name = "rproj", text = "", fg = "#a6e3a1" },
+ { name = "rlib", text = "", fg = "#fab387" },
+ { name = "cljd", text = "", fg = "#74c7ec" },
+ { name = "ods", text = "", fg = "#a6e3a1" },
+ { name = "res", text = "", fg = "#f38ba8" },
+ { name = "apk", text = "", fg = "#a6e3a1" },
+ { name = "haml", text = "", fg = "#f5e0dc" },
+ { name = "d.ts", text = "", fg = "#fab387" },
+ { name = "razor", text = "", fg = "#585b70" },
+ { name = "rake", text = "", fg = "#313244" },
+ { name = "patch", text = "", fg = "#45475a" },
+ { name = "cuh", text = "", fg = "#7f849c" },
+ { name = "d", text = "", fg = "#f38ba8" },
+ { name = "query", text = "", fg = "#a6e3a1" },
+ { name = "psb", text = "", fg = "#74c7ec" },
+ { name = "nu", text = ">", fg = "#a6e3a1" },
+ { name = "mov", text = "", fg = "#fab387" },
+ { name = "lrc", text = "", fg = "#f9e2af" },
+ { name = "pyx", text = "", fg = "#89b4fa" },
+ { name = "pyw", text = "", fg = "#89b4fa" },
+ { name = "cu", text = "", fg = "#a6e3a1" },
+ { name = "bazel", text = "", fg = "#a6e3a1" },
+ { name = "obj", text = "", fg = "#7f849c" },
+ { name = "pyi", text = "", fg = "#f9e2af" },
+ { name = "pyd", text = "", fg = "#f9e2af" },
+ { name = "exe", text = "", fg = "#45475a" },
+ { name = "pyc", text = "", fg = "#f9e2af" },
+ { name = "fctb", text = "", fg = "#f38ba8" },
+ { name = "part", text = "", fg = "#94e2d5" },
+ { name = "blade.php", text = "", fg = "#f38ba8" },
+ { name = "git", text = "", fg = "#fab387" },
+ { name = "psd", text = "", fg = "#74c7ec" },
+ { name = "qss", text = "", fg = "#a6e3a1" },
+ { name = "csv", text = "", fg = "#a6e3a1" },
+ { name = "psm1", text = "", fg = "#7f849c" },
+ { name = "dconf", text = "", fg = "#f5e0dc" },
+ { name = "config.ru", text = "", fg = "#313244" },
+ { name = "prisma", text = "", fg = "#6c7086" },
+ { name = "conf", text = "", fg = "#7f849c" },
+ { name = "clj", text = "", fg = "#a6e3a1" },
+ { name = "o", text = "", fg = "#45475a" },
+ { name = "mp4", text = "", fg = "#fab387" },
+ { name = "cc", text = "", fg = "#f38ba8" },
+ { name = "kicad_prl", text = "", fg = "#f5e0dc" },
+ { name = "bz3", text = "", fg = "#fab387" },
+ { name = "asc", text = "", fg = "#6c7086" },
+ { name = "png", text = "", fg = "#7f849c" },
+ { name = "android", text = "", fg = "#a6e3a1" },
+ { name = "pm", text = "", fg = "#74c7ec" },
+ { name = "h", text = "", fg = "#7f849c" },
+ { name = "pls", text = "", fg = "#f38ba8" },
+ { name = "ipynb", text = "", fg = "#fab387" },
+ { name = "pl", text = "", fg = "#74c7ec" },
+ { name = "ads", text = "", fg = "#f5e0dc" },
+ { name = "sqlite", text = "", fg = "#f5e0dc" },
+ { name = "pdf", text = "", fg = "#585b70" },
+ { name = "pcm", text = "", fg = "#6c7086" },
+ { name = "ico", text = "", fg = "#f9e2af" },
+ { name = "a", text = "", fg = "#f5e0dc" },
+ { name = "R", text = "", fg = "#6c7086" },
+ { name = "ogg", text = "", fg = "#6c7086" },
+ { name = "pxd", text = "", fg = "#89b4fa" },
+ { name = "kdenlivetitle", text = "", fg = "#89b4fa" },
+ { name = "jxl", text = "", fg = "#7f849c" },
+ { name = "nswag", text = "", fg = "#a6e3a1" },
+ { name = "nim", text = "", fg = "#f9e2af" },
+ { name = "bqn", text = "⎉", fg = "#6c7086" },
+ { name = "cts", text = "", fg = "#74c7ec" },
+ { name = "fcparam", text = "", fg = "#f38ba8" },
+ { name = "rs", text = "", fg = "#fab387" },
+ { name = "mpp", text = "", fg = "#74c7ec" },
+ { name = "fdmdownload", text = "", fg = "#94e2d5" },
+ { name = "pptx", text = "", fg = "#f38ba8" },
+ { name = "jpeg", text = "", fg = "#7f849c" },
+ { name = "bib", text = "", fg = "#f9e2af" },
+ { name = "vhd", text = "", fg = "#a6e3a1" },
+ { name = "m", text = "", fg = "#89b4fa" },
+ { name = "js", text = "", fg = "#f9e2af" },
+ { name = "eex", text = "", fg = "#7f849c" },
+ { name = "tbc", text = "", fg = "#585b70" },
+ { name = "astro", text = "", fg = "#f38ba8" },
+ { name = "sha224", text = "", fg = "#7f849c" },
+ { name = "xcplayground", text = "", fg = "#fab387" },
+ { name = "el", text = "", fg = "#7f849c" },
+ { name = "m4v", text = "", fg = "#fab387" },
+ { name = "m4a", text = "", fg = "#74c7ec" },
+ { name = "cs", text = "", fg = "#585b70" },
+ { name = "hs", text = "", fg = "#7f849c" },
+ { name = "tgz", text = "", fg = "#fab387" },
+ { name = "fs", text = "", fg = "#74c7ec" },
+ { name = "luau", text = "", fg = "#89b4fa" },
+ { name = "dxf", text = "", fg = "#a6e3a1" },
+ { name = "download", text = "", fg = "#94e2d5" },
+ { name = "cast", text = "", fg = "#fab387" },
+ { name = "qrc", text = "", fg = "#a6e3a1" },
+ { name = "lua", text = "", fg = "#74c7ec" },
+ { name = "lhs", text = "", fg = "#7f849c" },
+ { name = "md", text = "", fg = "#cdd6f4" },
+ { name = "leex", text = "", fg = "#7f849c" },
+ { name = "ai", text = "", fg = "#f9e2af" },
+ { name = "lck", text = "", fg = "#bac2de" },
+ { name = "kt", text = "", fg = "#6c7086" },
+ { name = "bicepparam", text = "", fg = "#7f849c" },
+ { name = "hex", text = "", fg = "#6c7086" },
+ { name = "zig", text = "", fg = "#fab387" },
+ { name = "bzl", text = "", fg = "#a6e3a1" },
+ { name = "cljc", text = "", fg = "#a6e3a1" },
+ { name = "kicad_dru", text = "", fg = "#f5e0dc" },
+ { name = "fctl", text = "", fg = "#f38ba8" },
+ { name = "f#", text = "", fg = "#74c7ec" },
+ { name = "odt", text = "", fg = "#74c7ec" },
+ { name = "conda", text = "", fg = "#a6e3a1" },
+ { name = "vala", text = "", fg = "#585b70" },
+ { name = "erb", text = "", fg = "#313244" },
+ { name = "mp3", text = "", fg = "#74c7ec" },
+ { name = "bz2", text = "", fg = "#fab387" },
+ { name = "coffee", text = "", fg = "#f9e2af" },
+ { name = "cr", text = "", fg = "#f5e0dc" },
+ { name = "f90", text = "", fg = "#585b70" },
+ { name = "jwmrc", text = "", fg = "#6c7086" },
+ { name = "c++", text = "", fg = "#f38ba8" },
+ { name = "fcscript", text = "", fg = "#f38ba8" },
+ { name = "fods", text = "", fg = "#a6e3a1" },
+ { name = "cue", text = "", fg = "#f38ba8" },
+ { name = "srt", text = "", fg = "#f9e2af" },
+ { name = "info", text = "", fg = "#f9e2af" },
+ { name = "hh", text = "", fg = "#7f849c" },
+ { name = "sig", text = "λ", fg = "#fab387" },
+ { name = "html", text = "", fg = "#fab387" },
+ { name = "iges", text = "", fg = "#a6e3a1" },
+ { name = "kicad_wks", text = "", fg = "#f5e0dc" },
+ { name = "hbs", text = "", fg = "#fab387" },
+ { name = "fcstd", text = "", fg = "#f38ba8" },
+ { name = "gresource", text = "", fg = "#f5e0dc" },
+ { name = "sub", text = "", fg = "#f9e2af" },
+ { name = "ical", text = "", fg = "#313244" },
+ { name = "crdownload", text = "", fg = "#94e2d5" },
+ { name = "pub", text = "", fg = "#f9e2af" },
+ { name = "vue", text = "", fg = "#a6e3a1" },
+ { name = "gd", text = "", fg = "#7f849c" },
+ { name = "fsx", text = "", fg = "#74c7ec" },
+ { name = "mkv", text = "", fg = "#fab387" },
+ { name = "py", text = "", fg = "#f9e2af" },
+ { name = "kicad_sch", text = "", fg = "#f5e0dc" },
+ { name = "epub", text = "", fg = "#fab387" },
+ { name = "env", text = "", fg = "#f9e2af" },
+ { name = "magnet", text = "", fg = "#45475a" },
+ { name = "elf", text = "", fg = "#45475a" },
+ { name = "fodg", text = "", fg = "#f9e2af" },
+ { name = "svg", text = "", fg = "#fab387" },
+ { name = "dwg", text = "", fg = "#a6e3a1" },
+ { name = "docx", text = "", fg = "#585b70" },
+ { name = "pro", text = "", fg = "#f9e2af" },
+ { name = "db", text = "", fg = "#f5e0dc" },
+ { name = "rb", text = "", fg = "#313244" },
+ { name = "r", text = "", fg = "#6c7086" },
+ { name = "scss", text = "", fg = "#f38ba8" },
+ { name = "cow", text = "", fg = "#fab387" },
+ { name = "gleam", text = "", fg = "#f5c2e7" },
+ { name = "v", text = "", fg = "#a6e3a1" },
+ { name = "kicad_pro", text = "", fg = "#f5e0dc" },
+ { name = "liquid", text = "", fg = "#a6e3a1" },
+ { name = "zip", text = "", fg = "#fab387" },
+]
diff --git a/yazi/.config/yazi/yazi.toml b/yazi/.config/yazi/yazi.toml
new file mode 100644
index 0000000..8337c2d
--- /dev/null
+++ b/yazi/.config/yazi/yazi.toml
@@ -0,0 +1,228 @@
+# A TOML linter such as https://taplo.tamasfe.dev/ can use this schema to validate your config.
+# If you encounter any issues, please make an issue at https://github.com/yazi-rs/schemas.
+"$schema" = "https://yazi-rs.github.io/schemas/yazi.json"
+
+[mgr]
+ratio = [1, 4, 3]
+sort_by = "natural"
+sort_sensitive = false
+sort_reverse = false
+sort_dir_first = true
+linemode = "none"
+show_hidden = true
+show_symlink = true
+scrolloff = 5
+
+[preview]
+tab_size = 2
+max_width = 600
+max_height = 900
+cache_dir = ""
+image_filter = "triangle"
+image_quality = 75
+sixel_fraction = 15
+ueberzug_scale = 1
+ueberzug_offset = [0, 0, 0, 0]
+
+[opener]
+edit = [
+ { run = '${EDITOR:=nvim} "$@"', desc = "$EDITOR", block = true, for = "unix" },
+ { run = 'code "%*"', orphan = true, desc = "code", for = "windows" },
+ { run = 'code -w "%*"', block = true, desc = "code (block)", for = "windows" },
+]
+open = [
+ { run = 'xdg-open "$@"', desc = "Open", for = "linux" },
+ { run = 'open "$@"', desc = "Open", for = "macos" },
+ { run = 'start "" "%1"', orphan = true, desc = "Open", for = "windows" },
+]
+reveal = [
+ { run = 'xdg-open "$(dirname "$0")"', desc = "Reveal", for = "linux" },
+ { run = 'open -R "$1"', desc = "Reveal", for = "macos" },
+ { run = 'explorer /select, "%1"', orphan = true, desc = "Reveal", for = "windows" },
+ { run = '''exiftool "$1"; echo "Press enter to exit"; read _''', block = true, desc = "Show EXIF", for = "unix" },
+]
+extract = [
+ { run = 'unar "$1"', desc = "Extract here", for = "unix" },
+ { run = 'unar "%1"', desc = "Extract here", for = "windows" },
+]
+play = [
+ { run = 'mpv "$@"', orphan = true, for = "unix" },
+ { run = 'mpv "%1"', orphan = true, for = "windows" },
+ { run = '''mediainfo "$1"; echo "Press enter to exit"; read _''', block = true, desc = "Show media info", for = "unix" },
+]
+
+[open]
+rules = [
+ { name = "*/", use = [
+ "edit",
+ "open",
+ "reveal",
+ ] },
+
+ { mime = "text/*", use = [
+ "edit",
+ "reveal",
+ ] },
+ { mime = "image/*", use = [
+ "open",
+ "reveal",
+ ] },
+ { mime = "{audio,video}/*", use = [
+ "play",
+ "reveal",
+ ] },
+ { mime = "inode/x-empty", use = [
+ "edit",
+ "reveal",
+ ] },
+
+ { mime = "application/*zip", use = [
+ "extract",
+ "reveal",
+ ] },
+ { mime = "application/x-{tar,bzip*,7z-compressed,xz,rar}", use = [
+ "extract",
+ "reveal",
+ ] },
+
+ { mime = "application/json", use = [
+ "edit",
+ "reveal",
+ ] },
+ { mime = "*/javascript", use = [
+ "edit",
+ "reveal",
+ ] },
+
+ { mime = "*", use = [
+ "open",
+ "reveal",
+ ] },
+]
+
+[tasks]
+micro_workers = 10
+macro_workers = 25
+bizarre_retry = 5
+image_alloc = 536870912 # 512MB
+image_bound = [0, 0]
+suppress_preload = false
+
+[plugin]
+
+#preloaders = [
+# { name = "*", cond = "!mime", run = "mime", multi = true, prio = "high" },
+# # Image
+# { mime = "image/*", run = "image" },
+# # Video
+# { mime = "video/*", run = "video" },
+# # PDF
+# { mime = "application/pdf", run = "pdf" },
+# #]
+previewers = [
+ { name = "*/", run = "folder", sync = true },
+ # Code
+ { mime = "text/*", run = "code" },
+ { mime = "*/{xml,javascript,x-wine-extension-ini}", run = "code" },
+ # JSON
+ { mime = "application/json", run = "json" },
+ # Image
+ { mime = "image/vnd.djvu", run = "noop" },
+ { mime = "image/*", run = "image" },
+ # Video
+ { mime = "video/*", run = "video" },
+ # PDF
+ { mime = "application/pdf", run = "pdf" },
+ # CSV
+ { mime = "text/csv", run = "miller" },
+ # Archive
+ { mime = "application/*zip", run = "archive" },
+ { mime = "application/x-{tar,bzip*,7z-compressed,xz,rar}", run = "archive" },
+ # Fallback
+ { name = "*", run = "hexyl" },
+]
+
+prepend_previewers = [
+ # Exifaudio
+ { mime = "audio/*", run = "exifaudio" },
+ # Archive previewer
+ { mime = "application/*zip", run = "ouch" },
+ { mime = "application/x-tar", run = "ouch" },
+ { mime = "application/x-bzip2", run = "ouch" },
+ { mime = "application/x-7z-compressed", run = "ouch" },
+ { mime = "application/x-rar", run = "ouch" },
+ { mime = "application/x-xz", run = "ouch" },
+ # Markdown previewer
+ { name = ".md", run = "glow" },
+]
+
+[input]
+# cd
+cd_title = "Change directory:"
+cd_origin = "top-center"
+cd_offset = [0, 2, 50, 3]
+
+# create
+# create_title = "Create:"
+# create_origin = "top-center"
+# create_offset = [0, 2, 50, 3]
+
+# rename
+rename_title = "Rename:"
+rename_origin = "hovered"
+rename_offset = [0, 1, 50, 3]
+
+# trash
+trash_title = "Move {n} selected file{s} to trash? (y/N)"
+trash_origin = "top-center"
+trash_offset = [0, 2, 50, 3]
+
+# delete
+delete_title = "Delete {n} selected file{s} permanently? (y/N)"
+delete_origin = "top-center"
+delete_offset = [0, 2, 50, 3]
+
+# filter
+filter_title = "Filter:"
+filter_origin = "top-center"
+filter_offset = [0, 2, 50, 3]
+
+# find
+find_title = ["Find next:", "Find previous:"]
+find_origin = "top-center"
+find_offset = [0, 2, 50, 3]
+
+# search
+search_title = "Search via {n}:"
+search_origin = "top-center"
+search_offset = [0, 2, 50, 3]
+
+# shell
+shell_title = ["Shell:", "Shell (block):"]
+shell_origin = "top-center"
+shell_offset = [0, 2, 50, 3]
+
+# overwrite
+overwrite_title = "Overwrite an existing file? (y/N)"
+overwrite_origin = "top-center"
+overwrite_offset = [0, 2, 50, 3]
+
+# quit
+quit_title = "{n} task{s} running, sure to quit? (y/N)"
+quit_origin = "top-center"
+quit_offset = [0, 2, 50, 3]
+
+[select]
+open_title = "Open with:"
+open_origin = "hovered"
+open_offset = [0, 1, 50, 7]
+
+[which]
+sort_by = "none"
+sort_sensitive = false
+sort_reverse = false
+
+[log]
+enabled = false
+
+[headsup]
diff --git a/zathura/.config/zathura/catppuccin-mocha b/zathura/.config/zathura/catppuccin-mocha
new file mode 100644
index 0000000..ba387f8
--- /dev/null
+++ b/zathura/.config/zathura/catppuccin-mocha
@@ -0,0 +1,38 @@
+set default-fg rgba(205,214,244,1)
+set default-bg rgba(30,30,46,1)
+
+set completion-bg rgba(49,50,68,1)
+set completion-fg rgba(205,214,244,1)
+set completion-highlight-bg rgba(87,82,104,1)
+set completion-highlight-fg rgba(205,214,244,1)
+set completion-group-bg rgba(49,50,68,1)
+set completion-group-fg rgba(137,180,250,1)
+
+set statusbar-fg rgba(205,214,244,1)
+set statusbar-bg rgba(49,50,68,1)
+
+set notification-bg rgba(49,50,68,1)
+set notification-fg rgba(205,214,244,1)
+set notification-error-bg rgba(49,50,68,1)
+set notification-error-fg rgba(243,139,168,1)
+set notification-warning-bg rgba(49,50,68,1)
+set notification-warning-fg rgba(250,227,176,1)
+
+set inputbar-fg rgba(205,214,244,1)
+set inputbar-bg rgba(49,50,68,1)
+
+set recolor "true"
+set recolor-lightcolor rgba(30,30,46,1)
+set recolor-darkcolor rgba(205,214,244,1)
+
+set index-fg rgba(205,214,244,1)
+set index-bg rgba(30,30,46,1)
+set index-active-fg rgba(205,214,244,1)
+set index-active-bg rgba(49,50,68,1)
+
+set render-loading-bg rgba(30,30,46,1)
+set render-loading-fg rgba(205,214,244,1)
+
+set highlight-color rgba(87,82,104,0.5)
+set highlight-fg rgba(245,194,231,0.5)
+set highlight-active-color rgba(245,194,231,0.5)
diff --git a/zsh/.profile.d/ssh-agent.sh b/zsh/.profile.d/ssh-agent.sh
index f5a67aa..a3a7f8d 100755
--- a/zsh/.profile.d/ssh-agent.sh
+++ b/zsh/.profile.d/ssh-agent.sh
@@ -1,29 +1,17 @@
#!/usr/bin/env zsh
-# This script sets up ssh-agent and gpg-agent differently for WSL and Linux Mint.
-# On WSL, it uses keychain to start agents.
-# On Linux Mint (or other Linux), it assumes gnome-keyring manages agents automatically.
-
-# Detect if running inside WSL by checking /proc/version for "Microsoft"
-if grep -qi microsoft /proc/version; then
- IS_WSL=true
-else
- IS_WSL=false
-fi
-
-if [ "$IS_WSL" = true ]; then
- # We are in WSL - start keychain for ssh and gpg agents
- # Adjust these variables to your actual SSH and GPG key names
- SSH_KEY="$HOME/.ssh/id_rsa_deadalus"
- #GPG_KEY=9DDD59AD62494FB2
+# This script sets up ssh-agent and gpg-agent differently for WSL and non-WSL.
+start_keychain() {
+ local ssh_key="$1"
+ local gpg_key="$2"
# Check if keychain is installed
if command -v keychain >/dev/null 2>&1; then
SHORT_HOST=${SHORT_HOST:-${(%):-%m}}
-
+
# Start keychain quietly with no GUI prompts for ssh agents
- eval "$(keychain --quiet --nogui --agents ssh $SSH_KEY)"
-
+ eval "$(keychain --quiet --nogui $ssh_key $gpg_key)"
+
# Get the filenames to store/lookup the environment from
_keychain_env_sh="$HOME/.keychain/$SHORT_HOST-sh"
_keychain_env_sh_gpg="$HOME/.keychain/$SHORT_HOST-sh-gpg"
@@ -34,8 +22,18 @@ if [ "$IS_WSL" = true ]; then
else
echo "Warning: keychain is not installed. Please install keychain to manage ssh/gpg agents."
fi
+}
+
+# Detect if running inside WSL by checking /proc/version for "Microsoft"
+if grep -qi microsoft /proc/version; then
+ IS_WSL=true
else
- # Not WSL - assume gnome-keyring handles ssh-agent and gpg-agent
- # Do nothing here to avoid conflicts with gnome-keyring
+ IS_WSL=false
+fi
+
+if [ "$IS_WSL" = true ]; then
+ start_keychain "$HOME/.ssh/id_rsa_deadalus" "9DDD59AD62494FB2"
+else
+ start_keychain "$HOME/.ssh/id_ed25519_nymph" "9DDD59AD62494FB2"
fi
diff --git a/zsh/.zshenv b/zsh/.zshenv
index f5cf481..6327347 100644
--- a/zsh/.zshenv
+++ b/zsh/.zshenv
@@ -1,10 +1,3 @@
-[ -f "$HOME/.ghcup/env" ] && . "$HOME/.ghcup/env"
-
-if [ -f "/home/linuxbrew/.linuxbrew/bin/brew" ]; then
- # Initialize Homebrew
- eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
-fi
-
if command -v starship > /dev/null 2>&1; then
# Initialize Starship
eval "$(starship init zsh)"