diff --git a/.config/alacritty/alacritty.toml b/.config/alacritty/alacritty.toml
new file mode 100644
index 0000000..8c7b5a5
--- /dev/null
+++ b/.config/alacritty/alacritty.toml
@@ -0,0 +1,45 @@
+[colors.cursor]
+cursor = "CellForeground"
+text = "CellBackground"
+
+[colors.primary]
+background = "#1d1f21"
+foreground = "#c5c8c6"
+
+[cursor]
+blink_interval = 750
+thickness = 0.2
+unfocused_hollow = true
+
+[cursor.style]
+blinking = "On"
+shape = "Beam"
+
+[env]
+TERM = "xterm-256color"
+
+[font]
+size = 9
+
+[font.bold]
+style = "Bold"
+
+[font.normal]
+family = "FiraCode Nerd Font"
+style = "Medium"
+
+[window]
+decorations = "none"
+decorations_theme_variant = "Dark"
+dynamic_padding = false
+dynamic_title = true
+opacity = 0.8
+title = "Alacritty"
+
+[window.dimensions]
+columns = 90
+lines = 32
+
+[window.padding]
+x = 10
+y = 10
diff --git a/.config/alacritty/alacritty.yml b/.config/alacritty/alacritty.yml
new file mode 100644
index 0000000..e49059d
--- /dev/null
+++ b/.config/alacritty/alacritty.yml
@@ -0,0 +1,897 @@
+# 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:
+# - /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: xterm-256color # alacritty
+
+window:
+ # Window dimensions (changes require restart)
+ #
+ # Number of lines/columns (not pixels) in the terminal. Both lines and columns
+ # must be non-zero for this to take effect. 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: 90
+ lines: 32
+
+ # 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: 10
+ y: 10
+
+ # 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: 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.
+ opacity: 0.8
+
+ # 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
+
+ # Decorations theme variant
+ #
+ # Override the variant of the System theme/GTK theme/Wayland client side
+ # decorations. Commonly supported values are `Dark`, `Light`, and `None` for
+ # auto pick-up. Set this to `None` to use the default theme variant.
+ decorations_theme_variant: Dark
+
+ # Make `Option` key behave as `Alt` (macOS only):
+ # - OnlyLeft
+ # - OnlyRight
+ # - Both
+ # - None (default)
+ #option_as_alt: 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:
+ # Font family
+ family: FiraCode Nerd Font
+
+ # The `style` can be specified to pick a specific face.
+ style: Medium
+
+ # Bold font face
+ bold:
+ # Font family
+ #
+ #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
+
+ # Font size
+ size: 9
+
+ # 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
+
+ # Use built-in font for box drawing characters.
+ #
+ # If `true`, Alacritty will use a custom built-in font for box drawing
+ # characters (Unicode points 2500 - 259f).
+ #
+ #builtin_box_drawing: 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'
+
+ # Keyboard 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
+
+ # Footer bar
+ #
+ # Color used for the footer bar on the bottom, used by search regex input,
+ # hyperlink URI preview, etc.
+ #
+ #footer_bar:
+ # background: '#c5c8c6'
+ # foreground: '#1d1f21'
+
+ # 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: []
+
+ # Transparent cell backgrounds
+ #
+ # Whether or not `window.opacity` applies to all cell backgrounds or only to
+ # the default background. When set to `true` all cells will be t#ransparent
+ # regardless of their background color.
+ #transparent_background_colors: false
+
+# 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: Linear
+
+ # Duration of the visual bell flash in milliseconds. A `duration` of `0` will
+ # disable the visual bell animation.
+ #duration: 100
+
+ # 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
+
+#selection:
+ # 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: On
+
+ # 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
+
+ # Time after which cursor stops blinking, in seconds.
+ #
+ # Specifying '0' will disable timeout for blinking.
+ #blink_timeout: 5
+
+ # 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.2
+
+# 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:
+# - (Linux/BSD/macOS) `$SHELL` or the user's login shell, if `$SHELL` is unset
+# - (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
+
+# Offer IPC using `alacritty msg` (unix only)
+#ipc_socket: 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
+
+# Hints
+#
+# Terminal hints can be used to find text or hyperlink 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 any of `regex` or `hyperlinks` field and either an
+ # `action` or a `command` field. The fields `mouse`, `binding` and
+ # `post_processing` are optional.
+ #
+ # The `hyperlinks` option will cause OSC 8 escape sequence hyperlinks to be
+ # highlighted.
+ #
+ # 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 and applies only to
+ # `regex` matches.
+ #
+ # 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{-}\\^⟨⟩`]+"
+ # hyperlinks: true
+ # 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 for actions not exclusive to mouse mode)
+#
+# - Mouse exclusive actions:
+#
+# - ExpandSelection
+# Expand the selection to the current mouse cursor location.
+#
+# And optionally:
+#
+# - `mods` (see key bindings)
+#mouse_bindings:
+# - { mouse: Right, action: ExpandSelection }
+# - { mouse: Right, mods: Control, action: ExpandSelection }
+# - { mouse: Middle, mode: ~Vi, 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/winit/*/winit/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.
+# - CreateNewWindow
+# Create a new Alacritty window from the current process.
+# - 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`.
+# - CenterAroundViCursor
+# Center view around vi mode cursor
+#
+# - 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: ~Search, action: ToggleViMode }
+ #- { key: Space, mods: Shift|Control, mode: Vi|~Search, action: ScrollToBottom }
+ #- { key: Escape, mode: Vi|~Search, action: ClearSelection }
+ #- { key: I, mode: Vi|~Search, action: ToggleViMode }
+ #- { key: I, mode: Vi|~Search, action: ScrollToBottom }
+ #- { 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: Z, mode: Vi|~Search, action: CenterAroundViCursor }
+ #- { 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: CreateNewWindow }
+ #- { 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
+
+ # Renderer override.
+ # - glsl3
+ # - gles2
+ # - gles2_pure
+ #renderer: None
+
+ # Print all received window events.
+ #print_events: false
+
+ # Highlight window damage information.
+ #highlight_damage: false
diff --git a/.config/autorandr/diagonal/config b/.config/autorandr/diagonal/config
new file mode 100644
index 0000000..fd5bdf5
--- /dev/null
+++ b/.config/autorandr/diagonal/config
@@ -0,0 +1,24 @@
+output HDMI-1
+crtc 0
+filter bilinear
+mode 1920x1080
+pos 0x0
+primary
+rate 60.00
+transform 0.871567,0.490250,0.000000,-0.490250,0.871567,941.000000,0.000000,0.000000,1.000000
+x-prop-aspect_ratio Automatic
+x-prop-audio auto
+x-prop-broadcast_rgb Automatic
+x-prop-colorspace Default
+x-prop-max_bpc 12
+x-prop-non_desktop 0
+output eDP-1
+crtc 1
+mode 1920x1080
+pos 2203x816
+rate 60.01
+x-prop-broadcast_rgb Automatic
+x-prop-colorspace Default
+x-prop-max_bpc 12
+x-prop-non_desktop 0
+x-prop-scaling_mode Full aspect
diff --git a/.config/autorandr/diagonal/setup b/.config/autorandr/diagonal/setup
new file mode 100644
index 0000000..97d5ca3
--- /dev/null
+++ b/.config/autorandr/diagonal/setup
@@ -0,0 +1,2 @@
+HDMI-1 00ffffffffffff0010acc8a1423334311c20010380351e78ea5625ab534f9d25105054a54b00714f8180a9c0d1c081c081cf01010101023a801871382d40582c45000f282100001e000000ff003339334c4c51330a2020202020000000fc0044454c4c20503234323248450a000000fd00384c1e5311000a20202020202001cb020315b14a900504030201141f121365030c001000023a801871382d40582c45000f282100001e011d8018711c1620582c25000f282100009e011d007251d01e206e2855000f282100001e8c0ad08a20e02d10103e96000f2821000018000000000000000000000000000000000000000000000000000000000000000000005e
+eDP-1 00ffffffffffff000dae0d15000000002a1c0104952213780328659759548e271e505400000001010101010101010101010101010101b43b804a713834405036680058c11000001acd27804a713834405036680058c11000001a00000000000000000000000000000000000000000002000c3dff0d3c7d1212267d0000000057
diff --git a/.config/autorandr/trottier_up/trottier_up/config b/.config/autorandr/trottier_up/trottier_up/config
new file mode 100644
index 0000000..3e15844
--- /dev/null
+++ b/.config/autorandr/trottier_up/trottier_up/config
@@ -0,0 +1,22 @@
+output HDMI-1
+crtc 1
+mode 1920x1080
+pos 0x0
+rate 60.00
+x-prop-aspect_ratio Automatic
+x-prop-audio auto
+x-prop-broadcast_rgb Automatic
+x-prop-colorspace Default
+x-prop-max_bpc 12
+x-prop-non_desktop 0
+output eDP-1
+crtc 0
+mode 1920x1080
+pos 0x1080
+primary
+rate 60.01
+x-prop-broadcast_rgb Automatic
+x-prop-colorspace Default
+x-prop-max_bpc 12
+x-prop-non_desktop 0
+x-prop-scaling_mode Full aspect
diff --git a/.config/autorandr/trottier_up/trottier_up/setup b/.config/autorandr/trottier_up/trottier_up/setup
new file mode 100644
index 0000000..0ebb2cf
--- /dev/null
+++ b/.config/autorandr/trottier_up/trottier_up/setup
@@ -0,0 +1,2 @@
+HDMI-1 00ffffffffffff0010acc8a1424430311c20010380351e78ea5625ab534f9d25105054a54b00714f8180a9c0d1c081c081cf01010101023a801871382d40582c45000f282100001e000000ff004248574d4c51330a2020202020000000fc0044454c4c20503234323248450a000000fd00384c1e5311000a202020202020017b020315b14a900504030201141f121365030c001000023a801871382d40582c45000f282100001e011d8018711c1620582c25000f282100009e011d007251d01e206e2855000f282100001e8c0ad08a20e02d10103e96000f2821000018000000000000000000000000000000000000000000000000000000000000000000005e
+eDP-1 00ffffffffffff000dae0d15000000002a1c0104952213780328659759548e271e505400000001010101010101010101010101010101b43b804a713834405036680058c11000001acd27804a713834405036680058c11000001a00000000000000000000000000000000000000000002000c3dff0d3c7d1212267d0000000057
diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc
new file mode 100644
index 0000000..3c132c2
--- /dev/null
+++ b/.config/dunst/dunstrc
@@ -0,0 +1,387 @@
+# See dunst(5) for all configuration options
+
+[global]
+ ### Display ###
+
+ # Which monitor should the notifications be displayed on.
+ monitor = 0
+
+ # Display notification on focused monitor. Possible modes are:
+ # mouse: follow mouse pointer
+ # keyboard: follow window with keyboard focus
+ # none: don't follow anything
+ #
+ # "keyboard" needs a window manager that exports the
+ # _NET_ACTIVE_WINDOW property.
+ # This should be the case for almost all modern window managers.
+ #
+ # If this option is set to mouse or keyboard, the monitor option
+ # will be ignored.
+ follow = mouse
+
+ ### Geometry ###
+
+ # dynamic width from 0 to 300
+ # width = (0, 300)
+ # constant width of 300
+ width = 500
+
+ # The maximum height of a single notification, excluding the frame.
+ height = 240
+
+ # Position the notification in the top right corner
+ origin = top-center
+
+ # Offset from the origin
+ offset = 0x12
+
+ # Scale factor. It is auto-detected if value is 0.
+ scale = 0
+
+ # Maximum number of notification (0 means no limit)
+ notification_limit = 0
+
+ ### Progress bar ###
+
+ # Turn on the progess bar. It appears when a progress hint is passed with
+ # for example dunstify -h int:value:12
+ progress_bar = true
+
+ # Set the progress bar height. This includes the frame, so make sure
+ # it's at least twice as big as the frame width.
+ progress_bar_height = 10
+
+ # Set the frame width of the progress bar
+ progress_bar_frame_width = 1
+
+ # Set the minimum width for the progress bar
+ progress_bar_min_width = 150
+
+ # Set the maximum width for the progress bar
+ progress_bar_max_width = 300
+
+ # Corner radius for the progress bar. 0 disables rounded corners.
+ progress_bar_corner_radius = 12
+
+ # Corner radius for the icon image.
+ icon_corner_radius = 0
+
+ # Show how many messages are currently hidden (because of
+ # notification_limit).
+ indicate_hidden = yes
+
+ # The transparency of the window. Range: [0; 100].
+ # This option will only work if a compositing window manager is
+ # present (e.g. xcompmgr, compiz, etc.). (X11 only)
+ transparency = 90
+
+ # Draw a line of "separator_height" pixel height between two
+ # notifications.
+ # Set to 0 to disable.
+ # If gap_size is greater than 0, this setting will be ignored.
+ separator_height = 2
+
+ # Padding between text and separator.
+ padding = 8
+
+ # Horizontal padding.
+ horizontal_padding = 8
+
+ # Padding between text and icon.
+ text_icon_padding = 0
+
+ # Defines width in pixels of frame around the notification window.
+ # Set to 0 to disable.
+ frame_width = 2
+
+ # Defines color of the frame around the notification window.
+ frame_color = "#d7c7ebaa"
+
+ # Size of gap to display between notifications - requires a compositor.
+ # If value is greater than 0, separator_height will be ignored and a border
+ # of size frame_width will be drawn around each notification instead.
+ # Click events on gaps do not currently propagate to applications below.
+ gap_size = 0
+
+ # Define a color for the separator.
+ # possible values are:
+ # * auto: dunst tries to find a color fitting to the background;
+ # * foreground: use the same color as the foreground;
+ # * frame: use the same color as the frame;
+ # * anything else will be interpreted as a X color.
+ separator_color = foreground
+
+ # Sort messages by urgency.
+ sort = no
+
+ # Don't remove messages, if the user is idle (no mouse or keyboard input)
+ # for longer than idle_threshold seconds.
+ # Set to 0 to disable.
+ # A client can set the 'transient' hint to bypass this. See the rules
+ # section for how to disable this if necessary
+ # idle_threshold = 120
+
+ ### Text ###
+
+ font = Fira Code Nerd 12
+
+ # The spacing between lines. If the height is smaller than the
+ # font height, it will get raised to the font height.
+ line_height = 0
+
+ # Possible values are:
+ # full: Allow a small subset of html markup in notifications:
+ # bold
+ # italic
+ # strikethrough
+ # underline
+ #
+ # For a complete reference see
+ # .
+ #
+ # strip: This setting is provided for compatibility with some broken
+ # clients that send markup even though it's not enabled on the
+ # server. Dunst will try to strip the markup but the parsing is
+ # simplistic so using this option outside of matching rules for
+ # specific applications *IS GREATLY DISCOURAGED*.
+ #
+ # no: Disable markup parsing, incoming notifications will be treated as
+ # plain text. Dunst will not advertise that it has the body-markup
+ # capability if this is set as a global setting.
+ #
+ # It's important to note that markup inside the format option will be parsed
+ # regardless of what this is set to.
+ markup = full
+
+ # The format of the message. Possible variables are:
+ # %a appname
+ # %s summary
+ # %b body
+ # %i iconname (including its path)
+ # %I iconname (without its path)
+ # %p progress value if set ([ 0%] to [100%]) or nothing
+ # %n progress value if set without any extra characters
+ # %% Literal %
+ # Markup is allowed
+ format = "%s%p"
+
+ # Alignment of message text.
+ # Possible values are "left", "center" and "right".
+ alignment = left
+
+ # Vertical alignment of message text and icon.
+ # Possible values are "top", "center" and "bottom".
+ vertical_alignment = center
+
+ # Show age of message if message is older than show_age_threshold
+ # seconds.
+ # Set to -1 to disable.
+ show_age_threshold = 60
+
+ # Specify where to make an ellipsis in long lines.
+ # Possible values are "start", "middle" and "end".
+ ellipsize = middle
+
+ # Ignore newlines '\n' in notifications.
+ ignore_newline = no
+
+ # Stack together notifications with the same content
+ stack_duplicates = true
+
+ # Hide the count of stacked notifications with the same content
+ hide_duplicate_count = false
+
+ # Display indicators for URLs (U) and actions (A).
+ show_indicators = yes
+
+ ### Icons ###
+
+ # Recursive icon lookup. You can set a single theme, instead of having to
+ # define all lookup paths.
+ enable_recursive_icon_lookup = true
+
+ # Set icon theme (only used for recursive icon lookup)
+ icon_theme = Adwaita
+ # You can also set multiple icon themes, with the leftmost one being used first.
+ # icon_theme = "Adwaita, breeze"
+
+ # Align icons left/right/top/off
+ icon_position = left
+
+ # Scale small icons up to this size, set to 0 to disable. Helpful
+ # for e.g. small files or high-dpi screens. In case of conflict,
+ # max_icon_size takes precedence over this.
+ min_icon_size = 32
+
+ # Scale larger icons down to this size, set to 0 to disable
+ max_icon_size = 128
+
+ # Paths to default icons (only neccesary when not using recursive icon lookup)
+ icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
+
+ ### History ###
+
+ # Should a notification popped up from history be sticky or timeout
+ # as if it would normally do.
+ sticky_history = no
+
+ # Maximum amount of notifications kept in history
+ history_length = 20
+
+ ### Misc/Advanced ###
+
+ # dmenu path.
+ dmenu = /usr/bin/dmenu -p dunst:
+
+ # Browser for opening urls in context menu.
+ browser = /usr/bin/xdg-open
+
+ # Always run rule-defined scripts, even if the notification is suppressed
+ always_run_script = true
+
+ # Define the title of the windows spawned by dunst
+ title = Dunst
+
+ # Define the class of the windows spawned by dunst
+ class = Dunst
+
+ # Define the corner radius of the notification window
+ # in pixel size. If the radius is 0, you have no rounded
+ # corners.
+ # The radius will be automatically lowered if it exceeds half of the
+ # notification height to avoid clipping text and/or icons.
+ corner_radius = 12
+
+ # Ignore the dbus closeNotification message.
+ # Useful to enforce the timeout set by dunst configuration. Without this
+ # parameter, an application may close the notification sent before the
+ # user defined timeout.
+ ignore_dbusclose = true
+
+ ### Wayland ###
+ # These settings are Wayland-specific. They have no effect when using X11
+
+ # Uncomment this if you want to let notications appear under fullscreen
+ # applications (default: overlay)
+ # layer = top
+
+ # Set this to true to use X11 output on Wayland.
+ force_xwayland = false
+
+ ### Legacy
+
+ # Use the Xinerama extension instead of RandR for multi-monitor support.
+ # This setting is provided for compatibility with older nVidia drivers that
+ # do not support RandR and using it on systems that support RandR is highly
+ # discouraged.
+ #
+ # By enabling this setting dunst will not be able to detect when a monitor
+ # is connected or disconnected which might break follow mode if the screen
+ # layout changes.
+ force_xinerama = false
+
+ ### mouse
+
+ # Defines list of actions for each mouse event
+ # Possible values are:
+ # * none: Don't do anything.
+ # * do_action: Invoke the action determined by the action_name rule. If there is no
+ # such action, open the context menu.
+ # * open_url: If the notification has exactly one url, open it. If there are multiple
+ # ones, open the context menu.
+ # * close_current: Close current notification.
+ # * close_all: Close all notifications.
+ # * context: Open context menu for the notification.
+ # * context_all: Open context menu for all notifications.
+ # These values can be strung together for each mouse event, and
+ # will be executed in sequence.
+ mouse_left_click = close_current
+ mouse_middle_click = do_action, close_current
+ mouse_right_click = close_all
+
+# Experimental features that may or may not work correctly. Do not expect them
+# to have a consistent behaviour across releases.
+[experimental]
+ # Calculate the dpi to use on a per-monitor basis.
+ # If this setting is enabled the Xft.dpi value will be ignored and instead
+ # dunst will attempt to calculate an appropriate dpi value for each monitor
+ # using the resolution and physical size. This might be useful in setups
+ # where there are multiple screens with very different dpi values.
+ per_monitor_dpi = false
+
+
+[urgency_low]
+ # IMPORTANT: colors have to be defined in quotation marks.
+ # Otherwise the "#" and following would be interpreted as a comment.
+ background = "#222222"
+ foreground = "#888888"
+ timeout = 1
+ # Icon for notifications with low urgency, uncomment to enable
+ #default_icon = /path/to/icon
+
+[urgency_normal]
+ background = "#3b2e94ee"
+ foreground = "#ffffff"
+ timeout = 1
+ # Icon for notifications with normal urgency, uncomment to enable
+ #default_icon = /path/to/icon
+
+[urgency_critical]
+ background = "#900000"
+ foreground = "#ffffff"
+ frame_color = "#ff0000"
+ timeout = 0
+ # Icon for notifications with critical urgency, uncomment to enable
+ #default_icon = /path/to/icon
+
+# Every section that isn't one of the above is interpreted as a rules to
+# override settings for certain messages.
+#
+# Messages can be matched by
+# appname (discouraged, see desktop_entry)
+# body
+# category
+# desktop_entry
+# icon
+# match_transient
+# msg_urgency
+# stack_tag
+# summary
+#
+# and you can override the
+# background
+# foreground
+# format
+# frame_color
+# fullscreen
+# new_icon
+# set_stack_tag
+# set_transient
+# set_category
+# timeout
+# urgency
+# icon_position
+# skip_display
+# history_ignore
+# action_name
+# word_wrap
+# ellipsize
+# alignment
+# hide_text
+#
+# Shell-like globbing will get expanded.
+#
+# Instead of the appname filter, it's recommended to use the desktop_entry filter.
+# GLib based applications export their desktop-entry name. In comparison to the appname,
+# the desktop-entry won't get localized.
+#
+# SCRIPTING
+# You can specify a script that gets run when the rule matches by
+# setting the "script" option.
+# The script will be called as follows:
+# script appname summary body icon urgency
+# where urgency can be "LOW", "NORMAL" or "CRITICAL".
+#
+# NOTE: It might be helpful to run dunst -print in a terminal in order
+# to find fitting options for rules.
+
diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim
new file mode 100644
index 0000000..93c0691
--- /dev/null
+++ b/.config/nvim/init.vim
@@ -0,0 +1,22 @@
+set number
+filetype plugin indent on
+set tabstop=2
+set shiftwidth=2
+set expandtab
+set noshowmode
+
+call plug#begin()
+Plug 'tpope/vim-sensible'
+Plug 'ap/vim-css-color'
+Plug 'itchyny/lightline.vim'
+Plug 'preservim/tagbar'
+Plug 'preservim/nerdtree'
+Plug 'tpope/vim-surround'
+Plug 'airblade/vim-gitgutter'
+Plug 'preservim/nerdtree'
+Plug 'ryanoasis/vim-devicons'
+
+call plug#end()
+
+map :NERDTreeToggle
+
diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json
new file mode 100644
index 0000000..9d66499
--- /dev/null
+++ b/.config/nvim/lazy-lock.json
@@ -0,0 +1,30 @@
+{
+ "Comment.nvim": { "branch": "master", "commit": "a89339ffbee677ab0521a483b6dac7e2e67c907e" },
+ "LuaSnip": { "branch": "master", "commit": "8d6c0a93dec34900577ba725e91c44b8d3ca1f45" },
+ "base46": { "branch": "v2.0", "commit": "82b2e48ca4a858ff08860f868be779812321ee76" },
+ "better-escape.nvim": { "branch": "master", "commit": "426d29708064d5b1bfbb040424651c92af1f3f64" },
+ "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
+ "cmp-nvim-lsp": { "branch": "main", "commit": "0e6b2ed705ddcff9738ec4ea838141654f12eeef" },
+ "cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" },
+ "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
+ "cmp_luasnip": { "branch": "master", "commit": "18095520391186d634a0045dacaa346291096566" },
+ "extensions": { "branch": "v2.0", "commit": "f76b8460d2f960c1c5c2af40845ead33c725bbf7" },
+ "friendly-snippets": { "branch": "main", "commit": "b1b78a6433268fc172adb5a843e165035e83861e" },
+ "gitsigns.nvim": { "branch": "main", "commit": "7dfe4be94b4f84a9931098f0f0f618d055e50bd5" },
+ "indent-blankline.nvim": { "branch": "master", "commit": "018bd04d80c9a73d399c1061fa0c3b14a7614399" },
+ "lazy.nvim": { "branch": "main", "commit": "903f0fe542fc35b74f3c09494f9c175346dfa76d" },
+ "mason.nvim": { "branch": "main", "commit": "579d4bd178f4aae76a4f4dc2ea34bf5e8fa6231b" },
+ "null-ls.nvim": { "branch": "main", "commit": "25e3a4528179de903df85b4a8275f267b345b3b9" },
+ "nvim-autopairs": { "branch": "master", "commit": "7566a86f44bb72ba2b1a609f528a27d93241502d" },
+ "nvim-cmp": { "branch": "main", "commit": "777450fd0ae289463a14481673e26246b5e38bf2" },
+ "nvim-colorizer.lua": { "branch": "master", "commit": "dde3084106a70b9a79d48f426f6d6fec6fd203f7" },
+ "nvim-lspconfig": { "branch": "master", "commit": "cf95480e876ef7699bf08a1d02aa0ae3f4d5f353" },
+ "nvim-tree.lua": { "branch": "master", "commit": "967865cdb7ac56046af01a0cd79f215bda5f59aa" },
+ "nvim-treesitter": { "branch": "master", "commit": "57d1a5843742a180be9a3a1d1c652a7d22709691" },
+ "nvim-web-devicons": { "branch": "master", "commit": "4ec26d67d419c12a4abaea02f1b6c57b40c08d7e" },
+ "nvterm": { "branch": "main", "commit": "29a70ef608a8cc5db3a5fc300d39a39d1a44a863" },
+ "plenary.nvim": { "branch": "master", "commit": "9ac3e9541bbabd9d73663d757e4fe48a675bb054" },
+ "telescope.nvim": { "branch": "master", "commit": "6258d50b09f9ae087317e392efe7c05a7323492d" },
+ "ui": { "branch": "v2.0", "commit": "84d793ec7446bc688d8336eebed5bdd640a8b032" },
+ "which-key.nvim": { "branch": "main", "commit": "94cb020ff33a1e0e22fac1c41663d2c439741f17" }
+}
\ No newline at end of file
diff --git a/.config/nvim/lua/custom/README.md b/.config/nvim/lua/custom/README.md
new file mode 100644
index 0000000..a6ef0d1
--- /dev/null
+++ b/.config/nvim/lua/custom/README.md
@@ -0,0 +1,3 @@
+# Example_config
+
+This can be used as an example custom config for NvChad, this branch is a minimal one. Do check the feature_full branch if you need all the ease in your config.
diff --git a/.config/nvim/lua/custom/chadrc.lua b/.config/nvim/lua/custom/chadrc.lua
new file mode 100644
index 0000000..154c455
--- /dev/null
+++ b/.config/nvim/lua/custom/chadrc.lua
@@ -0,0 +1,20 @@
+---@type ChadrcConfig
+local M = {}
+
+-- Path to overriding theme and highlights files
+local highlights = require "custom.highlights"
+
+M.ui = {
+ theme = "onedark",
+ theme_toggle = { "onedark", "one_light" },
+
+ hl_override = highlights.override,
+ hl_add = highlights.add,
+}
+
+M.plugins = "custom.plugins"
+
+-- check core.mappings for table structure
+M.mappings = require "custom.mappings"
+
+return M
diff --git a/.config/nvim/lua/custom/configs/lspconfig.lua b/.config/nvim/lua/custom/configs/lspconfig.lua
new file mode 100644
index 0000000..d6f7f2b
--- /dev/null
+++ b/.config/nvim/lua/custom/configs/lspconfig.lua
@@ -0,0 +1,17 @@
+local on_attach = require("plugins.configs.lspconfig").on_attach
+local capabilities = require("plugins.configs.lspconfig").capabilities
+
+local lspconfig = require "lspconfig"
+
+-- if you just want default config for the servers then put them in a table
+local servers = { "html", "cssls", "tsserver", "clangd" }
+
+for _, lsp in ipairs(servers) do
+ lspconfig[lsp].setup {
+ on_attach = on_attach,
+ capabilities = capabilities,
+ }
+end
+
+--
+-- lspconfig.pyright.setup { blabla}
diff --git a/.config/nvim/lua/custom/configs/null-ls.lua b/.config/nvim/lua/custom/configs/null-ls.lua
new file mode 100644
index 0000000..cfdb3e0
--- /dev/null
+++ b/.config/nvim/lua/custom/configs/null-ls.lua
@@ -0,0 +1,25 @@
+local present, null_ls = pcall(require, "null-ls")
+
+if not present then
+ return
+end
+
+local b = null_ls.builtins
+
+local sources = {
+
+ -- webdev stuff
+ b.formatting.deno_fmt, -- choosed deno for ts/js files cuz its very fast!
+ b.formatting.prettier.with { filetypes = { "html", "markdown", "css" } }, -- so prettier works only on these filetypes
+
+ -- Lua
+ b.formatting.stylua,
+
+ -- cpp
+ b.formatting.clang_format,
+}
+
+null_ls.setup {
+ debug = true,
+ sources = sources,
+}
diff --git a/.config/nvim/lua/custom/configs/overrides.lua b/.config/nvim/lua/custom/configs/overrides.lua
new file mode 100644
index 0000000..c4cd2c7
--- /dev/null
+++ b/.config/nvim/lua/custom/configs/overrides.lua
@@ -0,0 +1,59 @@
+local M = {}
+
+M.treesitter = {
+ ensure_installed = {
+ "vim",
+ "lua",
+ "html",
+ "css",
+ "javascript",
+ "typescript",
+ "tsx",
+ "c",
+ "markdown",
+ "markdown_inline",
+ },
+ indent = {
+ enable = true,
+ -- disable = {
+ -- "python"
+ -- },
+ },
+}
+
+M.mason = {
+ ensure_installed = {
+ -- lua stuff
+ "lua-language-server",
+ "stylua",
+
+ -- web dev stuff
+ "css-lsp",
+ "html-lsp",
+ "typescript-language-server",
+ "deno",
+ "prettier",
+
+ -- c/cpp stuff
+ "clangd",
+ "clang-format",
+ },
+}
+
+-- git support in nvimtree
+M.nvimtree = {
+ git = {
+ enable = true,
+ },
+
+ renderer = {
+ highlight_git = true,
+ icons = {
+ show = {
+ git = true,
+ },
+ },
+ },
+}
+
+return M
diff --git a/.config/nvim/lua/custom/highlights.lua b/.config/nvim/lua/custom/highlights.lua
new file mode 100644
index 0000000..ebf2dfb
--- /dev/null
+++ b/.config/nvim/lua/custom/highlights.lua
@@ -0,0 +1,19 @@
+-- To find any highlight groups: " Telescope highlights"
+-- Each highlight group can take a table with variables fg, bg, bold, italic, etc
+-- base30 variable names can also be used as colors
+
+local M = {}
+
+---@type Base46HLGroupsList
+M.override = {
+ Comment = {
+ italic = true,
+ },
+}
+
+---@type HLTable
+M.add = {
+ NvimTreeOpenedFolderName = { fg = "green", bold = true },
+}
+
+return M
diff --git a/.config/nvim/lua/custom/init.lua b/.config/nvim/lua/custom/init.lua
new file mode 100644
index 0000000..608a8d9
--- /dev/null
+++ b/.config/nvim/lua/custom/init.lua
@@ -0,0 +1,7 @@
+-- local autocmd = vim.api.nvim_create_autocmd
+
+-- Auto resize panes when resizing nvim window
+-- autocmd("VimResized", {
+-- pattern = "*",
+-- command = "tabdo wincmd =",
+-- })
diff --git a/.config/nvim/lua/custom/mappings.lua b/.config/nvim/lua/custom/mappings.lua
new file mode 100644
index 0000000..9ce068a
--- /dev/null
+++ b/.config/nvim/lua/custom/mappings.lua
@@ -0,0 +1,12 @@
+---@type MappingsTable
+local M = {}
+
+M.general = {
+ n = {
+ [";"] = { ":", "enter command mode", opts = { nowait = true } },
+ },
+}
+
+-- more keybinds!
+
+return M
diff --git a/.config/nvim/lua/custom/plugins.lua b/.config/nvim/lua/custom/plugins.lua
new file mode 100644
index 0000000..e6c698b
--- /dev/null
+++ b/.config/nvim/lua/custom/plugins.lua
@@ -0,0 +1,58 @@
+local overrides = require("custom.configs.overrides")
+
+---@type NvPluginSpec[]
+local plugins = {
+
+ -- Override plugin definition options
+
+ {
+ "neovim/nvim-lspconfig",
+ dependencies = {
+ -- format & linting
+ {
+ "jose-elias-alvarez/null-ls.nvim",
+ config = function()
+ require "custom.configs.null-ls"
+ end,
+ },
+ },
+ config = function()
+ require "plugins.configs.lspconfig"
+ require "custom.configs.lspconfig"
+ end, -- Override to setup mason-lspconfig
+ },
+
+ -- override plugin configs
+ {
+ "williamboman/mason.nvim",
+ opts = overrides.mason
+ },
+
+ {
+ "nvim-treesitter/nvim-treesitter",
+ opts = overrides.treesitter,
+ },
+
+ {
+ "nvim-tree/nvim-tree.lua",
+ opts = overrides.nvimtree,
+ },
+
+ -- Install a plugin
+ {
+ "max397574/better-escape.nvim",
+ event = "InsertEnter",
+ config = function()
+ require("better_escape").setup()
+ end,
+ },
+
+ -- To make a plugin not be loaded
+ -- {
+ -- "NvChad/nvim-colorizer.lua",
+ -- enabled = false
+ -- },
+
+}
+
+return plugins
diff --git a/.config/picom.conf b/.config/picom.conf
new file mode 100644
index 0000000..8584f8f
--- /dev/null
+++ b/.config/picom.conf
@@ -0,0 +1,337 @@
+# SHADOW
+
+# shadow = false
+shadow = false;
+shadow-radius = 50;
+shadow-opacity = 0.3
+
+# in pixel
+shadow-offset-x = -7;
+shadow-offset-y = -7;
+
+# Shadow RGB (0.0 - 1.0, default: 0)
+# shadow-red = 0
+# shadow-green = 0
+# shadow-blue = 0
+
+# Shadow color: default #000000
+# shadow-color = "#000000"
+
+# Specify a list of conditions of windows that should have no shadow.
+#
+# examples:
+# shadow-exclude = "n:e:Notification";
+#
+# shadow-exclude = []
+shadow-exclude = [
+ "name = 'Notification'",
+ "class_g = 'Conky'",
+ "class_g ?= 'Notify-osd'",
+ "class_g = 'Cairo-clock'",
+ "_GTK_FRAME_EXTENTS@:c"
+];
+
+# clip-shadow-above = []
+# shadow-exclude-reg = ""
+# xinerama-shadow-crop = false
+
+# FADING
+
+# Fade windows in/out when opening/closing and when opacity changes,
+# unless no-fading-openclose is used.
+# fading = false
+fading = true;
+
+# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
+# fade-in-step = 0.028
+fade-in-step = 0.05;
+
+# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
+# fade-out-step = 0.03
+fade-out-step = 0.05;
+
+# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
+fade-delta = 8
+
+# Specify a list of conditions of windows that should not be faded.
+# fade-exclude = []
+
+# Do not fade on window open/close.
+no-fading-openclose = false
+
+# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
+no-fading-destroyed-argb = false
+
+
+# TRANSPARENCY AND OPACITY
+
+# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
+inactive-opacity = 0.95;
+
+# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
+frame-opacity = 0.1;
+
+# Let inactive opacity set by -i override the '_NET_WM_WINDOW_OPACITY' values of windows.
+inactive-opacity-override = false;
+
+# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
+active-opacity = 1.0
+
+# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
+inactive-dim = 0.24
+
+# Specify a list of conditions of windows that should never be considered focused.
+# focus-exclude = []
+focus-exclude = [ "class_g = 'Cairo-clock'" ];
+
+# Use fixed inactive dim value, instead of adjusting according to window opacity.
+# inactive-dim-fixed = 1.0
+
+# Specify a list of opacity rules, in the format `PERCENT:PATTERN`,
+# like `50:name *= "Firefox"`. picom-trans is recommended over this.
+# Note we don't make any guarantee about possible conflicts with other
+# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
+# example:
+# opacity-rule = [ "80:class_g = 'URxvt'" ];
+#
+# opacity-rule = []
+
+
+# Corners #
+
+# Sets the radius of rounded window corners. When > 0, the compositor will
+# round the corners of windows. Does not interact well with
+# `transparent-clipping`.
+corner-radius = 21
+
+# Exclude conditions for rounded corners.
+rounded-corners-exclude = [
+ "window_type = 'dock'",
+ "window_type = 'desktop'"
+];
+
+
+# BACKGROUND - BLURRING
+
+# blur-size = 12
+#
+# blur-deviation = false
+#
+# blur-strength = 6
+
+# Blur background of semi-transparent / ARGB windows.
+# Bad in performance, with driver-dependent behavior.
+# The name of the switch may change without prior notifications.
+#
+# blur-background = false
+
+# Blur background of windows when the window frame is not opaque.
+# Implies:
+# blur-background
+# Bad in performance, with driver-dependent behavior. The name may change.
+#
+# blur-background-frame = false
+
+
+# Use fixed blur strength rather than adjusting according to window opacity.
+# blur-background-fixed = false
+
+
+# Specify the blur convolution kernel, with the following format:
+# example:
+# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
+#
+# blur-kern = ""
+blur-kern = "3x3box";
+
+
+# Exclude conditions for background blur.
+# blur-background-exclude = []
+blur-background-exclude = [
+ "window_type = 'dock'",
+ "window_type = 'desktop'",
+ "_GTK_FRAME_EXTENTS@:c"
+];
+
+#################################
+# General Settings #
+#################################
+
+# Enable remote control via D-Bus. See the man page for more details.
+# dbus = true
+
+# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
+# daemon = false
+
+# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
+backend = "glx"
+# Enable/disable VSync.
+# vsync = false
+vsync = true;
+
+# dbus = false
+mark-wmwin-focused = true;
+
+# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
+# mark-ovredir-focused = false
+mark-ovredir-focused = true;
+
+# Try to detect windows with rounded corners and don't consider them
+# shaped windows. The accuracy is not very high, unfortunately.
+#
+# detect-rounded-corners = false
+detect-rounded-corners = true;
+
+# Detect '_NET_WM_WINDOW_OPACITY' on client windows, useful for window managers
+# not passing '_NET_WM_WINDOW_OPACITY' of client windows to frame windows.
+#
+# detect-client-opacity = false
+detect-client-opacity = true;
+
+# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
+# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
+# provided that the WM supports it.
+#
+# use-ewmh-active-win = false
+
+# unredir-if-possible = false
+# unredir-if-possible-delay = 0
+# unredir-if-possible-exclude = []
+detect-transient = true;
+# detect-client-leader = false
+# resize-damage = 1
+# invert-color-include = []
+
+# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
+# Might cause incorrect opacity when rendering transparent content (but never
+# practically happened) and may not work with blur-background.
+# My tests show a 15% performance boost. Recommended.
+#
+glx-no-stencil = true;
+
+# GLX backend: Avoid rebinding pixmap on window damage.
+# Probably could improve performance on rapid window content changes,
+# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.).
+# Recommended if it works.
+#
+glx-no-rebind-pixmap = true
+
+# Disable the use of damage information.
+# This cause the whole screen to be redrawn every time, instead of the part of the screen
+# has actually changed. Potentially degrades the performance, but might fix some artifacts.
+# The opposing option is use-damage
+#
+# no-use-damage = false
+use-damage = false;
+
+# Use X Sync fence to sync clients' draw calls, to make sure all draw
+# calls are finished before picom starts drawing. Needed on nvidia-drivers
+# with GLX backend for some users.
+#
+# xrender-sync-fence = false
+
+# GLX backend: Use specified GLSL fragment shader for rendering window
+# contents. Read the man page for a detailed explanation of the interface.
+#
+# window-shader-fg = "default"
+
+# Use rules to set per-window shaders. Syntax is SHADER_PATH:PATTERN, similar
+# to opacity-rule. SHADER_PATH can be "default". This overrides window-shader-fg.
+#
+# window-shader-fg-rule = [
+# "my_shader.frag:window_type != 'dock'"
+# ]
+
+# Force all windows to be painted with blending. Useful if you
+# have a glx-fshader-win that could turn opaque pixels transparent.
+#
+# force-win-blend = false
+
+# Do not use EWMH to detect fullscreen windows.
+# Reverts to checking if a window is fullscreen based only on its size and coordinates.
+#
+# no-ewmh-fullscreen = false
+
+# Dimming bright windows so their brightness doesn't exceed this set value.
+# Brightness of a window is estimated by averaging all pixels in the window,
+# so this could comes with a performance hit.
+# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
+#
+# max-brightness = 1.0
+
+# Make transparent windows clip other windows like non-transparent windows do,
+# instead of blending on top of them.
+#
+transparent-clipping = false
+
+# Specify a list of conditions of windows that should never have transparent
+# clipping applied. Useful for screenshot tools, where you need to be able to
+# see through transparent parts of the window.
+#
+# transparent-clipping-exclude = []
+
+# Set the log level. Possible values are:
+# "trace", "debug", "info", "warn", "error"
+# in increasing level of importance. Case doesn't matter.
+# If using the "TRACE" log level, it's better to log into a file
+# using *--log-file*, since it can generate a huge stream of logs.
+#
+# log-level = "debug"
+log-level = "warn";
+
+# Set the log file.
+# If *--log-file* is never specified, logs will be written to stderr.
+# Otherwise, logs will to written to the given file, though some of the early
+# logs might still be written to the stderr.
+# When setting this option from the config file, it is recommended to use an absolute path.
+#
+# log-file = "/path/to/your/log/file"
+
+# Show all X errors (for debugging)
+# show-all-xerrors = false
+
+# Write process ID to a file.
+# write-pid-path = "/path/to/your/log/file"
+
+# Window type settings
+#
+# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard:
+# "unknown", "desktop", "dock", "toolbar", "menu", "utility",
+# "splash", "dialog", "normal", "dropdown_menu", "popup_menu",
+# "tooltip", "notification", "combo", and "dnd".
+#
+# Following per window-type options are available: ::
+#
+# fade, shadow:::
+# Controls window-type-specific shadow and fade settings.
+#
+# opacity:::
+# Controls default opacity of the window type.
+#
+# focus:::
+# Controls whether the window of this type is to be always considered focused.
+# (By default, all window types except "normal" and "dialog" has this on.)
+#
+# full-shadow:::
+# Controls whether shadow is drawn under the parts of the window that you
+# normally won't be able to see. Useful when the window has parts of it
+# transparent, and you want shadows in those areas.
+#
+# clip-shadow-above:::
+# Controls whether shadows that would have been drawn above the window should
+# be clipped. Useful for dock windows that should have no shadow painted on top.
+#
+# redir-ignore:::
+# Controls whether this type of windows should cause screen to become
+# redirected again after been unredirected. If you have unredir-if-possible
+# set, and doesn't want certain window to cause unnecessary screen redirection,
+# you can set this to `true`.
+#
+wintypes:
+{
+ tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
+ dock = { shadow = false; clip-shadow-above = true; }
+ dnd = { shadow = false; }
+ popup_menu = { opacity = 0.8; }
+ dropdown_menu = { opacity = 0.8; }
+};
diff --git a/.config/rofi/config.rasi b/.config/rofi/config.rasi
new file mode 100644
index 0000000..a0cc337
--- /dev/null
+++ b/.config/rofi/config.rasi
@@ -0,0 +1,31 @@
+// combi is basically a combination of all rofi windows
+// set `-show combi` in i3 config to show it at first page
+
+configuration {
+ modes: "emoji,run,calc,combi";
+ combi-modi: "drun,ssh,run";
+ font: "Fira Code Medium 15";
+ show-icons: true;
+ icon-theme: "Tela-dark-purple";
+ display-combi: "> ";
+ display-drun: "";
+ display-ssh: "ssh";
+ display-calc: "🧮";
+ disable-history: false;
+}
+
+
+//@theme "dracula.rasi"
+@theme "karamel"
+
+// to override theme with local config here
+// @theme "/dev/null"
+
+#textbox-prompt-colon {
+ expand: false;
+ str: "";
+ margin: 0px 0.3em 0em 0em ;
+ text-color: @foreground;
+}
+
+
diff --git a/.config/rofi/karamel.rasi b/.config/rofi/karamel.rasi
new file mode 100644
index 0000000..a0b8c57
--- /dev/null
+++ b/.config/rofi/karamel.rasi
@@ -0,0 +1,120 @@
+* {
+ foreground: #f9f9f9;
+ background-color: #14291c;
+ active-background: #06c179;
+ urgent-background: #ff5555;
+ urgent-foreground: #282a36;
+ selected-background: @active-background;
+ selected-urgent-background: @urgent-background;
+ selected-active-background: @active-background;
+ separatorcolor: @active-background;
+ bordercolor: @active-background;
+}
+
+#window {
+ background-color: @background-color;
+ border: 4;
+ border-radius: 20;
+ border-color: @bordercolor;
+ padding: 12;
+ margin: 12;
+}
+#mainbox {
+ border: 0;
+ border-radius: 12;
+ padding: 0;
+}
+#message {
+ border: 0px;
+ border-color: @separatorcolor;
+ padding: 12;
+}
+#textbox {
+ text-color: @foreground;
+}
+#listview {
+ fixed-height: 0;
+ border-color: @bordercolor;
+ scrollbar: false;
+ padding: 3px 0px ;
+}
+
+#element {
+ border: 1;
+ padding: 4;
+ border-radius: 6;
+}
+#element.normal.normal {
+ background-color: @background-color;
+ text-color: @foreground;
+}
+#element.normal.urgent {
+ background-color: @urgent-background;
+ text-color: @urgent-foreground;
+}
+#element.normal.active {
+ background-color: @active-background;
+ text-color: @foreground;
+}
+#element.selected.normal {
+ background-color: @selected-background;
+ text-color: @foreground;
+}
+#element.selected.urgent {
+ background-color: @selected-urgent-background;
+ text-color: @foreground;
+}
+#element.selected.active {
+ background-color: @selected-active-background;
+ text-color: @foreground;
+}
+#element.alternate.normal {
+ background-color: @background-color;
+ text-color: @foreground;
+}
+#element.alternate.urgent {
+ background-color: @urgent-background;
+ text-color: @foreground;
+}
+#element.alternate.active {
+ background-color: @active-background;
+ text-color: @foreground;
+}
+#scrollbar {
+ width: 2px ;
+ border: 0;
+ handle-width: 8px ;
+ padding: 0;
+}
+#sidebar {
+ border: 2px dash 0px 0px ;
+ border-color: @separatorcolor;
+}
+#button.selected {
+ background-color: @selected-background;
+ text-color: @foreground;
+}
+#inputbar {
+ spacing: 0;
+ text-color: @foreground;
+ padding: 1px ;
+}
+#case-indicator {
+ spacing: 0;
+ text-color: @foreground;
+}
+#entry {
+ spacing: 0;
+ text-color: @foreground;
+}
+#prompt {
+ spacing: 0;
+ text-color: @foreground;
+}
+#inputbar {
+ children: [ prompt,textbox-prompt-colon,entry,case-indicator ];
+}
+element-text, element-icon {
+ background-color: inherit;
+ text-color: inherit;
+}
diff --git a/.config/sway/config b/.config/sway/config
new file mode 100644
index 0000000..fca56f3
--- /dev/null
+++ b/.config/sway/config
@@ -0,0 +1,210 @@
+# Configuration for sway
+# Read `man 5 sway` for more information
+
+# Set Super key as mod
+set $mod Mod4
+
+# Set terminal emulator and application launcher
+set $term alacritty --option=font.size=12
+set $menu rofi
+
+# --- Startup programs ---
+# picom for transparency
+# exec --no-startup-id picom --shadow --inactive-opacity=0.9 --shadow-radius=60 --shadow-opacity=0.2 --fade-in-step=0.8 &
+
+# Background
+#output * bg $HOME/.wallpaper/* center #271829
+exec swaybg -i $HOME/.wallpaper/afternoon.png -m center &
+# Font for window titles. Will also be used by the bar unless a different font
+font pango:Fira Code 10
+
+# Input keymap and variant
+
+# Notification Daemon
+exec mako &
+
+# waybar
+# exec waybar &
+
+# Use wpctl (WirePlumber) to set volume
+bindsym XF86AudioRaiseVolume exec --no-startup-id wpctl set-volume @DEFAULT_SINK@ 10%+
+bindsym XF86AudioLowerVolume exec --no-startup-id wpctl set-volume @DEFAULT_SINK@ 10%-
+bindsym XF86AudioMute exec --no-startup-id wpctl set-mute @DEFAULT_SINK@ toggle
+
+# --- Controls ---
+# increase screen brightness
+bindsym XF86MonBrightnessUp exec brightnessctl set 5%+
+# decrease screen brightness
+bindsym XF86MonBrightnessDown exec brightnessctl set 8%-
+
+# Media player controls
+bindsym XF86AudioPlay exec playerctl play-pause
+# bindsym XF86AudioPause exec playerctl pause
+bindsym XF86AudioNext exec playerctl next
+bindsym XF86AudioPrev exec playerctl previous
+
+floating_modifier $mod
+
+# move tiling windows via drag & drop by left-clicking into the title bar, or left-clicking anywhere into the window while holding the floating modifier.
+# tiling_drag modifier titlebar
+
+# start a terminal
+bindsym $mod+Return exec $term
+
+# kill focused window
+bindsym $mod+Shift+q kill
+
+# --- Menu|Program launcher ---
+# $mod+d for `dmenu_run`, `bemenu-run`, or `rofi` (below)
+# bindsym $mod+d exec --no-startup-id dmenu_run
+# bindcode $mod+40 exec "rofi -modi drun,run -show drun"
+bindcode $mod+40 exec rofi -show drun
+bindsym $mod+period exec "rofi -show emoji"
+
+# -- Lock screen --
+bindsym $mod+l exec $HOME/lock.sh
+
+# -- Screenshot --
+
+# alternatively, you can use the cursor keys:
+bindsym $mod+Left focus left
+bindsym $mod+Down focus down
+bindsym $mod+Up focus up
+bindsym $mod+Right focus right
+
+# alternatively, you can use the cursor keys:
+bindsym $mod+Shift+Left move left
+bindsym $mod+Shift+Down move down
+bindsym $mod+Shift+Up move up
+bindsym $mod+Shift+Right move right
+
+# split in horizontal orientation
+bindsym $mod+h split h
+
+# split in vertical orientation
+bindsym $mod+v split v
+
+# enter fullscreen mode for the focused container
+bindsym $mod+f fullscreen toggle
+
+# change container layout (stacked, tabbed, toggle split)
+bindsym $mod+s layout stacking
+bindsym $mod+t layout tabbed
+bindsym $mod+e layout toggle split
+
+# toggle tiling / floating
+bindsym $mod+Shift+space floating toggle
+
+# change focus between tiling / floating windows
+bindsym $mod+space focus mode_toggle
+
+# focus the parent container
+# bindsym $mod+a focus parent
+
+# focus the child container
+#bindsym $mod+d focus child
+
+# --- Coloring ---
+# class border backgr. text indicator child_border
+client.focused #4c7899 #267A67 #ffffff #2e9ef4 #285577
+client.focused_inactive #333333 #161C1A #ffffff #484e50 #5f676a
+client.unfocused #333333 #222222 #888888 #292d2e #222222
+client.urgent #2f343a #900000 #ffffff #900000 #900000
+client.placeholder #000000 #0c0c0c #ffffff #000000 #0c0c0c
+
+client.background #ffffff
+
+# --- Gaps ---
+# `inner` is like padding in CSS
+# gaps inner [px]
+gaps inner 8
+
+# `outer` is like margin in CSS
+# gaps outer|horizontal|vertical|top|left|bottom|right [px]
+gaps outer 5
+
+# smart_gaps on|off|inverse_outer
+smart_gaps inverse_outer
+
+# --- Display settings ---
+#exec --no-startup-id autorandr --change
+#exec --no-startup-id feh --bg-fill --randomize $HOME/.wallpaper/*
+
+input type:touchpad {
+ natural_scroll enabled
+}
+
+
+# We use variables to avoid repeating the names in multiple places.
+set $ws1 "1"
+set $ws2 "2"
+set $ws3 "3"
+set $ws4 "4"
+set $ws5 "5"
+set $ws6 "6"
+set $ws7 "7"
+set $ws8 "8"
+set $ws9 "9"
+set $ws10 "10"
+
+# switch to workspace
+bindsym $mod+1 workspace number $ws1
+bindsym $mod+2 workspace number $ws2
+bindsym $mod+3 workspace number $ws3
+bindsym $mod+4 workspace number $ws4
+bindsym $mod+5 workspace number $ws5
+bindsym $mod+6 workspace number $ws6
+bindsym $mod+7 workspace number $ws7
+bindsym $mod+8 workspace number $ws8
+bindsym $mod+9 workspace number $ws9
+bindsym $mod+0 workspace number $ws10
+
+# move focused container to workspace
+bindsym $mod+Shift+1 move container to workspace number $ws1
+bindsym $mod+Shift+2 move container to workspace number $ws2
+bindsym $mod+Shift+3 move container to workspace number $ws3
+bindsym $mod+Shift+4 move container to workspace number $ws4
+bindsym $mod+Shift+5 move container to workspace number $ws5
+bindsym $mod+Shift+6 move container to workspace number $ws6
+bindsym $mod+Shift+7 move container to workspace number $ws7
+bindsym $mod+Shift+8 move container to workspace number $ws8
+bindsym $mod+Shift+9 move container to workspace number $ws9
+bindsym $mod+Shift+0 move container to workspace number $ws10
+
+# reload the configuration file
+bindsym $mod+Shift+c restart
+bindsym $mod+Shift+r reload
+
+# exit i3 (logs you out of your X session)
+bindsym $mod+Shift+e exec swaynag -t warning -m 'Are you sure you wanna go aSway?' -B 'Yes, sway away!' 'swaymsg exit' -B 'SHUTDOWN' 'shutdown now'
+
+# resize window (you can also use the mouse for that)
+mode "resize" {
+ # These bindings trigger as soon as you enter the resize mode
+
+ # Pressing left will shrink the window’s width.
+ # Pressing right will grow the window’s width.
+ # Pressing up will shrink the window’s height.
+ # Pressing down will grow the window’s height.
+ bindsym j resize shrink width 10 px or 10 ppt
+ bindsym k resize grow height 10 px or 10 ppt
+ bindsym l resize shrink height 10 px or 10 ppt
+ bindsym semicolon resize grow width 10 px or 10 ppt
+
+ # same bindings, but for the arrow keys
+ bindsym Left resize shrink width 10 px or 10 ppt
+ bindsym Down resize grow height 10 px or 10 ppt
+ bindsym Up resize shrink height 10 px or 10 ppt
+ bindsym Right resize grow width 10 px or 10 ppt
+
+ # back to normal: Enter or Escape or $mod+r
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+ bindsym $mod+r mode "default"
+}
+
+bindsym $mod+r mode "resize"
+
+bar {
+ swaybar_command waybar
+}
diff --git a/.config/swaylock/config b/.config/swaylock/config
new file mode 100644
index 0000000..61b16b3
--- /dev/null
+++ b/.config/swaylock/config
@@ -0,0 +1,45 @@
+image=~/Pictures/org_wholesome2.png
+# clock
+ignore-empty-password
+font=FiraCode Nerd Font
+
+# Not showing text at all
+text-color=00000000
+text-clear-color=00000000
+text-caps-lock-color=00000000
+text-ver-color=00000000
+text-wrong-color=00000000
+color=000000
+
+separator-color=3b425200
+
+# Make it small to the corner
+# current offset: 20x20
+indicator-x-position=1900
+indicator-y-position=1060
+indicator-radius=36
+indicator-thickness=12
+
+# Some cool effects
+# effect-vignette=0.6:0.6
+# effect-pixelate=10
+
+# Sets the color of the key press highlight segments.
+key-hl-color=a3be8c
+# Sets the color of backspace highlight segments.
+bs-hl-color=ebcb8b
+
+# Indicator
+inside-color=2e344000
+inside-clear-color=ebcb8b00
+inside-caps-lock-color=d0877000
+inside-ver-color=a3be8c00
+inside-wrong-color=bf616a00
+line-uses-inside
+
+# Ring
+ring-color=3b4252
+ring-clear-color=ebcb8b
+ring-caps-lock-color=d08770
+ring-ver-color=a3be8c
+ring-wrong-color=bf616a
diff --git a/.config/tmux/tmux.conf b/.config/tmux/tmux.conf
new file mode 100644
index 0000000..b71fcb0
--- /dev/null
+++ b/.config/tmux/tmux.conf
@@ -0,0 +1,3 @@
+set -g mouse on
+
+setw -g mode-keys vi
diff --git a/.config/wofi/style.css b/.config/wofi/style.css
new file mode 100644
index 0000000..6603510
--- /dev/null
+++ b/.config/wofi/style.css
@@ -0,0 +1,42 @@
+window {
+ border: 0px solid #ca93f9;
+ font-family: FiraCode Nerd Font;
+ font-size: 16px;
+ border-radius: 12px;
+ padding: 10px;
+ background: linear-gradient(#e66465, #9198e5);
+}
+
+#input {
+ margin: 5px;
+ border: none;
+ color: #f8f8f2;
+ background-color: #44475a;
+}
+
+#inner-box {
+ margin: 5px;
+ border: none;
+ border-radius: 12px;
+ background-color: #282a36;
+}
+
+#outer-box {
+ margin: 5px;
+ border-radius: 12px;
+ background-color: #282a36;
+}
+
+#text {
+ margin: 5px;
+ border: none;
+ color: #f8f8f2;
+}
+
+#entry {
+ border-radius: 12px;
+}
+
+#entry:selected {
+ background-color: #b767d9;
+}
diff --git a/add-dotfiles.sh b/add-dotfiles.sh
index fae0a3d..5c6b6bd 100644
--- a/add-dotfiles.sh
+++ b/add-dotfiles.sh
@@ -4,7 +4,8 @@ CONFIG=$HOME/.config
echo "instruction: ./add-dotfiles.sh "
config=$1
-cp -r $CONFIG/$config ./.config/
+mkdir .config/$config
+cp -r $CONFIG/$config ./.config/$config
echo "Copied $CONFIG/$config to .config folder"
echo $config >> listofconfigs.md
diff --git a/listofconfigs.md b/listofconfigs.md
index 79c3497..89a0976 100644
--- a/listofconfigs.md
+++ b/listofconfigs.md
@@ -1,3 +1,14 @@
hypr
neofetch
i3
+alacritty
+autorandr/diagonal
+dunst
+nvim
+rofi
+wofi
+sway
+swaylock
+tmux
+picom.conf
+autorandr/trottier_up
diff --git a/temp.sh b/temp.sh
new file mode 100644
index 0000000..22559b6
--- /dev/null
+++ b/temp.sh
@@ -0,0 +1 @@
+echo $1
\ No newline at end of file