diff options
| author | eric.marin <maarin.eric@gmail.com> | 2024-09-11 14:49:39 +0200 |
|---|---|---|
| committer | eric.marin <maarin.eric@gmail.com> | 2024-09-11 14:59:47 +0200 |
| commit | 9f20c1f313e20102dd83adeaf091284be1fd82d0 (patch) | |
| tree | d3db386875af532f4fc55c275312c7c787e88f55 | |
| download | dotfiles-9f20c1f313e20102dd83adeaf091284be1fd82d0.tar.gz dotfiles-9f20c1f313e20102dd83adeaf091284be1fd82d0.zip | |
config
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 Binary files differnew file mode 100644 index 0000000..e6de6a8 --- /dev/null +++ b/eww/eww-bar.png 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 Binary files differnew file mode 100644 index 0000000..edb31e2 --- /dev/null +++ b/eww/wallpaper 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; +} + |
