about summary refs log tree commit diff
path: root/.config
diff options
context:
space:
mode:
Diffstat (limited to '.config')
-rw-r--r--.config/bat/config1
-rw-r--r--.config/bat/themes/modus_vivendi.tmTheme439
-rw-r--r--.config/dunst/dunstrc39
-rw-r--r--.config/eza/theme.yml147
-rw-r--r--.config/foot/foot.ini6
-rw-r--r--.config/jellyfin-tui/config.yaml6
-rw-r--r--.config/kanata/config.kbd39
-rw-r--r--.config/kxkbrc9
-rw-r--r--.config/lazygit/config.yml182
-rw-r--r--.config/luastatus/alsa.lua23
-rw-r--r--.config/luastatus/battery.lua57
-rw-r--r--.config/luastatus/playerctl.lua43
-rw-r--r--.config/luastatus/separator.lua6
-rw-r--r--.config/luastatus/time-date.lua13
-rw-r--r--.config/luastatus/wireless.lua70
-rw-r--r--.config/ly/config.ini265
-rw-r--r--.config/mc/hotlist2
-rw-r--r--.config/mc/hotlist.bak1
-rw-r--r--.config/mc/ini167
-rw-r--r--.config/mc/panels.ini37
-rw-r--r--.config/mimeapps.list21
-rw-r--r--.config/nvim/.luarc.json15
-rw-r--r--.config/nvim/lua/config/options.lua7
-rw-r--r--.config/nvim/lua/manager.lua2
-rw-r--r--.config/nvim/lua/plugins/cmp.lua51
-rw-r--r--.config/nvim/lua/plugins/flutter.lua11
-rw-r--r--.config/nvim/lua/plugins/fterm.lua14
-rw-r--r--.config/nvim/lua/plugins/init.lua14
-rw-r--r--.config/nvim/lua/plugins/lastplace.lua1
-rw-r--r--.config/nvim/lua/plugins/lualine.lua12
-rw-r--r--.config/nvim/lua/plugins/modus-themes.lua13
-rw-r--r--.config/nvim/lua/plugins/orgmode.lua31
-rw-r--r--.config/nvim/lua/plugins/render-markdown.lua (renamed from .config/nvim/lua/plugins/markdown.lua)2
-rw-r--r--.config/nvim/lua/plugins/statuscol.lua6
-rw-r--r--.config/nvim/lua/plugins/telescope.lua12
-rw-r--r--.config/nvim/lua/plugins/theme.lua29
-rw-r--r--.config/nvim/lua/plugins/todo-comments.lua11
-rw-r--r--.config/nvim/lua/plugins/treesitter.lua53
-rw-r--r--.config/nvim/lua/plugins/which-key.lua17
-rw-r--r--.config/nvim/lua/plugins/zen.lua24
-rw-r--r--.config/rofi/config.rasi10
-rw-r--r--.config/rofi/theme.rasi111
-rw-r--r--.config/shell/alias9
-rw-r--r--.config/shell/functions16
-rw-r--r--.config/shell/vars13
-rw-r--r--.config/sway/config278
-rw-r--r--.config/swaylock/config39
-rw-r--r--.config/systemd/user/.gitignore1
-rw-r--r--.config/systemd/user/cliphist.service13
-rw-r--r--.config/systemd/user/kanata.service22
-rw-r--r--.config/xkb/symbols/us_colemak_pt_mac13
-rw-r--r--.config/yazi/keymap.toml164
-rw-r--r--.config/yazi/modus_vivendi.tmTheme439
-rw-r--r--.config/yazi/theme.toml135
-rw-r--r--.config/yazi/yazi.toml7
55 files changed, 2687 insertions, 481 deletions
diff --git a/.config/bat/config b/.config/bat/config
new file mode 100644
index 0000000..2d65ccf
--- /dev/null
+++ b/.config/bat/config
@@ -0,0 +1 @@
+--theme="modus_vivendi"
diff --git a/.config/bat/themes/modus_vivendi.tmTheme b/.config/bat/themes/modus_vivendi.tmTheme
new file mode 100644
index 0000000..15d2429
--- /dev/null
+++ b/.config/bat/themes/modus_vivendi.tmTheme
@@ -0,0 +1,439 @@
+<!-- Modus Themes for Bat -->
+<!-- Auto generated with https://github.com/miikanissi/modus-themes.nvim/blob/master/lua/modus-themes/extras/bat.lua -->
+
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+  <dict>
+    <key>name</key>
+    <string>modus_vivendi</string>
+    <key>settings</key>
+    <array>
+      <dict>
+        <key>settings</key>
+        <dict>
+          <key>background</key>
+          <string>#000000</string>
+          <key>caret</key>
+          <string>#989898</string>
+          <key>foreground</key>
+          <string>#ffffff</string>
+          <key>invisibles</key>
+          <string>#989898</string>
+          <key>lineHighlight</key>
+          <string>#2f3849</string>
+          <key>selection</key>
+          <string>#7030af</string>
+          <key>findHighlight</key>
+          <string>#7a6100</string>
+          <key>selectionBorder</key>
+          <string>#646464</string>
+          <key>gutterForeground</key>
+          <string>#989898</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Comment</string>
+        <key>scope</key>
+        <string>comment</string>
+        <key>settings</key>
+        <dict>
+          <key>fontStyle</key>
+          <string>italic</string>
+          <key>foreground</key>
+          <string>#989898</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>String</string>
+        <key>scope</key>
+        <string>string</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#79a8ff</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Number</string>
+        <key>scope</key>
+        <string>constant.numeric</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#82b0ec</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Built-in constant</string>
+        <key>scope</key>
+        <string>constant.language</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#6ae4b9</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>User-defined constant</string>
+        <key>scope</key>
+        <string>constant.character, constant.other</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#ffffff</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Variable</string>
+        <key>scope</key>
+        <string>variable</string>
+        <key>settings</key>
+        <dict>
+          <key>fontStyle</key>
+          <string>#00d3d0</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Ruby's @variable</string>
+        <key>scope</key>
+        <string>variable.other.readwrite.instance</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#00d3d0</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>String interpolation</string>
+        <key>scope</key>
+        <string>constant.character.escaped, constant.character.escape, string source, string source.ruby</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#d2b580</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Keyword</string>
+        <key>scope</key>
+        <string>keyword</string>
+        <key>settings</key>
+        <dict>
+          <key>fontStyle</key>
+          <string>italic</string>
+          <key>foreground</key>
+          <string>#b6a0ff</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Storage</string>
+        <key>scope</key>
+        <string>storage</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#b6a0ff</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Storage type</string>
+        <key>scope</key>
+        <string>storage.type</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#b6a0ff</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Class name</string>
+        <key>scope</key>
+        <string>entity.name.class</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#b6a0ff</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Inherited class</string>
+        <key>scope</key>
+        <string>entity.other.inherited-class</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#b6a0ff</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Function name</string>
+        <key>scope</key>
+        <string>entity.name.function</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#feacd0</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Function argument</string>
+        <key>scope</key>
+        <string>variable.parameter</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#00d3d0</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Tag name</string>
+        <key>scope</key>
+        <string>entity.name.tag</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#00d3d0</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Tag attribute</string>
+        <key>scope</key>
+        <string>entity.other.attribute-name</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#00d3d0</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Library function</string>
+        <key>scope</key>
+        <string>support.function</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#feacd0</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Library constant</string>
+        <key>scope</key>
+        <string>support.constant</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#6ae4b9</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Library class/type</string>
+        <key>scope</key>
+        <string>support.type, support.class</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#6ae4b9</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Library variable</string>
+        <key>scope</key>
+        <string>support.other.variable</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#00d3d0</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Invalid</string>
+        <key>scope</key>
+        <string>invalid</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#989898</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Invalid deprecated</string>
+        <key>scope</key>
+        <string>invalid.deprecated</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#989898</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>JSON String</string>
+        <key>scope</key>
+        <string>meta.structure.dictionary.json string.quoted.double.json</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#79a8ff</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>diff.header</string>
+        <key>scope</key>
+        <string>meta.diff, meta.diff.header</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#feacd0</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>diff.deleted</string>
+        <key>scope</key>
+        <string>markup.deleted</string>
+        <key>settings</key>
+        <dict>
+          <key>background</key>
+          <string>#4f1119</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>diff.inserted</string>
+        <key>scope</key>
+        <string>markup.inserted</string>
+        <key>settings</key>
+        <dict>
+          <key>background</key>
+          <string>#00381f</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>diff.changed</string>
+        <key>scope</key>
+        <string>markup.changed</string>
+        <key>settings</key>
+        <dict>
+          <key>background</key>
+          <string>#363300</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>scope</key>
+        <string>constant.numeric.line-number.find-in-files - match</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#82b0ec</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>scope</key>
+        <string>entity.name.filename</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#2fafff</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>scope</key>
+        <string>message.error</string>
+        <key>settings</key>
+        <dict>
+          <key>fontStyle</key>
+          <string>bold</string>
+          <key>foreground</key>
+          <string>#ff7f9f</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>JSON Punctuation</string>
+        <key>scope</key>
+        <string>punctuation.definition.string.begin.json - meta.structure.dictionary.value.json, punctuation.definition.string.end.json - meta.structure.dictionary.value.json</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#ffffff</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>JSON Structure</string>
+        <key>scope</key>
+        <string>meta.structure.dictionary.json string.quoted.double.json</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#79a8ff</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>JSON String</string>
+        <key>scope</key>
+        <string>meta.structure.dictionary.value.json string.quoted.double.json</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#79a8ff</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Escape Characters</string>
+        <key>scope</key>
+        <string>constant.character.escape</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#d2b580</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Regular Expressions</string>
+        <key>scope</key>
+        <string>string.regexp</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#00c06f</string>
+        </dict>
+      </dict>
+    </array>
+    <key>uuid</key>
+    <string>09CE9B40-0137-442C-8512-7CEAFC78C153</string>
+    <key>colorSpaceName</key>
+    <string>sRGB</string>
+    <key>semanticClass</key>
+    <string>Modus Vivendi</string>
+  </dict>
+</plist>
diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc
new file mode 100644
index 0000000..7f94795
--- /dev/null
+++ b/.config/dunst/dunstrc
@@ -0,0 +1,39 @@
+[global]
+    width = (200,600)
+    offset = (24,24)
+
+    progress_bar_min_width = 380
+    progress_bar_max_width = 380
+    progress_bar_corner_radius = 0
+
+    padding = 10
+    horizontal_padding = 10
+    frame_width = 2
+    gap_size = 3
+    origin = "top-right"
+    font = "Google Sans 12"
+
+    enable_recursive_icon_lookup = true
+    corner_radius = 0
+
+    background = "#000000"
+    foreground = "#ffffff"
+
+[urgency_low]
+    background = "#000000"
+    highlight = "#ffffff"
+    frame_color = "#ffffff"
+    format = "<b><span foreground='#31748f'>%s</span></b>\n%b"
+
+[urgency_normal]
+    background = "#000000"
+    highlight = "#ffffff"
+    frame_color = "#ffffff"
+    format = "<b><span foreground='#e0def4'>%s</span></b>\n%b"
+
+[urgency_critical]
+    background = "#000000"
+    highlight = "#ffffff"
+    frame_color = "#ffffff"
+    default_icon = "dialog-error"
+    format = "<b><span foreground='#36263d'>%s</span></b>\n%b"
diff --git a/.config/eza/theme.yml b/.config/eza/theme.yml
new file mode 100644
index 0000000..f74a128
--- /dev/null
+++ b/.config/eza/theme.yml
@@ -0,0 +1,147 @@
+# Modus Themes for eza
+# Auto generated with https://github.com/miikanissi/modus-themes.nvim/blob/master/lua/modus-themes/extras/eza.lua
+colourful: true
+
+# base colors
+define: &bg_main "#000000"
+define: &bg_dim = "#1e1e1e"
+define: &bg_alt = "#0f0f0f"
+define: &fg_main = "#ffffff"
+define: &fg_dim = "#989898"
+define: &fg_alt = "#c6daff"
+define: &border = "#646464"
+define: &border_highlight = "#C4C4C4"
+
+# foreground colors
+define: &red "#ff5f59"
+define: &red_warmer "#ff6b55"
+define: &red_cooler "#ff7f9f"
+define: &red_faint "#ff9580"
+define: &green "#44bc44"
+define: &green_warmer "#70b900"
+define: &green_cooler "#00c06f"
+define: &green_faint "#88ca9f"
+define: &yellow "#d0bc00"
+define: &yellow_warmer "#fec43f"
+define: &yellow_cooler "#dfaf7a"
+define: &yellow_faint "#d2b580"
+define: &blue "#2fafff"
+define: &blue_warmer "#79a8ff"
+define: &blue_cooler "#00bcff"
+define: &blue_faint "#82b0ec"
+define: &magenta "#feacd0"
+define: &magenta_warmer "#f78fe7"
+define: &magenta_cooler "#b6a0ff"
+define: &magenta_faint "#caa6df"
+define: &cyan "#00d3d0"
+define: &cyan_warmer "#4ae2f0"
+define: &cyan_cooler "#6ae4b9"
+define: &cyan_faint "#9ac8e0"
+define: &rust "#db7b5f"
+define: &gold "#c0965b"
+define: &olive "#9cbd6f"
+define: &slate "#76afbf"
+define: &indigo "#9099d9"
+define: &maroon "#cf7fa7"
+define: &pink "#d09dc0"
+
+filekinds:
+  normal: {foreground: *fg_main}
+  directory: {foreground: *blue_warmer}
+  symlink: {foreground: *blue}
+  pipe: {foreground: *fg_dim}
+  block_device: {foreground: *magenta_cooler}
+  char_device: {foreground: *yellow_warmer}
+  socket: {foreground: *magenta}
+  special: {foreground: *pink}
+  executable: {foreground: *green}
+  mount_point: {foreground: *cyan}
+
+perms:
+  user_read: {foreground: *fg_dim}
+  user_write: {foreground: *red}
+  user_execute_file: {foreground: *green}
+  user_execute_other: {foreground: *green}
+  group_read: {foreground: *fg_dim}
+  group_write: {foreground: *red}
+  group_execute: {foreground: *green}
+  other_read: {foreground: *fg_dim}
+  other_write: {foreground: *red}
+  other_execute: {foreground: *green}
+  special_user_file: {foreground: *magenta_cooler}
+  special_other: {foreground: *red}
+  attribute: {foreground: *pink}
+
+size:
+  major: {foreground: *fg_dim}
+  minor: {foreground: *blue_warmer}
+  number_byte: {foreground: *pink}
+  number_kilo: {foreground: *rust}
+  number_mega: {foreground: *blue_warmer}
+  number_giga: {foreground: *magenta_cooler}
+  number_huge: {foreground: *magenta}
+  unit_byte: {foreground: *pink}
+  unit_kilo: {foreground: *rust}
+  unit_mega: {foreground: *blue_warmer}
+  unit_giga: {foreground: *magenta_cooler}
+  unit_huge: {foreground: *magenta}
+
+users:
+  user_you: {foreground: *yellow_warmer}
+  user_root: {foreground: *red}
+  user_other: {foreground: *magenta_cooler}
+  group_yours: {foreground: *pink}
+  group_other: {foreground: *fg_dim}
+  group_root: {foreground: *red}
+
+links:
+  normal: {foreground: *blue}
+  multi_link_file: {foreground: *cyan}
+
+git:
+  new: {foreground: *green}
+  modified: {foreground: *yellow_warmer}
+  deleted: {foreground: *red}
+  renamed: {foreground: *cyan}
+  typechange: {foreground: *magenta_cooler}
+  ignored: {foreground: *pink}
+  conflicted: {foreground: *magenta}
+
+git_repo:
+  branch_main: {foreground: *fg_dim}
+  branch_other: {foreground: *magenta_cooler}
+  git_clean: {foreground: *green}
+  git_dirty: {foreground: *red}
+
+security_context:
+  colon: {foreground: *fg_dim}
+  user: {foreground: *blue_warmer}
+  role: {foreground: *magenta_cooler}
+  typ: {foreground: *pink}
+  range: {foreground: *magenta_cooler}
+
+file_type:
+  image: {foreground: *yellow_warmer}
+  video: {foreground: *magenta}
+  music: {foreground: *blue_warmer}
+  lossless: {foreground: *cyan}
+  crypto: {foreground: *pink}
+  document: {foreground: *fg_dim}
+  compressed: {foreground: *magenta_cooler}
+  temp: {foreground: *yellow_warmer}
+  compiled: {foreground: *cyan}
+  build: {foreground: *pink}
+  source: {foreground: *green}
+
+punctuation: {foreground: *pink}
+date: {foreground: *cyan}
+inode: {foreground: *fg_dim}
+blocks: {foreground: *pink}
+header: {foreground: *fg_dim}
+octal: {foreground: *blue_warmer}
+flags: {foreground: *magenta_cooler}
+
+symlink_path: {foreground: *blue}
+control_char: {foreground: *cyan}
+broken_symlink: {foreground: *red}
+broken_path_overlay: {foreground: *pink}
diff --git a/.config/foot/foot.ini b/.config/foot/foot.ini
new file mode 100644
index 0000000..be335dc
--- /dev/null
+++ b/.config/foot/foot.ini
@@ -0,0 +1,6 @@
+[main]
+include=/usr/share/foot/themes/modus-vivendi
+font=GoogleSansCodeNF:size=12
+
+[cursor]
+style=beam
diff --git a/.config/jellyfin-tui/config.yaml b/.config/jellyfin-tui/config.yaml
new file mode 100644
index 0000000..30322e0
--- /dev/null
+++ b/.config/jellyfin-tui/config.yaml
@@ -0,0 +1,6 @@
+servers:
+- name: NAS
+  quick_connect: true
+  url: https://iv.venomade.com
+
+rounded_corners: false
diff --git a/.config/kanata/config.kbd b/.config/kanata/config.kbd
new file mode 100644
index 0000000..a805cf7
--- /dev/null
+++ b/.config/kanata/config.kbd
@@ -0,0 +1,39 @@
+#|
+This minimal config changes Caps Lock to act as Caps Lock on quick tap, but
+if held, it will act as Left Ctrl. It also changes the backtick/grave key to
+act as backtick/grave on quick tap, but change ijkl keys to arrow keys on hold.
+
+This text between the two pipe+octothorpe sequences is a multi-line comment.
+|#
+
+;; Text after double-semicolons are single-line comments.
+
+#|
+One defcfg entry may be added, which is used for configuration key-pairs. These
+configurations change kanata's behaviour at a more global level than the other
+configuration entries.
+|#
+
+(defcfg
+  #|
+  This configuration will process all keys pressed inside of kanata, even if
+  they are not mapped in defsrc. This is so that certain actions can activate
+  at the right time for certain input sequences. By default, unmapped keys are
+  not processed through kanata due to a Windows issue related to AltGr. If you
+  use AltGr in your keyboard, you will likely want to follow the simple.kbd
+  file while unmapping lctl and ralt from defsrc.
+  |#
+  process-unmapped-keys yes
+)
+
+(defsrc
+  caps
+)
+
+(deflayer default
+  @cap
+)
+
+(defalias
+  cap (tap-hold 200 200 esc lctl)
+)
diff --git a/.config/kxkbrc b/.config/kxkbrc
deleted file mode 100644
index e5674f4..0000000
--- a/.config/kxkbrc
+++ /dev/null
@@ -1,9 +0,0 @@
-[$Version]
-update_info=kxkb.upd:remove-empty-lists,kxkb.upd:add-back-resetoptions,kxkb_variants.upd:split-variants
-
-[Layout]
-LayoutList=us_colemak_pt_mac
-Options=ctrl:nocaps,lv3:switch
-ResetOldOptions=true
-Use=true
-VariantList=basic
diff --git a/.config/lazygit/config.yml b/.config/lazygit/config.yml
new file mode 100644
index 0000000..0151f13
--- /dev/null
+++ b/.config/lazygit/config.yml
@@ -0,0 +1,182 @@
+gui:
+  border: single
+
+keybinding:
+  universal:
+    quit: q
+    quit-alt1: <c-c>
+    suspendApp: <c-z>
+    return: <esc>
+    quitWithoutChangingDirectory: Q
+    togglePanel: <tab>
+    prevItem: <up>
+    nextItem: <down>
+    prevItem-alt: e
+    nextItem-alt: n
+    prevPage: ','
+    nextPage: .
+    scrollLeft: H
+    scrollRight: I
+    gotoTop: <
+    gotoBottom: '>'
+    gotoTop-alt: <home>
+    gotoBottom-alt: <end>
+    toggleRangeSelect: v
+    rangeSelectDown: <s-down>
+    rangeSelectUp: <s-up>
+    prevBlock: <left>
+    nextBlock: <right>
+    prevBlock-alt: h
+    nextBlock-alt: i
+    nextBlock-alt2: <tab>
+    prevBlock-alt2: <backtab>
+    jumpToBlock:
+      - "1"
+      - "2"
+      - "3"
+      - "4"
+      - "5"
+    focusMainView: "0"
+    nextMatch: "k"
+    prevMatch: "K"
+    startSearch: /
+    optionMenu: <disabled>
+    optionMenu-alt1: '?'
+    select: <space>
+    goInto: <enter>
+    confirm: <enter>
+    confirmMenu: <enter>
+    confirmSuggestion: <enter>
+    confirmInEditor: <a-enter>
+    confirmInEditor-alt: <c-s>
+    remove: d
+    new: "n"
+    edit: j
+    openFile: o
+    scrollUpMain: <pgup>
+    scrollDownMain: <pgdown>
+    scrollUpMain-alt1: E
+    scrollDownMain-alt1: N
+    scrollUpMain-alt2: <c-u>
+    scrollDownMain-alt2: <c-d>
+    executeShellCommand: ':'
+    createRebaseOptionsMenu: m
+
+    # 'Files' appended for legacy reasons
+    pushFiles: P
+
+    # 'Files' appended for legacy reasons
+    pullFiles: p
+    refresh: R
+    createPatchOptionsMenu: <c-p>
+    nextTab: ']'
+    prevTab: '['
+    nextScreenMode: +
+    prevScreenMode: _
+    cyclePagers: '|'
+    undo: z
+    redo: Z
+    filteringMenu: <c-s>
+    diffingMenu: W
+    diffingMenu-alt: <c-j>
+    copyToClipboard: <c-o>
+    openRecentRepos: <c-r>
+    submitEditorText: <enter>
+    extrasMenu: '@'
+    toggleWhitespaceInDiffView: <c-w>
+    increaseContextInDiffView: '}'
+    decreaseContextInDiffView: '{'
+    increaseRenameSimilarityThreshold: )
+    decreaseRenameSimilarityThreshold: (
+    openDiffTool: <c-t>
+  status:
+    checkForUpdate: u
+    recentRepos: <enter>
+    allBranchesLogGraph: a
+  files:
+    commitChanges: c
+    commitChangesWithoutHook: w
+    amendLastCommit: A
+    commitChangesWithEditor: C
+    findBaseCommitForFixup: <c-f>
+    confirmDiscard: x
+    ignoreFile: l
+    refreshFiles: r
+    stashAllChanges: s
+    viewStashOptions: S
+    toggleStagedAll: a
+    viewResetOptions: D
+    fetch: f
+    toggleTreeView: '`'
+    openMergeOptions: M
+    openStatusFilter: <c-b>
+    copyFileInfoToClipboard: "y"
+    collapseAll: '-'
+    expandAll: =
+  branches:
+    createPullRequest: o
+    viewPullRequestOptions: O
+    copyPullRequestURL: <c-y>
+    checkoutBranchByName: c
+    forceCheckoutBranch: F
+    checkoutPreviousBranch: '-'
+    rebaseBranch: r
+    renameBranch: R
+    mergeIntoCurrentBranch: M
+    moveCommitsToNewBranch: "K"
+    viewGitFlowOptions: l
+    fastForward: f
+    createTag: T
+    pushTag: P
+    setUpstream: u
+    fetchRemote: f
+    addForkRemote: F
+    sortOrder: s
+  worktrees:
+    viewWorktreeOptions: w
+  commits:
+    squashDown: s
+    renameCommit: r
+    renameCommitWithEditor: R
+    viewResetOptions: g
+    markCommitAsFixup: f
+    setFixupMessage: c
+    createFixupCommit: F
+    squashAboveCommits: S
+    moveDownCommit: <c-n>
+    moveUpCommit: <c-e>
+    amendToCommit: A
+    resetCommitAuthor: a
+    pickCommit: p
+    revertCommit: t
+    cherryPickCopy: C
+    pasteCommits: V
+    markCommitAsBaseForRebase: B
+    tagCommit: T
+    checkoutCommit: <space>
+    resetCherryPick: <c-R>
+    copyCommitAttributeToClipboard: "y"
+    openLogMenu: <c-l>
+    openInBrowser: o
+    viewBisectOptions: b
+    startInteractiveRebase: l
+    selectCommitsOfCurrentBranch: '*'
+  amendAttribute:
+    resetAuthor: a
+    setAuthor: A
+    addCoAuthor: c
+  stash:
+    popStash: g
+    renameStash: r
+  commitFiles:
+    checkoutCommitFile: c
+  main:
+    toggleSelectHunk: a
+    pickBothHunks: b
+    editSelectHunk: J
+  submodules:
+    init: l
+    update: u
+    bulkMenu: b
+  commitMessage:
+    commitMenu: <c-o>
diff --git a/.config/luastatus/alsa.lua b/.config/luastatus/alsa.lua
new file mode 100644
index 0000000..fb97270
--- /dev/null
+++ b/.config/luastatus/alsa.lua
@@ -0,0 +1,23 @@
+widget = {
+  plugin = 'alsa',
+  cb = function(t)
+    local symbol = '󰖀'
+    if t.mute then
+      return { full_text = '  󰝟  ', color = '#ed8796' }
+    else
+      local percent = (t.vol.cur - t.vol.min) / (t.vol.max - t.vol.min) * 100
+      if percent <= 30 then
+        symbol = '󰕿'
+      elseif percent >= 70 then
+        symbol = '󰕾'
+      end
+      return { full_text = string.format('%s%3d%%', symbol, math.floor(0.5 + percent)), color = '#b7bdf8' }
+    end
+  end,
+  event = [[
+        local t = ...
+        if t.button == 1 then
+            os.execute('pactl set-sink-mute @DEFAULT_SINK@ toggle &')
+        end
+    ]],
+}
diff --git a/.config/luastatus/battery.lua b/.config/luastatus/battery.lua
new file mode 100644
index 0000000..459599e
--- /dev/null
+++ b/.config/luastatus/battery.lua
@@ -0,0 +1,57 @@
+local function read(path)
+  local f = io.open(path)
+  if not f then return nil end
+  local v = tonumber(f:read('*l'))
+  f:close()
+  return v
+end
+
+widget = {
+  plugin = 'timer',
+  opts = { period = 2 },
+  cb = function()
+    local base        = '/sys/class/power_supply/macsmc-battery/'
+
+    local energy_now  = read(base .. 'energy_now')
+    local energy_full = read(base .. 'energy_full')
+    local status_f    = io.open(base .. 'status')
+
+    if not energy_now or not energy_full or not status_f then
+      return { { full_text = 'bat ?' } }
+    end
+
+    local status = status_f:read('*l')
+    status_f:close()
+
+    local capacity = math.floor(energy_now / energy_full * 100 + 0.5)
+
+    local text_color = '#ffffff'
+    local battery_symbol = ' '
+
+    if capacity < 30 then
+      text_color = '#ed8796'
+      battery_symbol = '󰁼'
+    elseif capacity > 70 then
+      text_color = '#a6da95'
+      battery_symbol = '󰂁'
+    else
+      text_color = '#eed49f'
+      battery_symbol = '󰁾'
+    end
+
+    local symbol = ({
+      Charging    = '󱐋',
+      Discharging = battery_symbol,
+    })[status] or ' '
+
+    return {
+      { full_text = string.format('%s %2d%%', symbol, capacity), color = text_color }
+    }
+  end,
+  event = [[
+        local t = ...
+        if t.button == 1 then
+            os.execute('~/.local/bin/rofi-ppd &')
+        end
+    ]],
+}
diff --git a/.config/luastatus/playerctl.lua b/.config/luastatus/playerctl.lua
new file mode 100644
index 0000000..a3e743c
--- /dev/null
+++ b/.config/luastatus/playerctl.lua
@@ -0,0 +1,43 @@
+local player = 'jellyfin-tui'
+
+widget = {
+  plugin = 'timer',
+  opts = { period = 2 },
+  cb = function()
+
+    local handle = io.popen('playerctl -p ' .. player .. ' status')
+    local playerctl_status = string.sub(handle:read("*a"), 1, -2)
+    handle:close()
+
+    local symbol = '󰏤'
+
+    if (playerctl_status == 'Playing') or (playerctl_status == 'Paused') then
+      local handle = io.popen('playerctl -p ' .. player ..' metadata title')
+      local playerctl_title = string.sub(handle:read("*a"), 1, -2)
+      handle:close()
+
+      local handle = io.popen('playerctl -p ' .. player .. ' metadata artist')
+      local playerctl_artist = string.sub(handle:read("*a"), 1, -2)
+      handle:close()
+
+      if playerctl_status == 'Playing' then
+        symbol = '󰐊'
+      end
+
+      return {
+        { full_text = string.format('%s - %s %s', playerctl_artist, playerctl_title, symbol), color = "#f2cdcd" }
+      }
+    end
+
+    return {
+      { full_text = " "}
+    }
+  end,
+  -- TODO: Figure out if this can stop being hardcoded
+  event = [[
+        local t = ...
+        if t.button == 1 then
+            os.execute('playerctl -p jellyfin-tui play-pause')
+        end
+    ]],
+}
diff --git a/.config/luastatus/separator.lua b/.config/luastatus/separator.lua
new file mode 100644
index 0000000..1a3ef01
--- /dev/null
+++ b/.config/luastatus/separator.lua
@@ -0,0 +1,6 @@
+widget = {
+  plugin = 'fs',
+  cb = function()
+    return { full_text = "|", color = "#333333" }
+  end,
+}
diff --git a/.config/luastatus/time-date.lua b/.config/luastatus/time-date.lua
new file mode 100644
index 0000000..8d5bfe7
--- /dev/null
+++ b/.config/luastatus/time-date.lua
@@ -0,0 +1,13 @@
+local months = {'Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Sep', 'Out', 'Nov', 'Dez'}
+local days = {'Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', ''}
+
+widget = {
+    plugin = 'timer',
+    cb = function()
+        local d = os.date('*t')
+        return {
+            {full_text = string.format('%s %d %s', days[d.wday] , d.day, months[d.month])},
+            {full_text = string.format('%02d:%02d ', d.hour, d.min)},
+        }
+    end,
+}
diff --git a/.config/luastatus/wireless.lua b/.config/luastatus/wireless.lua
new file mode 100644
index 0000000..e3d53d7
--- /dev/null
+++ b/.config/luastatus/wireless.lua
@@ -0,0 +1,70 @@
+local MIN_DBM, MAX_DBM = -90, -20
+local COLOR_DIM = '#709080'
+
+local function clamp(x, lo, hi)
+  if x < lo then return lo end
+  if x > hi then return hi end
+  return x
+end
+
+local function make_wifi_level(dbm)
+  dbm = clamp(dbm, MIN_DBM, MAX_DBM)
+
+  -- Normalize to [0, 1]
+  local t = (dbm - MIN_DBM) / (MAX_DBM - MIN_DBM)
+
+  local level
+  if t < 0.25 then
+    level = '󰢿'
+  elseif t < 0.50 then
+    level = '󰢼'
+  elseif t < 0.75 then
+    level = '󰢽'
+  else
+    level = '󰢾'
+  end
+
+  return {
+    full_text = level,
+    color = COLOR_DIM,
+  }
+end
+
+widget = {
+  plugin = 'network-linux',
+  opts = {
+    wireless = true,
+    timeout = 10,
+  },
+  cb = function(t)
+    if not t then
+      return nil
+    end
+    local r = {}
+    for iface, params in pairs(t) do
+      if params.wireless then
+        if params.wireless.ssid then
+          r[#r + 1] = {
+            full_text = params.wireless.ssid,
+            color = COLOR_DIM,
+          }
+        end
+        if params.wireless.signal_dbm then
+          r[#r + 1] = make_wifi_level(params.wireless.signal_dbm)
+        end
+      elseif iface ~= 'lo' and (params.ipv4 or params.ipv6) then
+        r[#r + 1] = {
+          full_text = string.format('[%s]', iface),
+          color = COLOR_DIM,
+        }
+      end
+    end
+    return r
+  end,
+  event = [[
+        local t = ...
+        if t.button == 1 then
+            os.execute('~/.local/bin/rofi-wifimenu &')
+        end
+    ]],
+}
diff --git a/.config/ly/config.ini b/.config/ly/config.ini
new file mode 100644
index 0000000..f70ca36
--- /dev/null
+++ b/.config/ly/config.ini
@@ -0,0 +1,265 @@
+# Allow empty password or not when authenticating
+allow_empty_password = false
+
+# The active animation
+animation = none
+
+# Stop the animation after some time
+animation_timeout_sec = 0
+
+# The character used to mask the password
+asterisk = *
+
+# The number of failed authentications before a special animation is played... ;)
+auth_fails = 10
+
+# Identifier for battery whose charge to display at top left
+battery_id = macsmc-battery
+
+# Automatic login configuration
+# PAM service name to use for automatic login
+auto_login_service = ly-autologin
+
+# Session name to launch automatically
+auto_login_session = null
+
+# Username to automatically log in
+auto_login_user = null
+
+# Background color id
+bg = 0x00000000
+
+# Change the state and language of the big clock
+bigclock = en
+
+# Set bigclock to 12-hour notation.
+bigclock_12hr = false
+
+# Set bigclock to show the seconds.
+bigclock_seconds = false
+
+# Blank main box background
+blank_box = true
+
+# Border foreground color id
+border_fg = 0x00FFFFFF
+
+# Title to show at the top of the main box
+box_title = null
+
+# Brightness decrease command
+brightness_down_cmd = /usr/bin/brightnessctl -q -n s 10%-
+
+# Brightness decrease key, or null to disable
+brightness_down_key = F5
+
+# Brightness increase command
+brightness_up_cmd = /usr/bin/brightnessctl -q -n s +10%
+
+# Brightness increase key, or null to disable
+brightness_up_key = F6
+
+# Erase password input on failure
+clear_password = true
+
+# Format string for clock in top right corner (see strftime specification). Example: %c
+clock = null
+
+# CMatrix animation foreground color id
+cmatrix_fg = 0x0000FF00
+
+# CMatrix animation character string head color id
+cmatrix_head_col = 0x01FFFFFF
+
+# CMatrix animation minimum codepoint. It uses a 16-bit integer
+cmatrix_min_codepoint = 0x21
+
+# CMatrix animation maximum codepoint. It uses a 16-bit integer
+cmatrix_max_codepoint = 0x7B
+
+# Color mixing animation first color id
+colormix_col1 = 0x00FF0000
+
+# Color mixing animation second color id
+colormix_col2 = 0x000000FF
+
+# Color mixing animation third color id
+colormix_col3 = 0x20000000
+
+# Custom sessions directory
+custom_sessions = /etc/ly/custom-sessions
+
+# Input box active by default on startup
+default_input = password
+
+# DOOM animation fire height (1 thru 9)
+doom_fire_height = 6
+
+# DOOM animation fire spread (0 thru 4)
+doom_fire_spread = 2
+
+# DOOM animation custom top color (low intensity flames)
+doom_top_color = 0x009F2707
+
+# DOOM animation custom middle color (medium intensity flames)
+doom_middle_color = 0x00C78F17
+
+# DOOM animation custom bottom color (high intensity flames)
+doom_bottom_color = 0x00FFFFFF
+
+# Dur file path
+dur_file_path = /etc/ly/example.dur
+
+# Dur offset x direction
+dur_x_offset = 0
+
+# Dur offset y direction
+dur_y_offset = 0
+
+# Set margin to the edges of the DM (useful for curved monitors)
+edge_margin = 0
+
+# Error background color id
+error_bg = 0x00000000
+
+# Error foreground color id
+error_fg = 0x01FF0000
+
+# Foreground color id
+fg = 0x00FFFFFF
+
+# Render true colors (if supported)
+full_color = true
+
+# Game of Life entropy interval (0 = disabled, >0 = add entropy every N generations)
+gameoflife_entropy_interval = 10
+
+# Game of Life animation foreground color id
+gameoflife_fg = 0x0000FF00
+
+# Game of Life frame delay (lower = faster animation, higher = slower)
+gameoflife_frame_delay = 6
+
+# Game of Life initial cell density (0.0 to 1.0)
+gameoflife_initial_density = 0.4
+
+# Command executed when pressing hibernate key (can be null)
+hibernate_cmd = null
+
+# Specifies the key used for hibernate (F1-F12)
+hibernate_key = F4
+
+# Remove main box borders
+hide_borders = false
+
+# Remove power management command hints
+hide_key_hints = false
+
+# Remove keyboard lock states from the top right corner
+hide_keyboard_locks = false
+
+# Remove version number from the top left corner
+hide_version_string = false
+
+# Command executed when no input is detected for a certain time
+inactivity_cmd = null
+
+# Executes a command after a certain amount of seconds
+inactivity_delay = 0
+
+# Initial text to show on the info line
+initial_info_text = null
+
+# Input boxes length
+input_len = 34
+
+# Active language
+lang = en
+
+# Command executed when logging in
+login_cmd = null
+
+# Path for login.defs file (used for listing all local users on the system on
+# Linux)
+login_defs_path = /etc/login.defs
+
+# Command executed when logging out
+logout_cmd = null
+
+# General log file path
+ly_log = /var/log/ly.log
+
+# Main box horizontal margin
+margin_box_h = 2
+
+# Main box vertical margin
+margin_box_v = 1
+
+# Event timeout in milliseconds
+min_refresh_delta = 5
+
+# Set numlock on/off at startup
+numlock = false
+
+# Default path
+path = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+
+# Command executed when pressing restart_key
+restart_cmd = /sbin/shutdown -r now
+
+# Specifies the key used for restart (F1-F12)
+restart_key = F2
+
+# Save the current desktop and login as defaults, and load them on startup
+save = true
+
+# Service name (set to ly to use the provided pam config file)
+service_name = ly
+
+# Session log file path
+session_log = .local/state/ly-session.log
+
+# Setup command
+setup_cmd = /etc/ly/setup.sh
+
+# Command executed when pressing shutdown_key
+shutdown_cmd = /sbin/shutdown -a now
+
+# Specifies the key used for shutdown (F1-F12)
+shutdown_key = F1
+
+# Command executed when pressing sleep key (can be null)
+sleep_cmd = null
+
+# Specifies the key used for sleep (F1-F12)
+sleep_key = F3
+
+# Command executed when starting Ly (before the TTY is taken control of)
+start_cmd = null
+
+# Center the session name.
+text_in_center = false
+
+# Default vi mode
+vi_default_mode = normal
+
+# Enable vi keybindings
+vi_mode = false
+
+# Wayland desktop environments
+waylandsessions = /usr/share/wayland-sessions
+
+# Xorg server command
+x_cmd = /usr/bin/X
+
+# Xorg virtual terminal number
+x_vt = null
+
+# Xorg xauthority edition tool
+xauth_cmd = /usr/bin/xauth
+
+# xinitrc
+xinitrc = ~/.xinitrc
+
+# Xorg desktop environments
+xsessions = /usr/share/xsessions
diff --git a/.config/mc/hotlist b/.config/mc/hotlist
deleted file mode 100644
index 47b50be..0000000
--- a/.config/mc/hotlist
+++ /dev/null
@@ -1,2 +0,0 @@
-ENTRY "/home/venomade/.build/suckless" URL "/home/venomade/.build/suckless"
-ENTRY "/home/venomade/Documents" URL "/home/venomade/Documents"
diff --git a/.config/mc/hotlist.bak b/.config/mc/hotlist.bak
deleted file mode 100644
index 4dbffb7..0000000
--- a/.config/mc/hotlist.bak
+++ /dev/null
@@ -1 +0,0 @@
-ENTRY "/home/venomade/.build/suckless" URL "/home/venomade/.build/suckless"
diff --git a/.config/mc/ini b/.config/mc/ini
deleted file mode 100644
index b3a7bb1..0000000
--- a/.config/mc/ini
+++ /dev/null
@@ -1,167 +0,0 @@
-[Midnight-Commander]
-verbose=true
-shell_patterns=true
-auto_save_setup=true
-preallocate_space=false
-auto_menu=false
-use_internal_view=false
-use_internal_edit=false
-clear_before_exec=true
-confirm_delete=true
-confirm_overwrite=true
-confirm_execute=false
-confirm_history_cleanup=true
-confirm_exit=false
-confirm_directory_hotlist_delete=false
-confirm_view_dir=false
-safe_delete=false
-safe_overwrite=false
-use_8th_bit_as_meta=false
-mouse_move_pages_viewer=true
-mouse_close_dialog=false
-fast_refresh=false
-drop_menus=false
-wrap_mode=true
-old_esc_mode=true
-cd_symlinks=true
-show_all_if_ambiguous=false
-alternate_plus_minus=false
-only_leading_plus_minus=true
-show_output_starts_shell=false
-xtree_mode=false
-file_op_compute_totals=true
-classic_progressbar=true
-use_netrc=true
-ftpfs_always_use_proxy=false
-ftpfs_use_passive_connections=true
-ftpfs_use_passive_connections_over_proxy=false
-ftpfs_use_unix_list_options=true
-ftpfs_first_cd_then_ls=true
-ignore_ftp_chattr_errors=true
-editor_fill_tabs_with_spaces=false
-editor_return_does_auto_indent=true
-editor_backspace_through_tabs=false
-editor_fake_half_tabs=true
-editor_option_save_position=true
-editor_option_auto_para_formatting=false
-editor_option_typewriter_wrap=false
-editor_edit_confirm_save=true
-editor_syntax_highlighting=true
-editor_persistent_selections=true
-editor_drop_selection_on_copy=true
-editor_cursor_beyond_eol=false
-editor_cursor_after_inserted_block=false
-editor_visible_tabs=true
-editor_visible_spaces=true
-editor_line_state=false
-editor_simple_statusbar=false
-editor_check_new_line=false
-editor_show_right_margin=false
-editor_group_undo=false
-editor_state_full_filename=false
-editor_ask_filename_before_edit=false
-nice_rotating_dash=true
-shadows=true
-mcview_remember_file_position=false
-auto_fill_mkdir_name=true
-copymove_persistent_attr=true
-pause_after_run=1
-mouse_repeat_rate=100
-double_click_speed=250
-old_esc_mode_timeout=1000000
-max_dirt_limit=10
-num_history_items_recorded=60
-vfs_timeout=60
-ftpfs_directory_timeout=900
-ftpfs_retry_seconds=30
-shell_directory_timeout=900
-editor_tab_spacing=8
-editor_word_wrap_line_length=72
-editor_option_save_mode=0
-editor_backup_extension=~
-editor_filesize_threshold=64M
-editor_stop_format_chars=-+*\\,.;:&>
-mcview_eof=
-skin=seasons-winter16M
-filepos_max_saved_entries=1024
-
-use_file_to_guess_type=true
-fish_directory_timeout=900
-
-[Layout]
-output_lines=0
-left_panel_size=160
-top_panel_size=0
-message_visible=true
-keybar_visible=false
-xterm_title=true
-command_prompt=true
-menubar_visible=false
-free_space=false
-horizontal_split=false
-vertical_equal=true
-horizontal_equal=true
-
-[Misc]
-timeformat_recent=%b %e %H:%M
-timeformat_old=%b %e  %Y
-ftp_proxy_host=gate
-ftpfs_password=anonymous@
-display_codepage=UTF-8
-source_codepage=Other_8_bit
-autodetect_codeset=
-clipboard_store=
-clipboard_paste=
-
-spell_language=en
-
-[Colors]
-base_color=
-xterm-kitty=
-color_terminals=
-
-xterm-256color=
-linux=
-
-[Panels]
-simple_swap=false
-show_mini_info=true
-kilobyte_si=false
-mix_all_files=false
-show_backups=true
-show_dot_files=true
-fast_reload=false
-fast_reload_msg_shown=false
-mark_moves_down=true
-reverse_files_only=true
-auto_save_setup_panels=false
-navigate_with_arrows=false
-panel_scroll_pages=true
-panel_scroll_center=false
-mouse_move_pages=true
-filetype_mode=true
-permission_mode=false
-torben_fj_mode=false
-quick_search_mode=0
-select_flags=6
-
-[FindFile]
-file_case_sens=true
-file_shell_pattern=true
-file_find_recurs=true
-follow_symlinks=false
-file_skip_hidden=false
-file_all_charsets=false
-content_case_sens=true
-content_regexp=false
-content_first_hit=false
-content_whole_words=false
-content_all_charsets=false
-ignore_dirs_enable=true
-ignore_dirs=
-
-[Panelize]
-Find *.orig after patching=find . -name \\*.orig -print
-Find rejects after patching=find . -name \\*.rej -print
-Modified git files=git ls-files --modified
-Find SUID and SGID programs=find . \\( \\( -perm -04000 -a -perm /011 \\) -o \\( -perm -02000 -a -perm /01 \\) \\) -print
diff --git a/.config/mc/panels.ini b/.config/mc/panels.ini
deleted file mode 100644
index d22858b..0000000
--- a/.config/mc/panels.ini
+++ /dev/null
@@ -1,37 +0,0 @@
-[New Left Panel]
-display=listing
-reverse=false
-case_sensitive=true
-exec_first=false
-sort_order=name
-list_mode=full
-brief_cols=2
-user_format=half type name | size | perm
-user_status0=half type name | size | perm
-user_status1=half type name | size | perm
-user_status2=half type name | size | perm
-user_status3=half type name | size | perm
-user_mini_status=false
-filter_flags=7
-list_format=full
-
-[New Right Panel]
-display=listing
-reverse=false
-case_sensitive=true
-exec_first=false
-sort_order=name
-list_mode=full
-brief_cols=2
-user_format=half type name | size | perm
-user_status0=half type name | size | perm
-user_status1=half type name | size | perm
-user_status2=half type name | size | perm
-user_status3=half type name | size | perm
-user_mini_status=false
-filter_flags=7
-list_format=full
-
-[Dirs]
-current_is_left=true
-other_dir=/home/venomade/.build/suckless/patches/st
diff --git a/.config/mimeapps.list b/.config/mimeapps.list
new file mode 100644
index 0000000..f31391c
--- /dev/null
+++ b/.config/mimeapps.list
@@ -0,0 +1,21 @@
+
+[Default Applications]
+inode/directory=yazi.desktop
+image/bmp=imv.desktop
+image/gif=imv.desktop
+image/jpeg=imv.desktop
+image/jpg=imv.desktop
+image/pjpeg=imv.desktop
+image/png=imv.desktop
+image/tiff=imv.desktop
+image/heif=imv.desktop
+image/avif=imv.desktop
+image/x-bmp=imv.desktop
+image/x-pcx=imv.desktop
+image/x-png=imv.desktop
+image/x-portable-anymap=imv.desktop
+image/x-portable-bitmap=imv.desktop
+image/x-portable-graymap=imv.desktop
+image/x-portable-pixmap=imv.desktop
+image/x-tga=imv.desktop
+image/x-xbitmap=imv.desktop
diff --git a/.config/nvim/.luarc.json b/.config/nvim/.luarc.json
index c5a6ffc..bd8a14b 100644
--- a/.config/nvim/.luarc.json
+++ b/.config/nvim/.luarc.json
@@ -1,21 +1,6 @@
 {
     "$schema": "https://raw.githubusercontent.com/LuaLS/vscode-lua/master/setting/schema.json",
     "Lua.runtime.version": "LuaJIT",
-    "Lua.runtime.path": [
-        "?.lua",
-        "?/init.lua",
-        "/Users/venomade/.luarocks/share/lua/5.4/?.lua",
-        "/Users/venomade/.luarocks/share/lua/5.4/?/init.lua",
-        "/opt/homebrew/share/lua/5.4/?.lua",
-        "/opt/homebrew/share/lua/5.4/?/init.lua",
-        "./stubs/?.lua",
-        "./stubs/?/init.lua"
-    ],
-    "Lua.workspace.library": [
-        "/Users/venomade/.luarocks/share/lua/5.4",
-        "/opt/homebrew/share/lua/5.4",
-        "./stubs"
-    ],
     "diagnostics.globals": ["vim"],
     "workspace.checkThirdParty": false,
     "workspace.library": [
diff --git a/.config/nvim/lua/config/options.lua b/.config/nvim/lua/config/options.lua
index fd1de92..559f4c7 100644
--- a/.config/nvim/lua/config/options.lua
+++ b/.config/nvim/lua/config/options.lua
@@ -30,7 +30,7 @@ vim.opt.splitright = true
 
 vim.opt.encoding = "utf-8"
 
-vim.opt.shell = "zsh"
+vim.opt.shell = "bash"
 
 vim.opt.mouse = "a"
 
@@ -55,7 +55,7 @@ vim.wo.fillchars='eob: '
 vim.opt.conceallevel = 3
 
 -- Window Borders
-vim.o.winborder = 'rounded'
+vim.o.winborder = 'single'
 
 -- Remove Whitespaces on File Save
 vim.api.nvim_create_autocmd({ "BufWritePre" }, {
@@ -105,6 +105,3 @@ vim.fn.sign_define("LineNrDiagnosticHint",  { text = "", texthl = "LineNrDiagnos
 vim.api.nvim_create_autocmd({ "DiagnosticChanged", "BufEnter", "CursorHold" }, {
   callback = set_line_number_highlight,
 })
-
--- TODO: Put somewhere else (for llm.nvim)
-vim.fn.setenv("LLM_KEY", "NONE")
diff --git a/.config/nvim/lua/manager.lua b/.config/nvim/lua/manager.lua
index da5a221..f450d31 100644
--- a/.config/nvim/lua/manager.lua
+++ b/.config/nvim/lua/manager.lua
@@ -21,6 +21,6 @@ require("lazy").setup({
   spec = {
     { import = "plugins" },
   },
-  install = { colorscheme = { "habamax" } },
+  install = { colorscheme = { "modus" } },
   checker = { enabled = true, notify = false },
 })
diff --git a/.config/nvim/lua/plugins/cmp.lua b/.config/nvim/lua/plugins/cmp.lua
index 79bf9ac..541e62c 100644
--- a/.config/nvim/lua/plugins/cmp.lua
+++ b/.config/nvim/lua/plugins/cmp.lua
@@ -12,7 +12,10 @@ return {
     local cmp = require('cmp')
     local lspkind = require('lspkind')
     cmp.setup({
-      preselect = 'none',
+      -- preselect = cmp.PreselectMode.None,
+      completion = {
+        completeopt = "menu,menuone,noinsert",
+      },
       window = {
         completion = cmp.config.window.bordered({}),
         documentation = cmp.config.window.bordered({}),
@@ -23,11 +26,10 @@ return {
         end
       },
       mapping = cmp.mapping.preset.insert({
-        -- ['<CR>'] = cmp.mapping.confirm({ select = true }),
-        ['<C-t>'] = cmp.mapping.complete(),
-        ['<CR>'] = cmp.mapping.confirm(),
-        ['<Tab>'] = cmp.mapping.select_next_item(),
-        ['<S-Tab>'] = cmp.mapping.select_prev_item(),
+        ['<Tab>'] = cmp.mapping.confirm({ select = true }),
+        ['<C-n>'] = cmp.mapping.select_next_item(),
+        ['<C-p>'] = cmp.mapping.select_prev_item(),
+        ['<C-g>'] = cmp.mapping.abort(),
       }),
       sources = cmp.config.sources(
         {
@@ -53,8 +55,43 @@ return {
 
     local capabilities = require('cmp_nvim_lsp').default_capabilities()
     vim.lsp.config('lua_ls', {
-      capabilities = capabilities
+      cmd = { '/home/venomade/.local/share/lua-language-server/bin/lua-language-server' },
+      capabilities = capabilities,
+      root_markers = {
+        ".luarc.json",
+        ".luarc.jsonc",
+        ".git",
+      },
+      settings = {
+        Lua = {
+          runtime = {
+            version = 'Lua 5.4',
+            -- luarocks path --lr-path | tr ';' '\n' | sed 's/?.*//' | sort -u
+            path = {
+              '?.lua',
+              '?/init.lua',
+              '/home/venomade/.luarocks/share/lua/5.4/?.lua',
+              '/home/venomade/.luarocks/share/lua/5.4/?/init.lua',
+              '/usr/share/lua/5.4/?.lua',
+              '/usr/share/lua/5.4/?/init.lua',
+              './stubs/?.lua',
+              './stubs/?/init.lua'
+            },
+          },
+          workspace = {
+            library = {
+              '/home/venomade/.luarocks/share/lua/5.4',
+              '/usr/share/lua/5.4',
+              './stubs'
+            },
+          },
+          diagnostics = {
+            enable = true,
+          },
+        },
+      },
     })
+
     vim.lsp.enable('lua_ls')
     vim.lsp.config('clangd', {
       capabilities = capabilities
diff --git a/.config/nvim/lua/plugins/flutter.lua b/.config/nvim/lua/plugins/flutter.lua
deleted file mode 100644
index a6d3506..0000000
--- a/.config/nvim/lua/plugins/flutter.lua
+++ /dev/null
@@ -1,11 +0,0 @@
-return {
-    'nvim-flutter/flutter-tools.nvim',
-    lazy = false,
-    dependencies = {
-        'nvim-lua/plenary.nvim',
-        -- 'stevearc/dressing.nvim', -- optional for vim.ui.select
-    },
-    config = function ()
-      require('flutter-tools').setup({})
-    end,
-}
diff --git a/.config/nvim/lua/plugins/fterm.lua b/.config/nvim/lua/plugins/fterm.lua
deleted file mode 100644
index dfc9375..0000000
--- a/.config/nvim/lua/plugins/fterm.lua
+++ /dev/null
@@ -1,14 +0,0 @@
-return {
-  "numToStr/FTerm.nvim",
-  config = function()
-    require("FTerm").setup({
-      border = "bold",
-      dimensions = {
-        height = 0.9,
-        width = 0.9,
-      },
-    })
-    vim.keymap.set('n', '<A-i>', '<CMD>lua require("FTerm").toggle()<CR>')
-    vim.keymap.set('t', '<A-i>', '<C-\\><C-n><CMD>lua require("FTerm").toggle()<CR>')
-  end,
-}
diff --git a/.config/nvim/lua/plugins/init.lua b/.config/nvim/lua/plugins/init.lua
deleted file mode 100644
index 4c12912..0000000
--- a/.config/nvim/lua/plugins/init.lua
+++ /dev/null
@@ -1,14 +0,0 @@
-return {
-  require('plugins.theme'),
-  require('plugins.autopairs'),
-  require('plugins.treesitter'),
-  require('plugins.rainbow-delimiters'),
-  require('plugins.telescope'),
-  require('plugins.lualine'),
-  require('plugins.statuscol'),
-  require('plugins.oil'),
-  require('plugins.cmp'),
-  require('plugins.lastplace'),
-  require('plugins.orgmode'),
-  require('plugins.which-key'),
-}
diff --git a/.config/nvim/lua/plugins/lastplace.lua b/.config/nvim/lua/plugins/lastplace.lua
index 6c9f074..a393a90 100644
--- a/.config/nvim/lua/plugins/lastplace.lua
+++ b/.config/nvim/lua/plugins/lastplace.lua
@@ -4,3 +4,4 @@ return {
     require'nvim-lastplace'.setup({})
   end
 }
+
diff --git a/.config/nvim/lua/plugins/lualine.lua b/.config/nvim/lua/plugins/lualine.lua
index cd3d6f1..5412061 100644
--- a/.config/nvim/lua/plugins/lualine.lua
+++ b/.config/nvim/lua/plugins/lualine.lua
@@ -7,6 +7,18 @@ return {
         icons_enabled = true,
         component_separators = { left = '|', right = '|'},
         section_separators = { left = '', right = ''},
+        theme = {
+          normal = {
+            a = { bg = '#000000' },
+            b = { bg = '#000000' },
+            c = { bg = '#000000' },
+          },
+          inactive = {
+            a = { bg = '#000000' },
+            b = { bg = '#000000' },
+            c = { bg = '#000000' },
+          }
+        },
       },
       sections = {
         lualine_a = {"mode", {
diff --git a/.config/nvim/lua/plugins/modus-themes.lua b/.config/nvim/lua/plugins/modus-themes.lua
new file mode 100644
index 0000000..3058078
--- /dev/null
+++ b/.config/nvim/lua/plugins/modus-themes.lua
@@ -0,0 +1,13 @@
+return {
+  "miikanissi/modus-themes.nvim",
+  priority = 1000,
+  config = function ()
+    require("modus-themes").setup({
+      style = "modus_vivendi",
+      sign_column_background = false,
+      line_nr_column_background = false,
+    })
+    vim.cmd.colorscheme("modus")
+  end
+}
+
diff --git a/.config/nvim/lua/plugins/orgmode.lua b/.config/nvim/lua/plugins/orgmode.lua
deleted file mode 100644
index f35d7b4..0000000
--- a/.config/nvim/lua/plugins/orgmode.lua
+++ /dev/null
@@ -1,31 +0,0 @@
-return {
-  'nvim-orgmode/orgmode',
-  event = 'VeryLazy',
-  ft = { 'org' },
-  config = function()
-    -- Setup orgmode
-    require('orgmode').setup({
-      org_agenda_files = '~/orgfiles/**/*',
-      org_default_notes_file = '~/orgfiles/refile.org',
-      org_hide_emphasis_markers = true,
-    })
-
-    -- Enable line wrapping and line breaking for Org files
-    vim.api.nvim_create_augroup("OrgMode", { clear = true })
-    vim.api.nvim_create_autocmd("FileType", {
-      pattern = "org",
-      callback = function()
-        vim.opt_local.wrap = true
-        vim.opt_local.linebreak = true
-        vim.opt_local.textwidth = 80
-      end,
-    })
-
-    -- AUTHORS_NOTE: If you are using nvim-treesitter with ~ensure_installed = "all"~ option
-    -- add ~org~ to ignore_install
-    -- require('nvim-treesitter.configs').setup({
-    --   ensure_installed = 'all',
-    --   ignore_install = { 'org' },
-    -- })
-  end,
-}
diff --git a/.config/nvim/lua/plugins/markdown.lua b/.config/nvim/lua/plugins/render-markdown.lua
index b003495..65408bc 100644
--- a/.config/nvim/lua/plugins/markdown.lua
+++ b/.config/nvim/lua/plugins/render-markdown.lua
@@ -1,6 +1,6 @@
 return {
     'MeanderingProgrammer/render-markdown.nvim',
-    dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-tree/nvim-web-devicons' },
+    dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-tree/nvim-web-devicons' }, -- if you prefer nvim-web-devicons
     ---@module 'render-markdown'
     ---@type render.md.UserConfig
     opts = {},
diff --git a/.config/nvim/lua/plugins/statuscol.lua b/.config/nvim/lua/plugins/statuscol.lua
deleted file mode 100644
index 15ccef9..0000000
--- a/.config/nvim/lua/plugins/statuscol.lua
+++ /dev/null
@@ -1,6 +0,0 @@
-return {
-  "luukvbaal/statuscol.nvim",
-  config = function()
-    require("statuscol").setup({relculright = true})
-  end,
-}
diff --git a/.config/nvim/lua/plugins/telescope.lua b/.config/nvim/lua/plugins/telescope.lua
index f942dc8..e761994 100644
--- a/.config/nvim/lua/plugins/telescope.lua
+++ b/.config/nvim/lua/plugins/telescope.lua
@@ -2,13 +2,16 @@ return {
   "nvim-telescope/telescope.nvim",
   dependencies = { "nvim-lua/plenary.nvim" },
   config = function()
-    require("telescope").setup({})
+    require("telescope").setup({
+      defaults = {
+        borderchars = { "─", "│", "─", "│", "┌", "┐", "┘", "└" },
+      },
+    })
 
     local tscope = require('telescope.builtin')
     vim.keymap.set("n", "<leader>ff", function()
       local cwd
       if vim.bo.filetype == "oil" then
-        -- For Oil buffers
         cwd = require("oil").get_current_dir()
       else
         cwd = vim.fn.expand("%:p:h")
@@ -25,11 +28,6 @@ return {
       { desc = "Find Buffer" })
     vim.keymap.set('n', '<leader>fh', tscope.help_tags,
       { desc = "Find Help" })
-    -- vim.keymap.set('n', '<leader>fg', function()
-    --   tscope.grep_string(
-    --     { search = vim.fn.input("Grep > "),
-    --     desc = "Find by Grep" });
-    -- end)
     vim.keymap.set('n', '<leader>fg', tscope.live_grep,
       { desc = "Find by Grep" })
     vim.keymap.set('n', '<leader>fr', tscope.oldfiles,
diff --git a/.config/nvim/lua/plugins/theme.lua b/.config/nvim/lua/plugins/theme.lua
deleted file mode 100644
index 995c3dc..0000000
--- a/.config/nvim/lua/plugins/theme.lua
+++ /dev/null
@@ -1,29 +0,0 @@
--- return {
---   "rose-pine/neovim",
---   as = "rose-pine",
---   config = function()
---     require("rose-pine").setup({
---       variant = "main",
---       palette = {
---         main = {
---           base = "#000000",
---           surface = "#000000",
---         }
---       }
---     })
---     vim.opt.termguicolors = true
---     vim.cmd.colorscheme("rose-pine")
---   end,
--- }
-
-return {
-  "catppuccin/nvim",
-  priority = 1000,
-  config = function ()
-    require("catppuccin").setup({
-      flavour = "mocha"
-    })
-    vim.cmd.colorscheme("catppuccin")
-  end,
-  opts = {}
-}
diff --git a/.config/nvim/lua/plugins/todo-comments.lua b/.config/nvim/lua/plugins/todo-comments.lua
index 64f12b7..69f907e 100644
--- a/.config/nvim/lua/plugins/todo-comments.lua
+++ b/.config/nvim/lua/plugins/todo-comments.lua
@@ -2,6 +2,13 @@ return {
   "folke/todo-comments.nvim",
   dependencies = { "nvim-lua/plenary.nvim" },
   opts = {
-  }
+
+  },
+  config = function()
+    require('todo-comments').setup({})
+    vim.keymap.set('n', '<leader>ft', function()
+        vim.cmd('TodoTelescope')
+      end,
+      { desc = "Find Buffer" })
+  end,
 }
--- TODO: Add a bind to :TodoTelescope at '<leader>ft'
diff --git a/.config/nvim/lua/plugins/treesitter.lua b/.config/nvim/lua/plugins/treesitter.lua
deleted file mode 100644
index 88b699b..0000000
--- a/.config/nvim/lua/plugins/treesitter.lua
+++ /dev/null
@@ -1,53 +0,0 @@
--- return {
---   "nvim-treesitter/nvim-treesitter",
---   config = function()
---     require("nvim-treesitter.configs").setup({
---       ensure_installed = {"c", "vimdoc", "markdown", "jsonc", "lua"},
---       sync_install = false,
---       highlight = { enable = true },
---       indent = { enable = true },
---     })
---   end,
--- }
-
-return {
-  "nvim-treesitter/nvim-treesitter",
-  opts = {
-    highlight = { enable = true },
-    indent = { enable = true },
-    ensure_installed = {
-      "bash",
-      "c",
-      "dart",
-      "diff",
-      "go",
-      "html",
-      "javascript",
-      "jsdoc",
-      "json",
-      "jsonc",
-      "lua",
-      "luadoc",
-      "luap",
-      "make",
-      "markdown",
-      "markdown_inline",
-      "printf",
-      "python",
-      "query",
-      "regex",
-      "rust",
-      "toml",
-      "tsx",
-      "typescript",
-      "vim",
-      "vimdoc",
-      "xml",
-      "yaml",
-    },
-  },
-  ---@param opts TSConfig
-  config = function(_, opts)
-    require("nvim-treesitter.configs").setup(opts)
-  end,
-}
diff --git a/.config/nvim/lua/plugins/which-key.lua b/.config/nvim/lua/plugins/which-key.lua
deleted file mode 100644
index 746b399..0000000
--- a/.config/nvim/lua/plugins/which-key.lua
+++ /dev/null
@@ -1,17 +0,0 @@
-return {
-  "folke/which-key.nvim",
-  event = "VeryLazy",
-  opts = {
-    icons = { mappings = false },
-    delay = 1000
-  },
-  keys = {
-    {
-      "<leader>?",
-      function()
-        require("which-key").show({ global = false })
-      end,
-      desc = "Buffer Local Keymaps",
-    },
-  },
-}
diff --git a/.config/nvim/lua/plugins/zen.lua b/.config/nvim/lua/plugins/zen.lua
deleted file mode 100644
index 004aa8c..0000000
--- a/.config/nvim/lua/plugins/zen.lua
+++ /dev/null
@@ -1,24 +0,0 @@
-return {
-  "Pocco81/true-zen.nvim",
-  config = function()
-    require('true-zen').setup({
-      modes = {
-        ataraxis = {
-          padding = {
-            left = 100,
-            right = 100,
-          }
-        },
-        minimalist = {
-          options = {
-            -- Some weird bug fix :/
-            cmdheight = 1
-          }
-        }
-      }
-    })
-
-    vim.keymap.set('n', '<leader>z', require('true-zen.ataraxis').toggle,
-      { desc = "Toggle Zen Mode" })
-  end,
-}
diff --git a/.config/rofi/config.rasi b/.config/rofi/config.rasi
new file mode 100644
index 0000000..c80fd01
--- /dev/null
+++ b/.config/rofi/config.rasi
@@ -0,0 +1,10 @@
+configuration {
+  display-drun: "Applications:";
+  display-windows: "Windows:";
+  drun-display-format: "{icon} {name}";
+  font: "Google Sans 12";
+  modi: "window,run,drun";
+  show-icons: false;
+}
+
+@theme "/home/venomade/.config/rofi/theme.rasi"
diff --git a/.config/rofi/theme.rasi b/.config/rofi/theme.rasi
new file mode 100644
index 0000000..6cac4e6
--- /dev/null
+++ b/.config/rofi/theme.rasi
@@ -0,0 +1,111 @@
+* {
+  font:   "Google Sans 11";
+
+  bg0     : #000000;
+  bg1     : #000000;
+  bg2     : #ffffff;
+  bg3     : #ffffff;
+  fg0     : #ffffff;
+  fg1     : #a9b1d6;
+  fg2     : #737aa2;
+  red     : #f7768e;
+  green   : #9ece6a;
+  yellow  : #e0af68;
+  blue    : #7aa2f7;
+  magenta : #9a7ecc;
+  cyan    : #4abaaf;
+  purple  : #b6a2e9;
+
+  accent: @purple;
+  urgent: @yellow;
+
+  background-color : transparent;
+  text-color       : @fg0;
+
+  margin  : 0;
+  padding : 0;
+  spacing : 0;
+}
+
+element-icon, element-text, scrollbar {
+  cursor: pointer;
+}
+
+window {
+  width    : 280px;
+  background-color: @bg1;
+  border: 1px;
+  border-color: @bg3;
+  border-radius: 0px;
+}
+
+inputbar {
+  spacing  : 8px;
+  padding  : 4px 8px;
+
+  background-color: @bg0;
+}
+
+icon-search, entry, element-icon, element-text {
+  vertical-align: 0.5;
+}
+
+icon-search {
+  expand   : false;
+  filename : "search-symbolic";
+  size     : 14px;
+}
+
+textbox {
+  padding          : 4px 8px;
+  background-color : @bg2;
+}
+
+listview {
+  padding      : 4px 0px;
+  lines        : 12;
+  columns      : 1;
+  scrollbar    : false;
+  fixed-height : false;
+  dynamic      : true;
+}
+
+element {
+  padding : 4px 8px;
+  spacing : 8px;
+}
+
+element normal urgent {
+  text-color: @urgent;
+}
+
+element normal active {
+  text-color: @accent;
+}
+
+element alternate active {
+  text-color: @accent;
+}
+
+element selected {
+  text-color       : @bg1;
+  background-color : @accent;
+}
+
+element selected urgent {
+  background-color: @urgent;
+}
+
+element-icon {
+  size: 0.8em;
+}
+
+element-text {
+  text-color: inherit;
+}
+
+scrollbar {
+  handle-width : 4px;
+  handle-color : @fg2;
+  padding      : 0 4px;
+}
diff --git a/.config/shell/alias b/.config/shell/alias
index 29a7333..627e915 100644
--- a/.config/shell/alias
+++ b/.config/shell/alias
@@ -1,6 +1,9 @@
-alias gvc="ssh git@git.venomade.com"
 alias rgf='rg --files | rg'
-alias ls='ls --color=auto'
+alias ls='eza --icons=auto'
 alias md='mkdir'
 alias ec='emacsclient -nw'
-alias cat='bat -p'
+alias cat='bat -pp'
+alias man='batman'
+alias diff='batdiff'
+alias fzf="fzf --preview 'bat --style=numbers --color=always {}'"
+alias tlbx="toolbox enter"
diff --git a/.config/shell/functions b/.config/shell/functions
new file mode 100644
index 0000000..a300316
--- /dev/null
+++ b/.config/shell/functions
@@ -0,0 +1,16 @@
+gvc() {
+    if [[ $1 == "clone" ]]; then
+        shift
+        git clone git@git.venomade.com:"$@"
+    else
+        ssh git@git.venomade.com "$@"
+    fi
+}
+
+function y() {
+	local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd
+	command yazi "$@" --cwd-file="$tmp"
+	IFS= read -r -d '' cwd < "$tmp"
+	[ "$cwd" != "$PWD" ] && [ -d "$cwd" ] && builtin cd -- "$cwd"
+	rm -f -- "$tmp"
+}
diff --git a/.config/shell/vars b/.config/shell/vars
index a68dea2..2f9c223 100644
--- a/.config/shell/vars
+++ b/.config/shell/vars
@@ -1,12 +1 @@
-export GOPATH="$HOME/.go"
-
-export PATH="$PATH:$GOPATH/bin"
-export PATH="$PATH:$HOME/.local/bin"
-export PATH="$PATH:$HOME/.config/emacs/bin"
-
-export EDITOR=emacs
-
-# export LDFLAGS="-L/opt/homebrew/opt/llvm/lib"
-# export CPPFLAGS="-I/opt/homebrew/opt/llvm/include"
-
-# export CMAKE_PREFIX_PATH="/opt/homebrew/opt/llvm"
+export EDITOR=nvim
diff --git a/.config/sway/config b/.config/sway/config
new file mode 100644
index 0000000..6747a42
--- /dev/null
+++ b/.config/sway/config
@@ -0,0 +1,278 @@
+# Venomade's Sway Config
+
+# Logo key. Use Mod1 for Alt.
+set $mod Mod4
+# Home row direction keys, like vim but colemak
+set $left h
+set $down n
+set $up e
+set $right i
+# Your preferred terminal emulator
+set $term foot
+# Your preferred application launcher
+set $rofi_run rofi -show run
+set $rofi_drun rofi -show drun -show-icons
+# This is a little hacky but I don't know if
+# any other way is possible on wayland.
+set $rofi_cliphist cliphist list \
+                   | rofi -dmenu -p "" \
+                   | cliphist decode \
+                   | wl-copy \
+                   && wtype -M ctrl -M shift -k v -m shift -m ctrl
+
+# Set the Music Player to Control
+set $player jellyfin-tui
+
+# Applications
+set $web_browser brave-browser
+set $file_manager foot -a=floating_foot yazi
+set $music_player foot jellyfin-tui
+
+# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
+output * bg /home/venomade/Pictures/Papes/PurplePhoneLines.jpg fill
+
+# Set Monitor Resolution and Scale
+output eDP-1 resolution 2560x1600 position 0,0 scale 1.66
+
+# Input Configuration
+input * {
+    xkb_layout us
+    xkb_variant colemak
+    # xkb_options caps:ctrl_modifier
+    xkb_options caps:escape
+
+    # tap enabled
+    natural_scroll enabled
+}
+
+### Key bindings
+#
+# Basics:
+#
+    # Start a terminal
+    bindsym $mod+Return exec $term
+
+    # Kill focused window
+    bindsym $mod+q kill
+
+    # Applications
+    bindsym $mod+w exec $web_browser
+    bindsym $mod+y exec $file_manager
+    bindsym $mod+m exec $music_player
+
+    # Start your launcher
+    bindsym $mod+d exec $rofi_drun
+    bindsym $mod+Shift+d exec $rofi_run
+
+    bindsym $mod+v exec $rofi_cliphist
+
+    bindsym $mod+Shift+t exec ~/.local/bin/rofi-translate
+
+    bindsym $mod+Shift+w exec ~/.local/bin/rofi-wifimenu
+
+    bindsym $mod+Shift+s exec ~/.local/bin/take-slurpshot
+    bindsym $mod+s exec sh -c 'grim /tmp/grimshot.png && imv -f /tmp/grimshot.png && rm /tmp/grimshot.png'
+
+    bindsym $mod+Shift+return exec ~/.local/bin/rofi-notes
+    bindsym $mod+Ctrl+Shift+return exec ~/.local/bin/rofi-notes --delete
+
+    # 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+r reload
+
+    # Exit sway (logs you out of your Wayland session)
+    # bindsym $mod+Shift+x 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+x exec ~/.local/bin/rofi-powermenu
+
+    # Lock Screen
+    bindsym $mod+l exec ~/.local/bin/lock-screen
+    bindsym $mod+Shift+l exec ~/.local/bin/lock-screen 0
+#
+# 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
+    # Note: workspaces can have any name you want, not just numbers.
+    # We just use 1-10 as the default.
+# Gestures
+bindgesture swipe:right workspace prev
+bindgesture swipe:left workspace next
+#
+# 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+Shift+b splith
+    # bindsym $mod+Shift+v splitv
+
+    # Switch the current container between different layout styles
+    # bindsym $mod+s layout stacking
+    # bindsym $mod+w layout tabbed
+    # bindsym $mod+f layout toggle split
+
+    # Make the current focus fullscreen
+    bindsym $mod+Shift+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 affect playing audio via PlayerCTL
+    bindsym --locked XF86AudioPlay exec playerctl -p $player play-pause
+    bindsym --locked XF86AudioNext exec playerctl -p $player next
+    bindsym --locked XF86AudioPrev exec playerctl -p $player previous
+    # Special keys to adjust brightness via brightnessctl
+    bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%-
+    bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+
+    bindsym --locked XF86KbdBrightnessDown exec brightnessctl --device='kbd_backlight' set 10%-
+    bindsym --locked XF86KbdBrightnessUp exec brightnessctl --device='kbd_backlight' set 10%+
+
+    # Special key to take a screenshot with grim
+    bindsym Print exec grim
+
+# Disable Titlebars
+gaps inner 4
+default_border pixel 2
+default_floating_border pixel 2
+titlebar_padding 1
+titlebar_border_thickness 0
+
+# Floating Terminal
+for_window [app_id = "floating_foot"] floating enable
+
+# Set Font
+font pango:Google Sans Code 12
+#
+# Status Bar:
+#
+# Read `man 5 sway-bar` for more information about this section.
+bar {
+    status_command cd ~/.config/luastatus && exec luastatus-i3-wrapper -B no_separators\
+                   playerctl.lua \
+                   separator.lua \
+                   wireless.lua \
+                   separator.lua \
+                   alsa.lua \
+                   separator.lua \
+                   battery.lua \
+                   separator.lua \
+                   time-date.lua
+
+    position top
+
+    colors {
+        statusline #ffffff
+        background #000000
+        inactive_workspace #00000000 #00000000 #000000ff
+        focused_workspace #00000000 #000000ff #ffffffaa
+    }
+}
+
+# class                 border  bground text    indicator child_border
+client.focused          #000000 #000000 #F8F8F2 #000000   #000000
+client.focused_inactive #000000 #000000 #F8F8F2 #000000   #000000
+client.unfocused        #000000 #000000 #F8F8F2 #000000   #000000
+client.urgent           #000000 #000000 #F8F8F2 #000000   #000000
+client.placeholder      #000000 #000000 #F8F8F2 #000000   #000000
+client.background       #000000 #000000 #FFFFFF #000000   #000000
+
+include /etc/sway/config.d/*
diff --git a/.config/swaylock/config b/.config/swaylock/config
new file mode 100644
index 0000000..9e82dc5
--- /dev/null
+++ b/.config/swaylock/config
@@ -0,0 +1,39 @@
+font=Google Sans
+font-size=28
+
+color=#000000
+
+layout-bg-color=#00000000
+layout-border-color=#00000000
+layout-text-color=#ffffff
+
+text-color=#f4f4f4
+text-clear-color=#00c06f
+text-caps-lock-color=#d0bc00
+text-ver-color=#9099d9
+text-wrong-color=#ff5f59
+
+bs-hl-color=#30303066
+key-hl-color=#9099d9
+caps-lock-bs-hl-color=#30303066
+caps-lock-key-hl-color=#d0bc00
+
+separator-color=#00000000
+
+inside-color=#9099d955
+inside-clear-color=#00c06f55
+inside-caps-lock-color=#d0bc0055
+inside-ver-color=#9099d955
+inside-wrong-color=#ff5f5955
+
+line-color=#9099d911
+line-clear-color=#00c06f11
+line-caps-lock-color=#d0bc0011
+line-ver-color=#9099d911
+line-wrong-color=#ff5f5911
+
+ring-color=#9099d9aa
+ring-clear-color=#00c06faa
+ring-caps-lock-color=#d0bc00aa
+ring-ver-color=#9099d9aa
+ring-wrong-color=#ff5f59aa
diff --git a/.config/systemd/user/.gitignore b/.config/systemd/user/.gitignore
new file mode 100644
index 0000000..419e6be
--- /dev/null
+++ b/.config/systemd/user/.gitignore
@@ -0,0 +1 @@
+default.target.wants
diff --git a/.config/systemd/user/cliphist.service b/.config/systemd/user/cliphist.service
new file mode 100644
index 0000000..91ad51f
--- /dev/null
+++ b/.config/systemd/user/cliphist.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Cliphist clipboard watcher
+After=graphical-session.target
+PartOf=graphical-session.target
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/wl-paste --watch /usr/local/bin/cliphist store
+Restart=always
+RestartSec=1
+
+[Install]
+WantedBy=default.target
diff --git a/.config/systemd/user/kanata.service b/.config/systemd/user/kanata.service
new file mode 100644
index 0000000..771cfed
--- /dev/null
+++ b/.config/systemd/user/kanata.service
@@ -0,0 +1,22 @@
+[Unit]
+Description=Kanata keyboard remapper
+Documentation=https://github.com/jtroo/kanata
+
+[Service]
+Environment=PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/bin
+#   Uncomment the 4 lines beneath this to increase process priority
+#   of Kanata in case you encounter lagginess when resource constrained.
+#   WARNING: doing so will require the service to run as an elevated user such as root.
+#   Implementing least privilege access is an exercise left to the reader.
+#
+# CPUSchedulingPolicy=rr
+# CPUSchedulingPriority=99
+# IOSchedulingClass=realtime
+# Nice=-20
+Type=simple
+ExecStart=/usr/local/bin/kanata --cfg /home/venomade/.config/kanata/config.kbd
+Restart=on-failure
+RestartSec=3
+
+[Install]
+WantedBy=default.target
diff --git a/.config/xkb/symbols/us_colemak_pt_mac b/.config/xkb/symbols/us_colemak_pt_mac
deleted file mode 100644
index db2394f..0000000
--- a/.config/xkb/symbols/us_colemak_pt_mac
+++ /dev/null
@@ -1,13 +0,0 @@
-default partial alphanumeric_keys
-xkb_symbols "basic" {
-
-    include "us(colemak)"
-
-    key <AC06> { [ h, H, dead_circumflex, dead_circumflex ] };
-    key <AC07> { [ n, N, dead_tilde, dead_tilde ] };
-    key <AC08> { [ e, E, dead_acute, dead_acute ] };
-    key <AC09> { [ i, I, dead_grave, dead_grave ] };
-    key <AD08> { [ u, U, dead_diaeresis, dead_diaeresis ] };
-
-    name[Group1] = "English (US, Colemak, macOS PT accents)";
-};
diff --git a/.config/yazi/keymap.toml b/.config/yazi/keymap.toml
new file mode 100644
index 0000000..27da4fc
--- /dev/null
+++ b/.config/yazi/keymap.toml
@@ -0,0 +1,164 @@
+"$schema" = "https://yazi-rs.github.io/schemas/keymap.json"
+
+# Manager / File list layer
+[[mgr.prepend_keymap]]
+on  = [ "e" ]
+run = "arrow -1"
+
+[[mgr.prepend_keymap]]
+on  = [ "n" ]
+run = "arrow 1"
+
+[[mgr.prepend_keymap]]
+on  = [ "E" ]
+run = "arrow -5"
+
+[[mgr.prepend_keymap]]
+on  = [ "N" ]
+run = "arrow 5"
+
+[[mgr.prepend_keymap]]
+on  = [ "h" ]
+run = "leave"
+
+[[mgr.prepend_keymap]]
+on  = [ "i" ]
+run = "enter"
+
+[[mgr.prepend_keymap]]
+on  = [ "H" ]
+run = "back"
+
+[[mgr.prepend_keymap]]
+on  = [ "I" ]
+run = "forward"
+
+[[mgr.prepend_keymap]]
+on  = [ "<C-e>" ]
+run = "seek -5"
+
+[[mgr.prepend_keymap]]
+on  = [ "<C-n>" ]
+run = "seek 5"
+
+[[mgr.prepend_keymap]]
+on  = [ "k" ]
+run = "link"
+
+[[mgr.prepend_keymap]]
+on  = [ "K" ]
+run = "link --relative"
+
+[[mgr.prepend_keymap]]
+on  = [ "j" ]
+run = "find_arrow"
+
+[[mgr.prepend_keymap]]
+on  = [ "J" ]
+run = "find_arrow --previous"
+
+
+# Tasks layer
+[[tasks.prepend_keymap]]
+on  = [ "W" ]
+run = "close"
+
+[[tasks.prepend_keymap]]
+on  = [ "e" ]
+run = "arrow -1"
+
+[[tasks.prepend_keymap]]
+on  = [ "n" ]
+run = "arrow 1"
+
+
+# Select layer (spot/picker remnants)
+[[spot.prepend_keymap]]
+on  = [ "e" ]
+run = "arrow -1"
+
+[[spot.prepend_keymap]]
+on  = [ "n" ]
+run = "arrow 1"
+
+[[spot.prepend_keymap]]
+on  = [ "E" ]
+run = "arrow -5"
+
+[[spot.prepend_keymap]]
+on  = [ "N" ]
+run = "arrow 5"
+
+
+# Input layer
+[[input.prepend_keymap]]
+on  = [ "l" ]
+run = "insert"
+
+[[input.prepend_keymap]]
+on  = [ "<C-h>" ]
+run = [ "move -999", "insert" ]
+
+[[input.prepend_keymap]]
+on  = [ "<C-i>" ]
+run = [ "move 999", "insert --append" ]
+
+[[input.prepend_keymap]]
+on  = [ "h" ]
+run = "move -1"
+
+[[input.prepend_keymap]]
+on  = [ "i" ]
+run = "move 1"
+
+[[input.prepend_keymap]]
+on  = [ "=" ]
+run = "forward --end-of-word"
+
+[[input.prepend_keymap]]
+on  = [ "H" ]
+run = "move -999"
+
+[[input.prepend_keymap]]
+on  = [ "I" ]
+run = "move 999"
+
+[[input.prepend_keymap]]
+on  = [ "x" ]
+run = [ "delete", "move 1 --in-operating" ]
+
+[[input.prepend_keymap]]
+on  = [ "u" ]
+run = "undo"
+
+[[input.prepend_keymap]]
+on  = [ "U" ]
+run = "redo"
+
+
+# Completion layer
+[[cmp.prepend_keymap]]
+on  = [ "<C-e>" ]
+run = "arrow -1"
+
+[[cmp.prepend_keymap]]
+on  = [ "<C-n>" ]
+run = "arrow 1"
+
+
+# Help layer
+[[help.prepend_keymap]]
+on  = [ "e" ]
+run = "arrow -1"
+
+[[help.prepend_keymap]]
+on  = [ "n" ]
+run = "arrow 1"
+
+[[help.prepend_keymap]]
+on  = [ "E" ]
+run = "arrow -5"
+
+[[help.prepend_keymap]]
+on  = [ "N" ]
+run = "arrow 5"
diff --git a/.config/yazi/modus_vivendi.tmTheme b/.config/yazi/modus_vivendi.tmTheme
new file mode 100644
index 0000000..15d2429
--- /dev/null
+++ b/.config/yazi/modus_vivendi.tmTheme
@@ -0,0 +1,439 @@
+<!-- Modus Themes for Bat -->
+<!-- Auto generated with https://github.com/miikanissi/modus-themes.nvim/blob/master/lua/modus-themes/extras/bat.lua -->
+
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+  <dict>
+    <key>name</key>
+    <string>modus_vivendi</string>
+    <key>settings</key>
+    <array>
+      <dict>
+        <key>settings</key>
+        <dict>
+          <key>background</key>
+          <string>#000000</string>
+          <key>caret</key>
+          <string>#989898</string>
+          <key>foreground</key>
+          <string>#ffffff</string>
+          <key>invisibles</key>
+          <string>#989898</string>
+          <key>lineHighlight</key>
+          <string>#2f3849</string>
+          <key>selection</key>
+          <string>#7030af</string>
+          <key>findHighlight</key>
+          <string>#7a6100</string>
+          <key>selectionBorder</key>
+          <string>#646464</string>
+          <key>gutterForeground</key>
+          <string>#989898</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Comment</string>
+        <key>scope</key>
+        <string>comment</string>
+        <key>settings</key>
+        <dict>
+          <key>fontStyle</key>
+          <string>italic</string>
+          <key>foreground</key>
+          <string>#989898</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>String</string>
+        <key>scope</key>
+        <string>string</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#79a8ff</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Number</string>
+        <key>scope</key>
+        <string>constant.numeric</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#82b0ec</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Built-in constant</string>
+        <key>scope</key>
+        <string>constant.language</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#6ae4b9</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>User-defined constant</string>
+        <key>scope</key>
+        <string>constant.character, constant.other</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#ffffff</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Variable</string>
+        <key>scope</key>
+        <string>variable</string>
+        <key>settings</key>
+        <dict>
+          <key>fontStyle</key>
+          <string>#00d3d0</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Ruby's @variable</string>
+        <key>scope</key>
+        <string>variable.other.readwrite.instance</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#00d3d0</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>String interpolation</string>
+        <key>scope</key>
+        <string>constant.character.escaped, constant.character.escape, string source, string source.ruby</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#d2b580</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Keyword</string>
+        <key>scope</key>
+        <string>keyword</string>
+        <key>settings</key>
+        <dict>
+          <key>fontStyle</key>
+          <string>italic</string>
+          <key>foreground</key>
+          <string>#b6a0ff</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Storage</string>
+        <key>scope</key>
+        <string>storage</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#b6a0ff</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Storage type</string>
+        <key>scope</key>
+        <string>storage.type</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#b6a0ff</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Class name</string>
+        <key>scope</key>
+        <string>entity.name.class</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#b6a0ff</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Inherited class</string>
+        <key>scope</key>
+        <string>entity.other.inherited-class</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#b6a0ff</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Function name</string>
+        <key>scope</key>
+        <string>entity.name.function</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#feacd0</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Function argument</string>
+        <key>scope</key>
+        <string>variable.parameter</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#00d3d0</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Tag name</string>
+        <key>scope</key>
+        <string>entity.name.tag</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#00d3d0</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Tag attribute</string>
+        <key>scope</key>
+        <string>entity.other.attribute-name</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#00d3d0</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Library function</string>
+        <key>scope</key>
+        <string>support.function</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#feacd0</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Library constant</string>
+        <key>scope</key>
+        <string>support.constant</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#6ae4b9</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Library class/type</string>
+        <key>scope</key>
+        <string>support.type, support.class</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#6ae4b9</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Library variable</string>
+        <key>scope</key>
+        <string>support.other.variable</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#00d3d0</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Invalid</string>
+        <key>scope</key>
+        <string>invalid</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#989898</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Invalid deprecated</string>
+        <key>scope</key>
+        <string>invalid.deprecated</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#989898</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>JSON String</string>
+        <key>scope</key>
+        <string>meta.structure.dictionary.json string.quoted.double.json</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#79a8ff</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>diff.header</string>
+        <key>scope</key>
+        <string>meta.diff, meta.diff.header</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#feacd0</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>diff.deleted</string>
+        <key>scope</key>
+        <string>markup.deleted</string>
+        <key>settings</key>
+        <dict>
+          <key>background</key>
+          <string>#4f1119</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>diff.inserted</string>
+        <key>scope</key>
+        <string>markup.inserted</string>
+        <key>settings</key>
+        <dict>
+          <key>background</key>
+          <string>#00381f</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>diff.changed</string>
+        <key>scope</key>
+        <string>markup.changed</string>
+        <key>settings</key>
+        <dict>
+          <key>background</key>
+          <string>#363300</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>scope</key>
+        <string>constant.numeric.line-number.find-in-files - match</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#82b0ec</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>scope</key>
+        <string>entity.name.filename</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#2fafff</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>scope</key>
+        <string>message.error</string>
+        <key>settings</key>
+        <dict>
+          <key>fontStyle</key>
+          <string>bold</string>
+          <key>foreground</key>
+          <string>#ff7f9f</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>JSON Punctuation</string>
+        <key>scope</key>
+        <string>punctuation.definition.string.begin.json - meta.structure.dictionary.value.json, punctuation.definition.string.end.json - meta.structure.dictionary.value.json</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#ffffff</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>JSON Structure</string>
+        <key>scope</key>
+        <string>meta.structure.dictionary.json string.quoted.double.json</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#79a8ff</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>JSON String</string>
+        <key>scope</key>
+        <string>meta.structure.dictionary.value.json string.quoted.double.json</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#79a8ff</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Escape Characters</string>
+        <key>scope</key>
+        <string>constant.character.escape</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#d2b580</string>
+        </dict>
+      </dict>
+      <dict>
+        <key>name</key>
+        <string>Regular Expressions</string>
+        <key>scope</key>
+        <string>string.regexp</string>
+        <key>settings</key>
+        <dict>
+          <key>foreground</key>
+          <string>#00c06f</string>
+        </dict>
+      </dict>
+    </array>
+    <key>uuid</key>
+    <string>09CE9B40-0137-442C-8512-7CEAFC78C153</string>
+    <key>colorSpaceName</key>
+    <string>sRGB</string>
+    <key>semanticClass</key>
+    <string>Modus Vivendi</string>
+  </dict>
+</plist>
diff --git a/.config/yazi/theme.toml b/.config/yazi/theme.toml
new file mode 100644
index 0000000..7e83248
--- /dev/null
+++ b/.config/yazi/theme.toml
@@ -0,0 +1,135 @@
+# Modus Themes for Yazi
+# Auto generated with https://github.com/miikanissi/modus-themes.nvim/blob/master/lua/modus-themes/extras/yazi.lua
+
+[manager]
+# NOTE: can combined with tmTheme (sublime colorshceme file) for preview code highlight
+highlight = "~/.config/yazi/modus_vivendi.tmTheme"
+
+cwd = { fg = "#00d3d0", italic = true }
+
+# Hovered
+hovered         = { bg = "#2f3849" }
+preview_hovered = { bg = "#2f3849" }
+
+# Find
+find_keyword  = { fg = "#ffffff", bg = "#7030af", bold = true }
+find_position = { fg = "#79a8ff", bg = "#1e1e1e", bold = true }
+
+# Marker
+marker_copied   = { fg = "#70b900", bg = "#70b900" }
+marker_cut      = { fg = "#ff5f59", bg = "#ff5f59" }
+marker_marked   = { fg = "#feacd0", bg = "#feacd0" }
+marker_selected = { fg = "#2fafff", bg = "#2fafff" }
+
+# Tab
+tab_active   = { fg = "#000000", bg = "#2fafff" }
+tab_inactive = { fg = "#989898", bg = "#000000" }
+tab_width    = 1
+
+# Count
+count_copied   = { fg = "#000000", bg = "#70b900" }
+count_cut      = { fg = "#000000", bg = "#ff6b55" }
+count_selected = { fg = "#000000", bg = "#79a8ff" }
+
+# Border
+border_symbol = "│"
+border_style  = { fg = "#C4C4C4" }
+
+[status]
+separator_open  = ""
+separator_close = ""
+separator_style = { fg = "#0f0f0f", bg = "#0f0f0f" }
+
+# Mode
+mode_normal = { fg = "#000000", bg = "#2fafff", bold = true }
+mode_select = { fg = "#000000", bg = "#f78fe7", bold = true }
+mode_unset  = { fg = "#000000", bg = "#db7b5f", bold = true }
+
+# Progress
+progress_label  = { fg = "#989898", bold = true }
+progress_normal = { fg = "#000000" }
+progress_error  = { fg = "#ff5f59" }
+
+# Permissions
+permissions_t = { fg = "#2fafff" }
+permissions_r = { fg = "#d0bc00" }
+permissions_w = { fg = "#ff5f59" }
+permissions_x = { fg = "#44bc44" }
+permissions_s = { fg = "#989898" }
+
+[select]
+border   = { fg = "#C4C4C4" }
+active   = { fg = "#ffffff",  bg = "#646464" }
+inactive = { fg = "#ffffff" }
+
+# Input
+[input]
+border   = { fg = "#00bcff" }
+title    = {}
+value    = { fg = "#f78fe7" }
+selected = { bg = "#646464" }
+
+# Completion
+[completion]
+border   = { fg = "#00bcff" }
+active   = { fg = "#ffffff", bg = "#646464" }
+inactive = { fg = "#ffffff" }
+
+# Tasks
+[tasks]
+border  = { fg = "#C4C4C4" }
+title   = {}
+hovered = { fg = "#ffffff", bg="#646464" }
+
+# Which
+[which]
+cols = 3
+mask            = { bg = "#0f0f0f" }
+cand            = { fg = "#00d3d0" }
+rest            = { fg = "#2fafff" }
+desc            = { fg = "#feacd0" }
+separator       = "  "
+separator_style = { fg = "#989898" }
+
+# Notify
+[notify]
+title_info  = { fg = "#00bcff" }
+title_warn  = { fg = "#d0bc00" }
+title_error = { fg = "#ff5f59" }
+
+# Help
+[help]
+on      = { fg = "#44bc44" }
+run     = { fg = "#feacd0" }
+hovered = { bg = "#646464" }
+footer  = { fg = "#ffffff", bg = "#0f0f0f" }
+
+[filetype]
+
+rules = [
+	# Images
+	{ mime = "image/*", fg = "#00d3d0" },
+
+	# Media
+	{ mime = "{audio,video}/*", fg = "#fec43f" },
+
+	# Archives
+	{ mime = "application/*zip", fg = "#feacd0" },
+	{ mime = "application/x-{tar,bzip*,7z-compressed,xz,rar}", fg = "#feacd0" },
+
+	# Documents
+	{ mime = "application/{pdf,doc,rtf,vnd.*}", fg = "#00d3d0" },
+
+	# Empty files
+	# { mime = "inode/x-empty", fg = "#ff5f59" },
+
+	# Special files
+	{ name = "*", is = "orphan", bg = "#ff5f59" },
+	{ name = "*", is = "exec"  , fg = "#44bc44" },
+
+	{ name = "*.rs", fg = "#db7b5f" },
+
+	# Fallback
+	{ name = "*/", fg = "#2fafff" }
+]
+
diff --git a/.config/yazi/yazi.toml b/.config/yazi/yazi.toml
new file mode 100644
index 0000000..4f05c94
--- /dev/null
+++ b/.config/yazi/yazi.toml
@@ -0,0 +1,7 @@
+[mgr]
+sort_by = "mtime"
+sort_reverse = true
+show_hidden = true
+linemode = "size"
+scrolloff = 12
+ratio = [1,2,0]