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