diff --git a/.clang-format b/.clang-format
new file mode 100644
index 0000000..21e7d60
--- /dev/null
+++ b/.clang-format
@@ -0,0 +1,6 @@
+UseTab: Always
+IndentWidth: 4
+TabWidth: 4
+AllowShortFunctionsOnASingleLine: None
+AlignAfterOpenBracket: AlwaysBreak
+# vim: ft=yaml
diff --git a/.config/alarm/low-battery-sound.mp3 b/.config/alarm/low-battery-sound.mp3
new file mode 100644
index 0000000..6b4ddc7
Binary files /dev/null and b/.config/alarm/low-battery-sound.mp3 differ
diff --git a/.config/bottom/bottom.toml b/.config/bottom/bottom.toml
new file mode 100644
index 0000000..181f87f
--- /dev/null
+++ b/.config/bottom/bottom.toml
@@ -0,0 +1,170 @@
+# This is a default config file for bottom. All of the settings are commented
+# out by default; if you wish to change them uncomment and modify as you see
+# fit.
+
+# This group of options represents a command-line flag/option. Flags explicitly
+# added when running (ie: btm -a) will override this config file if an option
+# is also set here.
+
+[flags]
+# Whether to hide the average cpu entry.
+#hide_avg_cpu = false
+# Whether to use dot markers rather than braille.
+#dot_marker = false
+# The update rate of the application.
+#rate = 1000
+# Whether to put the CPU legend to the left.
+#left_legend = false
+# Whether to set CPU% on a process to be based on the total CPU or just current usage.
+#current_usage = false
+# Whether to group processes with the same name together by default.
+#group_processes = false
+# Whether to make process searching case sensitive by default.
+#case_sensitive = false
+# Whether to make process searching look for matching the entire word by default.
+#whole_word = false
+# Whether to make process searching use regex by default.
+#regex = false
+# Defaults to Celsius. Temperature is one of:
+#temperature_type = "k"
+#temperature_type = "f"
+temperature_type = "c"
+#temperature_type = "kelvin"
+#temperature_type = "fahrenheit"
+#temperature_type = "celsius"
+# The default time interval (in milliseconds).
+#default_time_value = 60000
+# The time delta on each zoom in/out action (in milliseconds).
+#time_delta = 15000
+# Hides the time scale.
+#hide_time = false
+# Override layout default widget
+#default_widget_type = "proc"
+#default_widget_count = 1
+# Use basic mode
+#basic = false
+# Use the old network legend style
+#use_old_network_legend = false
+# Remove space in tables
+#hide_table_gap = false
+# Show the battery widgets
+#battery = false
+# Disable mouse clicks
+#disable_click = false
+# Built-in themes. Valid values are "default", "default-light", "gruvbox", "gruvbox-light", "nord", "nord-light"
+#color = "default"
+# Show memory values in the processes widget as values by default
+#mem_as_value = false
+# Show tree mode by default in the processes widget.
+#tree = false
+# Shows an indicator in table widgets tracking where in the list you are.
+#show_table_scroll_position = false
+# Show processes as their commands by default in the process widget.
+#process_command = false
+# Displays the network widget with binary prefixes.
+#network_use_binary_prefix = false
+# Displays the network widget using bytes.
+#network_use_bytes = false
+# Displays the network widget with a log scale.
+#network_use_log = false
+# Hides advanced options to stop a process on Unix-like systems.
+#disable_advanced_kill = false
+
+# These are all the components that support custom theming. Note that colour support
+# will depend on terminal support.
+
+#[colors] # Uncomment if you want to use custom colors
+# Represents the colour of table headers (processes, CPU, disks, temperature).
+#table_header_color="LightBlue"
+# Represents the colour of the label each widget has.
+#widget_title_color="Gray"
+# Represents the average CPU color.
+#avg_cpu_color="Red"
+# Represents the colour the core will use in the CPU legend and graph.
+#cpu_core_colors=["LightMagenta", "LightYellow", "LightCyan", "LightGreen", "LightBlue", "LightRed", "Cyan", "Green", "Blue", "Red"]
+# Represents the colour RAM will use in the memory legend and graph.
+#ram_color="LightMagenta"
+# Represents the colour SWAP will use in the memory legend and graph.
+#swap_color="LightYellow"
+# Represents the colour rx will use in the network legend and graph.
+#rx_color="LightCyan"
+# Represents the colour tx will use in the network legend and graph.
+#tx_color="LightGreen"
+# Represents the colour of the border of unselected widgets.
+#border_color="Gray"
+# Represents the colour of the border of selected widgets.
+#highlighted_border_color="LightBlue"
+# Represents the colour of most text.
+#text_color="Gray"
+# Represents the colour of text that is selected.
+#selected_text_color="Black"
+# Represents the background colour of text that is selected.
+#selected_bg_color="LightBlue"
+# Represents the colour of the lines and text of the graph.
+#graph_color="Gray"
+# Represents the colours of the battery based on charge
+#high_battery_color="green"
+#medium_battery_color="yellow"
+#low_battery_color="red"
+
+# Layout - layouts follow a pattern like this:
+# [[row]] represents a row in the application.
+# [[row.child]] represents either a widget or a column.
+# [[row.child.child]] represents a widget.
+#
+# All widgets must have the type value set to one of ["cpu", "mem", "proc", "net", "temp", "disk", "empty"].
+# All layout components have a ratio value - if this is not set, then it defaults to 1.
+# The default widget layout:
+#[[row]]
+# ratio=30
+# [[row.child]]
+# type="cpu"
+#[[row]]
+# ratio=40
+# [[row.child]]
+# ratio=4
+# type="mem"
+# [[row.child]]
+# ratio=3
+# [[row.child.child]]
+# type="temp"
+# [[row.child.child]]
+# type="disk"
+#[[row]]
+# ratio=30
+# [[row.child]]
+# type="net"
+# [[row.child]]
+# type="proc"
+# default=true
+
+
+# Filters - you can hide specific temperature sensors, network interfaces, and disks using filters. This is admittedly
+# a bit hard to use as of now, and there is a planned in-app interface for managing this in the future:
+#[disk_filter]
+#is_list_ignored = true
+#list = ["/dev/sda\\d+", "/dev/nvme0n1p2"]
+#regex = true
+#case_sensitive = false
+#whole_word = false
+
+#[mount_filter]
+#is_list_ignored = true
+#list = ["/mnt/.*", "/boot"]
+#regex = true
+#case_sensitive = false
+#whole_word = false
+
+#[temp_filter]
+#is_list_ignored = true
+#list = ["cpu", "wifi"]
+#regex = false
+#case_sensitive = false
+#whole_word = false
+
+#[net_filter]
+#is_list_ignored = true
+#list = ["virbr0.*"]
+#regex = true
+#case_sensitive = false
+#whole_word = false
diff --git a/.config/bspwm/bspwmrc b/.config/bspwm/bspwmrc
new file mode 100755
index 0000000..a670a75
--- /dev/null
+++ b/.config/bspwm/bspwmrc
@@ -0,0 +1,49 @@
+#!/bin/sh
+# Running events
+# ----------------------------------------------------------------------------
+xsetroot -cursor_name left_ptr
+picom --experimental-backends &
+polybar example &
+light -S 75
+nitrogen --restore &
+betterlockscreen -u ~/Pictures/wallpapers/astronaut-watching-sunset-on-mars.jpg --blur 0.45 --display 1 --span &
+/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &
+dunst -config ~/.config/dunst/dunstrc &
+/home/q/bin/battery &
+# ----------------------------------------------------------------------------
+
+pgrep -x sxhkd > /dev/null || sxhkd &
+bspc monitor -d
+
+# Smart Gaps
+bspc config single_monocle true
+bspc config gapless_monocle true
+
+# Gaps
+bspc config border_width 2
+bspc config window_gap 8
+
+# Set color border
+bspc config focused_border_color '#BB9AF7'
+bspc config active_border_color '#0C1115'
+bspc config normal_border_color '#0C1115'
+
+
+bspc config split_ratio 1.5
+bspc config borderless_monocle true
+bspc config gapless_monocle true
+
+bspc config focus_follows_pointer true
+bspc config pointer_modifier super
+
+# Set floating window size
+bspc rule --add kitty rectangle=750x500+400+200
+
+# Configure allways floating window
+bspc rule -a KotatogramDesktop state=floating follow=off rectangle=666x823+8-26 desktop='^2'
+bspc rule -a Steam state=floating follow=off rectangle=1105x777+226-57
+bspc rule -a spotify state=floatig follow=off rectangle=1492x848+53-13
+bspc rule -a Nitrogen state=floating follow=off rectangle=712x563+429+157
+bspc rule -a mpv state=floating follow=off rectangle=800x450+560+315
+bspc rule -a virt-manager state=floating follow=off rectangle=900x600
+bspc rule -a keepassxc state=floating follow=off rectangle=900x900 desktop='^3'
diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc
new file mode 100644
index 0000000..6e9d945
--- /dev/null
+++ b/.config/dunst/dunstrc
@@ -0,0 +1,456 @@
+# See dunst(5) for all configuration options
+
+[global]
+ ### Display ###
+
+ # Which monitor should the notifications be displayed on.
+ monitor = 0
+
+ # Display notification on focused monitor. Possible modes are:
+ # mouse: follow mouse pointer
+ # keyboard: follow window with keyboard focus
+ # none: don't follow anything
+ #
+ # "keyboard" needs a window manager that exports the
+ # _NET_ACTIVE_WINDOW property.
+ # This should be the case for almost all modern window managers.
+ #
+ # If this option is set to mouse or keyboard, the monitor option
+ # will be ignored.
+ follow = none
+
+ ### Geometry ###
+
+ # dynamic width from 0 to 300
+ # width = (0, 300)
+ # constant width of 300
+ width = (111,444)
+
+ # The maximum height of a single notification, excluding the frame.
+ height = 222
+
+ # Position the notification in the top right corner
+ origin = top-right
+
+ # Offset from the origin
+ offset = 10x50
+
+ # Scale factor. It is auto-detected if value is 0.
+ scale = 0
+
+ # Maximum number of notification (0 means no limit)
+ notification_limit = 0
+
+ ### Progress bar ###
+
+ # Turn on the progess bar. It appears when a progress hint is passed with
+ # for example dunstify -h int:value:12
+ progress_bar = true
+
+ # Set the progress bar height. This includes the frame, so make sure
+ # it's at least twice as big as the frame width.
+ progress_bar_height = 10
+
+ # Set the frame width of the progress bar
+ progress_bar_frame_width = 1
+
+ # Set the minimum width for the progress bar
+ progress_bar_min_width = 150
+
+ # Set the maximum width for the progress bar
+ progress_bar_max_width = 300
+
+ # Show how many messages are currently hidden (because of
+ # notification_limit).
+ indicate_hidden = yes
+
+ # The transparency of the window. Range: [0; 100].
+ # This option will only work if a compositing window manager is
+ # present (e.g. xcompmgr, compiz, etc.). (X11 only)
+ transparency = 0
+
+ # Draw a line of "separator_height" pixel height between two
+ # notifications.
+ # Set to 0 to disable.
+ # If gap_size is greater than 0, this setting will be ignored.
+ separator_height = 2
+
+ # Padding between text and separator.
+ padding = 8
+
+ # Horizontal padding.
+ horizontal_padding = 8
+
+ # Padding between text and icon.
+ text_icon_padding = 0
+
+ # Defines width in pixels of frame around the notification window.
+ # Set to 0 to disable.
+ frame_width = 3
+
+ # Defines color of the frame around the notification window.
+ frame_color = "#16161E"
+
+ # Size of gap to display between notifications - requires a compositor.
+ # If value is greater than 0, separator_height will be ignored and a border
+ # of size frame_width will be drawn around each notification instead.
+ # Click events on gaps do not currently propagate to applications below.
+ gap_size = 0
+
+ # Define a color for the separator.
+ # possible values are:
+ # * auto: dunst tries to find a color fitting to the background;
+ # * foreground: use the same color as the foreground;
+ # * frame: use the same color as the frame;
+ # * anything else will be interpreted as a X color.
+ separator_color = frame
+
+ # Sort messages by urgency.
+ sort = yes
+
+ # Don't remove messages, if the user is idle (no mouse or keyboard input)
+ # for longer than idle_threshold seconds.
+ # Set to 0 to disable.
+ # A client can set the 'transient' hint to bypass this. See the rules
+ # section for how to disable this if necessary
+ # idle_threshold = 120
+
+ ### Text ###
+
+ font = Iosevka 10
+
+ # The spacing between lines. If the height is smaller than the
+ # font height, it will get raised to the font height.
+ line_height = 0
+
+ # Possible values are:
+ # full: Allow a small subset of html markup in notifications:
+ # bold
+ # italic
+ # strikethrough
+ # underline
+ #
+ # For a complete reference see
+ # .
+ #
+ # strip: This setting is provided for compatibility with some broken
+ # clients that send markup even though it's not enabled on the
+ # server. Dunst will try to strip the markup but the parsing is
+ # simplistic so using this option outside of matching rules for
+ # specific applications *IS GREATLY DISCOURAGED*.
+ #
+ # no: Disable markup parsing, incoming notifications will be treated as
+ # plain text. Dunst will not advertise that it has the body-markup
+ # capability if this is set as a global setting.
+ #
+ # It's important to note that markup inside the format option will be parsed
+ # regardless of what this is set to.
+ markup = full
+
+ # The format of the message. Possible variables are:
+ # %a appname
+ # %s summary
+ # %b body
+ # %i iconname (including its path)
+ # %I iconname (without its path)
+ # %p progress value if set ([ 0%] to [100%]) or nothing
+ # %n progress value if set without any extra characters
+ # %% Literal %
+ # Markup is allowed
+ format = "%s\n%b"
+
+ # Alignment of message text.
+ # Possible values are "left", "center" and "right".
+ alignment = left
+
+ # Vertical alignment of message text and icon.
+ # Possible values are "top", "center" and "bottom".
+ vertical_alignment = center
+
+ # Show age of message if message is older than show_age_threshold
+ # seconds.
+ # Set to -1 to disable.
+ show_age_threshold = 60
+
+ # Specify where to make an ellipsis in long lines.
+ # Possible values are "start", "middle" and "end".
+ ellipsize = middle
+
+ # Ignore newlines '\n' in notifications.
+ ignore_newline = no
+
+ # Stack together notifications with the same content
+ stack_duplicates = true
+
+ # Hide the count of stacked notifications with the same content
+ hide_duplicate_count = false
+
+ # Display indicators for URLs (U) and actions (A).
+ show_indicators = yes
+
+ ### Icons ###
+
+ # Recursive icon lookup. You can set a single theme, instead of having to
+ # define all lookup paths.
+ enable_recursive_icon_lookup = true
+
+ # Set icon theme (only used for recursive icon lookup)
+ icon_theme = Adwaita
+ # You can also set multiple icon themes, with the leftmost one being used first.
+ # icon_theme = "Adwaita, breeze"
+
+ # Align icons left/right/top/off
+ icon_position = left
+
+ # Scale small icons up to this size, set to 0 to disable. Helpful
+ # for e.g. small files or high-dpi screens. In case of conflict,
+ # max_icon_size takes precedence over this.
+ min_icon_size = 32
+
+ # Scale larger icons down to this size, set to 0 to disable
+ max_icon_size = 128
+
+ # Paths to default icons (only neccesary when not using recursive icon lookup)
+ icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
+
+ ### History ###
+
+ # Should a notification popped up from history be sticky or timeout
+ # as if it would normally do.
+ sticky_history = yes
+
+ # Maximum amount of notifications kept in history
+ history_length = 20
+
+ ### Misc/Advanced ###
+
+ # dmenu path.
+ dmenu = /usr/bin/dmenu -p dunst:
+
+ # Browser for opening urls in context menu.
+ browser = /usr/bin/xdg-open
+
+ # Always run rule-defined scripts, even if the notification is suppressed
+ always_run_script = true
+
+ # Define the title of the windows spawned by dunst
+ title = Dunst
+
+ # Define the class of the windows spawned by dunst
+ class = Dunst
+
+ # Define the corner radius of the notification window
+ # in pixel size. If the radius is 0, you have no rounded
+ # corners.
+ # The radius will be automatically lowered if it exceeds half of the
+ # notification height to avoid clipping text and/or icons.
+ corner_radius = 5
+
+ # Ignore the dbus closeNotification message.
+ # Useful to enforce the timeout set by dunst configuration. Without this
+ # parameter, an application may close the notification sent before the
+ # user defined timeout.
+ ignore_dbusclose = false
+
+ ### Wayland ###
+ # These settings are Wayland-specific. They have no effect when using X11
+
+ # Uncomment this if you want to let notications appear under fullscreen
+ # applications (default: overlay)
+ # layer = top
+
+ # Set this to true to use X11 output on Wayland.
+ force_xwayland = false
+
+ ### Legacy
+
+ # Use the Xinerama extension instead of RandR for multi-monitor support.
+ # This setting is provided for compatibility with older nVidia drivers that
+ # do not support RandR and using it on systems that support RandR is highly
+ # discouraged.
+ #
+ # By enabling this setting dunst will not be able to detect when a monitor
+ # is connected or disconnected which might break follow mode if the screen
+ # layout changes.
+ force_xinerama = false
+
+ ### mouse
+
+ # Defines list of actions for each mouse event
+ # Possible values are:
+ # * none: Don't do anything.
+ # * do_action: Invoke the action determined by the action_name rule. If there is no
+ # such action, open the context menu.
+ # * open_url: If the notification has exactly one url, open it. If there are multiple
+ # ones, open the context menu.
+ # * close_current: Close current notification.
+ # * close_all: Close all notifications.
+ # * context: Open context menu for the notification.
+ # * context_all: Open context menu for all notifications.
+ # These values can be strung together for each mouse event, and
+ # will be executed in sequence.
+ mouse_left_click = close_current
+ mouse_middle_click = do_action, close_current
+ mouse_right_click = close_all
+
+# Experimental features that may or may not work correctly. Do not expect them
+# to have a consistent behaviour across releases.
+[experimental]
+ # Calculate the dpi to use on a per-monitor basis.
+ # If this setting is enabled the Xft.dpi value will be ignored and instead
+ # dunst will attempt to calculate an appropriate dpi value for each monitor
+ # using the resolution and physical size. This might be useful in setups
+ # where there are multiple screens with very different dpi values.
+ per_monitor_dpi = false
+
+
+[urgency_low]
+ # IMPORTANT: colors have to be defined in quotation marks.
+ # Otherwise the "#" and following would be interpreted as a comment.
+ background = "#1A1B26"
+ foreground = "#A9B1D6"
+ highlight = "#A9B1D6"
+ timeout = 6
+ # Icon for notifications with low urgency, uncomment to enable
+ # default_icon = ~/.config/dunst/icons/notification.png
+
+[urgency_normal]
+ background = "#1A1B26"
+ foreground = "#A9B1D6"
+ highlight = "#A9B1D6"
+ timeout = 6
+ # Icon for notifications with normal urgency, uncomment to enable
+ default_icon = /home/q/.config/dunst/icons/notification.png
+
+[urgency_critical]
+ background = "#1A1B26"
+ foreground = "#A9B1D6"
+ highlight = "#A9B1D6"
+
+ timeout = 10
+ # Icon for notifications with critical urgency, uncomment to enable
+ # default_icon = ~/.config/dunst/icons/notification.png
+
+# Every section that isn't one of the above is interpreted as a rules to
+# override settings for certain messages.
+#
+# Messages can be matched by
+# appname (discouraged, see desktop_entry)
+# body
+# category
+# desktop_entry
+# icon
+# match_transient
+# msg_urgency
+# stack_tag
+# summary
+#
+# and you can override the
+# background
+# foreground
+# format
+# frame_color
+# fullscreen
+# new_icon
+# set_stack_tag
+# set_transient
+# set_category
+# timeout
+# urgency
+# icon_position
+# skip_display
+# history_ignore
+# action_name
+# word_wrap
+# ellipsize
+# alignment
+# hide_text
+#
+# Shell-like globbing will get expanded.
+#
+# Instead of the appname filter, it's recommended to use the desktop_entry filter.
+# GLib based applications export their desktop-entry name. In comparison to the appname,
+# the desktop-entry won't get localized.
+#
+# SCRIPTING
+# You can specify a script that gets run when the rule matches by
+# setting the "script" option.
+# The script will be called as follows:
+# script appname summary body icon urgency
+# where urgency can be "LOW", "NORMAL" or "CRITICAL".
+#
+# NOTE: It might be helpful to run dunst -print in a terminal in order
+# to find fitting options for rules.
+
+# Disable the transient hint so that idle_threshold cannot be bypassed from the
+# client
+#[transient_disable]
+# match_transient = yes
+# set_transient = no
+#
+# Make the handling of transient notifications more strict by making them not
+# be placed in history.
+#[transient_history_ignore]
+# match_transient = yes
+# history_ignore = yes
+
+# fullscreen values
+# show: show the notifications, regardless if there is a fullscreen window opened
+# delay: displays the new notification, if there is no fullscreen window active
+# If the notification is already drawn, it won't get undrawn.
+# pushback: same as delay, but when switching into fullscreen, the notification will get
+# withdrawn from screen again and will get delayed like a new notification
+#[fullscreen_delay_everything]
+# fullscreen = delay
+#[fullscreen_show_critical]
+# msg_urgency = critical
+# fullscreen = show
+
+#[espeak]
+# summary = "*"
+# script = dunst_espeak.sh
+
+#[script-test]
+# summary = "*script*"
+# script = dunst_test.sh
+
+#[ignore]
+# # This notification will not be displayed
+# summary = "foobar"
+# skip_display = true
+
+#[history-ignore]
+# # This notification will not be saved in history
+# summary = "foobar"
+# history_ignore = yes
+
+#[skip-display]
+# # This notification will not be displayed, but will be included in the history
+# summary = "foobar"
+# skip_display = yes
+
+#[signed_on]
+# appname = Pidgin
+# summary = "*signed on*"
+# urgency = low
+#
+#[signed_off]
+# appname = Pidgin
+# summary = *signed off*
+# urgency = low
+#
+#[says]
+# appname = Pidgin
+# summary = *says*
+# urgency = critical
+#
+#[twitter]
+# appname = Pidgin
+# summary = *twitter.com*
+# urgency = normal
+#
+#[stack-volumes]
+# appname = "some_volume_notifiers"
+# set_stack_tag = "volume"
+#
+# vim: ft=cfg
diff --git a/.config/dunst/icons/battery-charged.png b/.config/dunst/icons/battery-charged.png
new file mode 100644
index 0000000..5fdfed2
Binary files /dev/null and b/.config/dunst/icons/battery-charged.png differ
diff --git a/.config/dunst/icons/battery-charging.png b/.config/dunst/icons/battery-charging.png
new file mode 100644
index 0000000..62e23f2
Binary files /dev/null and b/.config/dunst/icons/battery-charging.png differ
diff --git a/.config/dunst/icons/battery-full.png b/.config/dunst/icons/battery-full.png
new file mode 100644
index 0000000..a6ed5f0
Binary files /dev/null and b/.config/dunst/icons/battery-full.png differ
diff --git a/.config/dunst/icons/battery-low.png b/.config/dunst/icons/battery-low.png
new file mode 100644
index 0000000..2563d04
Binary files /dev/null and b/.config/dunst/icons/battery-low.png differ
diff --git a/.config/dunst/icons/cancel.png b/.config/dunst/icons/cancel.png
new file mode 100644
index 0000000..32b2685
Binary files /dev/null and b/.config/dunst/icons/cancel.png differ
diff --git a/.config/dunst/icons/ethernet.png b/.config/dunst/icons/ethernet.png
new file mode 100644
index 0000000..eaf8ce5
Binary files /dev/null and b/.config/dunst/icons/ethernet.png differ
diff --git a/.config/dunst/icons/no-connection.png b/.config/dunst/icons/no-connection.png
new file mode 100644
index 0000000..fac4d51
Binary files /dev/null and b/.config/dunst/icons/no-connection.png differ
diff --git a/.config/dunst/icons/notification.png b/.config/dunst/icons/notification.png
new file mode 100644
index 0000000..20b70dd
Binary files /dev/null and b/.config/dunst/icons/notification.png differ
diff --git a/.config/dunst/icons/record.png b/.config/dunst/icons/record.png
new file mode 100644
index 0000000..3cbc18d
Binary files /dev/null and b/.config/dunst/icons/record.png differ
diff --git a/.config/fish/completions/fisher.fish b/.config/fish/completions/fisher.fish
new file mode 100644
index 0000000..6d23ce4
--- /dev/null
+++ b/.config/fish/completions/fisher.fish
@@ -0,0 +1,7 @@
+complete --command fisher --exclusive --long help --description "Print help"
+complete --command fisher --exclusive --long version --description "Print version"
+complete --command fisher --exclusive --condition __fish_use_subcommand --arguments install --description "Install plugins"
+complete --command fisher --exclusive --condition __fish_use_subcommand --arguments update --description "Update installed plugins"
+complete --command fisher --exclusive --condition __fish_use_subcommand --arguments remove --description "Remove installed plugins"
+complete --command fisher --exclusive --condition __fish_use_subcommand --arguments list --description "List installed plugins matching regex"
+complete --command fisher --exclusive --condition "__fish_seen_subcommand_from update remove" --arguments "(fisher list)"
diff --git a/.config/fish/completions/nvm.fish b/.config/fish/completions/nvm.fish
new file mode 100644
index 0000000..c0ab183
--- /dev/null
+++ b/.config/fish/completions/nvm.fish
@@ -0,0 +1,21 @@
+complete --command nvm --exclusive
+complete --command nvm --exclusive --long version --description "Print version"
+complete --command nvm --exclusive --long help --description "Print help"
+complete --command nvm --long silent --description "Suppress standard output"
+
+complete --command nvm --exclusive --condition __fish_use_subcommand --arguments install --description "Download and activate the specified Node version"
+complete --command nvm --exclusive --condition __fish_use_subcommand --arguments use --description "Activate a version in the current shell"
+complete --command nvm --exclusive --condition __fish_use_subcommand --arguments list --description "List installed versions"
+complete --command nvm --exclusive --condition __fish_use_subcommand --arguments list-remote --description "List versions available to install matching optional regex"
+complete --command nvm --exclusive --condition __fish_use_subcommand --arguments current --description "Print the currently-active version"
+complete --command nvm --exclusive --condition "__fish_seen_subcommand_from install" --arguments "(
+ test -e $nvm_data && string split ' ' <$nvm_data/.index
+)"
+complete --command nvm --exclusive --condition "__fish_seen_subcommand_from use" --arguments "(_nvm_list | string split ' ')"
+complete --command nvm --exclusive --condition __fish_use_subcommand --arguments uninstall --description "Uninstall a version"
+complete --command nvm --exclusive --condition "__fish_seen_subcommand_from uninstall" --arguments "(
+ _nvm_list | string split ' ' | string replace system ''
+)"
+complete --command nvm --exclusive --condition "__fish_seen_subcommand_from use uninstall" --arguments "(
+ set --query nvm_default_version && echo default
+)"
diff --git a/.config/fish/conf.d/nvm.fish b/.config/fish/conf.d/nvm.fish
new file mode 100644
index 0000000..8aab50a
--- /dev/null
+++ b/.config/fish/conf.d/nvm.fish
@@ -0,0 +1,28 @@
+function _nvm_install --on-event nvm_install
+ set --query nvm_mirror || set --universal nvm_mirror https://nodejs.org/dist
+ set --query XDG_DATA_HOME || set --local XDG_DATA_HOME ~/.local/share
+ set --universal nvm_data $XDG_DATA_HOME/nvm
+
+ test ! -d $nvm_data && command mkdir -p $nvm_data
+ echo "Downloading the Node distribution index..." 2>/dev/null
+ _nvm_index_update
+end
+
+function _nvm_update --on-event nvm_update
+ set --query nvm_mirror || set --universal nvm_mirror https://nodejs.org/dist
+ set --query XDG_DATA_HOME || set --local XDG_DATA_HOME ~/.local/share
+ set --universal nvm_data $XDG_DATA_HOME/nvm
+end
+
+function _nvm_uninstall --on-event nvm_uninstall
+ command rm -rf $nvm_data
+
+ set --query nvm_current_version && _nvm_version_deactivate $nvm_current_version
+
+ set --names | string replace --filter --regex -- "^nvm" "set --erase nvm" | source
+ functions --erase (functions --all | string match --entire --regex -- "^_nvm_")
+end
+
+if status is-interactive && set --query nvm_default_version && ! set --query nvm_current_version
+ nvm use --silent $nvm_default_version
+end
diff --git a/.config/fish/config.fish b/.config/fish/config.fish
new file mode 100644
index 0000000..5234ce9
--- /dev/null
+++ b/.config/fish/config.fish
@@ -0,0 +1,20 @@
+if status is-interactive
+ alias ls="lsd"
+ alias nv="nvim"
+
+ alias gc="git clone"
+ alias gst="git status"
+ alias bat="bat -p"
+
+ alias recscreen="ffmpeg -f x11grab -y -framerate 30 -s 1600x900 -i :0.0 -c:v libx264 -preset superfast -crf 18 "Video/$(date +'%Y-%m-%d_%H:%M').mp4""
+
+ alias la="lsd -la"
+
+ set -x PF_INFO "ascii title os kernel wm shell pkgs memory"
+
+ set srcdir "$HOME/.cache/"
+ set pkgdir "$HOME/.npm/"
+ alias npm="npm --cache $srcir/npm-cache"
+ set fish_greeting
+ # Commands to run in interactive sessions can go here
+end
diff --git a/.config/fish/fish_plugins b/.config/fish/fish_plugins
new file mode 100644
index 0000000..9673b42
--- /dev/null
+++ b/.config/fish/fish_plugins
@@ -0,0 +1,2 @@
+jorgebucaran/fisher
+jorgebucaran/nvm.fish
diff --git a/.config/fish/fish_variables b/.config/fish/fish_variables
new file mode 100644
index 0000000..6d31c79
--- /dev/null
+++ b/.config/fish/fish_variables
@@ -0,0 +1,48 @@
+# This file contains fish universal variable definitions.
+# VERSION: 3.0
+SETUVAR __fish_initialized:3400
+SETUVAR _fisher_jorgebucaran_2F_fisher_files:\x7e/\x2econfig/fish/functions/fisher\x2efish\x1e\x7e/\x2econfig/fish/completions/fisher\x2efish
+SETUVAR _fisher_jorgebucaran_2F_nvm_2E_fish_files:\x7e/\x2econfig/fish/functions/_nvm_index_update\x2efish\x1e\x7e/\x2econfig/fish/functions/_nvm_list\x2efish\x1e\x7e/\x2econfig/fish/functions/_nvm_version_activate\x2efish\x1e\x7e/\x2econfig/fish/functions/_nvm_version_deactivate\x2efish\x1e\x7e/\x2econfig/fish/functions/nvm\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/nvm\x2efish\x1e\x7e/\x2econfig/fish/completions/nvm\x2efish
+SETUVAR _fisher_plugins:jorgebucaran/fisher\x1ejorgebucaran/nvm\x2efish
+SETUVAR _fisher_upgraded_to_4_4:\x1d
+SETUVAR fish_color_autosuggestion:4D5566
+SETUVAR fish_color_cancel:\x2d\x2dreverse
+SETUVAR fish_color_command:39BAE6
+SETUVAR fish_color_comment:626A73
+SETUVAR fish_color_cwd:59C2FF
+SETUVAR fish_color_cwd_root:red
+SETUVAR fish_color_end:F29668
+SETUVAR fish_color_error:FF3333
+SETUVAR fish_color_escape:95E6CB
+SETUVAR fish_color_history_current:\x2d\x2dbold
+SETUVAR fish_color_host:normal
+SETUVAR fish_color_host_remote:\x1d
+SETUVAR fish_color_keyword:\x1d
+SETUVAR fish_color_match:F07178
+SETUVAR fish_color_normal:B3B1AD
+SETUVAR fish_color_operator:E6B450
+SETUVAR fish_color_option:\x1d
+SETUVAR fish_color_param:B3B1AD
+SETUVAR fish_color_quote:C2D94C
+SETUVAR fish_color_redirection:FFEE99
+SETUVAR fish_color_search_match:\x2d\x2dbackground\x3dE6B450
+SETUVAR fish_color_selection:\x2d\x2dbackground\x3dE6B450
+SETUVAR fish_color_status:red
+SETUVAR fish_color_user:brgreen
+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:normal
+SETUVAR fish_pager_color_description:B3A06D
+SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
+SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
+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:\x2d\x2dbackground\x3dE6B450
+SETUVAR fish_pager_color_selected_completion:\x1d
+SETUVAR fish_pager_color_selected_description:\x1d
+SETUVAR fish_pager_color_selected_prefix:\x1d
+SETUVAR nvm_data:/home/q/\x2elocal/share/nvm
+SETUVAR nvm_mirror:https\x3a//nodejs\x2eorg/dist
diff --git a/.config/fish/functions/_nvm_index_update.fish b/.config/fish/functions/_nvm_index_update.fish
new file mode 100644
index 0000000..c1bbe28
--- /dev/null
+++ b/.config/fish/functions/_nvm_index_update.fish
@@ -0,0 +1,20 @@
+function _nvm_index_update
+ test ! -d $nvm_data && command mkdir -p $nvm_data
+
+ set --local index $nvm_data/.index
+
+ if not command curl --location --silent $nvm_mirror/index.tab >$index.temp
+ command rm -f $index.temp
+ echo "nvm: Can't update index, host unavailable: \"$nvm_mirror\"" >&2
+ return 1
+ end
+
+ command awk -v OFS=\t '
+ /v0.9.12/ { exit } # Unsupported
+ NR > 1 {
+ print $1 (NR == 2 ? " latest" : $10 != "-" ? " lts/" tolower($10) : "")
+ }
+ ' $index.temp >$index
+
+ command rm -f $index.temp
+end
diff --git a/.config/fish/functions/_nvm_list.fish b/.config/fish/functions/_nvm_list.fish
new file mode 100644
index 0000000..fb5ab0e
--- /dev/null
+++ b/.config/fish/functions/_nvm_list.fish
@@ -0,0 +1,11 @@
+function _nvm_list
+ set --local versions $nvm_data/*
+ set --query versions[1] &&
+ string match --entire --regex -- (string match --regex -- "v\d.+" $versions |
+ string escape --style=regex |
+ string join "|"
+ ) <$nvm_data/.index
+
+ command --all node |
+ string match --quiet --invert --regex -- "^$nvm_data" && echo system
+end
diff --git a/.config/fish/functions/_nvm_version_activate.fish b/.config/fish/functions/_nvm_version_activate.fish
new file mode 100644
index 0000000..f7dfef7
--- /dev/null
+++ b/.config/fish/functions/_nvm_version_activate.fish
@@ -0,0 +1,4 @@
+function _nvm_version_activate --argument-names ver
+ set --global --export nvm_current_version $ver
+ set --prepend PATH $nvm_data/$ver/bin
+end
diff --git a/.config/fish/functions/_nvm_version_deactivate.fish b/.config/fish/functions/_nvm_version_deactivate.fish
new file mode 100644
index 0000000..24dd36e
--- /dev/null
+++ b/.config/fish/functions/_nvm_version_deactivate.fish
@@ -0,0 +1,5 @@
+function _nvm_version_deactivate --argument-names ver
+ test "$nvm_current_version" = "$ver" && set --erase nvm_current_version
+ set --local index (contains --index -- $nvm_data/$ver/bin $PATH) &&
+ set --erase PATH[$index]
+end
diff --git a/.config/fish/functions/fish_prompt.fish b/.config/fish/functions/fish_prompt.fish
new file mode 100644
index 0000000..edefdb0
--- /dev/null
+++ b/.config/fish/functions/fish_prompt.fish
@@ -0,0 +1,56 @@
+function fish_prompt --description 'Write out the prompt'
+ set -l last_status $status
+
+ prompt_login
+
+ echo -n ':'
+
+ # PWD
+ set_color $fish_color_cwd
+ echo -n (prompt_pwd)
+ set_color normal
+
+ set -q __fish_git_prompt_showdirtystate
+ or set -g __fish_git_prompt_showdirtystate 1
+ set -q __fish_git_prompt_showuntrackedfiles
+ or set -g __fish_git_prompt_showuntrackedfiles 1
+ set -q __fish_git_prompt_showcolorhints
+ or set -g __fish_git_prompt_showcolorhints 1
+ set -q __fish_git_prompt_color_untrackedfiles
+ or set -g __fish_git_prompt_color_untrackedfiles yellow
+ set -q __fish_git_prompt_char_untrackedfiles
+ or set -g __fish_git_prompt_char_untrackedfiles '?'
+ set -q __fish_git_prompt_color_invalidstate
+ or set -g __fish_git_prompt_color_invalidstate red
+ set -q __fish_git_prompt_char_invalidstate
+ or set -g __fish_git_prompt_char_invalidstate '!'
+ set -q __fish_git_prompt_color_dirtystate
+ or set -g __fish_git_prompt_color_dirtystate blue
+ set -q __fish_git_prompt_char_dirtystate
+ or set -g __fish_git_prompt_char_dirtystate '*'
+ set -q __fish_git_prompt_char_stagedstate
+ or set -g __fish_git_prompt_char_stagedstate '✚'
+ set -q __fish_git_prompt_color_cleanstate
+ or set -g __fish_git_prompt_color_cleanstate green
+ set -q __fish_git_prompt_char_cleanstate
+ or set -g __fish_git_prompt_char_cleanstate '✓'
+ set -q __fish_git_prompt_color_stagedstate
+ or set -g __fish_git_prompt_color_stagedstate yellow
+ set -q __fish_git_prompt_color_branch_dirty
+ or set -g __fish_git_prompt_color_branch_dirty red
+ set -q __fish_git_prompt_color_branch_staged
+ or set -g __fish_git_prompt_color_branch_staged yellow
+ set -q __fish_git_prompt_color_branch
+ or set -g __fish_git_prompt_color_branch green
+ set -q __fish_git_prompt_char_stateseparator
+ or set -g __fish_git_prompt_char_stateseparator '⚡'
+ fish_vcs_prompt '|%s'
+ echo
+
+ if not test $last_status -eq 0
+ set_color $fish_color_error
+ end
+
+ echo -n '➤ '
+ set_color normal
+end
diff --git a/.config/fish/functions/fisher.fish b/.config/fish/functions/fisher.fish
new file mode 100644
index 0000000..a4666a1
--- /dev/null
+++ b/.config/fish/functions/fisher.fish
@@ -0,0 +1,240 @@
+function fisher --argument-names cmd --description "A plugin manager for Fish"
+ set --query fisher_path || set --local fisher_path $__fish_config_dir
+ set --local fisher_version 4.4.2
+ set --local fish_plugins $__fish_config_dir/fish_plugins
+
+ switch "$cmd"
+ case -v --version
+ echo "fisher, version $fisher_version"
+ case "" -h --help
+ echo "Usage: fisher install Install plugins"
+ echo " fisher remove Remove installed plugins"
+ echo " fisher update Update installed plugins"
+ echo " fisher update Update all installed plugins"
+ echo " fisher list [] List installed plugins matching regex"
+ echo "Options:"
+ echo " -v or --version Print version"
+ echo " -h or --help Print this help message"
+ echo "Variables:"
+ echo " \$fisher_path Plugin installation path. Default: $__fish_config_dir" | string replace --regex -- $HOME \~
+ case ls list
+ string match --entire --regex -- "$argv[2]" $_fisher_plugins
+ case install update remove
+ isatty || read --local --null --array stdin && set --append argv $stdin
+
+ set --local install_plugins
+ set --local update_plugins
+ set --local remove_plugins
+ set --local arg_plugins $argv[2..-1]
+ set --local old_plugins $_fisher_plugins
+ set --local new_plugins
+
+ test -e $fish_plugins && set --local file_plugins (string match --regex -- '^[^\s]+$' <$fish_plugins)
+
+ if ! set --query argv[2]
+ if test "$cmd" != update
+ echo "fisher: Not enough arguments for command: \"$cmd\"" >&2 && return 1
+ else if ! set --query file_plugins
+ echo "fisher: \"$fish_plugins\" file not found: \"$cmd\"" >&2 && return 1
+ end
+ set arg_plugins $file_plugins
+ end
+
+ for plugin in $arg_plugins
+ set plugin (test -e "$plugin" && realpath $plugin || string lower -- $plugin)
+ contains -- "$plugin" $new_plugins || set --append new_plugins $plugin
+ end
+
+ if set --query argv[2]
+ for plugin in $new_plugins
+ if contains -- "$plugin" $old_plugins
+ test "$cmd" = remove &&
+ set --append remove_plugins $plugin ||
+ set --append update_plugins $plugin
+ else if test "$cmd" = install
+ set --append install_plugins $plugin
+ else
+ echo "fisher: Plugin not installed: \"$plugin\"" >&2 && return 1
+ end
+ end
+ else
+ for plugin in $new_plugins
+ contains -- "$plugin" $old_plugins &&
+ set --append update_plugins $plugin ||
+ set --append install_plugins $plugin
+ end
+
+ for plugin in $old_plugins
+ contains -- "$plugin" $new_plugins || set --append remove_plugins $plugin
+ end
+ end
+
+ set --local pid_list
+ set --local source_plugins
+ set --local fetch_plugins $update_plugins $install_plugins
+ set --local fish_path (status fish-path)
+
+ echo (set_color --bold)fisher $cmd version $fisher_version(set_color normal)
+
+ for plugin in $fetch_plugins
+ set --local source (command mktemp -d)
+ set --append source_plugins $source
+
+ command mkdir -p $source/{completions,conf.d,themes,functions}
+
+ $fish_path --command "
+ if test -e $plugin
+ command cp -Rf $plugin/* $source
+ else
+ set temp (command mktemp -d)
+ set repo (string split -- \@ $plugin) || set repo[2] HEAD
+
+ if set path (string replace --regex -- '^(https://)?gitlab.com/' '' \$repo[1])
+ set name (string split -- / \$path)[-1]
+ set url https://gitlab.com/\$path/-/archive/\$repo[2]/\$name-\$repo[2].tar.gz
+ else
+ set url https://api.github.com/repos/\$repo[1]/tarball/\$repo[2]
+ end
+
+ echo Fetching (set_color --underline)\$url(set_color normal)
+
+ if curl --silent -L \$url | tar -xzC \$temp -f - 2>/dev/null
+ command cp -Rf \$temp/*/* $source
+ else
+ echo fisher: Invalid plugin name or host unavailable: \\\"$plugin\\\" >&2
+ command rm -rf $source
+ end
+
+ command rm -rf \$temp
+ end
+
+ set files $source/* && string match --quiet --regex -- .+\.fish\\\$ \$files
+ " &
+
+ set --append pid_list (jobs --last --pid)
+ end
+
+ wait $pid_list 2>/dev/null
+
+ for plugin in $fetch_plugins
+ if set --local source $source_plugins[(contains --index -- "$plugin" $fetch_plugins)] && test ! -e $source
+ if set --local index (contains --index -- "$plugin" $install_plugins)
+ set --erase install_plugins[$index]
+ else
+ set --erase update_plugins[(contains --index -- "$plugin" $update_plugins)]
+ end
+ end
+ end
+
+ for plugin in $update_plugins $remove_plugins
+ if set --local index (contains --index -- "$plugin" $_fisher_plugins)
+ set --local plugin_files_var _fisher_(string escape --style=var -- $plugin)_files
+
+ if contains -- "$plugin" $remove_plugins
+ for name in (string replace --filter --regex -- '.+/conf\.d/([^/]+)\.fish$' '$1' $$plugin_files_var)
+ emit {$name}_uninstall
+ end
+ printf "%s\n" Removing\ (set_color red --bold)$plugin(set_color normal) " "$$plugin_files_var | string replace -- \~ ~
+ set --erase _fisher_plugins[$index]
+ end
+
+ command rm -rf (string replace -- \~ ~ $$plugin_files_var)
+
+ functions --erase (string replace --filter --regex -- '.+/functions/([^/]+)\.fish$' '$1' $$plugin_files_var)
+
+ for name in (string replace --filter --regex -- '.+/completions/([^/]+)\.fish$' '$1' $$plugin_files_var)
+ complete --erase --command $name
+ end
+
+ set --erase $plugin_files_var
+ end
+ end
+
+ if set --query update_plugins[1] || set --query install_plugins[1]
+ command mkdir -p $fisher_path/{functions,themes,conf.d,completions}
+ end
+
+ for plugin in $update_plugins $install_plugins
+ set --local source $source_plugins[(contains --index -- "$plugin" $fetch_plugins)]
+ set --local files $source/{functions,themes,conf.d,completions}/*
+
+ if set --local index (contains --index -- $plugin $install_plugins)
+ set --local user_files $fisher_path/{functions,themes,conf.d,completions}/*
+ set --local conflict_files
+
+ for file in (string replace -- $source/ $fisher_path/ $files)
+ contains -- $file $user_files && set --append conflict_files $file
+ end
+
+ if set --query conflict_files[1] && set --erase install_plugins[$index]
+ echo -s "fisher: Cannot install \"$plugin\": please remove or move conflicting files first:" \n" "$conflict_files >&2
+ continue
+ end
+ end
+
+ for file in (string replace -- $source/ "" $files)
+ command cp -Rf $source/$file $fisher_path/$file
+ end
+
+ set --local plugin_files_var _fisher_(string escape --style=var -- $plugin)_files
+
+ set --query files[1] && set --universal $plugin_files_var (string replace -- $source $fisher_path $files | string replace -- ~ \~)
+
+ contains -- $plugin $_fisher_plugins || set --universal --append _fisher_plugins $plugin
+ contains -- $plugin $install_plugins && set --local event install || set --local event update
+
+ printf "%s\n" Installing\ (set_color --bold)$plugin(set_color normal) " "$$plugin_files_var | string replace -- \~ ~
+
+ for file in (string match --regex -- '.+/[^/]+\.fish$' $$plugin_files_var | string replace -- \~ ~)
+ source $file
+ if set --local name (string replace --regex -- '.+conf\.d/([^/]+)\.fish$' '$1' $file)
+ emit {$name}_$event
+ end
+ end
+ end
+
+ command rm -rf $source_plugins
+
+ if set --query _fisher_plugins[1]
+ set --local commit_plugins
+
+ for plugin in $file_plugins
+ contains -- (string lower -- $plugin) (string lower -- $_fisher_plugins) && set --append commit_plugins $plugin
+ end
+
+ for plugin in $_fisher_plugins
+ contains -- (string lower -- $plugin) (string lower -- $commit_plugins) || set --append commit_plugins $plugin
+ end
+
+ printf "%s\n" $commit_plugins >$fish_plugins
+ else
+ set --erase _fisher_plugins
+ command rm -f $fish_plugins
+ end
+
+ set --local total (count $install_plugins) (count $update_plugins) (count $remove_plugins)
+
+ test "$total" != "0 0 0" && echo (string join ", " (
+ test $total[1] = 0 || echo "Installed $total[1]") (
+ test $total[2] = 0 || echo "Updated $total[2]") (
+ test $total[3] = 0 || echo "Removed $total[3]")
+ ) plugin/s
+ case \*
+ echo "fisher: Unknown command: \"$cmd\"" >&2 && return 1
+ end
+end
+
+if ! set --query _fisher_upgraded_to_4_4
+ set --universal _fisher_upgraded_to_4_4
+ if functions --query _fisher_list
+ set --query XDG_DATA_HOME[1] || set --local XDG_DATA_HOME ~/.local/share
+ command rm -rf $XDG_DATA_HOME/fisher
+ functions --erase _fisher_{list,plugin_parse}
+ fisher update >/dev/null 2>/dev/null
+ else
+ for var in (set --names | string match --entire --regex '^_fisher_.+_files$')
+ set $var (string replace -- ~ \~ $$var)
+ end
+ functions --erase _fisher_fish_postexec
+ end
+end
diff --git a/.config/fish/functions/nvm.fish b/.config/fish/functions/nvm.fish
new file mode 100644
index 0000000..131a030
--- /dev/null
+++ b/.config/fish/functions/nvm.fish
@@ -0,0 +1,230 @@
+function nvm --description "Node version manager"
+ for silent in --silent -s
+ if set --local index (contains --index -- $silent $argv)
+ set --erase argv[$index] && break
+ end
+ set --erase silent
+ end
+
+ set --local cmd $argv[1]
+ set --local ver $argv[2]
+
+ if set --query silent && ! set --query cmd[1]
+ echo "nvm: Version number not specified (see nvm -h for usage)" >&2
+ return 1
+ end
+
+ if ! set --query ver[1] && contains -- "$cmd" install use
+ for file in .nvmrc .node-version
+ set file (_nvm_find_up $PWD $file) && read ver <$file && break
+ end
+
+ if ! set --query ver[1]
+ echo "nvm: Invalid version or missing \".nvmrc\" file" >&2
+ return 1
+ end
+ end
+
+ set --local their_version $ver
+
+ switch "$cmd"
+ case -v --version
+ echo "nvm, version 2.2.11"
+ case "" -h --help
+ echo "Usage: nvm install Download and activate the specified Node version"
+ echo " nvm install Install version from nearest .nvmrc file"
+ echo " nvm use Activate a version in the current shell"
+ echo " nvm use Activate version from nearest .nvmrc file"
+ echo " nvm list List installed versions"
+ echo " nvm list-remote List versions available to install"
+ echo " nvm list-remote List versions matching a given regular expression"
+ echo " nvm current Print the currently-active version"
+ echo " nvm uninstall Uninstall a version"
+ echo "Options:"
+ echo " -s or --silent Suppress standard output"
+ echo " -v or --version Print version"
+ echo " -h or --help Print this help message"
+ echo "Variables:"
+ echo " nvm_arch Override architecture, e.g. x64-musl"
+ echo " nvm_mirror Use a mirror of the Node binaries"
+ echo " nvm_default_version Set the default version for new shells"
+ echo " nvm_default_packages Install a list of packages every time you install a Node version"
+ case install
+ _nvm_index_update
+
+ string match --entire --regex -- (_nvm_version_match $ver) <$nvm_data/.index | read ver alias
+
+ if ! set --query ver[1]
+ echo "nvm: Invalid version number or alias: \"$their_version\"" >&2
+ return 1
+ end
+
+ if test ! -e $nvm_data/$ver
+ set --local os (command uname -s | string lower)
+ set --local ext tar.gz
+ set --local arch (command uname -m)
+
+ switch $os
+ case aix
+ set arch ppc64
+ case sunos
+ case linux
+ case darwin
+ case {MSYS_NT,MINGW\*_NT}\*
+ set os win
+ set ext zip
+ case \*
+ echo "nvm: Unsupported operating system: \"$os\"" >&2
+ return 1
+ end
+
+ switch $arch
+ case i\*86
+ set arch x86
+ case x86_64
+ set arch x64
+ case arm64
+ string match --regex --quiet "v(?\d+)" $ver
+ if test "$os" = darwin -a $major -lt 16
+ set arch x64
+ end
+ case armv6 armv6l
+ set arch armv6l
+ case armv7 armv7l
+ set arch armv7l
+ case armv8 armv8l aarch64
+ set arch arm64
+ end
+
+ set --query nvm_arch && set arch $nvm_arch
+
+ set --local dir "node-$ver-$os-$arch"
+ set --local url $nvm_mirror/$ver/$dir.$ext
+
+ command mkdir -p $nvm_data/$ver
+
+ if ! set --query silent
+ echo -e "Installing Node \x1b[1m$ver\x1b[22m $alias"
+ echo -e "Fetching \x1b[4m$url\x1b[24m\x1b[7m"
+ end
+
+ if ! command curl $silent --progress-bar --location $url |
+ command tar --extract --gzip --directory $nvm_data/$ver 2>/dev/null
+ command rm -rf $nvm_data/$ver
+ echo -e "\033[F\33[2K\x1b[0mnvm: Invalid mirror or host unavailable: \"$url\"" >&2
+ return 1
+ end
+
+ set --query silent || echo -en "\033[F\33[2K\x1b[0m"
+
+ if test "$os" = win
+ command mv $nvm_data/$ver/$dir $nvm_data/$ver/bin
+ else
+ command mv $nvm_data/$ver/$dir/* $nvm_data/$ver
+ command rm -rf $nvm_data/$ver/$dir
+ end
+ end
+
+ if test $ver != "$nvm_current_version"
+ set --query nvm_current_version && _nvm_version_deactivate $nvm_current_version
+ _nvm_version_activate $ver
+
+ set --query nvm_default_packages[1] && npm install --global $silent $nvm_default_packages
+ end
+
+ set --query silent || printf "Now using Node %s (npm %s) %s\n" (_nvm_node_info)
+ case use
+ test $ver = default && set ver $nvm_default_version
+ _nvm_list | string match --entire --regex -- (_nvm_version_match $ver) | read ver __
+
+ if ! set --query ver[1]
+ echo "nvm: Can't use Node \"$their_version\", version must be installed first" >&2
+ return 1
+ end
+
+ if test $ver != "$nvm_current_version"
+ set --query nvm_current_version && _nvm_version_deactivate $nvm_current_version
+ test $ver != system && _nvm_version_activate $ver
+ end
+
+ set --query silent || printf "Now using Node %s (npm %s) %s\n" (_nvm_node_info)
+ case uninstall
+ if test -z "$ver"
+ echo "nvm: Not enough arguments for command: \"$cmd\"" >&2
+ return 1
+ end
+
+ test $ver = default && test ! -z "$nvm_default_version" && set ver $nvm_default_version
+
+ _nvm_list | string match --entire --regex -- (_nvm_version_match $ver) | read ver __
+
+ if ! set -q ver[1]
+ echo "nvm: Node version not installed or invalid: \"$their_version\"" >&2
+ return 1
+ end
+
+ set --query silent || printf "Uninstalling Node %s %s\n" $ver (string replace ~ \~ "$nvm_data/$ver/bin/node")
+
+ _nvm_version_deactivate $ver
+
+ command rm -rf $nvm_data/$ver
+ case current
+ _nvm_current
+ case ls list
+ _nvm_list | _nvm_list_format (_nvm_current) $argv[2]
+ case lsr {ls,list}-remote
+ _nvm_index_update || return
+ _nvm_list | command awk '
+ FILENAME == "-" && (is_local[$1] = FNR == NR) { next } {
+ print $0 (is_local[$1] ? " ✓" : "")
+ }
+ ' - $nvm_data/.index | _nvm_list_format (_nvm_current) $argv[2]
+ case \*
+ echo "nvm: Unknown command or option: \"$cmd\" (see nvm -h for usage)" >&2
+ return 1
+ end
+end
+
+function _nvm_find_up --argument-names path file
+ test -e "$path/$file" && echo $path/$file || begin
+ test ! -z "$path" || return
+ _nvm_find_up (string replace --regex -- '/[^/]*$' "" $path) $file
+ end
+end
+
+function _nvm_version_match --argument-names ver
+ string replace --regex -- '^v?(\d+|\d+\.\d+)$' 'v$1.' $ver |
+ string replace --filter --regex -- '^v?(\d+)' 'v$1' |
+ string escape --style=regex ||
+ string lower '\b'$ver'(?:/\w+)?$'
+end
+
+function _nvm_list_format --argument-names current regex
+ command awk -v current="$current" -v regex="$regex" '
+ $0 ~ regex {
+ aliases[versions[i++] = $1] = $2 " " $3
+ pad = (n = length($1)) > pad ? n : pad
+ }
+ END {
+ if (!i) exit 1
+ while (i--)
+ printf((current == versions[i] ? " ▶ " : " ") "%"pad"s %s\n",
+ versions[i], aliases[versions[i]])
+ }
+ '
+end
+
+function _nvm_current
+ command --search --quiet node || return
+ set --query nvm_current_version && echo $nvm_current_version || echo system
+end
+
+function _nvm_node_info
+ set --local npm_path (string replace bin/npm-cli.js "" (realpath (command --search npm)))
+ test -f $npm_path/package.json || set --local npm_version_default (command npm --version)
+ command node --eval "
+ console.log(process.version)
+ console.log('$npm_version_default' ? '$npm_version_default': require('$npm_path/package.json').version)
+ console.log(process.execPath.replace(require('os').homedir(), '~'))
+ "
+end
diff --git a/.config/git/config b/.config/git/config
new file mode 100644
index 0000000..55ad538
--- /dev/null
+++ b/.config/git/config
@@ -0,0 +1,9 @@
+[init]
+ defaultbranch = main
+[user]
+ email = hok7zv@tutanota.com
+ name = hok7z
+[core]
+ editor = nvim
+ pager = less
+ excludesfile = .gitignore
diff --git a/.config/gtk-2.0/gtkfilechooser.ini b/.config/gtk-2.0/gtkfilechooser.ini
new file mode 100644
index 0000000..a003bc7
--- /dev/null
+++ b/.config/gtk-2.0/gtkfilechooser.ini
@@ -0,0 +1,11 @@
+[Filechooser Settings]
+LocationMode=path-bar
+ShowHidden=true
+ShowSizeColumn=true
+GeometryX=380
+GeometryY=135
+GeometryWidth=840
+GeometryHeight=630
+SortColumn=name
+SortOrder=ascending
+StartupMode=recent
diff --git a/.config/gtk-2.0/gtkrc b/.config/gtk-2.0/gtkrc
new file mode 100644
index 0000000..d9487b5
--- /dev/null
+++ b/.config/gtk-2.0/gtkrc
@@ -0,0 +1,19 @@
+# DO NOT EDIT! This file will be overwritten by LXAppearance.
+# Any customization should be done in ~/.gtkrc-2.0.mine instead.
+
+include "/home/q/.gtkrc-2.0.mine"
+gtk-theme-name="Tokyonight-Dark-B"
+gtk-icon-theme-name="Papirus"
+gtk-font-name="Cantarell 11"
+gtk-cursor-theme-name="Adwaita"
+gtk-cursor-theme-size=0
+gtk-toolbar-style=GTK_TOOLBAR_BOTH
+gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
+gtk-button-images=1
+gtk-menu-images=1
+gtk-enable-event-sounds=1
+gtk-enable-input-feedback-sounds=1
+gtk-xft-antialias=1
+gtk-xft-hinting=1
+gtk-xft-hintstyle="hintfull"
+gtk-xft-rgba="rgb"
diff --git a/.config/gtk-3.0/gtk.css b/.config/gtk-3.0/gtk.css
new file mode 100644
index 0000000..0e399c4
--- /dev/null
+++ b/.config/gtk-3.0/gtk.css
@@ -0,0 +1,10 @@
+.window-frame, .window-frame:backdrop {
+ box-shadow: 0 0 0 black;
+ border-style: none;
+ margin: 0;
+ border-radius: 0;
+}
+
+.titlebar {
+ border-radius: 0;
+}
diff --git a/.config/gtk-3.0/settings.ini b/.config/gtk-3.0/settings.ini
new file mode 100644
index 0000000..859cb73
--- /dev/null
+++ b/.config/gtk-3.0/settings.ini
@@ -0,0 +1,18 @@
+
+
+[Settings]
+gtk-theme-name=Tokyonight-Dark-B
+gtk-icon-theme-name=Papirus
+gtk-font-name=Cantarell 11
+gtk-cursor-theme-name=Adwaita
+gtk-cursor-theme-size=0
+gtk-toolbar-style=GTK_TOOLBAR_BOTH
+gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
+gtk-button-images=1
+gtk-menu-images=1
+gtk-enable-event-sounds=1
+gtk-enable-input-feedback-sounds=1
+gtk-xft-antialias=1
+gtk-xft-hinting=1
+gtk-xft-hintstyle=hintfull
+gtk-xft-rgba=rgb
diff --git a/.config/ipython/profile_default/history.sqlite b/.config/ipython/profile_default/history.sqlite
new file mode 100644
index 0000000..29a9dfd
Binary files /dev/null and b/.config/ipython/profile_default/history.sqlite differ
diff --git a/.config/ipython/profile_default/startup/README b/.config/ipython/profile_default/startup/README
new file mode 100644
index 0000000..61d4700
--- /dev/null
+++ b/.config/ipython/profile_default/startup/README
@@ -0,0 +1,11 @@
+This is the IPython startup directory
+
+.py and .ipy files in this directory will be run *prior* to any code or files specified
+via the exec_lines or exec_files configurables whenever you load this profile.
+
+Files will be run in lexicographical order, so you can control the execution order of files
+with a prefix, e.g.::
+
+ 00-first.py
+ 50-middle.py
+ 99-last.ipy
diff --git a/.config/kitty/kitty.conf b/.config/kitty/kitty.conf
new file mode 100644
index 0000000..0cf63f4
--- /dev/null
+++ b/.config/kitty/kitty.conf
@@ -0,0 +1,101 @@
+#font_family Comic Mono
+#bold_font Comic Mono
+#font_size 13
+
+# font_family Iosevka
+# bold_font Iosevka
+# italic_font Iosevka
+# bold_italic_font Iosevka
+# font_size 15
+
+font_family JetBrains Mono
+bold_font JetBrains Mono
+italic_font JetBrains Mono
+bold_italic_font JetBrains Mono
+font_size 14
+
+background_opacity 0.9
+
+
+# font_family FiraCode Nerd Font
+# bold_font FiraCode Nerd Font Mono
+# italic_font FiraCode Nerd Font Mono
+# bold_italic_font FiraCode Nerd Font Mono
+# font_size 13
+
+remember_window_size yes
+initial_window_width 148c
+initial_window_height 42c
+draw_minimal_borders no
+window_margin_width 1
+disable_ligatures never
+enable_audio_bell no
+tab_bar_edge top
+hide_window_decorations yes
+editor nvim
+enabled_layouts tall, grid, fat
+tab_bar_style separator
+active_tab_font_style bold
+active_tab_background #666
+tab_separator " ┃ "
+scrollback_pager nvim -R
+touch_scroll_multiplier 5.0
+
+## name: Tokyo Night Storm
+## author: Folke Lemaitre
+
+background #24283b
+foreground #c0caf5
+selection_background #364A82
+selection_foreground #c0caf5
+url_color #73daca
+cursor #c0caf5
+
+# Tabs
+active_tab_background #7aa2f7
+active_tab_foreground #1f2335
+inactive_tab_background #292e42
+inactive_tab_foreground #545c7e
+#tab_bar_background #1D202F
+
+# normal
+color0 #1D202F
+color1 #f7768e
+color2 #9ece6a
+color3 #e0af68
+color4 #7aa2f7
+color5 #bb9af7
+color6 #7dcfff
+color7 #a9b1d6
+
+# bright
+color8 #414868
+color9 #f7768e
+color10 #9ece6a
+color11 #e0af68
+color12 #7aa2f7
+color13 #bb9af7
+color14 #7dcfff
+color15 #c0caf5
+
+# extended colors
+color16 #ff9e64
+color17 #db4b4b
+
+map ctrl+shift+enter new_window_with_cwd
+map ctrl+shift+space new_window_with_cwd
+map ctrl+alt+h move_window left
+map ctrl+alt+j move_window down
+map ctrl+alt+k move_window up
+map ctrl+alt+l move_window right
+map ctrl+shift+h neighboring_window left
+map ctrl+shift+j neighboring_window down
+map ctrl+shift+k neighboring_window up
+map ctrl+shift+l neighboring_window right
+map ctrl+shift+alt+l next_layout
+map ctrl+shift+i show_scrollback
+
+map ctrl+shift+] next_tab
+map ctrl+shift+[ previous_tab
+map ctrl+alt+] move_tab_forward
+map ctrl+alt+[ move_tab_backward
diff --git a/.config/nvim/ginit.vim b/.config/nvim/ginit.vim
new file mode 100644
index 0000000..3fb6cef
--- /dev/null
+++ b/.config/nvim/ginit.vim
@@ -0,0 +1,3 @@
+GuiFont! Iosevka:h15
+GuiTabline 0
+GuiPopupmenu 0
diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua
new file mode 100644
index 0000000..51a3518
--- /dev/null
+++ b/.config/nvim/init.lua
@@ -0,0 +1,13 @@
+local core = {
+ "options",
+ "mappings",
+ "autocmds",
+ "plugins"
+}
+
+for _,source in ipairs(core) do
+ local status_ok,fault = pcall(require,'core.' .. source)
+ if not status_ok then
+ vim.notify("Failed to load " .. source .."\n\n" .. fault )
+ end
+end
diff --git a/.config/nvim/lua/core/autocmds.lua b/.config/nvim/lua/core/autocmds.lua
new file mode 100644
index 0000000..d5bdf8c
--- /dev/null
+++ b/.config/nvim/lua/core/autocmds.lua
@@ -0,0 +1,20 @@
+vim.api.nvim_create_autocmd({"WinEnter","BufEnter"},{
+ callback = function()
+ vim.opt.statusline = "%F"
+ end
+})
+
+vim.api.nvim_create_autocmd({"BufEnter","BufWinEnter","WinEnter","CmdwinEnter"},{
+ callback = function()
+ if vim.fn.expand("%") == "NvimTree_1" then
+ vim.opt.statusline = " NvimTree"
+ end
+ end,
+})
+
+vim.api.nvim_create_autocmd({"BufEnter","BufWinEnter"},{
+ pattern = {"*.json"},
+ callback = function()
+ vim.lsp.buf.formatting()
+ end,
+})
diff --git a/.config/nvim/lua/core/icons.lua b/.config/nvim/lua/core/icons.lua
new file mode 100644
index 0000000..e45ac02
--- /dev/null
+++ b/.config/nvim/lua/core/icons.lua
@@ -0,0 +1,88 @@
+return {
+ kind = {
+ Text = "",
+ Method = "",
+ Function = "",
+ Constructor = "",
+ Field = "ﰠ",
+ Variable = "",
+ Class = "ﴯ",
+ Interface = "",
+ Module = "",
+ Property = "ﰠ",
+ Unit = "塞",
+ Value = "",
+ Enum = "",
+ Keyword = "",
+ Snippet = "",
+ Color = "",
+ File = "",
+ Reference = "",
+ Folder = "",
+ EnumMember = "",
+ Constant = "",
+ Struct = "פּ",
+ Event = "",
+ Operator = "",
+ TypeParameter = ""
+ },
+
+ diagnostic = {
+ default = {
+ { name = "Error",icon = " ", color = "Default" },
+ { name = "Warn", icon = " ", color = "Default" },
+ { name = "Info", icon = " ", color = "Default" },
+ { name = "Hint", icon = " ", color = "Default" },
+ },
+
+ catppuccin = {
+ { name = "Error", icon = "", color = "Default" },
+ { name = "Warn", icon = "", color = "Default" },
+ { name = "Info", icon = "", color = "Default" },
+ { name = "Hint", icon = "", color = "Default" }
+ },
+ },
+
+ ui = {
+ ArrowClosed = "",
+ ArrowOpen = "",
+ Lock = "",
+ Circle = "",
+ BigCircle = "",
+ BigUnfilledCircle = "",
+ Close = "",
+ NewFile = "",
+ Search = "",
+ Lightbulb = "",
+ Project = "",
+ Dashboard = "",
+ History = "",
+ Comment = "",
+ Bug = "",
+ Code = "",
+ Telescope = "",
+ Gear = "",
+ Package = "",
+ List = "",
+ SignIn = "",
+ SignOut = "",
+ Check = "",
+ Fire = "",
+ Note = "",
+ BookMark = "",
+ Pencil = "",
+ ChevronRight = "",
+ Table = "",
+ Calendar = "",
+ CloudDownload = "",
+ },
+
+ notify = {
+ ERROR = "",
+ WARN = "",
+ INFO = "",
+ DEBUG = "",
+ TRACE = "✎",
+ },
+
+}
diff --git a/.config/nvim/lua/core/mappings.lua b/.config/nvim/lua/core/mappings.lua
new file mode 100644
index 0000000..c1515cc
--- /dev/null
+++ b/.config/nvim/lua/core/mappings.lua
@@ -0,0 +1,58 @@
+local keymap = vim.keymap.set
+
+
+vim.g.mapleader = " "
+
+keymap("n",",",":nohlsearch")
+keymap("n","m",":MarkdownPreview")
+
+-- Block arrows
+vim.api.nvim_set_keymap('', '', '', {noremap = true})
+vim.api.nvim_set_keymap('', '', '', {noremap = true})
+vim.api.nvim_set_keymap('', '', '', {noremap = true})
+vim.api.nvim_set_keymap('', '', '',{noremap = true})
+
+-- resize
+keymap("n","",":resize -2")
+keymap("n","",":resize 2")
+keymap("n","",":vertical resize -2")
+keymap("n","",":vertical resize 2")
+
+-- tabs
+keymap("n","tn",":tabnew ")
+keymap("n","tc",":tabclose")
+
+
+-- NvimTree --
+keymap("n","",":NvimTreeToggle")
+keymap("n","n",":NvimTreeFindFile")
+keymap("n","","gh defx#do_action('cd',getcwd())")
+
+-- Telescope --
+keymap("n","ff"," Telescope find_files ")
+keymap("n","fg"," Telescope live_grep ")
+keymap("n","fb"," Telescope buffers ")
+keymap("n","fh"," Telescope help_tags ")
+
+-- barbar.nvim
+keymap('n', '', ':BufferPrevious')
+keymap('n', '', ':BufferNext')
+
+-- Re-order to previous/next
+keymap('n', '', ':BufferMovePrevious')
+keymap('n', '>', ' :BufferMoveNext')
+
+-- Goto buffer in position...
+keymap('n', '', ':BufferGoto 1')
+keymap('n', '', ':BufferGoto 2')
+keymap('n', '', ':BufferGoto 3')
+keymap('n', '', ':BufferGoto 4')
+keymap('n', '', ':BufferGoto 5')
+keymap('n', '', ':BufferGoto 6')
+keymap('n', '', ':BufferGoto 7')
+keymap('n', '', ':BufferGoto 8')
+keymap('n', '', ':BufferGoto 9')
+keymap('n', '', ':BufferLast')
+
+-- Close buffer
+keymap('n', '', ':BufferClose')
diff --git a/.config/nvim/lua/core/options.lua b/.config/nvim/lua/core/options.lua
new file mode 100644
index 0000000..9546e31
--- /dev/null
+++ b/.config/nvim/lua/core/options.lua
@@ -0,0 +1,77 @@
+local opt = vim.opt
+
+vim.g.did_load_filetypes = 1
+
+opt.encoding = "utf-8"
+opt.clipboard = "unnamedplus"
+opt.swapfile = false
+
+vim.g.icons = require("core.icons")
+
+local ok,notify = pcall(require,"notify")
+if ok then
+ vim.notify = notify
+end
+
+opt.termguicolors = true
+opt.listchars = {eol = '↲', tab = '▸ ', trail = '·'}
+
+local ok,utils = pcall(require,"core.utils")
+if (not ok) then
+ vim.notify("Can't load utils")
+end
+
+-- utils.run_colorscheme("vscode",function()
+-- -- https://github.com/hrsh7th/nvim-cmp/wiki/Menu-Appearance#custom-menu-direction
+-- utils.highlight("CmpItemAbbrDeprecated", {guibg=NONE,gui=strikethrough,guifg=#808080})
+--
+-- utils.highlight("CmpItemAbbrMatch", {guibg=NONE,guifg=#569CD6})
+-- utils.highlight("CmpItemAbbrMatchFuzzy", {guibg=NONE,guifg=#569CD6})
+--
+-- utils.highlight("CmpItemKindVariable", {guibg=NONE,guifg=#9CDCFE})
+-- utils.highlight("CmpItemKindInterface", {guibg=NONE,guifg=#9CDCFE})
+-- utils.highlight("CmpItemKindText", {guibg=NONE,guifg=#9CDCFE})
+--
+-- utils.highlight("CmpItemKindFunction", {guibg=NONE,guifg=#C586C0})
+-- utils.highlight("CmpItemKindMethod", {guibg=NONE,guifg=#C586C0})
+--
+-- utils.highlight("CmpItemKindKeyword", {guibg=NONE guifg=#D4D4D4})
+-- utils.highlight("CmpItemKindProperty", {guibg=NONE guifg=#D4D4D4})
+-- utils.highlight("CmpItemKindUnit", {guibg=NONE guifg=#D4D4D4})
+--
+-- vim.g.diagnostic_signs = vim.g.icons.diagnostics.default
+-- end)
+-- utils.run_colorscheme("github-dark",function()
+-- require("github-theme").setup({
+-- theme_style = "dark_default",
+-- function_style = "italic",
+-- sidebars = { "qf", "vista_kind", "terminal", "packer" },
+-- hide_inactive_statusline = false,
+-- })
+--
+-- vim.g.diagnostic_signs = {
+-- {name = "Error",icon = " ", color = "Default"},
+-- {name = "Warn", icon = " ", color = "Default"},
+-- {name = "Info", icon = " ", color = "Default"},
+-- {name = "Hint", icon = " ", color = "Default"},
+-- }
+-- end)
+utils.run_colorscheme("catppuccin",function()
+ vim.g.catppucin_flavor = "mocha" -- latte, frappe, macchiato, mocha
+ vim.g.diagnostics_signs = vim.g.icons.diagnostic.catppuccin
+end)
+
+-- statusline = require("core.statusline")
+-- opt.statusline = "%!luaeval('statusline.active()')"
+
+opt.number = true
+opt.mouse = "a"
+opt.relativenumber = true
+
+opt.tabstop = 4
+opt.shiftwidth = 4
+opt.expandtab = true
+
+opt.ts = 4
+opt.sw = 4
+opt.splitright = true
diff --git a/.config/nvim/lua/core/plugins.lua b/.config/nvim/lua/core/plugins.lua
new file mode 100644
index 0000000..ae07c71
--- /dev/null
+++ b/.config/nvim/lua/core/plugins.lua
@@ -0,0 +1,292 @@
+local ok,packer = pcall(require,"packer")
+if not ok then
+ vim.notify("Failed to load packer\n\n")
+ return
+end
+
+vim.api.nvim_create_autocmd("BufWritePost", {
+ pattern = "*/core/plugins.lua",
+ callback = function(arg)
+ vim.cmd("source "..arg.file)
+ vim.cmd("PackerInstall")
+ end,
+})
+
+packer.startup{
+ function(use)
+ use {"wbthomason/packer.nvim"}
+
+ use {"nathom/filetype.nvim"}
+
+ -- Colorchemes
+ use {"catppuccin/nvim",as = "catppuccin"}
+ use {"rebelot/kanagawa.nvim"}
+ use {"tiagovla/tokyodark.nvim"}
+ use {"folke/tokyonight.nvim"}
+ use {"navarasu/onedark.nvim"}
+ use {"projekt0n/github-nvim-theme"}
+ use {"Mofiqul/vscode.nvim"}
+
+ use {
+ "norcalli/nvim-colorizer.lua",
+ config = function() require'colorizer'.setup() end
+ }
+ use {"dstein64/vim-startuptime"}
+
+ use {
+ "lukas-reineke/indent-blankline.nvim",
+ config = function()
+ require("indent_blankline").setup{
+ show_end_of_line = true,
+ space_char_blankline = " ",
+ }
+ end
+ }
+
+ use {
+ "windwp/nvim-autopairs",
+ config = function() require("nvim-autopairs").setup() end
+ }
+
+ use {
+ "nacro90/numb.nvim",
+ config = function() require('numb').setup() end
+ }
+
+ use {
+ "numToStr/Comment.nvim",
+ config = function() require('Comment').setup() end
+ }
+
+ use {
+ "lewis6991/gitsigns.nvim",
+ config = function()
+ require("gitsigns").setup{keymaps = {}}
+ end
+ }
+
+ use {
+ "folke/todo-comments.nvim",
+ requires = "nvim-lua/plenary.nvim",
+ config = function() require("todo-comments").setup() end
+ }
+
+ use {"davidgranstrom/nvim-markdown-preview"}
+
+ use {
+ "nvim-telescope/telescope.nvim",
+ requires = { "nvim-lua/plenary.nvim" },
+ config = function()
+ local actions = require('telescope.actions')
+ require('telescope').setup{
+ defaults = {
+ mappings = {
+ n = {
+ ["q"] = actions.close
+ },
+ },
+ }
+ }
+ end
+ }
+
+ use {
+ "akinsho/toggleterm.nvim", tag = 'v2.*',
+ config = function() require("toggleterm").setup() end
+ }
+
+ use {
+ "kyazdani42/nvim-tree.lua",
+ requires = { "kyazdani42/nvim-web-devicons" },
+ config = function() require("plugins.nvim-tree") end
+ }
+
+
+ use {
+ "rcarriga/nvim-notify",
+ config = function()
+ local notify = require("notify")
+ notify.setup{
+ level = "info",
+ stages = "fade_in_slide_out",
+
+ on_open = nil,
+ on_close = nil,
+
+ render = "default",
+ timeout = 5000,
+
+ max_width = nil,
+ max_height = nil,
+
+ background_colour = "Normal",
+
+ minimum_width = 50,
+
+ icons = vim.g.icons.notify,
+ }
+
+ end
+ }
+
+ -- TODO: write own statusline
+ -- use {
+ -- "nvim-lualine/lualine.nvim",
+ -- requires = { 'kyazdani42/nvim-web-devicons',opt = true},
+ -- config = function() require("plugins.lualine") end
+ -- }
+
+
+ use {
+ 'romgrk/barbar.nvim',
+ requires = {'kyazdani42/nvim-web-devicons'},
+ config = function() require("plugins.barbar") end,
+ }
+
+ use {
+ 'pwntester/octo.nvim',
+ requires = {
+ 'nvim-lua/plenary.nvim',
+ },
+ config = function() require"octo".setup() end
+ }
+
+ use {
+ "sindrets/diffview.nvim",
+ requires = 'nvim-lua/plenary.nvim'
+ }
+
+ use {
+ "nvim-treesitter/nvim-treesitter",
+ requires = {
+ "nvim-treesitter/playground",
+ "nvim-treesitter/nvim-treesitter-textobjects",
+ },
+ run = function() vim.cmd("TSUpdate") end,
+ config = function() require("plugins.treesitter") end
+ }
+
+
+ -- Language Server Protocol
+ use {
+ "neovim/nvim-lspconfig",
+ config = function() require("plugins.lsp") end
+ }
+
+
+ use {
+ "j-hui/fidget.nvim",
+ config = function() require"fidget".setup() end
+ }
+
+ use {
+ "hrsh7th/nvim-cmp",
+ requires = {
+ "hrsh7th/cmp-nvim-lsp",
+ "hrsh7th/cmp-path",
+ "hrsh7th/cmp-buffer",
+ "saadparwaiz1/cmp_luasnip",
+ "hrsh7th/cmp-calc",
+ "hrsh7th/cmp-emoji",
+ "hrsh7th/cmp-cmdline",
+ },
+ config = function() require("plugins.cmp") end
+ }
+
+ use {
+ "onsails/lspkind-nvim",
+ config = function()
+ local lspkind = require("lspkind")
+ lspkind.init{
+ mode = 'symbol_text',
+ preset = 'codicons',
+
+ symbol_map = vim.g.icons.kind
+ }
+ end
+ }
+
+ use {
+ "L3MON4D3/LuaSnip",
+ requires = {
+ "rafamadriz/friendly-snippets",
+ },
+ config = function()
+ require("luasnip/loaders/from_vscode").lazy_load()
+ end
+ }
+
+
+ use {
+ "ray-x/lsp_signature.nvim",
+ config = function()
+ local lsp_signature = require("lsp_signature")
+
+ lsp_signature.setup{
+ hint_enable = false,
+ verbose = true
+ }
+
+ end
+ }
+
+ use {
+ "SmiteshP/nvim-gps",
+ requires = "nvim-treesitter/nvim-treesitter",
+ config = function() require("nvim-gps").setup() end,
+ }
+
+
+
+ use {
+ "jose-elias-alvarez/null-ls.nvim",
+ config = function() require("plugins.null-ls") end
+ }
+
+ -- Debug Adapter Protocol
+ use {
+ "mfussenegger/nvim-dap",
+ requires = {
+ "arywz11/DAPInstall.nvim",
+ "rcarriga/nvim-dap-ui"
+ },
+ config = function() require("plugins.dap") end,
+ }
+
+ end,
+
+ config = {
+ display = {
+ open_fn = function()
+ return require("packer.util").float{border = "rounded"}
+ end
+ }
+ }
+}
+
+local function bootstrap()
+ local fn = vim.fn
+ local packer_install_path =
+ fn.stdpath("data").."/site/pack/packer/opt/packer.nvim"
+ local not_installed = fn.empty(fn.glob(packer_install_path)) == 1
+
+ if not_installed then
+ print("`packer.nvim` is not installed, installing...")
+ local repo = "https://github.com/wbthomason/packer.nvim"
+ vim.cmd(("!git clone %s %s"):format(repo, packer_install_path))
+ end
+
+ vim.cmd("packadd packer.nvim")
+ require("packer").startup {
+ load,
+ config = {
+ git = {clone_timeout = 240},
+ },
+ }
+
+ if not_installed then
+ vim.cmd("PackerSync")
+ end
+end
+
+return bootstrap
diff --git a/.config/nvim/lua/core/statusline.lua b/.config/nvim/lua/core/statusline.lua
new file mode 100644
index 0000000..b04f0ee
--- /dev/null
+++ b/.config/nvim/lua/core/statusline.lua
@@ -0,0 +1,154 @@
+local fn = vim.fn
+local api = vim.api
+
+local M = {}
+
+-- possible values are 'arrow' | 'rounded' | 'blank'
+local active_sep = 'blank'
+
+-- change them if you want to different separator
+M.separators = {
+ arrow = { '', '' },
+ rounded = { '', '' },
+ blank = { '', '' },
+}
+
+-- highlight groups
+M.colors = {
+ active = '%#StatusLine#',
+ inactive = '%#StatuslineNC#',
+ mode = '%#Mode#',
+ mode_alt = '%#ModeAlt#',
+ git = '%#Git#',
+ git_alt = '%#GitAlt#',
+ filetype = '%#Filetype#',
+ filetype_alt = '%#FiletypeAlt#',
+ line_col = '%#LineCol#',
+ line_col_alt = '%#LineColAlt#',
+}
+
+M.trunc_width = setmetatable({
+ mode = 80,
+ git_status = 90,
+ filename = 140,
+ line_col = 60,
+}, {
+ __index = function()
+ return 80
+ end
+})
+
+M.is_truncated = function(_, width)
+ local current_width = api.nvim_win_get_width(0)
+ return current_width < width
+end
+
+M.modes = setmetatable({
+ ['n'] = {'Normal', 'N'};
+ ['no'] = {'N·Pending', 'N·P'} ;
+ ['v'] = {'Visual', 'V' };
+ ['V'] = {'V·Line', 'V·L' };
+ [''] = {'V·Block', 'V·B'}; -- this is not ^V, but it's , they're different
+ ['s'] = {'Select', 'S'};
+ ['S'] = {'S·Line', 'S·L'};
+ [''] = {'S·Block', 'S·B'}; -- same with this one, it's not ^S but it's
+ ['i'] = {'Insert', 'I'};
+ ['ic'] = {'Insert', 'I'};
+ ['R'] = {'Replace', 'R'};
+ ['Rv'] = {'V·Replace', 'V·R'};
+ ['c'] = {'Command', 'C'};
+ ['cv'] = {'Vim·Ex ', 'V·E'};
+ ['ce'] = {'Ex ', 'E'};
+ ['r'] = {'Prompt ', 'P'};
+ ['rm'] = {'More ', 'M'};
+ ['r?'] = {'Confirm ', 'C'};
+ ['!'] = {'Shell ', 'S'};
+ ['t'] = {'Terminal ', 'T'};
+}, {
+ __index = function()
+ return {'Unknown', 'U'} -- handle edge cases
+ end
+})
+
+M.get_current_mode = function(self)
+ local current_mode = api.nvim_get_mode().mode
+
+ if self:is_truncated(self.trunc_width.mode) then
+ return string.format(' %s ', self.modes[current_mode][2]):upper()
+ end
+ return string.format(' %s ', self.modes[current_mode][1]):upper()
+end
+
+M.get_git_status = function(self)
+ -- use fallback because it doesn't set this variable on the initial `BufEnter`
+ local signs = vim.b.gitsigns_status_dict or {head = '', added = 0, changed = 0, removed = 0}
+ local is_head_empty = signs.head ~= ''
+
+ if self:is_truncated(self.trunc_width.git_status) then
+ return is_head_empty and string.format(' %s ', signs.head or '') or ''
+ end
+
+ return is_head_empty and string.format(
+ ' +%s ~%s -%s | %s ',
+ signs.added, signs.changed, signs.removed, signs.head
+ ) or ''
+end
+
+M.get_filename = function(self)
+ if self:is_truncated(self.trunc_width.filename) then return " %<%f " end
+ return " %<%F "
+end
+
+M.get_filetype = function()
+ local file_name, file_ext = fn.expand("%:t"), fn.expand("%:e")
+ local icon = require'nvim-web-devicons'.get_icon(file_name, file_ext, { default = true })
+ local filetype = vim.bo.filetype
+
+ if filetype == '' then return '' end
+ return string.format(' %s %s ', icon, filetype):lower()
+end
+
+M.get_line_col = function(self)
+ if self:is_truncated(self.trunc_width.line_col) then return ' %l:%c ' end
+ return ' Ln %l, Col %c '
+end
+
+
+M.set_active = function(self)
+ local colors = self.colors
+
+ local mode = colors.mode .. self:get_current_mode()
+ local mode_alt = colors.mode_alt .. self.separators[active_sep][1]
+ local git = colors.git .. self:get_git_status()
+ local git_alt = colors.git_alt .. self.separators[active_sep][1]
+ local filename = colors.inactive .. self:get_filename()
+ local filetype_alt = colors.filetype_alt .. self.separators[active_sep][2]
+ local filetype = colors.filetype .. self:get_filetype()
+ local line_col = colors.line_col .. self:get_line_col()
+ local line_col_alt = colors.line_col_alt .. self.separators[active_sep][2]
+
+ return table.concat({
+ colors.active, mode, mode_alt, git, git_alt,
+ "%=", filename, "%=",
+ filetype_alt, filetype, line_col_alt, line_col
+ })
+end
+
+M.set_inactive = function(self)
+ return self.colors.inactive .. '%= %F %='
+end
+
+M.set_explorer = function(self)
+ local title = self.colors.mode .. ' '
+ local title_alt = self.colors.mode_alt .. self.separators[active_sep][2]
+
+ return table.concat({ self.colors.active, title, title_alt })
+end
+
+Statusline = setmetatable(M, {
+ __call = function(statusline, mode)
+ if mode == "active" then return statusline:set_active() end
+ if mode == "inactive" then return statusline:set_inactive() end
+ if mode == "explorer" then return statusline:set_explorer() end
+ end
+})
diff --git a/.config/nvim/lua/core/utils.lua b/.config/nvim/lua/core/utils.lua
new file mode 100644
index 0000000..8b51785
--- /dev/null
+++ b/.config/nvim/lua/core/utils.lua
@@ -0,0 +1,304 @@
+local M = {}
+
+local function printf(...) print(string.format(...)) end
+local sprintf = string.format
+local function cmdf(...) vim.cmd(sprintf(...)) end
+local fn, api = vim.fn, vim.api
+
+M.printf = printf
+M.sprintf = sprintf
+M.cmdf = cmdf
+
+function M.get_cursor_pos() return {fn.line('.'), fn.col('.')} end
+
+function M.debounce(func, timeout)
+ local timer_id
+ return function(...)
+ if timer_id ~= nil then
+ fn.timer_stop(timer_id)
+ end
+ local args = {...}
+ local function cb()
+ func(args)
+ timer_id = nil
+ end
+ timer_id = fn.timer_start(timeout, cb)
+ end
+end
+
+-- FIXME
+function M.throttle(func, timeout)
+ local timer_id
+ local did_call = false
+ return function(...)
+ local args = {...}
+ if timer_id == nil then
+ func(unpack(args))
+ local function cb()
+ timer_id = nil
+ if did_call then
+ func(unpack(args))
+ did_call = false
+ end
+ end
+ timer_id = fn.timer_start(timeout, cb)
+ else
+ did_call = true
+ end
+ end
+end
+
+function M.run_colorscheme(colorscheme,callback)
+ local ok,err = pcall(function()
+ vim.cmd("colorscheme " .. colorscheme)
+ callback()
+ end)
+
+ if (not ok) then
+ vim.notify(err)
+ end
+end
+
+
+-- Convert UTF-8 hex code to character
+function M.u(code)
+ if type(code) == 'string' then
+ code = tonumber('0x' .. code)
+ end
+ local c = string.char
+ if code <= 0x7f then
+ return c(code)
+ end
+ local t = {}
+ if code <= 0x07ff then
+ t[1] = c(bit.bor(0xc0, bit.rshift(code, 6)))
+ t[2] = c(bit.bor(0x80, bit.band(code, 0x3f)))
+ elseif code <= 0xffff then
+ t[1] = c(bit.bor(0xe0, bit.rshift(code, 12)))
+ t[2] = c(bit.bor(0x80, bit.band(bit.rshift(code, 6), 0x3f)))
+ t[3] = c(bit.bor(0x80, bit.band(code, 0x3f)))
+ else
+ t[1] = c(bit.bor(0xf0, bit.rshift(code, 18)))
+ t[2] = c(bit.bor(0x80, bit.band(bit.rshift(code, 12), 0x3f)))
+ t[3] = c(bit.bor(0x80, bit.band(bit.rshift(code, 6), 0x3f)))
+ t[4] = c(bit.bor(0x80, bit.band(code, 0x3f)))
+ end
+ return table.concat(t)
+end
+
+function _G.dump(...)
+ local args = {...}
+ if #args == 1 then
+ print(vim.inspect(args[1]))
+ else
+ print(vim.inspect(args))
+ end
+end
+
+function M.load(path)
+ local ok, mod = pcall(require, path)
+ if not ok then
+ printf('Error loading module `%s`', path)
+ print(mod)
+ else
+ local loadfunc
+ if mod == true then
+ -- Module doesn't export anything
+ return
+ elseif type(mod) == "table" and mod.setup ~= nil then
+ loadfunc = mod.setup
+ elseif type(mod) == "function" then
+ loadfunc = mod
+ end
+ local ok, err = pcall(loadfunc)
+ if not ok then
+ printf("Error loading module `%s`", path)
+ print(err)
+ end
+ end
+end
+
+-- Get information about highlight group
+function M.hl_by_name(hl_group)
+ local hl = api.nvim_get_hl_by_name(hl_group, true)
+ if hl.foreground ~= nil then
+ hl.fg = sprintf('#%x', hl.foreground)
+ end
+ if hl.background ~= nil then
+ hl.bg = sprintf('#%x', hl.background)
+ end
+ return hl
+end
+
+function M.isempty(s)
+ return s == nil or s == ""
+end
+
+function M.get_buf_option(opt)
+ local status_ok, buf_option = pcall(vim.api.nvim_buf_get_option, 0, opt)
+ if not status_ok then
+ return nil
+ else
+ return buf_option
+ end
+end
+
+-- Define a new highlight group
+-- TODO: rewrite to `nvim_set_hl()` when API will be stable
+function M.highlight(cfg)
+ local command = "highlight"
+ if cfg.bang == true then
+ command = command .. '!'
+ end
+
+ if #cfg == 2 and type(cfg[1]) == 'string' and type(cfg[2]) == 'string' then
+ -- :highlight link
+ vim.cmd(command.." link "..cfg[1].." "..cfg[2])
+ return
+ end
+ local guifg = cfg.fg or cfg.guifg
+ local guibg = cfg.bg or cfg.guibg
+ local gui = cfg.gui
+ local guisp = cfg.guisp
+ if type(cfg.override) == 'string' then
+ local existing = api.nvim_get_hl_by_name(cfg.override, true)
+ if existing.foreground ~= nil then
+ guifg = sprintf('#%x', existing.foreground)
+ end
+ if existing.background ~= nil then
+ guibg = sprintf('#%x', existing.background)
+ end
+ if existing.special ~= nil then
+ guibg = sprintf('#%x', existing.background)
+ end
+ if existing.undercurl == true then
+ gui = "undercurl"
+ elseif existing.underline == true then
+ gui = "underline"
+ end
+ end
+ command = command .. ' ' .. cfg[1]
+ if guifg ~= nil then
+ command = command .. ' guifg=' .. guifg
+ end
+ if guibg ~= nil then
+ command = command .. ' guibg=' .. guibg
+ end
+ if gui ~= nil then
+ command = command .. ' gui=' .. gui
+ end
+ if guisp ~= nil then
+ command = command .. ' guisp=' .. guisp
+ end
+ vim.cmd(command)
+end
+
+local autocmd_fn_index = 0
+
+-- WIP:
+function M.autocmd(event_name, pattern, callback)
+ local fn_name = 'lua_autocmd' .. autocmd_fn_index
+ autocmd_fn_index = autocmd_fn_index + 1
+ _G[fn_name] = callback
+ cmdf('autocmd %s %s call v:lua.%s()', event_name, pattern, fn_name)
+end
+
+function M.glob_exists(path) return fn.empty(fn.glob(path)) == 0 end
+
+do
+ local show_diagnostics = vim.lsp.diagnostic.show_line_diagnostics
+ local cursor_pos = M.get_cursor_pos()
+ local debounced = M.debounce(show_diagnostics, 300)
+ M.show_lsp_diagnostics = function()
+ local cursor_pos2 = M.get_cursor_pos()
+ -- TODO: doesn't work when both diagnostics and popup is shown
+ if cursor_pos[1] ~= cursor_pos2[1] and cursor_pos[2] ~= cursor_pos2[2] then
+ cursor_pos = cursor_pos2
+ debounced()
+ end
+ end
+end
+
+function M.id_generator(start)
+ local cnt = start or 0
+ return function()
+ local result = cnt
+ cnt = cnt + 1
+ return result
+ end
+end
+
+do
+ local map_func_counter = 0
+ function M.map(mode, lhs, fn, opts)
+ local name = 'map_func_' .. map_func_counter
+ _G[name] = fn
+ local rhs = ':call v:lua.' .. name .. '()'
+ api.nvim_set_keymap(mode, lhs, rhs, opts)
+ map_func_counter = map_func_counter + 1
+ end
+end
+
+for _, mode in ipairs {'', 'n', 'i', 'c', 'x'} do
+ M[mode .. 'noremap'] = function(lhs, fn, opts)
+ local mapopts = opts or {}
+ mapopts.noremap = true
+ return M.map(mode, lhs, fn, mapopts)
+ end
+end
+
+function M.log_time(fn, label)
+ return function(...)
+ local now = os.clock()
+ fn(...)
+ print(
+ ((label and (label .. ' ')) or '') ..
+ (math.floor((os.clock() - now) * 1e6) / 1000) ..
+ "ms."
+ )
+ end
+end
+
+-- TODO: fix function
+function M.require_mod(modname)
+ local ok,mod = pcall(require,modname)
+ local notify_ok,notify = pcall(require,"notify")
+ if (not ok) then
+ local errmsg = "Failed to load " .. modname
+ if (notify_ok) then
+ notify(
+ errmsg,
+ "error",
+ {
+ title = "require"
+ }
+ )
+ else
+ vim.notify(errmsg)
+ end
+
+ return
+ end
+
+ return mod
+end
+
+function M.index_of(t, v, eqfn)
+ eqfn = eqfn or (function(el) return el == v end)
+ for i, value in ipairs(t) do
+ if eqfn(value, v) then
+ return i
+ end
+ end
+ return -1
+end
+
+local globalfn_counter = 0
+function M.defglobalfn(func)
+ assert(type(func) == "function")
+ local name = "_lua_fn_" .. globalfn_counter
+ _G[name] = func
+ globalfn_counter = globalfn_counter + 1
+ return name
+end
+return M
diff --git a/.config/nvim/lua/plugins/barbar.lua b/.config/nvim/lua/plugins/barbar.lua
new file mode 100644
index 0000000..ef7d97d
--- /dev/null
+++ b/.config/nvim/lua/plugins/barbar.lua
@@ -0,0 +1,66 @@
+vim.g.bufferline = {
+ -- Enable/disable animations
+ animation = true,
+
+ -- Enable/disable auto-hiding the tab bar when there is a single buffer
+ auto_hide = false,
+
+ -- Enable/disable current/total tabpages indicator (top right corner)
+ tabpages = true,
+
+ -- Enable/disable close button
+ closable = true,
+
+ -- Enables/disable clickable tabs
+ -- - left-click: go to buffer
+ -- - middle-click: delete buffer
+ clickable = true,
+
+ -- Excludes buffers from the tabline
+ exclude_ft = {'javascript'},
+ exclude_name = {'package.json'},
+
+ -- Enable/disable icons
+ -- if set to 'numbers', will show buffer index in the tabline
+ -- if set to 'both', will show buffer index and icons in the tabline
+ icons = true,
+
+ -- If set, the icon color will follow its corresponding buffer
+ -- highlight group. By default, the Buffer*Icon group is linked to the
+ -- Buffer* group (see Highlighting below). Otherwise, it will take its
+ -- default value as defined by devicons.
+ icon_custom_colors = false,
+
+ -- Configure icons on the bufferline.
+ icon_separator_active = '▎',
+ icon_separator_inactive = '▎',
+ icon_close_tab = '',
+ icon_close_tab_modified = '●',
+ icon_pinned = '車',
+
+ -- If true, new buffers will be inserted at the start/end of the list.
+ -- Default is to insert after current buffer.
+ insert_at_end = false,
+ insert_at_start = false,
+
+ -- Sets the maximum padding width with which to surround each tab
+ maximum_padding = 1,
+
+ -- Sets the maximum buffer name length.
+ maximum_length = 30,
+
+ -- If set, the letters for each buffer in buffer-pick mode will be
+ -- assigned based on their name. Otherwise or in case all letters are
+ -- already assigned, the behavior is to assign letters in order of
+ -- usability (see order below)
+ semantic_letters = true,
+
+ -- New buffer letters are assigned in this order. This order is
+ -- optimal for the qwerty keyboard layout but might need adjustement
+ -- for other layouts.
+ letters = 'asdfjkl;ghnmxcvbziowerutyqpASDFJKLGHNMXCVBZIOWERUTYQP',
+
+ -- Sets the name of unnamed buffers. By default format is "[Buffer X]"
+ -- where X is the buffer number. But only a static string is accepted here.
+ no_name_title = nil,
+}
diff --git a/.config/nvim/lua/plugins/cmp.lua b/.config/nvim/lua/plugins/cmp.lua
new file mode 100644
index 0000000..78fbf8e
--- /dev/null
+++ b/.config/nvim/lua/plugins/cmp.lua
@@ -0,0 +1,62 @@
+local ok,cmp = pcall(require,"cmp")
+if not ok then
+ vim.notify("Failed to load cmp\n\n")
+ return
+end
+
+cmp.setup {
+ mapping = {
+ [""] = cmp.mapping.select_next_item(),
+ [""] = cmp.mapping.select_prev_item(),
+ [""] = cmp.mapping.complete(),
+ [""] = cmp.mapping.confirm({select = false}),
+ },
+
+ completion = {
+ autocomplete = true,
+ completeopt = "menu,menuone,noinsert",
+ winhighlight = "Normal:Pmenu,FloatBorder:Pmenu,Search:None",
+ },
+
+ snippet = {
+ expand = function(args)
+ require('luasnip').lsp_expand(args.body)
+ end,
+ },
+
+ window = {
+ completion = cmp.config.window.bordered(),
+ documentation = cmp.config.window.bordered()
+ },
+
+ formatting = {
+ fields = { "kind", "abbr", "menu" },
+ format = function(entry, vim_item)
+ -- local kind = string.format("%s %s",vim.g.icons.kind[vim_item.kind], vim_item.kind)
+ local kind = require("lspkind").cmp_format({mode = "symbol_text", maxwidth = 50})(entry, vim_item)
+
+ local strings = vim.split(kind.kind, "%s",{trimempty = true})
+ kind.kind = " " .. strings[1] .. " "
+ kind.menu = " (" .. strings[2] .. ")"
+
+ return kind
+
+ -- vim_item.menu = ({
+ -- nvim_lsp = "[LSP]",
+ -- nvim_lua = "[Lua]",
+ -- buffer = "[BUF]",
+ -- })[entry.source.name]
+ --
+ -- return vim_item
+ end
+
+ },
+
+ sources = {
+ { name = "nvim_lsp"},
+ { name = "luasnip" },
+ { name = "emoji" },
+ { name = "calc" },
+ },
+
+}
diff --git a/.config/nvim/lua/plugins/dap.lua b/.config/nvim/lua/plugins/dap.lua
new file mode 100644
index 0000000..e20d342
--- /dev/null
+++ b/.config/nvim/lua/plugins/dap.lua
@@ -0,0 +1,11 @@
+local ok,dap = pcall(require,"dap")
+if not ok then
+ vim.notify("Failed to load dap\n\n")
+ return
+end
+
+-- dap.adapters.python = {
+-- type = "executable",
+-- command =
+-- args = { "-m","debugpy.adapter" }
+-- }
diff --git a/.config/nvim/lua/plugins/lsp.lua b/.config/nvim/lua/plugins/lsp.lua
new file mode 100644
index 0000000..27aef38
--- /dev/null
+++ b/.config/nvim/lua/plugins/lsp.lua
@@ -0,0 +1,85 @@
+local ok,nvim_lsp = pcall(require,"lspconfig")
+if not ok then
+ vim.notify("Failed to load lspconfig\n\n")
+ return
+end
+
+local utils = require"core.utils"
+local root_pattern = require"lspconfig.util".root_pattern
+local sign = vim.fn.sign_define
+local capabilities = vim.lsp.protocol.make_client_capabilities()
+
+local handlers = {
+ ["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover,{border = "rounded"}),
+ ["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help,{border = "rounded"}),
+}
+
+
+local function DiagnosticSign(name,icon,color)
+ sign("DiagnosticSign"..name,{text=icon,texthl="DiagnosticSign"..name})
+ if (color ~= "Default") then
+ utils.highlight{"Diagnostic"..name,fg=color}
+ end
+end
+
+
+for _,sign in pairs(vim.g.diagnostics_signs) do
+ DiagnosticSign(sign.name,sign.icon,sign.color)
+end
+
+vim.diagnostic.config {
+ signs = true,
+ underline = true,
+ update_in_insert = false,
+ severity_sort = false,
+
+ virtual_text = {prefix = 'x'},
+ float = {border = "rounded"},
+}
+
+
+local on_attach = function(client,bufnr)
+ print("Attaching to:",client.name)
+ local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr,...) end
+ local opts = {noremap = true,silent=true}
+
+ buf_set_keymap('n','gd','lua vim.lsp.buf.definition()',opts)
+ buf_set_keymap('n','K', 'lua vim.lsp.buf.hover()',opts)
+ buf_set_keymap('n','[d','lua vim.diagnostic.goto_prev()',opts)
+ buf_set_keymap('n',']d','lua vim.diagnostic.goto_next()',opts)
+ buf_set_keymap('n','d','lua vim.diagnostic.open_float({border="rounded"})',opts)
+ buf_set_keymap('n','f','lua vim.lsp.buf.formatting()',opts)
+end
+
+-- LSP Servers
+nvim_lsp.clangd.setup {
+ filetypes = {"c","cpp","objc","objcpp"},
+ on_attach = on_attach,
+ handlers = handlers,
+ capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities),
+ root_dir = root_pattern {
+ "CMakeList.txt",
+ "compile_flags.txt",
+ ".git",
+ vim.fn.getcwd()
+ }
+}
+
+nvim_lsp.pyright.setup{
+ on_attach = on_attach,
+ handlers = handlers,
+ capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities),
+}
+
+nvim_lsp.gopls.setup {
+ cmd = {"gopls","server"},
+ filetypes = {"go", "gomod"},
+ on_attach = on_attach,
+ handlers = handlers,
+ capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities),
+ root_dir = root_pattern{
+ "go.mod",
+ ".git",
+ vim.fn.getcwd(),
+ },
+}
diff --git a/.config/nvim/lua/plugins/lualine.lua b/.config/nvim/lua/plugins/lualine.lua
new file mode 100644
index 0000000..d05a078
--- /dev/null
+++ b/.config/nvim/lua/plugins/lualine.lua
@@ -0,0 +1,38 @@
+require('lualine').setup{
+ options = {
+ icons_enabled = true,
+ theme = 'catppuccin',
+ component_separators = { left = '', right = ''},
+ section_separators = { left = '', right = ''},
+ disabled_filetypes = {
+ statusline = {},
+ winbar = {},
+ },
+ always_divide_middle = true,
+ globalstatus = false,
+ refresh = {
+ statusline = 1000,
+ tabline = 1000,
+ winbar = 1000,
+ }
+ },
+ sections = {
+ lualine_a = {'mode'},
+ lualine_b = {'branch', 'diagnostics'},
+ lualine_c = {'filename'},
+ lualine_x = {'filetype'},
+ lualine_z = {'location'}
+ },
+ inactive_sections = {
+ lualine_a = {},
+ lualine_b = {},
+ lualine_c = {'filename'},
+ lualine_x = {'location'},
+ lualine_y = {},
+ lualine_z = {}
+ },
+ tabline = {},
+ winbar = {},
+ inactive_winbar = {},
+ extensions = {}
+}
diff --git a/.config/nvim/lua/plugins/null-ls.lua b/.config/nvim/lua/plugins/null-ls.lua
new file mode 100644
index 0000000..3c03b82
--- /dev/null
+++ b/.config/nvim/lua/plugins/null-ls.lua
@@ -0,0 +1,30 @@
+local ok,null_ls = pcall(require,"null-ls")
+if not ok then
+ vim.notify("Failed to load null-ls\n\n")
+ return
+end
+
+local h = require("null-ls.helpers")
+local m = require("null-ls.methods")
+
+local formatting = null_ls.builtins.formatting
+
+local jq_format = h.make_builtin {
+ name = "jq",
+ method = m.internal.FORMATTING,
+ filetypes = {"json"},
+ generator_opts = {
+ command = "jq",
+ args = {"-M", "."},
+ to_stdin = true,
+ },
+
+ factory = h.formatter_factory,
+}
+
+null_ls.setup{
+ sources = {
+ formatting.black,
+ jq_format
+ }
+}
diff --git a/.config/nvim/lua/plugins/nvim-tree.lua b/.config/nvim/lua/plugins/nvim-tree.lua
new file mode 100644
index 0000000..3927415
--- /dev/null
+++ b/.config/nvim/lua/plugins/nvim-tree.lua
@@ -0,0 +1,128 @@
+local ok,nvim_tree = pcall(require,"nvim-tree")
+if not ok then
+ vim.notify("Failed to load nvim-tree\n\n")
+ return
+end
+
+nvim_tree.setup {
+ auto_reload_on_write = true,
+ disable_netrw = false,
+ hijack_cursor = false,
+ hijack_netrw = true,
+ hijack_unnamed_buffer_when_opening = false,
+ ignore_buffer_on_setup = false,
+ open_on_setup = false,
+ open_on_setup_file = false,
+ open_on_tab = false,
+ sort_by = "name",
+ update_cwd = false,
+
+ view = {
+ width = 30,
+ height = 30,
+ hide_root_folder = false,
+ side = "left",
+ preserve_window_proportions = false,
+ number = false,
+ relativenumber = false,
+ signcolumn = "yes",
+ mappings = {
+ custom_only = false,
+ list = {},
+ },
+ },
+
+ renderer = {
+ indent_markers = {
+ enable = false,
+ icons = {
+ corner = "└ ",
+ edge = "│ ",
+ none = " ",
+ },
+ },
+ icons = {
+ webdev_colors = true,
+ git_placement = "before",
+ }
+ },
+
+ hijack_directories = {
+ enable = true,
+ auto_open = true,
+ },
+
+ update_focused_file = {
+ enable = false,
+ update_cwd = false,
+ ignore_list = {},
+ },
+
+ ignore_ft_on_setup = {},
+ system_open = {
+ cmd = "",
+ args = {},
+ },
+
+ diagnostics = {
+ enable = false,
+ show_on_dirs = false,
+ icons = {
+ hint = "",
+ info = "",
+ warning = "",
+ error = "",
+ },
+ },
+
+ filters = {
+ dotfiles = true,
+ custom = {},
+ exclude = {},
+ },
+
+ git = {
+ enable = true,
+ ignore = true,
+ timeout = 400,
+ },
+
+ actions = {
+ use_system_clipboard = true,
+ change_dir = {
+ enable = true,
+ global = false,
+ restrict_above_cwd = false,
+ },
+ open_file = {
+ quit_on_open = false,
+ resize_window = false,
+ window_picker = {
+ enable = true,
+ chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890",
+ exclude = {
+ filetype = { "notify", "packer", "qf", "diff", "fugitive", "fugitiveblame" },
+ buftype = { "nofile", "terminal", "help" },
+ },
+ },
+ },
+ },
+
+ trash = {
+ cmd = "trash",
+ require_confirm = true,
+ },
+
+ log = {
+ enable = false,
+ truncate = false,
+ types = {
+ all = false,
+ config = false,
+ copy_paste = false,
+ diagnostics = false,
+ git = false,
+ profile = false,
+ },
+ },
+}
diff --git a/.config/nvim/lua/plugins/treesitter.lua b/.config/nvim/lua/plugins/treesitter.lua
new file mode 100644
index 0000000..8637897
--- /dev/null
+++ b/.config/nvim/lua/plugins/treesitter.lua
@@ -0,0 +1,28 @@
+local ok,nvim_treesitter_configs = pcall(require,"nvim-treesitter.configs")
+if not ok then
+ vim.notify("Failed to load nvim-treesitter\n\n")
+ return
+end
+
+nvim_treesitter_configs.setup {
+ highlight = {
+ enable = true,
+ disable = {},
+ },
+ indent = {
+ enable = false,
+ disable = {},
+ },
+ ensure_installed = {
+ "c",
+ "cpp",
+ "vim",
+ "lua",
+ "bash",
+ "python",
+ "go"
+ },
+}
+
+local parser_config = require "nvim-treesitter.parsers".get_parser_configs()
+parser_config.tsx.filetype_to_parsername = { "javascript", "typescript.tsx" }
diff --git a/.config/picom/picom.conf b/.config/picom/picom.conf
new file mode 100644
index 0000000..eec68ae
--- /dev/null
+++ b/.config/picom/picom.conf
@@ -0,0 +1,506 @@
+#################################
+# Animations #
+#################################
+# requires https://github.com/jonaburg/picom
+# (These are also the default values)
+transition-length = 300
+transition-pow-x = 0.1
+transition-pow-y = 0.1
+transition-pow-w = 0.1
+transition-pow-h = 0.1
+size-transition = true
+
+
+#################################
+# Corners #
+#################################
+# requires: https://github.com/sdhand/compton or https://github.com/jonaburg/picom
+corner-radius = 16.0;
+# rounded-corners-exclude = [
+# #"window_type = 'normal'",
+# "class_g = 'LibreWolf'",
+# "class_g = 'kitty'",
+# "class_g = 'Polybar'",
+# "class_g = 'KotatogramDesktop'"
+# ];
+round-borders = 12;
+round-borders-exclude = [
+ #"class_g = 'TelegramDesktop'",
+];
+
+#################################
+# Shadows #
+#################################
+
+
+# Enabled client-side shadows on windows. Note desktop windows
+# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
+# unless explicitly requested using the wintypes option.
+#
+# shadow = false
+shadow = false;
+
+# The blur radius for shadows, in pixels. (defaults to 12)
+# shadow-radius = 12
+shadow-radius = 7;
+
+# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
+# shadow-opacity = .75
+
+# The left offset for shadows, in pixels. (defaults to -15)
+# shadow-offset-x = -15
+shadow-offset-x = -7;
+
+# The top offset for shadows, in pixels. (defaults to -15)
+# shadow-offset-y = -15
+shadow-offset-y = -7;
+
+# Avoid drawing shadows on dock/panel windows. This option is deprecated,
+# you should use the *wintypes* option in your config file instead.
+#
+# no-dock-shadow = false
+
+# Don't draw shadows on drag-and-drop windows. This option is deprecated,
+# you should use the *wintypes* option in your config file instead.
+#
+# no-dnd-shadow = false
+
+# Red color value of shadow (0.0 - 1.0, defaults to 0).
+# shadow-red = 0
+
+# Green color value of shadow (0.0 - 1.0, defaults to 0).
+# shadow-green = 0
+
+# Blue color value of shadow (0.0 - 1.0, defaults to 0).
+# shadow-blue = 0
+
+# Do not paint shadows on shaped windows. Note shaped windows
+# here means windows setting its shape through X Shape extension.
+# Those using ARGB background is beyond our control.
+# Deprecated, use
+# shadow-exclude = 'bounding_shaped'
+# or
+# shadow-exclude = 'bounding_shaped && !rounded_corners'
+# instead.
+#
+# shadow-ignore-shaped = ''
+
+# Specify a list of conditions of windows that should have no shadow.
+#
+# examples:
+# shadow-exclude = "n:e:Notification";
+#
+# shadow-exclude = []
+shadow-exclude = [
+ "name = 'Notification'",
+ "class_g = 'Conky'",
+ "class_g ?= 'Notify-osd'",
+ "class_g = 'Cairo-clock'",
+ "class_g = 'slop'",
+ "class_g = 'Polybar'",
+ "_GTK_FRAME_EXTENTS@:c"
+];
+
+# Specify a X geometry that describes the region in which shadow should not
+# be painted in, such as a dock window region. Use
+# shadow-exclude-reg = "x10+0+0"
+# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
+#
+# shadow-exclude-reg = ""
+
+# Crop shadow of a window fully on a particular Xinerama screen to the screen.
+# xinerama-shadow-crop = false
+
+
+#################################
+# Fading #
+#################################
+
+
+# Fade windows in/out when opening/closing and when opacity changes,
+# unless no-fading-openclose is used.
+# fading = false
+fading = true;
+
+# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
+# fade-in-step = 0.028
+fade-in-step = 0.03;
+
+# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
+# fade-out-step = 0.03
+fade-out-step = 0.03;
+
+# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
+# fade-delta = 10
+
+# Specify a list of conditions of windows that should not be faded.
+# don't need this, we disable fading for all normal windows with wintypes: {}
+fade-exclude = [
+ "class_g = 'slop'" # maim
+]
+
+# Do not fade on window open/close.
+# no-fading-openclose = false
+
+# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
+# no-fading-destroyed-argb = false
+
+
+#################################
+# Transparency / Opacity #
+#################################
+
+
+# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
+# inactive-opacity = 1
+inactive-opacity = 0.8;
+
+# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
+# frame-opacity = 1.0
+frame-opacity = 0.7;
+
+# Default opacity for dropdown menus and popup menus. (0.0 - 1.0, defaults to 1.0)
+# menu-opacity = 1.0
+# menu-opacity is depreciated use dropdown-menu and popup-menu instead.
+
+#If using these 2 below change their values in line 510 & 511 aswell
+popup_menu = { opacity = 0.8; }
+dropdown_menu = { opacity = 0.8; }
+
+
+# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows.
+# inactive-opacity-override = true
+inactive-opacity-override = false;
+
+# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
+active-opacity = 1.0;
+
+# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
+# inactive-dim = 0.0
+
+# Specify a list of conditions of windows that should always be considered focused.
+# focus-exclude = []
+focus-exclude = [
+ "class_g = 'Cairo-clock'",
+ "class_g = 'Bar'", # lemonbar
+ "class_g = 'slop'" # maim
+];
+
+# Use fixed inactive dim value, instead of adjusting according to window opacity.
+# inactive-dim-fixed = 1.0
+
+# Specify a list of opacity rules, in the format `PERCENT:PATTERN`,
+# like `50:name *= "Firefox"`. picom-trans is recommended over this.
+# Note we don't make any guarantee about possible conflicts with other
+# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
+# example:
+# opacity-rule = [ "80:class_g = 'URxvt'" ];
+#
+# opacity-rule = []
+opacity-rule = [
+ "80:class_g = 'Bar'", # lemonbar
+ "100:class_g = 'slop'", # maim
+ "100:class_g = 'XTerm'",
+ "100:class_g = 'URxvt'",
+ "100:class_g = 'kitty'",
+ "100:class_g = 'Alacritty'",
+ "80:class_g = 'Polybar'",
+ "100:class_g = 'code-oss'",
+ "100:class_g = 'Meld'",
+ "70:class_g = 'TelegramDesktop'",
+ "90:class_g = 'Joplin'",
+ "100:class_g = 'firefox'",
+ "100:class_g = 'Thunderbird'"
+];
+
+
+#################################
+# Background-Blurring #
+#################################
+
+
+# Parameters for background blurring, see the *BLUR* section for more information.
+# blur-method =
+# blur-size = 12
+#
+# blur-deviation = false
+
+# Blur background of semi-transparent / ARGB windows.
+# Bad in performance, with driver-dependent behavior.
+# The name of the switch may change without prior notifications.
+#
+# blur-background = true;
+
+# Blur background of windows when the window frame is not opaque.
+# Implies:
+# blur-background
+# Bad in performance, with driver-dependent behavior. The name may change.
+#
+# blur-background-frame = false;
+
+
+# Use fixed blur strength rather than adjusting according to window opacity.
+# blur-background-fixed = false;
+
+
+# Specify the blur convolution kernel, with the following format:
+# example:
+# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
+#
+# blur-kern = ''
+# blur-kern = "3x3box";
+
+blur: {
+ # requires: https://github.com/ibhagwan/picom
+ method = "kawase";
+ #method = "kernel";
+ strength = 7;
+ # deviation = 1.0;
+ # kernel = "11x11gaussian";
+ background = false;
+ background-frame = false;
+ background-fixed = false;
+ kern = "3x3box";
+}
+
+# Exclude conditions for background blur.
+blur-background-exclude = [
+ #"window_type = 'dock'",
+ #"window_type = 'desktop'",
+ #"class_g = 'URxvt'",
+ #
+ # prevents picom from blurring the background
+ # when taking selection screenshot with `main`
+ # https://github.com/naelstrof/maim/issues/130
+ "class_g = 'slop'",
+ "_GTK_FRAME_EXTENTS@:c"
+];
+
+
+#################################
+# General Settings #
+#################################
+
+# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
+# daemon = false
+
+# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
+# `xrender` is the default one.
+#
+experimental-backends = true;
+backend = "glx";
+#backend = "xrender";
+
+
+# Enable/disable VSync.
+# vsync = false
+vsync = true
+
+# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
+# dbus = false
+
+# Try to detect WM windows (a non-override-redirect window with no
+# child that has 'WM_STATE') and mark them as active.
+#
+# mark-wmwin-focused = false
+mark-wmwin-focused = true;
+
+# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
+# mark-ovredir-focused = false
+mark-ovredir-focused = true;
+
+# Try to detect windows with rounded corners and don't consider them
+# shaped windows. The accuracy is not very high, unfortunately.
+#
+# detect-rounded-corners = false
+detect-rounded-corners = true;
+
+# Detect '_NET_WM_OPACITY' on client windows, useful for window managers
+# not passing '_NET_WM_OPACITY' of client windows to frame windows.
+#
+# detect-client-opacity = false
+detect-client-opacity = true;
+
+# Specify refresh rate of the screen. If not specified or 0, picom will
+# try detecting this with X RandR extension.
+#
+# refresh-rate = 60
+refresh-rate = 0
+
+# Limit picom to repaint at most once every 1 / 'refresh_rate' second to
+# boost performance. This should not be used with
+# vsync drm/opengl/opengl-oml
+# as they essentially does sw-opti's job already,
+# unless you wish to specify a lower refresh rate than the actual value.
+#
+# sw-opti =
+
+# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
+# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
+# provided that the WM supports it.
+#
+# use-ewmh-active-win = false
+
+# Unredirect all windows if a full-screen opaque window is detected,
+# to maximize performance for full-screen windows. Known to cause flickering
+# when redirecting/unredirecting windows. paint-on-overlay may make the flickering less obvious.
+#
+# unredir-if-possible = false
+
+# Delay before unredirecting the window, in milliseconds. Defaults to 0.
+# unredir-if-possible-delay = 0
+
+# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
+# unredir-if-possible-exclude = []
+
+# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
+# in the same group focused at the same time.
+#
+# detect-transient = false
+detect-transient = true
+
+# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same
+# group focused at the same time. 'WM_TRANSIENT_FOR' has higher priority if
+# detect-transient is enabled, too.
+#
+# detect-client-leader = false
+detect-client-leader = true
+
+# Resize damaged region by a specific number of pixels.
+# A positive value enlarges it while a negative one shrinks it.
+# If the value is positive, those additional pixels will not be actually painted
+# to screen, only used in blur calculation, and such. (Due to technical limitations,
+# with use-damage, those pixels will still be incorrectly painted to screen.)
+# Primarily used to fix the line corruption issues of blur,
+# in which case you should use the blur radius value here
+# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`,
+# with a 5x5 one you use `--resize-damage 2`, and so on).
+# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
+#
+# resize-damage = 1
+
+# Specify a list of conditions of windows that should be painted with inverted color.
+# Resource-hogging, and is not well tested.
+#
+# invert-color-include = []
+
+# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
+# Might cause incorrect opacity when rendering transparent content (but never
+# practically happened) and may not work with blur-background.
+# My tests show a 15% performance boost. Recommended.
+#
+# glx-no-stencil = false
+
+# GLX backend: Avoid rebinding pixmap on window damage.
+# Probably could improve performance on rapid window content changes,
+# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.).
+# Recommended if it works.
+#
+# glx-no-rebind-pixmap = false
+
+# Disable the use of damage information.
+# This cause the whole screen to be redrawn everytime, instead of the part of the screen
+# has actually changed. Potentially degrades the performance, but might fix some artifacts.
+# The opposing option is use-damage
+#
+# no-use-damage = false
+#use-damage = true (Causing Weird Black semi opaque rectangles when terminal is opened)
+#Changing use-damage to false fixes the problem
+use-damage = false
+
+# Use X Sync fence to sync clients' draw calls, to make sure all draw
+# calls are finished before picom starts drawing. Needed on nvidia-drivers
+# with GLX backend for some users.
+#
+# xrender-sync-fence = false
+
+# GLX backend: Use specified GLSL fragment shader for rendering window contents.
+# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl`
+# in the source tree for examples.
+#
+# glx-fshader-win = ''
+
+# Force all windows to be painted with blending. Useful if you
+# have a glx-fshader-win that could turn opaque pixels transparent.
+#
+# force-win-blend = false
+
+# Do not use EWMH to detect fullscreen windows.
+# Reverts to checking if a window is fullscreen based only on its size and coordinates.
+#
+# no-ewmh-fullscreen = false
+
+# Dimming bright windows so their brightness doesn't exceed this set value.
+# Brightness of a window is estimated by averaging all pixels in the window,
+# so this could comes with a performance hit.
+# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
+#
+# max-brightness = 1.0
+
+# Make transparent windows clip other windows like non-transparent windows do,
+# instead of blending on top of them.
+#
+# transparent-clipping = false
+
+# Set the log level. Possible values are:
+# "trace", "debug", "info", "warn", "error"
+# in increasing level of importance. Case doesn't matter.
+# If using the "TRACE" log level, it's better to log into a file
+# using *--log-file*, since it can generate a huge stream of logs.
+#
+# log-level = "debug"
+log-level = "info";
+
+# Set the log file.
+# If *--log-file* is never specified, logs will be written to stderr.
+# Otherwise, logs will to written to the given file, though some of the early
+# logs might still be written to the stderr.
+# When setting this option from the config file, it is recommended to use an absolute path.
+#
+# log-file = '/path/to/your/log/file'
+
+# Show all X errors (for debugging)
+# show-all-xerrors = false
+
+# Write process ID to a file.
+# write-pid-path = '/path/to/your/log/file'
+
+# Window type settings
+#
+# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard:
+# "unknown", "desktop", "dock", "toolbar", "menu", "utility",
+# "splash", "dialog", "normal", "dropdown_menu", "popup_menu",
+# "tooltip", "notification", "combo", and "dnd".
+#
+# Following per window-type options are available: ::
+#
+# fade, shadow:::
+# Controls window-type-specific shadow and fade settings.
+#
+# opacity:::
+# Controls default opacity of the window type.
+#
+# focus:::
+# Controls whether the window of this type is to be always considered focused.
+# (By default, all window types except "normal" and "dialog" has this on.)
+#
+# full-shadow:::
+# Controls whether shadow is drawn under the parts of the window that you
+# normally won't be able to see. Useful when the window has parts of it
+# transparent, and you want shadows in those areas.
+#
+# redir-ignore:::
+# Controls whether this type of windows should cause screen to become
+# redirected again after been unredirected. If you have unredir-if-possible
+# set, and doesn't want certain window to cause unnecessary screen redirection,
+# you can set this to `true`.
+#
+wintypes:
+{
+ normal = { fade = false; shadow = false; }
+ tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
+ dock = { shadow = false; }
+ dnd = { shadow = false; }
+ popup_menu = { opacity = 0.8; }
+ dropdown_menu = { opacity = 0.8; }
+};
diff --git a/.config/polybar/config.ini b/.config/polybar/config.ini
new file mode 100644
index 0000000..56dfbc0
--- /dev/null
+++ b/.config/polybar/config.ini
@@ -0,0 +1,180 @@
+;==========================================================
+;
+;
+; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗
+; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗
+; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝
+; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗
+; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║
+; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝
+;
+;
+; To learn more about how to configure Polybar
+; go to https://github.com/polybar/polybar
+;
+; The README contains a lot of information
+;
+;==========================================================
+
+[colors]
+background = #24283B
+background-alt = #373B41
+foreground = #f9f8fe
+primary = #BB9AF7
+secondary = #8ABEB7
+alert = #A54242
+disabled = #707880
+
+[bar/example]
+width = 100%
+height = 23pt
+
+radius = 12
+
+; dpi = 96
+
+background = ${colors.background}
+foreground = ${colors.foreground}
+
+line-size = 3pt
+
+border-size = 0pt
+border-color = #00000000
+
+padding-left = 2
+padding-right = 2
+
+module-margin = 1
+
+separator = |
+separator-foreground = ${colors.disabled}
+
+font-0 = RobotoMono Nerd Font Mono:size=10;2
+font-1 = FontAwesome:style=Regular:pixelsize=10;2
+
+modules-left = date
+modules-right = pulseaudio xkeyboard updates-pacman-aurhelper weather memory
+modules-center = xworkspaces
+
+cursor-click = pointer
+cursor-scroll = ns-resize
+
+enable-ipc = true
+
+; tray-position = right
+
+; wm-restack = generic
+wm-restack = bspwm
+; wm-restack = i3
+
+; override-redirect = true
+
+
+[module/xworkspaces]
+type = internal/xworkspaces
+
+label-active = %name%
+label-active-background = ${colors.background-alt}
+label-active-underline= ${colors.primary}
+label-active-padding = 2
+
+label-occupied = %name%
+label-occupied-padding = 2
+
+label-urgent = %name%
+label-urgent-background = ${colors.alert}
+label-urgent-padding = 2
+
+label-empty = %name%
+label-empty-foreground = ${colors.disabled}
+label-empty-padding = 2
+
+[module/weather]
+type = custom/script
+exec = ~/.config/polybar/scripts/weather/wthr
+interval = 600
+
+[module/updates-pacman-aurhelper]
+type = custom/script
+exec = ~/.config/polybar/scripts/updates-pacman-aurhelper.sh
+interval = 7200
+
+
+[module/xwindow]
+type = internal/xwindow
+label = %title:0:60:...%
+
+[module/filesystem]
+type = internal/fs
+interval = 25
+
+mount-0 = /
+
+label-mounted = %{F#F0C674}%mountpoint%%{F-} %percentage_used%%
+
+label-unmounted = %mountpoint% not mounted
+label-unmounted-foreground = ${colors.disabled}
+
+[module/pulseaudio]
+type = internal/pulseaudio
+
+format-volume-prefix = " 墳 "
+format-volume-prefix-foreground = ${colors.primary}
+format-volume =
+
+label-volume = %percentage%%
+
+label-muted = muted
+label-muted-foreground = ${colors.disabled}
+
+[module/xkeyboard]
+type = internal/xkeyboard
+blacklist-0 = num lock
+
+label-layout = %layout%
+label-layout-foreground = ${colors.primary}
+
+label-indicator-padding = 2
+label-indicator-margin = 1
+label-indicator-foreground = ${colors.background}
+label-indicator-background = ${colors.secondary}
+
+[module/memory]
+type = internal/memory
+interval = 2
+format-prefix = " "
+format-prefix-foreground = ${colors.primary}
+label = %percentage_used:2%%
+
+[module/cpu]
+type = internal/cpu
+interval = 2
+format-prefix = "cpu "
+format-prefix-foreground = ${colors.primary}
+label = %percentage:2%%
+
+[network-base]
+type = internal/network
+interval = 5
+format-connected =
+format-disconnected =
+label-disconnected = %{F#F0C674}%ifname%%{F#707880} disconnected
+
+[module/wlan]
+inherit = network-base
+interface-type = wireless
+label-connected = %{F#2AC3DE} %{F-}%essid%
+
+[module/date]
+type = internal/date
+interval = 1
+
+date = %a,%b %d %I:%M %p
+label-foreground = #41A6B5
+;${colors.primary}
+
+[settings]
+screenchange-reload = true
+pseudo-transparency = true
+
+; vim:ft=dosini
diff --git a/.config/polybar/scripts/updates-pacman-aurhelper.sh b/.config/polybar/scripts/updates-pacman-aurhelper.sh
new file mode 100755
index 0000000..d0a45b1
--- /dev/null
+++ b/.config/polybar/scripts/updates-pacman-aurhelper.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+if ! updates_arch=$(checkupdates 2> /dev/null | wc -l ); then
+ updates_arch=0
+fi
+
+date=$(grep 'pacman -Suy' /var/log/pacman.log | tail -1 | tr -d '[' | cut -f 1 -d 'T')
+
+if ! updates_aur=$(paru -Qum 2> /dev/null | wc -l); then
+# if ! updates_aur=$(cower -u 2> /dev/null | wc -l); then
+# if ! updates_aur=$(trizen -Su --aur --quiet | wc -l); then
+# if ! updates_aur=$(pikaur -Qua 2> /dev/null | wc -l); then
+# if ! updates_aur=$(rua upgrade --printonly 2> /dev/null | wc -l); then
+ updates_aur=0
+fi
+
+updates=$((updates_arch + updates_aur))
+
+if [ "$updates" -gt 0 ]; then
+ echo "%{F#7dcfff} $updates $date%{F-}"
+else
+ echo ""
+fi
diff --git a/.config/polybar/scripts/weather/.env.dist b/.config/polybar/scripts/weather/.env.dist
new file mode 100644
index 0000000..69510c7
--- /dev/null
+++ b/.config/polybar/scripts/weather/.env.dist
@@ -0,0 +1,2 @@
+address = ""
+app_id = ""
diff --git a/.config/polybar/scripts/weather/config.py b/.config/polybar/scripts/weather/config.py
new file mode 100644
index 0000000..86f26a6
--- /dev/null
+++ b/.config/polybar/scripts/weather/config.py
@@ -0,0 +1,31 @@
+from typing import NamedTuple
+from enum import Enum
+
+from environs import Env
+
+env = Env()
+env.read_env()
+
+# app_id:
+app_id = env.str("app_id")
+address = env.str("address")
+
+class Color(NamedTuple):
+ hcolor:str
+ start_temp:int
+ end_temp:int
+
+class Colors(Enum):
+ blue1 = Color("#7aa2f7",-20,10)
+ green1 = Color("#9ECE6A",10,21)
+ red1 = Color("#dc143c",22,50)
+
+# Used nerd fonts icons
+class WeatherIcons(Enum):
+ Thunderstorm = ""
+ Rain = ""
+ Snow = ""
+ Fog = ""
+ Clouds = ""
+ Clear = ""
+ Unknown = "NOT FOUND ICON"
diff --git a/.config/polybar/scripts/weather/exceptions.py b/.config/polybar/scripts/weather/exceptions.py
new file mode 100644
index 0000000..d05be07
--- /dev/null
+++ b/.config/polybar/scripts/weather/exceptions.py
@@ -0,0 +1,2 @@
+class ApiServiceError(Exception):
+ """Service Error"""
diff --git a/.config/polybar/scripts/weather/formatter.py b/.config/polybar/scripts/weather/formatter.py
new file mode 100644
index 0000000..dcc02b8
--- /dev/null
+++ b/.config/polybar/scripts/weather/formatter.py
@@ -0,0 +1,22 @@
+from config import WeatherIcons,Colors
+from weather import Weather
+from config import Color
+
+def _select_icon(weather_status:str) -> str:
+ for icon in WeatherIcons:
+ if icon.name == weather_status:
+ return icon.value
+ return WeatherIcons.Other.value
+
+def _select_color(temp:int) -> Color:
+ for color in Colors:
+ if (color.value.end_temp >= temp >= color.value.start_temp):
+ return color.value
+ return Color("#00000",-1,-1)
+
+def format_weather(weather:Weather) -> str:
+ color = _select_color(weather.temp)
+ icon = _select_icon(weather.weatherType)
+ return "%{{F{0}}} {1} {2}°C %{{F-}}".format(
+ color.hcolor,icon,round(weather.temp)
+ )
diff --git a/.config/polybar/scripts/weather/location.py b/.config/polybar/scripts/weather/location.py
new file mode 100644
index 0000000..2b598bf
--- /dev/null
+++ b/.config/polybar/scripts/weather/location.py
@@ -0,0 +1,26 @@
+from geopy.geocoders import Nominatim
+from config import address
+
+from exceptions import ApiServiceError
+
+from typing import NamedTuple
+class Location(NamedTuple):
+ lat:float
+ lon:float
+
+def __get_location_response() -> dict:
+ try:
+ app = Nominatim(user_agent="UserAgent")
+ return app.geocode(address).raw
+ except:
+ raise ApiServiceError
+
+def _parse_location_reponse(loc_dict:dict) -> Location:
+ return Location(
+ lat=loc_dict["lat"],
+ lon=loc_dict["lon"],
+ )
+
+def get_location() -> Location:
+ response_json = __get_location_response()
+ return _parse_location_reponse(response_json)
diff --git a/.config/polybar/scripts/weather/weather.py b/.config/polybar/scripts/weather/weather.py
new file mode 100644
index 0000000..0c9633b
--- /dev/null
+++ b/.config/polybar/scripts/weather/weather.py
@@ -0,0 +1,46 @@
+import json
+from json.decoder import JSONDecodeError
+
+import urllib.request
+from urllib.error import URLError
+
+from exceptions import ApiServiceError
+
+from config import app_id
+
+from location import Location
+from typing import NamedTuple
+
+Celsius = int
+class Weather(NamedTuple):
+ temp:Celsius
+ weatherType:str
+ windSpeed:int
+
+def get_weather(loc:Location) -> Weather:
+ weather_response = _get_weather_response(loc)
+ return _parse_weather_response(weather_response)
+
+def _get_weather_response(loc:Location) -> str:
+ url = (
+ "https://api.openweathermap.org/data/2.5/weather?"
+ "lat={latitude}&lon={longitude}"
+ "&appid=" + app_id + "&units=metric"
+ )
+
+ url = url.format(latitude=loc.lat,longitude=loc.lon)
+ try:
+ return urllib.request.urlopen(url).read()
+ except URLError:
+ raise ApiServiceError
+
+def _parse_weather_response(response:str) -> Weather:
+ try:
+ weather_dict = json.loads(response)
+ except JSONDecodeError:
+ raise ApiServiceError
+ return Weather(
+ temp = round(weather_dict["main"]["temp"]),
+ weatherType = weather_dict["weather"][0]["main"],
+ windSpeed = weather_dict["wind"]["speed"],
+ )
diff --git a/.config/polybar/scripts/weather/wthr b/.config/polybar/scripts/weather/wthr
new file mode 100755
index 0000000..c775042
--- /dev/null
+++ b/.config/polybar/scripts/weather/wthr
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+
+from location import get_location
+from weather import get_weather
+
+from formatter import format_weather
+import exceptions
+
+def main() -> None:
+ try:
+ loc = get_location()
+ weather = get_weather(loc)
+ except exceptions.ApiServiceError:
+ print("%{F#f7768e}API Service ERROR%{F-}")
+ return
+ print(format_weather(weather))
+
+if __name__ == '__main__':
+ main()
diff --git a/.config/pyright/pyrightconfig.json b/.config/pyright/pyrightconfig.json
new file mode 100644
index 0000000..1eab36d
--- /dev/null
+++ b/.config/pyright/pyrightconfig.json
@@ -0,0 +1,5 @@
+{
+ "venv":"env",
+ "venvPath":"",
+ "reportSelfClsParameterName":false
+}
diff --git a/.config/qalculate/qalc.cfg b/.config/qalculate/qalc.cfg
new file mode 100644
index 0000000..666cd0b
--- /dev/null
+++ b/.config/qalculate/qalc.cfg
@@ -0,0 +1,80 @@
+
+[General]
+version=4.2.0
+save_mode_on_exit=1
+save_definitions_on_exit=1
+ignore_locale=0
+colorize=1
+auto_update_exchange_rates=-1
+spacious=1
+vertical_space=1
+excessive_parenthesis=0
+short_multiplication=1
+use_unicode_signs=1
+lower_case_numbers=0
+lower_case_e=0
+imaginary_j=0
+base_display=1
+twos_complement=1
+hexadecimal_twos_complement=0
+spell_out_logical_operators=1
+digit_grouping=0
+decimal_comma=-1
+dot_as_separator=-1
+comma_as_separator=0
+multiplication_sign=2
+division_sign=0
+
+[Mode]
+min_deci=0
+use_min_deci=0
+max_deci=2
+use_max_deci=0
+precision=10
+interval_arithmetic=1
+interval_display=0
+min_exp=-1
+negative_exponents=0
+sort_minus_last=1
+number_fraction_format=-1
+complex_number_form=0
+use_prefixes=1
+use_prefixes_for_all_units=0
+use_prefixes_for_currencies=0
+use_binary_prefixes=0
+abbreviate_names=1
+all_prefixes_enabled=0
+denominator_prefix_enabled=1
+place_units_separately=1
+auto_post_conversion=3
+mixed_units_conversion=3
+local_currency_conversion=1
+number_base=10
+number_base_expression=10
+read_precision=0
+assume_denominators_nonzero=1
+warn_about_denominators_assumed_nonzero=1
+structuring=1
+angle_unit=1
+caret_as_xor=0
+functions_enabled=1
+variables_enabled=1
+calculate_variables=1
+calculate_functions=1
+variable_units_enabled=1
+sync_units=1
+unknownvariables_enabled=0
+units_enabled=1
+allow_complex=1
+allow_infinite=1
+indicate_infinite_series=0
+show_ending_zeroes=1
+rounding_mode=0
+approximation=-1
+interval_calculation=1
+in_rpn_mode=0
+rpn_syntax=0
+limit_implicit_multiplication=0
+parsing_mode=0
+default_assumption_type=4
+default_assumption_sign=0
diff --git a/.config/qalculate/qalc.history b/.config/qalculate/qalc.history
new file mode 100644
index 0000000..8214903
--- /dev/null
+++ b/.config/qalculate/qalc.history
@@ -0,0 +1,30 @@
+ls
+1 USD to UAH
+500 UAH to USD
+65/5
+24+48
+72/4
+55+56
+111-333
+-222
+-222/4
+333-56
+111-29
+111-28
+55-83
+(935+3*1)/18
+(935+3*2)/18
+(935+3*3)/18
+(935+3*4)/18
+(935+3*5)/18
+(935+3*6)/18
+29-3*1
+29-3*2
+29-3*3
+29-3*4
+29-3*5
+29-3*6
+29-3*7
+29-3*8
+29-3*9
+29-3*10
diff --git a/.config/qalculate/qalc.history-00938.tmp b/.config/qalculate/qalc.history-00938.tmp
new file mode 100644
index 0000000..e69de29
diff --git a/.config/qalculate/qalc.history-23524.tmp b/.config/qalculate/qalc.history-23524.tmp
new file mode 100644
index 0000000..e69de29
diff --git a/.config/ranger/plugins/__init__.py b/.config/ranger/plugins/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/.config/ranger/rc.conf b/.config/ranger/rc.conf
new file mode 100644
index 0000000..410e54b
--- /dev/null
+++ b/.config/ranger/rc.conf
@@ -0,0 +1,4 @@
+set preview_images true
+set preview_images_method kitty
+
+default_linemode devicons
diff --git a/.config/ranger/rifle.conf b/.config/ranger/rifle.conf
new file mode 100644
index 0000000..fcc9616
--- /dev/null
+++ b/.config/ranger/rifle.conf
@@ -0,0 +1,2 @@
+mime ^text, label editor = $EDITOR -- "$@"
+mime ^text, label pager = "$PAGER" -- "$@"
diff --git a/.config/rofi/config.rasi b/.config/rofi/config.rasi
new file mode 100644
index 0000000..42ce2cc
--- /dev/null
+++ b/.config/rofi/config.rasi
@@ -0,0 +1,9 @@
+@theme "./nord.rasi"
+
+configuration {
+ font: "Iosevka 13" ;
+ terminal: "kitty";
+}
+
+
+element-icon { size: 2ch ; }
diff --git a/.config/rofi/nord.rasi b/.config/rofi/nord.rasi
new file mode 100644
index 0000000..f148acc
--- /dev/null
+++ b/.config/rofi/nord.rasi
@@ -0,0 +1,93 @@
+/*
+ * ROFI color theme
+ *
+ * Based on Something Found in the Internet
+ *
+ * User: Contributors
+ * Copyright: *!
+ */
+
+configuration {
+ display-run: " ";
+ display-drun: " ";
+ display-window: " ";
+ drun-display-format: "{icon} {name}";
+ font: "JetBrainsMono Nerd Font Medium 10";
+ modi: "window,run,drun";
+ show-icons: true;
+}
+
+* {
+ polar-1: #2E3440;
+ polar-2: #3B4252;
+ polar-3: #434C5E;
+ polar-4: #4C566A;
+
+ snow-1: #D8DEE9;
+ snow-2: #E5E9F0;
+ snow-3: #ECEFF4;
+
+ frost-1: #8FBCBB;
+ frost-2: #88C0D0;
+ frost-3: #81A1C1;
+ frost-4: #5E81AC;
+
+ aurora-1: #BF616A;
+ aurora-2: #D08770;
+ aurora-3: #EBCB8B;
+ aurora-4: #A3BE8C;
+ aurora-5: #B48EAD;
+
+ background-color: @polar-1;
+
+ border: 0;
+ margin: 0;
+ padding: 0;
+ spacing: 0;
+}
+
+element {
+ padding: 12;
+ text-color: @frost-3;
+}
+
+element selected {
+ text-color: @aurora-3;
+}
+
+element-text {
+ padding: 2;
+ background-color: inherit;
+ text-color: inherit;
+}
+
+entry {
+ background-color: @polar-2;
+ padding: 12 0 12 3;
+ text-color: @frost-1;
+}
+
+inputbar {
+ children: [prompt, entry];
+}
+
+listview {
+ columns: 1;
+ lines: 8;
+}
+
+mainbox {
+ children: [inputbar, listview];
+}
+
+prompt {
+ background-color: @polar-2;
+ enabled: true;
+ font: "FontAwesome 12";
+ padding: 12 0 0 12;
+ text-color: @frost-1;
+}
+
+window {
+ transparency: "real";
+}
diff --git a/.config/scripts/jazz.sh b/.config/scripts/jazz.sh
new file mode 100755
index 0000000..3758119
--- /dev/null
+++ b/.config/scripts/jazz.sh
@@ -0,0 +1,3 @@
+url="https://youtu.be/XnzxEGLaPxs"
+
+pkill -f $url || mpv --shuffle --no-video "$url"
diff --git a/.config/scripts/lofi.sh b/.config/scripts/lofi.sh
new file mode 100755
index 0000000..934754c
--- /dev/null
+++ b/.config/scripts/lofi.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+url="https://youtu.be/5qap5aO4i9A"
+
+pkill -f $url || mpv --shuffle --no-video "$url"
diff --git a/.config/sxhkd/sxhkdrc b/.config/sxhkd/sxhkdrc
new file mode 100644
index 0000000..6623d67
--- /dev/null
+++ b/.config/sxhkd/sxhkdrc
@@ -0,0 +1,200 @@
+# wm independent hotkeys
+
+# make sxhkd reload its configuration files:
+
+# Default keybinds
+# -------------------------------------------------------
+
+super + e
+ pkill -USR1 -x sxhkd
+
+# quit/restart bspwm
+super + alt + {q,r}
+ bspc {quit,wm -r}
+
+# close and kill
+super + {shift+c,shift + w}
+ bspc node -{c,k}
+
+# alternate between the tiled and monocle layout
+super + m
+ bspc desktop -l next
+
+# send the newest marked node to the newest preselected node
+super + y
+ bspc node newest.marked.local -n newest.!automatic.local
+
+# swap the current node and the biggest window
+super + g
+ bspc node -s biggest.window
+# -------------------------------------------------------
+
+# Start programs
+# --------------------------------------------------------
+super + Return
+ kitty
+
+super + shift + n
+ kitty -e notetaker
+
+super + n
+ kitty -e ranger
+
+super + shift + t
+ kotatogram-desktop
+
+super + shift + b
+ librewolf
+
+super + shift + s
+ /home/q/bin/screenrecord
+
+super + c
+ rofi -show calc -modi calc -no-show-match -no-sort
+
+super + alt + l
+ /home/q/.config/scripts/lofi.sh
+
+super + alt + j
+ /home/q/.config/scripts/jazz.sh
+
+super + d
+ rofi -show drun -show-icons -modi drun
+
+Print
+ flameshot gui
+
+{super+alt+t}
+ kotatogram-desktop
+
+{F9,super+alt+f}
+ librewolf
+
+super + x
+ betterlockscreen -l dimblur
+
+# --------------------------------------------------------
+
+
+# Volume control
+# ----------------------------------------------------------
+
+# Down
+{F2,XF86AudioLowerVolume}
+ pactl set-sink-volume @DEFAULT_SINK@ -10%
+
+# Up
+{F3,XF86AudioRaiseVolume}}
+ pactl set-sink-volume @DEFAULT_SINK@ +10%
+
+# Mute
+{F1,F86AudioMute}
+ pactl set-sink-mute @DEFAULT_SINK@ toggle
+
+# Mute microfon
+{F9,XF86AudioMicMute}
+ pactl set-source-mute @DEFAULT_SOURCE@ toggle
+
+# --------------------------------------------------------------
+
+# Brigness screen
+# --------------------------------------------------------------
+
+{F4,XF86MonBrightnessDown}
+ light -U 10
+
+{F5, XF86MonBrightnessUp}
+ light -A 10
+
+# --------------------------------------------------------------
+
+# state/flags
+# ----------------------------------------------------------------
+# t - Taylind
+# s - Normal
+# f - floating
+# set the window state
+super + {t,shift + t,s,f}
+ bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
+
+# set the node flags
+super + ctrl + {m,x,y,z}
+ bspc node -g {marked,locked,sticky,private}
+
+# ----------------------------------------------------------------
+
+
+# focus/swap
+# -----------------------------------------------------------------
+
+# focus the node in the given direction
+super + {_,shift + }{h,j,k,l}
+ bspc node -{f,s} {west,south,north,east}
+
+# focus the node for the given path jump
+super + {p,b,comma,period}
+ bspc node -f @{parent,brother,first,second}
+
+# focus the next/previous window in the current desktop
+super + {_,shift + }c
+ bspc node -f {next,prev}.local.!hidden.window
+
+# focus the next/previous desktop in the current monitor
+super + bracket{left,right}
+ bspc desktop -f {prev,next}.local
+
+# focus the last node/desktop
+super + {grave,Tab}
+ bspc {node,desktop} -f last
+
+# focus the older or newer node in the focus history
+super + {o,i}
+ bspc wm -h off; \
+ bspc node {older,newer} -f; \
+ bspc wm -h on
+
+# focus or send to the given desktop
+super + {_,shift + }{1-9,0}
+ bspc {desktop -f,node -d} '^{1-9,10}'
+
+# -----------------------------------------------------------------
+
+
+# preselect
+# ------------------------------------------------------------------
+
+# preselect the direction
+super + ctrl + {h,j,k,l}
+ bspc node -p {west,south,north,east}
+
+# preselect the ratio
+super + ctrl + {1-9}
+ bspc node -o 0.{1-9}
+
+# cancel the preselection for the focused node
+super + ctrl + space
+ bspc node -p cancel
+
+# cancel the preselection for the focused desktop
+super + ctrl + shift + space
+ bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
+
+# ------------------------------------------------------------------
+
+
+# move/resize
+# -------------------------------------------------------------------
+
+# expand a window by moving one of its side outward
+super + alt + {h,j,k,l}
+ bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
+
+# contract a window by moving one of its side inward
+super + alt + shift + {h,j,k,l}
+ bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
+
+# move a floating window
+super + {Left,Down,Up,Right}
+ bspc node -v {-20 0,0 20,0 -20,20 0}
+
+# -------------------------------------------------------------------
diff --git a/.config/systemd/user/default.target.wants/pipewire-pulse.service b/.config/systemd/user/default.target.wants/pipewire-pulse.service
new file mode 120000
index 0000000..f631f69
--- /dev/null
+++ b/.config/systemd/user/default.target.wants/pipewire-pulse.service
@@ -0,0 +1 @@
+/usr/lib/systemd/user/pipewire-pulse.service
\ No newline at end of file
diff --git a/.config/systemd/user/default.target.wants/pipewire.service b/.config/systemd/user/default.target.wants/pipewire.service
new file mode 120000
index 0000000..47f171d
--- /dev/null
+++ b/.config/systemd/user/default.target.wants/pipewire.service
@@ -0,0 +1 @@
+/usr/lib/systemd/user/pipewire.service
\ No newline at end of file
diff --git a/.config/systemd/user/default.target.wants/ssh-agent.service b/.config/systemd/user/default.target.wants/ssh-agent.service
new file mode 120000
index 0000000..121fcfb
--- /dev/null
+++ b/.config/systemd/user/default.target.wants/ssh-agent.service
@@ -0,0 +1 @@
+/home/q/.config/systemd/user/ssh-agent.service
\ No newline at end of file
diff --git a/.config/systemd/user/jupyter.service b/.config/systemd/user/jupyter.service
new file mode 100644
index 0000000..7d9d777
--- /dev/null
+++ b/.config/systemd/user/jupyter.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Jupyter notebook server
+After=network.target
+StartLimitIntervalSec=0
+
+[Service]
+Type=simple
+Restart=always
+RestartSec=1
+ExecStart=/usr/bin/jupyter lab
+
+[Install]
+WantedBy=multi-user.target
diff --git a/.config/systemd/user/sockets.target.wants/pipewire-pulse.socket b/.config/systemd/user/sockets.target.wants/pipewire-pulse.socket
new file mode 120000
index 0000000..45f6209
--- /dev/null
+++ b/.config/systemd/user/sockets.target.wants/pipewire-pulse.socket
@@ -0,0 +1 @@
+/usr/lib/systemd/user/pipewire-pulse.socket
\ No newline at end of file
diff --git a/.config/systemd/user/sockets.target.wants/pipewire.socket b/.config/systemd/user/sockets.target.wants/pipewire.socket
new file mode 120000
index 0000000..d871d81
--- /dev/null
+++ b/.config/systemd/user/sockets.target.wants/pipewire.socket
@@ -0,0 +1 @@
+/usr/lib/systemd/user/pipewire.socket
\ No newline at end of file
diff --git a/.config/systemd/user/ssh-agent.service b/.config/systemd/user/ssh-agent.service
new file mode 100644
index 0000000..b346c06
--- /dev/null
+++ b/.config/systemd/user/ssh-agent.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=SSH key agent
+
+[Service]
+Type=simple
+Enviroment=SSH_AUTH_SOCK=%t/ssh-agent.socket
+ExecStart=/usr/bin/ssh-agent -D -a $SSH_AUTH_SOCK
+
+[Install]
+WantedBy=default.target
diff --git a/.config/systemd/user/syncthing.service b/.config/systemd/user/syncthing.service
new file mode 100644
index 0000000..d1b68b5
--- /dev/null
+++ b/.config/systemd/user/syncthing.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Syncthing - Open Source Continuous File Synchronization
+Documentation=man:syncthing(1)
+StartLimitIntervalSec=60
+StartLimitBurst=4
+
+[Service]
+ExecStart=/usr/bin/syncthing serve --no-browser --no-restart --logflags=0
+Restart=on-failure
+RestartSec=1
+SuccessExitStatus=3 4
+RestartForceExitStatus=3 4
+
+# Hardening
+SystemCallArchitectures=native
+MemoryDenyWriteExecute=true
+NoNewPrivileges=true
+
+[Install]
+WantedBy=default.target
diff --git a/.config/systemd/user/telegram-bot-api.service b/.config/systemd/user/telegram-bot-api.service
new file mode 100644
index 0000000..1fe639d
--- /dev/null
+++ b/.config/systemd/user/telegram-bot-api.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Telegram Bot API server
+After=network-online.target
+
+[Service]
+Type=simple
+EnvironmentFile=$HOME/.config/telegram-bot-api/config.env
+WorkingDirectory=~
+ExecStart=telegram-bot-api --api-id=${api_id} --api-hash=${api_hash} --local --http-stat-ip-address=${ip} --http-port=${port} --dir=$HOME/.config/telegram-bot-api/
+
+[Install]
+WantedBy=multi-user.target
diff --git a/.config/telegram-bot-api/config.env b/.config/telegram-bot-api/config.env
new file mode 100644
index 0000000..13adf4b
--- /dev/null
+++ b/.config/telegram-bot-api/config.env
@@ -0,0 +1,4 @@
+ip=127.0.0.1
+port=5326
+api_id=123
+api_hash=abcde123
diff --git a/.config/zsh/alias.zsh b/.config/zsh/alias.zsh
new file mode 100644
index 0000000..bbae1b0
--- /dev/null
+++ b/.config/zsh/alias.zsh
@@ -0,0 +1,25 @@
+alias v="vim"
+alias nv="nvim"
+
+alias gc="git clone"
+alias ga="git add"
+alias gt="git status"
+
+alias gst="git status"
+alias gdf="git diff"
+
+alias ls="lsd"
+alias la="lsd -a"
+alias ll="lsd -l"
+alias l="lsd -la"
+
+alias cls=clear
+
+alias tree="tree -CL 3"
+
+alias sz="$HOME/.zshrc"
+
+alias wget=wget --hsts-file="$XDG_DATA_HOME/wget-hsts"
+
+alias history="fc -l 1"
+alias histclr="echo ' ' > ~/.config/zsh/history"
diff --git a/.config/zsh/history b/.config/zsh/history
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/.config/zsh/history
@@ -0,0 +1 @@
+
diff --git a/.config/zsh/keybinds.zsh b/.config/zsh/keybinds.zsh
new file mode 100644
index 0000000..c47293e
--- /dev/null
+++ b/.config/zsh/keybinds.zsh
@@ -0,0 +1,2 @@
+bindkey '^A' beginning-of-line
+# bindkey '^I' end-of-line
diff --git a/.config/zsh/prompt.zsh b/.config/zsh/prompt.zsh
new file mode 100644
index 0000000..07f70a2
--- /dev/null
+++ b/.config/zsh/prompt.zsh
@@ -0,0 +1,12 @@
+function git_branch_name() {
+ branch=$(git symbolic-ref HEAD 2> /dev/null | awk 'BEGIN{FS="/"} {print $NF}')
+ if [[ $branch == "" ]];then
+ :
+ else
+ echo '- ('$branch')'
+ fi
+}
+
+setopt prompt_subst
+
+PROMPT="%F{red}%n%f@%F{blue}%m%f %F{green}%~%f >> "
diff --git a/.config/zsh/zshenv.zsh b/.config/zsh/zshenv.zsh
new file mode 100644
index 0000000..7e62351
--- /dev/null
+++ b/.config/zsh/zshenv.zsh
@@ -0,0 +1,21 @@
+export EDITOR=nvim
+
+export XDG_CONFIG_HOME="$HOME/.config"
+export XDG_CACHE_HOME="$HOME/.cache"
+export XDG_DATA_HOME="$HOME/.local/share"
+export XDG_STATE_HOME="$HOME/.local/state"
+
+export HISTSIZE=100000
+export SAVEHIST=100000
+export HISTFILE="$XDG_CONFIG_HOME/zsh/history"
+
+export GNUPGHOME="$XDG_DATA_HOME/gnupg"
+export CARGO_HOME="$XDG_DATA_HOME/cargo"
+
+export PYENV_ROOT="$XDG_DATA_HOME/pyenv"
+export IPYTHONDIR="${XDG_CONFIG_HOME}/ipython"
+export PYTHONSTARTUP="${XDG_CONFIG_HOME}/python/pythonrc"
+export JUPYTER_CONFIG_DIR="$XDG_CONFIG_HOME/jupyter"
+
+export GTK2_RC_FILES="${XDG_CONFIG_HOME}/gtk-2.0/gtkrc"
+export NPM_CONFIG_USERCONFIG="${XDG_CONFIG_HOME}/npm/npmrc"
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..becb4ee
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+.config/polybar/scripts/weather/__pycache__/
+.config/polybar/scripts/weather/.env
diff --git a/.xinitrc b/.xinitrc
new file mode 100644
index 0000000..b92e98f
--- /dev/null
+++ b/.xinitrc
@@ -0,0 +1 @@
+exec dbus-launch bspwm
diff --git a/.zshrc b/.zshrc
new file mode 100755
index 0000000..dd8a1c8
--- /dev/null
+++ b/.zshrc
@@ -0,0 +1,10 @@
+source "$HOME/.config/zsh/zshenv.zsh"
+
+zshfiles=("alias" "prompt" "keybinds")
+for zshfile in $zshfiles
+do
+ source "$zshconfigs/${zshfile}.zsh"
+done
+
+path+=('/home/q/bin')
+export PATH
diff --git a/00-keyboard.conf b/00-keyboard.conf
new file mode 100644
index 0000000..9707866
--- /dev/null
+++ b/00-keyboard.conf
@@ -0,0 +1,7 @@
+Section "InputClass"
+ Identifier "system-keyboard"
+ MatchIsKeyboard "on"
+ Option "XkbLayout" "us,ru,ua"
+ Option "XkbModel" "pc104"
+ Option "XkbOptions" "grp:caps_toggle"
+EndSection
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..0350cdb
--- /dev/null
+++ b/README.md
@@ -0,0 +1,10 @@
+# Dotfiles
+
+- **wm:** [bspwm](https://github.com/hok7z/dotfiles/tree/main/.config/bspwm) & [sxhkd](https://github.com/hok7z/dotfiles/tree/main/.config/sxhkd)
+- **terminal:** [kitty](https://github.com/hok7z/dotfiles/tree/main/.config/kitty)
+- **editor:** [neovim](https://github.com/hok7z/dotfiles/tree/main/.config/nvim)
+- **status bar:** [polybar](https://github.com/hok7z/dotfiles/tree/main/.config/polybar)
+- **launcher:** [rofi](https://github.com/hok7z/dotfiles/tree/main/.config/rofi)
+- **shell:** [fish](https://github.com/hok7z/dotfiles/tree/main/.config/fish) | [zsh](https://github.com/hok7z/dotfiles/tree/main/.config/zsh)
+- [shell scripts](https://github.com/hok7z/dotfiles/tree/main/.config/scripts)
+- [user systemd units](https://github.com/hok7z/dotfiles/tree/main/.config/systemd/user)
diff --git a/bin/battery b/bin/battery
new file mode 100755
index 0000000..514d671
--- /dev/null
+++ b/bin/battery
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+for pid in $(pidof -x battery); do
+ if [ "$pid" != $$ ]; then
+ kill -9 "$pid"
+ fi
+done
+
+notify_icons="/home/q/.config/dunst/icons"
+
+# notify when below this percentage
+warning_level=50
+
+# how often to check battery status, in seconds
+check_interval=300
+
+while true; do
+ path_to_battery=$(upower -e | grep BAT)
+ battery_level=$(upower -i "$path_to_battery" | grep -E "percentage" | sed 's/[^0-9]//g')
+ discharging=$(upower -i "$path_to_battery" | grep -E "state" | grep -c "discharging")
+ time_to_empty=$(upower -i "$path_to_battery" | grep -E "time to empty" | sed 's/[^0-9,.]//g')
+
+ # check if battery is low and discharging
+ if [ "$battery_level" -lt "$warning_level" ] && [ "$discharging" -eq 1 ]
+ then
+ dunstify -a "Battery" \
+ "Low battery: ${battery_level}%" \
+ "Battery is low ($time_to_empty minuts left)" \
+ -r 100 \
+ -i "$notify_icons/battery-low.png"
+ mpv "/home/q/.config/alarm/low-battery-sound.mp3"
+ fi
+
+ sleep ${check_interval}s
+done
diff --git a/bin/clean-pacman-cache b/bin/clean-pacman-cache
new file mode 100755
index 0000000..4a56801
--- /dev/null
+++ b/bin/clean-pacman-cache
@@ -0,0 +1,4 @@
+#!/bin/sh
+rm -rf ~/.cache/paru/clone
+paru -Scc
+sudo pacman -Rns $(pacman -Qtdq)
diff --git a/bin/ewrap b/bin/ewrap
new file mode 100755
index 0000000..f0de43d
--- /dev/null
+++ b/bin/ewrap
@@ -0,0 +1,6 @@
+#!/usr/bin/env sh
+if [ -n "$TMUX" ] ; then
+ tmux split-window -h "nvim \"$*\""
+else
+ kitty -e "nvim \"$*\""
+fi
diff --git a/bin/newpyproject b/bin/newpyproject
new file mode 100755
index 0000000..857b381
--- /dev/null
+++ b/bin/newpyproject
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+if [ $# -lt 1 ];then
+ echo "Failed get arguments"
+ echo "./newpyproject [project name]"
+ exit
+fi
+
+mkdir $1
+cd $1
+git init
+poetry init
+cp ~/.config/pyright/pyrightconfig.json .
+venv_path=$(poetry env info -p)
+echo -e $(jq -r --arg path "$venv_path" '.venvPath |= $path' pyrightconfig.json) > pyrightconfig.json
diff --git a/bin/notetaker b/bin/notetaker
new file mode 100755
index 0000000..8ed0cbe
--- /dev/null
+++ b/bin/notetaker
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+noteFileName="$HOME/notes/note-$(date +%Y-%m-%d).md"
+
+if [ ! -f $noteFileName ];then
+ echo "Notes for $(date +%Y-%m-%d)" > $noteFileName
+fi
+
+nvim -c "norm Go" \
+ -c "norm Go## $(date +'%I:%m %p')" \
+ -c "norm G2o" \
+ -c "norm zz" \
+ -c "startinsert" $noteFileName
diff --git a/bin/screenrecord b/bin/screenrecord
new file mode 100755
index 0000000..2e59e73
--- /dev/null
+++ b/bin/screenrecord
@@ -0,0 +1,27 @@
+#!/bin/sh
+PID_FILE="/tmp/screencast.pid"
+SCREENCAST_FILE="$HOME/Video/$(date +'%Y-%m-%d_%H:%M').mp4"
+
+if [ -e $PID_FILE ]; then
+ notify-send "Screen record was ended"
+ kill -s INT "$(cat $PID_FILE)"
+ dragon-drop "$(cat /tmp/screencast.filename)"
+ rm -- "${PID_FILE}"
+else
+ geometry=$(slop -c 0.7411764705882353,0.5764705882352941,0.9764705882352941,0.1 \
+ -b 1.5 --color=255,0,255 -o -D -f "-video_size %wx%h -i :0.0+%x,%y")
+ #shellcheck disable=SC2181
+ if [ $? -eq 0 ] ;then
+ #shellcheck disable=SC2086
+ ffmpeg -y -thread_queue_size 65536 \
+ -f x11grab $geometry -i ~/.dummy.aac -c:a copy \
+ -c:v libx264 -vf "scale=force_original_aspect_ratio=decrease:force_divisible_by=2" -preset slow -crf 18 -pix_fmt yuv420p \
+ -fflags +bitexact -flags:v +bitexact -flags:a +bitexact \
+ "${SCREENCAST_FILE}" >/dev/null 2>/dev/null &
+ echo $! > $PID_FILE
+ echo "${SCREENCAST_FILE}" > /tmp/screencast.filename
+ notify-send "Screen recording started" -i "$HOME/.config/dunst/icons/record.png"
+ else
+ notify-send "Screen record was canceled" -i "$HOME/.config/dunst/icons/cancel.png"
+ fi
+fi
diff --git a/bookmarks-2022-09-29.json b/bookmarks-2022-09-29.json
new file mode 100644
index 0000000..59a9cfa
--- /dev/null
+++ b/bookmarks-2022-09-29.json
@@ -0,0 +1 @@
+{"guid":"root________","title":"","index":0,"dateAdded":1651474787528000,"lastModified":1664447425861000,"id":1,"typeCode":2,"type":"text/x-moz-place-container","root":"placesRoot","children":[{"guid":"menu________","title":"menu","index":0,"dateAdded":1651474787528000,"lastModified":1652963006963000,"id":2,"typeCode":2,"type":"text/x-moz-place-container","root":"bookmarksMenuFolder"},{"guid":"toolbar_____","title":"toolbar","index":1,"dateAdded":1651474787528000,"lastModified":1664447425861000,"id":3,"typeCode":2,"type":"text/x-moz-place-container","root":"toolbarFolder","children":[{"guid":"z-7nJFqmyG-Q","title":"","index":0,"dateAdded":1652962972361000,"lastModified":1652963509119000,"id":11,"typeCode":1,"iconUri":"https://github.githubassets.com/favicons/favicon.svg","type":"text/x-moz-place","uri":"https://github.com/"},{"guid":"yyaUz4mgirhU","title":"","index":1,"dateAdded":1653590288489000,"lastModified":1653590439839000,"id":12,"typeCode":1,"iconUri":"https://www.redditstatic.com/desktop2x/img/favicon/android-icon-192x192.png","type":"text/x-moz-place","uri":"https://www.reddit.com/"},{"guid":"34ODEP0_ea8X","title":"","index":2,"dateAdded":1657178972979000,"lastModified":1657180157743000,"id":21,"typeCode":1,"iconUri":"https://assets-global.website-files.com/62462834c60df92621c6b5be/62462834c60df92a78c6b6d9_panels-favicon-large.png","type":"text/x-moz-place","uri":"https://www.codewars.com/"},{"guid":"EuRNMWXcnOkF","title":"kraftwerk28","index":3,"dateAdded":1652035933306000,"lastModified":1653590367825000,"id":10,"typeCode":1,"iconUri":"https://github.githubassets.com/favicons/favicon.svg","type":"text/x-moz-place","uri":"https://github.com/kraftwerk28"},{"guid":"X1C5SoumYPxi","title":"Markdown Tables","index":4,"dateAdded":1659448947610000,"lastModified":1659448991190000,"id":26,"typeCode":1,"iconUri":"https://www.tablesgenerator.com/static/img/favicon.png","type":"text/x-moz-place","uri":"https://www.tablesgenerator.com/markdown_tables"},{"guid":"pyz-tpZBsOer","title":"DeepL Translate","index":5,"dateAdded":1657215030613000,"lastModified":1657215124942000,"id":22,"typeCode":1,"iconUri":"https://static.deepl.com/img/apple-touch-icon.png","type":"text/x-moz-place","uri":"https://www.deepl.com/translator#en/ru/"},{"guid":"CbMYiEStnQjy","title":"","index":6,"dateAdded":1657292836644000,"lastModified":1657292871931000,"id":23,"typeCode":1,"iconUri":"https://www.programmingfonts.org/favicon.png","type":"text/x-moz-place","uri":"https://www.programmingfonts.org/"},{"guid":"6ZXUc-VMLX8p","title":"Fonts Cheat Sheet","index":7,"dateAdded":1651517130253000,"lastModified":1652963424285000,"id":7,"typeCode":1,"iconUri":"https://www.nerdfonts.com/assets/img/favicon.ico","type":"text/x-moz-place","uri":"https://www.nerdfonts.com/cheat-sheet"},{"guid":"rZLMY5ND11Zt","title":"Server Configurations","index":8,"dateAdded":1653905180960000,"lastModified":1654097679856000,"id":13,"typeCode":1,"iconUri":"https://github.githubassets.com/favicons/favicon.svg","type":"text/x-moz-place","uri":"https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md"},{"guid":"2Mbvq4cD3v_w","title":"Awesome Neovim","index":9,"dateAdded":1653915948130000,"lastModified":1654098308895000,"id":14,"typeCode":1,"iconUri":"https://github.githubassets.com/favicons/favicon.svg","type":"text/x-moz-place","uri":"https://github.com/rockerBOO/awesome-neovim"},{"guid":"M6lcfTYglw_B","title":"Web Colors","index":10,"dateAdded":1654948710092000,"lastModified":1654948710092000,"id":16,"typeCode":1,"iconUri":"https://www.rapidtables.com/lib/favicon/apple-touch-icon.png","type":"text/x-moz-place","uri":"https://www.rapidtables.com/web/color/index.html"},{"guid":"1Vczs3mf1otP","title":"Add-ons for Firefox","index":11,"dateAdded":1655201896648000,"lastModified":1655201920094000,"id":20,"typeCode":1,"iconUri":"https://addons.mozilla.org/favicon.ico?v=2","type":"text/x-moz-place","uri":"https://addons.mozilla.org/en-US/firefox/"},{"guid":"JyQL4x2njH70","title":"Monkeytype","index":12,"dateAdded":1657293549776000,"lastModified":1657293549776000,"id":24,"typeCode":1,"iconUri":"https://monkeytype.com/images/favicon/apple-touch-icon.png","type":"text/x-moz-place","uri":"https://monkeytype.com/"}]},{"guid":"unfiled_____","title":"unfiled","index":3,"dateAdded":1651474787528000,"lastModified":1651474787528000,"id":5,"typeCode":2,"type":"text/x-moz-place-container","root":"unfiledBookmarksFolder"},{"guid":"mobile______","title":"mobile","index":4,"dateAdded":1651474787566000,"lastModified":1651474787566000,"id":6,"typeCode":2,"type":"text/x-moz-place-container","root":"mobileFolder"}]}
\ No newline at end of file
diff --git a/fonts/Fira Code Bold Nerd Font Complete Mono Windows Compatible.otf b/fonts/Fira Code Bold Nerd Font Complete Mono Windows Compatible.otf
new file mode 100644
index 0000000..6a7339a
Binary files /dev/null and b/fonts/Fira Code Bold Nerd Font Complete Mono Windows Compatible.otf differ
diff --git a/fonts/Fira Code Bold Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Fira Code Bold Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..0485c09
Binary files /dev/null and b/fonts/Fira Code Bold Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Fira Code Bold Nerd Font Complete Mono.otf b/fonts/Fira Code Bold Nerd Font Complete Mono.otf
new file mode 100644
index 0000000..2d01abd
Binary files /dev/null and b/fonts/Fira Code Bold Nerd Font Complete Mono.otf differ
diff --git a/fonts/Fira Code Bold Nerd Font Complete Mono.ttf b/fonts/Fira Code Bold Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..6ad2054
Binary files /dev/null and b/fonts/Fira Code Bold Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Fira Code Bold Nerd Font Complete Windows Compatible.otf b/fonts/Fira Code Bold Nerd Font Complete Windows Compatible.otf
new file mode 100644
index 0000000..c8ec326
Binary files /dev/null and b/fonts/Fira Code Bold Nerd Font Complete Windows Compatible.otf differ
diff --git a/fonts/Fira Code Bold Nerd Font Complete Windows Compatible.ttf b/fonts/Fira Code Bold Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..bef3694
Binary files /dev/null and b/fonts/Fira Code Bold Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Fira Code Bold Nerd Font Complete.otf b/fonts/Fira Code Bold Nerd Font Complete.otf
new file mode 100644
index 0000000..98c4353
Binary files /dev/null and b/fonts/Fira Code Bold Nerd Font Complete.otf differ
diff --git a/fonts/Fira Code Bold Nerd Font Complete.ttf b/fonts/Fira Code Bold Nerd Font Complete.ttf
new file mode 100644
index 0000000..9109dae
Binary files /dev/null and b/fonts/Fira Code Bold Nerd Font Complete.ttf differ
diff --git a/fonts/Fira Code Light Nerd Font Complete Mono Windows Compatible.otf b/fonts/Fira Code Light Nerd Font Complete Mono Windows Compatible.otf
new file mode 100644
index 0000000..c706360
Binary files /dev/null and b/fonts/Fira Code Light Nerd Font Complete Mono Windows Compatible.otf differ
diff --git a/fonts/Fira Code Light Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Fira Code Light Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..599a8ef
Binary files /dev/null and b/fonts/Fira Code Light Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Fira Code Light Nerd Font Complete Mono.otf b/fonts/Fira Code Light Nerd Font Complete Mono.otf
new file mode 100644
index 0000000..1280c0d
Binary files /dev/null and b/fonts/Fira Code Light Nerd Font Complete Mono.otf differ
diff --git a/fonts/Fira Code Light Nerd Font Complete Mono.ttf b/fonts/Fira Code Light Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..29beae2
Binary files /dev/null and b/fonts/Fira Code Light Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Fira Code Light Nerd Font Complete Windows Compatible.otf b/fonts/Fira Code Light Nerd Font Complete Windows Compatible.otf
new file mode 100644
index 0000000..54c198b
Binary files /dev/null and b/fonts/Fira Code Light Nerd Font Complete Windows Compatible.otf differ
diff --git a/fonts/Fira Code Light Nerd Font Complete Windows Compatible.ttf b/fonts/Fira Code Light Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..88d60b5
Binary files /dev/null and b/fonts/Fira Code Light Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Fira Code Light Nerd Font Complete.otf b/fonts/Fira Code Light Nerd Font Complete.otf
new file mode 100644
index 0000000..147cca6
Binary files /dev/null and b/fonts/Fira Code Light Nerd Font Complete.otf differ
diff --git a/fonts/Fira Code Light Nerd Font Complete.ttf b/fonts/Fira Code Light Nerd Font Complete.ttf
new file mode 100644
index 0000000..c97381d
Binary files /dev/null and b/fonts/Fira Code Light Nerd Font Complete.ttf differ
diff --git a/fonts/Fira Code Medium Nerd Font Complete Mono Windows Compatible.otf b/fonts/Fira Code Medium Nerd Font Complete Mono Windows Compatible.otf
new file mode 100644
index 0000000..5109781
Binary files /dev/null and b/fonts/Fira Code Medium Nerd Font Complete Mono Windows Compatible.otf differ
diff --git a/fonts/Fira Code Medium Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Fira Code Medium Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..9294d56
Binary files /dev/null and b/fonts/Fira Code Medium Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Fira Code Medium Nerd Font Complete Mono.otf b/fonts/Fira Code Medium Nerd Font Complete Mono.otf
new file mode 100644
index 0000000..d1c0352
Binary files /dev/null and b/fonts/Fira Code Medium Nerd Font Complete Mono.otf differ
diff --git a/fonts/Fira Code Medium Nerd Font Complete Mono.ttf b/fonts/Fira Code Medium Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..bcbb90e
Binary files /dev/null and b/fonts/Fira Code Medium Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Fira Code Medium Nerd Font Complete Windows Compatible.otf b/fonts/Fira Code Medium Nerd Font Complete Windows Compatible.otf
new file mode 100644
index 0000000..2db48d4
Binary files /dev/null and b/fonts/Fira Code Medium Nerd Font Complete Windows Compatible.otf differ
diff --git a/fonts/Fira Code Medium Nerd Font Complete Windows Compatible.ttf b/fonts/Fira Code Medium Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..9aaf690
Binary files /dev/null and b/fonts/Fira Code Medium Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Fira Code Medium Nerd Font Complete.otf b/fonts/Fira Code Medium Nerd Font Complete.otf
new file mode 100644
index 0000000..754330b
Binary files /dev/null and b/fonts/Fira Code Medium Nerd Font Complete.otf differ
diff --git a/fonts/Fira Code Medium Nerd Font Complete.ttf b/fonts/Fira Code Medium Nerd Font Complete.ttf
new file mode 100644
index 0000000..ce277e8
Binary files /dev/null and b/fonts/Fira Code Medium Nerd Font Complete.ttf differ
diff --git a/fonts/Fira Code Regular Nerd Font Complete Mono Windows Compatible.otf b/fonts/Fira Code Regular Nerd Font Complete Mono Windows Compatible.otf
new file mode 100644
index 0000000..4e4f754
Binary files /dev/null and b/fonts/Fira Code Regular Nerd Font Complete Mono Windows Compatible.otf differ
diff --git a/fonts/Fira Code Regular Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Fira Code Regular Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..d29b180
Binary files /dev/null and b/fonts/Fira Code Regular Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Fira Code Regular Nerd Font Complete Mono.otf b/fonts/Fira Code Regular Nerd Font Complete Mono.otf
new file mode 100644
index 0000000..a02a9c0
Binary files /dev/null and b/fonts/Fira Code Regular Nerd Font Complete Mono.otf differ
diff --git a/fonts/Fira Code Regular Nerd Font Complete Mono.ttf b/fonts/Fira Code Regular Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..c1073e3
Binary files /dev/null and b/fonts/Fira Code Regular Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Fira Code Regular Nerd Font Complete Windows Compatible.otf b/fonts/Fira Code Regular Nerd Font Complete Windows Compatible.otf
new file mode 100644
index 0000000..ed8c64d
Binary files /dev/null and b/fonts/Fira Code Regular Nerd Font Complete Windows Compatible.otf differ
diff --git a/fonts/Fira Code Regular Nerd Font Complete Windows Compatible.ttf b/fonts/Fira Code Regular Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..5c59280
Binary files /dev/null and b/fonts/Fira Code Regular Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Fira Code Regular Nerd Font Complete.otf b/fonts/Fira Code Regular Nerd Font Complete.otf
new file mode 100644
index 0000000..20f5847
Binary files /dev/null and b/fonts/Fira Code Regular Nerd Font Complete.otf differ
diff --git a/fonts/Fira Code Regular Nerd Font Complete.ttf b/fonts/Fira Code Regular Nerd Font Complete.ttf
new file mode 100644
index 0000000..6d6a9a4
Binary files /dev/null and b/fonts/Fira Code Regular Nerd Font Complete.ttf differ
diff --git a/fonts/Fira Code Retina Nerd Font Complete Mono Windows Compatible.otf b/fonts/Fira Code Retina Nerd Font Complete Mono Windows Compatible.otf
new file mode 100644
index 0000000..0ef1123
Binary files /dev/null and b/fonts/Fira Code Retina Nerd Font Complete Mono Windows Compatible.otf differ
diff --git a/fonts/Fira Code Retina Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Fira Code Retina Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..f3e0a60
Binary files /dev/null and b/fonts/Fira Code Retina Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Fira Code Retina Nerd Font Complete Mono.otf b/fonts/Fira Code Retina Nerd Font Complete Mono.otf
new file mode 100644
index 0000000..e1d46be
Binary files /dev/null and b/fonts/Fira Code Retina Nerd Font Complete Mono.otf differ
diff --git a/fonts/Fira Code Retina Nerd Font Complete Mono.ttf b/fonts/Fira Code Retina Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..9259202
Binary files /dev/null and b/fonts/Fira Code Retina Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Fira Code Retina Nerd Font Complete Windows Compatible.otf b/fonts/Fira Code Retina Nerd Font Complete Windows Compatible.otf
new file mode 100644
index 0000000..23d3cc1
Binary files /dev/null and b/fonts/Fira Code Retina Nerd Font Complete Windows Compatible.otf differ
diff --git a/fonts/Fira Code Retina Nerd Font Complete Windows Compatible.ttf b/fonts/Fira Code Retina Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..0757c47
Binary files /dev/null and b/fonts/Fira Code Retina Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Fira Code Retina Nerd Font Complete.otf b/fonts/Fira Code Retina Nerd Font Complete.otf
new file mode 100644
index 0000000..e354a3a
Binary files /dev/null and b/fonts/Fira Code Retina Nerd Font Complete.otf differ
diff --git a/fonts/Fira Code Retina Nerd Font Complete.ttf b/fonts/Fira Code Retina Nerd Font Complete.ttf
new file mode 100644
index 0000000..82054d9
Binary files /dev/null and b/fonts/Fira Code Retina Nerd Font Complete.ttf differ
diff --git a/fonts/Fura Code Bold Nerd Font Complete Mono Windows Compatible.otf b/fonts/Fura Code Bold Nerd Font Complete Mono Windows Compatible.otf
new file mode 100644
index 0000000..02d027d
Binary files /dev/null and b/fonts/Fura Code Bold Nerd Font Complete Mono Windows Compatible.otf differ
diff --git a/fonts/Fura Code Bold Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Fura Code Bold Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..5e36d33
Binary files /dev/null and b/fonts/Fura Code Bold Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Fura Code Bold Nerd Font Complete Mono.otf b/fonts/Fura Code Bold Nerd Font Complete Mono.otf
new file mode 100644
index 0000000..9ac59ab
Binary files /dev/null and b/fonts/Fura Code Bold Nerd Font Complete Mono.otf differ
diff --git a/fonts/Fura Code Bold Nerd Font Complete Mono.ttf b/fonts/Fura Code Bold Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..fe63a30
Binary files /dev/null and b/fonts/Fura Code Bold Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Fura Code Bold Nerd Font Complete Windows Compatible.otf b/fonts/Fura Code Bold Nerd Font Complete Windows Compatible.otf
new file mode 100644
index 0000000..3958578
Binary files /dev/null and b/fonts/Fura Code Bold Nerd Font Complete Windows Compatible.otf differ
diff --git a/fonts/Fura Code Bold Nerd Font Complete Windows Compatible.ttf b/fonts/Fura Code Bold Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..4c2b2c4
Binary files /dev/null and b/fonts/Fura Code Bold Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Fura Code Bold Nerd Font Complete.otf b/fonts/Fura Code Bold Nerd Font Complete.otf
new file mode 100644
index 0000000..2780f2a
Binary files /dev/null and b/fonts/Fura Code Bold Nerd Font Complete.otf differ
diff --git a/fonts/Fura Code Bold Nerd Font Complete.ttf b/fonts/Fura Code Bold Nerd Font Complete.ttf
new file mode 100644
index 0000000..78e3a8a
Binary files /dev/null and b/fonts/Fura Code Bold Nerd Font Complete.ttf differ
diff --git a/fonts/Fura Code Light Nerd Font Complete Mono Windows Compatible.otf b/fonts/Fura Code Light Nerd Font Complete Mono Windows Compatible.otf
new file mode 100644
index 0000000..9d1577a
Binary files /dev/null and b/fonts/Fura Code Light Nerd Font Complete Mono Windows Compatible.otf differ
diff --git a/fonts/Fura Code Light Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Fura Code Light Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..a22e17a
Binary files /dev/null and b/fonts/Fura Code Light Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Fura Code Light Nerd Font Complete Mono.otf b/fonts/Fura Code Light Nerd Font Complete Mono.otf
new file mode 100644
index 0000000..c621024
Binary files /dev/null and b/fonts/Fura Code Light Nerd Font Complete Mono.otf differ
diff --git a/fonts/Fura Code Light Nerd Font Complete Mono.ttf b/fonts/Fura Code Light Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..b45754a
Binary files /dev/null and b/fonts/Fura Code Light Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Fura Code Light Nerd Font Complete Windows Compatible.otf b/fonts/Fura Code Light Nerd Font Complete Windows Compatible.otf
new file mode 100644
index 0000000..8d509c2
Binary files /dev/null and b/fonts/Fura Code Light Nerd Font Complete Windows Compatible.otf differ
diff --git a/fonts/Fura Code Light Nerd Font Complete Windows Compatible.ttf b/fonts/Fura Code Light Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..53e63b4
Binary files /dev/null and b/fonts/Fura Code Light Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Fura Code Light Nerd Font Complete.otf b/fonts/Fura Code Light Nerd Font Complete.otf
new file mode 100644
index 0000000..4143767
Binary files /dev/null and b/fonts/Fura Code Light Nerd Font Complete.otf differ
diff --git a/fonts/Fura Code Light Nerd Font Complete.ttf b/fonts/Fura Code Light Nerd Font Complete.ttf
new file mode 100644
index 0000000..f9b180a
Binary files /dev/null and b/fonts/Fura Code Light Nerd Font Complete.ttf differ
diff --git a/fonts/Fura Code Medium Nerd Font Complete Mono Windows Compatible.otf b/fonts/Fura Code Medium Nerd Font Complete Mono Windows Compatible.otf
new file mode 100644
index 0000000..3d0457f
Binary files /dev/null and b/fonts/Fura Code Medium Nerd Font Complete Mono Windows Compatible.otf differ
diff --git a/fonts/Fura Code Medium Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Fura Code Medium Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..f1146cb
Binary files /dev/null and b/fonts/Fura Code Medium Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Fura Code Medium Nerd Font Complete Mono.otf b/fonts/Fura Code Medium Nerd Font Complete Mono.otf
new file mode 100644
index 0000000..6caacf3
Binary files /dev/null and b/fonts/Fura Code Medium Nerd Font Complete Mono.otf differ
diff --git a/fonts/Fura Code Medium Nerd Font Complete Mono.ttf b/fonts/Fura Code Medium Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..297c267
Binary files /dev/null and b/fonts/Fura Code Medium Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Fura Code Medium Nerd Font Complete Windows Compatible.otf b/fonts/Fura Code Medium Nerd Font Complete Windows Compatible.otf
new file mode 100644
index 0000000..033a357
Binary files /dev/null and b/fonts/Fura Code Medium Nerd Font Complete Windows Compatible.otf differ
diff --git a/fonts/Fura Code Medium Nerd Font Complete Windows Compatible.ttf b/fonts/Fura Code Medium Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..3303f5f
Binary files /dev/null and b/fonts/Fura Code Medium Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Fura Code Medium Nerd Font Complete.otf b/fonts/Fura Code Medium Nerd Font Complete.otf
new file mode 100644
index 0000000..1dd6735
Binary files /dev/null and b/fonts/Fura Code Medium Nerd Font Complete.otf differ
diff --git a/fonts/Fura Code Medium Nerd Font Complete.ttf b/fonts/Fura Code Medium Nerd Font Complete.ttf
new file mode 100644
index 0000000..cbda437
Binary files /dev/null and b/fonts/Fura Code Medium Nerd Font Complete.ttf differ
diff --git a/fonts/Fura Code Regular Nerd Font Complete Mono Windows Compatible.otf b/fonts/Fura Code Regular Nerd Font Complete Mono Windows Compatible.otf
new file mode 100644
index 0000000..c7cdda6
Binary files /dev/null and b/fonts/Fura Code Regular Nerd Font Complete Mono Windows Compatible.otf differ
diff --git a/fonts/Fura Code Regular Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Fura Code Regular Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..5ca0a24
Binary files /dev/null and b/fonts/Fura Code Regular Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Fura Code Regular Nerd Font Complete Mono.otf b/fonts/Fura Code Regular Nerd Font Complete Mono.otf
new file mode 100644
index 0000000..56d3872
Binary files /dev/null and b/fonts/Fura Code Regular Nerd Font Complete Mono.otf differ
diff --git a/fonts/Fura Code Regular Nerd Font Complete Mono.ttf b/fonts/Fura Code Regular Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..265554c
Binary files /dev/null and b/fonts/Fura Code Regular Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Fura Code Regular Nerd Font Complete Windows Compatible.otf b/fonts/Fura Code Regular Nerd Font Complete Windows Compatible.otf
new file mode 100644
index 0000000..76477cb
Binary files /dev/null and b/fonts/Fura Code Regular Nerd Font Complete Windows Compatible.otf differ
diff --git a/fonts/Fura Code Regular Nerd Font Complete Windows Compatible.ttf b/fonts/Fura Code Regular Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..cf0dd69
Binary files /dev/null and b/fonts/Fura Code Regular Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Fura Code Regular Nerd Font Complete.otf b/fonts/Fura Code Regular Nerd Font Complete.otf
new file mode 100644
index 0000000..6e65585
Binary files /dev/null and b/fonts/Fura Code Regular Nerd Font Complete.otf differ
diff --git a/fonts/Fura Code Regular Nerd Font Complete.ttf b/fonts/Fura Code Regular Nerd Font Complete.ttf
new file mode 100644
index 0000000..0968982
Binary files /dev/null and b/fonts/Fura Code Regular Nerd Font Complete.ttf differ
diff --git a/fonts/Fura Code Retina Nerd Font Complete Mono Windows Compatible.otf b/fonts/Fura Code Retina Nerd Font Complete Mono Windows Compatible.otf
new file mode 100644
index 0000000..718eb64
Binary files /dev/null and b/fonts/Fura Code Retina Nerd Font Complete Mono Windows Compatible.otf differ
diff --git a/fonts/Fura Code Retina Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Fura Code Retina Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..21a4b2e
Binary files /dev/null and b/fonts/Fura Code Retina Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Fura Code Retina Nerd Font Complete Mono.otf b/fonts/Fura Code Retina Nerd Font Complete Mono.otf
new file mode 100644
index 0000000..3f224a4
Binary files /dev/null and b/fonts/Fura Code Retina Nerd Font Complete Mono.otf differ
diff --git a/fonts/Fura Code Retina Nerd Font Complete Mono.ttf b/fonts/Fura Code Retina Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..b2177d7
Binary files /dev/null and b/fonts/Fura Code Retina Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Fura Code Retina Nerd Font Complete Windows Compatible.otf b/fonts/Fura Code Retina Nerd Font Complete Windows Compatible.otf
new file mode 100644
index 0000000..f8624c3
Binary files /dev/null and b/fonts/Fura Code Retina Nerd Font Complete Windows Compatible.otf differ
diff --git a/fonts/Fura Code Retina Nerd Font Complete Windows Compatible.ttf b/fonts/Fura Code Retina Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..282a30f
Binary files /dev/null and b/fonts/Fura Code Retina Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Fura Code Retina Nerd Font Complete.otf b/fonts/Fura Code Retina Nerd Font Complete.otf
new file mode 100644
index 0000000..af45df1
Binary files /dev/null and b/fonts/Fura Code Retina Nerd Font Complete.otf differ
diff --git a/fonts/Fura Code Retina Nerd Font Complete.ttf b/fonts/Fura Code Retina Nerd Font Complete.ttf
new file mode 100644
index 0000000..c02b8d4
Binary files /dev/null and b/fonts/Fura Code Retina Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Bold Italic Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Bold Italic Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..c1cf70b
Binary files /dev/null and b/fonts/Iosevka Bold Italic Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Bold Italic Nerd Font Complete Mono.ttf b/fonts/Iosevka Bold Italic Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..8165fd5
Binary files /dev/null and b/fonts/Iosevka Bold Italic Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Bold Italic Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Bold Italic Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..5d3f19a
Binary files /dev/null and b/fonts/Iosevka Bold Italic Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Bold Italic Nerd Font Complete.ttf b/fonts/Iosevka Bold Italic Nerd Font Complete.ttf
new file mode 100644
index 0000000..6db48e9
Binary files /dev/null and b/fonts/Iosevka Bold Italic Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Bold Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Bold Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..ef7ddc4
Binary files /dev/null and b/fonts/Iosevka Bold Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Bold Nerd Font Complete Mono.ttf b/fonts/Iosevka Bold Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..b7f7573
Binary files /dev/null and b/fonts/Iosevka Bold Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Bold Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Bold Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..d8ecc0c
Binary files /dev/null and b/fonts/Iosevka Bold Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Bold Nerd Font Complete.ttf b/fonts/Iosevka Bold Nerd Font Complete.ttf
new file mode 100644
index 0000000..365a69e
Binary files /dev/null and b/fonts/Iosevka Bold Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Bold Oblique Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Bold Oblique Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..d5ffb1c
Binary files /dev/null and b/fonts/Iosevka Bold Oblique Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Bold Oblique Nerd Font Complete Mono.ttf b/fonts/Iosevka Bold Oblique Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..77fcfcf
Binary files /dev/null and b/fonts/Iosevka Bold Oblique Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Bold Oblique Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Bold Oblique Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..1008bbc
Binary files /dev/null and b/fonts/Iosevka Bold Oblique Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Bold Oblique Nerd Font Complete.ttf b/fonts/Iosevka Bold Oblique Nerd Font Complete.ttf
new file mode 100644
index 0000000..76f5504
Binary files /dev/null and b/fonts/Iosevka Bold Oblique Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Extralight Italic Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Extralight Italic Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..d92ccc0
Binary files /dev/null and b/fonts/Iosevka Extralight Italic Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Extralight Italic Nerd Font Complete Mono.ttf b/fonts/Iosevka Extralight Italic Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..b4b67b9
Binary files /dev/null and b/fonts/Iosevka Extralight Italic Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Extralight Italic Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Extralight Italic Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..112d0a5
Binary files /dev/null and b/fonts/Iosevka Extralight Italic Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Extralight Italic Nerd Font Complete.ttf b/fonts/Iosevka Extralight Italic Nerd Font Complete.ttf
new file mode 100644
index 0000000..b531951
Binary files /dev/null and b/fonts/Iosevka Extralight Italic Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Extralight Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Extralight Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..f56ca12
Binary files /dev/null and b/fonts/Iosevka Extralight Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Extralight Nerd Font Complete Mono.ttf b/fonts/Iosevka Extralight Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..001aba7
Binary files /dev/null and b/fonts/Iosevka Extralight Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Extralight Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Extralight Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..35bb91b
Binary files /dev/null and b/fonts/Iosevka Extralight Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Extralight Nerd Font Complete.ttf b/fonts/Iosevka Extralight Nerd Font Complete.ttf
new file mode 100644
index 0000000..aae311d
Binary files /dev/null and b/fonts/Iosevka Extralight Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Extralight Oblique Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Extralight Oblique Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..5a7112e
Binary files /dev/null and b/fonts/Iosevka Extralight Oblique Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Extralight Oblique Nerd Font Complete Mono.ttf b/fonts/Iosevka Extralight Oblique Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..92cfb1c
Binary files /dev/null and b/fonts/Iosevka Extralight Oblique Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Extralight Oblique Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Extralight Oblique Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..f64cd7c
Binary files /dev/null and b/fonts/Iosevka Extralight Oblique Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Extralight Oblique Nerd Font Complete.ttf b/fonts/Iosevka Extralight Oblique Nerd Font Complete.ttf
new file mode 100644
index 0000000..f0ea7a0
Binary files /dev/null and b/fonts/Iosevka Extralight Oblique Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Heavy Italic Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Heavy Italic Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..8ab96b8
Binary files /dev/null and b/fonts/Iosevka Heavy Italic Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Heavy Italic Nerd Font Complete Mono.ttf b/fonts/Iosevka Heavy Italic Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..899ad1d
Binary files /dev/null and b/fonts/Iosevka Heavy Italic Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Heavy Italic Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Heavy Italic Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..2775b2c
Binary files /dev/null and b/fonts/Iosevka Heavy Italic Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Heavy Italic Nerd Font Complete.ttf b/fonts/Iosevka Heavy Italic Nerd Font Complete.ttf
new file mode 100644
index 0000000..9477e88
Binary files /dev/null and b/fonts/Iosevka Heavy Italic Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Heavy Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Heavy Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..be5b2e1
Binary files /dev/null and b/fonts/Iosevka Heavy Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Heavy Nerd Font Complete Mono.ttf b/fonts/Iosevka Heavy Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..86fb4f7
Binary files /dev/null and b/fonts/Iosevka Heavy Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Heavy Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Heavy Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..5391701
Binary files /dev/null and b/fonts/Iosevka Heavy Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Heavy Nerd Font Complete.ttf b/fonts/Iosevka Heavy Nerd Font Complete.ttf
new file mode 100644
index 0000000..3c1c9bf
Binary files /dev/null and b/fonts/Iosevka Heavy Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Heavy Oblique Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Heavy Oblique Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..a205a09
Binary files /dev/null and b/fonts/Iosevka Heavy Oblique Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Heavy Oblique Nerd Font Complete Mono.ttf b/fonts/Iosevka Heavy Oblique Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..c278328
Binary files /dev/null and b/fonts/Iosevka Heavy Oblique Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Heavy Oblique Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Heavy Oblique Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..81775e5
Binary files /dev/null and b/fonts/Iosevka Heavy Oblique Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Heavy Oblique Nerd Font Complete.ttf b/fonts/Iosevka Heavy Oblique Nerd Font Complete.ttf
new file mode 100644
index 0000000..20fb9ac
Binary files /dev/null and b/fonts/Iosevka Heavy Oblique Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Italic Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Italic Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..def720a
Binary files /dev/null and b/fonts/Iosevka Italic Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Italic Nerd Font Complete Mono.ttf b/fonts/Iosevka Italic Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..3a3e4bf
Binary files /dev/null and b/fonts/Iosevka Italic Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Italic Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Italic Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..fb8cf29
Binary files /dev/null and b/fonts/Iosevka Italic Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Italic Nerd Font Complete.ttf b/fonts/Iosevka Italic Nerd Font Complete.ttf
new file mode 100644
index 0000000..c3600bb
Binary files /dev/null and b/fonts/Iosevka Italic Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Light Italic Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Light Italic Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..f576304
Binary files /dev/null and b/fonts/Iosevka Light Italic Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Light Italic Nerd Font Complete Mono.ttf b/fonts/Iosevka Light Italic Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..b7a40e2
Binary files /dev/null and b/fonts/Iosevka Light Italic Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Light Italic Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Light Italic Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..1303b3f
Binary files /dev/null and b/fonts/Iosevka Light Italic Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Light Italic Nerd Font Complete.ttf b/fonts/Iosevka Light Italic Nerd Font Complete.ttf
new file mode 100644
index 0000000..b569c4a
Binary files /dev/null and b/fonts/Iosevka Light Italic Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Light Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Light Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..f1d9364
Binary files /dev/null and b/fonts/Iosevka Light Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Light Nerd Font Complete Mono.ttf b/fonts/Iosevka Light Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..5dd2b0b
Binary files /dev/null and b/fonts/Iosevka Light Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Light Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Light Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..7373fc0
Binary files /dev/null and b/fonts/Iosevka Light Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Light Nerd Font Complete.ttf b/fonts/Iosevka Light Nerd Font Complete.ttf
new file mode 100644
index 0000000..53a9dba
Binary files /dev/null and b/fonts/Iosevka Light Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Light Oblique Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Light Oblique Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..ae7ec36
Binary files /dev/null and b/fonts/Iosevka Light Oblique Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Light Oblique Nerd Font Complete Mono.ttf b/fonts/Iosevka Light Oblique Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..c26e993
Binary files /dev/null and b/fonts/Iosevka Light Oblique Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Light Oblique Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Light Oblique Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..8b226ba
Binary files /dev/null and b/fonts/Iosevka Light Oblique Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Light Oblique Nerd Font Complete.ttf b/fonts/Iosevka Light Oblique Nerd Font Complete.ttf
new file mode 100644
index 0000000..26025b4
Binary files /dev/null and b/fonts/Iosevka Light Oblique Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Medium Italic Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Medium Italic Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..462cfc3
Binary files /dev/null and b/fonts/Iosevka Medium Italic Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Medium Italic Nerd Font Complete Mono.ttf b/fonts/Iosevka Medium Italic Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..2b9c406
Binary files /dev/null and b/fonts/Iosevka Medium Italic Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Medium Italic Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Medium Italic Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..17719b3
Binary files /dev/null and b/fonts/Iosevka Medium Italic Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Medium Italic Nerd Font Complete.ttf b/fonts/Iosevka Medium Italic Nerd Font Complete.ttf
new file mode 100644
index 0000000..332c71b
Binary files /dev/null and b/fonts/Iosevka Medium Italic Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Medium Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Medium Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..5ec8dd6
Binary files /dev/null and b/fonts/Iosevka Medium Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Medium Nerd Font Complete Mono.ttf b/fonts/Iosevka Medium Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..9eb9e2a
Binary files /dev/null and b/fonts/Iosevka Medium Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Medium Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Medium Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..27dbf67
Binary files /dev/null and b/fonts/Iosevka Medium Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Medium Nerd Font Complete.ttf b/fonts/Iosevka Medium Nerd Font Complete.ttf
new file mode 100644
index 0000000..a19e5fc
Binary files /dev/null and b/fonts/Iosevka Medium Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Medium Oblique Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Medium Oblique Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..84d8087
Binary files /dev/null and b/fonts/Iosevka Medium Oblique Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Medium Oblique Nerd Font Complete Mono.ttf b/fonts/Iosevka Medium Oblique Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..2f6f08c
Binary files /dev/null and b/fonts/Iosevka Medium Oblique Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Medium Oblique Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Medium Oblique Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..4482b3b
Binary files /dev/null and b/fonts/Iosevka Medium Oblique Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Medium Oblique Nerd Font Complete.ttf b/fonts/Iosevka Medium Oblique Nerd Font Complete.ttf
new file mode 100644
index 0000000..7c9cc54
Binary files /dev/null and b/fonts/Iosevka Medium Oblique Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..ce13bb2
Binary files /dev/null and b/fonts/Iosevka Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Nerd Font Complete Mono.ttf b/fonts/Iosevka Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..cfa8bf4
Binary files /dev/null and b/fonts/Iosevka Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..461f3f3
Binary files /dev/null and b/fonts/Iosevka Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Nerd Font Complete.ttf b/fonts/Iosevka Nerd Font Complete.ttf
new file mode 100644
index 0000000..0c917b1
Binary files /dev/null and b/fonts/Iosevka Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Oblique Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Oblique Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..e65757f
Binary files /dev/null and b/fonts/Iosevka Oblique Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Oblique Nerd Font Complete Mono.ttf b/fonts/Iosevka Oblique Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..909c60e
Binary files /dev/null and b/fonts/Iosevka Oblique Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Oblique Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Oblique Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..293f404
Binary files /dev/null and b/fonts/Iosevka Oblique Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Oblique Nerd Font Complete.ttf b/fonts/Iosevka Oblique Nerd Font Complete.ttf
new file mode 100644
index 0000000..a91c171
Binary files /dev/null and b/fonts/Iosevka Oblique Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Term Bold Italic Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Term Bold Italic Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..2287898
Binary files /dev/null and b/fonts/Iosevka Term Bold Italic Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Bold Italic Nerd Font Complete Mono.ttf b/fonts/Iosevka Term Bold Italic Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..7ace226
Binary files /dev/null and b/fonts/Iosevka Term Bold Italic Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Term Bold Italic Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Term Bold Italic Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..b50882f
Binary files /dev/null and b/fonts/Iosevka Term Bold Italic Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Bold Italic Nerd Font Complete.ttf b/fonts/Iosevka Term Bold Italic Nerd Font Complete.ttf
new file mode 100644
index 0000000..b1a4214
Binary files /dev/null and b/fonts/Iosevka Term Bold Italic Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Term Bold Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Term Bold Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..e96d584
Binary files /dev/null and b/fonts/Iosevka Term Bold Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Bold Nerd Font Complete Mono.ttf b/fonts/Iosevka Term Bold Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..5e2cef4
Binary files /dev/null and b/fonts/Iosevka Term Bold Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Term Bold Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Term Bold Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..34f57e9
Binary files /dev/null and b/fonts/Iosevka Term Bold Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Bold Nerd Font Complete.ttf b/fonts/Iosevka Term Bold Nerd Font Complete.ttf
new file mode 100644
index 0000000..28aa71e
Binary files /dev/null and b/fonts/Iosevka Term Bold Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Term Bold Oblique Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Term Bold Oblique Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..7a8b6e0
Binary files /dev/null and b/fonts/Iosevka Term Bold Oblique Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Bold Oblique Nerd Font Complete Mono.ttf b/fonts/Iosevka Term Bold Oblique Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..6c14fa5
Binary files /dev/null and b/fonts/Iosevka Term Bold Oblique Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Term Bold Oblique Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Term Bold Oblique Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..b34a7d5
Binary files /dev/null and b/fonts/Iosevka Term Bold Oblique Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Bold Oblique Nerd Font Complete.ttf b/fonts/Iosevka Term Bold Oblique Nerd Font Complete.ttf
new file mode 100644
index 0000000..6ccc7ef
Binary files /dev/null and b/fonts/Iosevka Term Bold Oblique Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Term Extralight Italic Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Term Extralight Italic Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..d162239
Binary files /dev/null and b/fonts/Iosevka Term Extralight Italic Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Extralight Italic Nerd Font Complete Mono.ttf b/fonts/Iosevka Term Extralight Italic Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..bdd23e9
Binary files /dev/null and b/fonts/Iosevka Term Extralight Italic Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Term Extralight Italic Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Term Extralight Italic Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..26c769b
Binary files /dev/null and b/fonts/Iosevka Term Extralight Italic Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Extralight Italic Nerd Font Complete.ttf b/fonts/Iosevka Term Extralight Italic Nerd Font Complete.ttf
new file mode 100644
index 0000000..cfe7d72
Binary files /dev/null and b/fonts/Iosevka Term Extralight Italic Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Term Extralight Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Term Extralight Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..3a35222
Binary files /dev/null and b/fonts/Iosevka Term Extralight Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Extralight Nerd Font Complete Mono.ttf b/fonts/Iosevka Term Extralight Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..8055964
Binary files /dev/null and b/fonts/Iosevka Term Extralight Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Term Extralight Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Term Extralight Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..bccc1f5
Binary files /dev/null and b/fonts/Iosevka Term Extralight Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Extralight Nerd Font Complete.ttf b/fonts/Iosevka Term Extralight Nerd Font Complete.ttf
new file mode 100644
index 0000000..411191c
Binary files /dev/null and b/fonts/Iosevka Term Extralight Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Term Extralight Oblique Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Term Extralight Oblique Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..8dccd9f
Binary files /dev/null and b/fonts/Iosevka Term Extralight Oblique Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Extralight Oblique Nerd Font Complete Mono.ttf b/fonts/Iosevka Term Extralight Oblique Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..76e1416
Binary files /dev/null and b/fonts/Iosevka Term Extralight Oblique Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Term Extralight Oblique Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Term Extralight Oblique Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..39c4b73
Binary files /dev/null and b/fonts/Iosevka Term Extralight Oblique Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Extralight Oblique Nerd Font Complete.ttf b/fonts/Iosevka Term Extralight Oblique Nerd Font Complete.ttf
new file mode 100644
index 0000000..bbd5e50
Binary files /dev/null and b/fonts/Iosevka Term Extralight Oblique Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Term Heavy Italic Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Term Heavy Italic Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..ff95f6b
Binary files /dev/null and b/fonts/Iosevka Term Heavy Italic Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Heavy Italic Nerd Font Complete Mono.ttf b/fonts/Iosevka Term Heavy Italic Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..dda57db
Binary files /dev/null and b/fonts/Iosevka Term Heavy Italic Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Term Heavy Italic Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Term Heavy Italic Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..d2cd26e
Binary files /dev/null and b/fonts/Iosevka Term Heavy Italic Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Heavy Italic Nerd Font Complete.ttf b/fonts/Iosevka Term Heavy Italic Nerd Font Complete.ttf
new file mode 100644
index 0000000..2a6eeab
Binary files /dev/null and b/fonts/Iosevka Term Heavy Italic Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Term Heavy Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Term Heavy Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..dc5fbb7
Binary files /dev/null and b/fonts/Iosevka Term Heavy Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Heavy Nerd Font Complete Mono.ttf b/fonts/Iosevka Term Heavy Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..4da183e
Binary files /dev/null and b/fonts/Iosevka Term Heavy Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Term Heavy Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Term Heavy Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..cdd3974
Binary files /dev/null and b/fonts/Iosevka Term Heavy Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Heavy Nerd Font Complete.ttf b/fonts/Iosevka Term Heavy Nerd Font Complete.ttf
new file mode 100644
index 0000000..8886401
Binary files /dev/null and b/fonts/Iosevka Term Heavy Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Term Heavy Oblique Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Term Heavy Oblique Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..d0226e1
Binary files /dev/null and b/fonts/Iosevka Term Heavy Oblique Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Heavy Oblique Nerd Font Complete Mono.ttf b/fonts/Iosevka Term Heavy Oblique Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..76705c8
Binary files /dev/null and b/fonts/Iosevka Term Heavy Oblique Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Term Heavy Oblique Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Term Heavy Oblique Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..d93b362
Binary files /dev/null and b/fonts/Iosevka Term Heavy Oblique Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Heavy Oblique Nerd Font Complete.ttf b/fonts/Iosevka Term Heavy Oblique Nerd Font Complete.ttf
new file mode 100644
index 0000000..9540cb5
Binary files /dev/null and b/fonts/Iosevka Term Heavy Oblique Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Term Italic Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Term Italic Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..90a0f80
Binary files /dev/null and b/fonts/Iosevka Term Italic Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Italic Nerd Font Complete Mono.ttf b/fonts/Iosevka Term Italic Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..de7d39a
Binary files /dev/null and b/fonts/Iosevka Term Italic Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Term Italic Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Term Italic Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..0a63787
Binary files /dev/null and b/fonts/Iosevka Term Italic Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Italic Nerd Font Complete.ttf b/fonts/Iosevka Term Italic Nerd Font Complete.ttf
new file mode 100644
index 0000000..e98db06
Binary files /dev/null and b/fonts/Iosevka Term Italic Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Term Light Italic Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Term Light Italic Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..641762d
Binary files /dev/null and b/fonts/Iosevka Term Light Italic Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Light Italic Nerd Font Complete Mono.ttf b/fonts/Iosevka Term Light Italic Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..4e0423e
Binary files /dev/null and b/fonts/Iosevka Term Light Italic Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Term Light Italic Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Term Light Italic Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..adc6bc8
Binary files /dev/null and b/fonts/Iosevka Term Light Italic Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Light Italic Nerd Font Complete.ttf b/fonts/Iosevka Term Light Italic Nerd Font Complete.ttf
new file mode 100644
index 0000000..a47a7f4
Binary files /dev/null and b/fonts/Iosevka Term Light Italic Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Term Light Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Term Light Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..2d897e4
Binary files /dev/null and b/fonts/Iosevka Term Light Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Light Nerd Font Complete Mono.ttf b/fonts/Iosevka Term Light Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..5c78249
Binary files /dev/null and b/fonts/Iosevka Term Light Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Term Light Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Term Light Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..b9bbeb2
Binary files /dev/null and b/fonts/Iosevka Term Light Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Light Nerd Font Complete.ttf b/fonts/Iosevka Term Light Nerd Font Complete.ttf
new file mode 100644
index 0000000..7766a1f
Binary files /dev/null and b/fonts/Iosevka Term Light Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Term Light Oblique Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Term Light Oblique Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..e2e501f
Binary files /dev/null and b/fonts/Iosevka Term Light Oblique Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Light Oblique Nerd Font Complete Mono.ttf b/fonts/Iosevka Term Light Oblique Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..7052c78
Binary files /dev/null and b/fonts/Iosevka Term Light Oblique Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Term Light Oblique Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Term Light Oblique Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..72e238f
Binary files /dev/null and b/fonts/Iosevka Term Light Oblique Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Light Oblique Nerd Font Complete.ttf b/fonts/Iosevka Term Light Oblique Nerd Font Complete.ttf
new file mode 100644
index 0000000..a05bc24
Binary files /dev/null and b/fonts/Iosevka Term Light Oblique Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Term Medium Italic Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Term Medium Italic Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..77c1fb6
Binary files /dev/null and b/fonts/Iosevka Term Medium Italic Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Medium Italic Nerd Font Complete Mono.ttf b/fonts/Iosevka Term Medium Italic Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..f660476
Binary files /dev/null and b/fonts/Iosevka Term Medium Italic Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Term Medium Italic Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Term Medium Italic Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..1218251
Binary files /dev/null and b/fonts/Iosevka Term Medium Italic Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Medium Italic Nerd Font Complete.ttf b/fonts/Iosevka Term Medium Italic Nerd Font Complete.ttf
new file mode 100644
index 0000000..a2f7320
Binary files /dev/null and b/fonts/Iosevka Term Medium Italic Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Term Medium Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Term Medium Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..e7bf47c
Binary files /dev/null and b/fonts/Iosevka Term Medium Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Medium Nerd Font Complete Mono.ttf b/fonts/Iosevka Term Medium Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..7208fc5
Binary files /dev/null and b/fonts/Iosevka Term Medium Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Term Medium Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Term Medium Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..70ebb58
Binary files /dev/null and b/fonts/Iosevka Term Medium Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Medium Nerd Font Complete.ttf b/fonts/Iosevka Term Medium Nerd Font Complete.ttf
new file mode 100644
index 0000000..29cdf69
Binary files /dev/null and b/fonts/Iosevka Term Medium Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Term Medium Oblique Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Term Medium Oblique Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..24d5d9e
Binary files /dev/null and b/fonts/Iosevka Term Medium Oblique Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Medium Oblique Nerd Font Complete Mono.ttf b/fonts/Iosevka Term Medium Oblique Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..66dbb8e
Binary files /dev/null and b/fonts/Iosevka Term Medium Oblique Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Term Medium Oblique Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Term Medium Oblique Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..4ee5264
Binary files /dev/null and b/fonts/Iosevka Term Medium Oblique Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Medium Oblique Nerd Font Complete.ttf b/fonts/Iosevka Term Medium Oblique Nerd Font Complete.ttf
new file mode 100644
index 0000000..029631d
Binary files /dev/null and b/fonts/Iosevka Term Medium Oblique Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Term Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Term Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..3b2c244
Binary files /dev/null and b/fonts/Iosevka Term Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Nerd Font Complete Mono.ttf b/fonts/Iosevka Term Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..dd696e3
Binary files /dev/null and b/fonts/Iosevka Term Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Term Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Term Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..6458f23
Binary files /dev/null and b/fonts/Iosevka Term Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Nerd Font Complete.ttf b/fonts/Iosevka Term Nerd Font Complete.ttf
new file mode 100644
index 0000000..063e807
Binary files /dev/null and b/fonts/Iosevka Term Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Term Oblique Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Term Oblique Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..e2bd810
Binary files /dev/null and b/fonts/Iosevka Term Oblique Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Oblique Nerd Font Complete Mono.ttf b/fonts/Iosevka Term Oblique Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..e38b5c8
Binary files /dev/null and b/fonts/Iosevka Term Oblique Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Term Oblique Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Term Oblique Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..2528980
Binary files /dev/null and b/fonts/Iosevka Term Oblique Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Oblique Nerd Font Complete.ttf b/fonts/Iosevka Term Oblique Nerd Font Complete.ttf
new file mode 100644
index 0000000..b8275d5
Binary files /dev/null and b/fonts/Iosevka Term Oblique Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Term Thin Italic Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Term Thin Italic Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..45d4598
Binary files /dev/null and b/fonts/Iosevka Term Thin Italic Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Thin Italic Nerd Font Complete Mono.ttf b/fonts/Iosevka Term Thin Italic Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..7ee4b39
Binary files /dev/null and b/fonts/Iosevka Term Thin Italic Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Term Thin Italic Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Term Thin Italic Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..7fa4fee
Binary files /dev/null and b/fonts/Iosevka Term Thin Italic Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Thin Italic Nerd Font Complete.ttf b/fonts/Iosevka Term Thin Italic Nerd Font Complete.ttf
new file mode 100644
index 0000000..d41baa2
Binary files /dev/null and b/fonts/Iosevka Term Thin Italic Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Term Thin Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Term Thin Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..e68f0bf
Binary files /dev/null and b/fonts/Iosevka Term Thin Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Thin Nerd Font Complete Mono.ttf b/fonts/Iosevka Term Thin Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..2a8e4f7
Binary files /dev/null and b/fonts/Iosevka Term Thin Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Term Thin Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Term Thin Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..7319ce4
Binary files /dev/null and b/fonts/Iosevka Term Thin Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Thin Nerd Font Complete.ttf b/fonts/Iosevka Term Thin Nerd Font Complete.ttf
new file mode 100644
index 0000000..755c2a5
Binary files /dev/null and b/fonts/Iosevka Term Thin Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Term Thin Oblique Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Term Thin Oblique Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..0fb638f
Binary files /dev/null and b/fonts/Iosevka Term Thin Oblique Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Thin Oblique Nerd Font Complete Mono.ttf b/fonts/Iosevka Term Thin Oblique Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..8e68b51
Binary files /dev/null and b/fonts/Iosevka Term Thin Oblique Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Term Thin Oblique Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Term Thin Oblique Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..da173d1
Binary files /dev/null and b/fonts/Iosevka Term Thin Oblique Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Term Thin Oblique Nerd Font Complete.ttf b/fonts/Iosevka Term Thin Oblique Nerd Font Complete.ttf
new file mode 100644
index 0000000..66b94fe
Binary files /dev/null and b/fonts/Iosevka Term Thin Oblique Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Thin Italic Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Thin Italic Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..c81d235
Binary files /dev/null and b/fonts/Iosevka Thin Italic Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Thin Italic Nerd Font Complete Mono.ttf b/fonts/Iosevka Thin Italic Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..f8205ce
Binary files /dev/null and b/fonts/Iosevka Thin Italic Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Thin Italic Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Thin Italic Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..db8f726
Binary files /dev/null and b/fonts/Iosevka Thin Italic Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Thin Italic Nerd Font Complete.ttf b/fonts/Iosevka Thin Italic Nerd Font Complete.ttf
new file mode 100644
index 0000000..2a4a38b
Binary files /dev/null and b/fonts/Iosevka Thin Italic Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Thin Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Thin Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..9f9b77d
Binary files /dev/null and b/fonts/Iosevka Thin Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Thin Nerd Font Complete Mono.ttf b/fonts/Iosevka Thin Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..a1e8dec
Binary files /dev/null and b/fonts/Iosevka Thin Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Thin Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Thin Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..bbff401
Binary files /dev/null and b/fonts/Iosevka Thin Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Thin Nerd Font Complete.ttf b/fonts/Iosevka Thin Nerd Font Complete.ttf
new file mode 100644
index 0000000..d1c4e7d
Binary files /dev/null and b/fonts/Iosevka Thin Nerd Font Complete.ttf differ
diff --git a/fonts/Iosevka Thin Oblique Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Iosevka Thin Oblique Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..b625f63
Binary files /dev/null and b/fonts/Iosevka Thin Oblique Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Thin Oblique Nerd Font Complete Mono.ttf b/fonts/Iosevka Thin Oblique Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..f0bc75b
Binary files /dev/null and b/fonts/Iosevka Thin Oblique Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Iosevka Thin Oblique Nerd Font Complete Windows Compatible.ttf b/fonts/Iosevka Thin Oblique Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..e5a4b8f
Binary files /dev/null and b/fonts/Iosevka Thin Oblique Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Iosevka Thin Oblique Nerd Font Complete.ttf b/fonts/Iosevka Thin Oblique Nerd Font Complete.ttf
new file mode 100644
index 0000000..014341c
Binary files /dev/null and b/fonts/Iosevka Thin Oblique Nerd Font Complete.ttf differ
diff --git a/fonts/JetBrainsMono-Bold.ttf b/fonts/JetBrainsMono-Bold.ttf
new file mode 100644
index 0000000..0a92809
Binary files /dev/null and b/fonts/JetBrainsMono-Bold.ttf differ
diff --git a/fonts/JetBrainsMono-BoldItalic.ttf b/fonts/JetBrainsMono-BoldItalic.ttf
new file mode 100644
index 0000000..d051920
Binary files /dev/null and b/fonts/JetBrainsMono-BoldItalic.ttf differ
diff --git a/fonts/JetBrainsMono-ExtraBold.ttf b/fonts/JetBrainsMono-ExtraBold.ttf
new file mode 100644
index 0000000..f85a85b
Binary files /dev/null and b/fonts/JetBrainsMono-ExtraBold.ttf differ
diff --git a/fonts/JetBrainsMono-ExtraBoldItalic.ttf b/fonts/JetBrainsMono-ExtraBoldItalic.ttf
new file mode 100644
index 0000000..30bd7e6
Binary files /dev/null and b/fonts/JetBrainsMono-ExtraBoldItalic.ttf differ
diff --git a/fonts/JetBrainsMono-ExtraLight.ttf b/fonts/JetBrainsMono-ExtraLight.ttf
new file mode 100644
index 0000000..a3b844e
Binary files /dev/null and b/fonts/JetBrainsMono-ExtraLight.ttf differ
diff --git a/fonts/JetBrainsMono-ExtraLightItalic.ttf b/fonts/JetBrainsMono-ExtraLightItalic.ttf
new file mode 100644
index 0000000..1457b44
Binary files /dev/null and b/fonts/JetBrainsMono-ExtraLightItalic.ttf differ
diff --git a/fonts/JetBrainsMono-Italic.ttf b/fonts/JetBrainsMono-Italic.ttf
new file mode 100644
index 0000000..e54a46e
Binary files /dev/null and b/fonts/JetBrainsMono-Italic.ttf differ
diff --git a/fonts/JetBrainsMono-Light.ttf b/fonts/JetBrainsMono-Light.ttf
new file mode 100644
index 0000000..dba79a7
Binary files /dev/null and b/fonts/JetBrainsMono-Light.ttf differ
diff --git a/fonts/JetBrainsMono-LightItalic.ttf b/fonts/JetBrainsMono-LightItalic.ttf
new file mode 100644
index 0000000..b5ac216
Binary files /dev/null and b/fonts/JetBrainsMono-LightItalic.ttf differ
diff --git a/fonts/JetBrainsMono-Medium.ttf b/fonts/JetBrainsMono-Medium.ttf
new file mode 100644
index 0000000..a6ba552
Binary files /dev/null and b/fonts/JetBrainsMono-Medium.ttf differ
diff --git a/fonts/JetBrainsMono-MediumItalic.ttf b/fonts/JetBrainsMono-MediumItalic.ttf
new file mode 100644
index 0000000..3c5aff8
Binary files /dev/null and b/fonts/JetBrainsMono-MediumItalic.ttf differ
diff --git a/fonts/JetBrainsMono-Regular.ttf b/fonts/JetBrainsMono-Regular.ttf
new file mode 100644
index 0000000..8da8aa4
Binary files /dev/null and b/fonts/JetBrainsMono-Regular.ttf differ
diff --git a/fonts/JetBrainsMono-SemiBold.ttf b/fonts/JetBrainsMono-SemiBold.ttf
new file mode 100644
index 0000000..94c1b18
Binary files /dev/null and b/fonts/JetBrainsMono-SemiBold.ttf differ
diff --git a/fonts/JetBrainsMono-SemiBoldItalic.ttf b/fonts/JetBrainsMono-SemiBoldItalic.ttf
new file mode 100644
index 0000000..51d8fdd
Binary files /dev/null and b/fonts/JetBrainsMono-SemiBoldItalic.ttf differ
diff --git a/fonts/JetBrainsMono-Thin.ttf b/fonts/JetBrainsMono-Thin.ttf
new file mode 100644
index 0000000..d1b977d
Binary files /dev/null and b/fonts/JetBrainsMono-Thin.ttf differ
diff --git a/fonts/JetBrainsMono-ThinItalic.ttf b/fonts/JetBrainsMono-ThinItalic.ttf
new file mode 100644
index 0000000..4e2f8c8
Binary files /dev/null and b/fonts/JetBrainsMono-ThinItalic.ttf differ
diff --git a/fonts/JetBrainsMonoNL-Bold.ttf b/fonts/JetBrainsMonoNL-Bold.ttf
new file mode 100644
index 0000000..b5962a3
Binary files /dev/null and b/fonts/JetBrainsMonoNL-Bold.ttf differ
diff --git a/fonts/JetBrainsMonoNL-BoldItalic.ttf b/fonts/JetBrainsMonoNL-BoldItalic.ttf
new file mode 100644
index 0000000..7dce20e
Binary files /dev/null and b/fonts/JetBrainsMonoNL-BoldItalic.ttf differ
diff --git a/fonts/JetBrainsMonoNL-ExtraBold.ttf b/fonts/JetBrainsMonoNL-ExtraBold.ttf
new file mode 100644
index 0000000..9a82e89
Binary files /dev/null and b/fonts/JetBrainsMonoNL-ExtraBold.ttf differ
diff --git a/fonts/JetBrainsMonoNL-ExtraBoldItalic.ttf b/fonts/JetBrainsMonoNL-ExtraBoldItalic.ttf
new file mode 100644
index 0000000..15416ae
Binary files /dev/null and b/fonts/JetBrainsMonoNL-ExtraBoldItalic.ttf differ
diff --git a/fonts/JetBrainsMonoNL-ExtraLight.ttf b/fonts/JetBrainsMonoNL-ExtraLight.ttf
new file mode 100644
index 0000000..dfc95ca
Binary files /dev/null and b/fonts/JetBrainsMonoNL-ExtraLight.ttf differ
diff --git a/fonts/JetBrainsMonoNL-ExtraLightItalic.ttf b/fonts/JetBrainsMonoNL-ExtraLightItalic.ttf
new file mode 100644
index 0000000..c79c70a
Binary files /dev/null and b/fonts/JetBrainsMonoNL-ExtraLightItalic.ttf differ
diff --git a/fonts/JetBrainsMonoNL-Italic.ttf b/fonts/JetBrainsMonoNL-Italic.ttf
new file mode 100644
index 0000000..ef28958
Binary files /dev/null and b/fonts/JetBrainsMonoNL-Italic.ttf differ
diff --git a/fonts/JetBrainsMonoNL-Light.ttf b/fonts/JetBrainsMonoNL-Light.ttf
new file mode 100644
index 0000000..e4fc288
Binary files /dev/null and b/fonts/JetBrainsMonoNL-Light.ttf differ
diff --git a/fonts/JetBrainsMonoNL-LightItalic.ttf b/fonts/JetBrainsMonoNL-LightItalic.ttf
new file mode 100644
index 0000000..4cbe624
Binary files /dev/null and b/fonts/JetBrainsMonoNL-LightItalic.ttf differ
diff --git a/fonts/JetBrainsMonoNL-Medium.ttf b/fonts/JetBrainsMonoNL-Medium.ttf
new file mode 100644
index 0000000..3d866ab
Binary files /dev/null and b/fonts/JetBrainsMonoNL-Medium.ttf differ
diff --git a/fonts/JetBrainsMonoNL-MediumItalic.ttf b/fonts/JetBrainsMonoNL-MediumItalic.ttf
new file mode 100644
index 0000000..756440c
Binary files /dev/null and b/fonts/JetBrainsMonoNL-MediumItalic.ttf differ
diff --git a/fonts/JetBrainsMonoNL-Regular.ttf b/fonts/JetBrainsMonoNL-Regular.ttf
new file mode 100644
index 0000000..1aa91ec
Binary files /dev/null and b/fonts/JetBrainsMonoNL-Regular.ttf differ
diff --git a/fonts/JetBrainsMonoNL-SemiBold.ttf b/fonts/JetBrainsMonoNL-SemiBold.ttf
new file mode 100644
index 0000000..aad3b86
Binary files /dev/null and b/fonts/JetBrainsMonoNL-SemiBold.ttf differ
diff --git a/fonts/JetBrainsMonoNL-SemiBoldItalic.ttf b/fonts/JetBrainsMonoNL-SemiBoldItalic.ttf
new file mode 100644
index 0000000..0beb4fb
Binary files /dev/null and b/fonts/JetBrainsMonoNL-SemiBoldItalic.ttf differ
diff --git a/fonts/JetBrainsMonoNL-Thin.ttf b/fonts/JetBrainsMonoNL-Thin.ttf
new file mode 100644
index 0000000..bcd9422
Binary files /dev/null and b/fonts/JetBrainsMonoNL-Thin.ttf differ
diff --git a/fonts/JetBrainsMonoNL-ThinItalic.ttf b/fonts/JetBrainsMonoNL-ThinItalic.ttf
new file mode 100644
index 0000000..56f4073
Binary files /dev/null and b/fonts/JetBrainsMonoNL-ThinItalic.ttf differ
diff --git a/fonts/Roboto Mono Bold Italic Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Roboto Mono Bold Italic Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..1d5e67a
Binary files /dev/null and b/fonts/Roboto Mono Bold Italic Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Roboto Mono Bold Italic Nerd Font Complete Mono.ttf b/fonts/Roboto Mono Bold Italic Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..dced500
Binary files /dev/null and b/fonts/Roboto Mono Bold Italic Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Roboto Mono Bold Italic Nerd Font Complete Windows Compatible.ttf b/fonts/Roboto Mono Bold Italic Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..405d006
Binary files /dev/null and b/fonts/Roboto Mono Bold Italic Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Roboto Mono Bold Italic Nerd Font Complete.ttf b/fonts/Roboto Mono Bold Italic Nerd Font Complete.ttf
new file mode 100644
index 0000000..e68d17d
Binary files /dev/null and b/fonts/Roboto Mono Bold Italic Nerd Font Complete.ttf differ
diff --git a/fonts/Roboto Mono Bold Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Roboto Mono Bold Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..af94a64
Binary files /dev/null and b/fonts/Roboto Mono Bold Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Roboto Mono Bold Nerd Font Complete Mono.ttf b/fonts/Roboto Mono Bold Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..62c3d76
Binary files /dev/null and b/fonts/Roboto Mono Bold Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Roboto Mono Bold Nerd Font Complete Windows Compatible.ttf b/fonts/Roboto Mono Bold Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..f5d9498
Binary files /dev/null and b/fonts/Roboto Mono Bold Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Roboto Mono Bold Nerd Font Complete.ttf b/fonts/Roboto Mono Bold Nerd Font Complete.ttf
new file mode 100644
index 0000000..57594bc
Binary files /dev/null and b/fonts/Roboto Mono Bold Nerd Font Complete.ttf differ
diff --git a/fonts/Roboto Mono Italic Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Roboto Mono Italic Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..2e5fbad
Binary files /dev/null and b/fonts/Roboto Mono Italic Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Roboto Mono Italic Nerd Font Complete Mono.ttf b/fonts/Roboto Mono Italic Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..ec569dc
Binary files /dev/null and b/fonts/Roboto Mono Italic Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Roboto Mono Italic Nerd Font Complete Windows Compatible.ttf b/fonts/Roboto Mono Italic Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..cc1f082
Binary files /dev/null and b/fonts/Roboto Mono Italic Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Roboto Mono Italic Nerd Font Complete.ttf b/fonts/Roboto Mono Italic Nerd Font Complete.ttf
new file mode 100644
index 0000000..5074217
Binary files /dev/null and b/fonts/Roboto Mono Italic Nerd Font Complete.ttf differ
diff --git a/fonts/Roboto Mono Light Italic Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Roboto Mono Light Italic Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..a2226ae
Binary files /dev/null and b/fonts/Roboto Mono Light Italic Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Roboto Mono Light Italic Nerd Font Complete Mono.ttf b/fonts/Roboto Mono Light Italic Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..e9f356e
Binary files /dev/null and b/fonts/Roboto Mono Light Italic Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Roboto Mono Light Italic Nerd Font Complete Windows Compatible.ttf b/fonts/Roboto Mono Light Italic Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..3587cbd
Binary files /dev/null and b/fonts/Roboto Mono Light Italic Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Roboto Mono Light Italic Nerd Font Complete.ttf b/fonts/Roboto Mono Light Italic Nerd Font Complete.ttf
new file mode 100644
index 0000000..448e4f4
Binary files /dev/null and b/fonts/Roboto Mono Light Italic Nerd Font Complete.ttf differ
diff --git a/fonts/Roboto Mono Light Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Roboto Mono Light Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..61dd6f1
Binary files /dev/null and b/fonts/Roboto Mono Light Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Roboto Mono Light Nerd Font Complete Mono.ttf b/fonts/Roboto Mono Light Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..96bc62d
Binary files /dev/null and b/fonts/Roboto Mono Light Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Roboto Mono Light Nerd Font Complete Windows Compatible.ttf b/fonts/Roboto Mono Light Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..bdf05af
Binary files /dev/null and b/fonts/Roboto Mono Light Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Roboto Mono Light Nerd Font Complete.ttf b/fonts/Roboto Mono Light Nerd Font Complete.ttf
new file mode 100644
index 0000000..2286b5e
Binary files /dev/null and b/fonts/Roboto Mono Light Nerd Font Complete.ttf differ
diff --git a/fonts/Roboto Mono Medium Italic Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Roboto Mono Medium Italic Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..976aa4e
Binary files /dev/null and b/fonts/Roboto Mono Medium Italic Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Roboto Mono Medium Italic Nerd Font Complete Mono.ttf b/fonts/Roboto Mono Medium Italic Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..c89e10b
Binary files /dev/null and b/fonts/Roboto Mono Medium Italic Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Roboto Mono Medium Italic Nerd Font Complete Windows Compatible.ttf b/fonts/Roboto Mono Medium Italic Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..aa3ea74
Binary files /dev/null and b/fonts/Roboto Mono Medium Italic Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Roboto Mono Medium Italic Nerd Font Complete.ttf b/fonts/Roboto Mono Medium Italic Nerd Font Complete.ttf
new file mode 100644
index 0000000..70316c6
Binary files /dev/null and b/fonts/Roboto Mono Medium Italic Nerd Font Complete.ttf differ
diff --git a/fonts/Roboto Mono Medium Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Roboto Mono Medium Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..4995c14
Binary files /dev/null and b/fonts/Roboto Mono Medium Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Roboto Mono Medium Nerd Font Complete Mono.ttf b/fonts/Roboto Mono Medium Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..4f8fa82
Binary files /dev/null and b/fonts/Roboto Mono Medium Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Roboto Mono Medium Nerd Font Complete Windows Compatible.ttf b/fonts/Roboto Mono Medium Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..65f4628
Binary files /dev/null and b/fonts/Roboto Mono Medium Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Roboto Mono Medium Nerd Font Complete.ttf b/fonts/Roboto Mono Medium Nerd Font Complete.ttf
new file mode 100644
index 0000000..2cdcbd5
Binary files /dev/null and b/fonts/Roboto Mono Medium Nerd Font Complete.ttf differ
diff --git a/fonts/Roboto Mono Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Roboto Mono Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..e4cfff6
Binary files /dev/null and b/fonts/Roboto Mono Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Roboto Mono Nerd Font Complete Mono.ttf b/fonts/Roboto Mono Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..7b14a22
Binary files /dev/null and b/fonts/Roboto Mono Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Roboto Mono Nerd Font Complete Windows Compatible.ttf b/fonts/Roboto Mono Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..5918a72
Binary files /dev/null and b/fonts/Roboto Mono Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Roboto Mono Nerd Font Complete.ttf b/fonts/Roboto Mono Nerd Font Complete.ttf
new file mode 100644
index 0000000..c1bf289
Binary files /dev/null and b/fonts/Roboto Mono Nerd Font Complete.ttf differ
diff --git a/fonts/Roboto Mono Thin Italic Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Roboto Mono Thin Italic Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..ace9508
Binary files /dev/null and b/fonts/Roboto Mono Thin Italic Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Roboto Mono Thin Italic Nerd Font Complete Mono.ttf b/fonts/Roboto Mono Thin Italic Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..2b54d9a
Binary files /dev/null and b/fonts/Roboto Mono Thin Italic Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Roboto Mono Thin Italic Nerd Font Complete Windows Compatible.ttf b/fonts/Roboto Mono Thin Italic Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..0202c8d
Binary files /dev/null and b/fonts/Roboto Mono Thin Italic Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Roboto Mono Thin Italic Nerd Font Complete.ttf b/fonts/Roboto Mono Thin Italic Nerd Font Complete.ttf
new file mode 100644
index 0000000..1fa4136
Binary files /dev/null and b/fonts/Roboto Mono Thin Italic Nerd Font Complete.ttf differ
diff --git a/fonts/Roboto Mono Thin Nerd Font Complete Mono Windows Compatible.ttf b/fonts/Roboto Mono Thin Nerd Font Complete Mono Windows Compatible.ttf
new file mode 100644
index 0000000..878fea2
Binary files /dev/null and b/fonts/Roboto Mono Thin Nerd Font Complete Mono Windows Compatible.ttf differ
diff --git a/fonts/Roboto Mono Thin Nerd Font Complete Mono.ttf b/fonts/Roboto Mono Thin Nerd Font Complete Mono.ttf
new file mode 100644
index 0000000..a04f161
Binary files /dev/null and b/fonts/Roboto Mono Thin Nerd Font Complete Mono.ttf differ
diff --git a/fonts/Roboto Mono Thin Nerd Font Complete Windows Compatible.ttf b/fonts/Roboto Mono Thin Nerd Font Complete Windows Compatible.ttf
new file mode 100644
index 0000000..7554e89
Binary files /dev/null and b/fonts/Roboto Mono Thin Nerd Font Complete Windows Compatible.ttf differ
diff --git a/fonts/Roboto Mono Thin Nerd Font Complete.ttf b/fonts/Roboto Mono Thin Nerd Font Complete.ttf
new file mode 100644
index 0000000..3e51754
Binary files /dev/null and b/fonts/Roboto Mono Thin Nerd Font Complete.ttf differ
diff --git a/install-on-arch.sh b/install-on-arch.sh
new file mode 100755
index 0000000..1ebca9f
--- /dev/null
+++ b/install-on-arch.sh
@@ -0,0 +1,137 @@
+#!/bin/bash
+
+config_directory="$HOME/.config"
+fonts_directory="/usr/share/fonts"
+
+green="\033[0;32m"
+no_color='\033[0m'
+
+echo "Welcome"
+
+alias pacman="pacman --noconfirm --needed"
+alias paru="paru --noconfirm --needed"
+
+# sudo pacman -Sy dialog
+
+install_base_pkgs() {
+ echo -e "${green}[*] Doing a system update, cause stuff may break if it's not the latest version...${no_color}"
+ sudo pacman -Suuy
+ sudo pacman -S base-devel wget git curl vim
+ sudo pacman -S pacman-contrib
+}
+
+install_software_pkgs() {
+ # Software
+
+ sudo pacman -S bluez bluez-utils cups
+
+ sudo systemctl enable bluetooth
+ sudo systemctl enable cups
+
+ echo -e "${green}[*] Installing software.${no_color}"
+ sudo pacman -S kitty tmux bottom flameshot keepassxc gnupg nitrogen pipewire pipewire-pulse polkit-gnome
+ sudo pacman -S discord
+ sudo pacman -S rofi rofi-calc xsel neofetch dunst libqalculate ranger pkgfile zathura texlive-core
+
+ # Shell utils
+ echo -e "${green}[*] Installing shell utils.${no_color}"
+ sudo pacman -S fish bat lsd fzf
+ sudo pacman -S mpv jq feh yt-dlp
+
+ # Graphics
+ echo -e "${green}[*] Installing graphics.${no_color}"
+ sudo pacman -S xorg xorg-server xorg-xinit lxappearance papirus-icon-theme
+ sudo pacman -S bspwm sxhkd
+
+ sudo pacman -S tor
+ sudo systemctl enable --now tor
+
+ # MTP protocol
+ echo -e "${green}[*] Installing mtp protocol.${no_color}"
+ sudo pacman -S mtpfs gvfs-mtp gvfs-gphoto2
+ sudo pacman -S ntfs-3g
+
+ # Python
+ echo -e "${green}[*] Installing python.${no_color}"
+ sudo pacman -S ipython poetry
+ sudo pacman -S python python-pip python-poetry
+
+ # VirtualMachine tool
+ echo -e "${green}[*] Configuring virtual manager.${no_color}"
+ sudo pacman -S qemu virt-manager ebtables dnsmasq firewalld nmap
+ sudo systemctl --now enable libvirtd
+ sudo systemctl --now enable firewalld
+ sudo sytemctl restart libvirtd
+}
+
+create_dotfiles() {
+ echo -e "${green}[*] Copying configs to $config_directory.${no_color}"
+ mkdir -p "$HOME"/.config
+ mkdir -p /usr/share/themes
+ mkdir -p "$HOME"/Pictures/screenshots
+}
+
+copy_fonts(){
+ echo -e "${green}[*] Copying fonts to $fonts_directory.${no_color}"
+ sudo cp -r ./fonts/* "$fonts_directory"
+ fc-cache -fv
+}
+
+# Install paru
+install_aur_helper() {
+ echo -e "${green}[*] Installing aur helper.${no_color}"
+ git clone https://aur.archlinux.org/paru.git
+ (cd paru && makepkg -si)
+ rm -rf paru
+}
+
+install_aur_pkgs() {
+ paru -S librewolf-bin timeshift-bin kotatogram-desktop-bin spotify pandoc-bin
+ paru -S polybar-git light-git picom-jonaburg-fix betterlockscreen
+ paru -S nordic-darker-theme
+ paru -S jmtpfs
+ paru -S epson-inkjet-printer-escpr
+}
+
+finishing() {
+ echo -e "${green}[*] Copying wallpapers to "$HOME"/Pictures/wallpapers.${no_color}"
+ cp -r ./wallpapers/* "$HOME"/Pictures/wallpapers
+ sudo chsh -s /bin/fish
+
+ # NeoVim
+ echo -e "${green}[*] Installing neovim.${no_color}"
+ sudo pacman -S neovim neovim-qt
+ sudo pacman -S clang python-black
+ sudo pacman -S npm ninja cargo
+ git clone --depth 1 https://github.com/wbthomason/packer.nvim\
+ ~/.local/share/nvim/site/pack/packer/start/packer.nvim
+ sudo npm i -g pyright
+ echo -e "${green}[*] Updating nvim extensions.${no_color}"
+ nvim +PackerSync
+}
+
+# cmd=(dialog --clear --separate-output --checklist "Select (with space) what script should do.\\nChecked options are required for proper installation, do not uncheck them if you do not know what you are doing." 26 86 16)
+# options=(
+# 1 "Install basic packages" on
+# 2 "Install software packages" on
+# 3 "Install aur helper" on
+# 4 "Install additional packages (aur)" on
+# 5 "Create default directories" on
+# 6 "Copy fonts" on
+# 7 "Copy wallpapers,set zsh as default shell,install & update nvim extensions." on)
+# choices=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty)
+#
+# clear
+#
+# for choice in $choices
+# do
+# case $choice in
+# 1) install_base_pkgs;;
+# 2) install_software_pkgs;;
+# 3) install_aur_helper;;
+# 4) install_aur_pkgs;;
+# 5) create_dotfiles;;
+# 6) copy_fonts;;
+# 7) finishing;;
+# esac
+# done
diff --git a/wallpapers/cropped-1920-1080-1203800.jpg b/wallpapers/cropped-1920-1080-1203800.jpg
new file mode 100644
index 0000000..51ee0ca
Binary files /dev/null and b/wallpapers/cropped-1920-1080-1203800.jpg differ
diff --git a/wallpapers/pastel-samurai-1920×1080.jpg b/wallpapers/pastel-samurai-1920×1080.jpg
new file mode 100644
index 0000000..73c2d7c
Binary files /dev/null and b/wallpapers/pastel-samurai-1920×1080.jpg differ
diff --git a/wallpapers/repost-because-a-lot-of-requests-in-runixporn-1920×1080.jpg b/wallpapers/repost-because-a-lot-of-requests-in-runixporn-1920×1080.jpg
new file mode 100644
index 0000000..8761997
Binary files /dev/null and b/wallpapers/repost-because-a-lot-of-requests-in-runixporn-1920×1080.jpg differ
diff --git a/wallpapers/snowy-mountain-at-night-2-1920×1080.jpg b/wallpapers/snowy-mountain-at-night-2-1920×1080.jpg
new file mode 100644
index 0000000..bd93c3f
Binary files /dev/null and b/wallpapers/snowy-mountain-at-night-2-1920×1080.jpg differ