aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreric.marin <maarin.eric@gmail.com>2024-09-11 14:49:39 +0200
committereric.marin <maarin.eric@gmail.com>2024-09-11 14:59:47 +0200
commit9f20c1f313e20102dd83adeaf091284be1fd82d0 (patch)
treed3db386875af532f4fc55c275312c7c787e88f55
downloaddotfiles-9f20c1f313e20102dd83adeaf091284be1fd82d0.tar.gz
dotfiles-9f20c1f313e20102dd83adeaf091284be1fd82d0.zip
config
-rw-r--r--.gitignore1
-rw-r--r--btop/btop.conf248
-rw-r--r--btop/themes/catppuccin_macchiato.theme83
-rw-r--r--eww/eww-bar.pngbin0 -> 6286 bytes
-rw-r--r--eww/eww.scss1
-rw-r--r--eww/eww.yuck27
-rwxr-xr-xeww/scripts/getvol12
-rw-r--r--eww/wallpaperbin0 -> 19754 bytes
-rw-r--r--fastfetch/config.conf518
-rw-r--r--fish/config.fish9
-rw-r--r--fish/fish_plugins1
-rw-r--r--fish/fish_variables45
-rw-r--r--fish/themes/Catppuccin Frappe.theme30
-rw-r--r--fish/themes/Catppuccin Latte.theme30
-rw-r--r--fish/themes/Catppuccin Macchiato.theme30
-rw-r--r--fish/themes/Catppuccin Mocha.theme30
-rw-r--r--foot/foot.ini42
-rw-r--r--hypr/hypridle.conf10
-rw-r--r--hypr/hyprland.conf176
-rw-r--r--hypr/hyprlock.conf41
-rw-r--r--hypr/macchiato.conf61
-rw-r--r--mako/config22
-rw-r--r--nvim/.luarc.json7
-rw-r--r--nvim/init.lua1
-rw-r--r--nvim/lazy-lock.json32
-rw-r--r--nvim/lua/config/globals.lua2
-rw-r--r--nvim/lua/config/init.lua3
-rw-r--r--nvim/lua/config/keymaps.lua36
-rw-r--r--nvim/lua/config/lazy.lua46
-rw-r--r--nvim/lua/config/options.lua39
-rw-r--r--nvim/lua/plugins/catppuccin.lua58
-rw-r--r--nvim/lua/plugins/dashboard-nvim.lua323
-rw-r--r--nvim/lua/plugins/indent-blankline.lua13
-rw-r--r--nvim/lua/plugins/lazy.lua12
-rw-r--r--nvim/lua/plugins/lazydev.lua5
-rw-r--r--nvim/lua/plugins/lspsaga.lua26
-rw-r--r--nvim/lua/plugins/lualine.lua34
-rw-r--r--nvim/lua/plugins/noice.lua22
-rw-r--r--nvim/lua/plugins/nvim-autopairs.lua6
-rw-r--r--nvim/lua/plugins/nvim-cmp.lua62
-rw-r--r--nvim/lua/plugins/nvim-lspconfig.lua82
-rw-r--r--nvim/lua/plugins/nvim-parinfer.lua5
-rw-r--r--nvim/lua/plugins/nvim-treesitter.lua47
-rw-r--r--nvim/lua/plugins/oil.lua38
-rw-r--r--nvim/lua/plugins/telescope.lua53
-rw-r--r--nvim/lua/plugins/todo-comments.lua34
-rw-r--r--nvim/lua/plugins/toggleterm.lua64
-rw-r--r--nvim/lua/plugins/trouble.lua24
-rw-r--r--nvim/lua/plugins/vim-highlightedyank.lua8
-rw-r--r--nvim/lua/plugins/vim-illuminate.lua5
-rw-r--r--nvim/lua/plugins/which-key.lua10
-rw-r--r--nvim/lua/plugins/yuck.lua5
-rw-r--r--paru/paru.conf40
-rw-r--r--rofi/applauncher.rasi58
-rw-r--r--rofi/macchiato.rasi29
-rw-r--r--rofi/powermenu.rasi50
-rwxr-xr-xrofi/powermenu.sh17
-rw-r--r--superfile/config.toml51
-rw-r--r--superfile/hotkeys.toml50
-rw-r--r--tlpui/tlpui.cfg8
-rw-r--r--waybar/config104
-rw-r--r--waybar/macchiato.css29
-rw-r--r--waybar/style.css145
63 files changed, 3100 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9c4c180
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+lazygit
diff --git a/btop/btop.conf b/btop/btop.conf
new file mode 100644
index 0000000..dd634d7
--- /dev/null
+++ b/btop/btop.conf
@@ -0,0 +1,248 @@
+#? Config file for btop v. 1.3.2
+
+#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
+#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
+color_theme = "catppuccin_macchiato"
+
+#* If the theme set background should be shown, set to False if you want terminal background transparency.
+theme_background = True
+
+#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
+truecolor = True
+
+#* Set to true to force tty mode regardless if a real tty has been detected or not.
+#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
+force_tty = False
+
+#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
+#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
+#* Use whitespace " " as separator between different presets.
+#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty"
+presets = "cpu:1:default,proc:0:default"
+
+#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
+#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
+vim_keys = True
+
+#* Rounded corners on boxes, is ignored if TTY mode is ON.
+rounded_corners = True
+
+#* Default symbols to use for graph creation, "braille", "block" or "tty".
+#* "braille" offers the highest resolution but might not be included in all fonts.
+#* "block" has half the resolution of braille but uses more common characters.
+#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY.
+#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view.
+graph_symbol = "braille"
+
+# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
+graph_symbol_cpu = "default"
+
+# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty".
+graph_symbol_gpu = "default"
+
+# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
+graph_symbol_mem = "default"
+
+# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
+graph_symbol_net = "default"
+
+# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
+graph_symbol_proc = "default"
+
+#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace.
+shown_boxes = "cpu mem net proc"
+
+#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
+update_ms = 1000
+
+#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
+#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
+proc_sorting = "cpu lazy"
+
+#* Reverse sorting order, True or False.
+proc_reversed = False
+
+#* Show processes as a tree.
+proc_tree = False
+
+#* Use the cpu graph colors in the process list.
+proc_colors = True
+
+#* Use a darkening gradient in the process list.
+proc_gradient = True
+
+#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
+proc_per_core = False
+
+#* Show process memory as bytes instead of percent.
+proc_mem_bytes = True
+
+#* Show cpu graph for each process.
+proc_cpu_graphs = True
+
+#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
+proc_info_smaps = False
+
+#* Show proc box on left side of screen instead of right.
+proc_left = False
+
+#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
+proc_filter_kernel = False
+
+#* In tree-view, always accumulate child process resources in the parent process.
+proc_aggregate = False
+
+#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
+#* Select from a list of detected attributes from the options menu.
+cpu_graph_upper = "Auto"
+
+#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available.
+#* Select from a list of detected attributes from the options menu.
+cpu_graph_lower = "Auto"
+
+#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off".
+show_gpu_info = "Auto"
+
+#* Toggles if the lower CPU graph should be inverted.
+cpu_invert_lower = True
+
+#* Set to True to completely disable the lower CPU graph.
+cpu_single_graph = False
+
+#* Show cpu box at bottom of screen instead of top.
+cpu_bottom = False
+
+#* Shows the system uptime in the CPU box.
+show_uptime = True
+
+#* Show cpu temperature.
+check_temp = True
+
+#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
+cpu_sensor = "Auto"
+
+#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
+show_coretemp = True
+
+#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
+#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
+#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries.
+#* Example: "4:0 5:1 6:3"
+cpu_core_map = ""
+
+#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine".
+temp_scale = "celsius"
+
+#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
+base_10_sizes = False
+
+#* Show CPU frequency.
+show_cpu_freq = True
+
+#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
+#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
+clock_format = "%X"
+
+#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
+background_update = True
+
+#* Custom cpu model name, empty string to disable.
+custom_cpu_name = ""
+
+#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
+#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user".
+disks_filter = ""
+
+#* Show graphs instead of meters for memory values.
+mem_graphs = True
+
+#* Show mem box below net box instead of above.
+mem_below_net = False
+
+#* Count ZFS ARC in cached and available memory.
+zfs_arc_cached = True
+
+#* If swap memory should be shown in memory box.
+show_swap = True
+
+#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
+swap_disk = True
+
+#* If mem box should be split to also show disks info.
+show_disks = True
+
+#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
+only_physical = True
+
+#* Read disks list from /etc/fstab. This also disables only_physical.
+use_fstab = True
+
+#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
+zfs_hide_datasets = False
+
+#* Set to true to show available disk space for privileged users.
+disk_free_priv = False
+
+#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
+show_io_stat = True
+
+#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
+io_mode = False
+
+#* Set to True to show combined read/write io graphs in io mode.
+io_graph_combined = False
+
+#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
+#* Example: "/mnt/media:100 /:20 /boot:1".
+io_graph_speeds = ""
+
+#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
+net_download = 100
+
+net_upload = 100
+
+#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
+net_auto = True
+
+#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
+net_sync = True
+
+#* Starts with the Network Interface specified here.
+net_iface = ""
+
+#* Show battery stats in top right if battery is present.
+show_battery = True
+
+#* Which battery to use if multiple are present. "Auto" for auto detection.
+selected_battery = "Auto"
+
+#* Show power stats of battery next to charge indicator.
+show_battery_watts = True
+
+#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
+#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
+log_level = "WARNING"
+
+#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
+nvml_measure_pcie_speeds = True
+
+#* Horizontally mirror the GPU graph.
+gpu_mirror_graph = True
+
+#* Custom gpu0 model name, empty string to disable.
+custom_gpu_name0 = ""
+
+#* Custom gpu1 model name, empty string to disable.
+custom_gpu_name1 = ""
+
+#* Custom gpu2 model name, empty string to disable.
+custom_gpu_name2 = ""
+
+#* Custom gpu3 model name, empty string to disable.
+custom_gpu_name3 = ""
+
+#* Custom gpu4 model name, empty string to disable.
+custom_gpu_name4 = ""
+
+#* Custom gpu5 model name, empty string to disable.
+custom_gpu_name5 = ""
diff --git a/btop/themes/catppuccin_macchiato.theme b/btop/themes/catppuccin_macchiato.theme
new file mode 100644
index 0000000..86819d2
--- /dev/null
+++ b/btop/themes/catppuccin_macchiato.theme
@@ -0,0 +1,83 @@
+# Main background, empty for terminal default, need to be empty if you want transparent background
+theme[main_bg]="#24273A"
+
+# Main text color
+theme[main_fg]="#CAD3F5"
+
+# Title color for boxes
+theme[title]="#CAD3F5"
+
+# Highlight color for keyboard shortcuts
+theme[hi_fg]="#8AADF4"
+
+# Background color of selected item in processes box
+theme[selected_bg]="#494D64"
+
+# Foreground color of selected item in processes box
+theme[selected_fg]="#8AADF4"
+
+# Color of inactive/disabled text
+theme[inactive_fg]="#8087A2"
+
+# Color of text appearing on top of graphs, i.e uptime and current network graph scaling
+theme[graph_text]="#F4DBD6"
+
+# Background color of the percentage meters
+theme[meter_bg]="#494D64"
+
+# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
+theme[proc_misc]="#F4DBD6"
+
+# CPU, Memory, Network, Proc box outline colors
+theme[cpu_box]="#c6a0f6" #Mauve
+theme[mem_box]="#a6da95" #Green
+theme[net_box]="#ee99a0" #Maroon
+theme[proc_box]="#8aadf4" #Blue
+
+# Box divider line and small boxes line color
+theme[div_line]="#6E738D"
+
+# Temperature graph color (Green -> Yellow -> Red)
+theme[temp_start]="#a6da95"
+theme[temp_mid]="#eed49f"
+theme[temp_end]="#ed8796"
+
+# CPU graph colors (Teal -> Lavender)
+theme[cpu_start]="#8bd5ca"
+theme[cpu_mid]="#7dc4e4"
+theme[cpu_end]="#b7bdf8"
+
+# Mem/Disk free meter (Mauve -> Lavender -> Blue)
+theme[free_start]="#c6a0f6"
+theme[free_mid]="#b7bdf8"
+theme[free_end]="#8aadf4"
+
+# Mem/Disk cached meter (Sapphire -> Lavender)
+theme[cached_start]="#7dc4e4"
+theme[cached_mid]="#8aadf4"
+theme[cached_end]="#b7bdf8"
+
+# Mem/Disk available meter (Peach -> Red)
+theme[available_start]="#f5a97f"
+theme[available_mid]="#ee99a0"
+theme[available_end]="#ed8796"
+
+# Mem/Disk used meter (Green -> Sky)
+theme[used_start]="#a6da95"
+theme[used_mid]="#8bd5ca"
+theme[used_end]="#91d7e3"
+
+# Download graph colors (Peach -> Red)
+theme[download_start]="#f5a97f"
+theme[download_mid]="#ee99a0"
+theme[download_end]="#ed8796"
+
+# Upload graph colors (Green -> Sky)
+theme[upload_start]="#a6da95"
+theme[upload_mid]="#8bd5ca"
+theme[upload_end]="#91d7e3"
+
+# Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve)
+theme[process_start]="#7dc4e4"
+theme[process_mid]="#b7bdf8"
+theme[process_end]="#c6a0f6"
diff --git a/eww/eww-bar.png b/eww/eww-bar.png
new file mode 100644
index 0000000..e6de6a8
--- /dev/null
+++ b/eww/eww-bar.png
Binary files differ
diff --git a/eww/eww.scss b/eww/eww.scss
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/eww/eww.scss
@@ -0,0 +1 @@
+
diff --git a/eww/eww.yuck b/eww/eww.yuck
new file mode 100644
index 0000000..4435928
--- /dev/null
+++ b/eww/eww.yuck
@@ -0,0 +1,27 @@
+(defwidget labeled-circular-progress [text value]
+ (overlay
+ (circular-progress :start-at 75 :thickness 5
+ :value value)
+ text))
+
+(defwidget stats []
+ (box :orientation "vertical"
+ (box :orientation "horizontal"
+ (labeled-circular-progress :text "CPU" :value {EWW_CPU.avg})
+ (labeled-circular-progress :text "RAM" :value {EWW_RAM.used_mem_perc}))
+ (box :orientation "horizontal"
+ (labeled-circular-progress :text "TMP" :value {EWW_TEMPS.THERMAL_ZONE0.temperature})
+ (labeled-circular-progress :text "BAT" :value {EWW_BATTERY.BAT0.capacity}))
+ (box :orientation "horizontal"
+ (labeled-circular-progress :text "SDD" :value {EWW_DISK["/"].used_perc})
+ (labeled-circular-progress :text "NET" :value {EWW_NET.WLO1.up}))))
+
+(defwindow test
+ :monitor 0
+ :geometry (geometry :width "25%" :height "25%"
+ :anchor "center")
+ :stacking "fg"
+ :windowtype "normal"
+ :wm-ignore false
+ (stats))
+
diff --git a/eww/scripts/getvol b/eww/scripts/getvol
new file mode 100755
index 0000000..4e4275d
--- /dev/null
+++ b/eww/scripts/getvol
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+if command -v pamixer &>/dev/null; then
+ if [ true == $(pamixer --get-mute) ]; then
+ echo 0
+ exit
+ else
+ pamixer --get-volume
+ fi
+else
+ amixer -D pulse sget Master | awk -F '[^0-9]+' '/Left:/{print $3}'
+fi
diff --git a/eww/wallpaper b/eww/wallpaper
new file mode 100644
index 0000000..edb31e2
--- /dev/null
+++ b/eww/wallpaper
Binary files differ
diff --git a/fastfetch/config.conf b/fastfetch/config.conf
new file mode 100644
index 0000000..a467dbc
--- /dev/null
+++ b/fastfetch/config.conf
@@ -0,0 +1,518 @@
+# Fastfetch configuration
+# Write every argument in different lines.
+# Direct arguments will overwrite the corresponding ones in this file.
+# Argument keys are not case sensitive.
+# Whitespaces are trimmed at the beginning and the end.
+# Empty lines or lines starting with # are ignored.
+
+# This file was shipped with 2.1.0.
+# Use fastfetch --gen-config-force to overwrite this file with the current defaults
+
+# Below some often usefull options are listed. Uncomment and modify them so they take affect.
+# Note that there are a lot more options than the ones listed here, take a look at "fastfetch --help".
+# Of course all of them can be made persistent here too.
+
+# Config option:
+# Load additional config files.
+# Some are shipped with fastfetch, list them with "fastfetch --list-presets".
+# Must be a path to a config file or the name of a shipped preset.
+# The config file is completely loaded before continuing in the current file, so the placement of this option matters, as later options overwrite already set ones.
+# Can be used multiple times to load multiple config files / presets.
+#--load-config /path/to/config.txt
+
+# Structure option:
+# Sets the modules to use and their order.
+# Must be a list of module names, separated by colons.
+# List available modules with "fastfetch --list-modules".
+# Get the default structure with "fastfetch --print-structure".
+--structure OS:Kernel:Uptime:Packages:CPU:GPU:Memory:Disk:Break
+
+# Multithreading option:
+# Sets if fastfetch should use multiple threads to detect the values.
+# Must be true or false.
+# Default is true.
+--multithreading true
+
+# Print stat option:
+# Sets if fastfetch should print time usage (in ms) for individual modules
+# If true, it will also enable --show-errors
+# Must be true or false.
+# Default is false.
+#--stat true
+
+# Slow operations option:
+# Sets if fastfetch is allowed to use known slow operations to detect more / better values.
+# Must be true or false.
+# Default is false.
+#--allow-slow-operations false
+
+# Linewrap option:
+# Sets if fastfetch should disable linewrap during the run.
+# Must be true or false.
+# Default is true.
+#--disable-linewrap true
+
+# Cursor option:
+# Sets if fastfetch should hide the console cursor during the run.
+# Must be true or false.
+# Default is true.
+#--hide-cursor true
+
+# Processing timeout option:
+# Sets the timeout (ms) when waiting for child processes
+# Must be an integer.
+# Default is 1000
+#--processing-timeout 1000
+
+# WMI timeout option:
+# Sets the timeout (ms) for WMI queries. Windows only
+# Must be an integer.
+# Default is 5000
+#--wmi-timeout 5000
+
+# Logo option:
+# Sets the logo to use.
+# List available logos with "fastfetch --list-logos".
+# Print available logos with "fastfetch --print-logos".
+# Must be the name of an available logo or a path to a text file containing a custom logo.
+# Default is the current distribution.
+--logo arch_small
+
+# Logo type option:
+# Sets the logo type to use.
+# Must be auto, builtin, file, file-raw, data, data-raw, sixel, kitty or chafa.
+# Default is auto.
+#--logo-type auto
+
+# Logo width option:
+# Sets the width of the logo (in characters) if the logo is an image.
+# Must be a positive integer.
+# Default is 65.
+#--logo-width 65
+
+# Logo height option:
+# Sets the height of the logo (in characters) if the logo is an image.
+# Must be a positive integer.
+# Default is 0 (keeps aspect ration).
+#--logo-height 0
+
+# Logo color options:
+# Overwrite a color in the logo. Also works for user provided logos.
+# In the user logo, they replace $[1-9]. Use $$ to print a single $ sign.
+# Must be linux console color codes or the name of a color.
+# Default is the one specified by the logo.
+# Use "fastfetch --help color" to learn more and see examples.
+# Valid index range is [1-9].
+#--logo-color-1 red
+#--logo-color-2 32
+# [...]
+#--logo-color-9 yellow
+
+# Logo padding option:
+# Adds a padding to the left and the right side of the logo.
+# Must be a positive integer.
+# Default is 0.
+#--logo-padding 0
+
+# Logo padding left option:
+# Adds a padding to the left side of the logo.
+# Must be a positive integer.
+# Default is 0.
+#--logo-padding-left 0
+
+# Logo padding right option:
+# Adds a padding to the right side of the logo.
+# Must be a positive integer.
+# Default is 0.
+#--logo-padding-right 0
+
+# Logo padding top option:
+# Adds a padding to the top side of the logo.
+# Must be a positive integer.
+# Default is 0.
+#--logo-padding-top 0
+
+# Logo print remaining option:
+# Sets if the remaining logo should be printed, it is has more lines than modules to show.
+# Must be true or false.
+# Default is true.
+#--logo-print-remaining true
+
+# Color keys option:
+# Sets the color of the keys.
+# Must be linux console color codes or the name of a color.
+# Default is the key color of the logo.
+# Use "fastfetch --help color" to learn more and see examples.
+--color-keys red
+
+# Color title option:
+# Sets the color of the title.
+# Must be linux console color codes or the name of a color.
+# Default is the title color of the logo.
+# Use "fastfetch --help color" to learn more and see examples.
+--color-title red
+
+# Binary prefix option:
+# Sets the binary prefix to use.
+# Must be a IEC, SI or JEDEC.
+# Default is IEC.
+#--binary-prefix IEC
+
+# Size number of digits option:
+# Sets the number of digits to keep after the decimal point when formatting sizes.
+# Must be an possitive integer.
+# Default is 2.
+#--size-ndigits 2
+
+# Size max prefix option:
+# Sets the largest binary prefix to use when formatting sizes.
+# Must be one of B, kB, MB, GB, TB, PB, EB, ZB, YB
+# Default is YB.
+#--size-max-prefix YB
+
+# Disable output buffer option:
+# Sets if the stdout application buffer should be disabled.
+# Must be true or false.
+# Default is false.
+#--no-buffer false
+
+# Title FQDN option:
+# Sets if the title should use the fully qualified domain name.
+# Must be true or false.
+# Default is false.
+#--title-fqdn false
+
+# Title user color option:
+# Sets color of the user name (left part).
+# Default is empty (use color of `--color-title`).
+#--title-color-user
+
+# Title at color option:
+# Sets color of the @ symbol (middle part).
+# Default is empty (use color of `--color-title`).
+#--title-color-at
+
+# Title host color option:
+# Sets color of the host name (right part).
+# Default is empty (use color of `--color-title`).
+#--title-color-host
+
+# Separator option:
+# Sets the string placed between a key and its value.
+# Can be any string.
+# Default is ": ".
+#--separator ": "
+
+# Separator string option:
+# Sets the string printed by the "separator" module (usually between title and rest of output)
+# Must be any string. It is repated / cut to fit perfectly.
+# Default is "-"
+#--separator-string -
+
+# Public IP URL option:
+# Sets the URL of public IP detection server to be used.
+# Only HTTP protocol is supported, and the value should not contain "http://" prefix.
+# Default is "ipinfo.io/ip".
+#--publicip-url "ipinfo.io/ip"
+
+# Public IP timeout option:
+# Sets the time to wait for the public ip server to respond.
+# Must be a positive integer.
+# Default is 0 (disabled).
+#--publicip-timeout 0
+
+# Weather location option:
+# Sets the location to be used. It must be URI encoded (eg a whitespace must be encoded as `+`).
+# Default is empty (guessing by public IP)
+#--weather-location "Location"
+
+# Weather output format option:
+# Sets the weather format to be used. It must be URI encoded.
+# See: https://github.com/chubin/wttr.in#one-line-output
+# Default is "%t+-+%C+(%l)".
+#--weather-output-format "%t+-+%C+(%l)"
+
+# Weather timeout option:
+# Sets the time to wait for the weather server (wttr.in) to respond.
+# Must be a positive integer.
+# Default is 0 (disabled).
+#--weather-timeout 0
+
+# OS file option
+# Sets the path to the file containing the operating system information.
+# Should be a valid path to an existing file.
+# Default is /etc/os-release.
+#--os-file /etc/os-release
+
+# Player name option
+# Sets the name of the player. This is also used in song detection
+# Must be the exact name of the player or a dbus address (e.g. org.mpris.MediaPlayer2.spotify)
+# Default is the first match starting with org.mpris.MediaPlayer2.
+#--player-name spotify
+
+# Display server force DRM option
+# Sets if fastfetch should only use `/sys/class/drm` to detect displays if you get issues with the default behavior.
+# Note DRM doesn't support refresh rate or scaled resolution detection.
+# Only supported on Linux.
+# Must be true or false.
+# Default is false.
+#--ds-force-drm false
+
+# Escape bedrock option
+# Sets if fastfetch should escape the bedrock jail, if it detectes that it is running in one
+# Must be true or false.
+# Default is true.
+#--escape-bedrock true
+
+# OpenGL option
+# Sets with opengl context creation library to use
+# Must be either auto, egl, glx or osmesa
+# Default is auto.
+#--opengl-library auto
+
+# GPU hide options
+# Sets whether to hide certain gpu types
+# Must be either true or false
+# Default is false.
+#--gpu-hide-integrated
+#--gpu-hide-discrete
+
+# GPU detection options
+# Forces using vulkan to detect GPUs
+# which support video memory usage detection with `--allow-slow-operations`
+# Must be either true or false
+# Default is false.
+#--gpu-force-vulkan
+
+# Disk show options
+# Sets if certain types of disk should be printed
+# Must be either true or false
+# Default is false except for --disk-show-external.
+#--disk-show-external true
+#--disk-show-hidden false
+#--disk-show-subvolumes false
+#--disk-show-unknown false
+
+# Disk option
+# A colon (semicolon on Windows) separated list of folder paths for the disk output
+# This option override `--disk-show-*` options above
+# Must be a string
+# Default is "/:/home" ("C:\;D:\ ..." on Windows).
+#--disk-folders /:/home
+
+# Bluetooth show disconnected option
+# Sets if disconnected bluetooth devices should be printed
+# Must be either true or false
+# Default is false.
+#--bluetooth-show-disconnected false
+
+# Display compact output option
+# Sets if all displays should be printed in one line
+# Must be either original (print pixel resolution) or scaled (print scaled resolution)
+# Default is none.
+#--display-compact-type none
+
+# Display detect name option
+# Sets if display name should be detected and printed (if supported)
+# Must be either true of false
+# Default is false.
+#--display-detect-name none
+
+# Display precise refresh rate option
+# Sets if decimal refresh rates should not be rounded into integers when printing
+# Must be either true (keep decimals) of false (round into integers)
+# Default is false.
+#--display-precise-refresh-rate false
+
+# Sound show all option
+# Sets if all sound devices should be printed
+# Must be either main, active or all. Default is main
+# Default is main.
+#--sound-type main
+
+# Percentage output type option
+# Applies to all modules that prints percentage values. Currently memory, swap, disk, battery and CPU usage are supported.
+# Only works with default format ( without --module-format option ).
+# 0: prints none; 1: prints percent number only; 2: prints bar only; 3: prints both percent number and bar; 6: prints bar and hide other texts; 9: prints colored number
+#--percent-type 1
+
+# Key options:
+# Sets the displayed key of a module
+# Can be any string. Some of theme take an argument like a format string. See "fastfetch --help format" for help.
+--os-key "󰣇 OS"
+#--host-key Host
+#--chassis-key Chassis
+--kernel-key " Kernel"
+--uptime-key "󰬬 Uptime"
+#--processes-key Processes
+--packages-key " Packages"
+#--shell-key Shell
+#--display-key Display {1}
+#--brightness-key Brightness ({1})
+#--monitor-key Monitor
+#--de-key DE
+#--wm-key WM
+#--wmtheme-key WM Theme
+#--theme-key Theme
+#--icons-key Icons
+#--font-key Font
+#--cursor-key Cursor
+#--terminal-key Terminal
+#--terminalfont-key Terminal Font
+--cpu-key " CPU"
+--gpu-key " GPU"
+--memory-key "󰘚 Memory"
+#--swap-key Swap
+--disk-key "󰋊 Disk"
+#--battery-key Battery {1}
+#--poweradapter-key Power Adapter {1}
+#--lm-key LM
+#--locale-key Locale
+#--localip-key Local IP ({1})
+#--netio-key Network IO ({1})
+#--publicip-key Public IP
+#--wifi-key Wifi
+#--weather-key Weather
+#--player-key Media Player
+#--media-key Media
+#--datetime-key Date Time
+#--version-key Version
+#--vulkan-key Vulkan
+#--opengl-key OpenGL
+#--opencl-key OpenCL
+#--users-key Users
+#--bluetooth-key Bluetooth
+#--sound-key Sound
+#--gamepad-key Gamepad
+#--wallpaper-key Wallpaper
+
+# Format options:
+# Sets the format string for module values.
+# For information on format strings, see "fastfetch --help format".
+# To see the parameter they take and their default value, see "fastfetch --help *-format", e.g. "fastfetch --help os-format".
+# An empty format string (As they are currently below) will behave as if it was not set.
+#--title-format
+#--os-format
+#--host-format
+#--chassis-format
+#--kernel-format
+#--uptime-format
+#--processes-format
+#--packages-format
+#--shell-format
+#--display-format
+#--brightness-format
+#--de-format
+#--wm-format
+#--wmtheme-format
+#--theme-format
+#--icons-format
+#--font-format
+#--cursor-format
+#--terminal-format
+#--terminalfont-format
+#--cpu-format
+#--cpuusage-format
+#--gpu-format
+#--memory-format
+#--swap-format
+#--disk-format
+#--battery-format
+#--poweradapter-format
+#--lm-format
+#--locale-format
+#--localip-format
+#--netio-format
+#--publicip-format
+#--weather-format
+#--monitor-format
+#--player-format
+#--media-format
+#--datetime-format
+#--version-format
+#--vulkan-format
+#--opengl-format
+#--opencl-format
+#--users-format
+#--bluetooth-format
+#--sound-format
+#--gamepad-format
+#--wallpaper-format
+
+# Key color options:
+# Overrides the global `--color-keys` for one specified module
+#--title-key-color
+--os-key-color red
+#--host-key-color
+#--chassis-key-color
+--kernel-key-color yellow
+--uptime-key-color green
+#--processes-key-color
+--packages-key-color cyan
+#--shell-key-color
+#--display-key-color
+#--brightness-key-color
+#--de-key-color
+#--wm-key-color
+#--wmtheme-key-color
+#--theme-key-color
+#--icons-key-color
+#--font-key-color
+#--cursor-key-color
+#--terminal-key-color
+#--terminalfont-key-color
+--cpu-key-color blue
+#--cpuusage-key-color
+--gpu-key-color magenta
+--memory-key-color white
+#--swap-key-color
+--disk-key-color black
+#--battery-key-color
+#--poweradapter-key-color
+#--lm-key-color
+#--locale-key-color
+#--localip-key-color
+#--netio-key-color
+#--publicip-key-color
+#--weather-key-color
+#--monitor-key-color
+#--player-key-color
+#--media-key-color
+#--datetime-key-color
+#--version-key-color
+#--vulkan-key-color
+#--opengl-key-color
+#--opencl-key-color
+#--users-key-color
+#--bluetooth-key-color
+#--sound-key-color
+#--gamepad-key-color
+#--wallpaper-key-color
+
+# Library options:
+# Sets an user specific path to a library to load.
+# Must be a valid path to a library.
+#--lib-PCI /usr/lib/libpci.so
+#--lib-vulkan /usr/lib/libvulkan.so (libMoltenVK.dylib on macOS)
+#--lib-wayland /usr/lib/libwayland-client.so
+#--lib-xcb-randr /usr/lib/libxcb-randr.so
+#--lib-xcb /usr/lib/libxcb.so
+#--lib-Xrandr /usr/lib/libXrandr.so
+#--lib-X11 /usr/lib/libX11.so
+#--lib-gio /usr/lib/libgio-2.0.so
+#--lib-DConf /usr/lib/libdconf.so
+#--lib-DBus /usr/lib/libdbus-1.so
+#--lib-XFConf /usr/lib/libxfconf-0.so
+#--lib-sqlite3 /usr/lib/libsqlite3.so
+#--lib-rpm /usr/lib/librpm.so
+#--lib-imagemagick /usr/lib/libMagickCore-7.Q16HDRI.so
+#--lib-z /usr/lib/libz.so
+#--lib-chafa /usr/lib/libchafa.so
+#--lib-egl /usr/lib/libEGL.so
+#--lib-glx /usr/lib/libGLX.so
+#--lib-osmesa /usr/lib/libOSMesa.so
+#--lib-opencl /usr/lib/libOpenCL.so
+#--lib-freetype /data/data/com.termux/files/usr/lib
+#--lib-pulse /usr/lib/libpulse.so
+#--lib-ddcutil /usr/lib/libddcutil.so
+#--lib-nm /usr/lib/libnm.so
diff --git a/fish/config.fish b/fish/config.fish
new file mode 100644
index 0000000..5ad4222
--- /dev/null
+++ b/fish/config.fish
@@ -0,0 +1,9 @@
+function fish_prompt
+ printf '%s%s%s $ ' \ (set_color $fish_color_cwd) (prompt_pwd --full-length-dirs 5) (set_color normal)
+end
+
+if status is-interactive
+ # Commands to run in interactive sessions can go here
+
+ set -g fish_greeting ''
+end
diff --git a/fish/fish_plugins b/fish/fish_plugins
new file mode 100644
index 0000000..797cf45
--- /dev/null
+++ b/fish/fish_plugins
@@ -0,0 +1 @@
+catppuccin/fish
diff --git a/fish/fish_variables b/fish/fish_variables
new file mode 100644
index 0000000..f4aa9c7
--- /dev/null
+++ b/fish/fish_variables
@@ -0,0 +1,45 @@
+# This file contains fish universal variable definitions.
+# VERSION: 3.0
+SETUVAR __fish_initialized:3400
+SETUVAR _fisher_catppuccin_2F_fish_files:\x7e/\x2econfig/fish/themes/Catppuccin\x20Frappe\x2etheme\x1e\x7e/\x2econfig/fish/themes/Catppuccin\x20Latte\x2etheme\x1e\x7e/\x2econfig/fish/themes/Catppuccin\x20Macchiato\x2etheme\x1e\x7e/\x2econfig/fish/themes/Catppuccin\x20Mocha\x2etheme
+SETUVAR _fisher_plugins:catppuccin/fish
+SETUVAR _fisher_upgraded_to_4_4:\x1d
+SETUVAR fish_color_autosuggestion:6e738d
+SETUVAR fish_color_cancel:ed8796
+SETUVAR fish_color_command:8aadf4
+SETUVAR fish_color_comment:8087a2
+SETUVAR fish_color_cwd:eed49f
+SETUVAR fish_color_cwd_root:red
+SETUVAR fish_color_end:f5a97f
+SETUVAR fish_color_error:ed8796
+SETUVAR fish_color_escape:ee99a0
+SETUVAR fish_color_gray:6e738d
+SETUVAR fish_color_history_current:\x2d\x2dbold
+SETUVAR fish_color_host:8aadf4
+SETUVAR fish_color_host_remote:a6da95
+SETUVAR fish_color_keyword:ed8796
+SETUVAR fish_color_normal:cad3f5
+SETUVAR fish_color_operator:f5bde6
+SETUVAR fish_color_option:a6da95
+SETUVAR fish_color_param:f0c6c6
+SETUVAR fish_color_quote:a6da95
+SETUVAR fish_color_redirection:f5bde6
+SETUVAR fish_color_search_match:\x2d\x2dbackground\x3d363a4f
+SETUVAR fish_color_selection:\x2d\x2dbackground\x3d363a4f
+SETUVAR fish_color_status:ed8796
+SETUVAR fish_color_user:8bd5ca
+SETUVAR fish_color_valid_path:\x2d\x2dunderline
+SETUVAR fish_key_bindings:fish_default_key_bindings
+SETUVAR fish_pager_color_background:\x1d
+SETUVAR fish_pager_color_completion:cad3f5
+SETUVAR fish_pager_color_description:6e738d
+SETUVAR fish_pager_color_prefix:f5bde6
+SETUVAR fish_pager_color_progress:6e738d
+SETUVAR fish_pager_color_secondary_background:\x1d
+SETUVAR fish_pager_color_secondary_completion:\x1d
+SETUVAR fish_pager_color_secondary_description:\x1d
+SETUVAR fish_pager_color_secondary_prefix:\x1d
+SETUVAR fish_pager_color_selected_background:\x1d
+SETUVAR fish_pager_color_selected_completion:\x1d
+SETUVAR fish_pager_color_selected_description:\x1d
+SETUVAR fish_pager_color_selected_prefix:\x1d
diff --git a/fish/themes/Catppuccin Frappe.theme b/fish/themes/Catppuccin Frappe.theme
new file mode 100644
index 0000000..3dc51d4
--- /dev/null
+++ b/fish/themes/Catppuccin Frappe.theme
@@ -0,0 +1,30 @@
+# name: 'Catppuccin frappe'
+# url: 'https://github.com/catppuccin/fish'
+# preferred_background: 303446
+
+fish_color_normal c6d0f5
+fish_color_command 8caaee
+fish_color_param eebebe
+fish_color_keyword e78284
+fish_color_quote a6d189
+fish_color_redirection f4b8e4
+fish_color_end ef9f76
+fish_color_comment 838ba7
+fish_color_error e78284
+fish_color_gray 737994
+fish_color_selection --background=414559
+fish_color_search_match --background=414559
+fish_color_option a6d189
+fish_color_operator f4b8e4
+fish_color_escape ea999c
+fish_color_autosuggestion 737994
+fish_color_cancel e78284
+fish_color_cwd e5c890
+fish_color_user 81c8be
+fish_color_host 8caaee
+fish_color_host_remote a6d189
+fish_color_status e78284
+fish_pager_color_progress 737994
+fish_pager_color_prefix f4b8e4
+fish_pager_color_completion c6d0f5
+fish_pager_color_description 737994
diff --git a/fish/themes/Catppuccin Latte.theme b/fish/themes/Catppuccin Latte.theme
new file mode 100644
index 0000000..23a514e
--- /dev/null
+++ b/fish/themes/Catppuccin Latte.theme
@@ -0,0 +1,30 @@
+# name: 'Catppuccin latte'
+# url: 'https://github.com/catppuccin/fish'
+# preferred_background: eff1f5
+
+fish_color_normal 4c4f69
+fish_color_command 1e66f5
+fish_color_param dd7878
+fish_color_keyword d20f39
+fish_color_quote 40a02b
+fish_color_redirection ea76cb
+fish_color_end fe640b
+fish_color_comment 8c8fa1
+fish_color_error d20f39
+fish_color_gray 9ca0b0
+fish_color_selection --background=ccd0da
+fish_color_search_match --background=ccd0da
+fish_color_option 40a02b
+fish_color_operator ea76cb
+fish_color_escape e64553
+fish_color_autosuggestion 9ca0b0
+fish_color_cancel d20f39
+fish_color_cwd df8e1d
+fish_color_user 179299
+fish_color_host_remote 40a02b
+fish_color_host 1e66f5
+fish_color_status d20f39
+fish_pager_color_progress 9ca0b0
+fish_pager_color_prefix ea76cb
+fish_pager_color_completion 4c4f69
+fish_pager_color_description 9ca0b0
diff --git a/fish/themes/Catppuccin Macchiato.theme b/fish/themes/Catppuccin Macchiato.theme
new file mode 100644
index 0000000..e90b630
--- /dev/null
+++ b/fish/themes/Catppuccin Macchiato.theme
@@ -0,0 +1,30 @@
+# name: 'Catppuccin macchiato'
+# url: 'https://github.com/catppuccin/fish'
+# preferred_background: 24273a
+
+fish_color_normal cad3f5
+fish_color_command 8aadf4
+fish_color_param f0c6c6
+fish_color_keyword ed8796
+fish_color_quote a6da95
+fish_color_redirection f5bde6
+fish_color_end f5a97f
+fish_color_comment 8087a2
+fish_color_error ed8796
+fish_color_gray 6e738d
+fish_color_selection --background=363a4f
+fish_color_search_match --background=363a4f
+fish_color_option a6da95
+fish_color_operator f5bde6
+fish_color_escape ee99a0
+fish_color_autosuggestion 6e738d
+fish_color_cancel ed8796
+fish_color_cwd eed49f
+fish_color_user 8bd5ca
+fish_color_host 8aadf4
+fish_color_host_remote a6da95
+fish_color_status ed8796
+fish_pager_color_progress 6e738d
+fish_pager_color_prefix f5bde6
+fish_pager_color_completion cad3f5
+fish_pager_color_description 6e738d
diff --git a/fish/themes/Catppuccin Mocha.theme b/fish/themes/Catppuccin Mocha.theme
new file mode 100644
index 0000000..2b0c71c
--- /dev/null
+++ b/fish/themes/Catppuccin Mocha.theme
@@ -0,0 +1,30 @@
+# name: 'Catppuccin mocha'
+# url: 'https://github.com/catppuccin/fish'
+# preferred_background: 1e1e2e
+
+fish_color_normal cdd6f4
+fish_color_command 89b4fa
+fish_color_param f2cdcd
+fish_color_keyword f38ba8
+fish_color_quote a6e3a1
+fish_color_redirection f5c2e7
+fish_color_end fab387
+fish_color_comment 7f849c
+fish_color_error f38ba8
+fish_color_gray 6c7086
+fish_color_selection --background=313244
+fish_color_search_match --background=313244
+fish_color_option a6e3a1
+fish_color_operator f5c2e7
+fish_color_escape eba0ac
+fish_color_autosuggestion 6c7086
+fish_color_cancel f38ba8
+fish_color_cwd f9e2af
+fish_color_user 94e2d5
+fish_color_host 89b4fa
+fish_color_host_remote a6e3a1
+fish_color_status f38ba8
+fish_pager_color_progress 6c7086
+fish_pager_color_prefix f5c2e7
+fish_pager_color_completion cdd6f4
+fish_pager_color_description 6c7086
diff --git a/foot/foot.ini b/foot/foot.ini
new file mode 100644
index 0000000..653a78d
--- /dev/null
+++ b/foot/foot.ini
@@ -0,0 +1,42 @@
+font=Hack Nerd Font:size=10,Noto Color Emoji:size=10,Sazanami Gothic:size=10
+pad=15x15
+dpi-aware=true
+term=foot-extra
+
+[cursor]
+style=block
+blink=yes
+
+[scrollback]
+indicator-position=none
+
+[colors]
+foreground=cad3f5
+background=24273a
+
+regular0=494d64
+regular1=ed8796
+regular2=a6da95
+regular3=eed49f
+regular4=8aadf4
+regular5=f5bde6
+regular6=8bd5ca
+regular7=b8c0e0
+
+bright0=5b6078
+bright1=ed8796
+bright2=a6da95
+bright3=eed49f
+bright4=8aadf4
+bright5=f5bde6
+bright6=8bd5ca
+bright7=a5adcb
+
+selection-foreground=cad3f5
+selection-background=454a5f
+
+search-box-no-match=181926 ed8796
+search-box-match=cad3f5 363a4f
+
+jump-labels=181926 f5a97f
+urls=8aadf4
diff --git a/hypr/hypridle.conf b/hypr/hypridle.conf
new file mode 100644
index 0000000..1389d93
--- /dev/null
+++ b/hypr/hypridle.conf
@@ -0,0 +1,10 @@
+general {
+ lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
+ before_sleep_cmd = loginctl lock-session # lock before suspend.
+ after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
+}
+
+listener {
+ timeout = 300
+ on-timeout = loginctl lock-session
+}
diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf
new file mode 100644
index 0000000..d46bf4d
--- /dev/null
+++ b/hypr/hyprland.conf
@@ -0,0 +1,176 @@
+# This is an example Hyprland config file.
+#
+# Refer to the wiki for more information.
+
+#
+# Please note not all available settings / options are set here.
+# For a full list, see the wiki
+#
+
+# See https://wiki.hyprland.org/Configuring/Monitors/
+monitor = eDP-1, 2560x1600@60, 0x0, 2
+
+
+# See https://wiki.hyprland.org/Configuring/Keywords/ for more
+
+# Execute your favorite apps at launch
+exec-once = hypridle & foot -s & waybar & wbg Pictures/Backgrounds/sourcerer.png
+
+# Source a file (multi-file configs)
+source = ~/.config/hypr/macchiato.conf
+
+# Set programs that you use
+$rofi_path = ~/.config/rofi
+$terminal = footclient
+$applauncher = rofi -show drun -theme $rofi_path/applauncher.rasi
+$powermenu = $rofi_path/powermenu.sh
+
+# Some default env vars.
+env = XCURSOR_SIZE,24
+env = QT_QPA_PLATFORMTHEME,qt5ct # change to qt6ct if you have that
+
+# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
+input {
+ kb_layout = it
+
+ follow_mouse = 1
+ mouse_refocus = false
+
+ touchpad {
+ natural_scroll = false
+ disable_while_typing = false
+ }
+
+ sensitivity = -0.125 # -1.0 - 1.0, 0 means no modification.
+}
+
+general {
+ # See https://wiki.hyprland.org/Configuring/Variables/ for more
+
+ gaps_in = 5
+ gaps_out = 10
+ border_size = 2
+ col.active_border = $red $peach $yellow $green $blue $lavender $mauve 20deg
+ col.inactive_border = $surface0
+
+ layout = dwindle
+
+ # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
+ allow_tearing = false
+}
+
+decoration {
+ # See https://wiki.hyprland.org/Configuring/Variables/ for more
+
+ rounding = 10
+ drop_shadow = false
+}
+
+animations {
+ enabled = true
+
+ # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
+
+ bezier = myBezier, 0.05, 0.9, 0.1, 1.05
+
+ animation = windows, 1, 7, myBezier
+ animation = windowsOut, 1, 7, default, popin 80%
+ animation = border, 1, 10, default
+ animation = borderangle, 1, 8, default
+ animation = fade, 1, 7, default
+ animation = workspaces, 1, 6, default
+}
+
+dwindle {
+ # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
+ pseudotile = true # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
+ preserve_split = true # you probably want this
+ force_split = 2
+}
+
+master {
+ # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
+ new_status = "master"
+}
+
+gestures {
+ # See https://wiki.hyprland.org/Configuring/Variables/ for more
+ workspace_swipe = false
+}
+
+misc {
+ # See https://wiki.hyprland.org/Configuring/Variables/ for more
+ disable_hyprland_logo = true
+ vfr = true
+}
+
+xwayland {
+ force_zero_scaling = true
+}
+
+# Example windowrule v1
+# windowrule = float, ^(kitty)$
+# Example windowrule v2
+# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
+# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
+windowrulev2 = tile, title: ^(Godot)$
+windowrulev2 = float, class: steam, title: ^(?!(Steam)$).*$
+windowrulev2 = fullscreen, class: tic80
+
+# See https://wiki.hyprland.org/Configuring/Keywords/ for more
+$mainMod = SUPER
+
+# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
+bind = $mainMod, Return, exec, $terminal
+bind = $mainMod, C, killactive
+bind = $mainMod, Escape, exec, $powermenu
+bind = $mainMod, V, togglefloating
+bind = $mainMod, space, exec, $applauncher
+bind = $mainMod, P, pseudo, # dwindle
+bind = $mainMod, J, togglesplit, # dwindle
+bind = $mainMod SHIFT, F, fullscreen, 1
+bind = $mainMod, F, fullscreen, 0
+bind = , Print, exec, grimblast copy
+bind = SHIFT, Print, exec, grimblast copy active
+
+# Move focus with mainMod + arrow keys
+bind = $mainMod, left, movefocus, l
+bind = $mainMod, right, movefocus, r
+bind = $mainMod, up, movefocus, u
+bind = $mainMod, down, movefocus, d
+
+# Switch workspaces with mainMod + [1-5]
+bind = $mainMod, 1, workspace, 1
+bind = $mainMod, 2, workspace, 2
+bind = $mainMod, 3, workspace, 3
+bind = $mainMod, 4, workspace, 4
+bind = $mainMod, 5, workspace, 5
+
+# Move active window to a workspace with mainMod + SHIFT + [1-5]
+bind = $mainMod SHIFT, 1, movetoworkspace, 1
+bind = $mainMod SHIFT, 2, movetoworkspace, 2
+bind = $mainMod SHIFT, 3, movetoworkspace, 3
+bind = $mainMod SHIFT, 4, movetoworkspace, 4
+bind = $mainMod SHIFT, 5, movetoworkspace, 5
+
+# Example special workspace (scratchpad)
+bind = $mainMod, S, togglespecialworkspace, magic
+bind = $mainMod SHIFT, S, movetoworkspace, special:magic
+
+# Move/resize windows with mainMod + LMB/RMB and dragging
+bindm = $mainMod, mouse:272, movewindow
+bindm = $mainMod, mouse:273, resizewindow
+
+# Monitor backlight
+bind = , XF86MonBrightnessUp, exec, brightnessctl s +5%
+bind = , XF86MonBrightnessDown, exec, brightnessctl s 5%-
+
+# Volume Media Control
+bind = , XF86AudioRaiseVolume, exec, pamixer -i 5
+bind = , XF86AudioLowerVolume, exec, pamixer -d 5
+bind = , XF86AudioMicMute, exec, pamixer --default-source -m
+bind = , XF86AudioMute, exec, pamixer -t
+bind = , XF86AudioPlay, exec, playerctl play-pause
+bind = , XF86AudioPause, exec, playerctl play-pause
+bind = , XF86AudioNext, exec, playerctl next
+bind = , XF86AudioPrev, exec, playerctl previous
diff --git a/hypr/hyprlock.conf b/hypr/hyprlock.conf
new file mode 100644
index 0000000..6a999c6
--- /dev/null
+++ b/hypr/hyprlock.conf
@@ -0,0 +1,41 @@
+general {
+ hide_cursor = true
+ ignore_empty_input = true
+}
+
+background {
+ monitor = eDP-1
+ path = /home/eric/Pictures/Backgrounds/buttons.png
+}
+input-field {
+ monitor = eDP-1
+ size = 500, 100
+ outline_thickness = 1
+ dots_size = 0.3 # Scale of input-field height, 0.2 - 0.8
+ dots_spacing = 0.35 # Scale of dots' absolute size, 0.0 - 1.0
+ dots_center = false
+ outer_color = rgb(54, 58, 79)
+ inner_color = rgb(36, 39, 58)
+ font_color = rgb(202, 211, 245)
+ fade_on_empty = true
+
+ placeholder_text = <i></i>
+ fail_text = <i>Wrong Password...</i>
+ fail_color = rgb(237,135,150)
+
+ position = 0, -300
+ halign = center
+ valign = center
+}
+label {
+ monitor = eDP-1
+ text = cmd[update:1000] date +"%H:%M:%S"
+ color = rgb(202, 211, 245)
+ font_size = 100
+ font_family = Hack Nerd Font
+
+ position = 0, 300
+ halign = center
+ valign = center
+}
+
diff --git a/hypr/macchiato.conf b/hypr/macchiato.conf
new file mode 100644
index 0000000..0a90d22
--- /dev/null
+++ b/hypr/macchiato.conf
@@ -0,0 +1,61 @@
+$rosewaterAlpha = f4dbd6
+$flamingoAlpha = f0c6c6
+$pinkAlpha = f5bde6
+$mauveAlpha = c6a0f6
+$redAlpha = ed8796
+$maroonAlpha = ee99a0
+$peachAlpha = f5a97f
+$yellowAlpha = eed49f
+$greenAlpha = a6da95
+$tealAlpha = 8bd5ca
+$skyAlpha = 91d7e3
+$sapphireAlpha = 7dc4e4
+$blueAlpha = 8aadf4
+$lavenderAlpha = b7bdf8
+
+$textAlpha = cad3f5
+$subtext1Alpha = b8c0e0
+$subtext0Alpha = a5adcb
+
+$overlay2Alpha = 939ab7
+$overlay1Alpha = 8087a2
+$overlay0Alpha = 6e738d
+
+$surface2Alpha = 5b6078
+$surface1Alpha = 494d64
+$surface0Alpha = 363a4f
+
+$baseAlpha = 24273a
+$mantleAlpha = 1e2030
+$crustAlpha = 181926
+
+$rosewater = 0xfff4dbd6
+$flamingo = 0xfff0c6c6
+$pink = 0xfff5bde6
+$mauve = 0xffc6a0f6
+$red = 0xffed8796
+$maroon = 0xffee99a0
+$peach = 0xfff5a97f
+$yellow = 0xffeed49f
+$green = 0xffa6da95
+$teal = 0xff8bd5ca
+$sky = 0xff91d7e3
+$sapphire = 0xff7dc4e4
+$blue = 0xff8aadf4
+$lavender = 0xffb7bdf8
+
+$text = 0xffcad3f5
+$subtext1 = 0xffb8c0e0
+$subtext0 = 0xffa5adcb
+
+$overlay2 = 0xff939ab7
+$overlay1 = 0xff8087a2
+$overlay0 = 0xff6e738d
+
+$surface2 = 0xff5b6078
+$surface1 = 0xff494d64
+$surface0 = 0xff363a4f
+
+$base = 0xff24273a
+$mantle = 0xff1e2030
+$crust = 0xff181926
diff --git a/mako/config b/mako/config
new file mode 100644
index 0000000..2ea216e
--- /dev/null
+++ b/mako/config
@@ -0,0 +1,22 @@
+layer=overlay
+background-color=#181926
+border-size=1
+border-color=#363a4f
+border-radius=10
+default-timeout=5000
+ignore-timeout=1
+font=Noto Color Emoji 10, Sazanami Gothic 10, Hack Nerd Font 10
+text-color=#cad3f5
+outer-margin=0,5,15,0
+anchor=bottom-right
+
+[urgency=high]
+border-color=#ed8796
+default-timeout=0
+
+[category=mpd]
+default-timeout=2000
+group-by=category
+
+[app-name="Steam"]
+invisible=1
diff --git a/nvim/.luarc.json b/nvim/.luarc.json
new file mode 100644
index 0000000..c901255
--- /dev/null
+++ b/nvim/.luarc.json
@@ -0,0 +1,7 @@
+{
+ "diagnostics.globals": [
+ "vim",
+ "_lazygit_toggle",
+ "config"
+ ]
+} \ No newline at end of file
diff --git a/nvim/init.lua b/nvim/init.lua
new file mode 100644
index 0000000..dbc863e
--- /dev/null
+++ b/nvim/init.lua
@@ -0,0 +1 @@
+require("config")
diff --git a/nvim/lazy-lock.json b/nvim/lazy-lock.json
new file mode 100644
index 0000000..e475c21
--- /dev/null
+++ b/nvim/lazy-lock.json
@@ -0,0 +1,32 @@
+{
+ "catppuccin": { "branch": "main", "commit": "18bab5ec4c782cdf7d7525dbe89c60bfa02fc195" },
+ "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
+ "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
+ "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
+ "dashboard-nvim": { "branch": "master", "commit": "2af7b6d5bb24099dbbdf4a6cacc5fcf2a7094d62" },
+ "indent-blankline.nvim": { "branch": "master", "commit": "dddb5d21811c319eb6e51a993d8fb44b193aae3f" },
+ "lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" },
+ "lazydev.nvim": { "branch": "main", "commit": "491452cf1ca6f029e90ad0d0368848fac717c6d2" },
+ "lspkind.nvim": { "branch": "master", "commit": "cff4ae321a91ee3473a92ea1a8c637e3a9510aec" },
+ "lspsaga.nvim": { "branch": "main", "commit": "4ce44df854f447cf0a8972e5387b3aeb5efc798b" },
+ "lualine.nvim": { "branch": "master", "commit": "b431d228b7bbcdaea818bdc3e25b8cdbe861f056" },
+ "noice.nvim": { "branch": "main", "commit": "448bb9c524a7601035449210838e374a30153172" },
+ "nui.nvim": { "branch": "main", "commit": "61574ce6e60c815b0a0c4b5655b8486ba58089a1" },
+ "nvim-autopairs": { "branch": "master", "commit": "19606af7c039271d5aa96bceff101e7523af3136" },
+ "nvim-cmp": { "branch": "main", "commit": "ae644feb7b67bf1ce4260c231d1d4300b19c6f30" },
+ "nvim-lspconfig": { "branch": "master", "commit": "d4814330b207a4e05ba9515e453b0e87f20357ec" },
+ "nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" },
+ "nvim-parinfer": { "branch": "master", "commit": "5ca09287ab3f4144f78ff7977fabc27466f71044" },
+ "nvim-treesitter": { "branch": "master", "commit": "1e860567fbc19f117a03c0d2c46dcc01325c1b8b" },
+ "nvim-web-devicons": { "branch": "master", "commit": "3722e3d1fb5fe1896a104eb489e8f8651260b520" },
+ "oil.nvim": { "branch": "master", "commit": "a632c898fbe0e363ef89b9577f1a7714ab67d682" },
+ "plenary.nvim": { "branch": "master", "commit": "ec289423a1693aeae6cd0d503bac2856af74edaa" },
+ "telescope.nvim": { "branch": "master", "commit": "5972437de807c3bc101565175da66a1aa4f8707a" },
+ "todo-comments.nvim": { "branch": "main", "commit": "8f45f353dc3649cb9b44cecda96827ea88128584" },
+ "toggleterm.nvim": { "branch": "main", "commit": "137d06fb103952a0fb567882bb8527e2f92d327d" },
+ "trouble.nvim": { "branch": "main", "commit": "6efc446226679fda0547c0fd6a7892fd5f5b15d8" },
+ "vim-highlightedyank": { "branch": "master", "commit": "afb0f262b490706c23e94012c2ab9fa67c0481ce" },
+ "vim-illuminate": { "branch": "master", "commit": "5eeb7951fc630682c322e88a9bbdae5c224ff0aa" },
+ "which-key.nvim": { "branch": "main", "commit": "6c1584eb76b55629702716995cca4ae2798a9cca" },
+ "yuck.vim": { "branch": "master", "commit": "9b5e0370f70cc30383e1dabd6c215475915fe5c3" }
+}
diff --git a/nvim/lua/config/globals.lua b/nvim/lua/config/globals.lua
new file mode 100644
index 0000000..6ef2cd8
--- /dev/null
+++ b/nvim/lua/config/globals.lua
@@ -0,0 +1,2 @@
+vim.g.mapleader = " "
+vim.g.maplocalleader = " "
diff --git a/nvim/lua/config/init.lua b/nvim/lua/config/init.lua
new file mode 100644
index 0000000..03722bd
--- /dev/null
+++ b/nvim/lua/config/init.lua
@@ -0,0 +1,3 @@
+require("config.lazy")
+require("config.keymaps")
+require("config.options")
diff --git a/nvim/lua/config/keymaps.lua b/nvim/lua/config/keymaps.lua
new file mode 100644
index 0000000..f6d97c9
--- /dev/null
+++ b/nvim/lua/config/keymaps.lua
@@ -0,0 +1,36 @@
+-- define common options
+local keymap = vim.keymap
+local opts = {
+ noremap = true, -- non-recursive
+ silent = true, -- do not show message
+}
+
+-- Pane Navigation
+keymap.set("n", "<C-h>", "<C-w>h", opts)
+keymap.set("n", "<C-j>", "<C-w>j", opts)
+keymap.set("n", "<C-k>", "<C-w>k", opts)
+keymap.set("n", "<C-l>", "<C-w>l", opts)
+
+-- Window Resize
+keymap.set("n", "<C-Up>", ":resize -2<Enter>", opts)
+keymap.set("n", "<C-Down>", ":resize +2<Enter>", opts)
+keymap.set("n", "<C-Left>", ":vertical resize -2<Enter>", opts)
+keymap.set("n", "<C-Right>", ":vertical resize +2<Enter>", opts)
+
+-- Window Managment
+keymap.set("n", "<Space>sv", ":vsplit<Enter>", opts)
+keymap.set("n", "<Space>sh", ":split<Enter>", opts)
+
+-- Indending
+keymap.set("v", "<", "<gv")
+keymap.set("v", ">", ">gv")
+
+-- Comments
+vim.api.nvim_set_keymap("n", "<C-c>", "gcc", { noremap = false })
+vim.api.nvim_set_keymap("v", "<C-c>", "gcc<Esc>", { noremap = false })
+
+-- Buffer kill
+keymap.set("n", "<C-q>", ":bdelete!<Enter>", opts)
+
+-- Working
+keymap.set("n", "<C-s>", ":w<Enter>", opts)
diff --git a/nvim/lua/config/lazy.lua b/nvim/lua/config/lazy.lua
new file mode 100644
index 0000000..7dcfac6
--- /dev/null
+++ b/nvim/lua/config/lazy.lua
@@ -0,0 +1,46 @@
+-- bootstrap lazy
+local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
+if not (vim.uv or vim.loop).fs_stat(lazypath) then
+ vim.fn.system({
+ "git",
+ "clone",
+ "--filter=blob:none",
+ "https://github.com/folke/lazy.nvim.git",
+ "--branch=stable", -- latest stable release
+ lazypath,
+ })
+end
+vim.opt.rtp:prepend(lazypath)
+
+require("config.globals")
+
+local opts = {
+ defaults = {
+ lazy = true,
+ },
+ rtp = {
+ disabled_plugins = {
+ "gzip",
+ "matchit",
+ "matchparen",
+ "netrw",
+ "netrwPlugin",
+ "tarPlugin",
+ "tohtml",
+ "tutor",
+ "zipPlugin",
+ }
+ },
+ change_detection = {
+ notify = false,
+ },
+ ui = {
+ border = "rounded",
+ backdrop = 100,
+ },
+ checker = {
+ enabled = true,
+ }
+}
+
+require("lazy").setup("plugins", opts)
diff --git a/nvim/lua/config/options.lua b/nvim/lua/config/options.lua
new file mode 100644
index 0000000..1629194
--- /dev/null
+++ b/nvim/lua/config/options.lua
@@ -0,0 +1,39 @@
+local opt = vim.opt
+
+-- Indent
+opt.softtabstop = 2
+opt.shiftwidth = 2
+opt.expandtab = true
+opt.smartindent = true
+opt.wrap = false
+
+-- Appearance
+opt.number = true
+opt.cursorline = true
+opt.termguicolors = true
+opt.showmode = true
+opt.colorcolumn = "100"
+opt.signcolumn = "yes"
+opt.cmdheight = 1
+opt.scrolloff = 10
+opt.completeopt = "menuone,noinsert,noselect"
+
+-- Search
+opt.incsearch = true
+opt.hlsearch = false
+opt.ignorecase = true
+opt.smartcase = true
+
+-- Behaviuor
+opt.hidden = true
+opt.errorbells = false
+opt.swapfile = false
+opt.backup = false
+opt.backspace = "indent,eol,start"
+opt.splitright = true
+opt.splitbelow = true
+opt.autochdir = false
+opt.mouse = "a"
+opt.clipboard = "unnamedplus"
+opt.modifiable = true
+opt.encoding = "UTF-8"
diff --git a/nvim/lua/plugins/catppuccin.lua b/nvim/lua/plugins/catppuccin.lua
new file mode 100644
index 0000000..8599732
--- /dev/null
+++ b/nvim/lua/plugins/catppuccin.lua
@@ -0,0 +1,58 @@
+local config = function()
+ require("catppuccin").setup({
+ custom_highlights = function(colors)
+ return {
+ TodoError = { fg = colors.base, bg = colors.red },
+ }
+ end,
+ integrations = {
+ dashboard = true,
+ indent_blankline = {
+ enabled = true,
+ colored_indent_levels = false,
+ },
+ lsp_saga = false,
+ neotree = false,
+ cmp = true,
+ native_lsp = {
+ enabled = true,
+ virtual_text = {
+ errors = { "italic" },
+ hints = { "italic" },
+ warnings = { "italic" },
+ information = { "italic" },
+ ok = { "italic" },
+ },
+ underlines = {
+ errors = { "undercurl" },
+ hints = { "underline" },
+ warnings = { "undercurl" },
+ information = { "underline" },
+ ok = { "underline" },
+ },
+ inlay_hints = {
+ background = true,
+ },
+ },
+ treesitter = true,
+ telescope = {
+ enabled = true,
+ -- style = "nvchad"
+ },
+ lsp_trouble = false,
+ illuminate = {
+ enabled = true,
+ lsp = false
+ },
+ which_key = false
+ }
+ })
+ vim.cmd.colorscheme("catppuccin-macchiato")
+end
+
+return {
+ "catppuccin/nvim",
+ name = "catppuccin",
+ lazy = false,
+ config = config,
+}
diff --git a/nvim/lua/plugins/dashboard-nvim.lua b/nvim/lua/plugins/dashboard-nvim.lua
new file mode 100644
index 0000000..06b87f9
--- /dev/null
+++ b/nvim/lua/plugins/dashboard-nvim.lua
@@ -0,0 +1,323 @@
+math.randomseed(os.time())
+
+Headers = {
+ {
+ [[ ███╗ ██╗ ███████╗ ██████╗ ██╗ ██╗ ██╗ ███╗ ███╗ ]],
+ [[ ████╗ ██║ ██╔════╝██╔═══██╗ ██║ ██║ ██║ ████╗ ████║ ]],
+ [[ ██╔██╗ ██║ █████╗ ██║ ██║ ██║ ██║ ██║ ██╔████╔██║ ]],
+ [[ ██║╚██╗██║ ██╔══╝ ██║ ██║ ╚██╗ ██╔╝ ██║ ██║╚██╔╝██║ ]],
+ [[ ██║ ╚████║ ███████╗╚██████╔╝ ╚████╔╝ ██║ ██║ ╚═╝ ██║ ]],
+ [[ ╚═╝ ╚═══╝ ╚══════╝ ╚═════╝ ╚═══╝ ╚═╝ ╚═╝ ╚═╝ ]],
+ [[ ]],
+ },
+ {
+ [[ ███▄ █ ▓█████ ▒█████ ██▒ █▓ ██▓ ███▄ ▄███▓ ]],
+ [[ ██ ▀█ █ ▓█ ▀ ▒██▒ ██▒▓██░ █▒▓██▒▓██▒▀█▀ ██▒ ]],
+ [[ ▓██ ▀█ ██▒▒███ ▒██░ ██▒ ▓██ █▒░▒██▒▓██ ▓██░ ]],
+ [[ ▓██▒ ▐▌██▒▒▓█ ▄ ▒██ ██░ ▒██ █░░░██░▒██ ▒██ ]],
+ [[ ▒██░ ▓██░░▒████▒░ ████▓▒░ ▒▀█░ ░██░▒██▒ ░██▒ ]],
+ [[ ░ ▒░ ▒ ▒ ░░ ▒░ ░░ ▒░▒░▒░ ░ ▐░ ░▓ ░ ▒░ ░ ░ ]],
+ [[ ░ ░░ ░ ▒░ ░ ░ ░ ░ ▒ ▒░ ░ ░░ ▒ ░░ ░ ░ ]],
+ [[ ░ ░ ░ ░ ░ ░ ░ ▒ ░░ ▒ ░░ ░ ]],
+ [[ ░ ░ ░ ░ ░ ░ ░ ░ ]],
+ [[ ░ ]],
+ [[ ]],
+ },
+ {
+ [[ ██████ █████ █████ █████ ███ ]],
+ [[ ░░██████ ░░███ ░░███ ░░███ ░░░ ]],
+ [[ ░███░███ ░███ ██████ ██████ ░███ ░███ ████ █████████████ ]],
+ [[ ░███░░███░███ ███░░███ ███░░███ ░███ ░███ ░░███ ░░███░░███░░███ ]],
+ [[ ░███ ░░██████ ░███████ ░███ ░███ ░░███ ███ ░███ ░███ ░███ ░███ ]],
+ [[ ░███ ░░█████ ░███░░░ ░███ ░███ ░░░█████░ ░███ ░███ ░███ ░███ ]],
+ [[ █████ ░░█████░░██████ ░░██████ ░░███ █████ █████░███ █████ ]],
+ [[ ░░░░░ ░░░░░ ░░░░░░ ░░░░░░ ░░░ ░░░░░ ░░░░░ ░░░ ░░░░░ ]],
+ [[ ]],
+ },
+ {
+ [[ ▐ ▄ ▄▄▄ . ▌ ▐·▪ • ▌ ▄ ·. ]],
+ [[ •█▌▐█▀▄.▀· ▄█▀▄ ▪█·█▌██ ·██ ▐███▪ ]],
+ [[ ▐█▐▐▌▐▀▀▪▄▐█▌.▐▌▐█▐█•▐█·▐█ ▌▐▌▐█· ]],
+ [[ ██▐█▌▐█▄▄▌▐█▌.▐▌ ███ ▐█▌██ ██▌▐█▌ ]],
+ [[ ▀▀ █▪ ▀▀▀ ▀█▄▀▪. ▀ ▀▀▀▀▀ █▪▀▀▀ ]],
+ [[ ]],
+
+ },
+ {
+ [[ __ __ ________ ______ __ __ ______ __ __ ]],
+ [[ | \ | \ \/ \| \ | \ \ \ / \ ]],
+ [[ | ▓▓\ | ▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓\ ▓▓ | ▓▓\▓▓▓▓▓▓ ▓▓\ / ▓▓ ]],
+ [[ | ▓▓▓\| ▓▓ ▓▓__ | ▓▓ | ▓▓ ▓▓ | ▓▓ | ▓▓ | ▓▓▓\ / ▓▓▓ ]],
+ [[ | ▓▓▓▓\ ▓▓ ▓▓ \ | ▓▓ | ▓▓\▓▓\ / ▓▓ | ▓▓ | ▓▓▓▓\ ▓▓▓▓ ]],
+ [[ | ▓▓\▓▓ ▓▓ ▓▓▓▓▓ | ▓▓ | ▓▓ \▓▓\ ▓▓ | ▓▓ | ▓▓\▓▓ ▓▓ ▓▓ ]],
+ [[ | ▓▓ \▓▓▓▓ ▓▓_____| ▓▓__/ ▓▓ \▓▓ ▓▓ _| ▓▓_| ▓▓ \▓▓▓| ▓▓ ]],
+ [[ | ▓▓ \▓▓▓ ▓▓ \\▓▓ ▓▓ \▓▓▓ | ▓▓ \ ▓▓ \▓ | ▓▓ ]],
+ [[ \▓▓ \▓▓\▓▓▓▓▓▓▓▓ \▓▓▓▓▓▓ \▓ \▓▓▓▓▓▓\▓▓ \▓▓ ]],
+ [[ ]],
+ },
+ {
+ [[ ▀███▄ ▀███▀███▀▀▀███ ▄▄█▀▀██▄ ▀████▀ ▀███▀████▀████▄ ▄███▀ ]],
+ [[ ███▄ █ ██ ▀█▄██▀ ▀██▄ ▀██ ▄█ ██ ████ ████ ]],
+ [[ █ ███ █ ██ █ ██▀ ▀██ ██▄ ▄█ ██ █ ██ ▄█ ██ ]],
+ [[ █ ▀██▄ █ ██████ ██ ██ ██▄ █▀ ██ █ █▓ █▀ ██ ]],
+ [[ █ ▀██▄▓ ██ █ ▄█ ██ ▀▓█ ▓▀ █▓ ▓ █▓▄█▀ ██ ]],
+ [[ ▓ ▓█▓ █▓ ▄███ ██▀ ▓██▄ █▓ ▓ ▀▓█▀ ██ ]],
+ [[ ▓ ▀▓▓▓▓ ▓▓ ▓ ▓██ ▓█▓ ▓▓ ▓▀ ▓▓ ▓ ▓▓▓▓▀ ▓▓ ]],
+ [[ ▓ ▓▓▓ ▓▓ ▓▓█▓▓▓ ▓▓▓ ▓▓▒▒ ▒▓ ▒ ▀▓▓▀ ▓▓ ]],
+ [[ ▒ ▒ ▒ ▒▓▓▒ ▒▒▒▓▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒▓▒ ▒▒ ▒▒▒ ▒ ▒ ▒▒▒ ]],
+ [[ ]],
+ },
+ {
+ [[ _.oo. ]],
+ [[ _.u[[/;:,. .odMMMMMM' ]],
+ [[ .o888UU[[[/;:-. .o@P^ MMM^ ]],
+ [[ oN88888UU[[[/;::-. dP^ ]],
+ [[ dNMMNN888UU[[[/;:--. .o@P^ ]],
+ [[ ,MMMMMMN888UU[[/;::-. o@^ ]],
+ [[ NNMMMNN888UU[[[/~.o@P^ ]],
+ [[ 888888888UU[[[/o@^-.. ]],
+ [[ oI8888UU[[[/o@P^:--.. ]],
+ [[ .@^ YUU[[[/o@^;::---.. ]],
+ [[ oMP ^/o@P^;:::---.. ]],
+ [[ .dMMM .o@^ ^;::---... ]],
+ [[ dMMMMMMM@^` `^^^^ ]],
+ [[ YMMMUP^ ]],
+ [[ ^^ ]],
+ [[ ]],
+ },
+ {
+ [[ ⣴⣶⣤⡤⠦⣤⣀⣤⠆ ⣈⣭⣿⣶⣿⣦⣼⣆ ]],
+ [[ ⠉⠻⢿⣿⠿⣿⣿⣶⣦⠤⠄⡠⢾⣿⣿⡿⠋⠉⠉⠻⣿⣿⡛⣦ ]],
+ [[ ⠈⢿⣿⣟⠦ ⣾⣿⣿⣷ ⠻⠿⢿⣿⣧⣄ ]],
+ [[ ⣸⣿⣿⢧ ⢻⠻⣿⣿⣷⣄⣀⠄⠢⣀⡀⠈⠙⠿⠄ ]],
+ [[ ⢠⣿⣿⣿⠈ ⣻⣿⣿⣿⣿⣿⣿⣿⣛⣳⣤⣀⣀ ]],
+ [[ ⢠⣧⣶⣥⡤⢄ ⣸⣿⣿⠘ ⢀⣴⣿⣿⡿⠛⣿⣿⣧⠈⢿⠿⠟⠛⠻⠿⠄ ]],
+ [[ ⣰⣿⣿⠛⠻⣿⣿⡦⢹⣿⣷ ⢊⣿⣿⡏ ⢸⣿⣿⡇ ⢀⣠⣄⣾⠄ ]],
+ [[ ⣠⣿⠿⠛ ⢀⣿⣿⣷⠘⢿⣿⣦⡀ ⢸⢿⣿⣿⣄ ⣸⣿⣿⡇⣪⣿⡿⠿⣿⣷⡄ ]],
+ [[ ⠙⠃ ⣼⣿⡟ ⠈⠻⣿⣿⣦⣌⡇⠻⣿⣿⣷⣿⣿⣿ ⣿⣿⡇ ⠛⠻⢷⣄ ]],
+ [[ ⢻⣿⣿⣄ ⠈⠻⣿⣿⣿⣷⣿⣿⣿⣿⣿⡟ ⠫⢿⣿⡆ ]],
+ [[ ⠻⣿⣿⣿⣿⣶⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⡟⢀⣀⣤⣾⡿⠃ ]],
+ [[ ]],
+ },
+ {
+ [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣤⣤⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣤⣤⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣠⣤⣤⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
+ [[⠀⠀⠀⠀⠀⠀⣠⣶⣿⣿⣿⣿⣿⣿⣿⣿⣦⡀⠀⠀⠀⠀⠀⠀⠀⣠⣶⣿⣿⣿⣿⣿⣿⣿⣿⣶⣄⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣦⡀⠀⠀⠀⠀⠀⠀]],
+ [[⠀⠀⠀⠀⢀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⢀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀]],
+ [[⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⣿⣿⣿⡆⠀⠀⠀⢸⣿⣿⠿⠿⢿⣿⣿⣿⣿⡿⠿⠿⣿⣿⡇⠀⠀⠀⣾⣿⣿⡿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡆⠀⠀⠀⠀]],
+ [[⠀⠀⠀⠀⢿⣿⠿⠿⠿⠿⣿⣿⣿⡏⠀⠀⠀⢹⣿⡇⠀⠀⠀⢸⣿⢱⣶⣴⣶⢹⣿⣿⡏⣶⣦⣶⡎⣿⡇⠀⠀⠀⢿⣿⠁⠀⠀⠈⣿⣿⣿⡿⠟⣋⣽⣿⣿⠇⠀⠀⠀⠀]],
+ [[⠀⠀⠀⠀⠘⣿⣧⣄⣀⣴⣿⣿⣿⣷⣄⣀⣠⣾⣟⠀⠀⠀⠀⠈⣿⣦⣙⣛⣡⣾⡿⢿⣷⣌⣛⣋⣴⣿⠁⠀⠀⠀⠘⣿⣦⣄⣀⣴⣿⣿⣿⣿⣶⣶⣤⣿⡟⠀⠀⠀⠀⠀]],
+ [[⠀⠀⠀⠀⠀⢿⣿⣿⣿⣿⣏⣼⣌⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⢿⣿⣿⣿⣿⣿⣰⣆⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠈⢿⣿⣿⣿⣿⣏⣼⣌⣿⣿⣿⣿⣿⠏⠀⠀⠀⠀⠀]],
+ [[⠀⠀⠀⠀⠀⠀⠉⠉⢿⣿⣿⣿⣿⣿⣿⡏⠉⠁⠀⠀⠀⠀⠀⠀⠀⠉⠉⢹⣿⣿⣿⣿⣿⣿⡏⠉⠉⠀⠀⠀⠀⠀⠀⠀⠉⠉⣿⣿⣿⣿⣿⣿⣿⡏⠉⠁⠀⠀⠀⠀⠀⠀]],
+ [[⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠁⠁⠁⠉⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠁⠉⠉⠈⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠁⠁⠁⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
+ [[ ]],
+ },
+ {
+ [[ ,-. _,---._ __ / \ ]],
+ [[ / ) .-' `./ / \ ]],
+ [[ ( ( ,' `/ /| ]],
+ [[ \ `-" \'\ / | ]],
+ [[ `. , \ \ / | ]],
+ [[ /`. ,'-`----Y | ]],
+ [[ ( ; | ' ]],
+ [[ | ,-. ,-' | / ]],
+ [[ | | ( | | / ]],
+ [[ ) | \ `.___________|/ ]],
+ [[ `--' `--' ]],
+ [[ ]],
+ },
+ {
+ [[ |\ _,,,---,,_ ]],
+ [[ ZZZzz /,`.-'`' -. ;-;;,_ ]],
+ [[ |,4- ) )-,_. ,\ ( `'-' ]],
+ [[ '---''(_/--' `-'\_) ]],
+ [[ ]],
+ },
+ {
+ [[ ____ ]],
+ [[ /\ \ ]],
+ [[ / \ \ ]],
+ [[ / \ \ ]],
+ [[ / \ \ ]],
+ [[ / /\ \ \ ]],
+ [[ / / \ \ \ ]],
+ [[ / / \ \ \ ]],
+ [[ / / / \ \ \ ]],
+ [[ / / / \ \ \ ]],
+ [[ / / /---------' \ ]],
+ [[ / / /_______________\ ]],
+ [[ \ / / ]],
+ [[ \/_____________________/ ]],
+ [[ ]],
+ },
+ {
+ [[ ____ ]],
+ [[ ,-~~~~' '~~~~-, ]],
+ [[ ,' '', ]],
+ [[ ( Y ]],
+ [[ { I ]],
+ [[ { - `. ]],
+ [[ | ', ) ]],
+ [[ | | ,..__ __. Y ]],
+ [[ | .,_./ Y ' / ^Y J )| ]],
+ [[ \ |' / | | || ]],
+ [[ \ L_/ . _ (_,.'( ]],
+ [[ \, , ^^""' / | ) ]],
+ [[ \_ \ /,L] / ]],
+ [[ '-_`-, ` ` ./` ]],
+ [[ `-(_ ) ]],
+ [[ ^^\..___,.--` ]],
+ [[ ]],
+ },
+ {
+ [[ ____ ]],
+ [[ _.-'78o `"`--._ ]],
+ [[ ,o888o. .o888o, ''-. ]],
+ [[ ,88888P `78888P..______.] ]],
+ [[ /_..__..----"" __.' ]],
+ [[ `-._ /""| _..-'' ]],
+ [[ "`-----\ `\ ]],
+ [[ | ;.-""--.. ]],
+ [[ | ,8o. o88. `. ]],
+ [[ `;888P `788P : ]],
+ [[ .o""-.|`-._ ./ ]],
+ [[ J88 _.-/ ";"-P----' ]],
+ [[ `--'\`| / / ]],
+ [[ | / | | ]],
+ [[ \| / | ]],
+ [[ `-----`---' ]],
+ [[ ]],
+ },
+ {
+ [[ ,. ]],
+ [[ J;`. ]],
+ [[ iyi.`. ]],
+ [[ j?7;. : ]],
+ [[ fclu:.` : ]],
+ [[ dE2Xvi;. `. ]],
+ [[ JGL56bhx;.'; ]],
+ [[ 4KPY^f:l"`-; ]],
+ [[ """l:;-"" ]],
+ [[ `; \ ]],
+ [[ .' ; ]],
+ [[ /'.' ]],
+ [[ f .' ]],
+ [[ `. \ ]],
+ [[ `-' ]],
+ [[ ]],
+ },
+ {
+ [[ ___..._ ]],
+ [[ _,--' "`-. ]],
+ [[ ,'. . \ ]],
+ [[ ,/:. . . .' ]],
+ [[ |;.. . _..--' ]],
+ [[ `--:...-,-'""\ ]],
+ [[ |:. `. ]],
+ [[ l;. l ]],
+ [[ `|:. | ]],
+ [[ |:. `., ]],
+ [[ .l;. j, , ]],
+ [[ `. \`;:. //,/ ]],
+ [[ .\\)`;,|\'/( ]],
+ [[ ` ` ` ]],
+ [[ ]],
+ }
+}
+
+Quotes = {
+ {
+ "",
+ "I don't care that they stole my idea... I care that they don't have any of their own",
+ "~ Nikola Tesla",
+ },
+ {
+ "",
+ "Make everything as simple as possible, but not simpler.",
+ "~ Albert Einstein",
+ },
+ {
+ "",
+ "Code never lies, comments sometimes do.",
+ "~ Ron Jeffries",
+ },
+ {
+ "",
+ "Good code is its own best documentation.",
+ "~ Steve McConnell",
+ },
+ {
+ "",
+ "I do not fear computers. I fear the lack of them.",
+ "~ Isaac Asimov",
+ },
+ {
+ "",
+ "If a machine is expected to be infallible, it cannot also be intelligent.",
+ "~ Alan Turing",
+ },
+ {
+ "",
+ "Mathematical reasoning may be regarded.",
+ "~ Alan Turing",
+ },
+ {
+ "",
+ "Anti-social behavior is a trait of intelligence in a world full of conformists.",
+ "~ Nikola Tesla",
+ },
+ {
+ "",
+ "We are very, very small, but we are profoundly capable of very, very big things.",
+ "~ Stephen Hawking",
+ },
+ {
+ "",
+ "Quiet people have the loudest minds.",
+ "~ Stephen Hawking",
+ }
+}
+
+local header = function()
+ return Headers[math.random(#Headers)]
+end
+
+local footer = function()
+ return Quotes[math.random(#Quotes)]
+end
+
+local init = function()
+ local keymap = vim.keymap
+ keymap.set("n", "<Space>d", ":Dashboard<Enter>",
+ { noremap = true, silent = true, desc = "Dashboard" }) -- Dashboard
+end
+
+local hyper = function()
+ require("dashboard").setup {
+ theme = "hyper",
+ shortcut_type = "number",
+ change_to_vcs_root = true,
+ hide = {
+ statusline = false
+ },
+ config = {
+ header = header(),
+ shortcut = {
+ { action = "ene | lua require('lualine')", desc = "New", icon = " ", key = "n" },
+ { action = "Lazy", desc = "Lazy", icon = "󰒲 ", key = "l" },
+ { action = "Oil --float", desc = "File browser", icon = " ", key = "o" },
+ },
+ packages = { enable = true },
+ project = { enable = true },
+ mru = { limit = 5 },
+ footer = footer,
+ },
+ }
+end
+
+return {
+ "eric-marin/dashboard-nvim",
+ dependencies = { "nvim-tree/nvim-web-devicons" },
+ lazy = false,
+ init = init,
+ config = hyper,
+}
diff --git a/nvim/lua/plugins/indent-blankline.lua b/nvim/lua/plugins/indent-blankline.lua
new file mode 100644
index 0000000..465d5a9
--- /dev/null
+++ b/nvim/lua/plugins/indent-blankline.lua
@@ -0,0 +1,13 @@
+return {
+ "lukas-reineke/indent-blankline.nvim",
+ lazy = true,
+ event = { "BufReadPost", "BufWritePost", "BufNewFile" },
+ main = "ibl",
+ opts = {
+ exclude = {
+ filetypes = {
+ "dashboard",
+ },
+ },
+ },
+}
diff --git a/nvim/lua/plugins/lazy.lua b/nvim/lua/plugins/lazy.lua
new file mode 100644
index 0000000..d48db7e
--- /dev/null
+++ b/nvim/lua/plugins/lazy.lua
@@ -0,0 +1,12 @@
+local init = function()
+ local keymap = vim.keymap
+ keymap.set("n", "<Space>p", ":Lazy home<Enter>",
+ { noremap = true, silent = true, desc = "Plugin Manager (Lazy)" })
+end
+
+
+return {
+ "folke/lazy.nvim",
+ lazy = false,
+ init = init
+}
diff --git a/nvim/lua/plugins/lazydev.lua b/nvim/lua/plugins/lazydev.lua
new file mode 100644
index 0000000..704d963
--- /dev/null
+++ b/nvim/lua/plugins/lazydev.lua
@@ -0,0 +1,5 @@
+return {
+ "folke/lazydev.nvim",
+ ft = "lua", -- only load on lua files
+ opts = {}
+}
diff --git a/nvim/lua/plugins/lspsaga.lua b/nvim/lua/plugins/lspsaga.lua
new file mode 100644
index 0000000..e486799
--- /dev/null
+++ b/nvim/lua/plugins/lspsaga.lua
@@ -0,0 +1,26 @@
+return {
+ "nvimdev/lspsaga.nvim",
+ lazy = true,
+ event = { "BufReadPost", "BufWritePost", "BufNewFile" },
+ config = function()
+ require("lspsaga").setup({
+ -- keybinds for navigation in lspsaga window
+ move_in_saga = { prev = "<C-k>", next = "<C-j>" },
+ -- use enter to open file with finder
+ finder_action_keys = {
+ open = "<Enter>"
+ },
+ -- use enter to open file with definition preview
+ definition_action_keys = {
+ edit = "<Enter>"
+ },
+ ui = {
+ code_action = "",
+ },
+ })
+ end,
+ dependencies = {
+ "nvim-treesitter/nvim-treesitter", -- optional
+ "nvim-tree/nvim-web-devicons", -- optional
+ },
+}
diff --git a/nvim/lua/plugins/lualine.lua b/nvim/lua/plugins/lualine.lua
new file mode 100644
index 0000000..1e00892
--- /dev/null
+++ b/nvim/lua/plugins/lualine.lua
@@ -0,0 +1,34 @@
+local config = function()
+ require("lualine").setup({
+ options = {
+ theme = "catppuccin",
+ globalstatus = true,
+ disabled_filetypes = { "toggleterm", "lazy", "oil", "dashboard", "TelescopePrompt", "oil_preview" }
+ },
+ sections = {
+ lualine_a = { "mode" },
+ lualine_b = { "branch", "diff",
+ {
+ "diagnostics",
+ sections = { "error", "warn", "info", "hint" },
+ symbols = { error = " ", warn = " ", info = " ", hint = " " },
+ }
+ },
+ lualine_c = {
+ {
+ require("lazy.status").updates,
+ cond = require("lazy.status").has_updates,
+ color = { fg = "#ff9e64" },
+ },
+ },
+ },
+ })
+end
+
+return {
+ "nvim-lualine/lualine.nvim",
+ lazy = true,
+ event = "VeryLazy",
+ -- event = { "BufReadPost", "BufWritePost", "BufNewFile" },
+ config = config,
+}
diff --git a/nvim/lua/plugins/noice.lua b/nvim/lua/plugins/noice.lua
new file mode 100644
index 0000000..575cfcf
--- /dev/null
+++ b/nvim/lua/plugins/noice.lua
@@ -0,0 +1,22 @@
+local config = function()
+ require("notify").setup({
+ render = "wrapped-compact",
+ max_width = 50
+ })
+end
+
+return {
+ "folke/noice.nvim",
+ lazy = true,
+ event = "VeryLazy",
+ opts = {
+ -- add any options here
+ },
+ dependencies = {
+ "MunifTanjim/nui.nvim",
+ {
+ "rcarriga/nvim-notify",
+ config = config,
+ },
+ },
+}
diff --git a/nvim/lua/plugins/nvim-autopairs.lua b/nvim/lua/plugins/nvim-autopairs.lua
new file mode 100644
index 0000000..d92a8cc
--- /dev/null
+++ b/nvim/lua/plugins/nvim-autopairs.lua
@@ -0,0 +1,6 @@
+return {
+ "windwp/nvim-autopairs",
+ lazy = true,
+ event = "InsertEnter",
+ config = true
+}
diff --git a/nvim/lua/plugins/nvim-cmp.lua b/nvim/lua/plugins/nvim-cmp.lua
new file mode 100644
index 0000000..d997a2c
--- /dev/null
+++ b/nvim/lua/plugins/nvim-cmp.lua
@@ -0,0 +1,62 @@
+local config = function()
+ local cmp = require("cmp")
+ vim.opt.completeopt = "menu,menuone"
+
+ cmp.setup({
+ formatting = {
+ expandable_indicator = false,
+ fields = { "abbr", "kind" },
+ format = require("lspkind").cmp_format({
+ mode = "text_symbol",
+ maxwidth = function() return math.floor(0.45 * vim.o.columns) end,
+ ellipsis_char = "...", -- when popup menu exceed maxwidth, the truncated part would show ellipsis_char instead (must define maxwidth first)
+ before = function(_, vim_item)
+ vim_item.menu = ""
+ return vim_item
+ end
+ })
+ },
+ snippet = {
+ expand = function(args)
+ vim.snippet.expand(args.body)
+ end,
+ },
+ window = {
+ completion = cmp.config.window.bordered(),
+ documentation = cmp.config.window.bordered(),
+ },
+ mapping = {
+ ["<TAB>"] = cmp.mapping.select_next_item(),
+ ["<C-b>"] = cmp.mapping.scroll_docs(-4),
+ ["<C-f>"] = cmp.mapping.scroll_docs(4),
+ ["<C-Space>"] = cmp.mapping.complete(),
+ ["<C-e>"] = cmp.mapping.abort(),
+ ["<CR>"] = cmp.mapping.confirm({ select = true }),
+ },
+ sources = cmp.config.sources(
+ {
+ { name = "nvim_lsp" },
+ }, {
+ { name = "buffer" },
+ }, {
+ { name = "path" },
+ }, {
+ { name = "lazydev", group_index = 0 }
+ }
+ )
+ })
+end
+
+return {
+ "hrsh7th/nvim-cmp",
+ lazy = true,
+ event = "InsertEnter",
+ config = config,
+ dependencies = {
+ "neovim/nvim-lspconfig",
+ "onsails/lspkind.nvim",
+ "hrsh7th/cmp-nvim-lsp",
+ "hrsh7th/cmp-buffer",
+ "hrsh7th/cmp-path",
+ },
+}
diff --git a/nvim/lua/plugins/nvim-lspconfig.lua b/nvim/lua/plugins/nvim-lspconfig.lua
new file mode 100644
index 0000000..f592b00
--- /dev/null
+++ b/nvim/lua/plugins/nvim-lspconfig.lua
@@ -0,0 +1,82 @@
+local config = function()
+ local lspconfig = require("lspconfig")
+ local capabilities = require("cmp_nvim_lsp").default_capabilities()
+
+ -- setting custom signs
+ local signs = { Error = "", Warn = "", Hint = "", Info = "" }
+ for type, icon in pairs(signs) do
+ local hl = "DiagnosticSign" .. type
+ vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = "" })
+ end
+
+ local on_attach = function(client, bufnr)
+ local keymap = vim.keymap
+ local opts = { noremap = true, silent = true, buffer = bufnr }
+
+ -- setting custom keymaps
+ keymap.set("n", "<Space>lf", ":Lspsaga finder<Enter>", opts) -- go to definition
+ keymap.set("n", "<Space>lp", ":Lspsaga peek_definition<Enter>", opts) -- peak definition
+ keymap.set("n", "<Space>lg", ":Lspsaga goto_definition<Enter>", opts) -- go to definition
+ keymap.set("n", "<Space>la", ":Lspsaga code_action<Enter>", opts) -- see available code actions
+ keymap.set("n", "<Space>lr", ":Lspsaga rename<Enter>", opts) -- smart rename
+ keymap.set("n", "<Space>ld", ":Lspsaga hover_doc<Enter>", opts) -- show documentation for what is under cursor
+
+ -- enable auto formatting on save
+ if client.supports_method("textDocument/formatting") then
+ vim.api.nvim_create_autocmd("BufWritePre", {
+ buffer = bufnr,
+ callback = function()
+ vim.lsp.buf.format({ async = true })
+ end,
+ })
+ end
+ end
+
+ -- efm server configuration
+ lspconfig.efm.setup({
+ init_options = {
+ documentFormatting = true,
+ documentRangeFormatting = true,
+ hover = true,
+ documentSymbol = true,
+ codeAction = true,
+ completion = true,
+ },
+ })
+
+ -- clangd server configuration
+ lspconfig.clangd.setup({
+ on_attach = on_attach,
+ capabilities = capabilities,
+ })
+
+ -- rust analyzer server configuration
+ lspconfig.rust_analyzer.setup({
+ on_attach = on_attach,
+ capabilities = capabilities,
+ })
+
+ -- cmake-language-server configuration
+ lspconfig.cmake.setup({
+ on_attach = on_attach,
+ capabilities = capabilities,
+ })
+
+ -- haskell-language-server configuration
+ lspconfig.hls.setup({
+ on_attach = on_attach,
+ capabilities = capabilities,
+ })
+ -- lua-language-server
+ lspconfig.lua_ls.setup({
+ on_attach = on_attach,
+ capabilities = capabilities,
+ })
+end
+
+return {
+ "neovim/nvim-lspconfig",
+ config = config,
+ lazy = true,
+ event = { "BufReadPost", "BufWritePost", "BufNewFile" }
+}
diff --git a/nvim/lua/plugins/nvim-parinfer.lua b/nvim/lua/plugins/nvim-parinfer.lua
new file mode 100644
index 0000000..15dced7
--- /dev/null
+++ b/nvim/lua/plugins/nvim-parinfer.lua
@@ -0,0 +1,5 @@
+return {
+ "gpanders/nvim-parinfer",
+ lazy = true,
+ ft = "yuck",
+}
diff --git a/nvim/lua/plugins/nvim-treesitter.lua b/nvim/lua/plugins/nvim-treesitter.lua
new file mode 100644
index 0000000..988673b
--- /dev/null
+++ b/nvim/lua/plugins/nvim-treesitter.lua
@@ -0,0 +1,47 @@
+local config = function()
+ require("nvim-treesitter.configs").setup({
+ ensure_installed = {
+ "c",
+ "lua",
+ "markdown",
+ "vim",
+ "vimdoc",
+ "query",
+
+ "regex",
+ "diff",
+ "cmake",
+ "markdown_inline",
+ "bash",
+ "toml",
+
+ "cpp",
+ "rust",
+ "haskell",
+ "nix"
+ },
+ auto_install = false,
+ highlight = {
+ enable = true,
+ additional_vim_regex_highlighting = false,
+ },
+ incremental_selection = {
+ enable = true
+ },
+ indent = {
+ enable = true,
+ },
+ autotag = {
+ enable = true,
+ },
+ })
+
+ vim.cmd(":TSUpdate")
+end
+
+return {
+ "nvim-treesitter/nvim-treesitter",
+ lazy = true,
+ event = { "BufReadPost", "BufWritePost", "BufNewFile" },
+ config = config,
+}
diff --git a/nvim/lua/plugins/oil.lua b/nvim/lua/plugins/oil.lua
new file mode 100644
index 0000000..be3f35e
--- /dev/null
+++ b/nvim/lua/plugins/oil.lua
@@ -0,0 +1,38 @@
+local init = function()
+ local keymap = vim.keymap
+ keymap.set("n", "<Space>b", ":Oil --float .<Enter>",
+ { noremap = true, silent = true, desc = "File browser (Oil)" }) -- Oil
+end
+
+
+
+local config = function()
+ require("oil").setup({
+ default_file_explorer = true,
+ delete_to_trash = true,
+ skip_confirm_for_simple_edits = true,
+ keymaps = {
+ ["o?"] = "actions.show_help",
+ ["<CR>"] = "actions.select",
+ ["op"] = "actions.preview",
+ ["q"] = "actions.close",
+ ["or"] = "actions.refresh",
+ ["-"] = "actions.parent",
+ ["_"] = "actions.open_cwd",
+ ["~"] = "actions.cd",
+ ["os"] = "actions.change_sort",
+ ["o."] = "actions.toggle_hidden",
+ ["ot"] = "actions.toggle_trash",
+ },
+ use_default_keymaps = false,
+ })
+end
+
+return {
+ "stevearc/oil.nvim",
+ dependencies = { "nvim-tree/nvim-web-devicons" },
+ lazy = true,
+ cmd = "Oil",
+ init = init,
+ config = config
+}
diff --git a/nvim/lua/plugins/telescope.lua b/nvim/lua/plugins/telescope.lua
new file mode 100644
index 0000000..da57922
--- /dev/null
+++ b/nvim/lua/plugins/telescope.lua
@@ -0,0 +1,53 @@
+local init = function()
+ local keymap = vim.keymap
+ keymap.set("n", "<Space>tk", ":Telescope keymaps<Enter>",
+ { noremap = true, silent = true, desc = "Keymaps (Telescope)" }) -- Keymaps
+ keymap.set("n", "<Space>th", ":Telescope help_tags<Enter>",
+ { noremap = true, silent = true, desc = "Help (Telescope)" }) -- Help
+ keymap.set("n", "<Space>tf", ":Telescope find_files<Enter>",
+ { noremap = true, silent = true, desc = "Find files (Telescope)" }) -- Find files
+ keymap.set("n", "<Space>ta", ":Telescope<Enter>",
+ { noremap = true, silent = true, desc = "All commands (Telescope)" }) -- All commands
+ keymap.set("n", "<Space>tg", ":Telescope live_grep<Enter>",
+ { noremap = true, silent = true, desc = "Find words (Telescope)" }) -- Find words
+ keymap.set("n", "<Space>tb", ":Telescope buffers<Enter>",
+ { noremap = true, silent = true, desc = "Buffers (Telescope)" }) -- Buffers
+end
+
+local config = function()
+ local telescope = require("telescope")
+ telescope.setup({
+ defaults = {
+ mappings = {
+ i = {
+ ["<C-j>"] = "move_selection_next",
+ ["<C-k>"] = "move_selection_previous",
+ },
+ },
+ },
+ picker = {
+ find_files = {
+ theme = "dropdown",
+ previewer = false,
+ hidden = true,
+ },
+ live_grep = {
+ theme = "dropdown",
+ previewer = false,
+ },
+ find_buffers = {
+ theme = "dropdown",
+ previewer = false,
+ },
+ },
+ })
+end
+
+return {
+ "nvim-telescope/telescope.nvim",
+ dependencies = { "nvim-lua/plenary.nvim" },
+ lazy = true,
+ cmd = "Telescope",
+ init = init,
+ config = config
+}
diff --git a/nvim/lua/plugins/todo-comments.lua b/nvim/lua/plugins/todo-comments.lua
new file mode 100644
index 0000000..34da0fe
--- /dev/null
+++ b/nvim/lua/plugins/todo-comments.lua
@@ -0,0 +1,34 @@
+return {
+ "folke/todo-comments.nvim",
+ dependencies = { "nvim-lua/plenary.nvim" },
+ lazy = true,
+ event = { "BufReadPost", "BufWritePost", "BufNewFile" },
+ opts = {
+ keywords = {
+ FIX = { icon = "", color = "error", alt = { "FIXME", "BUG", "FIXIT", "ISSUE" } },
+ TODO = { icon = "", color = "info" },
+ HACK = { icon = "", color = "hack" },
+ WARN = { icon = "", color = "warning", alt = { "WARNING", "XXX" } },
+ PERF = { icon = "󰅒", color = "perf", alt = { "OPTIM", "PERFORMANCE", "OPTIMIZE" } },
+ NOTE = { icon = "", color = "hint", alt = { "INFO" } },
+ TEST = { icon = "", color = "test", alt = { "TESTING", "PASSED", "FAILED" } },
+ },
+ colors = {
+ error = { "DiagnosticError", "ErrorMsg", "#DC2626" },
+ warning = { "DiagnosticWarn", "WarningMsg", "#FBBF24" },
+ info = { "DiagnosticInfo", "#2563EB" },
+ hint = { "DiagnosticHint", "#10B981" },
+ test = { "Identifier", "#FF00FF" },
+ hack = "#F5A97F",
+ perf = "#C6A0F6"
+ }
+ }
+}
+
+-- FIX: ciao
+-- TODO: ciao
+-- HACK: ciao
+-- WARN: ciao
+-- PERF: ciao
+-- NOTE: ciao
+-- TEST: ciao
diff --git a/nvim/lua/plugins/toggleterm.lua b/nvim/lua/plugins/toggleterm.lua
new file mode 100644
index 0000000..f47d0ab
--- /dev/null
+++ b/nvim/lua/plugins/toggleterm.lua
@@ -0,0 +1,64 @@
+local init = function()
+ local keymap = vim.keymap
+ keymap.set("n", "<C-t>", ":ToggleTerm<Enter>:startinsert<Enter>",
+ { noremap = true, silent = true, desc = "Terminal (ToggleTerm)" }) -- Terminal
+ keymap.set("t", "<C-t>", "<C-\\><C-n>:ToggleTerm<Enter>")
+ keymap.set("n", "<Space>g", ":ToggleLazyGit<Enter>",
+ { noremap = true, silent = true, desc = "LazyGit (ToggleTerm)" }) -- LazyGit
+end
+
+local config = function()
+ require("toggleterm").setup {
+ autochdir = false,
+ direction = "float",
+ -- open_mapping = [[<c-t>]],
+ -- terminal_mappings = true,
+ start_in_insert = false,
+ float_opts = {
+ border = "curved",
+ },
+ on_open = function(term)
+ local cwd = vim.fn.getcwd()
+ if term.dir ~= cwd then
+ term:send("cd " .. cwd .. " && clear")
+ term.dir = cwd
+ end
+ end,
+ }
+ local Terminal = require("toggleterm.terminal").Terminal
+ local opts = {
+ noremap = true, -- non-recursive
+ silent = true, -- do not show message
+ }
+
+ -- LazyGit
+ local lazygit = Terminal:new({
+ cmd = "lazygit",
+ dir = "git_dir",
+ direction = "float",
+ float_opts = {
+ border = "curved",
+ },
+ -- function to run on opening the terminal
+ on_open = function(term)
+ vim.cmd("startinsert!")
+ vim.api.nvim_buf_set_keymap(term.bufnr, "n", "q", ":close<Enter>", opts)
+ end,
+ -- function to run on closing the terminal
+ on_close = function()
+ vim.cmd("startinsert!")
+ end,
+ })
+ local function toggle_lazygit()
+ lazygit:toggle()
+ end
+ vim.api.nvim_create_user_command("ToggleLazyGit", toggle_lazygit, {})
+end
+
+return {
+ "akinsho/toggleterm.nvim",
+ lazy = true,
+ cmd = { "ToggleTerm", "ToggleLazyGit" },
+ init = init,
+ config = config,
+}
diff --git a/nvim/lua/plugins/trouble.lua b/nvim/lua/plugins/trouble.lua
new file mode 100644
index 0000000..a49d906
--- /dev/null
+++ b/nvim/lua/plugins/trouble.lua
@@ -0,0 +1,24 @@
+local init = function()
+ local keymap = vim.keymap
+ keymap.set("n", "<Space>rd", ":Trouble diagnostics toggle<Enter>",
+ { noremap = true, silent = true, desc = "Diagnostics (Trouble)" }) -- Diagnostics
+ keymap.set("n", "<Space>rt", ":Trouble todo toggle<Enter>",
+ { noremap = true, silent = true, desc = "Todos (Trouble)" }) -- Todos
+ keymap.set("n", "<Space>ro", ":Trouble symbols toggle<Enter>",
+ { noremap = true, silent = true, desc = "Outline (Trouble)" }) -- Outline
+end
+
+local config = function()
+ require("trouble").setup({
+ use_diagnostic_signs = true
+ })
+end
+
+return {
+ "folke/trouble.nvim",
+ dependencies = { "nvim-tree/nvim-web-devicons" },
+ lazy = true,
+ cmd = "Trouble",
+ init = init,
+ config = config
+}
diff --git a/nvim/lua/plugins/vim-highlightedyank.lua b/nvim/lua/plugins/vim-highlightedyank.lua
new file mode 100644
index 0000000..9405e9e
--- /dev/null
+++ b/nvim/lua/plugins/vim-highlightedyank.lua
@@ -0,0 +1,8 @@
+return {
+ "machakann/vim-highlightedyank",
+ lazy = true,
+ keys = {
+ { "y", mode = "n" },
+ { "y", mode = "v" }
+ }
+}
diff --git a/nvim/lua/plugins/vim-illuminate.lua b/nvim/lua/plugins/vim-illuminate.lua
new file mode 100644
index 0000000..f44b6c9
--- /dev/null
+++ b/nvim/lua/plugins/vim-illuminate.lua
@@ -0,0 +1,5 @@
+return {
+ "RRethy/vim-illuminate",
+ lazy = true,
+ event = { "BufReadPost", "BufWritePost", "BufNewFile" },
+}
diff --git a/nvim/lua/plugins/which-key.lua b/nvim/lua/plugins/which-key.lua
new file mode 100644
index 0000000..5b1383e
--- /dev/null
+++ b/nvim/lua/plugins/which-key.lua
@@ -0,0 +1,10 @@
+return {
+ "folke/which-key.nvim",
+ lazy = true,
+ event = "VeryLazy",
+ init = function()
+ vim.o.timeout = true
+ vim.o.timeoutlen = 500
+ end,
+ opts = {}
+}
diff --git a/nvim/lua/plugins/yuck.lua b/nvim/lua/plugins/yuck.lua
new file mode 100644
index 0000000..aedbeba
--- /dev/null
+++ b/nvim/lua/plugins/yuck.lua
@@ -0,0 +1,5 @@
+return {
+ "elkowar/yuck.vim",
+ lazy = true,
+ ft = "yuck"
+}
diff --git a/paru/paru.conf b/paru/paru.conf
new file mode 100644
index 0000000..9a8c2b4
--- /dev/null
+++ b/paru/paru.conf
@@ -0,0 +1,40 @@
+#
+# $PARU_CONF
+# /etc/paru.conf
+# ~/.config/paru/paru.conf
+#
+# See the paru.conf(5) manpage for options
+
+#
+# GENERAL OPTIONS
+#
+[options]
+PgpFetch
+Devel
+Provides
+DevelSuffixes = -git -cvs -svn -bzr -darcs -always -hg -fossil
+#AurOnly
+BottomUp
+#RemoveMake
+#SudoLoop
+#UseAsk
+SaveChanges
+CombinedUpgrade
+CleanAfter
+UpgradeMenu
+NewsOnUpgrade
+BatchInstall
+
+#LocalRepo
+#Chroot
+#Sign
+#SignDb
+#KeepRepoCache
+
+#
+# Binary OPTIONS
+#
+#[bin]
+#FileManager = vifm
+#MFlags = --skippgpcheck
+#Sudo = doas
diff --git a/rofi/applauncher.rasi b/rofi/applauncher.rasi
new file mode 100644
index 0000000..68173a5
--- /dev/null
+++ b/rofi/applauncher.rasi
@@ -0,0 +1,58 @@
+@theme "/dev/null"
+@import "macchiato.rasi"
+
+configuration {
+ show-icons: true;
+ icon-theme: "Papirus";
+ display-drun: "";
+ terminal: "footclient -o pad=0x0";
+}
+
+* {
+ background-color: @mantle;
+}
+
+window {
+ children: [ inputbar, listview ];
+
+ border: 1;
+ border-radius: 10;
+ border-color: @surface0;
+
+ padding: 15;
+}
+
+inputbar {
+ children: [ prompt, entry ];
+ spacing: 10;
+}
+prompt {
+ font: "Symbols Nerd Font Mono 12.5";
+ vertical-align: 0.5;
+ text-color: @sky;
+}
+entry {
+ font: "Hack Nerd Font 12.5";
+ placeholder-color: @overlay0;
+ text-color: @text;
+ placeholder: "...";
+}
+
+listview {
+ padding: 10;
+ spacing: 5;
+ lines: 8;
+}
+element {
+ children: [ element-icon, element-text ];
+ spacing: 5;
+ text-color: @overlay0;
+}
+element-text {
+ font: "Hack Nerd Font 12.5";
+ text-color: inherit;
+ vertical-align: 0.5;
+}
+element selected {
+ text-color: @text;
+}
diff --git a/rofi/macchiato.rasi b/rofi/macchiato.rasi
new file mode 100644
index 0000000..e978562
--- /dev/null
+++ b/rofi/macchiato.rasi
@@ -0,0 +1,29 @@
+* {
+ rosewater: #f4dbd6;
+ flamingo: #f0c6c6;
+ pink: #f5bde6;
+ mauve: #c6a0f6;
+ red: #ed8796;
+ maroon: #ee99a0;
+ peach: #f5a97f;
+ yellow: #eed49f;
+ green: #a6da95;
+ teal: #8bd5ca;
+ sky: #91d7e3;
+ sapphire: #7dc4e4;
+ blue: #8aadf4;
+ lavander: #b7bdf8;
+ text: #cad3f5;
+ subtext1: #b8c0e0;
+ subtext0: #a5adcb;
+ overlay2: #939ab7;
+ overlay1: #8087a2;
+ overlay0: #6e738d;
+ surface2: #5b6078;
+ surface1: #494d64;
+ surface0: #363a4f;
+ base: #24273a;
+ mantle: #1e2030;
+ crust: #181926;
+}
+
diff --git a/rofi/powermenu.rasi b/rofi/powermenu.rasi
new file mode 100644
index 0000000..c48c617
--- /dev/null
+++ b/rofi/powermenu.rasi
@@ -0,0 +1,50 @@
+@theme "/dev/null"
+@import "macchiato.rasi"
+
+configuration {
+ show-icons: false;
+}
+
+* {
+ background-color: @mantle;
+}
+
+window {
+ children: [ horibox ];
+ border: 1;
+ border-radius: 10;
+ border-color: @surface0;
+ padding: 10;
+ width: 313px;
+}
+
+horibox {
+ orientation: horizontal;
+ children: [ listview ];
+}
+
+listview {
+ layout: horizontal;
+ spacing: 10;
+ lines: 4;
+}
+
+element {
+ text-color: @overlay0;
+ border: 1;
+ border-radius: 5;
+ background-color: @crust;
+ padding: 15;
+}
+
+element-text {
+ font: "Symbols Nerd Font Mono 25";
+ text-color: inherit;
+ background-color: inherit;
+ vertical-align: 0.5;
+}
+
+element selected{
+ text-color: @base;
+ background-color: @text;
+}
diff --git a/rofi/powermenu.sh b/rofi/powermenu.sh
new file mode 100755
index 0000000..2adc4c4
--- /dev/null
+++ b/rofi/powermenu.sh
@@ -0,0 +1,17 @@
+#! /bin/sh
+
+poweroff=""
+reboot=""
+lock=""
+exit="󰗼"
+
+chosen=$(echo -e "$poweroff\n$reboot\n$lock\n$exit" | rofi -dmenu -theme powermenu.rasi)
+
+case "$chosen" in
+ "$poweroff") shutdown now ;;
+ "$reboot") reboot ;;
+ "$lock") loginctl lock-session ;;
+ "$exit") hyprctl dispatch exit ;;
+ *) exit 1 ;;
+esac
+
diff --git a/superfile/config.toml b/superfile/config.toml
new file mode 100644
index 0000000..e31b388
--- /dev/null
+++ b/superfile/config.toml
@@ -0,0 +1,51 @@
+# More details are at https://superfile.netlify.app/configure/superfile-config/
+# change your theme
+theme = 'catppuccin-macchiato'
+#
+# Auto check for update
+auto_check_update = true
+#
+# Cd on quit (For more details, please check out https://superfile.netlify.app/configure/superfile-config/#cd_on_quit)
+cd_on_quit = false
+#
+# Whether to open file preview automatically every time superfile is opened.
+default_open_file_preview = true
+#
+# The path of the first file panel when superfile is opened.
+default_directory = '.'
+#
+# Display file sizes using powers of 1000 (kB, MB, GB) instead of powers of 1024 (KiB, MiB, GiB).
+file_size_use_si = false
+#
+# ================ Style =================
+#
+# If you don't have or don't want Nerdfont installed you can turn this off
+nerdfont = true
+#
+# Set transparent background or not (this only work when your terminal background is transparent)
+transparent_background = false
+#
+# File preview width allow '0' (this mean same as file panel),'x' x must be less than 10 and greater than 1 (This means that the width of the file preview will be one xth of the total width.)
+file_preview_width = 0
+#
+# The length of the sidebar. If you don't want to display the sidebar, you can input 0 directly. If you want to display the value, please place it in the range of 3-20.
+sidebar_width = 20
+#
+# Border style
+border_top = '─'
+border_bottom = '─'
+border_left = '│'
+border_right = '│'
+border_top_left = '╭'
+border_top_right = '╮'
+border_bottom_left = '╰'
+border_bottom_right = '╯'
+border_middle_left = '├'
+border_middle_right = '┤'
+#
+# ==========PLUGINS========== #
+#
+# Show more detailed metadata, please install exiftool before enabling this plugin!
+metadata = true
+# Enable MD5 checksum generation for files
+enable_md5_checksum = false
diff --git a/superfile/hotkeys.toml b/superfile/hotkeys.toml
new file mode 100644
index 0000000..bddd763
--- /dev/null
+++ b/superfile/hotkeys.toml
@@ -0,0 +1,50 @@
+# =================================================================================================
+# Here is global, all global key can't conflicts with other hotkeys
+confirm = ['enter', 'l']
+quit = ['q', 'esc']
+# movement
+list_up = ['up', 'k']
+list_down = ['down', 'j']
+# file panel control
+close_file_panel = ['w', '']
+create_new_file_panel = ['n', '']
+next_file_panel = ['tab', 'L']
+previous_file_panel = ['shift+left', 'H']
+toggle_file_preview_panel = ['f', '']
+# change focus
+focus_on_process_bar = ['p', '']
+focus_on_sidebar = ['s', '']
+focus_on_metadata = ['m', '']
+# create file/directory and rename
+file_panel_item_create = ['ctrl+n', '']
+file_panel_item_rename = ['ctrl+r', '']
+# file operate
+copy_items = ['ctrl+c', '']
+paste_items = ['ctrl+v', '']
+cut_items = ['ctrl+x', '']
+delete_items = ['ctrl+d', 'delete']
+# compress and extract
+extract_file = ['ctrl+e', '']
+compress_file = ['ctrl+a', '']
+# editor
+open_file_with_editor = ['e', '']
+open_current_directory_with_editor = ['E', '']
+# else
+pinned_directory = ['P', '']
+toggle_dot_file = ['.', '']
+change_panel_mode = ['v', '']
+open_help_menu = ['?', '']
+open_command_line = [':', '']
+# =================================================================================================
+# Here is typing hotkey can conflict with all hotkeys
+confirm_typing = ['enter', '']
+cancel_typing = ['ctrl+c', 'esc']
+# =================================================================================================
+# Here is normal mode hotkey you can conflicts with other mode (can't conflicts with global hotkey)
+parent_directory = ['h', 'backspace']
+search_bar = ['/', '']
+# =================================================================================================
+# Here is select mode hotkey you can conflicts with other mode (can't conflicts with global hotkey)
+file_panel_select_mode_items_select_down = ['shift+down', 'J']
+file_panel_select_mode_items_select_up = ['shift+up', 'K']
+file_panel_select_all_items = ['A', '']
diff --git a/tlpui/tlpui.cfg b/tlpui/tlpui.cfg
new file mode 100644
index 0000000..c1c727f
--- /dev/null
+++ b/tlpui/tlpui.cfg
@@ -0,0 +1,8 @@
+[default]
+language = en_EN
+activeoption = 1
+activecategory = 1
+activeposition = 114.0
+windowxsize = 1258
+windowysize = 735
+
diff --git a/waybar/config b/waybar/config
new file mode 100644
index 0000000..57a5e03
--- /dev/null
+++ b/waybar/config
@@ -0,0 +1,104 @@
+{
+ "layer": "top",
+ "margin": 2,
+ "spacing": 2,
+ "fixed-center": false,
+ "modules-left": ["custom/cat", "hyprland/workspaces", "tray"],
+ "modules-center": [],
+ "modules-right": ["backlight", "pulseaudio", "network", "bluetooth", "cpu", "memory", "temperature", "disk", "battery", "clock"],
+ "custom/cat": {
+ "format": "<span color='#181926' font-family='Symbols Nerd Font Mono'>󰄛</span>",
+ "tooltip": false,
+ },
+ "hyprland/workspaces": {
+ "persistent-workspaces": {
+ "*": 5
+ },
+ "format": "<span font-family='Symbols Nerd Font Mono'>{icon}</span>",
+ "format-icons": {
+ "empty": "󰯈",
+ "default": "󰚌",
+ }
+ },
+ "tray": {
+ "icon-size": 20,
+ "spacing": 5,
+ },
+ "bluetooth": {
+ "format": "",
+ "format-connected": "<span color='#8aadf4' font-family='Symbols Nerd Font Mono'></span>",
+ "tooltip-format": "{device_alias}",
+ "on-click": "footclient bluetuith"
+ },
+ "network": {
+ "format-wifi": "<span color='#b7bdf8' font-family='Symbols Nerd Font Mono'>󰖩</span>",
+ "format-disconnected": "<span color='#b7bdf4' font-family='Symbols Nerd Font Mono'>󰖪</span>",
+ "tooltip-format": "{essid}",
+ "on-click": "footclient -o pad=0x0 nmtui"
+ },
+ "pulseaudio": {
+ "format": "<span color='#c6a0f6' font-family='Symbols Nerd Font Mono'>{icon}</span> {volume}%",
+ "format-muted": "<span color='#c6a0f6' font-family='Symbols Nerd Font Mono'>󰝟</span> <span color='#8087a2'>{volume}%</span>",
+ "format-icons": {
+ "default": ["󰕿", "󰖀", "󰕾"],
+ },
+ "on-click": "footclient pulsemixer"
+ },
+ "backlight": {
+ "device": "intel_backlight",
+ "format": "<span color='#ffffff' font-family='Symbols Nerd Font Mono'>{icon}</span> {percent}%",
+ "format-icons": ["", "", "", "", "", "", "", "", ""],
+ "tooltip": false
+ },
+ "cpu": {
+ "interval": 1,
+ "format": "<span color='#7dc4e4' font-family='Symbols Nerd Font Mono'> </span> {icon0}{icon1}{icon2}{icon3}{icon4}{icon5}{icon6}{icon7}{icon8}{icon9}{icon10}{icon11}{icon12}{icon13}{icon14}{icon15}",
+ "format-icons": [
+ "<span color='#c6a0f6'>▁</span>",
+ "<span color='#8aadf4'>▂</span>",
+ "<span color='#8bd5ca'>▃</span>",
+ "<span color='#a6da95'>▄</span>",
+ "<span color='#eed49f'>▅</span>",
+ "<span color='#f5a97f'>▆</span>",
+ "<span color='#ee99a0'>▇</span>",
+ "<span color='#ed8796'>█</span>"
+ ],
+ "on-click": "footclient -o pad=0x0 btop -p 1",
+ },
+ "temperature": {
+ "interval": 5,
+ "hwmon-path-abs": "/sys/devices/platform/coretemp.0/hwmon",
+ "input-filename": "temp1_input",
+ "format": "<span color='#a6da95' font-family='Symbols Nerd Font Mono'>{icon}</span> {temperatureC}°",
+ "format-critical": "<span color='#181926' font-family='Symbols Nerd Font Mono'>{icon}</span> {temperatureC}°",
+ "critical-threshold": 70,
+ "format-icons": ["", "", "", "", ""],
+ "tooltip": false
+ },
+ "memory": {
+ "interval": 5,
+ "format": "<span color='#8bd5ca' font-family='Symbols Nerd Font Mono'>󰘚</span> {used:0.1f}GiB",
+ "tooltip-format": "{used:0.1f}GiB / {total:0.1f}GiB"
+ },
+ "disk": {
+ "format": "<span color='#eed49f' font-family='Symbols Nerd Font Mono'>󰋊</span> {percentage_used}%",
+ "tooltip-format": "{used} / {total}"
+ },
+ "battery": {
+ "interval": 5,
+ "states": {
+ "warning": 25,
+ "critical": 10
+ },
+ "format": "<span color='#f5a97f' font-family='Symbols Nerd Font Mono'>{icon}</span> {capacity}%",
+ "format-warning": "<span font-family='Symbols Nerd Font Mono'>{icon}</span> {capacity}%",
+ "format-critical": "<span font-family='Symbols Nerd Font Mono'>{icon}</span> {capacity}%",
+ "format-charging": "<span font-family='Symbols Nerd Font Mono'>{icon}</span> {capacity}%",
+ "format-icons": ["", "", "", "", ""],
+ },
+ "clock": {
+ "format": "<span color='#ed8796' font-family='Symbols Nerd Font Mono'>󰥔</span> {:%H:%M}",
+ "tooltip-format": "{:%A, %B %d, %Y (%R)}"
+ }
+}
+
diff --git a/waybar/macchiato.css b/waybar/macchiato.css
new file mode 100644
index 0000000..70c6bf9
--- /dev/null
+++ b/waybar/macchiato.css
@@ -0,0 +1,29 @@
+:root {
+ rosewater: #f4dbd6;
+ flamingo: #f0c6c6;
+ pink: #f5bde6;
+ mauve: #c6a0f6;
+ red: #ed8796;
+ maroon: #ee99a0;
+ peach: #f5a97f;
+ yellow: #eed49f;
+ green: #a6da95;
+ teal: #8bd5ca;
+ sky: #91d7e3;
+ sapphire: #7dc4e4;
+ blue: #8aadf4;
+ lavender: #b7bdf8;
+ text: #cad3f5;
+ subtext1: #b8c0e0;
+ subtext0: #a5adcb;
+ overlay2: #939ab7;
+ overlay1: #8087a2;
+ overlay0: #6e738d;
+ surface2: #5b6078;
+ surface1: #494d64;
+ surface0: #363a4f;
+ base: #24273a;
+ bantle: #1e2030;
+ crust: #181926;
+}
+
diff --git a/waybar/style.css b/waybar/style.css
new file mode 100644
index 0000000..343864f
--- /dev/null
+++ b/waybar/style.css
@@ -0,0 +1,145 @@
+/*
+rosewater: #f4dbd6;
+flamingo: #f0c6c6;
+pink: #f5bde6;
+mauve: #c6a0f6;
+red: #ed8796;
+maroon: #ee99a0;
+peach: #f5a97f;
+yellow: #eed49f;
+green: #a6da95;
+teal: #8bd5ca;
+sky: #91d7e3;
+sapphire: #7dc4e4;
+blue: #8aadf4;
+lavender: #b7bdf8;
+text: #cad3f5;
+subtext1: #b8c0e0;
+subtext0: #a5adcb;
+overlay2: #939ab7;
+overlay1: #8087a2;
+overlay0: #6e738d;
+surface2: #5b6078;
+surface1: #494d64;
+surface0: #363a4f;
+base: #24273a;
+mantle: #1e2030;
+crust: #181926;
+*/
+
+* {
+ font-family: Hack Nerd Font;
+}
+
+window#waybar {
+ background: transparent;
+ color: #cad3f5;
+}
+
+tooltip,
+.modules-left,
+.modules-right {
+ background: #24253a;
+ border-radius: 10px;
+ border-color: #363a4f;
+ border-style: solid;
+ border-width: 1px;
+ padding-left: 2.5px;
+ padding-right: 2.5px;
+}
+
+tooltip {
+ background: #181926;
+}
+tooltip label {
+ color: #cad3f5;
+}
+
+.modules-left {
+ padding-right: 0px;
+}
+
+#custom-cat,
+#workspaces,
+#tray,
+#bluetooth.connected,
+#network,
+#pulseaudio,
+#backlight,
+#cpu,
+#temperature,
+#memory,
+#disk,
+#battery,
+#clock {
+ background: #181926;
+ border-radius: 7.5px;
+ padding-left: 7.5px;
+ padding-right: 7.5px;
+ margin-top: 2.5px;
+ margin-bottom: 2.5px;
+}
+
+#custom-cat {
+ font-size: 20px;
+ background: #cad3f5;
+ border-radius: 360px;
+ margin: 3px;
+ padding: 5px;
+}
+
+#workspaces {
+ padding-left: 0px;
+ padding-right: 0px;
+}
+
+#tray {
+ margin-right: 2.5px;
+}
+
+#tray menu {
+ background: #181926;
+ color: #cad3f5;
+ border-radius: 10px;
+}
+
+#temperature.critical {
+ background: #ed8796;
+ color: #181926;
+}
+
+#battery.warning {
+ background: #f5a97f;
+ color: #181926;
+}
+#battery.critical {
+ background: #ed8796;
+ color: #181926;
+}
+
+#battery.charging {
+ background: #a6da95;
+ color: #181926;
+}
+
+#workspaces button {
+ color: #6e738d;
+ border-radius: 7.5px;
+ background: #181926;
+ border-width: 0px;
+}
+
+#workspaces button.active {
+ color: #cad3f5;
+}
+
+#workspaces button.urgent {
+ color: #181926;
+ background: #ed8796;
+}
+
+#workspaces button:hover {
+ color: #181926;
+ background: #cad3f5;
+}
+