about summary refs log tree commit diff
diff options
context:
space:
mode:
authorvenomade <venomade@venomade.com>2026-02-16 17:31:16 +0000
committervenomade <venomade@venomade.com>2026-02-16 17:31:16 +0000
commita568a964fd6a9efba388b2b4919339c0b7dfe51d (patch)
tree0c6adbf753de1c0b469e911668a82c6b2002f5f8
parent9d2c3f898a97de16b986d4e494f31e6c6f3d176a (diff)
MacOS Nix HEAD master
Asahi is just not perfectly usable yet.
Moved stuff, went nix.
-rw-r--r--.bashrc95
-rw-r--r--.config/dunst/dunstrc39
-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/luastatus/alsa.lua33
-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/mimeapps.list21
-rw-r--r--.config/rofi/config.rasi10
-rw-r--r--.config/rofi/theme.rasi111
-rw-r--r--.config/shell/vars2
-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--.ghci1
-rw-r--r--.gitconfig3
-rwxr-xr-x.local/bin/battery-screen70
-rwxr-xr-x.local/bin/lock-screen13
-rwxr-xr-x.local/bin/rofi-notes9
-rwxr-xr-x.local/bin/rofi-powermenu49
-rwxr-xr-x.local/bin/rofi-ppd48
-rwxr-xr-x.local/bin/rofi-translate60
-rwxr-xr-x.local/bin/rofi-wifimenu38
-rwxr-xr-x.local/bin/take-slurpshot18
-rw-r--r--.local/share/applications/jellyfin-tui.desktop5
-rw-r--r--.local/share/applications/yazi.desktop6
-rw-r--r--.stow-local-ignore2
-rw-r--r--README.md4
-rw-r--r--config/bat/config (renamed from .config/bat/config)0
-rw-r--r--config/bat/themes/modus_vivendi.tmTheme (renamed from .config/bat/themes/modus_vivendi.tmTheme)0
-rw-r--r--config/eza/theme.yml (renamed from .config/eza/theme.yml)0
-rw-r--r--config/lazygit/.gitignore1
-rw-r--r--config/lazygit/config.yml (renamed from .config/lazygit/config.yml)0
-rw-r--r--config/nvim/.gitignore (renamed from .config/nvim/.gitignore)0
-rw-r--r--config/nvim/.luarc.json (renamed from .config/nvim/.luarc.json)0
-rw-r--r--config/nvim/ftplugin/markdown.lua (renamed from .config/nvim/ftplugin/markdown.lua)0
-rw-r--r--config/nvim/init.lua (renamed from .config/nvim/init.lua)0
-rw-r--r--config/nvim/lua/config/colemak.lua (renamed from .config/nvim/lua/config/colemak.lua)0
-rw-r--r--config/nvim/lua/config/keymaps.lua (renamed from .config/nvim/lua/config/keymaps.lua)0
-rw-r--r--config/nvim/lua/config/options.lua (renamed from .config/nvim/lua/config/options.lua)2
-rw-r--r--config/nvim/lua/manager.lua (renamed from .config/nvim/lua/manager.lua)0
-rw-r--r--config/nvim/lua/plugins/autopairs.lua (renamed from .config/nvim/lua/plugins/autopairs.lua)0
-rw-r--r--config/nvim/lua/plugins/cmp.lua (renamed from .config/nvim/lua/plugins/cmp.lua)32
-rw-r--r--config/nvim/lua/plugins/colorizer.lua (renamed from .config/nvim/lua/plugins/colorizer.lua)0
-rw-r--r--config/nvim/lua/plugins/compile.lua (renamed from .config/nvim/lua/plugins/compile.lua)0
-rw-r--r--config/nvim/lua/plugins/image.lua (renamed from .config/nvim/lua/plugins/image.lua)0
-rw-r--r--config/nvim/lua/plugins/lastplace.lua (renamed from .config/nvim/lua/plugins/lastplace.lua)0
-rw-r--r--config/nvim/lua/plugins/lazygit.lua (renamed from .config/nvim/lua/plugins/lazygit.lua)0
-rw-r--r--config/nvim/lua/plugins/lualine.lua (renamed from .config/nvim/lua/plugins/lualine.lua)0
-rw-r--r--config/nvim/lua/plugins/modus-themes.lua (renamed from .config/nvim/lua/plugins/modus-themes.lua)0
-rw-r--r--config/nvim/lua/plugins/oil.lua (renamed from .config/nvim/lua/plugins/oil.lua)0
-rw-r--r--config/nvim/lua/plugins/rainbow-delimiters.lua (renamed from .config/nvim/lua/plugins/rainbow-delimiters.lua)0
-rw-r--r--config/nvim/lua/plugins/render-markdown.lua (renamed from .config/nvim/lua/plugins/render-markdown.lua)0
-rw-r--r--config/nvim/lua/plugins/scratch-buffer.lua11
-rw-r--r--config/nvim/lua/plugins/telescope.lua (renamed from .config/nvim/lua/plugins/telescope.lua)0
-rw-r--r--config/nvim/lua/plugins/todo-comments.lua (renamed from .config/nvim/lua/plugins/todo-comments.lua)0
-rw-r--r--config/nvim/lua/plugins/ui.lua (renamed from .config/nvim/lua/plugins/ui.lua)0
-rw-r--r--config/nvim/lua/plugins/zk.lua (renamed from .config/nvim/lua/plugins/zk.lua)0
-rw-r--r--config/nvim/lua/scripts/diagnostics.lua (renamed from .config/nvim/lua/scripts/diagnostics.lua)0
-rw-r--r--config/nvim/lua/scripts/init.lua (renamed from .config/nvim/lua/scripts/init.lua)0
-rw-r--r--config/shell/alias (renamed from .config/shell/alias)2
-rw-r--r--config/shell/functions (renamed from .config/shell/functions)0
-rw-r--r--config/shell/vars6
-rw-r--r--config/starship/config.toml91
-rw-r--r--config/yazi/keymap.toml (renamed from .config/yazi/keymap.toml)0
-rw-r--r--config/yazi/modus_vivendi.tmTheme (renamed from .config/yazi/modus_vivendi.tmTheme)0
-rw-r--r--config/yazi/theme.toml (renamed from .config/yazi/theme.toml)0
-rw-r--r--config/yazi/yazi.toml (renamed from .config/yazi/yazi.toml)0
-rw-r--r--config/zk/config.toml (renamed from .config/zk/config.toml)2
-rw-r--r--config/zk/templates/note.md (renamed from .config/zk/templates/note.md)0
-rw-r--r--flake.lock48
-rw-r--r--flake.nix31
-rw-r--r--home.nix55
80 files changed, 260 insertions, 1516 deletions
diff --git a/.bashrc b/.bashrc
deleted file mode 100644
index b1d2c7b..0000000
--- a/.bashrc
+++ /dev/null
@@ -1,95 +0,0 @@
-# Source Default /etc/bashrc
-if [ -f /etc/bashrc ]; then
-    . /etc/bashrc
-fi
-
-# Add .local/bin to PATH
-if ! [[ "$PATH" =~ "$HOME/.local/bin:" ]]; then
-    PATH="$HOME/.local/bin:$PATH"
-fi
-export PATH
-
-# Custom Shell variables, aliases, and functions
-[ -f "$HOME/.config/shell/alias" ] && source "$HOME/.config/shell/alias"
-[ -f "$HOME/.config/shell/vars" ] && source "$HOME/.config/shell/vars"
-[ -f "$HOME/.config/shell/functions" ] && source "$HOME/.config/shell/functions"
-
-# Custom Prompt
-USER_COLOR="\[\e[35m\]"          # magenta
-VENV_COLOR="\[\e[33m\]"          # yellow
-DIR_COLOR="\[\e[32m\]"           # green
-GIT_COLOR="\[\e[34m\]"           # blue
-GIT_DIRTY_COLOR="\[\e[31m\]"     # red
-PROMPT_SYMBOL_COLOR="\[\e[33m\]" # yellow
-RESET_COLOR="\[\e[0m\]"          # blank
-WHITE_COLOR="\[\e[37m\]"         # white
-TOOLBOX_COLOR="\[\e[36m\]"       # cyan
-
-shorten_path() {
-  if [[ "$PWD" == "$HOME" ]]; then
-    echo "~"
-    return
-  fi
-
-  if [[ "$PWD" == "$HOME/"* ]]; then
-    local rel="${PWD#$HOME/}"
-    local depth
-    IFS='/' read -ra parts <<< "$rel"
-    depth=${#parts[@]}
-
-    if (( depth == 1 )); then
-      echo "~/${parts[0]}"
-    elif (( depth == 2 )); then
-      echo ".../${parts[0]}/${parts[1]}"
-    else
-      echo ".../${parts[-2]}/${parts[-1]}"
-    fi
-    return
-  fi
-
-  IFS='/' read -ra parts <<< "$PWD"
-  if (( ${#parts[@]} > 3 )); then
-    echo ".../${parts[-2]}/${parts[-1]}"
-  else
-    echo "$PWD"
-  fi
-}
-
-git_branch() {
-  git symbolic-ref --short HEAD 2>/dev/null \
-    || git rev-parse --short HEAD 2>/dev/null
-}
-
-git_dirty() {
-  if [[ -n "$(git status --porcelain 2>/dev/null)" ]]; then
-    echo " ✗"
-  else
-    echo " ✓"
-  fi
-}
-
-set_prompt() {
-  local user="${USER_COLOR}\u${RESET_COLOR}"
-
-  local toolbox=""
-  if [[ -n "$TOOLBOX_PATH" ]]; then
-    toolbox="${TOOLBOX_COLOR}(tlbx)${RESET_COLOR}"
-  fi
-
-  local venv=""
-  if [[ -n "$VIRTUAL_ENV" ]]; then
-    venv="${VENV_COLOR}($(basename "$VIRTUAL_ENV"))${RESET_COLOR} "
-  fi
-
-  local path="${DIR_COLOR}$(shorten_path)${RESET_COLOR}"
-  local git_info=""
-  local branch="$(git_branch)"
-
-  if [[ -n "$branch" ]]; then
-    git_info=" ${WHITE_COLOR}on${RESET_COLOR} ${GIT_COLOR}${branch}${RESET_COLOR}${GIT_DIRTY_COLOR}$(git_dirty)${RESET_COLOR}"
-  fi
-
-  PS1="${user}${toolbox} ${WHITE_COLOR}in${RESET_COLOR} ${venv}${path}${git_info}\n${PROMPT_SYMBOL_COLOR}λ${RESET_COLOR} "
-}
-
-PROMPT_COMMAND="set_prompt${PROMPT_COMMAND:+; $PROMPT_COMMAND}"
diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc
deleted file mode 100644
index 7f94795..0000000
--- a/.config/dunst/dunstrc
+++ /dev/null
@@ -1,39 +0,0 @@
-[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/foot/foot.ini b/.config/foot/foot.ini
deleted file mode 100644
index be335dc..0000000
--- a/.config/foot/foot.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[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
deleted file mode 100644
index 30322e0..0000000
--- a/.config/jellyfin-tui/config.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-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
deleted file mode 100644
index a805cf7..0000000
--- a/.config/kanata/config.kbd
+++ /dev/null
@@ -1,39 +0,0 @@
-#|
-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/luastatus/alsa.lua b/.config/luastatus/alsa.lua
deleted file mode 100644
index fc0f13b..0000000
--- a/.config/luastatus/alsa.lua
+++ /dev/null
@@ -1,33 +0,0 @@
-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 = '󰕾'
-        if percent >= 99.5 then
-          return {
-            full_text = string.format('%s %d%%', symbol, math.floor(0.5 + percent)),
-            color = '#b7bdf8'
-          }
-        end
-      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
deleted file mode 100644
index 459599e..0000000
--- a/.config/luastatus/battery.lua
+++ /dev/null
@@ -1,57 +0,0 @@
-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
deleted file mode 100644
index a3e743c..0000000
--- a/.config/luastatus/playerctl.lua
+++ /dev/null
@@ -1,43 +0,0 @@
-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
deleted file mode 100644
index 1a3ef01..0000000
--- a/.config/luastatus/separator.lua
+++ /dev/null
@@ -1,6 +0,0 @@
-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
deleted file mode 100644
index 8d5bfe7..0000000
--- a/.config/luastatus/time-date.lua
+++ /dev/null
@@ -1,13 +0,0 @@
-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
deleted file mode 100644
index e3d53d7..0000000
--- a/.config/luastatus/wireless.lua
+++ /dev/null
@@ -1,70 +0,0 @@
-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
deleted file mode 100644
index f70ca36..0000000
--- a/.config/ly/config.ini
+++ /dev/null
@@ -1,265 +0,0 @@
-# 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/mimeapps.list b/.config/mimeapps.list
deleted file mode 100644
index f31391c..0000000
--- a/.config/mimeapps.list
+++ /dev/null
@@ -1,21 +0,0 @@
-
-[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/rofi/config.rasi b/.config/rofi/config.rasi
deleted file mode 100644
index c80fd01..0000000
--- a/.config/rofi/config.rasi
+++ /dev/null
@@ -1,10 +0,0 @@
-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
deleted file mode 100644
index 6cac4e6..0000000
--- a/.config/rofi/theme.rasi
+++ /dev/null
@@ -1,111 +0,0 @@
-* {
-  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/vars b/.config/shell/vars
deleted file mode 100644
index 974c435..0000000
--- a/.config/shell/vars
+++ /dev/null
@@ -1,2 +0,0 @@
-export EDITOR=nvim
-export ZK_NOTEBOOK_DIR=/home/venomade/Documents/Notes
diff --git a/.config/sway/config b/.config/sway/config
deleted file mode 100644
index a5d6b0f..0000000
--- a/.config/sway/config
+++ /dev/null
@@ -1,278 +0,0 @@
-# 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 -i -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
deleted file mode 100644
index 9e82dc5..0000000
--- a/.config/swaylock/config
+++ /dev/null
@@ -1,39 +0,0 @@
-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
deleted file mode 100644
index 419e6be..0000000
--- a/.config/systemd/user/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-default.target.wants
diff --git a/.config/systemd/user/cliphist.service b/.config/systemd/user/cliphist.service
deleted file mode 100644
index 91ad51f..0000000
--- a/.config/systemd/user/cliphist.service
+++ /dev/null
@@ -1,13 +0,0 @@
-[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
deleted file mode 100644
index 771cfed..0000000
--- a/.config/systemd/user/kanata.service
+++ /dev/null
@@ -1,22 +0,0 @@
-[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/.ghci b/.ghci
deleted file mode 100644
index 31f559e..0000000
--- a/.ghci
+++ /dev/null
@@ -1 +0,0 @@
-:set prompt "λ "
diff --git a/.gitconfig b/.gitconfig
deleted file mode 100644
index 8a59d3e..0000000
--- a/.gitconfig
+++ /dev/null
@@ -1,3 +0,0 @@
-[user]
-	name = venomade
-	email = venomade@venomade.com
diff --git a/.local/bin/battery-screen b/.local/bin/battery-screen
deleted file mode 100755
index 26ac78a..0000000
--- a/.local/bin/battery-screen
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/usr/bin/env lua
-
-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
-
-local function batterytext()
-  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 string.format('%s %2d%%', symbol, capacity), text_color
-end
-
-function hexToRgb(hex)
-  hex = hex:gsub("#", "")
-
-  local r = tonumber(hex:sub(1, 2), 16)
-  local g = tonumber(hex:sub(3, 4), 16)
-  local b = tonumber(hex:sub(5, 6), 16)
-
-  return r, g, b
-end
-
-function printHexColor(text, hex)
-  local r, g, b = hexToRgb(hex)
-  local colorCode = string.format("\27[38;2;%d;%d;%dm", r, g, b)
-  local resetCode = "\27[0m"
-
-  print(colorCode .. text .. resetCode)
-end
-
-while true do
-  printHexColor(batterytext())
-  os.execute("sleep 1")   -- Wait for 1 second
-end
diff --git a/.local/bin/lock-screen b/.local/bin/lock-screen
deleted file mode 100755
index 4307c9a..0000000
--- a/.local/bin/lock-screen
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/usr/bin/env bash
-
-if [[ $1 =~ ^[0-9]+$ ]]; then
-    SLEEP_DURATION=$1
-else
-    SLEEP_DURATION=10
-fi
-
-grim /tmp/lockscreen-0.png
-magick /tmp/lockscreen-0.png -scale 10% -blur 0x1 -resize 1000% /tmp/lockscreen.png
-swaylock -i /tmp/lockscreen.png &
-sleep $SLEEP_DURATION
-systemctl sleep
diff --git a/.local/bin/rofi-notes b/.local/bin/rofi-notes
deleted file mode 100755
index 840dea6..0000000
--- a/.local/bin/rofi-notes
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/usr/bin/env sh
-
-note_list=$(zk list -f "{{ title }}" -d $'\n' -q)
-
-selected=$(printf "%s\n" "$note_list" | rofi -dmenu -i -p "󱞁 ")
-
-if [[ -n $selected ]]; then
-    foot -a=floating_foot -e sh -c "zk edit --match \"${selected}\""
-fi
diff --git a/.local/bin/rofi-powermenu b/.local/bin/rofi-powermenu
deleted file mode 100755
index 0ff3f9c..0000000
--- a/.local/bin/rofi-powermenu
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env lua
-
-local function rofi(prompt, lines)
-  local cmd = string.format(
-    'printf "%s" | rofi -dmenu -i -p "%s"',
-    table.concat(lines, "\n"),
-    prompt
-  )
-  local handle = io.popen(cmd)
-  local selection = handle:read("*a")
-  handle:close()
-  selection = selection:gsub("%s+$", "")
-  if selection == "" then return nil end
-  return selection
-end
-
-local function contains(tbl, val)
-  for _, v in pairs(tbl) do
-    if v == val then
-      return true
-    end
-  end
-  return false
-end
-
--- TODO: Deduplicate This
-local options = {
-  "Log Out",
-  "Shutdown",
-  "Restart"
-}
-
-local option_pair = {
-  ["Log Out"] = "swaymsg exit",
-  ["Shutdown"] = "systemctl poweroff",
-  ["Restart"] = "systemctl reboot"
-}
-
-local choice = rofi("Action:", options)
-if (not choice) or (not contains(options,choice)) then os.exit() end
-
-if choice == "Log Out" then
-  io.popen(option_pair[choice])
-else
-  local confirm = rofi("Are you sure?:", {"Yes", "No"})
-  if confirm == "Yes" then
-    io.popen(option_pair[choice])
-  end
-end
diff --git a/.local/bin/rofi-ppd b/.local/bin/rofi-ppd
deleted file mode 100755
index 5a4f13b..0000000
--- a/.local/bin/rofi-ppd
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/env lua
-
-local function trim(s)
-  return s:gsub("^%s+", ""):gsub("%s+$", "")
-end
-
-local function rofi(prompt, lines)
-  local cmd = string.format(
-    'printf "%s" | rofi -dmenu -i -p "%s"',
-    table.concat(lines, "\n"),
-    prompt
-  )
-  local handle = io.popen(cmd)
-  local selection = handle:read("*a")
-  handle:close()
-  selection = trim(selection or "")
-  if selection == "" then return nil end
-  return selection
-end
-
-local modes = {}
-
-local handle = io.popen('powerprofilesctl list')
-local profile_list = handle:read("*a")
-handle:close()
-
-local handle = io.popen('powerprofilesctl get')
-local current_profile = trim(handle:read("*a") or "")
-handle:close()
-
-for line in profile_list:gmatch("[^\r\n]+") do
-  line = trim(line)
-  local mode = line:match("^%*?%s*([%w%-_]+)%s*:$")
-  if mode then
-    if mode == current_profile then
-      table.insert(modes, "* " .. mode)
-    else
-      table.insert(modes, "  " .. mode)
-    end
-  end
-end
-
-local selected_profile = rofi('󰓅', modes)
-if not selected_profile then os.exit() end
-
-selected_profile = selected_profile:gsub("^%*%s*", ""):gsub("^%s+", "")
-
-io.popen('powerprofilesctl set ' .. selected_profile)
diff --git a/.local/bin/rofi-translate b/.local/bin/rofi-translate
deleted file mode 100755
index f71557d..0000000
--- a/.local/bin/rofi-translate
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/usr/bin/env lua
-
-local function rofi(prompt, lines)
-  local cmd = string.format(
-    'printf "%s" | rofi -dmenu -i -p "%s"',
-    table.concat(lines, "\n"),
-    prompt
-  )
-  local handle = io.popen(cmd)
-  local selection = handle:read("*a")
-  handle:close()
-  selection = selection:gsub("%s+$", "")
-  if selection == "" then return nil end
-  return selection
-end
-
-local function contains(tbl, val)
-  for _, v in pairs(tbl) do
-    if v == val then
-      return true
-    end
-  end
-  return false
-end
-
-local directions = {
-  "English → Portuguese",
-  "Portuguese → English"
-}
-
-local choice = rofi("Translate:", directions)
-if (not choice) or (not contains(directions,choice)) then os.exit() end
-
-local lang_pair = {
-  ["English → Portuguese"] = "en:pt",
-  ["Portuguese → English"] = "pt:en"
-}
-local pair = lang_pair[choice]
-
-local text = rofi("󰗊", { "" })
-if not text then os.exit() end
-
-local trans_cmd = string.format('trans -b %s "%s"', pair, text:gsub('"', '\\"'))
-local trans_handle = io.popen(trans_cmd)
-local translation = trans_handle:read("*a")
-trans_handle:close()
-translation = translation:gsub("%s+$", "")
-
-if translation == "" then
-  translation = "(no translation returned)"
-else
-  io.popen("wl-copy " .. translation)
-end
-
-local notify_cmd = string.format(
-  'notify-send -- "Translation (%s)" "%s"',
-  choice,
-  translation:gsub('"', '\\"')
-)
-os.execute(notify_cmd)
diff --git a/.local/bin/rofi-wifimenu b/.local/bin/rofi-wifimenu
deleted file mode 100755
index fb45671..0000000
--- a/.local/bin/rofi-wifimenu
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env bash
-
-notify-send "Getting list of available Wi-Fi networks..."
-# Get a list of available wifi connections and morph it into a nice-looking list
-wifi_list=$(nmcli --fields "SECURITY,SSID" device wifi list | sed 1d | sed 's/  */ /g' | sed -E "s/WPA*.?\S/ /g" | sed "s/^--/ /g" | sed "s/  //g" | sed "/--/d")
-
-connected=$(nmcli -fields WIFI g)
-if [[ "$connected" =~ "enabled" ]]; then
-	toggle="󰖪  Disable Wi-Fi"
-elif [[ "$connected" =~ "disabled" ]]; then
-	toggle="󰖩  Enable Wi-Fi"
-fi
-
-# Use rofi to select wifi network
-chosen_network=$(echo -e "$toggle\n$wifi_list" | uniq -u | rofi -dmenu -i -selected-row 1 -p "Wi-Fi SSID: " )
-# Get name of connection
-read -r chosen_id <<< "${chosen_network:3}"
-
-if [ "$chosen_network" = "" ]; then
-	exit
-elif [ "$chosen_network" = "󰖩  Enable Wi-Fi" ]; then
-	nmcli radio wifi on
-elif [ "$chosen_network" = "󰖪  Disable Wi-Fi" ]; then
-	nmcli radio wifi off
-else
-	# Message to show when connection is activated successfully
-  	success_message="You are now connected to the Wi-Fi network \"$chosen_id\"."
-	# Get saved connections
-	saved_connections=$(nmcli -g NAME connection)
-	if [[ $(echo "$saved_connections" | grep -w "$chosen_id") = "$chosen_id" ]]; then
-		nmcli connection up id "$chosen_id" | grep "successfully" && notify-send "Connection Established" "$success_message"
-	else
-		if [[ "$chosen_network" =~ "" ]]; then
-			wifi_password=$(rofi -dmenu -p "Password: " )
-		fi
-		nmcli device wifi connect "$chosen_id" password "$wifi_password" | grep "successfully" && notify-send "Connection Established" "$success_message"
-    fi
-fi
diff --git a/.local/bin/take-slurpshot b/.local/bin/take-slurpshot
deleted file mode 100755
index f30fabe..0000000
--- a/.local/bin/take-slurpshot
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash
-
-# Generate base filename with timestamp
-base_filename=$(date +"%m-%d-%Y_%H-%M-%S")
-extension=".png"
-
-# Initialize full filename
-filename="${base_filename}${extension}"
-counter=1
-
-# Check if file exists and append incremental suffix if needed
-while [[ -e "$filename" ]]; do
-    filename="${base_filename}-${counter}${extension}"
-    ((counter++))
-done
-
-# Output the available filename
-grim -g "$(slurp)" "$HOME/Pictures/Screenshots/$filename"
diff --git a/.local/share/applications/jellyfin-tui.desktop b/.local/share/applications/jellyfin-tui.desktop
deleted file mode 100644
index 3ac887a..0000000
--- a/.local/share/applications/jellyfin-tui.desktop
+++ /dev/null
@@ -1,5 +0,0 @@
-[Desktop Entry]
-Name=Jellyfin TUI
-Exec=foot jellyfin-tui
-Type=Application
-Terminal=false
diff --git a/.local/share/applications/yazi.desktop b/.local/share/applications/yazi.desktop
deleted file mode 100644
index 24580fa..0000000
--- a/.local/share/applications/yazi.desktop
+++ /dev/null
@@ -1,6 +0,0 @@
-[Desktop Entry]
-Name=Yazi
-Exec=foot yazi %U
-Type=Application
-Terminal=false
-MimeType=inode/directory;
diff --git a/.stow-local-ignore b/.stow-local-ignore
deleted file mode 100644
index 35cdaf3..0000000
--- a/.stow-local-ignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.git
-README.md
diff --git a/README.md b/README.md
index 2fe72b5..5fc3be5 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,3 @@
 # Venomade's Dotfiles
 
-These are my dotfiles managed with [GNU Stow](https://www.gnu.org/software/stow/).
-
-These dotfiles are fairly hardcoded, so take them as inspiration. They are made specifically for me (*/home/venomade*), in a mix of Portuguese and English and are for Asahi Linux on an M1 Macbook.
+These are my dotfiles managed with [Home Manager](https://nixos.wiki/wiki/Home_Manager).
diff --git a/.config/bat/config b/config/bat/config
index 2d65ccf..2d65ccf 100644
--- a/.config/bat/config
+++ b/config/bat/config
diff --git a/.config/bat/themes/modus_vivendi.tmTheme b/config/bat/themes/modus_vivendi.tmTheme
index 15d2429..15d2429 100644
--- a/.config/bat/themes/modus_vivendi.tmTheme
+++ b/config/bat/themes/modus_vivendi.tmTheme
diff --git a/.config/eza/theme.yml b/config/eza/theme.yml
index f74a128..f74a128 100644
--- a/.config/eza/theme.yml
+++ b/config/eza/theme.yml
diff --git a/config/lazygit/.gitignore b/config/lazygit/.gitignore
new file mode 100644
index 0000000..ace2661
--- /dev/null
+++ b/config/lazygit/.gitignore
@@ -0,0 +1 @@
+state.yml
diff --git a/.config/lazygit/config.yml b/config/lazygit/config.yml
index 0151f13..0151f13 100644
--- a/.config/lazygit/config.yml
+++ b/config/lazygit/config.yml
diff --git a/.config/nvim/.gitignore b/config/nvim/.gitignore
index e033bc6..e033bc6 100644
--- a/.config/nvim/.gitignore
+++ b/config/nvim/.gitignore
diff --git a/.config/nvim/.luarc.json b/config/nvim/.luarc.json
index bd8a14b..bd8a14b 100644
--- a/.config/nvim/.luarc.json
+++ b/config/nvim/.luarc.json
diff --git a/.config/nvim/ftplugin/markdown.lua b/config/nvim/ftplugin/markdown.lua
index 4f658e4..4f658e4 100644
--- a/.config/nvim/ftplugin/markdown.lua
+++ b/config/nvim/ftplugin/markdown.lua
diff --git a/.config/nvim/init.lua b/config/nvim/init.lua
index 4b53a96..4b53a96 100644
--- a/.config/nvim/init.lua
+++ b/config/nvim/init.lua
diff --git a/.config/nvim/lua/config/colemak.lua b/config/nvim/lua/config/colemak.lua
index e6ce33b..e6ce33b 100644
--- a/.config/nvim/lua/config/colemak.lua
+++ b/config/nvim/lua/config/colemak.lua
diff --git a/.config/nvim/lua/config/keymaps.lua b/config/nvim/lua/config/keymaps.lua
index f30283e..f30283e 100644
--- a/.config/nvim/lua/config/keymaps.lua
+++ b/config/nvim/lua/config/keymaps.lua
diff --git a/.config/nvim/lua/config/options.lua b/config/nvim/lua/config/options.lua
index 559f4c7..ba0bb5a 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 = "bash"
+vim.opt.shell = "zsh"
 
 vim.opt.mouse = "a"
 
diff --git a/.config/nvim/lua/manager.lua b/config/nvim/lua/manager.lua
index f450d31..f450d31 100644
--- a/.config/nvim/lua/manager.lua
+++ b/config/nvim/lua/manager.lua
diff --git a/.config/nvim/lua/plugins/autopairs.lua b/config/nvim/lua/plugins/autopairs.lua
index c37e301..c37e301 100644
--- a/.config/nvim/lua/plugins/autopairs.lua
+++ b/config/nvim/lua/plugins/autopairs.lua
diff --git a/.config/nvim/lua/plugins/cmp.lua b/config/nvim/lua/plugins/cmp.lua
index 7728d19..69a2396 100644
--- a/.config/nvim/lua/plugins/cmp.lua
+++ b/config/nvim/lua/plugins/cmp.lua
@@ -40,10 +40,10 @@ return {
         {
           { name = 'path' },
         }
-        -- {
-        --   { name = 'buffer' },
-        --   { name = 'rg',    keyword_length = 3 }
-        -- }
+      -- {
+      --   { name = 'buffer' },
+      --   { name = 'rg',    keyword_length = 3 }
+      -- }
       ),
       formatting = {
         format = lspkind.cmp_format({
@@ -57,7 +57,7 @@ return {
 
     local capabilities = require('cmp_nvim_lsp').default_capabilities()
     vim.lsp.config('lua_ls', {
-      cmd = { '/home/venomade/.local/share/lua-language-server/bin/lua-language-server' },
+      -- cmd = { '/home/venomade/.local/share/lua-language-server/bin/lua-language-server' },
       capabilities = capabilities,
       root_markers = {
         ".luarc.json",
@@ -68,22 +68,18 @@ return {
         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'
-            },
+            path = vim.list_extend(
+              vim.split(package.path, ';'),
+              {
+                '?.lua',
+                '?/init.lua',
+                './stubs/?.lua',
+                './stubs/?/init.lua'
+              }),
           },
           workspace = {
             library = {
-              '/home/venomade/.luarocks/share/lua/5.4',
-              '/usr/share/lua/5.4',
+              vim.env.HOME .. '/.luarocks/share/lua/5.4',
               './stubs'
             },
           },
diff --git a/.config/nvim/lua/plugins/colorizer.lua b/config/nvim/lua/plugins/colorizer.lua
index 460eb5c..460eb5c 100644
--- a/.config/nvim/lua/plugins/colorizer.lua
+++ b/config/nvim/lua/plugins/colorizer.lua
diff --git a/.config/nvim/lua/plugins/compile.lua b/config/nvim/lua/plugins/compile.lua
index 8d824de..8d824de 100644
--- a/.config/nvim/lua/plugins/compile.lua
+++ b/config/nvim/lua/plugins/compile.lua
diff --git a/.config/nvim/lua/plugins/image.lua b/config/nvim/lua/plugins/image.lua
index 32c3540..32c3540 100644
--- a/.config/nvim/lua/plugins/image.lua
+++ b/config/nvim/lua/plugins/image.lua
diff --git a/.config/nvim/lua/plugins/lastplace.lua b/config/nvim/lua/plugins/lastplace.lua
index a393a90..a393a90 100644
--- a/.config/nvim/lua/plugins/lastplace.lua
+++ b/config/nvim/lua/plugins/lastplace.lua
diff --git a/.config/nvim/lua/plugins/lazygit.lua b/config/nvim/lua/plugins/lazygit.lua
index f9ddc84..f9ddc84 100644
--- a/.config/nvim/lua/plugins/lazygit.lua
+++ b/config/nvim/lua/plugins/lazygit.lua
diff --git a/.config/nvim/lua/plugins/lualine.lua b/config/nvim/lua/plugins/lualine.lua
index 5412061..5412061 100644
--- a/.config/nvim/lua/plugins/lualine.lua
+++ b/config/nvim/lua/plugins/lualine.lua
diff --git a/.config/nvim/lua/plugins/modus-themes.lua b/config/nvim/lua/plugins/modus-themes.lua
index 3058078..3058078 100644
--- a/.config/nvim/lua/plugins/modus-themes.lua
+++ b/config/nvim/lua/plugins/modus-themes.lua
diff --git a/.config/nvim/lua/plugins/oil.lua b/config/nvim/lua/plugins/oil.lua
index 3eb396d..3eb396d 100644
--- a/.config/nvim/lua/plugins/oil.lua
+++ b/config/nvim/lua/plugins/oil.lua
diff --git a/.config/nvim/lua/plugins/rainbow-delimiters.lua b/config/nvim/lua/plugins/rainbow-delimiters.lua
index 9fe4a06..9fe4a06 100644
--- a/.config/nvim/lua/plugins/rainbow-delimiters.lua
+++ b/config/nvim/lua/plugins/rainbow-delimiters.lua
diff --git a/.config/nvim/lua/plugins/render-markdown.lua b/config/nvim/lua/plugins/render-markdown.lua
index 9d52c5b..9d52c5b 100644
--- a/.config/nvim/lua/plugins/render-markdown.lua
+++ b/config/nvim/lua/plugins/render-markdown.lua
diff --git a/config/nvim/lua/plugins/scratch-buffer.lua b/config/nvim/lua/plugins/scratch-buffer.lua
new file mode 100644
index 0000000..a6526ab
--- /dev/null
+++ b/config/nvim/lua/plugins/scratch-buffer.lua
@@ -0,0 +1,11 @@
+return {
+  'miguelcrespo/scratch-buffer.nvim',
+  event = 'VimEnter',
+  config = function()
+    require('scratch-buffer').setup()
+  end,
+  dependencies = {
+    -- Recommended if you want interactive evaluation
+    "Olical/conjure"
+  }
+}
diff --git a/.config/nvim/lua/plugins/telescope.lua b/config/nvim/lua/plugins/telescope.lua
index e761994..e761994 100644
--- a/.config/nvim/lua/plugins/telescope.lua
+++ b/config/nvim/lua/plugins/telescope.lua
diff --git a/.config/nvim/lua/plugins/todo-comments.lua b/config/nvim/lua/plugins/todo-comments.lua
index 69f907e..69f907e 100644
--- a/.config/nvim/lua/plugins/todo-comments.lua
+++ b/config/nvim/lua/plugins/todo-comments.lua
diff --git a/.config/nvim/lua/plugins/ui.lua b/config/nvim/lua/plugins/ui.lua
index 5df6f44..5df6f44 100644
--- a/.config/nvim/lua/plugins/ui.lua
+++ b/config/nvim/lua/plugins/ui.lua
diff --git a/.config/nvim/lua/plugins/zk.lua b/config/nvim/lua/plugins/zk.lua
index ce2e11a..ce2e11a 100644
--- a/.config/nvim/lua/plugins/zk.lua
+++ b/config/nvim/lua/plugins/zk.lua
diff --git a/.config/nvim/lua/scripts/diagnostics.lua b/config/nvim/lua/scripts/diagnostics.lua
index 0855af1..0855af1 100644
--- a/.config/nvim/lua/scripts/diagnostics.lua
+++ b/config/nvim/lua/scripts/diagnostics.lua
diff --git a/.config/nvim/lua/scripts/init.lua b/config/nvim/lua/scripts/init.lua
index f0e0f11..f0e0f11 100644
--- a/.config/nvim/lua/scripts/init.lua
+++ b/config/nvim/lua/scripts/init.lua
diff --git a/.config/shell/alias b/config/shell/alias
index 931c115..84eab84 100644
--- a/.config/shell/alias
+++ b/config/shell/alias
@@ -1,11 +1,9 @@
 alias rgf='rg --files | rg'
 alias ls='eza --icons=auto'
 alias md='mkdir'
-alias ec='emacsclient -nw'
 alias cat='bat -pp'
 alias man='batman'
 alias diff='batdiff'
 alias fzf="fzf --preview 'bat --style=numbers --color=always {}'"
-alias tlbx="toolbox enter"
 alias vi="nvim"
 alias vim="nvim"
diff --git a/.config/shell/functions b/config/shell/functions
index a300316..a300316 100644
--- a/.config/shell/functions
+++ b/config/shell/functions
diff --git a/config/shell/vars b/config/shell/vars
new file mode 100644
index 0000000..601d79f
--- /dev/null
+++ b/config/shell/vars
@@ -0,0 +1,6 @@
+export EDITOR=nvim
+export ZK_NOTEBOOK_DIR=$HOME/Documents/Notes
+export XDG_CONFIG_HOME=$HOME/.config
+export GOPATH=$HOME/.go
+export LIMA_SHELL=/bin/zsh
+export LIMA_INSTANCE=alpine
diff --git a/config/starship/config.toml b/config/starship/config.toml
new file mode 100644
index 0000000..6165b64
--- /dev/null
+++ b/config/starship/config.toml
@@ -0,0 +1,91 @@
+# Get editor completions based on the config schema
+"$schema" = 'https://starship.rs/config-schema.json'
+
+# Inserts a blank line between shell prompts
+add_newline = true
+
+format = """
+$nix_shell\
+$directory\
+$git_branch\
+$git_status\
+$git_commit\
+$status\
+$fill\
+$lua\
+$rust\
+$golang\
+$haskell\
+$jobs\
+$cmd_duration\
+$line_break\
+$character"""
+
+[nix_shell]
+format = '[$symbol]($style) '
+symbol = '󱄅 '
+style = 'bold #74c7ec'
+
+[directory]
+style = '#b2bbfb'
+truncation_length = 2
+
+[git_branch]
+symbol = ' '
+format = '[$symbol$branch(:$remote_branch)]($style) '
+style = 'bold #eba0ac'
+ignore_branches = ['master', 'main']
+
+[git_status]
+format = '([\[$all_status$ahead_behind\]]($style) )'
+style = 'bold #89dceb'
+
+[git_commit]
+format = '[\[#$hash$tag\]]($style) '
+style = 'bold #94e2d5'
+
+[status]
+format = '[\[$status\]]($style)'
+disabled = false
+
+[fill]
+symbol = ' '
+
+[lua]
+format = '[$symbol($version )]($style)'
+version_format = '$major.$minor'
+symbol = '󰢱 '
+detect_files = ['.lua-version', '.luarc.json']
+
+[rust]
+format = '[$symbol($version )]($style)'
+version_format = '$major.$minor'
+symbol = ' '
+style = 'bold #fab387'
+
+[golang]
+format = '[$symbol($version )]($style)'
+version_format = '$major.$minor'
+symbol = ' '
+style = 'bold #94e2d5'
+
+[haskell]
+format = '[$symbol($ghc_version )]($style)'
+symbol = ' '
+style = 'bold #cba6f7'
+
+[cmd_duration]
+format = '[󰔚 $duration]($style) '
+style = 'bold #f9e2af'
+
+# Replace the '❯' symbol in the prompt with '➜'
+[character] # The name of the module we are configuring is 'character'
+success_symbol = '[󰘧](bold #a6e3a1)'
+error_symbol = '[󰘧](bold #f38ba8)'
+
+# TODO
+# - [container]
+# - [docker_context]
+# - [direnv]
+# CONTINUE FROM HERE
+
diff --git a/.config/yazi/keymap.toml b/config/yazi/keymap.toml
index 27da4fc..27da4fc 100644
--- a/.config/yazi/keymap.toml
+++ b/config/yazi/keymap.toml
diff --git a/.config/yazi/modus_vivendi.tmTheme b/config/yazi/modus_vivendi.tmTheme
index 15d2429..15d2429 100644
--- a/.config/yazi/modus_vivendi.tmTheme
+++ b/config/yazi/modus_vivendi.tmTheme
diff --git a/.config/yazi/theme.toml b/config/yazi/theme.toml
index 7e83248..7e83248 100644
--- a/.config/yazi/theme.toml
+++ b/config/yazi/theme.toml
diff --git a/.config/yazi/yazi.toml b/config/yazi/yazi.toml
index 4f05c94..4f05c94 100644
--- a/.config/yazi/yazi.toml
+++ b/config/yazi/yazi.toml
diff --git a/.config/zk/config.toml b/config/zk/config.toml
index 1e6df92..b9d3ca2 100644
--- a/.config/zk/config.toml
+++ b/config/zk/config.toml
@@ -16,7 +16,7 @@ multiword-tags = true
 
 [tool]
 editor = "nvim"
-shell = "/bin/bash"
+shell = "/bin/zsh"
 fzf-preview = "bat -p --color always {-1}"
 
 [alias]
diff --git a/.config/zk/templates/note.md b/config/zk/templates/note.md
index be4c1d2..be4c1d2 100644
--- a/.config/zk/templates/note.md
+++ b/config/zk/templates/note.md
diff --git a/flake.lock b/flake.lock
new file mode 100644
index 0000000..0d96965
--- /dev/null
+++ b/flake.lock
@@ -0,0 +1,48 @@
+{
+  "nodes": {
+    "home-manager": {
+      "inputs": {
+        "nixpkgs": [
+          "nixpkgs"
+        ]
+      },
+      "locked": {
+        "lastModified": 1771102945,
+        "narHash": "sha256-e5NfW8NhC3qChR8bHVni/asrig/ZFzd1wzpq+cEE/tg=",
+        "owner": "nix-community",
+        "repo": "home-manager",
+        "rev": "ff5e5d882c51f9a032479595cbab40fd04f56399",
+        "type": "github"
+      },
+      "original": {
+        "owner": "nix-community",
+        "repo": "home-manager",
+        "type": "github"
+      }
+    },
+    "nixpkgs": {
+      "locked": {
+        "lastModified": 1771008912,
+        "narHash": "sha256-gf2AmWVTs8lEq7z/3ZAsgnZDhWIckkb+ZnAo5RzSxJg=",
+        "owner": "nixos",
+        "repo": "nixpkgs",
+        "rev": "a82ccc39b39b621151d6732718e3e250109076fa",
+        "type": "github"
+      },
+      "original": {
+        "owner": "nixos",
+        "ref": "nixos-unstable",
+        "repo": "nixpkgs",
+        "type": "github"
+      }
+    },
+    "root": {
+      "inputs": {
+        "home-manager": "home-manager",
+        "nixpkgs": "nixpkgs"
+      }
+    }
+  },
+  "root": "root",
+  "version": 7
+}
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 0000000..93a558c
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,31 @@
+{
+  description = "Home Manager configuration of venomade";
+
+  inputs = {
+    # Specify the source of Home Manager and Nixpkgs.
+    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
+    home-manager = {
+      url = "github:nix-community/home-manager";
+      inputs.nixpkgs.follows = "nixpkgs";
+    };
+  };
+
+  outputs =
+    { nixpkgs, home-manager, ... }:
+    let
+      system = "aarch64-darwin";
+      pkgs = nixpkgs.legacyPackages.${system};
+    in
+    {
+      homeConfigurations."venomade" = home-manager.lib.homeManagerConfiguration {
+        inherit pkgs;
+
+        # Specify your home configuration modules here, for example,
+        # the path to your home.nix.
+        modules = [ ./home.nix ];
+
+        # Optionally use extraSpecialArgs
+        # to pass through arguments to home.nix
+      };
+    };
+}
diff --git a/home.nix b/home.nix
new file mode 100644
index 0000000..7607adc
--- /dev/null
+++ b/home.nix
@@ -0,0 +1,55 @@
+{ config, lib, pkgs, ... }:
+
+{
+  home.username = "venomade";
+  home.homeDirectory = "/Users/venomade";
+
+  home.packages = with pkgs; [
+    # Neovim
+    neovim
+    imagemagick
+    fzf
+    ripgrep
+
+    # Lua
+    lua-language-server
+    lua5_4
+    lua5_4.pkgs.luarocks
+
+    # Personal
+    bat
+    eza
+    jellyfin-tui
+    lazygit
+    starship
+    yazi
+    zk
+    lima
+  ];
+
+  programs.git = {
+    enable = true;
+    settings.user = {
+      name = "venomade";
+      email = "venomade@venomade.com";
+    };
+  };
+
+  home.stateVersion = "25.11";
+
+  programs.home-manager.enable = true;
+
+  home.file =
+    let
+      dir = "${config.home.homeDirectory}/.dotfiles/config";
+    in
+      lib.mapAttrs
+        (name: _: {
+          target = ".config/${name}";
+          source = config.lib.file.mkOutOfStoreSymlink "${dir}/${name}";
+          recursive = true;
+        })
+        (lib.filterAttrs
+          (name: type: type == "directory")
+          (builtins.readDir ./config));
+}