aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Matei Pintilie <lucafulger@gmail.com>2021-12-21 20:26:50 +0000
committerLuca Matei Pintilie <lucafulger@gmail.com>2021-12-21 20:26:50 +0000
commitf8acb4edc93d2570856381eb7fb6f75db3955cf6 (patch)
treed8db466f88799f7d796e0b93d6a2ad8394c599c9
parent2169a4155362a7f1639e4ad78033abb193f2d565 (diff)
downloaddotfiles-f8acb4edc93d2570856381eb7fb6f75db3955cf6.tar
dotfiles-f8acb4edc93d2570856381eb7fb6f75db3955cf6.tar.gz
dotfiles-f8acb4edc93d2570856381eb7fb6f75db3955cf6.tar.bz2
dotfiles-f8acb4edc93d2570856381eb7fb6f75db3955cf6.tar.lz
dotfiles-f8acb4edc93d2570856381eb7fb6f75db3955cf6.tar.xz
dotfiles-f8acb4edc93d2570856381eb7fb6f75db3955cf6.tar.zst
dotfiles-f8acb4edc93d2570856381eb7fb6f75db3955cf6.zip
Initial commit2
-rw-r--r--.config/Vieb/viebrc200
-rw-r--r--.config/alacritty/alacritty.yml853
m---------.config/alacritty/themes/dracula0
-rw-r--r--.config/eww/eww.scss66
-rw-r--r--.config/eww/eww.yuck61
-rwxr-xr-x.config/eww/scripts/get_brightness2
-rwxr-xr-x.config/eww/scripts/get_headvol2
-rwxr-xr-x.config/eww/scripts/get_mastervol2
-rwxr-xr-x.config/eww/scripts/getram2
-rw-r--r--.config/fish/completions/alacritty.fish74
-rw-r--r--.config/fish/completions/pass.fish116
-rw-r--r--.config/fish/conf.d/dracula.fish33
-rw-r--r--.config/fish/config.fish24
-rw-r--r--.config/fish/fish_plugins1
-rw-r--r--.config/fish/fish_variables34
l---------.config/fish/functions/br.fish1
-rw-r--r--.config/fish/functions/fish_greeting.fish4
l---------.config/glava/bars1
-rwxr-xr-x.config/glava/bars.glsl33
l---------.config/glava/circle1
-rwxr-xr-x.config/glava/circle.glsl24
-rwxr-xr-x.config/glava/env_KWin.glsl8
-rwxr-xr-x.config/glava/env_Openbox.glsl2
-rwxr-xr-x.config/glava/env_Xfwm4.glsl3
-rwxr-xr-x.config/glava/env_awesome.glsl1
-rwxr-xr-x.config/glava/env_default.glsl1
-rwxr-xr-x.config/glava/env_i3.glsl1
l---------.config/glava/graph1
-rwxr-xr-x.config/glava/graph.glsl31
l---------.config/glava/radial1
-rwxr-xr-x.config/glava/radial.glsl39
-rwxr-xr-x.config/glava/rc.glsl227
-rwxr-xr-x.config/glava/smooth_parameters.glsl78
l---------.config/glava/util1
l---------.config/glava/wave1
-rwxr-xr-x.config/glava/wave.glsl14
-rw-r--r--.config/nvim/LICENSE674
-rw-r--r--.config/nvim/lua/custom/chadrc.lua39
-rw-r--r--.config/nvim/lua/custom/init.lua84
-rw-r--r--.config/rofi/config.rasi93
-rw-r--r--.config/starship.toml708
-rw-r--r--.gitmodules3
-rwxr-xr-xbootstrap.sh49
43 files changed, 3593 insertions, 0 deletions
diff --git a/.config/Vieb/viebrc b/.config/Vieb/viebrc
new file mode 100644
index 0000000..4509616
--- /dev/null
+++ b/.config/Vieb/viebrc
@@ -0,0 +1,200 @@
+" Options
+set adblocker=update
+set cache=clearonquit
+" set noclearcookiesonquit
+set nocleardownloadsoncompleted
+set nocleardownloadsonquit
+" set noclearhistoryonquit
+" set noclearlocalstorageonquit
+" set noclosablepinnedtabs
+set commandhist=useronly
+set containercolors=temp\d+~#ff0
+set containerkeeponreopen
+set containernewtab=s:usecurrent
+set containershowname=automatic
+set containersplitpage=s:usecurrent
+set containerstartuppage=main
+set countlimit=100
+set devtoolsposition=split
+set downloadmethod=confirm
+set downloadpath=~/Downloads/
+set explorehist
+set externalcommand=
+set favicons=session
+set favoritepages=
+set firefoxmode=always
+set follownewtabswitch
+set fontsize=16
+set guifullscreennavbar=oninput
+set guifullscreentabbar=onupdate
+set guihidetimeout=2000
+set guinavbar=always
+set guitabbar=always
+set ignorecase
+set incsearch
+set keeprecentlyclosed
+set mapsuggest=9000000000000000
+set mapsuggestposition=topright
+set maxmapdepth=10
+set menupage=elementasneeded
+set menuvieb=both
+set mintabwidth=250
+set modifiers=
+set modifiers+=Ctrl
+set modifiers+=Shift
+set modifiers+=Alt
+set modifiers+=Meta
+set modifiers+=NumLock
+set modifiers+=CapsLock
+set modifiers+=ScrollLock
+set mouse
+set nomousefocus
+set mousenewtabswitch
+set mousevisualmode=onswitch
+set nativenotification=never
+set notificationduration=6000
+set nonotificationforpermissions
+set notificationposition=bottomright
+set permissioncamera=ask
+set permissionclipboardread=block
+set permissionclosepage=allow
+set permissiondisplaycapture=ask
+set permissionfullscreen=allow
+set permissiongeolocation=block
+set permissionmediadevices=allow
+set permissionmicrophone=ask
+set permissionmidi=block
+set permissionmidisysex=block
+set permissionnotifications=block
+set permissionopenexternal=ask
+set permissionpersistentstorage=allow
+set permissionpointerlock=block
+set permissionsallowed=
+set permissionsasked=
+set permissionsblocked=
+set permissionscreenwakelock=block
+set permissionsensors=block
+set permissionunknown=block
+set noquitonlasttabclose
+set redirects=https?://(www\.)?google\.com(\.\w+)?/amp/s/amp\.(.*)~https://$3
+set redirecttohttp
+set requesttimeout=20000
+set norestoretabs
+set restorewindowmaximize
+set restorewindowposition
+set restorewindowsize
+set search=https://searx.be/search?q=%s
+set searchwords=
+set showcmd
+set smartcase
+set spell
+set spelllang=system
+set splitbelow
+set nosplitright
+set startuppages=
+set storenewvisits=pages
+set suggestcommands=9000000000000000
+set suggestorder=
+set suggestorder+=history
+set suggestorder+=searchword
+set suggestorder+=file
+set suggesttopsites=10
+set suspendonrestore=regular
+set suspendtimeout=0
+set tabclosefocusright
+set tabcycle
+set tabnexttocurrent
+set taboverflow=scroll
+set tabreopenposition=previous
+set timeout
+set timeoutlen=1000
+set vimcommand=nvim
+set windowtitle=title
+
+" Mappings
+map <C-j> <:downloads>
+map <C-k> <toExploreMode>
+map <C-t> <openNewTab><toExploreMode>
+map <F5> <reload>
+map <F12> <:devtools>
+map <C-PageUp> <previousTab>
+map <C-PageDown> <nextTab>
+map <C-F4> <:close>
+map <C-F5> <reloadWithoutCache>
+map <C-h> <:history>
+map <C-l> <toExploreMode>
+map <C-p> <:hardcopy>
+map <C-q> <:quit>
+map <C-s> <:write>
+map <C-Tab> <nextTab>
+map <C-S-PageUp> <moveTabBackward>
+map <C-S-PageDown> <moveTabForward>
+map <C-S-Tab> <previousTab>
+map <C-I> <:devtools>
+map <C-T> <reopenTab>
+map <C-Y> <:downloads>
+map <A-Left> <backInHistory>
+map <A-Right> <forwardInHistory>
+map <A-0> <:b 9999>
+map <A-1> <:b 0>
+map <A-2> <:b 1>
+map <A-3> <:b 2>
+map <A-4> <:b 3>
+map <A-5> <:b 4>
+map <A-6> <:b 5>
+map <A-7> <:b 6>
+map <A-8> <:b 7>
+map <A-9> <:b 8>
+cmap <F6> <toExploreMode>
+cmap <F7> <p.start>
+cmap <C-f> <toSearchMode>
+cmap <Up> <commandHistoryPrevious>
+cmap <Down> <commandHistoryNext>
+emap <F6> <toNormalMode>
+emap <F7> <p.start>
+emap <C-f> <toSearchMode>
+emap <Up> <prevSuggestion>
+emap <Down> <nextSuggestion>
+fmap <F6> <toExploreMode>
+fmap <F7> <p.start>
+fmap <C-f> <toSearchMode>
+imap <F6> <toExploreMode>
+imap <F7> <p.start>
+imap <C-f> <toSearchMode>
+mmap <F6> <toExploreMode>
+mmap <F7> <p.start>
+mmap <C-f> <toSearchMode>
+nmap <C-f> <toSearchMode>
+nmap <Up> <scrollUp>
+nmap <Down> <scrollDown>
+nmap <Left> <scrollLeft>
+nmap <Right> <scrollRight>
+nmap <PageUp> <scrollPageUp>
+nmap <PageDown> <scrollPageDown>
+nmap <Home> <scrollTop>
+nmap <End> <scrollBottom>
+nmap <F3> <toSearchMode><nextSearchMatch>
+nmap <S-F3> <toSearchMode><previousSearchMatch>
+nmap <C-g> <toSearchMode><nextSearchMatch>
+nmap <C-G> <toSearchMode><previousSearchMatch>
+nmap <F6> <toExploreMode>
+nmap <F7> <p.start>
+pmap <F6> <toExploreMode>
+pmap <F7> <toNormalMode>
+pmap <C-f> <toSearchMode>
+smap <F6> <toExploreMode>
+smap <F7> <p.start>
+smap <C-f> <toSearchMode>
+smap <F3> <nextSearchMatch>
+smap <C-g> <nextSearchMatch>
+smap <S-F3> <previousSearchMatch>
+smap <C-G> <previousSearchMatch>
+vmap <F6> <toExploreMode>
+vmap <F7> <toNormalMode>
+vmap <C-f> <p.searchText>
+
+" Commands
+colorscheme default
+
+" Viebrc generated by Vieb
+" vim: ft=vim
diff --git a/.config/alacritty/alacritty.yml b/.config/alacritty/alacritty.yml
new file mode 100644
index 0000000..47a31f4
--- /dev/null
+++ b/.config/alacritty/alacritty.yml
@@ -0,0 +1,853 @@
+# Configuration for Alacritty, the GPU enhanced terminal emulator.
+
+# Import additional configuration files
+#
+# Imports are loaded in order, skipping all missing files, with the importing
+# file being loaded last. If a field is already present in a previous import, it
+# will be replaced.
+#
+# All imports must either be absolute paths starting with `/`, or paths relative
+# to the user's home directory starting with `~/`.
+import:
+ - ~/.config/alacritty/themes/dracula/dracula.yml
+# - /path/to/alacritty.yml
+
+# Any items in the `env` entry below will be added as
+# environment variables. Some entries may override variables
+# set by alacritty itself.
+#env:
+ # TERM variable
+ #
+ # This value is used to set the `$TERM` environment variable for
+ # each instance of Alacritty. If it is not present, alacritty will
+ # check the local terminfo database and use `alacritty` if it is
+ # available, otherwise `xterm-256color` is used.
+ #TERM: alacritty
+
+window:
+ # Window dimensions (changes require restart)
+ #
+ # Number of lines/columns (not pixels) in the terminal. The number of columns
+ # must be at least `2`, while using a value of `0` for columns and lines will
+ # fall back to the window manager's recommended size.
+ #dimensions:
+ # columns: 0
+ # lines: 0
+
+ # Window position (changes require restart)
+ #
+ # Specified in number of pixels.
+ # If the position is not set, the window manager will handle the placement.
+ #position:
+ # x: 0
+ # y: 0
+
+ # Window padding (changes require restart)
+ #
+ # Blank space added around the window in pixels. This padding is scaled
+ # by DPI and the specified value is always added at both opposing sides.
+ #padding:
+ # x: 0
+ # y: 0
+
+ # Spread additional padding evenly around the terminal content.
+ #dynamic_padding: false
+
+ # Window decorations
+ #
+ # Values for `decorations`:
+ # - full: Borders and title bar
+ # - none: Neither borders nor title bar
+ #
+ # Values for `decorations` (macOS only):
+ # - transparent: Title bar, transparent background and title bar buttons
+ # - buttonless: Title bar, transparent background and no title bar buttons
+ #decorations: full
+
+ # Startup Mode (changes require restart)
+ #
+ # Values for `startup_mode`:
+ # - Windowed
+ # - Maximized
+ # - Fullscreen
+ #
+ # Values for `startup_mode` (macOS only):
+ # - SimpleFullscreen
+ #startup_mode: Windowed
+
+ # Window title
+ #title: Alacritty
+
+ # Allow terminal applications to change Alacritty's window title.
+ #dynamic_title: true
+
+ # Window class (Linux/BSD only):
+ #class:
+ # Application instance name
+ #instance: Alacritty
+ # General application class
+ #general: Alacritty
+
+ # GTK theme variant (Linux/BSD only)
+ #
+ # Override the variant of the GTK theme. Commonly supported values are `dark`
+ # and `light`. Set this to `None` to use the default theme variant.
+ gtk_theme_variant: None
+
+#scrolling:
+ # Maximum number of lines in the scrollback buffer.
+ # Specifying '0' will disable scrolling.
+ #history: 10000
+
+ # Scrolling distance multiplier.
+ #multiplier: 3
+
+# Font configuration
+font:
+ # Normal (roman) font face
+ normal:
+ # Font family
+ #
+ # Default:
+ # - (macOS) Menlo
+ # - (Linux/BSD) monospace
+ # - (Windows) Consolas
+ family: monospace
+
+ # The `style` can be specified to pick a specific face.
+ #style: Regular
+
+ # Bold font face
+ #bold:
+ # Font family
+ #
+ # If the bold family is not specified, it will fall back to the
+ # value specified for the normal font.
+ #family: monospace
+
+ # The `style` can be specified to pick a specific face.
+ #style: Bold
+
+ # Italic font face
+ #italic:
+ # Font family
+ #
+ # If the italic family is not specified, it will fall back to the
+ # value specified for the normal font.
+ #family: monospace
+
+ # The `style` can be specified to pick a specific face.
+ #style: Italic
+
+ # Bold italic font face
+ #bold_italic:
+ # Font family
+ #
+ # If the bold italic family is not specified, it will fall back to the
+ # value specified for the normal font.
+ #family: monospace
+
+ # The `style` can be specified to pick a specific face.
+ #style: Bold Italic
+
+ # Point size
+ size: 24.0
+
+ # Offset is the extra space around each character. `offset.y` can be thought
+ # of as modifying the line spacing, and `offset.x` as modifying the letter
+ # spacing.
+ #offset:
+ # x: 0
+ # y: 0
+
+ # Glyph offset determines the locations of the glyphs within their cells with
+ # the default being at the bottom. Increasing `x` moves the glyph to the
+ # right, increasing `y` moves the glyph upward.
+ #glyph_offset:
+ # x: 0
+ # y: 0
+
+ # Thin stroke font rendering (macOS only)
+ #
+ # Thin strokes are suitable for retina displays, but for non-retina screens
+ # it is recommended to set `use_thin_strokes` to `false`.
+ #use_thin_strokes: true
+
+# If `true`, bold text is drawn using the bright color variants.
+#draw_bold_text_with_bright_colors: false
+
+# Colors (Tomorrow Night)
+#colors:
+ # Default colors
+ #primary:
+ # background: '#1d1f21'
+ # foreground: '#c5c8c6'
+
+ # Bright and dim foreground colors
+ #
+ # The dimmed foreground color is calculated automatically if it is not
+ # present. If the bright foreground color is not set, or
+ # `draw_bold_text_with_bright_colors` is `false`, the normal foreground
+ # color will be used.
+ #dim_foreground: '#828482'
+ #bright_foreground: '#eaeaea'
+
+ # Cursor colors
+ #
+ # Colors which should be used to draw the terminal cursor.
+ #
+ # Allowed values are CellForeground/CellBackground, which reference the
+ # affected cell, or hexadecimal colors like #ff00ff.
+ #cursor:
+ # text: CellBackground
+ # cursor: CellForeground
+
+ # Vi mode cursor colors
+ #
+ # Colors for the cursor when the vi mode is active.
+ #
+ # Allowed values are CellForeground/CellBackground, which reference the
+ # affected cell, or hexadecimal colors like #ff00ff.
+ #vi_mode_cursor:
+ # text: CellBackground
+ # cursor: CellForeground
+
+ # Search colors
+ #
+ # Colors used for the search bar and match highlighting.
+ #search:
+ # Allowed values are CellForeground/CellBackground, which reference the
+ # affected cell, or hexadecimal colors like #ff00ff.
+ #matches:
+ # foreground: '#000000'
+ # background: '#ffffff'
+ #focused_match:
+ # foreground: '#ffffff'
+ # background: '#000000'
+
+ #bar:
+ # background: '#c5c8c6'
+ # foreground: '#1d1f21'
+
+ # Keyboard regex hints
+ #hints:
+ # First character in the hint label
+ #
+ # Allowed values are CellForeground/CellBackground, which reference the
+ # affected cell, or hexadecimal colors like #ff00ff.
+ #start:
+ # foreground: '#1d1f21'
+ # background: '#e9ff5e'
+
+ # All characters after the first one in the hint label
+ #
+ # Allowed values are CellForeground/CellBackground, which reference the
+ # affected cell, or hexadecimal colors like #ff00ff.
+ #end:
+ # foreground: '#e9ff5e'
+ # background: '#1d1f21'
+
+ # Line indicator
+ #
+ # Color used for the indicator displaying the position in history during
+ # search and vi mode.
+ #
+ # By default, these will use the opposing primary color.
+ #line_indicator:
+ # foreground: None
+ # background: None
+
+ # Selection colors
+ #
+ # Colors which should be used to draw the selection area.
+ #
+ # Allowed values are CellForeground/CellBackground, which reference the
+ # affected cell, or hexadecimal colors like #ff00ff.
+ #selection:
+ # text: CellBackground
+ # background: CellForeground
+
+ # Normal colors
+ #normal:
+ # black: '#1d1f21'
+ # red: '#cc6666'
+ # green: '#b5bd68'
+ # yellow: '#f0c674'
+ # blue: '#81a2be'
+ # magenta: '#b294bb'
+ # cyan: '#8abeb7'
+ # white: '#c5c8c6'
+
+ # Bright colors
+ #bright:
+ # black: '#666666'
+ # red: '#d54e53'
+ # green: '#b9ca4a'
+ # yellow: '#e7c547'
+ # blue: '#7aa6da'
+ # magenta: '#c397d8'
+ # cyan: '#70c0b1'
+ # white: '#eaeaea'
+
+ # Dim colors
+ #
+ # If the dim colors are not set, they will be calculated automatically based
+ # on the `normal` colors.
+ #dim:
+ # black: '#131415'
+ # red: '#864343'
+ # green: '#777c44'
+ # yellow: '#9e824c'
+ # blue: '#556a7d'
+ # magenta: '#75617b'
+ # cyan: '#5b7d78'
+ # white: '#828482'
+
+ # Indexed Colors
+ #
+ # The indexed colors include all colors from 16 to 256.
+ # When these are not set, they're filled with sensible defaults.
+ #
+ # Example:
+ # `- { index: 16, color: '#ff00ff' }`
+ #
+ #indexed_colors: []
+
+# Bell
+#
+# The bell is rung every time the BEL control character is received.
+#bell:
+ # Visual Bell Animation
+ #
+ # Animation effect for flashing the screen when the visual bell is rung.
+ #
+ # Values for `animation`:
+ # - Ease
+ # - EaseOut
+ # - EaseOutSine
+ # - EaseOutQuad
+ # - EaseOutCubic
+ # - EaseOutQuart
+ # - EaseOutQuint
+ # - EaseOutExpo
+ # - EaseOutCirc
+ # - Linear
+ #animation: EaseOutExpo
+
+ # Duration of the visual bell flash in milliseconds. A `duration` of `0` will
+ # disable the visual bell animation.
+ #duration: 0
+
+ # Visual bell animation color.
+ #color: '#ffffff'
+
+ # Bell Command
+ #
+ # This program is executed whenever the bell is rung.
+ #
+ # When set to `command: None`, no command will be executed.
+ #
+ # Example:
+ # command:
+ # program: notify-send
+ # args: ["Hello, World!"]
+ #
+ #command: None
+
+# Background opacity
+#
+# Window opacity as a floating point number from `0.0` to `1.0`.
+# The value `0.0` is completely transparent and `1.0` is opaque.
+background_opacity: 1
+
+#election:
+ # This string contains all characters that are used as separators for
+ # "semantic words" in Alacritty.
+ #semantic_escape_chars: ",│`|:\"' ()[]{}<>\t"
+
+ # When set to `true`, selected text will be copied to the primary clipboard.
+ #save_to_clipboard: false
+
+cursor:
+ # Cursor style
+ style:
+ # Cursor shape
+ #
+ # Values for `shape`:
+ # - ▇ Block
+ # - _ Underline
+ # - | Beam
+ shape: Beam
+
+ # Cursor blinking state
+ #
+ # Values for `blinking`:
+ # - Never: Prevent the cursor from ever blinking
+ # - Off: Disable blinking by default
+ # - On: Enable blinking by default
+ # - Always: Force the cursor to always blink
+ #blinking: Off
+
+ # Vi mode cursor style
+ #
+ # If the vi mode cursor style is `None` or not specified, it will fall back to
+ # the style of the active value of the normal cursor.
+ #
+ # See `cursor.style` for available options.
+ #vi_mode_style: None
+
+ # Cursor blinking interval in milliseconds.
+ #blink_interval: 750
+
+ # If this is `true`, the cursor will be rendered as a hollow box when the
+ # window is not focused.
+ #unfocused_hollow: true
+
+ # Thickness of the cursor relative to the cell width as floating point number
+ # from `0.0` to `1.0`.
+ #thickness: 0.15
+
+# Live config reload (changes require restart)
+live_config_reload: true
+
+# Shell
+#
+# You can set `shell.program` to the path of your favorite shell, e.g.
+# `/bin/fish`. Entries in `shell.args` are passed unmodified as arguments to the
+# shell.
+#
+# Default:
+# - (macOS) /bin/bash --login
+# - (Linux/BSD) user login shell
+# - (Windows) powershell
+#shell:
+# program: /bin/bash
+# args:
+# - --login
+
+# Startup directory
+#
+# Directory the shell is started in. If this is unset, or `None`, the working
+# directory of the parent process will be used.
+#working_directory: None
+
+# Send ESC (\x1b) before characters when alt is pressed.
+#alt_send_esc: true
+
+#mouse:
+ # Click settings
+ #
+ # The `double_click` and `triple_click` settings control the time
+ # alacritty should wait for accepting multiple clicks as one double
+ # or triple click.
+ #double_click: { threshold: 300 }
+ #triple_click: { threshold: 300 }
+
+ # If this is `true`, the cursor is temporarily hidden when typing.
+ #hide_when_typing: false
+
+# Regex hints
+#
+# Terminal hints can be used to find text in the visible part of the terminal
+# and pipe it to other applications.
+#hints:
+ # Keys used for the hint labels.
+ #alphabet: "jfkdls;ahgurieowpq"
+
+ # List with all available hints
+ #
+ # Each hint must have a `regex` and either an `action` or a `command` field.
+ # The fields `mouse`, `binding` and `post_processing` are optional.
+ #
+ # The fields `command`, `binding.key`, `binding.mods`, `binding.mode` and
+ # `mouse.mods` accept the same values as they do in the `key_bindings` section.
+ #
+ # The `mouse.enabled` field controls if the hint should be underlined while
+ # the mouse with all `mouse.mods` keys held or the vi mode cursor is above it.
+ #
+ # If the `post_processing` field is set to `true`, heuristics will be used to
+ # shorten the match if there are characters likely not to be part of the hint
+ # (e.g. a trailing `.`). This is most useful for URIs.
+ #
+ # Values for `action`:
+ # - Copy
+ # Copy the hint's text to the clipboard.
+ # - Paste
+ # Paste the hint's text to the terminal or search.
+ # - Select
+ # Select the hint's text.
+ # - MoveViModeCursor
+ # Move the vi mode cursor to the beginning of the hint.
+ #enabled:
+ # - regex: "(ipfs:|ipns:|magnet:|mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)\
+ # [^\u0000-\u001F\u007F-\u009F<>\"\\s{-}\\^⟨⟩`]+"
+ # command: xdg-open
+ # post_processing: true
+ # mouse:
+ # enabled: true
+ # mods: None
+ # binding:
+ # key: U
+ # mods: Control|Shift
+
+# Mouse bindings
+#
+# Mouse bindings are specified as a list of objects, much like the key
+# bindings further below.
+#
+# To trigger mouse bindings when an application running within Alacritty
+# captures the mouse, the `Shift` modifier is automatically added as a
+# requirement.
+#
+# Each mouse binding will specify a:
+#
+# - `mouse`:
+#
+# - Middle
+# - Left
+# - Right
+# - Numeric identifier such as `5`
+#
+# - `action` (see key bindings)
+#
+# And optionally:
+#
+# - `mods` (see key bindings)
+#mouse_bindings:
+# - { mouse: Middle, action: PasteSelection }
+
+# Key bindings
+#
+# Key bindings are specified as a list of objects. For example, this is the
+# default paste binding:
+#
+# `- { key: V, mods: Control|Shift, action: Paste }`
+#
+# Each key binding will specify a:
+#
+# - `key`: Identifier of the key pressed
+#
+# - A-Z
+# - F1-F24
+# - Key0-Key9
+#
+# A full list with available key codes can be found here:
+# https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants
+#
+# Instead of using the name of the keys, the `key` field also supports using
+# the scancode of the desired key. Scancodes have to be specified as a
+# decimal number. This command will allow you to display the hex scancodes
+# for certain keys:
+#
+# `showkey --scancodes`.
+#
+# Then exactly one of:
+#
+# - `chars`: Send a byte sequence to the running application
+#
+# The `chars` field writes the specified string to the terminal. This makes
+# it possible to pass escape sequences. To find escape codes for bindings
+# like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside
+# of tmux. Note that applications use terminfo to map escape sequences back
+# to keys. It is therefore required to update the terminfo when changing an
+# escape sequence.
+#
+# - `action`: Execute a predefined action
+#
+# - ToggleViMode
+# - SearchForward
+# Start searching toward the right of the search origin.
+# - SearchBackward
+# Start searching toward the left of the search origin.
+# - Copy
+# - Paste
+# - IncreaseFontSize
+# - DecreaseFontSize
+# - ResetFontSize
+# - ScrollPageUp
+# - ScrollPageDown
+# - ScrollHalfPageUp
+# - ScrollHalfPageDown
+# - ScrollLineUp
+# - ScrollLineDown
+# - ScrollToTop
+# - ScrollToBottom
+# - ClearHistory
+# Remove the terminal's scrollback history.
+# - Hide
+# Hide the Alacritty window.
+# - Minimize
+# Minimize the Alacritty window.
+# - Quit
+# Quit Alacritty.
+# - ToggleFullscreen
+# - SpawnNewInstance
+# Spawn a new instance of Alacritty.
+# - ClearLogNotice
+# Clear Alacritty's UI warning and error notice.
+# - ClearSelection
+# Remove the active selection.
+# - ReceiveChar
+# - None
+#
+# - Vi mode exclusive actions:
+#
+# - Open
+# Perform the action of the first matching hint under the vi mode cursor
+# with `mouse.enabled` set to `true`.
+# - ToggleNormalSelection
+# - ToggleLineSelection
+# - ToggleBlockSelection
+# - ToggleSemanticSelection
+# Toggle semantic selection based on `selection.semantic_escape_chars`.
+#
+# - Vi mode exclusive cursor motion actions:
+#
+# - Up
+# One line up.
+# - Down
+# One line down.
+# - Left
+# One character left.
+# - Right
+# One character right.
+# - First
+# First column, or beginning of the line when already at the first column.
+# - Last
+# Last column, or beginning of the line when already at the last column.
+# - FirstOccupied
+# First non-empty cell in this terminal row, or first non-empty cell of
+# the line when already at the first cell of the row.
+# - High
+# Top of the screen.
+# - Middle
+# Center of the screen.
+# - Low
+# Bottom of the screen.
+# - SemanticLeft
+# Start of the previous semantically separated word.
+# - SemanticRight
+# Start of the next semantically separated word.
+# - SemanticLeftEnd
+# End of the previous semantically separated word.
+# - SemanticRightEnd
+# End of the next semantically separated word.
+# - WordLeft
+# Start of the previous whitespace separated word.
+# - WordRight
+# Start of the next whitespace separated word.
+# - WordLeftEnd
+# End of the previous whitespace separated word.
+# - WordRightEnd
+# End of the next whitespace separated word.
+# - Bracket
+# Character matching the bracket at the cursor's location.
+# - SearchNext
+# Beginning of the next match.
+# - SearchPrevious
+# Beginning of the previous match.
+# - SearchStart
+# Start of the match to the left of the vi mode cursor.
+# - SearchEnd
+# End of the match to the right of the vi mode cursor.
+#
+# - Search mode exclusive actions:
+# - SearchFocusNext
+# Move the focus to the next search match.
+# - SearchFocusPrevious
+# Move the focus to the previous search match.
+# - SearchConfirm
+# - SearchCancel
+# - SearchClear
+# Reset the search regex.
+# - SearchDeleteWord
+# Delete the last word in the search regex.
+# - SearchHistoryPrevious
+# Go to the previous regex in the search history.
+# - SearchHistoryNext
+# Go to the next regex in the search history.
+#
+# - macOS exclusive actions:
+# - ToggleSimpleFullscreen
+# Enter fullscreen without occupying another space.
+#
+# - Linux/BSD exclusive actions:
+#
+# - CopySelection
+# Copy from the selection buffer.
+# - PasteSelection
+# Paste from the selection buffer.
+#
+# - `command`: Fork and execute a specified command plus arguments
+#
+# The `command` field must be a map containing a `program` string and an
+# `args` array of command line parameter strings. For example:
+# `{ program: "alacritty", args: ["-e", "vttest"] }`
+#
+# And optionally:
+#
+# - `mods`: Key modifiers to filter binding actions
+#
+# - Command
+# - Control
+# - Option
+# - Super
+# - Shift
+# - Alt
+#
+# Multiple `mods` can be combined using `|` like this:
+# `mods: Control|Shift`.
+# Whitespace and capitalization are relevant and must match the example.
+#
+# - `mode`: Indicate a binding for only specific terminal reported modes
+#
+# This is mainly used to send applications the correct escape sequences
+# when in different modes.
+#
+# - AppCursor
+# - AppKeypad
+# - Search
+# - Alt
+# - Vi
+#
+# A `~` operator can be used before a mode to apply the binding whenever
+# the mode is *not* active, e.g. `~Alt`.
+#
+# Bindings are always filled by default, but will be replaced when a new
+# binding with the same triggers is defined. To unset a default binding, it can
+# be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for
+# a no-op if you do not wish to receive input characters for that binding.
+#
+# If the same trigger is assigned to multiple actions, all of them are executed
+# in the order they were defined in.
+#key_bindings:
+ #- { key: Paste, action: Paste }
+ #- { key: Copy, action: Copy }
+ #- { key: L, mods: Control, action: ClearLogNotice }
+ #- { key: L, mods: Control, mode: ~Vi|~Search, chars: "\x0c" }
+ #- { key: PageUp, mods: Shift, mode: ~Alt, action: ScrollPageUp, }
+ #- { key: PageDown, mods: Shift, mode: ~Alt, action: ScrollPageDown }
+ #- { key: Home, mods: Shift, mode: ~Alt, action: ScrollToTop, }
+ #- { key: End, mods: Shift, mode: ~Alt, action: ScrollToBottom }
+
+ # Vi Mode
+ #- { key: Space, mods: Shift|Control, mode: Vi|~Search, action: ScrollToBottom }
+ #- { key: Space, mods: Shift|Control, mode: ~Search, action: ToggleViMode }
+ #- { key: Escape, mode: Vi|~Search, action: ClearSelection }
+ #- { key: I, mode: Vi|~Search, action: ScrollToBottom }
+ #- { key: I, mode: Vi|~Search, action: ToggleViMode }
+ #- { key: C, mods: Control, mode: Vi|~Search, action: ToggleViMode }
+ #- { key: Y, mods: Control, mode: Vi|~Search, action: ScrollLineUp }
+ #- { key: E, mods: Control, mode: Vi|~Search, action: ScrollLineDown }
+ #- { key: G, mode: Vi|~Search, action: ScrollToTop }
+ #- { key: G, mods: Shift, mode: Vi|~Search, action: ScrollToBottom }
+ #- { key: B, mods: Control, mode: Vi|~Search, action: ScrollPageUp }
+ #- { key: F, mods: Control, mode: Vi|~Search, action: ScrollPageDown }
+ #- { key: U, mods: Control, mode: Vi|~Search, action: ScrollHalfPageUp }
+ #- { key: D, mods: Control, mode: Vi|~Search, action: ScrollHalfPageDown }
+ #- { key: Y, mode: Vi|~Search, action: Copy }
+ #- { key: Y, mode: Vi|~Search, action: ClearSelection }
+ #- { key: Copy, mode: Vi|~Search, action: ClearSelection }
+ #- { key: V, mode: Vi|~Search, action: ToggleNormalSelection }
+ #- { key: V, mods: Shift, mode: Vi|~Search, action: ToggleLineSelection }
+ #- { key: V, mods: Control, mode: Vi|~Search, action: ToggleBlockSelection }
+ #- { key: V, mods: Alt, mode: Vi|~Search, action: ToggleSemanticSelection }
+ #- { key: Return, mode: Vi|~Search, action: Open }
+ #- { key: K, mode: Vi|~Search, action: Up }
+ #- { key: J, mode: Vi|~Search, action: Down }
+ #- { key: H, mode: Vi|~Search, action: Left }
+ #- { key: L, mode: Vi|~Search, action: Right }
+ #- { key: Up, mode: Vi|~Search, action: Up }
+ #- { key: Down, mode: Vi|~Search, action: Down }
+ #- { key: Left, mode: Vi|~Search, action: Left }
+ #- { key: Right, mode: Vi|~Search, action: Right }
+ #- { key: Key0, mode: Vi|~Search, action: First }
+ #- { key: Key4, mods: Shift, mode: Vi|~Search, action: Last }
+ #- { key: Key6, mods: Shift, mode: Vi|~Search, action: FirstOccupied }
+ #- { key: H, mods: Shift, mode: Vi|~Search, action: High }
+ #- { key: M, mods: Shift, mode: Vi|~Search, action: Middle }
+ #- { key: L, mods: Shift, mode: Vi|~Search, action: Low }
+ #- { key: B, mode: Vi|~Search, action: SemanticLeft }
+ #- { key: W, mode: Vi|~Search, action: SemanticRight }
+ #- { key: E, mode: Vi|~Search, action: SemanticRightEnd }
+ #- { key: B, mods: Shift, mode: Vi|~Search, action: WordLeft }
+ #- { key: W, mods: Shift, mode: Vi|~Search, action: WordRight }
+ #- { key: E, mods: Shift, mode: Vi|~Search, action: WordRightEnd }
+ #- { key: Key5, mods: Shift, mode: Vi|~Search, action: Bracket }
+ #- { key: Slash, mode: Vi|~Search, action: SearchForward }
+ #- { key: Slash, mods: Shift, mode: Vi|~Search, action: SearchBackward }
+ #- { key: N, mode: Vi|~Search, action: SearchNext }
+ #- { key: N, mods: Shift, mode: Vi|~Search, action: SearchPrevious }
+
+ # Search Mode
+ #- { key: Return, mode: Search|Vi, action: SearchConfirm }
+ #- { key: Escape, mode: Search, action: SearchCancel }
+ #- { key: C, mods: Control, mode: Search, action: SearchCancel }
+ #- { key: U, mods: Control, mode: Search, action: SearchClear }
+ #- { key: W, mods: Control, mode: Search, action: SearchDeleteWord }
+ #- { key: P, mods: Control, mode: Search, action: SearchHistoryPrevious }
+ #- { key: N, mods: Control, mode: Search, action: SearchHistoryNext }
+ #- { key: Up, mode: Search, action: SearchHistoryPrevious }
+ #- { key: Down, mode: Search, action: SearchHistoryNext }
+ #- { key: Return, mode: Search|~Vi, action: SearchFocusNext }
+ #- { key: Return, mods: Shift, mode: Search|~Vi, action: SearchFocusPrevious }
+
+ # (Windows, Linux, and BSD only)
+ #- { key: V, mods: Control|Shift, mode: ~Vi, action: Paste }
+ #- { key: C, mods: Control|Shift, action: Copy }
+ #- { key: F, mods: Control|Shift, mode: ~Search, action: SearchForward }
+ #- { key: B, mods: Control|Shift, mode: ~Search, action: SearchBackward }
+ #- { key: C, mods: Control|Shift, mode: Vi|~Search, action: ClearSelection }
+ #- { key: Insert, mods: Shift, action: PasteSelection }
+ #- { key: Key0, mods: Control, action: ResetFontSize }
+ #- { key: Equals, mods: Control, action: IncreaseFontSize }
+ #- { key: Plus, mods: Control, action: IncreaseFontSize }
+ #- { key: NumpadAdd, mods: Control, action: IncreaseFontSize }
+ #- { key: Minus, mods: Control, action: DecreaseFontSize }
+ #- { key: NumpadSubtract, mods: Control, action: DecreaseFontSize }
+
+ # (Windows only)
+ #- { key: Return, mods: Alt, action: ToggleFullscreen }
+
+ # (macOS only)
+ #- { key: K, mods: Command, mode: ~Vi|~Search, chars: "\x0c" }
+ #- { key: K, mods: Command, mode: ~Vi|~Search, action: ClearHistory }
+ #- { key: Key0, mods: Command, action: ResetFontSize }
+ #- { key: Equals, mods: Command, action: IncreaseFontSize }
+ #- { key: Plus, mods: Command, action: IncreaseFontSize }
+ #- { key: NumpadAdd, mods: Command, action: IncreaseFontSize }
+ #- { key: Minus, mods: Command, action: DecreaseFontSize }
+ #- { key: NumpadSubtract, mods: Command, action: DecreaseFontSize }
+ #- { key: V, mods: Command, action: Paste }
+ #- { key: C, mods: Command, action: Copy }
+ #- { key: C, mods: Command, mode: Vi|~Search, action: ClearSelection }
+ #- { key: H, mods: Command, action: Hide }
+ #- { key: H, mods: Command|Alt, action: HideOtherApplications }
+ #- { key: M, mods: Command, action: Minimize }
+ #- { key: Q, mods: Command, action: Quit }
+ #- { key: W, mods: Command, action: Quit }
+ #- { key: N, mods: Command, action: SpawnNewInstance }
+ #- { key: F, mods: Command|Control, action: ToggleFullscreen }
+ #- { key: F, mods: Command, mode: ~Search, action: SearchForward }
+ #- { key: B, mods: Command, mode: ~Search, action: SearchBackward }
+
+#debug:
+ # Display the time it takes to redraw each frame.
+ #render_timer: false
+
+ # Keep the log file after quitting Alacritty.
+ #persistent_logging: false
+
+ # Log level
+ #
+ # Values for `log_level`:
+ # - Off
+ # - Error
+ # - Warn
+ # - Info
+ # - Debug
+ # - Trace
+ #log_level: Warn
+
+ # Print all received window events.
+ #print_events: false
diff --git a/.config/alacritty/themes/dracula b/.config/alacritty/themes/dracula
new file mode 160000
+Subproject 05faff15c0158712be87d200081633d9f4850a7
diff --git a/.config/eww/eww.scss b/.config/eww/eww.scss
new file mode 100644
index 0000000..c517db2
--- /dev/null
+++ b/.config/eww/eww.scss
@@ -0,0 +1,66 @@
+* {
+ all: unset; //Unsets everything so you can style everything from scratch
+}
+
+//Global Styles
+.alsa-gui {
+ background-color: #1e222a;
+ color: #abb2bf;
+ padding: 12px;
+ border-radius: 7px;
+ font-size : 25px;
+}
+
+.metric scale trough {
+ all: unset;
+ border-radius: 50px;
+ min-height: 3px;
+ min-width: 90px;
+ margin-left: 10px;
+ margin-right: 10px;
+}
+
+.chad scale trough {
+ all: unset;
+ border-radius: 50px;
+ min-height: 3px;
+ min-width: 90px;
+ margin-left: 10px;
+ margin-right: 10px;
+}
+
+.metric scale trough highlight {
+ all: unset;
+ background-color: #668ee3;
+ border-radius: 10px;
+}
+
+.chad scale trough highlight {
+ all: unset;
+ background-color: #e06c75;
+ border-radius: 10px;
+}
+
+.bri {
+ background-color: #d47d85;
+}
+
+.metric scale trough {
+ all: unset;
+ background-color: #282c34;
+ border-radius: 50px;
+ min-height: 6px;
+ min-width: 90px;
+ margin-left: 10px;
+ margin-right: 10px;
+}
+
+.chad scale trough {
+ all: unset;
+ background-color: #282c34;
+ border-radius: 50px;
+ min-height: 6px;
+ min-width: 90px;
+ margin-left: 10px;
+ margin-right: 10px;
+}
diff --git a/.config/eww/eww.yuck b/.config/eww/eww.yuck
new file mode 100644
index 0000000..fb02c29
--- /dev/null
+++ b/.config/eww/eww.yuck
@@ -0,0 +1,61 @@
+(defwidget chad-widgets []
+ (box :orientation "h"
+ (sliders)))
+
+(defwidget sliders []
+ (box :class "master_vol" :orientation "v" :space-evenly false :halign "end"
+ (metric :label ""
+ :value master_vol
+ :onchange "amixer set Master {}%")
+
+ (metric :label ""
+ :value head_vol
+ :onchange "amixer set Headphone {}%")
+
+ (chad :label ""
+ :value brightness
+ :onchange "xbacklight -set {}%")
+ )
+)
+
+(defwidget chad [label value onchange]
+ (box :orientation "h"
+ :class "chad"
+ :space-evenly false
+ (box :class "label" label)
+ (scale :min 0
+ :max 101
+ :active {onchange != ""}
+ :value value
+ :onchange onchange)))
+
+(defwidget metric [label value onchange]
+ (box :orientation "h"
+ :class "metric"
+ :space-evenly false
+ (box :class "label" label)
+ (scale :min 0
+ :max 101
+ :active {onchange != ""}
+ :value value
+ :onchange onchange)))
+
+(defpoll master_vol :interval "1s"
+ "scripts/get_mastervol")
+
+(defpoll head_vol :interval "1s"
+ "scripts/get_headvol")
+
+(defpoll brightness :interval "1s"
+ "scripts/get_brightness")
+
+(defwindow alsa-gui
+ :monitor 0
+ :windowtype "dock"
+ :geometry (geometry :x "-01%"
+ :y "8%"
+ :width "5%"
+ :height "0px"
+ :anchor "top right")
+ ; :reserve (struts :side "right" :distance "0%")
+ (chad-widgets))
diff --git a/.config/eww/scripts/get_brightness b/.config/eww/scripts/get_brightness
new file mode 100755
index 0000000..4f03d54
--- /dev/null
+++ b/.config/eww/scripts/get_brightness
@@ -0,0 +1,2 @@
+#!/bin/sh
+printf "%.0f\n" $(xbacklight -get)
diff --git a/.config/eww/scripts/get_headvol b/.config/eww/scripts/get_headvol
new file mode 100755
index 0000000..5ce9bf5
--- /dev/null
+++ b/.config/eww/scripts/get_headvol
@@ -0,0 +1,2 @@
+#!/bin/sh
+amixer sget Headphone | grep 'Left:' | cut -d\ -f7 | tr -d '[%]'
diff --git a/.config/eww/scripts/get_mastervol b/.config/eww/scripts/get_mastervol
new file mode 100755
index 0000000..e1fd62a
--- /dev/null
+++ b/.config/eww/scripts/get_mastervol
@@ -0,0 +1,2 @@
+#!/bin/sh
+amixer get Master | awk '$0~/%/{print $4}' | tr -d '[%]'
diff --git a/.config/eww/scripts/getram b/.config/eww/scripts/getram
new file mode 100755
index 0000000..791a5a5
--- /dev/null
+++ b/.config/eww/scripts/getram
@@ -0,0 +1,2 @@
+#!/bin/sh
+printf "%.0f\n" $(free -m | grep Mem | awk '{print ($3/$2)*100}')
diff --git a/.config/fish/completions/alacritty.fish b/.config/fish/completions/alacritty.fish
new file mode 100644
index 0000000..6f8da9b
--- /dev/null
+++ b/.config/fish/completions/alacritty.fish
@@ -0,0 +1,74 @@
+# Meta
+complete -c alacritty \
+ -s "v" \
+ -l "version" \
+ -d "Prints version information"
+complete -c alacritty \
+ -s "h" \
+ -l "help" \
+ -d "Prints help information"
+
+# Config
+complete -c alacritty \
+ -f \
+ -l "config-file" \
+ -d "Specify an alternative config file"
+complete -c alacritty \
+ -s "t" \
+ -l "title" \
+ -d "Defines the window title"
+complete -c alacritty \
+ -l "class" \
+ -d "Defines the window class"
+complete -c alacritty \
+ -l "embed" \
+ -d "Defines the X11 window ID (as a decimal integer) to embed Alacritty within"
+complete -c alacritty \
+ -x \
+ -a '(__fish_complete_directories (commandline -ct))' \
+ -l "working-directory" \
+ -d "Start shell in specified directory"
+complete -c alacritty \
+ -l "hold" \
+ -d "Remain open after child process exits"
+complete -c alacritty \
+ -s "o" \
+ -l "option" \
+ -d "Override config file options"
+
+# Output
+complete \
+ -c alacritty \
+ -l "print-events" \
+ -d "Print all events to stdout"
+complete \
+ -c alacritty \
+ -s "q" \
+ -d "Reduces the level of verbosity (min is -qq)"
+complete \
+ -c alacritty \
+ -s "qq" \
+ -d "Reduces the level of verbosity"
+complete \
+ -c alacritty \
+ -s "v" \
+ -d "Increases the level of verbosity"
+complete \
+ -c alacritty \
+ -s "vv" \
+ -d "Increases the level of verbosity"
+complete \
+ -c alacritty \
+ -s "vvv" \
+ -d "Increases the level of verbosity"
+
+complete \
+ -c alacritty \
+ -l "ref-test" \
+ -d "Generates ref test"
+
+complete \
+ -c alacritty \
+ -s "e" \
+ -l "command" \
+ -d "Execute command (must be last arg)"
diff --git a/.config/fish/completions/pass.fish b/.config/fish/completions/pass.fish
new file mode 100644
index 0000000..d70e33f
--- /dev/null
+++ b/.config/fish/completions/pass.fish
@@ -0,0 +1,116 @@
+# Copyright (C) 2012-2014 Dmitry Medvinsky <me@dmedvinsky.name>. All Rights Reserved.
+# This file is licensed under the GPLv2+. Please see COPYING for more information.
+
+set -l PROG 'pass'
+
+function __fish_pass_get_prefix
+ if set -q PASSWORD_STORE_DIR
+ realpath -- "$PASSWORD_STORE_DIR"
+ else
+ echo "$HOME/.password-store"
+ end
+end
+
+function __fish_pass_needs_command
+ [ (count (commandline -opc)) -eq 1 ]
+end
+
+function __fish_pass_uses_command
+ set -l cmd (commandline -opc)
+ if [ (count $cmd) -gt 1 ]
+ if [ $argv[1] = $cmd[2] ]
+ return 0
+ end
+ end
+ return 1
+end
+
+function __fish_pass_print_gpg_keys
+ gpg2 --list-keys | grep uid | sed 's/.*<\(.*\)>/\1/'
+end
+
+function __fish_pass_print
+ set -l ext $argv[1]
+ set -l strip $argv[2]
+ set -l prefix (__fish_pass_get_prefix)
+ set -l matches $prefix/**$ext
+ printf '%s\n' $matches | sed "s#$prefix/\(.*\)$strip#\1#"
+end
+
+function __fish_pass_print_entry_dirs
+ __fish_pass_print "/"
+end
+
+function __fish_pass_print_entries
+ __fish_pass_print ".gpg" ".gpg"
+end
+
+function __fish_pass_print_entries_and_dirs
+ __fish_pass_print_entry_dirs
+ __fish_pass_print_entries
+end
+
+function __fish_pass_git_complete
+ set -l prefix (__fish_pass_get_prefix)
+ set -l git_cmd (commandline -opc) (commandline -ct)
+ set -e git_cmd[1 2] # Drop "pass git".
+ complete -C"git -C $prefix $git_cmd"
+end
+
+complete -c $PROG -f -n '__fish_pass_needs_command' -a help -d 'Command: show usage help'
+complete -c $PROG -f -n '__fish_pass_needs_command' -a version -d 'Command: show program version'
+
+complete -c $PROG -f -n '__fish_pass_needs_command' -a init -d 'Command: initialize new password storage'
+complete -c $PROG -f -n '__fish_pass_uses_command init' -s p -l path -d 'Assign gpg-id for specified sub folder of password store'
+
+complete -c $PROG -f -n '__fish_pass_needs_command' -a ls -d 'Command: list passwords'
+complete -c $PROG -f -n '__fish_pass_uses_command ls' -a "(__fish_pass_print_entry_dirs)"
+
+complete -c $PROG -f -n '__fish_pass_needs_command' -a insert -d 'Command: insert new password'
+complete -c $PROG -f -n '__fish_pass_uses_command insert' -s e -l echo -d 'Echo the password on console'
+complete -c $PROG -f -n '__fish_pass_uses_command insert' -s m -l multiline -d 'Provide multiline password entry'
+complete -c $PROG -f -n '__fish_pass_uses_command insert' -s f -l force -d 'Do not prompt before overwritting'
+complete -c $PROG -f -n '__fish_pass_uses_command insert' -a "(__fish_pass_print_entry_dirs)"
+
+complete -c $PROG -f -n '__fish_pass_needs_command' -a generate -d 'Command: generate new password'
+complete -c $PROG -f -n '__fish_pass_uses_command generate' -s n -l no-symbols -d 'Do not use special symbols'
+complete -c $PROG -f -n '__fish_pass_uses_command generate' -s c -l clip -d 'Put the password in clipboard'
+complete -c $PROG -f -n '__fish_pass_uses_command generate' -s f -l force -d 'Do not prompt before overwritting'
+complete -c $PROG -f -n '__fish_pass_uses_command generate' -s i -l in-place -d 'Replace only the first line with the generated password'
+complete -c $PROG -f -n '__fish_pass_uses_command generate' -a "(__fish_pass_print_entry_dirs)"
+
+complete -c $PROG -f -n '__fish_pass_needs_command' -a mv -d 'Command: rename existing password'
+complete -c $PROG -f -n '__fish_pass_uses_command mv' -s f -l force -d 'Force rename'
+complete -c $PROG -f -n '__fish_pass_uses_command mv' -a "(__fish_pass_print_entries_and_dirs)"
+
+complete -c $PROG -f -n '__fish_pass_needs_command' -a cp -d 'Command: copy existing password'
+complete -c $PROG -f -n '__fish_pass_uses_command cp' -s f -l force -d 'Force copy'
+complete -c $PROG -f -n '__fish_pass_uses_command cp' -a "(__fish_pass_print_entries_and_dirs)"
+
+complete -c $PROG -f -n '__fish_pass_needs_command' -a rm -d 'Command: remove existing password'
+complete -c $PROG -f -n '__fish_pass_uses_command rm' -s r -l recursive -d 'Remove password groups recursively'
+complete -c $PROG -f -n '__fish_pass_uses_command rm' -s f -l force -d 'Force removal'
+complete -c $PROG -f -n '__fish_pass_uses_command rm' -a "(__fish_pass_print_entries_and_dirs)"
+
+complete -c $PROG -f -n '__fish_pass_needs_command' -a edit -d 'Command: edit password using text editor'
+complete -c $PROG -f -n '__fish_pass_uses_command edit' -a "(__fish_pass_print_entries)"
+
+complete -c $PROG -f -n '__fish_pass_needs_command' -a show -d 'Command: show existing password'
+complete -c $PROG -f -n '__fish_pass_uses_command show' -s c -l clip -d 'Put password in clipboard'
+complete -c $PROG -f -n '__fish_pass_uses_command show' -a "(__fish_pass_print_entries)"
+# When no command is given, `show` is defaulted.
+complete -c $PROG -f -n '__fish_pass_needs_command' -s c -l clip -d 'Put password in clipboard'
+complete -c $PROG -f -n '__fish_pass_needs_command' -a "(__fish_pass_print_entries)"
+complete -c $PROG -f -n '__fish_pass_uses_command -c' -a "(__fish_pass_print_entries)"
+complete -c $PROG -f -n '__fish_pass_uses_command --clip' -a "(__fish_pass_print_entries)"
+
+complete -c $PROG -f -n '__fish_pass_needs_command' -a git -d 'Command: execute a git command'
+complete -c $PROG -f -n '__fish_pass_uses_command git' -a '(__fish_pass_git_complete)'
+complete -c $PROG -f -n '__fish_pass_needs_command' -a find -d 'Command: find a password file or directory matching pattern'
+complete -c $PROG -f -n '__fish_pass_needs_command' -a grep -d 'Command: search inside of decrypted password files for matching pattern'
+complete -c $PROG -f -n '__fish_pass_uses_command grep' -a '(begin
+ set -l cmd (commandline -opc) (commandline -ct)
+ set -e cmd[1 2] # Drop "pass grep".
+ complete -C"grep $cmd"
+end)'
+
diff --git a/.config/fish/conf.d/dracula.fish b/.config/fish/conf.d/dracula.fish
new file mode 100644
index 0000000..e467e6d
--- /dev/null
+++ b/.config/fish/conf.d/dracula.fish
@@ -0,0 +1,33 @@
+# Dracula Color Palette
+set -l foreground f8f8f2
+set -l selection 44475a
+set -l comment 6272a4
+set -l red ff5555
+set -l orange ffb86c
+set -l yellow f1fa8c
+set -l green 50fa7b
+set -l purple bd93f9
+set -l cyan 8be9fd
+set -l pink ff79c6
+
+# Syntax Highlighting Colors
+set -g fish_color_normal $foreground
+set -g fish_color_command $cyan
+set -g fish_color_keyword $pink
+set -g fish_color_quote $yellow
+set -g fish_color_redirection $foreground
+set -g fish_color_end $orange
+set -g fish_color_error $red
+set -g fish_color_param $purple
+set -g fish_color_comment $comment
+set -g fish_color_selection --background=$selection
+set -g fish_color_search_match --background=$selection
+set -g fish_color_operator $green
+set -g fish_color_escape $pink
+set -g fish_color_autosuggestion $comment
+
+# Completion Pager Colors
+set -g fish_pager_color_progress $comment
+set -g fish_pager_color_prefix $cyan
+set -g fish_pager_color_completion $foreground
+set -g fish_pager_color_description $comment
diff --git a/.config/fish/config.fish b/.config/fish/config.fish
new file mode 100644
index 0000000..e113322
--- /dev/null
+++ b/.config/fish/config.fish
@@ -0,0 +1,24 @@
+#!/usr/bin/env fish
+abbr -a cls clear
+abbr -a ls lsd
+
+export DENO_INSTALL="/home/luca/.deno"
+export PATH="/bin:$DENO_INSTALL/bin:/home/luca/.cargo/bin:/home/luca/.local/bin:$HOME/bin:$HOME/.dprint/bin:$PATH"
+export EDITOR=nvim
+
+export MANPAGER="sh -c 'col -bx | bat -l man -p'"
+alias cat='bat --paging=never -p'
+
+deno completions fish | source
+arduino-cli completion fish | source
+starship completions fish | source
+starship init fish | source
+
+
+function fish_greeting
+ #fastfetch
+ fortune -s | cowsay -f (ls /usr/share/cows/*.cow | shuf -n1) | lolcat -t -F 0.3
+end
+
+funcsave fish_greeting
+
diff --git a/.config/fish/fish_plugins b/.config/fish/fish_plugins
new file mode 100644
index 0000000..fd0366e
--- /dev/null
+++ b/.config/fish/fish_plugins
@@ -0,0 +1 @@
+dracula/fish
diff --git a/.config/fish/fish_variables b/.config/fish/fish_variables
new file mode 100644
index 0000000..25cfd4b
--- /dev/null
+++ b/.config/fish/fish_variables
@@ -0,0 +1,34 @@
+# This file contains fish universal variable definitions.
+# VERSION: 3.0
+SETUVAR __fish_initialized:3100
+SETUVAR _fish_abbr_cls:clear
+SETUVAR _fish_abbr_ls:lsd
+SETUVAR _fisher_dracula_2F_fish_files:/home/luca/\x2econfig/fish/conf\x2ed/dracula\x2efish
+SETUVAR _fisher_plugins:dracula/fish
+SETUVAR fish_color_autosuggestion:555\x1ebrblack
+SETUVAR fish_color_cancel:\x2dr
+SETUVAR fish_color_command:005fd7
+SETUVAR fish_color_comment:990000
+SETUVAR fish_color_cwd:green
+SETUVAR fish_color_cwd_root:red
+SETUVAR fish_color_end:009900
+SETUVAR fish_color_error:ff0000
+SETUVAR fish_color_escape:00a6b2
+SETUVAR fish_color_history_current:\x2d\x2dbold
+SETUVAR fish_color_host:normal
+SETUVAR fish_color_host_remote:yellow
+SETUVAR fish_color_normal:normal
+SETUVAR fish_color_operator:00a6b2
+SETUVAR fish_color_param:00afff
+SETUVAR fish_color_quote:999900
+SETUVAR fish_color_redirection:00afff
+SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
+SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
+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_completion:\x1d
+SETUVAR fish_pager_color_description:B3A06D\x1eyellow
+SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
+SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
diff --git a/.config/fish/functions/br.fish b/.config/fish/functions/br.fish
new file mode 120000
index 0000000..f09fb22
--- /dev/null
+++ b/.config/fish/functions/br.fish
@@ -0,0 +1 @@
+/home/luca/.local/share/broot/launcher/fish/br.fish \ No newline at end of file
diff --git a/.config/fish/functions/fish_greeting.fish b/.config/fish/functions/fish_greeting.fish
new file mode 100644
index 0000000..671c5a0
--- /dev/null
+++ b/.config/fish/functions/fish_greeting.fish
@@ -0,0 +1,4 @@
+function fish_greeting
+ #fastfetch
+ fortune -s | cowsay -f (ls /usr/share/cows/*.cow | shuf -n1) | lolcat -t -F 0.3
+end
diff --git a/.config/glava/bars b/.config/glava/bars
new file mode 120000
index 0000000..09377e3
--- /dev/null
+++ b/.config/glava/bars
@@ -0,0 +1 @@
+/etc/xdg/glava//bars \ No newline at end of file
diff --git a/.config/glava/bars.glsl b/.config/glava/bars.glsl
new file mode 100755
index 0000000..6e6a7b0
--- /dev/null
+++ b/.config/glava/bars.glsl
@@ -0,0 +1,33 @@
+
+/* Center line thickness (pixels) */
+#define C_LINE 1
+/* Width (in pixels) of each bar */
+#define BAR_WIDTH 4
+/* Width (in pixels) of each bar gap */
+#define BAR_GAP 2
+/* Outline color */
+#define BAR_OUTLINE #262626
+/* Outline width (in pixels, set to 0 to disable outline drawing) */
+#define BAR_OUTLINE_WIDTH 0
+/* Amplify magnitude of the results each bar displays */
+#define AMPLIFY 300
+/* Whether the current settings use the alpha channel;
+ enabling this is required for alpha to function
+ correctly on X11 with `"native"` transparency. */
+#define USE_ALPHA 0
+/* How strong the gradient changes */
+#define GRADIENT_POWER 60
+/* Bar color changes with height */
+#define GRADIENT (d / GRADIENT_POWER + 1)
+/* Bar color */
+#define COLOR (#3366b2 * GRADIENT)
+/* Direction that the bars are facing, 0 for inward, 1 for outward */
+#define DIRECTION 0
+/* Whether to switch left/right audio buffers */
+#define INVERT 0
+/* Whether to flip the output vertically */
+#define FLIP 0
+/* Whether to mirror output along `Y = X`, causing output to render on the left side of the window */
+/* Use with `FLIP 1` to render on the right side */
+#define MIRROR_YX 0
+
diff --git a/.config/glava/circle b/.config/glava/circle
new file mode 120000
index 0000000..f53c651
--- /dev/null
+++ b/.config/glava/circle
@@ -0,0 +1 @@
+/etc/xdg/glava//circle \ No newline at end of file
diff --git a/.config/glava/circle.glsl b/.config/glava/circle.glsl
new file mode 100755
index 0000000..83b8ad3
--- /dev/null
+++ b/.config/glava/circle.glsl
@@ -0,0 +1,24 @@
+/* center radius (pixels) */
+#define C_RADIUS 128
+/* center line thickness (pixels) */
+#define C_LINE 1.5
+/* outline color */
+#define OUTLINE #333333
+/* Amplify magnitude of the results each bar displays */
+#define AMPLIFY 150
+/* Angle (in radians) for how much to rotate the visualizer */
+#define ROTATE (PI / 2)
+/* Whether to switch left/right audio buffers */
+#define INVERT 0
+/* Whether to fill in the space between the line and inner circle */
+#define C_FILL 0
+/* Whether to apply a post-processing image smoothing effect
+ 1 to enable, 0 to disable. Only works with `xroot` transparency,
+ and improves performance if disabled. */
+#define C_SMOOTH 1
+
+/* Gravity step, overrude frin `smooth_parameters.glsl` */
+#request setgravitystep 6.0
+
+/* Smoothing factor, override from `smooth_parameters.glsl` */
+#request setsmoothfactor 0.01
diff --git a/.config/glava/env_KWin.glsl b/.config/glava/env_KWin.glsl
new file mode 100755
index 0000000..aa168ba
--- /dev/null
+++ b/.config/glava/env_KWin.glsl
@@ -0,0 +1,8 @@
+#request setdecorated false
+#request setxwintype "normal"
+#request addxwinstate "below"
+#request addxwinstate "skip_taskbar"
+#request addxwinstate "skip_pager"
+#request addxwinstate "pinned"
+#request setclickthrough true
+
diff --git a/.config/glava/env_Openbox.glsl b/.config/glava/env_Openbox.glsl
new file mode 100755
index 0000000..c95c616
--- /dev/null
+++ b/.config/glava/env_Openbox.glsl
@@ -0,0 +1,2 @@
+#request setxwintype "desktop"
+#request addxwinstate "pinned"
diff --git a/.config/glava/env_Xfwm4.glsl b/.config/glava/env_Xfwm4.glsl
new file mode 100755
index 0000000..1c20359
--- /dev/null
+++ b/.config/glava/env_Xfwm4.glsl
@@ -0,0 +1,3 @@
+#request setxwintype "desktop"
+#request addxwinstate "pinned"
+#request addxwinstate "below"
diff --git a/.config/glava/env_awesome.glsl b/.config/glava/env_awesome.glsl
new file mode 100755
index 0000000..7f2bba3
--- /dev/null
+++ b/.config/glava/env_awesome.glsl
@@ -0,0 +1 @@
+#request setxwintype "!-"
diff --git a/.config/glava/env_default.glsl b/.config/glava/env_default.glsl
new file mode 100755
index 0000000..90336cc
--- /dev/null
+++ b/.config/glava/env_default.glsl
@@ -0,0 +1 @@
+#request setxwintype "desktop"
diff --git a/.config/glava/env_i3.glsl b/.config/glava/env_i3.glsl
new file mode 100755
index 0000000..7f2bba3
--- /dev/null
+++ b/.config/glava/env_i3.glsl
@@ -0,0 +1 @@
+#request setxwintype "!-"
diff --git a/.config/glava/graph b/.config/glava/graph
new file mode 120000
index 0000000..2ad2983
--- /dev/null
+++ b/.config/glava/graph
@@ -0,0 +1 @@
+/etc/xdg/glava//graph \ No newline at end of file
diff --git a/.config/glava/graph.glsl b/.config/glava/graph.glsl
new file mode 100755
index 0000000..546d8d4
--- /dev/null
+++ b/.config/glava/graph.glsl
@@ -0,0 +1,31 @@
+
+/* Vertical scale, larger values will amplify output */
+#define VSCALE 300
+/* Rendering direction, either -1 (outwards) or 1 (inwards). */
+#define DIRECTION 1
+
+/* Color gradient scale, (optionally) used in `COLOR` macro */
+#define GRADIENT_SCALE 75
+/* Color definition. By default this is a gradient formed by mixing two colors.
+ `pos` represents the pixel position relative to the visualizer baseline. */
+#define COLOR mix(#802A2A, #4F4F92, clamp(pos / GRADIENT_SCALE, 0, 1))
+/* 1 to draw outline, 0 to disable */
+#define DRAW_OUTLINE 0
+/* 1 to draw edge highlight, 0 to disable */
+#define DRAW_HIGHLIGHT 1
+/* Whether to anti-alias the border of the graph, creating a smoother curve.
+ This may have a small impact on performance.
+ Note: requires `xroot` or `none` opacity to be set */
+#define ANTI_ALIAS 0
+/* outline color */
+#define OUTLINE #262626
+/* 1 to join the two channels together in the middle, 0 to clamp both down to zero */
+#define JOIN_CHANNELS 0
+/* 1 to invert (vertically), 0 otherwise */
+#define INVERT 0
+
+/* Gravity step, overrude from `smooth_parameters.glsl` */
+#request setgravitystep 2.4
+
+/* Smoothing factor, override from `smooth_parameters.glsl` */
+#request setsmoothfactor 0.015
diff --git a/.config/glava/radial b/.config/glava/radial
new file mode 120000
index 0000000..04fe5e4
--- /dev/null
+++ b/.config/glava/radial
@@ -0,0 +1 @@
+/etc/xdg/glava//radial \ No newline at end of file
diff --git a/.config/glava/radial.glsl b/.config/glava/radial.glsl
new file mode 100755
index 0000000..4689be6
--- /dev/null
+++ b/.config/glava/radial.glsl
@@ -0,0 +1,39 @@
+
+/* center radius (pixels) */
+#define C_RADIUS 128
+/* center line thickness (pixels) */
+#define C_LINE 2
+/* outline color */
+#define OUTLINE #333333
+/* number of bars (use even values for best results) */
+#define NBARS 180
+/* width (in pixels) of each bar*/
+#define BAR_WIDTH 3.5
+/* outline color */
+#define BAR_OUTLINE OUTLINE
+/* outline width (in pixels, set to 0 to disable outline drawing) */
+#define BAR_OUTLINE_WIDTH 0
+/* Amplify magnitude of the results each bar displays */
+#define AMPLIFY 300
+/* Bar color */
+#define COLOR (#cc3333 * ((d / 40) + 1))
+/* Angle (in radians) for how much to rotate the visualizer */
+#define ROTATE (PI / 2)
+/* Whether to switch left/right audio buffers */
+#define INVERT 0
+/* Aliasing factors. Higher values mean more defined and jagged lines.
+ Note: aliasing does not have a notable impact on performance, but requires
+ `xroot` transparency to be enabled since it relies on alpha blending with
+ the background. */
+#define BAR_ALIAS_FACTOR 1.2
+#define C_ALIAS_FACTOR 1.8
+/* Offset (Y) of the visualization */
+#define CENTER_OFFSET_Y 0
+/* Offset (X) of the visualization */
+#define CENTER_OFFSET_X 0
+
+/* Gravity step, override from `smooth_parameters.glsl` */
+#request setgravitystep 5.0
+
+/* Smoothing factor, override from `smooth_parameters.glsl` */
+#request setsmoothfactor 0.02
diff --git a/.config/glava/rc.glsl b/.config/glava/rc.glsl
new file mode 100755
index 0000000..694e870
--- /dev/null
+++ b/.config/glava/rc.glsl
@@ -0,0 +1,227 @@
+
+/* The module to use. A module is a set of shaders used to produce
+ the visualizer. The structure for a module is the following:
+
+ module_name [directory]
+ 1.frag [file: fragment shader],
+ 2.frag [file: fragment shader],
+ ...
+
+ Shaders are loaded in numerical order, starting at '1.frag',
+ continuing indefinitely. The results of each shader (except
+ for the final pass) is given to the next shader in the list
+ as a 2D sampler.
+
+ See documentation for more details. */
+#request mod bars
+
+/* Window hints */
+#request setfloating false
+#request setdecorated true
+#request setfocused false
+#request setmaximized false
+
+/* Set window background opacity mode. Possible values are:
+
+ "native" - True transparency provided by the compositor. Can
+ reduce performance on some systems, depending on
+ the compositor used.
+
+ "xroot" - Maintain a copy of the root window's pixmap
+ (usually the desktop background) to provide a
+ pseudo-transparent effect. Useful when no compositor
+ is available or native transparency isn't nessecary.
+ Has very little performance impact.
+
+ "none" - Disable window opacity completely. */
+#request setopacity "native"
+
+/* Whether to mirror left and right audio input channels from PulseAudio.*/
+#request setmirror false
+
+/* OpenGL context and GLSL shader versions, do not change unless
+ you *absolutely* know what you are doing. */
+#request setversion 3 3
+#request setshaderversion 330
+
+/* Window title */
+#request settitle "GLava"
+
+/* Window geometry (x, y, width, height) */
+#request setgeometry 0 0 1920 1080
+
+/* Window background color (RGB format).
+ Does not work with `setopacity "xroot"` */
+#request setbg 00000000
+
+/* (X11 only) EWMH Window type. Possible values are:
+
+ "desktop", "dock", "toolbar", "menu",
+ "utility", "splash", "dialog", "normal"
+
+ This will set _NET_WM_WINDOW_TYPE to _NET_WM_WINDOW_TYPE_(TYPE),
+ where (TYPE) is the one of the window types listed (after being
+ converted to uppercase).
+
+ Alternatively, you can set this value to "!", which will cause
+ the window to be unmanaged. If this is set, then `addxwinstate`
+ will do nothing, but you can use "!+" and "!-" to stack on top
+ or below other windows.
+*/
+#request setxwintype "normal"
+
+/* (X11 only) EWMH Window state atoms (multiple can be specified).
+ Possible values are:
+
+ "modal", "sticky", "maximized_vert", "maximized_horz",
+ "shaded", "skip_taskbar", "skip_pager", "hidden", "fullscreen",
+ "above", "below", "demands_attention", "focused", "pinned"
+
+ This will add _NET_WM_STATE_(TYPE) atoms to _NET_WM_STATE,
+ where (TYPE) is one of the window states listed (after being
+ converted to uppercase).
+
+ The lines below (commented out by default) are of relevance
+ if you are trying to get GLava to behave as a desktop widget
+ and your WM is not correctly responding to the "desktop" value
+ for `setxwintype`.
+*/
+// #request addxwinstate "sticky"
+// #request addxwinstate "skip_taskbar"
+// #request addxwinstate "skip_pager"
+// #request addxwinstate "above"
+// #request addxwinstate "pinned"
+
+/* (X11 only) Use the XShape extension to support clicking through
+ the GLava window. Useful when you want to interact with other
+ desktop windows (icons, menus, desktop shells). Enabled by
+ default when GLava itself is a desktop window. */
+#request setclickthrough false
+
+/* Audio source
+
+ When the "pulseaudio" backend is set, this can be a number or
+ a name of an audio sink or device to record from. Set to "auto"
+ to use the default output device.
+
+ When the "fifo" backend is set, "auto" is interpreted as
+ "/tmp/mpd.fifo". Otherwise, a valid path should be provided. */
+#request setsource "auto"
+
+/* Buffer swap interval (vsync), set to '0' to prevent
+ waiting for refresh, '1' (or more) to wait for the specified
+ amount of frames. */
+#request setswap 1
+
+/* Linear interpolation for audio data frames. Drastically
+ improves smoothness with configurations that yield low UPS
+ (`setsamplerate` and `setsamplesize`), or monitors that have
+ high refresh rates.
+
+ This feature itself, however, will effect performance as it
+ will have to interpolate data every frame on the CPU. It will
+ automatically (and temporarily) disable itself if the update
+ rate is close to, or higher than the framerate:
+
+ if (update_rate / frame_rate > 0.9) disable_interpolation;
+
+ This will delay data output by one update frame, so it can
+ desync audio with visual effects on low UPS configs. */
+#request setinterpolate true
+
+/* Frame limiter, set to the frames per second (FPS) desired or
+ simply set to zero (or lower) to disable the frame limiter. */
+#request setframerate 0
+
+/* Suspends rendering if a fullscreen window is focused while
+ GLava is still visible (ie. on another monitor). This prevents
+ rendering from interfering with other graphically intensive
+ tasks.
+
+ If GLava is minimized or completely obscured, it will not
+ render regardless of this option. */
+#request setfullscreencheck false
+
+/* Enable/disable printing framerate every second. 'FPS' stands
+ for 'Frames Per Second', and 'UPS' stands for 'Updates Per
+ Second'. Updates are performed when new data is submitted
+ by pulseaudio, and require transformations to be re-applied
+ (thus being a good measure of how much work your CPU has to
+ perform over time) */
+#request setprintframes true
+
+/* PulseAudio sample buffer size. Lower values result in more
+ frequent audio updates (also depends on sampling rate), but
+ will also require all transformations to be applied much
+ more frequently (CPU intensive).
+
+ High (>2048, with 22050 Hz) values will decrease accuracy
+ (as some signals can be missed by transformations like FFT)
+
+ The following settings (@22050 Hz) produce the listed rates:
+
+ Sample UPS Description
+ - 2048 -> 43.0 (low accuracy, cheap), use with < 60 FPS
+ - 1024 -> 86.1 (high accuracy, expensive), use with >= 60 FPS
+ - 512 -> 172.3 (extreme accuracy, very expensive), use only
+ for graphing accurate spectrum data with
+ custom modules.
+
+ If the framerate drops below the update rate, the update rate
+ will be locked to the framerate (to prevent wasting CPU time).
+ This behaviour means you can use a 1024 sample size on a 60Hz
+ monitor with vsync enabled to get 60FPS and 60UPS.
+
+ For high refresh rate monitors (120+ Hz), it's recommended to
+ also stick with the 1024 sample size and use interpolation to
+ smooth the data, as accuracy beyond this setting is mostly
+ meaningless for visual purposes.
+*/
+#request setsamplesize 1024
+
+/* Audio buffer size to be used for processing and shaders.
+ Increasing this value can have the effect of adding 'gravity'
+ to FFT output, as the audio signal will remain in the buffer
+ longer.
+
+ This value has a _massive_ effect on FFT performance and
+ quality for some modules. */
+#request setbufsize 4096
+
+/* PulseAudio sample rate. Lower values can add 'gravity' to
+ FFT output, but can also reduce accuracy. Most hardware
+ samples at 44100Hz.
+
+ Lower sample rates also can make output more choppy, when
+ not using interpolation. It's generally OK to leave this
+ value unless you have a strange PulseAudio configuration.
+
+ This option does nothing when using the "fifo" audio
+ backend. Instead, an ideal rate should be be configured
+ in the application generating the output. */
+#request setsamplerate 22050
+
+/* ** DEPRECATED **
+ Force window geometry (locking the window in place), useful
+ for some pesky WMs that try to reposition the window when
+ embedding in the desktop.
+
+ This routinely sends X11 events and should be avoided. */
+#request setforcegeometry false
+
+/* ** DEPRECATED **
+ Force window to be raised (focused in some WMs), useful for
+ WMs that have their own stacking order for desktop windows.
+
+ This routinely sends X11 events and should be avoided. */
+#request setforceraised false
+
+/* ** DEPRECATED **
+ Scale down the audio buffer before any operations are
+ performed on the data. Higher values are faster.
+
+ This value can affect the output of various transformations,
+ since it applies (crude) averaging to the data when shrinking
+ the buffer. It is reccommended to use `setsamplerate` and
+ `setsamplesize` to improve performance or accuracy instead. */
+#request setbufscale 1
diff --git a/.config/glava/smooth_parameters.glsl b/.config/glava/smooth_parameters.glsl
new file mode 100755
index 0000000..bfea307
--- /dev/null
+++ b/.config/glava/smooth_parameters.glsl
@@ -0,0 +1,78 @@
+
+/* Settings for smoothing functions and transformations commonly
+ used to display FFT output.
+
+ IMPORTANT: THESE VALUES CAN BE OVERRIDDEN IN MODULE CONFIG
+ FILES, IF CHANGING VALUES HERE DOES NOT WORK, CHECK
+ TO MAKE SURE THEY ARE NOT BEING SET ELSEWHERE.
+*/
+
+/* The type of formula to use for weighting values when smoothing.
+ Possible values:
+
+ - circular heavily rounded points
+ - sinusoidal rounded at both low and high weighted values
+ like a sine wave
+ - linear not rounded at all; linear distance
+ */
+#define ROUND_FORMULA sinusoidal
+
+/* The sampling mode for processing raw FFT input:
+
+ - average averages all the inputs in the sample range for
+ a given point. Produces smooth output, but peaks
+ are not well represented
+ - maximum obtains the best value from the closest peak in
+ the sample range. Very accurate peaks, but
+ output is jagged and sporadic.
+ - hybrid uses the results from both `average` and `maximum`
+ with the weight provided in `SAMPLE_HYBRID_WEIGHT` */
+#define SAMPLE_MODE average
+/* Weight should be provided in the range (0, 1). Higher values favour
+ averaged results. `hybrid` mode only. */
+#define SAMPLE_HYBRID_WEIGHT 0.65
+
+/* Factor used to scale frequencies. Lower values allows lower
+ frequencies to occupy more space. */
+#define SAMPLE_SCALE 8
+
+/* The frequency range to sample. 1.0 would be the entire FFT output,
+ and lower values reduce the displayed frequencies in a log-like
+ scale. */
+#define SAMPLE_RANGE 0.9
+
+/* Factor for how to scale higher frequencies. Used in a linear equation
+ which is multiplied by the result of the fft transformation. */
+#request setfftscale 10.2
+
+/* Cutoff for the bass end of the audio data when scaling frequencies.
+ Higher values cause more of the bass frequencies to be skipped when
+ scaling. */
+#request setfftcutoff 0.3
+
+/* How many frames to queue and run through the average function.
+ Increasing this value will create latency between the audio and the
+ animation, but will make for much smoother results. */
+#request setavgframes 6
+
+/* Whether to window frames ran through the average function (new & old
+ frames are weighted less). This massively helps smoothing out
+ spontaneous values in the animation. */
+#request setavgwindow true
+
+/* Gravity step, higher values means faster drops. The step is applied
+ in a rate independant method like so:
+
+ val -= (gravitystep) * (seconds per update) */
+#request setgravitystep 4.2
+
+/* Smoothing factor. Larger values mean more smoothing in the output,
+ however high values can be expensive to compute. Values are in
+ normalized width: [0.0, 1.0) */
+#request setsmoothfactor 0.025
+
+/* Whether to use a separate pass for audio data while smoothing. On
+ most hardware, this will improve performance, but involves doing a
+ separate render step for each audio texture and will add some driver
+ (CPU) overhead. */
+#request setsmoothpass true
diff --git a/.config/glava/util b/.config/glava/util
new file mode 120000
index 0000000..3cbab73
--- /dev/null
+++ b/.config/glava/util
@@ -0,0 +1 @@
+/etc/xdg/glava//util \ No newline at end of file
diff --git a/.config/glava/wave b/.config/glava/wave
new file mode 120000
index 0000000..3cba0de
--- /dev/null
+++ b/.config/glava/wave
@@ -0,0 +1 @@
+/etc/xdg/glava//wave \ No newline at end of file
diff --git a/.config/glava/wave.glsl b/.config/glava/wave.glsl
new file mode 100755
index 0000000..6a59fbe
--- /dev/null
+++ b/.config/glava/wave.glsl
@@ -0,0 +1,14 @@
+/* min (vertical) line thickness */
+#define MIN_THICKNESS 1
+
+/* max (vertical) line thickness */
+#define MAX_THICKNESS 6
+
+/* base color to use, distance from center will multiply the RGB components */
+#define BASE_COLOR vec4(0.7, 0.2, 0.45, 1)
+
+/* amplitude */
+#define AMPLIFY 500
+
+/* outline color */
+#define OUTLINE vec4(0.15, 0.15, 0.15, 1)
diff --git a/.config/nvim/LICENSE b/.config/nvim/LICENSE
new file mode 100644
index 0000000..f288702
--- /dev/null
+++ b/.config/nvim/LICENSE
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (C) <year> <name of author>
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<https://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<https://www.gnu.org/licenses/why-not-lgpl.html>.
diff --git a/.config/nvim/lua/custom/chadrc.lua b/.config/nvim/lua/custom/chadrc.lua
new file mode 100644
index 0000000..bc4b88e
--- /dev/null
+++ b/.config/nvim/lua/custom/chadrc.lua
@@ -0,0 +1,39 @@
+-- IMPORTANT NOTE : This is the user config, can be edited. Will be preserved if updated with internal updater
+-- This file is for NvChad options & tools, custom settings are split between here and 'lua/custom/init.lua'
+
+local M = {}
+M.options, M.ui, M.mappings, M.plugins = {}, {}, {}, {}
+
+-- NOTE: To use this, make a copy with `cp example_chadrc.lua chadrc.lua`
+
+--------------------------------------------------------------------
+
+-- To use this file, copy the structure of `core/default_config.lua`,
+-- examples of setting relative number & changing theme:
+
+-- M.options = {
+-- relativenumber = true,
+-- }
+
+M.ui = {
+ theme = "chadracula"
+}
+
+-- NvChad included plugin options & overrides
+M.plugins = {
+ options = {
+ -- lspconfig = {
+ -- path of file containing setups of different lsps (ex : "custom.plugins.lspconfig"), read the docs for more info
+ -- setup_lspconf = "",
+ -- },
+ },
+ -- To change the Packer `config` of a plugin that comes with NvChad,
+ -- add a table entry below matching the plugin github name
+ -- '-' -> '_', remove any '.lua', '.nvim' extensions
+ -- this string will be called in a `require`
+ -- use "(custom.configs).my_func()" to call a function
+ -- use "custom.blankline" to call a file
+ default_plugin_config_replace = {},
+}
+
+return M
diff --git a/.config/nvim/lua/custom/init.lua b/.config/nvim/lua/custom/init.lua
new file mode 100644
index 0000000..473ff84
--- /dev/null
+++ b/.config/nvim/lua/custom/init.lua
@@ -0,0 +1,84 @@
+-- This is where your custom modules and plugins go.
+-- See the wiki for a guide on how to extend NvChad
+local hooks = require "core.hooks"
+vim.api.nvim_command("nnoremap <A-j> :m .+1<CR>==")
+vim.api.nvim_command("nnoremap <A-k> :m .-2<CR>==")
+vim.api.nvim_command("inoremap <A-j> <Esc>:m .+1<CR>==gi")
+vim.api.nvim_command("inoremap <A-k> <Esc>:m .-2<CR>==gi")
+vim.api.nvim_command("vnoremap <A-j> :m '>+1<CR>gv=gv")
+vim.api.nvim_command("vnoremap <A-k> :m '<-2<CR>gv=gv")
+
+-- NOTE: To use this, make a copy with `cp example_init.lua init.lua`
+
+--------------------------------------------------------------------
+
+-- To modify packaged plugin configs, use the overrides functionality
+-- if the override does not exist in the plugin config, make or request a PR,
+-- or you can override the whole plugin config with 'chadrc' -> M.plugins.default_plugin_config_replace{}
+-- this will run your config instead of the NvChad config for the given plugin
+
+-- hooks.override("lsp", "publish_diagnostics", function(current)
+-- current.virtual_text = false;
+-- return current;
+-- end)
+
+-- To add new mappings, use the "setup_mappings" hook,
+-- you can set one or many mappings
+-- example below:
+
+-- hooks.add("setup_mappings", function(map)
+-- map("n", "<leader>cc", "gg0vG$d", opt) -- example to delete the buffer
+-- .... many more mappings ....
+-- end)
+
+-- To add new plugins, use the "install_plugin" hook,
+-- NOTE: we heavily suggest using Packer's lazy loading (with the 'event' field)
+-- see: https://github.com/wbthomason/packer.nvim
+-- examples below:
+
+hooks.add("install_plugins", function(use)
+ use {
+ "williamboman/nvim-lsp-installer",
+ config = function()
+ local lsp_installer = require "nvim-lsp-installer"
+
+ lsp_installer.on_server_ready(function(server)
+ local opts = {}
+
+ if server.name == "denols" then
+ opts.root_dir = vim.loop.cwd
+ end
+
+ server:setup(opts)
+ vim.cmd [[ do User LspAttachBuffers ]]
+ end)
+ end,
+ }
+ -- Custom stuff
+ use { "nathom/filetype.nvim" }
+
+ use {
+ "karb94/neoscroll.nvim",
+ opt = true,
+ config = function()
+ require("neoscroll").setup()
+ end,
+
+ -- lazy loading
+ setup = function()
+ require("core.utils").packer_lazy_load "neoscroll.nvim"
+ end,
+ }
+
+ use {
+ "prettier/vim-prettier",
+ }
+ use {
+ "editorconfig/editorconfig-vim",
+ }
+end)
+
+-- alternatively, put this in a sub-folder like "lua/custom/plugins/mkdir"
+-- then source it with
+
+-- require "custom.plugins.mkdir"
diff --git a/.config/rofi/config.rasi b/.config/rofi/config.rasi
new file mode 100644
index 0000000..7f633a0
--- /dev/null
+++ b/.config/rofi/config.rasi
@@ -0,0 +1,93 @@
+configuration{
+ modi: "drun";
+ lines: 5;
+ font: "Iosevka 12";
+ show-icons: true;
+ icon-theme: "Oranchelo";
+ terminal: "alacritty";
+ drun-display-format: "{icon} {name}";
+ display-drun: "  ";
+ location: 0;
+ separator-style: "solid";
+ disable-history: false;
+ hide-scrollbar: true;
+}
+
+@theme "/dev/null"
+
+element-text, element-icon {
+ background-color: inherit;
+ text-color: inherit;
+}
+
+* {
+ dark-black: #1e2122;
+ bg-col: #222526;
+ border-col: #282b2c;
+ selected-col: #282b2c;
+ blue: #8dae88;
+ fg-col: #d4be98;
+ fg-col2: #df736d;
+ width: 600;
+}
+
+window {
+ padding: 20px;
+ height: 360px;
+ border: 3px;
+ border-color: @border-col;
+ background-color: @bg-col;
+}
+
+mainbox {
+ padding: 5px;
+ border-radius: 13px;
+ background-color: @bg-col;
+}
+
+inputbar {
+ children: [prompt,entry];
+ background-color: @bg-col;
+ border-radius: 5px;
+ padding: 2px;
+}
+
+prompt {
+ background-color: @blue;
+ padding: 5px 5px 0px;
+ text-color: @bg-col;
+ border-radius: 3px;
+}
+
+textbox-prompt-colon {
+ expand: false;
+ str: ":";
+}
+
+entry {
+ padding: 6px;
+ text-color: @fg-col;
+ background-color: @bg-col;
+}
+
+listview {
+ border: 0px 0px 0px;
+ padding: 6px 0px 0px;
+ columns: 2;
+ background-color: @bg-col;
+}
+
+element {
+ padding: 5px;
+ background-color: @bg-col;
+ text-color: @fg-col ;
+}
+
+element-icon {
+ size: 25px;
+}
+
+element selected {
+ background-color: @selected-col ;
+ text-color: @fg-col2 ;
+}
diff --git a/.config/starship.toml b/.config/starship.toml
new file mode 100644
index 0000000..1e2cb06
--- /dev/null
+++ b/.config/starship.toml
@@ -0,0 +1,708 @@
+# Warning: This config does not include keys that have an unset value
+format = '$all'
+scan_timeout = 30
+command_timeout = 500
+add_newline = false
+
+[aws]
+format = 'on [$symbol($profile )(\($region\) )(\[$duration\])]($style)'
+symbol = '☁️ '
+style = 'bold yellow'
+disabled = false
+expiration_symbol = 'X'
+
+[aws.region_aliases]
+
+[[battery.display]]
+threshold = 10
+style = 'red bold'
+
+[character]
+format = '$symbol '
+success_symbol = '[❯](bold green)'
+error_symbol = '[❯](bold red)'
+vicmd_symbol = '[❮](bold green)'
+disabled = false
+
+[cmake]
+format = 'via [$symbol($version )]($style)'
+version_format = 'v${raw}'
+symbol = '△ '
+style = 'bold blue'
+disabled = false
+detect_extensions = []
+detect_files = [
+ 'CMakeLists.txt',
+ 'CMakeCache.txt',
+]
+detect_folders = []
+
+[cmd_duration]
+min_time = 2000
+format = 'took [$duration]($style) '
+style = 'yellow bold'
+show_milliseconds = false
+disabled = false
+show_notifications = false
+min_time_to_notify = 45000
+
+[conda]
+truncation_length = 1
+format = 'via [$symbol$environment]($style) '
+symbol = '🅒 '
+style = 'green bold'
+ignore_base = true
+disabled = true
+
+[crystal]
+format = 'via [$symbol($version )]($style)'
+version_format = 'v${raw}'
+symbol = '🔮 '
+style = 'bold red'
+disabled = false
+detect_extensions = ['cr']
+detect_files = ['shard.yml']
+detect_folders = []
+
+[dart]
+format = 'via [$symbol($version )]($style)'
+version_format = 'v${raw}'
+symbol = '🎯 '
+style = 'bold blue'
+disabled = false
+detect_extensions = ['dart']
+detect_files = [
+ 'pubspec.yaml',
+ 'pubspec.yml',
+ 'pubspec.lock',
+]
+detect_folders = ['.dart_tool']
+
+[deno]
+format = 'via [$symbol($version )]($style)'
+version_format = 'v${raw}'
+symbol = '🦕 '
+style = 'green bold'
+disabled = false
+detect_extensions = [
+ "js",
+ "ts",
+]
+detect_files = [
+ 'mod.ts',
+ 'deps.ts',
+ 'mod.js',
+ 'deps.js',
+]
+detect_folders = []
+
+[directory]
+truncation_length = 3
+truncate_to_repo = true
+fish_style_pwd_dir_length = 0
+use_logical_path = true
+format = '[$path]($style)[$read_only]($read_only_style) '
+style = 'cyan bold'
+disabled = false
+read_only = '🔒'
+read_only_style = 'red'
+truncation_symbol = ''
+home_symbol = '~'
+
+[directory.substitutions]
+
+[docker_context]
+symbol = '🐳 '
+style = 'blue bold'
+format = 'via [$symbol$context]($style) '
+only_with_files = true
+disabled = false
+detect_extensions = []
+detect_files = [
+ 'docker-compose.yml',
+ 'docker-compose.yaml',
+ 'Dockerfile',
+]
+detect_folders = []
+
+[dotnet]
+format = '[$symbol($version )(🎯 $tfm )]($style)'
+version_format = 'v${raw}'
+symbol = '.NET '
+style = 'blue bold'
+heuristic = true
+disabled = false
+detect_extensions = [
+ 'csproj',
+ 'fsproj',
+ 'xproj',
+ 'cs',
+]
+detect_files = [
+ 'global.json',
+ 'project.json',
+ 'Directory.Build.props',
+ 'Directory.Build.targets',
+ 'Packages.props',
+]
+detect_folders = []
+
+[elixir]
+format = 'via [$symbol($version \(OTP $otp_version\) )]($style)'
+version_format = 'v${raw}'
+symbol = '💧 '
+style = 'bold purple'
+disabled = false
+detect_extensions = []
+detect_files = ['mix.exs']
+detect_folders = []
+
+[elm]
+format = 'via [$symbol($version )]($style)'
+version_format = 'v${raw}'
+symbol = '🌳 '
+style = 'cyan bold'
+disabled = false
+detect_extensions = ['elm']
+detect_files = [
+ 'elm.json',
+ 'elm-package.json',
+ '.elm-version',
+]
+detect_folders = ['elm-stuff']
+
+[env_var]
+symbol = ''
+style = 'black bold dimmed'
+format = 'with [$env_value]($style) '
+disabled = false
+
+[erlang]
+format = 'via [$symbol($version )]($style)'
+version_format = 'v${raw}'
+symbol = ' '
+style = 'bold red'
+disabled = false
+detect_extensions = []
+detect_files = [
+ 'rebar.config',
+ 'erlang.mk',
+]
+detect_folders = []
+
+[gcloud]
+format = 'on [$symbol$account(@$domain)(\($region\))]($style) '
+symbol = '☁️ '
+style = 'bold blue'
+disabled = false
+
+[gcloud.region_aliases]
+
+[git_branch]
+format = 'on [$symbol$branch]($style)(:[$remote]($style)) '
+symbol = ' '
+style = 'bold purple'
+truncation_length = 9223372036854775807
+truncation_symbol = '…'
+only_attached = false
+always_show_remote = false
+disabled = false
+
+[git_commit]
+commit_hash_length = 7
+format = '[\($hash$tag\)]($style) '
+style = 'green bold'
+only_detached = true
+disabled = false
+tag_symbol = ' 🏷 '
+tag_disabled = true
+
+[git_state]
+rebase = 'REBASING'
+merge = 'MERGING'
+revert = 'REVERTING'
+cherry_pick = 'CHERRY-PICKING'
+bisect = 'BISECTING'
+am = 'AM'
+am_or_rebase = 'AM/REBASE'
+style = 'bold yellow'
+format = '\([$state( $progress_current/$progress_total)]($style)\) '
+disabled = false
+
+[git_status]
+format = '([\[$all_status$ahead_behind\]]($style) )'
+style = 'red bold'
+stashed = '\$'
+ahead = '⇡'
+behind = '⇣'
+diverged = '⇕'
+conflicted = '='
+deleted = '✘'
+renamed = '»'
+modified = '!'
+staged = '+'
+untracked = '?'
+disabled = false
+
+[golang]
+format = 'via [$symbol($version )]($style)'
+version_format = 'v${raw}'
+symbol = '🐹 '
+style = 'bold cyan'
+disabled = false
+detect_extensions = ['go']
+detect_files = [
+ 'go.mod',
+ 'go.sum',
+ 'glide.yaml',
+ 'Gopkg.yml',
+ 'Gopkg.lock',
+ '.go-version',
+]
+detect_folders = ['Godeps']
+
+[helm]
+format = 'via [$symbol($version )]($style)'
+version_format = 'v${raw}'
+symbol = '⎈ '
+style = 'bold white'
+disabled = false
+detect_extensions = []
+detect_files = [
+ 'helmfile.yaml',
+ 'Chart.yaml',
+]
+detect_folders = []
+
+[hg_branch]
+symbol = ' '
+style = 'bold purple'
+format = 'on [$symbol$branch]($style) '
+truncation_length = 9223372036854775807
+truncation_symbol = '…'
+disabled = true
+
+[hostname]
+ssh_only = true
+trim_at = '.'
+format = '[$hostname]($style) in '
+style = 'green dimmed bold'
+disabled = false
+
+[java]
+disabled = false
+format = 'via [$symbol($version )]($style)'
+version_format = 'v${raw}'
+style = 'red dimmed'
+symbol = '☕ '
+detect_extensions = [
+ 'java',
+ 'class',
+ 'jar',
+ 'gradle',
+ 'clj',
+ 'cljc',
+]
+detect_files = [
+ 'pom.xml',
+ 'build.gradle.kts',
+ 'build.sbt',
+ '.java-version',
+ 'deps.edn',
+ 'project.clj',
+ 'build.boot',
+]
+detect_folders = []
+
+[jobs]
+threshold = 1
+format = '[$symbol$number]($style) '
+symbol = '✦'
+style = 'bold blue'
+disabled = false
+
+[julia]
+format = 'via [$symbol($version )]($style)'
+version_format = 'v${raw}'
+symbol = 'ஃ '
+style = 'bold purple'
+disabled = false
+detect_extensions = ['jl']
+detect_files = [
+ 'Project.toml',
+ 'Manifest.toml',
+]
+detect_folders = []
+
+[kotlin]
+format = 'via [$symbol($version )]($style)'
+version_format = 'v${raw}'
+symbol = '🅺 '
+style = 'bold blue'
+kotlin_binary = 'kotlin'
+disabled = false
+detect_extensions = [
+ 'kt',
+ 'kts',
+]
+detect_files = []
+detect_folders = []
+
+[kubernetes]
+symbol = '☸ '
+format = '[$symbol$context( \($namespace\))]($style) in '
+style = 'cyan bold'
+disabled = true
+
+[kubernetes.context_aliases]
+
+[lua]
+format = 'via [$symbol($version )]($style)'
+version_format = 'v${raw}'
+symbol = '🌙 '
+style = 'bold blue'
+lua_binary = 'lua'
+disabled = false
+detect_extensions = ['lua']
+detect_files = ['.lua-version']
+detect_folders = ['lua']
+
+[memory_usage]
+threshold = 75
+format = 'via $symbol[$ram( | $swap)]($style) '
+style = 'white bold dimmed'
+symbol = '🐏 '
+disabled = false
+
+[nim]
+format = 'via [$symbol($version )]($style)'
+version_format = 'v${raw}'
+symbol = '👑 '
+style = 'yellow bold'
+disabled = false
+detect_extensions = [
+ 'nim',
+ 'nims',
+ 'nimble',
+]
+detect_files = ['nim.cfg']
+detect_folders = []
+
+[nix_shell]
+format = 'via [$symbol$state( \($name\))]($style) '
+symbol = '❄️ '
+style = 'bold blue'
+impure_msg = 'impure'
+pure_msg = 'pure'
+disabled = false
+
+[nodejs]
+format = 'via [$symbol($version )]($style)'
+version_format = 'v${raw}'
+symbol = ' '
+style = 'bold green'
+disabled = false
+not_capable_style = 'bold red'
+detect_extensions = [
+#'js',
+ 'mjs',
+ 'cjs',
+#'ts',
+]
+detect_files = [
+ 'package.json',
+ '.node-version',
+ '.nvmrc',
+]
+detect_folders = ['node_modules']
+
+[ocaml]
+format = 'via [$symbol($version )(\($switch_indicator$switch_name\) )]($style)'
+version_format = 'v${raw}'
+global_switch_indicator = ''
+local_switch_indicator = '*'
+symbol = '🐫 '
+style = 'bold yellow'
+disabled = false
+detect_extensions = [
+ 'opam',
+ 'ml',
+ 'mli',
+ 're',
+ 'rei',
+]
+detect_files = [
+ 'dune',
+ 'dune-project',
+ 'jbuild',
+ 'jbuild-ignore',
+ '.merlin',
+]
+detect_folders = [
+ '_opam',
+ 'esy.lock',
+]
+
+[openstack]
+format = 'on [$symbol$cloud(\($project\))]($style) '
+symbol = '☁️ '
+style = 'bold yellow'
+disabled = false
+
+[package]
+format = 'is [$symbol$version]($style) '
+symbol = '📦 '
+style = '208 bold'
+display_private = false
+disabled = false
+
+[perl]
+format = 'via [$symbol($version )]($style)'
+version_format = 'v${raw}'
+symbol = '🐪 '
+style = '149 bold'
+disabled = false
+detect_extensions = [
+ 'pl',
+ 'pm',
+ 'pod',
+]
+detect_files = [
+ 'Makefile.PL',
+ 'Build.PL',
+ 'cpanfile',
+ 'cpanfile.snapshot',
+ 'META.json',
+ 'META.yml',
+ '.perl-version',
+]
+detect_folders = []
+
+[php]
+format = 'via [$symbol($version )]($style)'
+version_format = 'v${raw}'
+symbol = '🐘 '
+style = '147 bold'
+disabled = false
+detect_extensions = ['php']
+detect_files = [
+ 'composer.json',
+ '.php-version',
+]
+detect_folders = []
+
+[purescript]
+format = 'via [$symbol($version )]($style)'
+version_format = 'v${raw}'
+symbol = '<=> '
+style = 'bold white'
+disabled = false
+detect_extensions = ['purs']
+detect_files = ['spago.dhall']
+detect_folders = []
+
+[python]
+pyenv_version_name = false
+pyenv_prefix = 'pyenv '
+python_binary = [
+ 'python',
+ 'python3',
+ 'python2',
+]
+format = 'via [${symbol}${pyenv_prefix}(${version} )(\($virtualenv\) )]($style)'
+version_format = 'v${raw}'
+style = 'yellow bold'
+symbol = '🐍 '
+disabled = false
+detect_extensions = ['py']
+detect_files = [
+ 'requirements.txt',
+ '.python-version',
+ 'pyproject.toml',
+ 'Pipfile',
+ 'tox.ini',
+ 'setup.py',
+ '__init__.py',
+]
+detect_folders = []
+
+[rlang]
+format = 'via [$symbol($version )]($style)'
+version_format = 'v${raw}'
+style = 'blue bold'
+symbol = '📐 '
+disabled = false
+detect_extensions = [
+ 'R',
+ 'Rd',
+ 'Rmd',
+ 'Rproj',
+ 'Rsx',
+]
+detect_files = ['.Rprofile']
+detect_folders = ['.Rproj.user']
+
+[red]
+format = 'via [$symbol($version )]($style)'
+symbol = '🔺 '
+style = 'red bold'
+disabled = false
+detect_extensions = [
+ 'red',
+ 'reds',
+]
+detect_files = []
+detect_folders = []
+
+[ruby]
+format = 'via [$symbol($version )]($style)'
+version_format = 'v${raw}'
+symbol = '💎 '
+style = 'bold red'
+disabled = false
+detect_extensions = ['rb']
+detect_files = [
+ 'Gemfile',
+ '.ruby-version',
+]
+detect_folders = []
+
+[rust]
+format = 'via [$symbol($version )]($style)'
+version_format = 'v${raw}'
+symbol = '🦀 '
+style = 'bold red'
+disabled = false
+detect_extensions = ['rs']
+detect_files = ['Cargo.toml']
+detect_folders = []
+
+[scala]
+format = 'via [$symbol($version )]($style)'
+version_format = 'v${raw}'
+disabled = false
+style = 'red bold'
+symbol = '🆂 '
+detect_extensions = [
+ 'sbt',
+ 'scala',
+]
+detect_files = [
+ '.scalaenv',
+ '.sbtenv',
+ 'build.sbt',
+]
+detect_folders = ['.metals']
+
+[shell]
+format = '$indicator '
+bash_indicator = 'bsh'
+fish_indicator = 'fsh'
+zsh_indicator = 'zsh'
+powershell_indicator = 'psh'
+ion_indicator = 'ion'
+elvish_indicator = 'esh'
+tcsh_indicator = 'tsh'
+unknown_indicator = ''
+disabled = true
+
+[shlvl]
+threshold = 2
+format = '[$symbol$shlvl]($style) '
+symbol = '↕️ '
+repeat = false
+style = 'bold yellow'
+disabled = true
+
+[singularity]
+symbol = ''
+format = '[$symbol\[$env\]]($style) '
+style = 'blue bold dimmed'
+disabled = false
+
+[status]
+format = '[$symbol$status]($style) '
+symbol = '✖'
+not_executable_symbol = '🚫'
+not_found_symbol = '🔍'
+sigint_symbol = '🧱'
+signal_symbol = '⚡'
+style = 'bold red'
+map_symbol = false
+recognize_signal_code = true
+disabled = false
+
+[swift]
+format = 'via [$symbol($version )]($style)'
+version_format = 'v${raw}'
+symbol = '🐦 '
+style = 'bold 202'
+disabled = false
+detect_extensions = ['swift']
+detect_files = ['Package.swift']
+detect_folders = []
+
+[terraform]
+format = 'via [$symbol$workspace]($style) '
+version_format = 'v${raw}'
+symbol = '💠 '
+style = 'bold 105'
+disabled = false
+detect_extensions = [
+ 'tf',
+ 'hcl',
+]
+detect_files = []
+detect_folders = ['.terraform']
+
+[time]
+format = 'at [$time]($style) '
+style = 'bold yellow'
+use_12hr = false
+disabled = true
+utc_time_offset = 'local'
+time_range = '-'
+
+[username]
+format = '[$user]($style) in '
+style_root = 'red bold'
+style_user = 'yellow bold'
+show_always = false
+disabled = false
+
+[vlang]
+format = 'via [$symbol($version )]($style)'
+symbol = 'V '
+style = 'blue bold'
+disabled = false
+detect_extensions = ['v']
+detect_files = [
+ 'v.mod',
+ 'vpkg.json',
+ '.vpkg-lock.json',
+]
+detect_folders = []
+
+[vagrant]
+format = 'via [$symbol($version )]($style)'
+version_format = 'v${raw}'
+symbol = '⍱ '
+style = 'cyan bold'
+disabled = false
+detect_extensions = []
+detect_files = ['Vagrantfile']
+detect_folders = []
+
+[zig]
+format = 'via [$symbol($version )]($style)'
+version_format = 'v${raw}'
+symbol = '↯ '
+style = 'bold yellow'
+disabled = false
+detect_extensions = ['zig']
+detect_files = []
+detect_folders = []
+
+[custom]
+
+
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..fd5bdf9
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule ".config/alacritty/themes/dracula"]
+ path = .config/alacritty/themes/dracula
+ url = git@github.com:dracula/alacritty.git
diff --git a/bootstrap.sh b/bootstrap.sh
new file mode 100755
index 0000000..671b2a2
--- /dev/null
+++ b/bootstrap.sh
@@ -0,0 +1,49 @@
+#!/usr/bin/env sh
+
+SYMLINKDIR=(readlink -f "$0")
+BASEDIR=$(dirname "$SYMLINKDIR")
+cd $BASEDIR
+
+source /etc/os-release
+
+read -p "Install dependencies? (y/n) " -n 1;
+echo "";
+if [[ $REPLY =~ ^[Yy]$ ]]; then
+
+ case $ID in
+ arch)
+ sudo pacman -S picom xorg-setxkbmap feh xorg-xinput dash imlib2 xorg-xsetroot alacritty flameshot rofi xorg-xbacklight pamixer playerctl xsecurelock git base rsync
+ ;;
+ void)
+ sudo xbps-install -S picom xorg-setxkbmap feh xorg-xinput dash imlib2 xorg-xsetroot alacritty flameshot rofi xorg-xbacklight pamixer playerctl xsecurelock git rsync
+ ;;
+ *)
+ echo "You'll have to install the dependencies yourself"
+ ;;
+ esac
+
+fi;
+
+git pull origin main;
+
+function doIt() {
+ git clone https://github.com/NvChad/NvChad.git ~/.config/nvim
+ rsync --exclude ".git/" \
+ --exclude ".DS_Store" \
+ --exclude ".osx" \
+ --exclude "bootstrap.sh" \
+ --exclude "README.md" \
+ --exclude "LICENSE.md" \
+ -avh --no-perms ./.config/ ~/.config
+}
+
+if [ "$1" == "--force" -o "$1" == "-f" ]; then
+ doIt;
+else
+ read -p "This may overwrite existing files in your home directory. Are you sure? (y/n) " -n 1;
+ echo "";
+ if [[ $REPLY =~ ^[Yy]$ ]]; then
+ doIt;
+ fi;
+fi;
+unset doIt;