[
  {
    "path": ".config/BetterDiscord/themes/nordic.theme.css",
    "content": "/**\n * @name        Nordic\n * @author      orblazer#9152\n * @version     3.7.1\n * @description Complete theme for Nordic (https://www.nordtheme.com/)\n * @source      https://github.com/orblazer/discord-nordic\n * @donate      https://www.paypal.me/orblazer\n * @authorId    179681974879911946\n*/\n\n/**\n * SOURCE CODE\n * /!\\ DON'T TOUCH ! /!\\\n */\n@import url('https://orblazer.github.io/discord-nordic/base.css');\n\n/**\n * CUSTOMIZATION\n */\n:root {\n}\n\n.theme-dark {\n}\n\n.theme-light {\n}"
  },
  {
    "path": ".config/alacritty/alacritty.yml",
    "content": "# Configuration for Alacritty, the GPU enhanced terminal emulator.\n\n# Import additional configuration files\n#\n# Imports are loaded in order, skipping all missing files, with the importing\n# file being loaded last. If a field is already present in a previous import, it\n# will be replaced.\n#\n# All imports must either be absolute paths starting with `/`, or paths relative\n# to the user's home directory starting with `~/`.\n#import:\n#  - /path/to/alacritty.yml\n\n# Any items in the `env` entry below will be added as\n# environment variables. Some entries may override variables\n# set by alacritty itself.\n#env:\n  # TERM variable\n  #\n  # This value is used to set the `$TERM` environment variable for\n  # each instance of Alacritty. If it is not present, alacritty will\n  # check the local terminfo database and use `alacritty` if it is\n  # available, otherwise `xterm-256color` is used.\n  #TERM: alacritty\n\nwindow:\n  # Window dimensions (changes require restart)\n  #\n  # Number of lines/columns (not pixels) in the terminal. The number of columns\n  # must be at least `2`, while using a value of `0` for columns and lines will\n  # fall back to the window manager's recommended size.\n  #dimensions:\n  #  columns: 0\n  #  lines: 0\n\n  # Window position (changes require restart)\n  #\n  # Specified in number of pixels.\n  # If the position is not set, the window manager will handle the placement.\n  #position:\n  #  x: 0\n  #  y: 0\n\n  # Window padding (changes require restart)\n  #\n  # Blank space added around the window in pixels. This padding is scaled\n  # by DPI and the specified value is always added at both opposing sides.\n  padding:\n    x: 44\n    y: 44\n\n  # Spread additional padding evenly around the terminal content.\n  dynamic_padding: true\n\n  # Window decorations\n  #\n  # Values for `decorations`:\n  #     - full: Borders and title bar\n  #     - none: Neither borders nor title bar\n  #\n  # Values for `decorations` (macOS only):\n  #     - transparent: Title bar, transparent background and title bar buttons\n  #     - buttonless: Title bar, transparent background and no title bar buttons\n  decorations: none\n\n  # Startup Mode (changes require restart)\n  #\n  # Values for `startup_mode`:\n  #   - Windowed\n  #   - Maximized\n  #   - Fullscreen\n  #\n  # Values for `startup_mode` (macOS only):\n  #   - SimpleFullscreen\n  #startup_mode: Windowed\n\n  # Window title\n  #title: Alacritty\n\n  # Allow terminal applications to change Alacritty's window title.\n  #dynamic_title: true\n\n  # Window class (Linux/BSD only):\n  #class:\n    # Application instance name\n    #instance: Alacritty\n    # General application class\n    #general: Alacritty\n\n  # GTK theme variant (Linux/BSD only)\n  #\n  # Override the variant of the GTK theme. Commonly supported values are `dark`\n  # and `light`. Set this to `None` to use the default theme variant.\n  gtk_theme_variant: None\n\nscrolling:\n  # Maximum number of lines in the scrollback buffer.\n  # Specifying '0' will disable scrolling.\n  #history: 10000\n\n  # Scrolling distance multiplier.\n  multiplier: 3\n\n# Font configuration\nfont:\n  # Normal (roman) font face\n  normal:\n    # Font family\n    #\n    # Default:\n    #   - (macOS) Menlo\n    #   - (Linux/BSD) monospace\n    #   - (Windows) Consolas\n    family: monospace\n\n    # The `style` can be specified to pick a specific face.\n    #style: Regular\n\n  # Bold font face\n  bold:\n    # Font family\n    #\n    # If the bold family is not specified, it will fall back to the\n    # value specified for the normal font.\n    family: monospace\n\n    # The `style` can be specified to pick a specific face.\n    #style: Bold\n\n  # Italic font face\n  italic:\n    # Font family\n    #\n    # If the italic family is not specified, it will fall back to the\n    # value specified for the normal font.\n    family: monospace\n\n    # The `style` can be specified to pick a specific face.\n    #style: Italic\n\n  # Bold italic font face\n  bold_italic:\n    # Font family\n    #\n    # If the bold italic family is not specified, it will fall back to the\n    # value specified for the normal font.\n    family: monospace\n\n    # The `style` can be specified to pick a specific face.\n    #style: Bold Italic\n\n  # Point size\n  size: 8.5\n\n  # Offset is the extra space around each character. `offset.y` can be thought\n  # of as modifying the line spacing, and `offset.x` as modifying the letter\n  # spacing.\n  #offset:\n  #  x: 0\n  #  y: 0\n\n  # Glyph offset determines the locations of the glyphs within their cells with\n  # the default being at the bottom. Increasing `x` moves the glyph to the\n  # right, increasing `y` moves the glyph upward.\n  glyph_offset:\n    x: 0\n    y: 0\n\n  # Thin stroke font rendering (macOS only)\n  #\n  # Thin strokes are suitable for retina displays, but for non-retina screens\n  # it is recommended to set `use_thin_strokes` to `false`.\n  #use_thin_strokes: true\n\n# If `true`, bold text is drawn using the bright color variants.\n#draw_bold_text_with_bright_colors: false\n\n# Colors (Nord)\ncolors:\n  primary:\n    background: '#2e3440'\n    foreground: '#d8dee9'\n    dim_foreground: '#a5abb6'\n  cursor:\n    text: '#2e3440'\n    cursor: '#d8dee9'\n  vi_mode_cursor:\n    text: '#2e3440'\n    cursor: '#d8dee9'\n  selection:\n    text: CellForeground\n    background: '#4c566a'\n  search:\n    matches:\n      foreground: CellBackground\n      background: '#88c0d0'\n    bar:\n      background: '#434c5e'\n      foreground: '#d8dee9'\n  normal:\n    black: '#3b4252'\n    red: '#bf616a'\n    green: '#a3be8c'\n    yellow: '#ebcb8b'\n    blue: '#81a1c1'\n    magenta: '#b48ead'\n    cyan: '#88c0d0'\n    white: '#e5e9f0'\n  bright:\n    black: '#4c566a'\n    red: '#bf616a'\n    green: '#a3be8c'\n    yellow: '#ebcb8b'\n    blue: '#81a1c1'\n    magenta: '#b48ead'\n    cyan: '#8fbcbb'\n    white: '#eceff4'\n  dim:\n    black: '#373e4d'\n    red: '#94545d'\n    green: '#809575'\n    yellow: '#b29e75'\n    blue: '#68809a'\n    magenta: '#8c738c'\n    cyan: '#6d96a5'\n    white: '#aeb3bb'\n\n  # Indexed Colors\n  #\n  # The indexed colors include all colors from 16 to 256.\n  # When these are not set, they're filled with sensible defaults.\n  #\n  # Example:\n  #   `- { index: 16, color: '#ff00ff' }`\n  #\n  indexed_colors:\n    - { index: 16, color: '#242831' }\n\n#Colors (Tomorrow night)\n#colors:\n  # Default colors\n  #primary:\n  #  background: '#1d1f21'\n  #  foreground: '#c5c8c6'\n\n    # Bright and dim foreground colors\n    #\n    # The dimmed foreground color is calculated automatically if it is not\n    # present. If the bright foreground color is not set, or\n    # `draw_bold_text_with_bright_colors` is `false`, the normal foreground\n    # color will be used.\n    #dim_foreground: '#828482'\n    #bright_foreground: '#eaeaea'\n\n  # Cursor colors\n  #\n  # Colors which should be used to draw the terminal cursor.\n  #\n  # Allowed values are CellForeground and CellBackground, which reference the\n  # affected cell, or hexadecimal colors like #ff00ff.\n  #cursor:\n  #  text: CellBackground\n  #  cursor: CellForeground\n\n  # Vi mode cursor colors\n  #\n  # Colors for the cursor when the vi mode is active.\n  #\n  # Allowed values are CellForeground and CellBackground, which reference the\n  # affected cell, or hexadecimal colors like #ff00ff.\n  #vi_mode_cursor:\n  #  text: CellBackground\n  #  cursor: CellForeground\n\n  # Search colors\n  #\n  # Colors used for the search bar and match highlighting.\n  #search:\n    # Allowed values are CellForeground and CellBackground, which reference the\n    # affected cell, or hexadecimal colors like #ff00ff.\n    #matches:\n    #  foreground: '#000000'\n    #  background: '#ffffff'\n    #focused_match:\n    #  foreground: CellBackground\n    #  background: CellForeground\n\n    #bar:\n    #  background: '#c5c8c6'\n    #  foreground: '#1d1f21'\n\n  # Line indicator\n  #\n  # Color used for the indicator displaying the position in history during\n  # search and vi mode.\n  #\n  # By default, these will use the opposing primary color.\n  #line_indicator:\n  #  foreground: None\n  #  background: None\n\n  # Selection colors\n  #\n  # Colors which should be used to draw the selection area.\n  #\n  # Allowed values are CellForeground and CellBackground, which reference the\n  # affected cell, or hexadecimal colors like #ff00ff.\n  #selection:\n  #  text: CellBackground\n  #  background: CellForeground\n\n  # Normal colors\n  #normal:\n  #  black:   '#1d1f21'\n  #  red:     '#cc6666'\n  #  green:   '#b5bd68'\n  #  yellow:  '#f0c674'\n  #  blue:    '#81a2be'\n  #  magenta: '#b294bb'\n  #  cyan:    '#8abeb7'\n  #  white:   '#c5c8c6'\n\n  # Bright colors\n  #bright:\n  #  black:   '#666666'\n  #  red:     '#d54e53'\n  #  green:   '#b9ca4a'\n  #  yellow:  '#e7c547'\n  #  blue:    '#7aa6da'\n  #  magenta: '#c397d8'\n  #  cyan:    '#70c0b1'\n  #  white:   '#eaeaea'\n\n  # Dim colors\n  #\n  # If the dim colors are not set, they will be calculated automatically based\n  # on the `normal` colors.\n  #dim:\n  #  black:   '#131415'\n  #  red:     '#864343'\n  #  green:   '#777c44'\n  #  yellow:  '#9e824c'\n  #  blue:    '#556a7d'\n  #  magenta: '#75617b'\n  #  cyan:    '#5b7d78'\n  #  white:   '#828482'\n\n  # Indexed Colors\n  #\n  # The indexed colors include all colors from 16 to 256.\n  # When these are not set, they're filled with sensible defaults.\n  #\n  # Example:\n  #   `- { index: 16, color: '#ff00ff' }`\n  #\n  #indexed_colors: []\n\n# Bell\n#\n# The bell is rung every time the BEL control character is received.\n#bell:\n  # Visual Bell Animation\n  #\n  # Animation effect for flashing the screen when the visual bell is rung.\n  #\n  # Values for `animation`:\n  #   - Ease\n  #   - EaseOut\n  #   - EaseOutSine\n  #   - EaseOutQuad\n  #   - EaseOutCubic\n  #   - EaseOutQuart\n  #   - EaseOutQuint\n  #   - EaseOutExpo\n  #   - EaseOutCirc\n  #   - Linear\n  #animation: EaseOutExpo\n\n  # Duration of the visual bell flash in milliseconds. A `duration` of `0` will\n  # disable the visual bell animation.\n  #duration: 0\n\n  # Visual bell animation color.\n  #color: '#ffffff'\n\n  # Bell Command\n  #\n  # This program is executed whenever the bell is rung.\n  #\n  # When set to `command: None`, no command will be executed.\n  #\n  # Example:\n  #   command:\n  #     program: notify-send\n  #     args: [\"Hello, World!\"]\n  #\n  #command: None\n\n# Background opacity\n#\n# Window opacity as a floating point number from `0.0` to `1.0`.\n# The value `0.0` is completely transparent and `1.0` is opaque.\n#background_opacity: 1.0\n\n#selection:\n  # This string contains all characters that are used as separators for\n  # \"semantic words\" in Alacritty.\n  #semantic_escape_chars: \",│`|:\\\"' ()[]{}<>\\t\"\n\n  # When set to `true`, selected text will be copied to the primary clipboard.\n  #save_to_clipboard: false\n\ncursor:\n  # Cursor style\n  style:\n    # Cursor shape\n    #\n    # Values for `shape`:\n    #   - ▇ Block\n    #   - _ Underline\n    #   - | Beam\n    shape: Beam\n\n    # Cursor blinking state\n    #\n    # Values for `blinking`:\n    #   - Never: Prevent the cursor from ever blinking\n    #   - Off: Disable blinking by default\n    #   - On: Enable blinking by default\n    #   - Always: Force the cursor to always blink\n    blinking: Always\n\n  # Vi mode cursor style\n  #\n  # If the vi mode cursor style is `None` or not specified, it will fall back to\n  # the style of the active value of the normal cursor.\n  #\n  # See `cursor.style` for available options.\n  #vi_mode_style: None\n\n  # Cursor blinking interval in milliseconds.\n  blink_interval: 750\n\n  # If this is `true`, the cursor will be rendered as a hollow box when the\n  # window is not focused.\n  unfocused_hollow: true\n\n  # Thickness of the cursor relative to the cell width as floating point number\n  # from `0.0` to `1.0`.\n  #thickness: 0.15\n\n# Live config reload (changes require restart)\n#live_config_reload: true\n\n# Shell\n#\n# You can set `shell.program` to the path of your favorite shell, e.g.\n# `/bin/fish`. Entries in `shell.args` are passed unmodified as arguments to the\n# shell.\n#\n# Default:\n#   - (macOS) /bin/bash --login\n#   - (Linux/BSD) user login shell\n#   - (Windows) powershell\n#shell:\n#  program: /bin/bash\n#  args:\n#    - --login\n\n# Startup directory\n#\n# Directory the shell is started in. If this is unset, or `None`, the working\n# directory of the parent process will be used.\n#working_directory: None\n\n# Send ESC (\\x1b) before characters when alt is pressed.\n#alt_send_esc: true\n\n#mouse:\n  # Click settings\n  #\n  # The `double_click` and `triple_click` settings control the time\n  # alacritty should wait for accepting multiple clicks as one double\n  # or triple click.\n  #double_click: { threshold: 300 }\n  #triple_click: { threshold: 300 }\n\n  # If this is `true`, the cursor is temporarily hidden when typing.\n  #hide_when_typing: false\n\n  #url:\n    # URL launcher\n    #\n    # This program is executed when clicking on a text which is recognized as a\n    # URL. The URL is always added to the command as the last parameter.\n    #\n    # When set to `launcher: None`, URL launching will be disabled completely.\n    #\n    # Default:\n    #   - (macOS) open\n    #   - (Linux/BSD) xdg-open\n    #   - (Windows) explorer\n    #launcher:\n    #  program: xdg-open\n    #  args: []\n\n    # URL modifiers\n    #\n    # These are the modifiers that need to be held down for opening URLs when\n    # clicking on them. The available modifiers are documented in the key\n    # binding section.\n    #modifiers: None\n\n# Mouse bindings\n#\n# Mouse bindings are specified as a list of objects, much like the key\n# bindings further below.\n#\n# To trigger mouse bindings when an application running within Alacritty\n# captures the mouse, the `Shift` modifier is automatically added as a\n# requirement.\n#\n# Each mouse binding will specify a:\n#\n# - `mouse`:\n#\n#   - Middle\n#   - Left\n#   - Right\n#   - Numeric identifier such as `5`\n#\n# - `action` (see key bindings)\n#\n# And optionally:\n#\n# - `mods` (see key bindings)\n#mouse_bindings:\n#  - { mouse: Middle, action: PasteSelection }\n\n# Key bindings\n#\n# Key bindings are specified as a list of objects. For example, this is the\n# default paste binding:\n#\n# `- { key: V, mods: Control|Shift, action: Paste }`\n#\n# Each key binding will specify a:\n#\n# - `key`: Identifier of the key pressed\n#\n#    - A-Z\n#    - F1-F24\n#    - Key0-Key9\n#\n#    A full list with available key codes can be found here:\n#    https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants\n#\n#    Instead of using the name of the keys, the `key` field also supports using\n#    the scancode of the desired key. Scancodes have to be specified as a\n#    decimal number. This command will allow you to display the hex scancodes\n#    for certain keys:\n#\n#       `showkey --scancodes`.\n#\n# Then exactly one of:\n#\n# - `chars`: Send a byte sequence to the running application\n#\n#    The `chars` field writes the specified string to the terminal. This makes\n#    it possible to pass escape sequences. To find escape codes for bindings\n#    like `PageUp` (`\"\\x1b[5~\"`), you can run the command `showkey -a` outside\n#    of tmux. Note that applications use terminfo to map escape sequences back\n#    to keys. It is therefore required to update the terminfo when changing an\n#    escape sequence.\n#\n# - `action`: Execute a predefined action\n#\n#   - ToggleViMode\n#   - SearchForward\n#       Start searching toward the right of the search origin.\n#   - SearchBackward\n#       Start searching toward the left of the search origin.\n#   - Copy\n#   - Paste\n#   - IncreaseFontSize\n#   - DecreaseFontSize\n#   - ResetFontSize\n#   - ScrollPageUp\n#   - ScrollPageDown\n#   - ScrollHalfPageUp\n#   - ScrollHalfPageDown\n#   - ScrollLineUp\n#   - ScrollLineDown\n#   - ScrollToTop\n#   - ScrollToBottom\n#   - ClearHistory\n#       Remove the terminal's scrollback history.\n#   - Hide\n#       Hide the Alacritty window.\n#   - Minimize\n#       Minimize the Alacritty window.\n#   - Quit\n#       Quit Alacritty.\n#   - ToggleFullscreen\n#   - SpawnNewInstance\n#       Spawn a new instance of Alacritty.\n#   - ClearLogNotice\n#       Clear Alacritty's UI warning and error notice.\n#   - ClearSelection\n#       Remove the active selection.\n#   - ReceiveChar\n#   - None\n#\n# - Vi mode exclusive actions:\n#\n#   - Open\n#       Open URLs at the cursor location with the launcher configured in\n#       `url.launcher`.\n#   - ToggleNormalSelection\n#   - ToggleLineSelection\n#   - ToggleBlockSelection\n#   - ToggleSemanticSelection\n#       Toggle semantic selection based on `selection.semantic_escape_chars`.\n#\n# - Vi mode exclusive cursor motion actions:\n#\n#   - Up\n#       One line up.\n#   - Down\n#       One line down.\n#   - Left\n#       One character left.\n#   - Right\n#       One character right.\n#   - First\n#       First column, or beginning of the line when already at the first column.\n#   - Last\n#       Last column, or beginning of the line when already at the last column.\n#   - FirstOccupied\n#       First non-empty cell in this terminal row, or first non-empty cell of\n#       the line when already at the first cell of the row.\n#   - High\n#       Top of the screen.\n#   - Middle\n#       Center of the screen.\n#   - Low\n#       Bottom of the screen.\n#   - SemanticLeft\n#       Start of the previous semantically separated word.\n#   - SemanticRight\n#       Start of the next semantically separated word.\n#   - SemanticLeftEnd\n#       End of the previous semantically separated word.\n#   - SemanticRightEnd\n#       End of the next semantically separated word.\n#   - WordLeft\n#       Start of the previous whitespace separated word.\n#   - WordRight\n#       Start of the next whitespace separated word.\n#   - WordLeftEnd\n#       End of the previous whitespace separated word.\n#   - WordRightEnd\n#       End of the next whitespace separated word.\n#   - Bracket\n#       Character matching the bracket at the cursor's location.\n#   - SearchNext\n#       Beginning of the next match.\n#   - SearchPrevious\n#       Beginning of the previous match.\n#   - SearchStart\n#       Start of the match to the left of the vi mode cursor.\n#   - SearchEnd\n#       End of the match to the right of the vi mode cursor.\n#\n# - Search mode exclusive actions:\n#   - SearchFocusNext\n#       Move the focus to the next search match.\n#   - SearchFocusPrevious\n#       Move the focus to the previous search match.\n#   - SearchConfirm\n#   - SearchCancel\n#   - SearchClear\n#       Reset the search regex.\n#   - SearchDeleteWord\n#       Delete the last word in the search regex.\n#   - SearchHistoryPrevious\n#       Go to the previous regex in the search history.\n#   - SearchHistoryNext\n#       Go to the next regex in the search history.\n#\n# - macOS exclusive actions:\n#   - ToggleSimpleFullscreen\n#       Enter fullscreen without occupying another space.\n#\n# - Linux/BSD exclusive actions:\n#\n#   - CopySelection\n#       Copy from the selection buffer.\n#   - PasteSelection\n#       Paste from the selection buffer.\n#\n# - `command`: Fork and execute a specified command plus arguments\n#\n#    The `command` field must be a map containing a `program` string and an\n#    `args` array of command line parameter strings. For example:\n#       `{ program: \"alacritty\", args: [\"-e\", \"vttest\"] }`\n#\n# And optionally:\n#\n# - `mods`: Key modifiers to filter binding actions\n#\n#    - Command\n#    - Control\n#    - Option\n#    - Super\n#    - Shift\n#    - Alt\n#\n#    Multiple `mods` can be combined using `|` like this:\n#       `mods: Control|Shift`.\n#    Whitespace and capitalization are relevant and must match the example.\n#\n# - `mode`: Indicate a binding for only specific terminal reported modes\n#\n#    This is mainly used to send applications the correct escape sequences\n#    when in different modes.\n#\n#    - AppCursor\n#    - AppKeypad\n#    - Search\n#    - Alt\n#    - Vi\n#\n#    A `~` operator can be used before a mode to apply the binding whenever\n#    the mode is *not* active, e.g. `~Alt`.\n#\n# Bindings are always filled by default, but will be replaced when a new\n# binding with the same triggers is defined. To unset a default binding, it can\n# be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for\n# a no-op if you do not wish to receive input characters for that binding.\n#\n# If the same trigger is assigned to multiple actions, all of them are executed\n# in the order they were defined in.\n#key_bindings:\n  #- { key: Paste,                                       action: Paste          }\n  #- { key: Copy,                                        action: Copy           }\n  #- { key: L,         mods: Control,                    action: ClearLogNotice }\n  #- { key: L,         mods: Control, mode: ~Vi|~Search, chars: \"\\x0c\"          }\n  #- { key: PageUp,    mods: Shift,   mode: ~Alt,        action: ScrollPageUp,  }\n  #- { key: PageDown,  mods: Shift,   mode: ~Alt,        action: ScrollPageDown }\n  #- { key: Home,      mods: Shift,   mode: ~Alt,        action: ScrollToTop,   }\n  #- { key: End,       mods: Shift,   mode: ~Alt,        action: ScrollToBottom }\n\n  # Vi Mode\n  #- { key: Space,  mods: Shift|Control, mode: Vi|~Search, action: ScrollToBottom          }\n  #- { key: Space,  mods: Shift|Control, mode: ~Search,    action: ToggleViMode            }\n  #- { key: Escape,                      mode: Vi|~Search, action: ClearSelection          }\n  #- { key: I,                           mode: Vi|~Search, action: ScrollToBottom          }\n  #- { key: I,                           mode: Vi|~Search, action: ToggleViMode            }\n  #- { key: C,      mods: Control,       mode: Vi|~Search, action: ToggleViMode            }\n  #- { key: Y,      mods: Control,       mode: Vi|~Search, action: ScrollLineUp            }\n  #- { key: E,      mods: Control,       mode: Vi|~Search, action: ScrollLineDown          }\n  #- { key: G,                           mode: Vi|~Search, action: ScrollToTop             }\n  #- { key: G,      mods: Shift,         mode: Vi|~Search, action: ScrollToBottom          }\n  #- { key: B,      mods: Control,       mode: Vi|~Search, action: ScrollPageUp            }\n  #- { key: F,      mods: Control,       mode: Vi|~Search, action: ScrollPageDown          }\n  #- { key: U,      mods: Control,       mode: Vi|~Search, action: ScrollHalfPageUp        }\n  #- { key: D,      mods: Control,       mode: Vi|~Search, action: ScrollHalfPageDown      }\n  #- { key: Y,                           mode: Vi|~Search, action: Copy                    }\n  #- { key: Y,                           mode: Vi|~Search, action: ClearSelection          }\n  #- { key: Copy,                        mode: Vi|~Search, action: ClearSelection          }\n  #- { key: V,                           mode: Vi|~Search, action: ToggleNormalSelection   }\n  #- { key: V,      mods: Shift,         mode: Vi|~Search, action: ToggleLineSelection     }\n  #- { key: V,      mods: Control,       mode: Vi|~Search, action: ToggleBlockSelection    }\n  #- { key: V,      mods: Alt,           mode: Vi|~Search, action: ToggleSemanticSelection }\n  #- { key: Return,                      mode: Vi|~Search, action: Open                    }\n  #- { key: K,                           mode: Vi|~Search, action: Up                      }\n  #- { key: J,                           mode: Vi|~Search, action: Down                    }\n  #- { key: H,                           mode: Vi|~Search, action: Left                    }\n  #- { key: L,                           mode: Vi|~Search, action: Right                   }\n  #- { key: Up,                          mode: Vi|~Search, action: Up                      }\n  #- { key: Down,                        mode: Vi|~Search, action: Down                    }\n  #- { key: Left,                        mode: Vi|~Search, action: Left                    }\n  #- { key: Right,                       mode: Vi|~Search, action: Right                   }\n  #- { key: Key0,                        mode: Vi|~Search, action: First                   }\n  #- { key: Key4,   mods: Shift,         mode: Vi|~Search, action: Last                    }\n  #- { key: Key6,   mods: Shift,         mode: Vi|~Search, action: FirstOccupied           }\n  #- { key: H,      mods: Shift,         mode: Vi|~Search, action: High                    }\n  #- { key: M,      mods: Shift,         mode: Vi|~Search, action: Middle                  }\n  #- { key: L,      mods: Shift,         mode: Vi|~Search, action: Low                     }\n  #- { key: B,                           mode: Vi|~Search, action: SemanticLeft            }\n  #- { key: W,                           mode: Vi|~Search, action: SemanticRight           }\n  #- { key: E,                           mode: Vi|~Search, action: SemanticRightEnd        }\n  #- { key: B,      mods: Shift,         mode: Vi|~Search, action: WordLeft                }\n  #- { key: W,      mods: Shift,         mode: Vi|~Search, action: WordRight               }\n  #- { key: E,      mods: Shift,         mode: Vi|~Search, action: WordRightEnd            }\n  #- { key: Key5,   mods: Shift,         mode: Vi|~Search, action: Bracket                 }\n  #- { key: Slash,                       mode: Vi|~Search, action: SearchForward           }\n  #- { key: Slash,  mods: Shift,         mode: Vi|~Search, action: SearchBackward          }\n  #- { key: N,                           mode: Vi|~Search, action: SearchNext              }\n  #- { key: N,      mods: Shift,         mode: Vi|~Search, action: SearchPrevious          }\n\n  # Search Mode\n  #- { key: Return,                mode: Search|Vi,  action: SearchConfirm         }\n  #- { key: Escape,                mode: Search,     action: SearchCancel          }\n  #- { key: C,      mods: Control, mode: Search,     action: SearchCancel          }\n  #- { key: U,      mods: Control, mode: Search,     action: SearchClear           }\n  #- { key: W,      mods: Control, mode: Search,     action: SearchDeleteWord      }\n  #- { key: P,      mods: Control, mode: Search,     action: SearchHistoryPrevious }\n  #- { key: N,      mods: Control, mode: Search,     action: SearchHistoryNext     }\n  #- { key: Up,                    mode: Search,     action: SearchHistoryPrevious }\n  #- { key: Down,                  mode: Search,     action: SearchHistoryNext     }\n  #- { key: Return,                mode: Search|~Vi, action: SearchFocusNext       }\n  #- { key: Return, mods: Shift,   mode: Search|~Vi, action: SearchFocusPrevious   }\n\n  # (Windows, Linux, and BSD only)\n  #- { key: V,              mods: Control|Shift, mode: ~Vi,        action: Paste            }\n  #- { key: C,              mods: Control|Shift,                   action: Copy             }\n  #- { key: F,              mods: Control|Shift, mode: ~Search,    action: SearchForward    }\n  #- { key: B,              mods: Control|Shift, mode: ~Search,    action: SearchBackward   }\n  #- { key: C,              mods: Control|Shift, mode: Vi|~Search, action: ClearSelection   }\n  #- { key: Insert,         mods: Shift,                           action: PasteSelection   }\n  #- { key: Key0,           mods: Control,                         action: ResetFontSize    }\n  #- { key: Equals,         mods: Control,                         action: IncreaseFontSize }\n  #- { key: Plus,           mods: Control,                         action: IncreaseFontSize }\n  #- { key: NumpadAdd,      mods: Control,                         action: IncreaseFontSize }\n  #- { key: Minus,          mods: Control,                         action: DecreaseFontSize }\n  #- { key: NumpadSubtract, mods: Control,                         action: DecreaseFontSize }\n\n  # (Windows only)\n  #- { key: Return,   mods: Alt,           action: ToggleFullscreen }\n\n  # (macOS only)\n  #- { key: K,              mods: Command, mode: ~Vi|~Search, chars: \"\\x0c\"            }\n  #- { key: K,              mods: Command, mode: ~Vi|~Search, action: ClearHistory     }\n  #- { key: Key0,           mods: Command,                    action: ResetFontSize    }\n  #- { key: Equals,         mods: Command,                    action: IncreaseFontSize }\n  #- { key: Plus,           mods: Command,                    action: IncreaseFontSize }\n  #- { key: NumpadAdd,      mods: Command,                    action: IncreaseFontSize }\n  #- { key: Minus,          mods: Command,                    action: DecreaseFontSize }\n  #- { key: NumpadSubtract, mods: Command,                    action: DecreaseFontSize }\n  #- { key: V,              mods: Command,                    action: Paste            }\n  #- { key: C,              mods: Command,                    action: Copy             }\n  #- { key: C,              mods: Command, mode: Vi|~Search,  action: ClearSelection   }\n  #- { key: H,              mods: Command,                    action: Hide             }\n  #- { key: M,              mods: Command,                    action: Minimize         }\n  #- { key: Q,              mods: Command,                    action: Quit             }\n  #- { key: W,              mods: Command,                    action: Quit             }\n  #- { key: N,              mods: Command,                    action: SpawnNewInstance }\n  #- { key: F,              mods: Command|Control,            action: ToggleFullscreen }\n  #- { key: F,              mods: Command, mode: ~Search,     action: SearchForward    }\n  #- { key: B,              mods: Command, mode: ~Search,     action: SearchBackward   }\n\n#debug:\n  # Display the time it takes to redraw each frame.\n  #render_timer: false\n\n  # Keep the log file after quitting Alacritty.\n  #persistent_logging: false\n\n  # Log level\n  #\n  # Values for `log_level`:\n  #   - Off\n  #   - Error\n  #   - Warn\n  #   - Info\n  #   - Debug\n  #   - Trace\n  #log_level: Warn\n\n  # Print all received window events.\n  #print_events: false\n"
  },
  {
    "path": ".config/btop/btop.conf",
    "content": "#? Config file for btop v. 1.2.6\n\n#* Name of a btop++/bpytop/bashtop formatted \".theme\" file, \"Default\" and \"TTY\" for builtin themes.\n#* Themes should be placed in \"../share/btop/themes\" relative to binary or \"$HOME/.config/btop/themes\"\ncolor_theme = \"/usr/share/btop/themes/nord.theme\"\n\n#* If the theme set background should be shown, set to False if you want terminal background transparency.\ntheme_background = True\n\n#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.\ntruecolor = True\n\n#* Set to true to force tty mode regardless if a real tty has been detected or not.\n#* Will force 16-color mode and TTY theme, set all graph symbols to \"tty\" and swap out other non tty friendly symbols.\nforce_tty = False\n\n#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.\n#* Format: \"box_name:P:G,box_name:P:G\" P=(0 or 1) for alternate positions, G=graph symbol to use for box.\n#* Use withespace \" \" as separator between different presets.\n#* Example: \"cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty\"\npresets = \"cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty\"\n\n#* Set to True to enable \"h,j,k,l,g,G\" keys for directional control in lists.\n#* Conflicting keys for h:\"help\" and k:\"kill\" is accessible while holding shift.\nvim_keys = False\n\n#* Rounded corners on boxes, is ignored if TTY mode is ON.\nrounded_corners = True\n\n#* Default symbols to use for graph creation, \"braille\", \"block\" or \"tty\".\n#* \"braille\" offers the highest resolution but might not be included in all fonts.\n#* \"block\" has half the resolution of braille but uses more common characters.\n#* \"tty\" uses only 3 different symbols but will work with most fonts and should work in a real TTY.\n#* Note that \"tty\" only has half the horizontal resolution of the other two, so will show a shorter historical view.\ngraph_symbol = \"braille\"\n\n# Graph symbol to use for graphs in cpu box, \"default\", \"braille\", \"block\" or \"tty\".\ngraph_symbol_cpu = \"default\"\n\n# Graph symbol to use for graphs in cpu box, \"default\", \"braille\", \"block\" or \"tty\".\ngraph_symbol_mem = \"default\"\n\n# Graph symbol to use for graphs in cpu box, \"default\", \"braille\", \"block\" or \"tty\".\ngraph_symbol_net = \"default\"\n\n# Graph symbol to use for graphs in cpu box, \"default\", \"braille\", \"block\" or \"tty\".\ngraph_symbol_proc = \"default\"\n\n#* Manually set which boxes to show. Available values are \"cpu mem net proc\", separate values with whitespace.\nshown_boxes = \"cpu mem net proc\"\n\n#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.\nupdate_ms = 2000\n\n#* Processes sorting, \"pid\" \"program\" \"arguments\" \"threads\" \"user\" \"memory\" \"cpu lazy\" \"cpu direct\",\n#* \"cpu lazy\" sorts top process over time (easier to follow), \"cpu direct\" updates top process directly.\nproc_sorting = \"cpu direct\"\n\n#* Reverse sorting order, True or False.\nproc_reversed = False\n\n#* Show processes as a tree.\nproc_tree = False\n\n#* Use the cpu graph colors in the process list.\nproc_colors = True\n\n#* Use a darkening gradient in the process list.\nproc_gradient = True\n\n#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.\nproc_per_core = False\n\n#* Show process memory as bytes instead of percent.\nproc_mem_bytes = True\n\n#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)\nproc_info_smaps = False\n\n#* Show proc box on left side of screen instead of right.\nproc_left = False\n\n#* Sets the CPU stat shown in upper half of the CPU graph, \"total\" is always available.\n#* Select from a list of detected attributes from the options menu.\ncpu_graph_upper = \"total\"\n\n#* Sets the CPU stat shown in lower half of the CPU graph, \"total\" is always available.\n#* Select from a list of detected attributes from the options menu.\ncpu_graph_lower = \"total\"\n\n#* Toggles if the lower CPU graph should be inverted.\ncpu_invert_lower = True\n\n#* Set to True to completely disable the lower CPU graph.\ncpu_single_graph = False\n\n#* Show cpu box at bottom of screen instead of top.\ncpu_bottom = False\n\n#* Shows the system uptime in the CPU box.\nshow_uptime = True\n\n#* Show cpu temperature.\ncheck_temp = True\n\n#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.\ncpu_sensor = \"Auto\"\n\n#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.\nshow_coretemp = True\n\n#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.\n#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.\n#* Format \"x:y\" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries.\n#* Example: \"4:0 5:1 6:3\"\ncpu_core_map = \"\"\n\n#* Which temperature scale to use, available values: \"celsius\", \"fahrenheit\", \"kelvin\" and \"rankine\".\ntemp_scale = \"celsius\"\n\n#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.\nbase_10_sizes = False\n\n#* Show CPU frequency.\nshow_cpu_freq = True\n\n#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.\n#* Special formatting: /host = hostname | /user = username | /uptime = system uptime\nclock_format = \"%X\"\n\n#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.\nbackground_update = True\n\n#* Custom cpu model name, empty string to disable.\ncustom_cpu_name = \"\"\n\n#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace \" \".\n#* Begin line with \"exclude=\" to change to exclude filter, otherwise defaults to \"most include\" filter. Example: disks_filter=\"exclude=/boot /home/user\".\ndisks_filter = \"\"\n\n#* Show graphs instead of meters for memory values.\nmem_graphs = True\n\n#* Show mem box below net box instead of above.\nmem_below_net = False\n\n#* If swap memory should be shown in memory box.\nshow_swap = True\n\n#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.\nswap_disk = True\n\n#* If mem box should be split to also show disks info.\nshow_disks = True\n\n#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.\nonly_physical = True\n\n#* Read disks list from /etc/fstab. This also disables only_physical.\nuse_fstab = True\n\n#* Set to true to show available disk space for privileged users.\ndisk_free_priv = False\n\n#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.\nshow_io_stat = True\n\n#* Toggles io mode for disks, showing big graphs for disk read/write speeds.\nio_mode = False\n\n#* Set to True to show combined read/write io graphs in io mode.\nio_graph_combined = False\n\n#* Set the top speed for the io graphs in MiB/s (100 by default), use format \"mountpoint:speed\" separate disks with whitespace \" \".\n#* Example: \"/mnt/media:100 /:20 /boot:1\".\nio_graph_speeds = \"\"\n\n#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.\nnet_download = 100\n\nnet_upload = 100\n\n#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.\nnet_auto = True\n\n#* Sync the auto scaling for download and upload to whichever currently has the highest scale.\nnet_sync = False\n\n#* Starts with the Network Interface specified here.\nnet_iface = \"\"\n\n#* Show battery stats in top right if battery is present.\nshow_battery = True\n\n#* Which battery to use if multiple are present. \"Auto\" for auto detection.\nselected_battery = \"Auto\"\n\n#* Set loglevel for \"~/.config/btop/btop.log\" levels are: \"ERROR\" \"WARNING\" \"INFO\" \"DEBUG\".\n#* The level set includes all lower levels, i.e. \"DEBUG\" will show all logging info.\nlog_level = \"WARNING\""
  },
  {
    "path": ".config/doom/config.el",
    "content": ";;; $DOOMDIR/config.el -*- lexical-binding: t; -*-\n\n;; Place your private configuration here! Remember, you do not need to run 'doom\n;; sync' after modifying this file!\n\n\n;; Some functionality uses this to identify you, e.g. GPG configuration, email\n;; clients, file templates and snippets.\n(setq user-full-name \"Cullen Ross\"\n      user-mail-address \"cullen.ross@som.umaryland.edu\")\n\n;; Doom exposes five (optional) variables for controlling fonts in Doom. Here\n;; are the three important ones:\n;;\n;; + `doom-font'\n;; + `doom-variable-pitch-font'\n;; + `doom-big-font' -- used for `doom-big-font-mode'; use this for\n;;   presentations or streaming.\n;;\n;; They all accept either a font-spec, font string (\"Input Mono-12\"), or xlfd\n;; font string. You generally only need these two:\n(setq doom-font (font-spec :family \"FiraCode Nerd Font Mono\" :size 22)\n      doom-big-font (font-spec :family \"FiraCode Nerd Font Mono\" :size 30)\n      doom-unicode-font (font-spec :family \"Font Awesome 5 Free Solid\" :size 22)\n      doom-variable-pitch-font (font-spec :family \"FiraCode Nerd Font\" :size 22))\n(custom-set-faces!\n  '(font-lock-comment-face :slant italic))\n;(setq inhibit-compacting-font-caches t)\n(setq doom-themes-enable-bold t\n      doom-themes-enable-italic t)\n\n;; There are two ways to load a theme. Both assume the theme is installed and\n;; available. You can either set `doom-theme' or manually load a theme with the\n;; `load-theme' function. This is the default:\n(setq doom-theme 'doom-nord)\n\n;; If you use `org' and don't want your org files in the default location below,\n;; change `org-directory'. It must be set before org loads!\n(setq org-directory \"~/Documents/org/\")\n\n;; This determines the style of line numbers in effect. If set to `nil', line\n;; numbers are disabled. For relative line numbers, set this to `relative'.\n(setq display-line-numbers-type t)\n\n;; window margins\n(set-frame-parameter (selected-frame) 'internal-border-width 24)\n(set-face-background 'internal-border \"#2e3440\")\n\n;; Disable annoying quit message\n(setq confirm-kill-emacs nil)\n\n;; Custom dashboard splash image\n;;(setq fancy-splash-image \"~/.doom.d/blackhole-lines.svg\")\n\n;; Custom doom dashboard menu\n(setq +doom-dashboard-menu-sections\n      '((\"Find or create file\"\n      :icon (all-the-icons-faicon \"file-o\" :face 'doom-dashboard-menu-title)\n      :action find-file)\n        (\"Reload last session\"\n         :icon (all-the-icons-octicon \"history\" :face 'doom-dashboard-menu-title)\n         :when (cond ((require 'persp-mode nil t)\n                  (file-exists-p (expand-file-name persp-auto-save-fname persp-save-dir)))\n                 ((require 'desktop nil t)\n                  (file-exists-p (desktop-full-file-name))))\n         :face (:inherit (doom-dashboard-menu-title bold))\n         :action doom/quickload-session)\n        (\"Open org-agenda\"\n         :icon (all-the-icons-octicon \"calendar\" :face 'doom-dashboard-menu-title)\n         :when (fboundp 'org-agenda)\n         :action org-agenda)\n        (\"Recently opened files\"\n         :icon (all-the-icons-octicon \"file-text\" :face 'doom-dashboard-menu-title)\n         :action recentf-open-files)\n        (\"Open project\"\n         :icon (all-the-icons-octicon \"briefcase\" :face 'doom-dashboard-menu-title)\n         :action projectile-switch-project)\n        (\"Jump to bookmark\"\n         :icon (all-the-icons-octicon \"bookmark\" :face 'doom-dashboard-menu-title)\n         :action bookmark-jump)\n        (\"Open private configuration\"\n         :icon (all-the-icons-octicon \"tools\" :face 'doom-dashboard-menu-title)\n         :when (file-directory-p doom-private-dir)\n         :action doom/open-private-config)\n        (\"Open documentation\"\n         :icon (all-the-icons-octicon \"book\" :face 'doom-dashboard-menu-title)\n         :action doom/help)))\n\n;; tecosaur's sweet splash config\n(defvar fancy-splash-sizes\n  `((:height 400 :min-height 50 :padding (-5 . 4) :template ,(expand-file-name \"misc/splash-images/blackhole-lines-0.svg\" doom-private-dir))\n    (:height 380 :min-height 42 :padding (1 . 4) :template ,(expand-file-name \"misc/splash-images/blackhole-lines-1.svg\" doom-private-dir))\n    (:height 360 :min-height 38 :padding (1 . 4) :template ,(expand-file-name \"misc/splash-images/blackhole-lines-2.svg\" doom-private-dir))\n    (:height 350 :min-height 36 :padding (1 . 3) :template ,(expand-file-name \"misc/splash-images/blackhole-lines-3.svg\" doom-private-dir))\n    (:height 300 :min-height 34 :padding (1 . 3) :template ,(expand-file-name \"misc/splash-images/blackhole-lines-4.svg\" doom-private-dir))\n    (:height 250 :min-height 32 :padding (1 . 2) :template ,(expand-file-name \"misc/splash-images/blackhole-lines-5.svg\" doom-private-dir))\n    (:height 200 :min-height 30 :padding (1 . 2) :template ,(expand-file-name \"misc/splash-images/blackhole-lines-6.svg\" doom-private-dir))))\n\n(defvar fancy-splash-template-colours\n  '((\"$colour1\" . keywords) (\"$colour2\" . type) (\"$colour3\" . base5) (\"$colour4\" . base8))\n  \"list of colour-replacement alists of the form (\\\"$placeholder\\\" . 'theme-colour) which applied the template\")\n\n(unless (file-exists-p (expand-file-name \"theme-splashes\" doom-cache-dir))\n  (make-directory (expand-file-name \"theme-splashes\" doom-cache-dir) t))\n\n(defun fancy-splash-filename (theme-name height)\n  (expand-file-name (concat (file-name-as-directory \"theme-splashes\")\n                            theme-name\n                            \"-\" (number-to-string height) \".svg\")\n                    doom-cache-dir))\n\n(defun fancy-splash-clear-cache ()\n  \"Delete all cached fancy splash images\"\n  (interactive)\n  (delete-directory (expand-file-name \"theme-splashes\" doom-cache-dir) t)\n  (message \"Cache cleared!\"))\n\n(defun fancy-splash-generate-image (template height)\n  \"Read TEMPLATE and create an image if HEIGHT with colour substitutions as\n   described by `fancy-splash-template-colours' for the current theme\"\n  (with-temp-buffer\n    (insert-file-contents template)\n    (re-search-forward \"$height\" nil t)\n    (replace-match (number-to-string height) nil nil)\n    (dolist (substitution fancy-splash-template-colours)\n      (goto-char (point-min))\n      (while (re-search-forward (car substitution) nil t)\n        (replace-match (doom-color (cdr substitution)) nil nil)))\n    (write-region nil nil\n                  (fancy-splash-filename (symbol-name doom-theme) height) nil nil)))\n\n(defun fancy-splash-generate-images ()\n  \"Perform `fancy-splash-generate-image' in bulk\"\n  (dolist (size fancy-splash-sizes)\n    (unless (plist-get size :file)\n      (fancy-splash-generate-image (or (plist-get size :template)\n                                       fancy-splash-image-template)\n                                   (plist-get size :height)))))\n\n(defun ensure-theme-splash-images-exist (&optional height)\n  (unless (file-exists-p (fancy-splash-filename\n                          (symbol-name doom-theme)\n                          (or height\n                              (plist-get (car fancy-splash-sizes) :height))))\n    (fancy-splash-generate-images)))\n\n(defun get-appropriate-splash ()\n  (let ((height (frame-height)))\n    (cl-some (lambda (size) (when (>= height (plist-get size :min-height)) size))\n             fancy-splash-sizes)))\n\n(setq fancy-splash-last-size nil)\n(setq fancy-splash-last-theme nil)\n(defun set-appropriate-splash (&rest _)\n  (let ((appropriate-image (get-appropriate-splash)))\n    (unless (and (equal appropriate-image fancy-splash-last-size)\n                 (equal doom-theme fancy-splash-last-theme)))\n    (unless (plist-get appropriate-image :file)\n      (ensure-theme-splash-images-exist (plist-get appropriate-image :height)))\n    (setq fancy-splash-image\n          (or (plist-get appropriate-image :file)\n              (fancy-splash-filename (symbol-name doom-theme) (plist-get appropriate-image :height))))\n    (setq +doom-dashboard-banner-padding (plist-get appropriate-image :padding))\n    (setq fancy-splash-last-size appropriate-image)\n    (setq fancy-splash-last-theme doom-theme)\n    (+doom-dashboard-reload)))\n\n(add-hook 'window-size-change-functions #'set-appropriate-splash)\n(add-hook 'doom-load-theme-hook #'set-appropriate-splash)\n\n;; Change cursor style\n(blink-cursor-mode)\n\n;; Here are some additional functions/macros that could help you configure Doom:\n\n;; - `load!' for loading external *.el files relative to this one\n;; - `use-package!' for configuring packages\n;; - `after!' for running code after a package has loaded\n;; - `add-load-path!' for adding directories to the `load-path', relative to\n;;   this file. Emacs searches the `load-path' when you load packages with\n;;   `require' or `use-package'.\n;; - `map!' for binding new keys\n;;\n;; To get information about any of these functions/macros, move the cursor over\n;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k').\n;; This will open documentation for it, including demos of how they are used.\n;;\n;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how\n;; they are implemented.\n"
  },
  {
    "path": ".config/doom/init.el",
    "content": ";;; init.el -*- lexical-binding: t; -*-\n\n;; This file controls what Doom modules are enabled and what order they load\n;; in. Remember to run 'doom sync' after modifying it!\n\n;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's\n;;      documentation. There you'll find a link to Doom's Module Index where all\n;;      of our modules are listed, including what flags they support.\n\n;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or\n;;      'C-c c k' for non-vim users) to view its documentation. This works on\n;;      flags as well (those symbols that start with a plus).\n;;\n;;      Alternatively, press 'gd' (or 'C-c c d') on a module to browse its\n;;      directory (for easy access to its source code).\n\n(doom! :input\n       ;;bidi              ; (tfel ot) thgir etirw uoy gnipleh\n       ;;chinese\n       ;;japanese\n       ;;layout            ; auie,ctsrnm is the superior home row\n\n       :completion\n       company           ; the ultimate code completion backend\n       ;;helm              ; the *other* search engine for love and life\n       ;;ido               ; the other *other* search engine...\n       ;;ivy               ; a search engine for love and life\n       vertico           ; the search engine of the future\n\n       :ui\n       ;;deft              ; notational velocity for Emacs\n       doom              ; what makes DOOM look the way it does\n       doom-dashboard    ; a nifty splash screen for Emacs\n       ;;doom-quit         ; DOOM quit-message prompts when you quit Emacs\n       (emoji +unicode)  ; 🙂\n       hl-todo           ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW\n       ;;hydra\n       indent-guides     ; highlighted indent columns\n       ligatures         ; ligatures and symbols to make your code pretty again\n       minimap           ; show a map of the code on the side\n       modeline          ; snazzy, Atom-inspired modeline, plus API\n       ;;nav-flash         ; blink cursor line after big motions\n       ;;neotree           ; a project drawer, like NERDTree for vim\n       ophints           ; highlight the region an operation acts on\n       (popup +defaults)   ; tame sudden yet inevitable temporary windows\n       tabs              ; a tab bar for Emacs\n       treemacs          ; a project drawer, like neotree but cooler\n       ;;unicode           ; extended unicode support for various languages\n       vc-gutter         ; vcs diff in the fringe\n       vi-tilde-fringe   ; fringe tildes to mark beyond EOB\n       window-select     ; visually switch windows\n       workspaces        ; tab emulation, persistence & separate workspaces\n       ;;zen               ; distraction-free coding or writing\n\n       :editor\n       (evil +everywhere); come to the dark side, we have cookies\n       file-templates    ; auto-snippets for empty files\n       fold              ; (nigh) universal code folding\n       (format +onsave)  ; automated prettiness\n       ;;god               ; run Emacs commands without modifier keys\n       ;;lispy             ; vim for lisp, for people who don't like vim\n       multiple-cursors  ; editing in many places at once\n       ;;objed             ; text object editing for the innocent\n       ;;parinfer          ; turn lisp into python, sort of\n       ;;rotate-text       ; cycle region at point between text candidates\n       snippets          ; my elves. They type so I don't have to\n       word-wrap         ; soft wrapping with language-aware indent\n\n       :emacs\n       dired             ; making dired pretty [functional]\n       electric          ; smarter, keyword-based electric-indent\n       ;;ibuffer         ; interactive buffer management\n       undo              ; persistent, smarter undo for your inevitable mistakes\n       vc                ; version-control and Emacs, sitting in a tree\n\n       :term\n       ;;eshell            ; the elisp shell that works everywhere\n       ;;shell             ; simple shell REPL for Emacs\n       ;;term              ; basic terminal emulator for Emacs\n       vterm             ; the best terminal emulation in Emacs\n\n       :checkers\n       syntax              ; tasing you for every semicolon you forget\n       (spell +flyspell) ; tasing you for misspelling mispelling\n       grammar           ; tasing grammar mistake every you make\n\n       :tools\n       ;;ansible\n       ;;biblio            ; Writes a PhD for you (citation needed)\n       ;;debugger          ; FIXME stepping through code, to help you add bugs\n       ;;direnv\n       ;;docker\n       editorconfig      ; let someone else argue about tabs vs spaces\n       ;;ein               ; tame Jupyter notebooks with emacs\n       (eval +overlay)     ; run code, run (also, repls)\n       ;;gist              ; interacting with github gists\n       lookup              ; navigate your code and its documentation\n       lsp               ; M-x vscode\n       magit             ; a git porcelain for Emacs\n       ;;make              ; run make tasks from Emacs\n       ;;pass              ; password manager for nerds\n       ;;pdf               ; pdf enhancements\n       ;;prodigy           ; FIXME managing external services & code builders\n       rgb               ; creating color strings\n       ;;taskrunner        ; taskrunner for all your projects\n       ;;terraform         ; infrastructure as code\n       tmux              ; an API for interacting with tmux\n       ;;upload            ; map local to remote projects via ssh/ftp\n\n       :os\n       (:if IS-MAC macos)  ; improve compatibility with macOS\n       tty               ; improve the terminal Emacs experience\n\n       :lang\n       ;;agda              ; types of types of types of types...\n       ;;beancount         ; mind the GAAP\n       ;;(cc +lsp)         ; C > C++ == 1\n       ;;clojure           ; java with a lisp\n       ;;common-lisp       ; if you've seen one lisp, you've seen them all\n       ;;coq               ; proofs-as-programs\n       ;;crystal           ; ruby at the speed of c\n       ;;csharp            ; unity, .NET, and mono shenanigans\n       data              ; config/data formats\n       ;;(dart +flutter)   ; paint ui and not much else\n       ;;dhall\n       ;;elixir            ; erlang done right\n       ;;elm               ; care for a cup of TEA?\n       emacs-lisp        ; drown in parentheses\n       ;;erlang            ; an elegant language for a more civilized age\n       ;;ess               ; emacs speaks statistics\n       ;;factor\n       ;;faust             ; dsp, but you get to keep your soul\n       ;;fortran           ; in FORTRAN, GOD is REAL (unless declared INTEGER)\n       ;;fsharp            ; ML stands for Microsoft's Language\n       ;;fstar             ; (dependent) types and (monadic) effects and Z3\n       ;;gdscript          ; the language you waited for\n       ;;(go +lsp)         ; the hipster dialect\n       ;;(graphql +lsp)    ; Give queries a REST\n       ;;(haskell +lsp)    ; a language that's lazier than I am\n       ;;hy                ; readability of scheme w/ speed of python\n       ;;idris             ; a language you can depend on\n       json              ; At least it ain't XML\n       ;;(java +lsp)       ; the poster child for carpal tunnel syndrome\n       ;;javascript        ; all(hope(abandon(ye(who(enter(here))))))\n       ;;julia             ; a better, faster MATLAB\n       ;;kotlin            ; a better, slicker Java(Script)\n       ;;latex             ; writing papers in Emacs has never been so fun\n       ;;lean              ; for folks with too much to prove\n       ;;ledger            ; be audit you can be\n       lua               ; one-based indices? one-based indices\n       markdown          ; writing docs for people to ignore\n       ;;nim               ; python + lisp at the speed of c\n       nix               ; I hereby declare \"nix geht mehr!\"\n       ;;ocaml             ; an objective camel\n       org               ; organize your plain life in plain text\n       ;;php               ; perl's insecure younger brother\n       ;;plantuml          ; diagrams for confusing people more\n       ;;purescript        ; javascript, but functional\n       python            ; beautiful is better than ugly\n       ;;qt                ; the 'cutest' gui framework ever\n       ;;racket            ; a DSL for DSLs\n       ;;raku              ; the artist formerly known as perl6\n       ;;rest              ; Emacs as a REST client\n       ;;rst               ; ReST in peace\n       ;;(ruby +rails)     ; 1.step {|i| p \"Ruby is #{i.even? ? 'love' : 'life'}\"}\n       ;;rust              ; Fe2O3.unwrap().unwrap().unwrap().unwrap()\n       ;;scala             ; java, but good\n       ;;(scheme +guile)   ; a fully conniving family of lisps\n       sh                ; she sells {ba,z,fi}sh shells on the C xor\n       ;;sml\n       ;;solidity          ; do you need a blockchain? No.\n       ;;swift             ; who asked for emoji variables?\n       ;;terra             ; Earth and Moon in alignment for performance.\n       web               ; the tubes\n       yaml              ; JSON, but readable\n       ;;zig               ; C, but simpler\n\n       :email\n       ;;(mu4e +org +gmail)\n       ;;notmuch\n       ;;(wanderlust +gmail)\n\n       :app\n       ;;calendar\n       ;;emms\n       ;;everywhere        ; *leave* Emacs!? You must be joking\n       ;;irc               ; how neckbeards socialize\n       ;;(rss +org)        ; emacs as an RSS reader\n       ;;twitter           ; twitter client https://twitter.com/vnought\n\n       :config\n       ;;literate\n       (default +bindings +smartparens))\n"
  },
  {
    "path": ".config/doom/packages.el",
    "content": ";; -*- no-byte-compile: t; -*-\n;;; $DOOMDIR/packages.el\n\n;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror:\n;(package! some-package)\n\n;; To install a package with Doom you must declare them here and run 'doom sync'\n;; on the command line, then restart Emacs for the changes to take effect -- or\n;; use 'M-x doom/reload'.\n\n;; To install a package directly from a remote git repo, you must specify a\n;; `:recipe'. You'll find documentation on what `:recipe' accepts here:\n;; https://github.com/raxod502/straight.el#the-recipe-format\n;(package! another-package\n;  :recipe (:host github :repo \"username/repo\"))\n\n;; If the package you are trying to install does not contain a PACKAGENAME.el\n;; file, or is located in a subdirectory of the repo, you'll need to specify\n;; `:files' in the `:recipe':\n;(package! this-package\n;  :recipe (:host github :repo \"username/repo\"\n;           :files (\"some-file.el\" \"src/lisp/*.el\")))\n\n;; If you'd like to disable a package included with Doom, you can do so here\n;; with the `:disable' property:\n;(package! builtin-package :disable t)\n\n;; You can override the recipe of a built in package without having to specify\n;; all the properties for `:recipe'. These will inherit the rest of its recipe\n;; from Doom or MELPA/ELPA/Emacsmirror:\n;(package! builtin-package :recipe (:nonrecursive t))\n;(package! builtin-package-2 :recipe (:repo \"myfork/package\"))\n\n;; Specify a `:branch' to install a package from a particular branch or tag.\n;; This is required for some packages whose default branch isn't 'master' (which\n;; our package manager can't deal with; see raxod502/straight.el#279)\n;(package! builtin-package :recipe (:branch \"develop\"))\n\n;; Use `:pin' to specify a particular commit to install.\n;(package! builtin-package :pin \"1a2b3c4d5e\")\n\n\n;; Doom's packages are pinned to a specific commit and updated from release to\n;; release. The `unpin!' macro allows you to unpin single packages...\n;(unpin! pinned-package)\n;; ...or multiple packages\n;(unpin! pinned-package another-pinned-package)\n;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)\n;(unpin! t)\n\n;;;;;;;;;;;;;;;;;;;;;;;;;;\n;;; BEGIN PACKAGE LIST ;;;\n;;;;;;;;;;;;;;;;;;;;;;;;;;\n\n;; For email\n;(package! mu4e-alert)\n;\n;; For taskwarrior-emacs\n;(package! ts)\n;(package! taskwarrior.el\n;  :recipe (:host github :repo \"winpat/taskwarrior.el\"))\n\n;; To plat audio in emacs\n;(package! emms)\n\n"
  },
  {
    "path": ".config/dunst/dunstrc",
    "content": "[colors]\n    background = \"#2e3440\"\n    frame = \"#3b4252\"\n\t#foreground = \"#e5e9f0\"\n\n[global]\n    ### Display ###\n\n    monitor = 0\n    follow = keyboard\n\n    ### Geometry ###\n\n    # dynamic width from 0 to 300\n    # width = (0, 300)\n    # constant width of 300\n    width = (0, 500)\n\n    # The maximum height of a single notification, excluding the frame.\n    height = 300\n\n    # Position the notification in the top right corner\n    origin = top-right\n\n    # Offset from the origin\n    offset = 10x68\n\n    # Scale factor. It is auto-detected if value is 0.\n    scale = 0\n\n    # Maximum number of notification (0 means no limit)\n    notification_limit = 5\n\n    indicate_hidden = yes\n    transparency = 0\n    gap_size = 8\n    padding = 36\n    horizontal_padding = 36\n    frame_width = 3\n    corner_radius = 12\n\n    #frame_color = \n    separator_color = auto\n    sort = yes\n    idle_threshold = 120\n\n    ### Text ###\n    font = FiraCode Nerd Font, Font Awesome 5 Free Solid 9\n    line_height = 0\n\n    markup = full\n\n    # The format of the message.  Possible variables are:\n    #   %a  appname\n    #   %s  summary\n    #   %b  body\n    #   %i  iconname (including its path)\n    #   %I  iconname (without its path)\n    #   %p  progress value if set ([  0%] to [100%]) or nothing\n    #   %n  progress value if set without any extra characters\n    #   %%  Literal %\n    # Markup is allowed\n    format = \"<b>%a</b>\\n%s\\n%b\"\n    alignment = left\n    vertical_alignment = center\n    show_age_threshold = 60\n    word_wrap = true\n    ellipsize = middle\n    ignore_newline = false\n    stack_duplicates = true\n    hide_duplicate_count = true\n    show_indicators = true\n\n    ### Icons ###\n    icon_position = left\n    max_icon_size = 128\n    icon_path = /usr/share/icons/Nord-Icon/48x48/status/:/usr/share/icons/Nord-Icon/48x48/devices/:/usr/share/icons/Nord-Icon/48x48/apps\n\n    ### History ###\n    sticky_history = yes\n    history_length = 20\n\n    ### Misc/Advanced ###\n    dmenu = /usr/bin/rofi -dmenu:\n    browser = /usr/bin/linkhandler\n    always_run_script = false\n    title = Dunst\n    class = Dunst\n    startup_notification = true\n    force_xinerama = false\n\n[experimental]\n    per_monitor_dpi = false\n\n[log_notifs]\n    script = ~/.local/bin/dunst_logger.sh\n\n[qtile]\n    appname = Qtile\n    new_icon = /usr/share/icons/Nord-Icon/48x48/apps/python.svg\n\n[pomodoro]\n    appname = Pomod\n    new_icon = /usr/share/icons/Nord-Icon/48x48/apps/pomodoro-indicator.svg\n\n[slack]\n    desktop_entry = Slack\n    new_icon = /usr/share/icons/Nord-Icon/48x48/apps/slack.svg\n\n[dunst_icon]\n    appname = dunst\n    new_icon = /usr/share/icons/Nord-Icon/48x48/apps/bell.svg\n\n[notify_send_icon]\n    appname = notify-send\n    new_icon = /usr/share/icons/Nord-Icon/48x48/apps/bell.svg\n\n[giph]\n    appname = giph\n    new_icon = /usr/share/icons/Nord-Icon/48x48/apps/simplescreenrecorder.svg\n\n[zsh]\n    appname = zsh\n    new_icon = /usr/share/icons/Nord-Icon/48x48/apps/terminal.svg\n\n[giph_summary]\n    summary = giph\n    new_icon = /usr/share/icons/Nord-Icon/48x48/apps/simplescreenrecorder.svg\n    \n#[shortcuts]\n#    close = ctrl+space\n#    close_all = ctrl+shift+space\n#    #context = ctrl+shift+period\n#    history = ctrl+grave\n\n[urgency_low]\n    foreground = \"#81a1c1\"\n    frame_color = \"#3b4252\"\n    timeout = 5\n\n[urgency_normal]\n    foreground = \"#e5e9f0\"\n    frame_color = \"#3b4252\"\n    timeout = 5\n\n[urgency_critical]\n    foreground = \"#bf616a\"\n    frame_color = \"#3b4252\"\n    timeout = 0\n\n# vim: ft=conf\n"
  },
  {
    "path": ".config/eww/eww.scss",
    "content": "// general\n*{\n    all: unset;\n}\n\nwindow {\n    background-color: #2e3440;\n    color: #e5e9f0;\n    font-family: monospace;\n}\n\nbutton {\n    all: unset;\n    //background-color: #2e3440;\n    padding: 20px;\n}\n\n.main_box {\n    border-width: 3px;\n    border-style: solid;\n    border-color: #3b4252;\n    border-radius: 12px;\n}\n\n.vol { \n    border-width: 3px;\n    border-style: solid;\n    border-color: #3b4252;\n    border-radius: 12px;\n}\n\n.bright { \n    border-width: 3px;\n    border-style: solid;\n    border-color: #3b4252;\n    border-radius: 12px;\n}\n\n//player\n.player {\n  background-color: #232831;\n  border-radius: 12px; \n  //border-top-width: 5px;\n  //border-style: solid;\n  //border-color: #66cccc;\n  margin: 40px 20px 40px 20px;\n  //width: 250px;\n}\n.musicart {\n  background-size: 250px;\n  background-repeat: no-repeat;\n  min-height: 250px;\n  min-width: 250px;\n  margin: 30px;\n  border-radius: 12px;\n  // padding: 10px;\n}\n\n.musictitle {\n  font-size: 24px;\n  font-weight: bold;\n  //margin-top: 80px;\n  margin-bottom: 10px;\n  margin-right: 30px;\n  color: #a3be8c;\n}\n\n.musicalbum {\n    font-size: 24px;\n    margin-bottom: 10px;\n    margin-right: 30px;\n    //color: #8fbcbb;\n}\n\n.musicartist {\n  font-size: 24px;\n  margin-bottom: 0px; \n  margin-right: 30px;\n  //color: #88c0d0;\n}\n\n.musicbtn {\n  margin-right: 30px;\n}\n.musicbtn button {\n  font-size: 24px;\n  font-family: icons;\n  color: #434c5e;\n}\n\n.musicbtn button:hover {\n  color: #bf616a;\n}\n\n.music-info scale trough highlight {\n  all: unset;\n\tbackground-color: #8fbcbb;;\n\tcolor: #000000;\n\tborder-radius: 50px;\n}\n\n.music-info scale trough {\n\tall: unset;\n\tbackground-color: #434c5e;\n\tborder-radius: 50px;\n\tmin-height: 25px;\n  min-width: 250px;\n  margin-top: 10px;\n  margin-left: 0px;\n  margin-right: 30px;\n}\n\n//weather\n.weather {\n  background-color: #232831;\n  border-radius: 12px;\n  //border-top-width: 5px;\n  //border-style: solid;\n  //border-color: #66cccc;\n  margin: 40px 20px 40px 20px;\n}\n.weather-icon-side {\n  font-size: 82px;\n  font-family: icons;\n  margin: 30px 0px 5px 30px;\n}\n.weather-stat-side {\n  font-size: 28px;\n  //padding-top: 10px;\n  //padding-bottom: 5px;\n  font-weight: bold;\n  margin-right: 30px;\n  margin-left: 30px;\n  margin-bottom: 25px;\n  color: #88c0d0;\n}\n\n.temp-info {\n  margin: 30px;\n}\n\n.temperature-side {\n  //font-family: icons;\n  font-size: 52px;\n  font-weight: 900;\n  margin-right: 30px;\n  //color: #88c0d0;\n}\n\n.thermometer {\n  font-family: icons;\n  font-size: 52px;\n  font-weight: 900;\n  color: #d08770;\n}\n\n//system-info\n.sliders-side {\n  all: unset;\n  background-color: #232831;\n  border-radius: 12px; \n  //border-top-width: 5px;\n  //border-style: solid;\n  //border-color: #66cccc;\n  margin: 40px 40px 40px 20px;\n  padding: 20px;\n  font-family: icons;\n  font-size: 32;\n}\n\n.circprog-ram-side {\n  color: #ebcb8b;\n  background-color: #434c5e;\n}\n\n.circprog-cpu-side {\n  color: #b48ead;\n  background-color: #434c5e;\n}\n\n.circprog-hdd-side {\n  color: #a3be8c;\n  background-color: #434c5e;\n}\n\n//profile\n.profile {\n  background-color: #232831;\n  border-radius: 12px; \n  //border-top-width: 5px;\n  //border-style: solid;\n  //border-color: #66cccc;\n  margin: 40px 20px 40px 40px;\n  //width:  300px;\n}\n.pfp {\n  //background-image: url(\"/var/lib/AccountsService/icons/barbarossa.png\");\n  //background-repeat: no-repeat;\n  //background-size: 300px;\n  //min-height: 300px;\n  //min-width: 300px;\n  margin: 30px 30px 30px 30px;\n  border-radius: 30px;\n}\n.pfptxt {\n  //margin-top: 0px;\n  color: #81a1c1;\n  font-size: 36px;\n  margin: 0px 30px 0px 30px;\n}\n.subpfptxt {\n  margin-bottom: 30px;\n  font-size: 24px;\n  //color: #5e81ac;\n}\n\n//launch\n.launch {\n  background-color: #232831;\n  border-radius: 12px;\n  //border-top-width: 5px;\n  //border-style: solid;\n  //border-color: #66cccc;\n  margin: 40px 20px 40px 20px;\n  font-family: icons;\n  font-size: 80px;\n  color: #4c566a;\n}\n\n.launch1 {\n  background-color: #232831; \n  margin: 50px 30px 15px 30px; \n}\n\n.internet:hover {\n  color: #5e81ac;\n}\n\n.mail:hover {\n  color: #81a1c1;\n}\n\n.music:hover {\n  color: #a3be8c;\n}\n\n.file:hover {\n  color: #bf616a;\n}\n\n.editor:hover {\n  color: #b48ead;\n}\n\n.launch2 {\n  background-color: #232831;\n  margin: 15px 30px 30px 30px;\n}\n\n.pomo:hover {\n  color: #d08770;\n}\n\n.notes:hover {\n  color: #88c0d0;\n}\n\n.rstudio:hover {\n  color: #8fbcbb;\n}\n\n.slack:hover {\n  color: #ebcb8b;\n}\n\n.terminal:hover {\n  color: #e5e9f0;\n}\n\n//vol\n.vol scale trough highlight {\n  all: unset;\n\tbackground-color: #88c0d0;\n\tcolor: #000000;\n\tborder-radius: 100px;\n}\n\n.vol scale trough {\n\tall: unset;\n\tbackground-color: #434c5e;\n\tborder-radius: 50px;\n\tmin-height: 35px;\n  min-width: 250px;\n  margin: 30px;\n}\n\n.vol-icon {\n  font-family: icons;\n  font-size: 96px; \n  margin-top: 80px; \n  //margin-right: 9px;\n  color: #88c0d0;\n}\n\n//bright\n.bright scale trough highlight {\n  all: unset;\n\tbackground-color: #ebcb8b;\n\tcolor: #000000;\n\tborder-radius: 100px;\n}\n\n.bright scale trough {\n\tall: unset;\n\tbackground-color: #434c5e;\n\tborder-radius: 50px;\n\tmin-height: 35px;\n  min-width: 250px;\n  margin: 30px;\n}\n\n.bright-icon {\n  font-family: icons;\n  font-size: 96px; \n  margin-top: 80px; \n  //margin-right: 9px;\n  color: #ebcb8b;\n}\n\n//bottom-border\n.border {\n  background-color: #3b4252;\n}\n"
  },
  {
    "path": ".config/eww/eww.yuck",
    "content": ";-*-Lisp-*-\n    (defwidget player []\n      (box :orientation \"h\" :space-evenly \"false\" :class \"player\" \n        (box :class \"musicart\" :halign \"center\" :valign \"center\" :style \"background-image: url('${cover}')\")\n        (box :orientation \"v\" :class \"music-info\" :valign \"center\" :halign \"center\" :space-evenly \"false\"\n          (box :class \"musictitle\" music3)\n          (box :class \"musicalbum\" music2)\n          (box :class \"musicartist\" music)\n          (box :orientation \"h\" :halign \"center\" :valign \"center\" :class \"musicbtn\" :space-evenly \"false\" \n            (button :onclick \"playerctl -p Lollypop previous\" \"\")\n            (button :onclick \"playerctl -p Lollypop play-pause\" musicstat)\n            (button :onclick \"playerctl -p Lollypop next\" \"\"))\n          (scale :min 0 :max duration :active \"false\" :value position :class \"progress-bar\"))))\n    (defwidget system_info [] \n      (box :orientation \"v\" :space-evenly \"true\" :class \"sliders-side\" \n          (circular-progress :class \"circprog-cpu-side\" :width 200 :thickness 25 :value {EWW_CPU.avg} \"\")\n        (box :orientation \"h\" :space-evenly \"false\" :vexpand \"false\"\n          (circular-progress :halign \"baseline\" :class \"circprog-ram-side\":width 200 :thickness 25 :value {EWW_RAM.used_mem_perc} \"\")\n          (circular-progress :halign \"baseline\" :class \"circprog-hdd-side\":width 200 :thickness 25 :value {EWW_DISK[\"/\"].used_perc} \"\"))))\n    (defwidget profile [] \n      (box :orientation \"v\" :space-evenly \"false\" :class \"profile\" \n        (box :orientation \"h\" :space-evenly \"true\" \n          (image :path \"/home/barbarossa/Pictures/barbarossaCircle.png\" :image-width 200 :image-height 200 :class \"pfp\"))\n        (box :orientation \"v\" :space-evenly \"false\" \n          (box :class \"pfptxt\" :valign \"center\" user)\n          (box :class \"subpfptxt\" :halign \"center\" \"@${host}\"))))\n    (defwidget launch [] \n      (box :orientation \"v\" :space-evenly \"false\" :class \"launch\" \n        (box :orientation \"h\" :halign \"center\" :class \"launch1\" :space-evenly \"false\" \n          (button :class \"internet\" :onclick \"wmctrl -xa firefox || setsid -f firefox\" \"\")\n          (button :class \"mail\" :onclick \"wmctrl -xa geary || setsid -f geary\" \"\")\n          (button :class \"music\" :style \"font-family: 'Font Awesome 6 Free Solid'\" :onclick \"wmctrl -xa lollypop || setsid -f lollypop\" \"\")\n          (button :class \"file\" :onclick \"setsid -f nautilus\" \"\")\n          (button :class \"editor\" :onclick \"wmctrl -xa emacs || setsid -f emacs\" \"\"))\n        (box :orientation \"h\" :halign \"center\" :class \"launch2\" :space-evenly \"false\" \n          (button :class \"pomo\" :onclick \"wmctrl -xa io.elementary.calendar || setsid -f io.elementary.calendar\" \"\")\n          (button :class \"notes\" :onclick \"wmctrl -xa gtg || setsid -f gtg\" \"\")\n          (button :class \"rstudio\" :onclick \"wmctrl -xa Steam || setsid -f steam\" \"\")\n          (button :class \"slack\" :onclick \"wmctrl -xa discord || setsid -f discord\" \"\")\n          (button :class \"terminal\" :onclick \"setsid -f alacritty\" \"\"))))\n    (defwidget weather []\n        (box :class \"weather\" :orientation \"v\" :space-evenly \"false\" \n             (box :class \"weather-icon-side\" :style \"color: ${weather-hex}\" weather-icon)\n             (box :class \"temp-info\" :orientation \"h\" :halign \"center\" :space-evenly \"false\"\n                  (box :class \"temperature-side\" temperature)\n                  (box :class \"thermometer\" \"\"))\n             (box :class \"weather-stat-side\" (label :halign \"center\" :wrap \"true\" :text weather-stat-side))))\n    (defwidget vol [] \n      (box :orientation \"v\" :space-evenly \"true\" :class \"vol\" \n        (box :class \"vol-icon\" vol-icon)\n        (scale :min 0 :max 100 :active \"false\" :value current-vol)))\n    (defwidget bright [] \n      (box :orientation \"v\" :space-evenly \"true\" :class \"bright\" \n        (box :class \"bright-icon\" \"\")\n        (scale :min 0 :max 100 :active \"false\" :value current-bright)))\n  \n  \n    ;;  Player vars \n    (deflisten music \"playerctl -F -p Lollypop metadata --format '{{ artist }}'\")\n    (deflisten music2 \"playerctl -F -p Lollypop metadata --format '{{ album }}'\")\n    (deflisten music3 \"playerctl -F -p Lollypop metadata --format '{{ title }}'\")\n    (deflisten musicstat \"~/.config/eww/scripts/musicstatus\")\n    (defpoll position :interval \"2s\"  \"playerctl -p Lollypop position | sed 's/..\\{6\\}$//'\")\n    (deflisten duration \"playerctl -F -p Lollypop metadata mpris:length | sed 's/.\\{6\\}$//'\")\n    (deflisten cover :initial \"/home/barbarossa/.config/eww/images/image.png\" \"playerctl -F -p Lollypop metadata mpris:artUrl\")\n    ;; (defpoll art :interval \"1s\"  \"~/.config/eww/scripts/getart || cp ~/.config/eww/images/image.png /tmp/mpd/cover.png\")\n    ; (defpoll like_status :interval \"1s\"  \"~/.config/eww/scripts/mpd/mpd_to_like_or_not.sh -s\")\n    ;;  Calendar vars \n    (defpoll time :interval \"5s\"\n      \"date '+%H:%M'\")\n    (defpoll date :interval \"30s\"\n      \"date'+%b %d, %Y'\")\n    ;;  Profile vars\n    (defpoll user :interval \"1h\"  \"echo $USER\")\n    (defpoll host :interval \"1h\"  \"uname -n\")\n    ;;  Launcher vars \n    ;;  Weather vars \n    (defpoll weather-icon :interval \"5s\"  \"cat /tmp/weather/weather-icon\")\n    (defpoll weather-hex :interval \"5s\"  \"cat /tmp/weather/weather-hex\")\n    (defpoll temperature :interval \"5s\"  \"cat /tmp/weather/weather-degree\")\n    (defpoll weather-stat-side :interval \"5s\"  \"~/.config/eww/scripts/weather-trimmer\")\n    ;(defpoll weather-quote :interval \"5s\"  \"~/.config/eww/scripts/getwethquote\")\n    (defvar pango \"&lt;span foreground=\\\"#d08770\\\" font_family=\\\"icons\\\"&gt;&lt;/span&gt;\")\n    ;; Vol vars \n    (deflisten vol-icon  \"tail -F /tmp/vol-icon\")\n    (deflisten current-vol  \"tail -F /tmp/vol\")\n    ;; Bright vars \n    (deflisten current-bright  \"tail -F /tmp/bright\")\n        (defwindow main_bottom \n\t\t\t    :geometry (geometry :anchor \"bottom center\" :y \"12px\")\n\t\t\t     \t\t\t\t(box :class \"main_box\" :orientation \"h\" :space-evenly \"false\" \n          (profile)\n          (player)\n          (launch)\n          (weather)\n          (system_info)))\n    (defwindow vol \n\t\t\t    :geometry (geometry :height \"16%\" :y \"18%\" :anchor \"center\")\n\t\t\t     \t\t\t\t(vol))\n    (defwindow bright \n\t\t\t    :geometry (geometry :height \"16%\" :y \"18%\" :anchor \"center\")\n\t\t\t     \t\t\t\t(bright))\n"
  },
  {
    "path": ".config/eww/scripts/getart",
    "content": "#!/bin/bash\nset -e\nset -o pipefail\n\ntmp_dir=\"/tmp/spotify\"\ntmp_cover_path=$tmp_dir/cover.png\n\nif [ ! -d $tmp_dir ]; then\n\tmkdir -p $tmp_dir\nfi\n\nif [ ! -f \"$tmp_cover_path\" ]; then\n\tcp ~/.config/eww/images/image.png $tmp_cover_path;\nfi\n\nstdbuf -o0 playerctl  metadata mpris:artUrl | sed -e 's/open.spotify.com/i.scdn.co/g' |\n\twhile read arturl; do\n\t\tif [[ \"$arturl\" == http?(s)://* ]]; then\n\t\t\tcurl -s \"$arturl\" --output $tmp_cover_path;\n\t\telse\n\t\t\tcp ~/.config/eww/images/image.png $tmp_cover_path;\n\t\tfi\n\tdone\n\n#upd_art () {\n#\tif [ $(playerctl metadata mpris:artUrl) ]; then\n#\t\tcurl -s \"$current_artlink\" --output $tmp_cover_path;\n#\telse\n#\t\tcp ~/.config/eww/images/image.png $tmp_cover_path;\n#\tfi\n#}\n\n#declare -t current_artlink\n#trap 'cp ~/.config/eww/images/image.png $tmp_cover_path' DEBUG\n\n#while true; do\n#\tartlink=\"$(playerctl metadata mpris:artUrl | sed -e 's/open.spotify.com/i.scdn.co/g')\"\n#\tif [ \"$artlink\" != \"$current_artlink\" ]; then\n#\t\tcurrent_artlink=\"$artlink\"\n#\tfi\n#\tsleep 5\n#done\t\n"
  },
  {
    "path": ".config/eww/scripts/getday",
    "content": "#!/bin/bash\nday_num=$(date \"+%u\")\n\nif [ $day_num == 1 ]; then\n\tday=\"Monday\"\nelif [ $day_num == 2 ]; then\n\tday=\"Tuesday\"\nelif [ $day_num == 3 ]; then\n\tday=\"Wednesday\"\nelif [ $day_num == 4 ]; then\n\tday=\"Thursday\"\nelif [ $day_num == 5 ]; then\n\tday=\"Friday\"\nelif [ $day_num == 6 ]; then\n\tday=\"Saturday\"\nelse\n\tday=\"Sunday\"\nfi\necho $day;\n\n"
  },
  {
    "path": ".config/eww/scripts/gettitle",
    "content": "#!/bin/bash\ntitle=$(playerctl metadata --format '{{ title }}')\ncount=$(echo -n \"$title\" | wc -c)\nif [ -z \"$title\" ]; then\n\techo \"Nothing Playing...\";\nelse\n\tif [ \"$count\" -le 18 ]; then\n\t\techo $title\n\telse \n\t\techo $(playerctl metadata --format '{{ title }}' | awk '{print $1, $2}')...\n\tfi\nfi\n"
  },
  {
    "path": ".config/eww/scripts/getvol",
    "content": "#!/bin/bash\namixer -D pulse sget Master | grep 'Left:' | awk -F'[][]' '{ print $2 }' | tr -d '%'"
  },
  {
    "path": ".config/eww/scripts/getweather",
    "content": "#!/bin/bash\n\ntmp_weather=\"/tmp/weather\"\ntmp_weather_stat=$tmp_weather/weather-stat\ntmp_weather_degree=$tmp_weather/weather-degree\ntmp_weather_quote=$tmp_weather/weather-quote\ntmp_weather_hex=$tmp_weather/weather-hex\ntmp_weather_icon=$tmp_weather/weather-icon\n\nif [ ! -d $tmp_weather ]; then\n        mkdir -p $tmp_weather\nfi\n\n# Put in your api and stuff link here \n# If you dunno, head to openweathermap.org, and make and account \n#(completely free I swear, and then get your API Key and  your City ID)\n# I wish I was smart enough to do it like Elena, but this is the top I could do lol\nKEY=\"b4b2cdde83a8a5f8d5690cb28bd722f1\"\nID=\"4347778\"\nUNIT=\"imperial\" #Options are 'metric' and 'imperial'\nweather=$(curl -sf \"http://api.openweathermap.org/data/2.5/weather?APPID=\"$KEY\"&id=\"$ID\"&units=\"$UNIT\"\")\necho $weather\nif [ ! -z \"$weather\" ]; then\n        weather_temp=$(echo \"$weather\" | jq \".main.temp\" | cut -d \".\" -f 1)\n        weather_icon_code=$(echo \"$weather\" | jq -r \".weather[].icon\" | head -1)\n\tweather_description=$(echo \"$weather\" | jq -r \".weather[].description\" | head -1 | sed -e \"s/\\b\\(.\\)/\\u\\1/g\")\n\n\t#Big long if statement of doom\n\tif [ \"$weather_icon_code\" == \"50d\"  ]; then\n\t\tweather_icon=\" \"\n        weather_quote=\"Forecast says it's misty \\nMake sure you don't get lost on your way...\"\n        weather_hex=\"#81a1c1\"  #a7b8b2\n    elif [ \"$weather_icon_code\" == \"50n\"  ]; then\n        weather_icon=\" \"\n        weather_quote=\"Forecast says it's a misty night \\nDon't go anywhere tonight or you might get lost...\"\n        weather_hex=\"#81a1c1\"\n\telif [ \"$weather_icon_code\" == \"01d\"  ]; then\n        weather_icon=\" \"\n        weather_quote=\"It's a sunny day, gonna be fun! \\nDon't go wandering all by yourself though...\"\n        weather_hex=\"#d08770\"\n    elif [ \"$weather_icon_code\" == \"01n\"  ]; then\n        weather_icon=\" \"\n        weather_quote=\"It's a clear night \\nYou might want to take a evening stroll to relax...\"\n        weather_hex=\"#eceff4\"\n    elif [ \"$weather_icon_code\" == \"02d\"  ]; then\n        weather_icon=\" \"\n        weather_quote=\"It's  cloudy, sort of gloomy \\nYou'd better get a book to read...\"\n        weather_hex=\"#b48ead\"\n    elif [ \"$weather_icon_code\" == \"02n\"  ]; then\n        weather_icon=\" \"\n        weather_quote=\"It's a cloudy night \\nHow about some hot chocolate and a warm bed?\"\n        weather_hex=\"#b48ead\"\n    elif [ \"$weather_icon_code\" == \"03d\"  ]; then\n        weather_icon=\" \"\n        weather_quote=\"It's  cloudy, sort of gloomy \\nYou'd better get a book to read...\"\n        weather_hex=\"#b48ead\"\n    elif [ \"$weather_icon_code\" == \"03n\"  ]; then\n        weather_icon=\" \"\n        weather_quote=\"It's a cloudy night \\nHow about some hot chocolate and a warm bed?\"\n        weather_hex=\"#b48ead\"\n    elif [ \"$weather_icon_code\" == \"04d\"  ]; then\n        weather_icon=\" \"\n        weather_quote=\"It's  cloudy, sort of gloomy \\nYou'd better get a book to read...\"\n        weather_hex=\"#b48ead\"\n    elif [ \"$weather_icon_code\" == \"04n\"  ]; then\n        weather_icon=\" \"\n        weather_quote=\"It's a cloudy night \\nHow about some hot chocolate and a warm bed?\"\n        weather_hex=\"#b48ead\"\n    elif [ \"$weather_icon_code\" == \"09d\"  ]; then\n        weather_icon=\" \"\n        weather_quote=\"It's rainy, it's a great day! \\nGet some ramen and watch as the rain falls...\"\n        weather_hex=\"#5e81ac\"\n    elif [ \"$weather_icon_code\" == \"09n\"  ]; then\n        weather_icon=\" \"\n        weather_quote=\" It's gonna rain tonight it seems \\nMake sure your clothes aren't still outside...\"\n        weather_hex=\"#5e81ac\"\n    elif [ \"$weather_icon_code\" == \"10d\"  ]; then\n        weather_icon=\" \"\n        weather_quote=\"It's rainy, it's a great day! \\nGet some ramen and watch as the rain falls...\"\n        weather_hex=\"#5e81ac\"\n    elif [ \"$weather_icon_code\" == \"10n\"  ]; then\n        weather_icon=\" \"\n        weather_quote=\" It's gonna rain tonight it seems \\nMake sure your clothes aren't still outside...\"\n        weather_hex=\"#5e81ac\"\n    elif [ \"$weather_icon_code\" == \"11d\"  ]; then\n        weather_icon=\"\"\n        weather_quote=\"There's storm for forecast today \\nMake sure you don't get blown away...\"\n        weather_hex=\"#ebcb8b\"\n    elif [ \"$weather_icon_code\" == \"11n\"  ]; then\n        weather_icon=\"\"\n        weather_quote=\"There's gonna be storms tonight \\nMake sure you're warm in bed and the windows are shut...\"\n        weather_hex=\"#ebcb8b\"\n    elif [ \"$weather_icon_code\" == \"13d\"  ]; then\n        weather_icon=\" \"\n        weather_quote=\"It's gonna snow today \\nYou'd better wear thick clothes and make a snowman as well!\"\n        weather_hex=\"#d8dee9\"\n    elif [ \"$weather_icon_code\" == \"13n\"  ]; then\n        weather_icon=\" \"\n        weather_quote=\"It's gonna snow tonight \\nMake sure you get up early tomorrow to see the sights...\"\n        weather_hex=\"#d8dee9\"\n    elif [ \"$weather_icon_code\" == \"40d\"  ]; then\n        weather_icon=\" \"\n        weather_quote=\"Forecast says it's misty \\nMake sure you don't get lost on your way...\"\n        weather_hex=\"#81a1c1\"\n    elif [ \"$weather_icon_code\" == \"40n\"  ]; then\n        weather_icon=\" \"\n        weather_quote=\"Forecast says it's a misty night \\nDon't go anywhere tonight or you might get lost...\"\n        weather_hex=\"#81a1c1\"\n    else \n        weather_icon=\" \"\n        weather_quote=\"Sort of odd, I don't know what to forecast \\nMake sure you have a good time!\"\n        weather_hex=\"#b48ead\"\n    fi\n        echo \"$weather_icon\" >  $tmp_weather_icon\n        echo \"$weather_description\" > $tmp_weather_stat\n        echo \"$weather_temp\"\"°F\" > $tmp_weather_degree\n        echo \"$weather_quote\" > $tmp_weather_quote\n        echo \"$weather_hex\" > $tmp_weather_hex\n    else\n        echo \"Weather Unavailable\" > $tmp_weather_stat\n        echo \" \" > $tmp_weather_icon\n        echo \"Ah well, no weather huh? \\nEven if there's no weather, it's gonna be a great day!\" > $tmp_weather_quote\n        echo \"-\" > $tmp_weather_degree\n        echo \"#b48ead\" > $tmp_weather_hex\nfi\n\n"
  },
  {
    "path": ".config/eww/scripts/getwethquote",
    "content": "#!/bin/zsh\n#Works only with zsh, I had bad experiences with bash. Feel free to modify for bash!\necho $(cat /tmp/weather/weather-quote) | head -n1\n"
  },
  {
    "path": ".config/eww/scripts/getwethquote2",
    "content": "#!/bin/zsh\n#Works only with zsh, I had bad experiences with bash. Feel free to modify for bash!\necho $(cat /tmp/weather/weather-quote) | tail -n1\n"
  },
  {
    "path": ".config/eww/scripts/musicstatus",
    "content": "#!/bin/sh\n\nplayerctl -F -p Lollypop status |\n    while read -r STATUS; do\n        if [ \"$STATUS\" = \"Playing\" ]; then\n            STATUS=\"\"\n        else\n            STATUS=\"\"\n        fi\n        echo \"$STATUS\"\n    done\n"
  },
  {
    "path": ".config/eww/scripts/quotes",
    "content": "#!/bin/bash\nnum=$(echo $((1 + $RANDOM % 500)))\n\ncat /tmp/xmonad/quotes/quotes.json | jq --arg num \"$num\" \".[$num]\" | jq -r \".text\" > /tmp/xmonad/quotes/quote\ncat /tmp/xmonad/quotes/quotes.json | jq --arg num \"$num\" \".[$num]\" | jq -r \".author\" > /tmp/xmonad/quotes/author\n\nquote=$(cat /tmp/xmonad/quotes/quote)\nqc=$(cat /tmp/xmonad/quotes/quote | wc -c)\nrm /tmp/xmonad/quotes/quote\nrm /tmp/xmonad/quotes/quote-tail\nif [ \"$qc\" -le 58 ]; then\n\techo \"$quote\" > /tmp/xmonad/quotes/quote\n        echo \"\" > /tmp/xmonad/quotes/quote-tail\nelse\n     \tprintf '%s\\n' \"${quote:0:${#quote}/2}\" > /tmp/xmonad/quotes/quote\n        printf '%s\\n' \"${quote:${#quote}/2}\" > /tmp/xmonad/quotes/quote-tail\nfi\n"
  },
  {
    "path": ".config/eww/scripts/vol_icon.sh",
    "content": "#!/usr/bin/env bash\nset -euo pipefail\n\nmuted=$(pulsemixer --get-mute)\nif [[ \"$muted\" == \"0\" ]]; then\n\techo -n \"\"\nelse \n\techo -n \"\"\nfi\n"
  },
  {
    "path": ".config/eww/scripts/weather-trimmer",
    "content": "#!/bin/bash\nweather=$(cat /tmp/weather/weather-stat)\nweather_count=$(cat /tmp/weather/weather-stat | wc -c)\n\nif [ \"$weather_count\" -lt 50 ]; then\n\techo $weather;\nelse \n\techo $(cat /tmp/weather/weather-stat | cut -c1-6)...\nfi\n"
  },
  {
    "path": ".config/flashfocus/flashfocus.yml",
    "content": "## @@@@@@@@@@@@@@@@@@@@@@\n## Flashfocus config file\n## @@@@@@@@@@@@@@@@@@@@@@\n\n# Opacity of window during flash.\nflash-opacity: 0.8\n\n# Windows are restored to this opacity value at the end of a flash.\ndefault-opacity: 1\n\n# Length of flash in milliseconds.\ntime: 500\n\n# If true, flashes are not faded out. This will improve performance but flashes\n# won't be smooth.\nsimple: false\n\n# Number of animation frames in a flash.\nntimepoints: 10\n\n# Set this to false if you don't want windows to flash on focus.\nflash-on-focus: true\n\n# Set this to false if you don't want fullscreen windows to flash.\nflash-fullscreen: true\n\n# Whether or not to flash windows if they are the only window on the desktop.\n# Possible values:\n#   'always':\n#      Always flash lone windows\n#   'never':\n#      Never flash lone windows\n#   'on_open_close':\n#      Lone windows will be flashed only if a) if they were just opened and b)\n#      if another window was just closed.\n#   'on_switch':\n#      Lone windows will be flashed only upon switching desktops.\nflash-lone-windows: 'always'\n\n\n# Defining window-specific flash rules\n#\n# X11-based window managers (e.g i3, bspwm)\n# -----------------------------------------\n# Flash rules are defined by matching the WM_CLASS property of a window. To get\n# the WM_CLASS property use 'xprop WM_CLASS' and click on a window. The\n# property is a tuple of the form (window-id, window-class). The window-class\n# is usually the name of the application, but not always.\n#\n#\n# Say I'd like to set all 'termite' windows to 80% opacity but leave other\n# windows at full opacity:\n#\n# rules:\n#   - window-class: Termite\n#     default-opacity: 0.8\n#\n#\n# I also would prefer that firefox windows are not flashed on focus:\n#\n# rules:\n#   - window-class: firefox\n#     flash-on-focus: False\n#   - window-class: Termite\n#     default-opacity: 0.8\n#\n#\n# For more complicated rules, you can use (python-style) regexes:\n#\n# rules:\n#   - window-id: ^(?!termite)$\n#     default-opacity: 0.8\n#\n#\n# Sway\n# ----\n# Native wayland apps can be matched using the app_id and window name. These\n# can be found using `swaymsg -t get_tree`. XWayland apps are matched with\n# using WM_CLASS as above (this can also be found with `swaymsg`)\n#\n# Given that termite is wayland native and firefox is not, the rules above\n# could instead be written:\n#\n# rules:\n#   - window-class: firefox\n#     flash-on-focus: False\n#   - app-id: termite\n#     default-opacity: 0.8\n#\n# rules:\n#   - window-name: ^(?!termite)$\n#     default-opacity: 0.8\n"
  },
  {
    "path": ".config/fontconfig/fonts.conf",
    "content": "<?xml version=\"1.0\"?>\n<!DOCTYPE fontconfig SYSTEM \"fonts.dtd\">\n<fontconfig>\n  <alias>\n    <family>icons</family>\n    <prefer>\n      <family>Fira Code</family>\n      <family>Font Awesome 6 Brands</family>\n      <!-- fallback font for symbols -->\n      <family>Font Awesome 6 Free Solid</family>\n      <!-- Preferred Nerd/icon font -->\n      <family>Twemoji</family>\n      <!-- Your preferred emoji font -->\n    </prefer>\n  </alias>\n  <alias>\n    <family>monospace</family>\n    <prefer>\n    <!--<family>InconsolataGo Nerd Font Mono</family>-->\n    <family>Fira Code</family>\n    <!-- Preferred Nerd/icon font -->\n    <family>FiraCode Nerd Font Mono</family>\n    <!-- fallback font for symbols -->\n    <family>Font Awesome 6 Free Solid</family>&gt;\n    <!-- fallback font for symbols -->\n    <family>Twemoji</family>\n    <!-- Your preferred emoji font --></prefer>\n  </alias>\n</fontconfig>\n"
  },
  {
    "path": ".config/greenclip.toml",
    "content": "\n[greenclip]\n  blacklisted_applications = []\n  enable_image_support = true\n  history_file = \"/home/barbarossa/.cache/greenclip.history\"\n  image_cache_directory = \"/tmp/greenclip\"\n  max_history_length = 100\n  max_selection_size_bytes = 0\n  static_history = [\"Greenclip has been updated to v4.0, update your new config file at ~/.config/greenclip.toml\"]\n  trim_space_from_selection = true\n  use_primary_selection_as_input = false\n"
  },
  {
    "path": ".config/gtk-3.0/bookmarks",
    "content": "file:///home/barbarossa/Documents\nfile:///home/barbarossa/Downloads\nfile:///home/barbarossa/Pictures\nfile:///home/barbarossa/Public\nfile:///home/barbarossa/Videos\n"
  },
  {
    "path": ".config/gtk-3.0/gtk.css",
    "content": ".window-frame, .window-frame:backdrop {\n  box-shadow: 0 0 0 black;\n  border-style: none;\n  margin: 0;\n  border-radius: 0;\n}\n    \n.titlebar {\n  border-radius: 0;\n}\n\n/* remove window title from Client-Side Decorations */\n.solid-csd headerbar .title {\n    font-size: 0;\n}\n\n/* hide extra window decorations/double border */\nwindow decoration {\n    margin: 0;\n    border: none;\n    padding: 0;\n}\n\n* {\n  text-shadow: none;\n}\n\nVteTerminal, vte-terminal {\n    padding: 44px;\n}\n\n  window.thunar grid *:selected,\n  window.thunar grid *:active {\n    /*background: #3b4252;*/\n    border-radius: 3px; }\n  window.thunar .sidebar {\n    background-color: #2e3440;\n    /*box-shadow: inset 0px 0px 0px 0px rgba(0, 0, 0, 1);*/\n    padding: 1rem; }\n  window.thunar treeview {\n    padding: 3px; }\n  window.thunar .frame {\n    border: 0px; }\n  window.thunar toolbar box {\n    padding: 5px; }\n  window.thunar toolbar {\n    padding: 5px 0; }\n\n   .pavucontrol-window tabs tab {\n     padding: 16px; }\n .pavucontrol-window .show-volume-meters-check-button {\n   padding: 8px; }\n"
  },
  {
    "path": ".config/gtk-3.0/settings.ini",
    "content": "[Settings]\ngtk-icon-theme-name=Nord-Icon\ngtk-theme-name=Nordic-darker\ngtk-font-name=Fira Code 9\ngtk-cursor-theme-name=capitaine-cursors\ngtk-cursor-theme-size=48\ngtk-toolbar-style=GTK_TOOLBAR_ICONS\ngtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR\ngtk-button-images=1\ngtk-menu-images=1\ngtk-enable-event-sounds=0\ngtk-enable-input-feedback-sounds=0\ngtk-xft-antialias=1\ngtk-xft-hinting=1\ngtk-xft-hintstyle=hintslight\ngtk-xft-rgba=rgb\ngtk-shell-shows-menubar=1\ngtk-application-prefer-dark-theme=0\n"
  },
  {
    "path": ".config/jgmenu/append.csv",
    "content": "^sep()\nLock,lockscreen.sh,system-lock-screen\nExit,^checkout(exit),system-shutdown\n^tag(exit)\nSuspend,systemctl -i suspend,system-log-out\nReboot,systemctl -i reboot,system-reboot\nPoweroff,systemctl -i poweroff,system-shutdown\n"
  },
  {
    "path": ".config/jgmenu/backup/20210328092350068293038/jgmenurc",
    "content": "stay_alive           = 1\ntint2_look           = 0\nposition_mode        = fixed\nterminal_exec        = termite\nterminal_args        = -e\nmenu_width           = 200\nmenu_padding_top     = 10\nmenu_padding_right   = 2\nmenu_padding_bottom  = 5\nmenu_padding_left    = 2\nmenu_radius          = 0\nmenu_border          = 1\nmenu_halign          = left\nsub_hover_action     = 1\nitem_margin_y        = 5\nitem_height          = 30\nitem_padding_x       = 8\nitem_radius          = 0\nitem_border          = 0\nsep_height           = 5\nfont                 = Ubuntu 12px\nicon_size            = 24\ncolor_menu_bg        = #2b303b 100\ncolor_norm_bg        = #2b303b 0\ncolor_norm_fg        = #8fa1b3 100\ncolor_sel_bg         = #8fa1b3 60\ncolor_sel_fg         = #2b303b 100\ncolor_sep_fg         = #8fa1b3 40\n"
  },
  {
    "path": ".config/jgmenu/backup/20210328092350083298148/append.csv",
    "content": "^sep()\nLock,i3lock -c 000000,system-lock-screen\nExit,^checkout(exit),system-shutdown\n^tag(exit)\nSuspend,systemctl -i suspend,system-log-out\nReboot,systemctl -i reboot,system-reboot\nPoweroff,systemctl -i poweroff,system-shutdown\n"
  },
  {
    "path": ".config/jgmenu/backup/20210328092350083298148/jgmenurc",
    "content": "stay_alive           = 1\ntint2_look           = 0\nposition_mode        = fixed\nterminal_exec        = termite\nterminal_args        = -e\nmenu_width           = 200\nmenu_padding_top     = 10\nmenu_padding_right   = 2\nmenu_padding_bottom  = 5\nmenu_padding_left    = 2\nmenu_radius          = 0\nmenu_border          = 1\nmenu_halign          = left\nsub_hover_action     = 1\nitem_margin_y        = 5\nitem_height          = 30\nitem_padding_x       = 8\nitem_radius          = 0\nitem_border          = 0\nsep_height           = 5\nfont                 = Ubuntu 12px\nicon_size            = 24\ncolor_menu_bg        = #2b303b 100\ncolor_norm_bg        = #2b303b 0\ncolor_norm_fg        = #8fa1b3 100\ncolor_sel_bg         = #8fa1b3 60\ncolor_sel_fg         = #2b303b 100\ncolor_sep_fg         = #8fa1b3 40\n"
  },
  {
    "path": ".config/jgmenu/backup/20210328092354312474020/append.csv",
    "content": "^sep()\nLock,i3lock -c 000000,system-lock-screen\nExit,^checkout(exit),system-shutdown\n^tag(exit)\nSuspend,systemctl -i suspend,system-log-out\nReboot,systemctl -i reboot,system-reboot\nPoweroff,systemctl -i poweroff,system-shutdown\n"
  },
  {
    "path": ".config/jgmenu/backup/20210328092354312474020/jgmenurc",
    "content": "stay_alive           = 1\ntint2_look           = 0\nposition_mode        = fixed\nterminal_exec        = termite\nterminal_args        = -e\nmenu_width           = 200\nmenu_padding_top     = 10\nmenu_padding_right   = 2\nmenu_padding_bottom  = 5\nmenu_padding_left    = 2\nmenu_radius          = 0\nmenu_border          = 1\nmenu_halign          = left\nsub_hover_action     = 1\nitem_margin_y        = 5\nitem_height          = 30\nitem_padding_x       = 8\nitem_radius          = 0\nitem_border          = 0\nsep_height           = 5\nfont                 = Ubuntu 12px\nicon_size            = 24\ncolor_menu_bg        = #2b303b 100\ncolor_norm_bg        = #2b303b 0\ncolor_norm_fg        = #8fa1b3 100\ncolor_sel_bg         = #8fa1b3 60\ncolor_sel_fg         = #2b303b 100\ncolor_sep_fg         = #8fa1b3 40\n"
  },
  {
    "path": ".config/jgmenu/backup/20210328092354312474020/prepend.csv",
    "content": "File manager,nautilus,system-file-manager\n^sep()\n"
  },
  {
    "path": ".config/jgmenu/backup/20210328092354319339759/jgmenurc",
    "content": "stay_alive           = 1\ntint2_look           = 0\nposition_mode        = fixed\nterminal_exec        = termite\nterminal_args        = -e\nmenu_width           = 200\nmenu_padding_top     = 10\nmenu_padding_right   = 2\nmenu_padding_bottom  = 5\nmenu_padding_left    = 2\nmenu_radius          = 0\nmenu_border          = 1\nmenu_halign          = left\nsub_hover_action     = 1\nitem_margin_y        = 5\nitem_height          = 30\nitem_padding_x       = 8\nitem_radius          = 0\nitem_border          = 0\nsep_height           = 5\nfont                 = Ubuntu 12px\nicon_size            = 24\ncolor_menu_bg        = #2b303b 100\ncolor_norm_bg        = #2b303b 0\ncolor_norm_fg        = #8fa1b3 100\ncolor_sel_bg         = #8fa1b3 60\ncolor_sel_fg         = #2b303b 100\ncolor_sep_fg         = #8fa1b3 40\n"
  },
  {
    "path": ".config/jgmenu/backup/20210328092354330711136/append.csv",
    "content": "^sep()\nLock,i3lock -c 000000,system-lock-screen\nExit,^checkout(exit),system-shutdown\n^tag(exit)\nSuspend,systemctl -i suspend,system-log-out\nReboot,systemctl -i reboot,system-reboot\nPoweroff,systemctl -i poweroff,system-shutdown\n"
  },
  {
    "path": ".config/jgmenu/backup/20210328092354330711136/jgmenurc",
    "content": "stay_alive           = 1\ntint2_look           = 0\nposition_mode        = fixed\nterminal_exec        = termite\nterminal_args        = -e\nmenu_width           = 200\nmenu_padding_top     = 10\nmenu_padding_right   = 2\nmenu_padding_bottom  = 5\nmenu_padding_left    = 2\nmenu_radius          = 0\nmenu_border          = 1\nmenu_halign          = left\nsub_hover_action     = 1\nitem_margin_y        = 5\nitem_height          = 30\nitem_padding_x       = 8\nitem_radius          = 0\nitem_border          = 0\nsep_height           = 5\nfont                 = Ubuntu 12px\nicon_size            = 24\ncolor_menu_bg        = #2b303b 100\ncolor_norm_bg        = #2b303b 0\ncolor_norm_fg        = #8fa1b3 100\ncolor_sel_bg         = #8fa1b3 60\ncolor_sel_fg         = #2b303b 100\ncolor_sep_fg         = #8fa1b3 40\n"
  },
  {
    "path": ".config/jgmenu/jgmenurc",
    "content": "stay_alive           = 0\ntint2_look           = 0\nposition_mode        = pointer\nterminal_exec        = alacritty\nterminal_args        = -e\nmenu_width           = 200\nmenu_padding_top     = 10\nmenu_padding_right   = 2\nmenu_padding_bottom  = 5\nmenu_padding_left    = 2\nmenu_radius          = 12\nmenu_border          = 3\nmenu_halign          = left\nsub_hover_action     = 1\nitem_margin_y        = 5\nitem_height          = 30\nitem_padding_x       = 8\nitem_radius          = 6\nitem_border          = 0\nsep_height           = 5\nfont                 = FiraCode Nerd Font 12px\nicon_size            = 24\ncolor_menu_bg        = #2e3440 100\ncolor_norm_bg        = #2e3440 0\ncolor_norm_fg        = #e5e9f0 100\ncolor_menu_border\t\t = #3b4252 100\ncolor_sel_bg         = #e5e9f0 60\ncolor_sel_fg         = #2e3440 100\ncolor_sep_fg         = #e5e9f0 400\n"
  },
  {
    "path": ".config/jgmenu/qtile.csv",
    "content": "Qtile,,\n^sep()\nState,^checkout(state)\nMove,^checkout(move)\nOrient,^checkout(orient)\n^sep()\nClose,qtile cmd-obj -o window -f kill\n\n^tag(state)\nFloating,qtile cmd-obj -o window -f toggle_floating\nFullscreen,qtile cmd-obj -o window -f toggle_fullscreen\nMaximize,qtile cmd-obj -o window -f toggle_maximize\nMinimize,qtile cmd-obj -o window -f toggle_minimize\nUnminimize,qtile cmd-obj -o group -f unminimize_all\n\n^tag(move)\nUp,qtile cmd-obj -o layout -f shuffle_up\nLeft,qtile cmd-obj -o layout -f shuffle_left\nRight,qtile cmd-obj -o layout -f shuffle_right\nDown,qtile cmd-obj -o layout -f shuffle_down\nTo desktop...,^checkout(desktop)\n\n^tag(desktop)\nOne,qtile cmd-obj -o window -f togroup -a \nTwo,qtile cmd-obj -o window -f togroup -a \nThree,qtile cmd-obj -o window -f togroup -a \nFour,qtile cmd-obj -o window -f togroup -a \nFive,qtile cmd-obj -o window -f togroup -a \nSix,qtile cmd-obj -o window -f togroup -a \nSeven,qtile cmd-obj -o window -f togroup -a \nEight,qtile cmd-obj -o window -f togroup -a \nNine,qtile cmd-obj -o window -f togroup -a \nTen,qtile cmd-obj -o window -f togroup -a \n\n^tag(orient)\nLayout,^checkout(layout)\nFlip,^checkout(flip)\n^sep()\nNormalize,qtile cmd-obj -o layout -f normalize\n\n^tag(layout)\nBsp,qtile cmd-obj -o group -f setlayout -a bsp\nFloating,qtile cmd-obj -o group -f setlayout -a floating\nColumns,qtile cmd-obj -o group -f setlayout -a columns\n\n^tag(flip)\nUp,qtile cmd-obj -o layout -f flip_up\nLeft,qtile cmd-obj -o layout -f flip_left\nRight,qtile cmd-obj -o layout -f flip_right\nDown,qtile cmd-obj -o layout -f flip_down\n"
  },
  {
    "path": ".config/neofetch/config.conf",
    "content": "# See this wiki page for more info:\n# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info\nprint_info() {\n    #printf \"\\n\"\n    #printf \"\\n\"\n    #info title\n    #info underline\n\n    printf \"\\n\"\n    printf \"\\n\"\n    printf \"\\n\"\n    info \" \" distro\n    #info \"Host\" model\n    info \" \" kernel\n    #info \"\" uptime\n    info \" \" packages\n    info \" \" shell #\"\"\n    info \" \" term\n    printf \"\\n\"\n    info \" \" resolution\n    #info \"DE\" de\n    info \" \" wm\n    #info \"WM Theme\" wm_theme\n    printf \"\\n\"\n    info \" \" theme\n    info \" \" icons\n    #info \"ﯔ \" term_font    \n    info \"ﯔ \" font\n    #printf \"\\n\"\n\n\n    #info \"CPU\" cpu\n    #info \"GPU\" gpu\n    #info \"Memory\" memory\n\n    # info \"GPU Driver\" gpu_driver  # Linux/macOS only\n    # info \"CPU Usage\" cpu_usage\n    # info \"Disk\" disk\n    # info \"Battery\" battery\n    # info \"Song\" song\n    # [[ \"$player\" ]] && prin \"Music Player\" \"$player\"\n    # info \"Local IP\" local_ip\n    # info \"Public IP\" public_ip\n    # info \"Users\" users\n    # info \"Locale\" locale  # This only works on glibc systems.\n    #~/.config/neofetch/hex-block\n    #printf \"$(bash ~/.config/neofetch/panes)\"\n    #info cols\n}\n\n\n# Kernel\n\n\n# Shorten the output of the kernel function.\n#\n# Default:  'on'\n# Values:   'on', 'off'\n# Flag:     --kernel_shorthand\n# Supports: Everything except *BSDs (except PacBSD and PC-BSD)\n#\n# Example:\n# on:  '4.8.9-1-ARCH'\n# off: 'Linux 4.8.9-1-ARCH'\nkernel_shorthand=\"on\"\n\n\n# Distro\n\n\n# Shorten the output of the distro function\n#\n# Default:  'off'\n# Values:   'on', 'tiny', 'off'\n# Flag:     --distro_shorthand\n# Supports: Everything except Windows and Haiku\ndistro_shorthand=\"tiny\"\n\n# Show/Hide OS Architecture.\n# Show 'x86_64', 'x86' and etc in 'Distro:' output.\n#\n# Default: 'on'\n# Values:  'on', 'off'\n# Flag:    --os_arch\n#\n# Example:\n# on:  'Arch Linux x86_64'\n# off: 'Arch Linux'\nos_arch=\"off\"\n\n\n# Uptime\n\n\n# Shorten the output of the uptime function\n#\n# Default: 'on'\n# Values:  'on', 'tiny', 'off'\n# Flag:    --uptime_shorthand\n#\n# Example:\n# on:   '2 days, 10 hours, 3 mins'\n# tiny: '2d 10h 3m'\n# off:  '2 days, 10 hours, 3 minutes'\nuptime_shorthand=\"on\"\n\n\n# Memory\n\n\n# Show memory pecentage in output.\n#\n# Default: 'off'\n# Values:  'on', 'off'\n# Flag:    --memory_percent\n#\n# Example:\n# on:   '1801MiB / 7881MiB (22%)'\n# off:  '1801MiB / 7881MiB'\nmemory_percent=\"off\"\n\n\n# Packages\n\n\n# Show/Hide Package Manager names.\n#\n# Default: 'tiny'\n# Values:  'on', 'tiny' 'off'\n# Flag:    --package_managers\n#\n# Example:\n# on:   '998 (pacman), 8 (flatpak), 4 (snap)'\n# tiny: '908 (pacman, flatpak, snap)'\n# off:  '908'\npackage_managers=\"on\"\n\n\n# Shell\n\n\n# Show the path to $SHELL\n#\n# Default: 'off'\n# Values:  'on', 'off'\n# Flag:    --shell_path\n#\n# Example:\n# on:  '/bin/bash'\n# off: 'bash'\nshell_path=\"off\"\n\n# Show $SHELL version\n#\n# Default: 'on'\n# Values:  'on', 'off'\n# Flag:    --shell_version\n#\n# Example:\n# on:  'bash 4.4.5'\n# off: 'bash'\nshell_version=\"on\"\n\n\n# CPU\n\n\n# CPU speed type\n#\n# Default: 'bios_limit'\n# Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'.\n# Flag:    --speed_type\n# Supports: Linux with 'cpufreq'\n# NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value.\nspeed_type=\"bios_limit\"\n\n# CPU speed shorthand\n#\n# Default: 'off'\n# Values: 'on', 'off'.\n# Flag:    --speed_shorthand\n# NOTE: This flag is not supported in systems with CPU speed less than 1 GHz\n#\n# Example:\n# on:    'i7-6500U (4) @ 3.1GHz'\n# off:   'i7-6500U (4) @ 3.100GHz'\nspeed_shorthand=\"on\"\n\n# Enable/Disable CPU brand in output.\n#\n# Default: 'on'\n# Values:  'on', 'off'\n# Flag:    --cpu_brand\n#\n# Example:\n# on:   'Intel i7-6500U'\n# off:  'i7-6500U (4)'\ncpu_brand=\"off\"\n\n# CPU Speed\n# Hide/Show CPU speed.\n#\n# Default: 'on'\n# Values:  'on', 'off'\n# Flag:    --cpu_speed\n#\n# Example:\n# on:  'Intel i7-6500U (4) @ 3.1GHz'\n# off: 'Intel i7-6500U (4)'\ncpu_speed=\"on\"\n\n# CPU Cores\n# Display CPU cores in output\n#\n# Default: 'logical'\n# Values:  'logical', 'physical', 'off'\n# Flag:    --cpu_cores\n# Support: 'physical' doesn't work on BSD.\n#\n# Example:\n# logical:  'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores)\n# physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores)\n# off:      'Intel i7-6500U @ 3.1GHz'\ncpu_cores=\"logical\"\n\n# CPU Temperature\n# Hide/Show CPU temperature.\n# Note the temperature is added to the regular CPU function.\n#\n# Default: 'off'\n# Values:  'C', 'F', 'off'\n# Flag:    --cpu_temp\n# Supports: Linux, BSD\n# NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable\n#       coretemp kernel module. This only supports newer Intel processors.\n#\n# Example:\n# C:   'Intel i7-6500U (4) @ 3.1GHz [27.2°C]'\n# F:   'Intel i7-6500U (4) @ 3.1GHz [82.0°F]'\n# off: 'Intel i7-6500U (4) @ 3.1GHz'\ncpu_temp=\"off\"\n\n\n# GPU\n\n\n# Enable/Disable GPU Brand\n#\n# Default: 'on'\n# Values:  'on', 'off'\n# Flag:    --gpu_brand\n#\n# Example:\n# on:  'AMD HD 7950'\n# off: 'HD 7950'\ngpu_brand=\"off\"\n\n# Which GPU to display\n#\n# Default: 'all'\n# Values:  'all', 'dedicated', 'integrated'\n# Flag:    --gpu_type\n# Supports: Linux\n#\n# Example:\n# all:\n#   GPU1: AMD HD 7950\n#   GPU2: Intel Integrated Graphics\n#\n# dedicated:\n#   GPU1: AMD HD 7950\n#\n# integrated:\n#   GPU1: Intel Integrated Graphics\ngpu_type=\"all\"\n\n\n# Resolution\n\n\n# Display refresh rate next to each monitor\n# Default: 'off'\n# Values:  'on', 'off'\n# Flag:    --refresh_rate\n# Supports: Doesn't work on Windows.\n#\n# Example:\n# on:  '1920x1080 @ 60Hz'\n# off: '1920x1080'\nrefresh_rate=\"off\"\n\n\n# Gtk Theme / Icons / Font\n\n\n# Shorten output of GTK Theme / Icons / Font\n#\n# Default: 'off'\n# Values:  'on', 'off'\n# Flag:    --gtk_shorthand\n#\n# Example:\n# on:  'Numix, Adwaita'\n# off: 'Numix [GTK2], Adwaita [GTK3]'\ngtk_shorthand=\"on\"\n\n\n# Enable/Disable gtk2 Theme / Icons / Font\n#\n# Default: 'on'\n# Values:  'on', 'off'\n# Flag:    --gtk2\n#\n# Example:\n# on:  'Numix [GTK2], Adwaita [GTK3]'\n# off: 'Adwaita [GTK3]'\ngtk2=\"on\"\n\n# Enable/Disable gtk3 Theme / Icons / Font\n#\n# Default: 'on'\n# Values:  'on', 'off'\n# Flag:    --gtk3\n#\n# Example:\n# on:  'Numix [GTK2], Adwaita [GTK3]'\n# off: 'Numix [GTK2]'\ngtk3=\"on\"\n\n\n# IP Address\n\n\n# Website to ping for the public IP\n#\n# Default: 'http://ident.me'\n# Values:  'url'\n# Flag:    --ip_host\npublic_ip_host=\"http://ident.me\"\n\n# Public IP timeout.\n#\n# Default: '2'\n# Values:  'int'\n# Flag:    --ip_timeout\npublic_ip_timeout=2\n\n\n# Disk\n\n\n# Which disks to display.\n# The values can be any /dev/sdXX, mount point or directory.\n# NOTE: By default we only show the disk info for '/'.\n#\n# Default: '/'\n# Values:  '/', '/dev/sdXX', '/path/to/drive'.\n# Flag:    --disk_show\n#\n# Example:\n# disk_show=('/' '/dev/sdb1'):\n#      'Disk (/): 74G / 118G (66%)'\n#      'Disk (/mnt/Videos): 823G / 893G (93%)'\n#\n# disk_show=('/'):\n#      'Disk (/): 74G / 118G (66%)'\n#\ndisk_show=('/')\n\n# Disk subtitle.\n# What to append to the Disk subtitle.\n#\n# Default: 'mount'\n# Values:  'mount', 'name', 'dir'\n# Flag:    --disk_subtitle\n#\n# Example:\n# name:   'Disk (/dev/sda1): 74G / 118G (66%)'\n#         'Disk (/dev/sdb2): 74G / 118G (66%)'\n#\n# mount:  'Disk (/): 74G / 118G (66%)'\n#         'Disk (/mnt/Local Disk): 74G / 118G (66%)'\n#         'Disk (/mnt/Videos): 74G / 118G (66%)'\n#\n# dir:    'Disk (/): 74G / 118G (66%)'\n#         'Disk (Local Disk): 74G / 118G (66%)'\n#         'Disk (Videos): 74G / 118G (66%)'\ndisk_subtitle=\"dir\"\n\n\n# Song\n\n\n# Manually specify a music player.\n#\n# Default: 'auto'\n# Values:  'auto', 'player-name'\n# Flag:    --music_player\n#\n# Available values for 'player-name':\n#\n# amarok\n# audacious\n# banshee\n# bluemindo\n# clementine\n# cmus\n# deadbeef\n# deepin-music\n# dragon\n# elisa\n# exaile\n# gnome-music\n# gmusicbrowser\n# gogglesmm\n# guayadeque\n# iTunes\n# juk\n# lollypop\n# mocp\n# mopidy\n# mpd\n# netease-cloud-music\n# pogo\n# pragha\n# qmmp\n# quodlibet\n# rhythmbox\n# sayonara\n# smplayer\n# spotify\n# strawberry\n# tomahawk\n# vlc\n# xmms2d\n# xnoise\n# yarock\nmusic_player=\"auto\"\n\n# Format to display song information.\n#\n# Default: '%artist% - %album% - %title%'\n# Values:  '%artist%', '%album%', '%title%'\n# Flag:    --song_format\n#\n# Example:\n# default: 'Song: Jet - Get Born - Sgt Major'\nsong_format=\"%artist% - %album% - %title%\"\n\n# Print the Artist, Album and Title on separate lines\n#\n# Default: 'off'\n# Values:  'on', 'off'\n# Flag:    --song_shorthand\n#\n# Example:\n# on:  'Artist: The Fratellis'\n#      'Album: Costello Music'\n#      'Song: Chelsea Dagger'\n#\n# off: 'Song: The Fratellis - Costello Music - Chelsea Dagger'\nsong_shorthand=\"off\"\n\n# 'mpc' arguments (specify a host, password etc).\n#\n# Default:  ''\n# Example: mpc_args=(-h HOST -P PASSWORD)\nmpc_args=()\n\n\n# Text Colors\n\n\n# Text Colors\n#\n# Default:  'distro'\n# Values:   'distro', 'num' 'num' 'num' 'num' 'num' 'num'\n# Flag:     --colors\n#\n# Each number represents a different part of the text in\n# this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info'\n#\n# Example:\n# colors=(distro)      - Text is colored based on Distro colors.\n# colors=(4 6 1 8 8 6) - Text is colored in the order above.\ncolors=(5 4 8 6 8 7)\n\n\n# Text Options\n\n\n# Toggle bold text\n#\n# Default:  'on'\n# Values:   'on', 'off'\n# Flag:     --bold\nbold=\"on\"\n\n# Enable/Disable Underline\n#\n# Default:  'on'\n# Values:   'on', 'off'\n# Flag:     --underline\nunderline_enabled=\"on\"\n\n# Underline character\n#\n# Default:  '-'\n# Values:   'string'\n# Flag:     --underline_char\nunderline_char=\"─\"\n\n\n# Info Separator\n# Replace the default separator with the specified string.\n#\n# Default:  ':'\n# Flag:     --separator\n#\n# Example:\n# separator=\"->\":   'Shell-> bash'\n# separator=\" =\":   'WM = dwm'\nseparator=\" ● \"  #\" ⟫\"\n\n\n# Color Blocks\n\n\n# Color block range\n# The range of colors to print.\n#\n# Default:  '0', '15'\n# Values:   'num'\n# Flag:     --block_range\n#\n# Example:\n#\n# Display colors 0-7 in the blocks.  (8 colors)\n# neofetch --block_range 0 7\n#\n# Display colors 0-15 in the blocks. (16 colors)\n# neofetch --block_range 0 15\nblock_range=(0 15)\n\n# Toggle color blocks\n#\n# Default:  'on'\n# Values:   'on', 'off'\n# Flag:     --color_blocks\ncolor_blocks=\"on\"\n\n# Color block width in spaces\n#\n# Default:  '3'\n# Values:   'num'\n# Flag:     --block_width\nblock_width=3\n\n# Color block height in lines\n#\n# Default:  '1'\n# Values:   'num'\n# Flag:     --block_height\nblock_height=1\n\n\n# Progress Bars\n\n\n# Bar characters\n#\n# Default:  '-', '='\n# Values:   'string', 'string'\n# Flag:     --bar_char\n#\n# Example:\n# neofetch --bar_char 'elapsed' 'total'\n# neofetch --bar_char '-' '='\nbar_char_elapsed=\"-\"\nbar_char_total=\"=\"\n\n# Toggle Bar border\n#\n# Default:  'on'\n# Values:   'on', 'off'\n# Flag:     --bar_border\nbar_border=\"on\"\n\n# Progress bar length in spaces\n# Number of chars long to make the progress bars.\n#\n# Default:  '15'\n# Values:   'num'\n# Flag:     --bar_length\nbar_length=15\n\n# Progress bar colors\n# When set to distro, uses your distro's logo colors.\n#\n# Default:  'distro', 'distro'\n# Values:   'distro', 'num'\n# Flag:     --bar_colors\n#\n# Example:\n# neofetch --bar_colors 3 4\n# neofetch --bar_colors distro 5\nbar_color_elapsed=\"distro\"\nbar_color_total=\"distro\"\n\n\n# Info display\n# Display a bar with the info.\n#\n# Default: 'off'\n# Values:  'bar', 'infobar', 'barinfo', 'off'\n# Flags:   --cpu_display\n#          --memory_display\n#          --battery_display\n#          --disk_display\n#\n# Example:\n# bar:     '[---=======]'\n# infobar: 'info [---=======]'\n# barinfo: '[---=======] info'\n# off:     'info'\ncpu_display=\"off\"\nmemory_display=\"off\"\nbattery_display=\"off\"\ndisk_display=\"off\"\n\n\n# Backend Settings\n\n\n# Image backend.\n#\n# Default:  'ascii'\n# Values:   'ascii', 'caca', 'chafa', 'jp2a', 'iterm2', 'off',\n#           'termpix', 'pixterm', 'tycat', 'w3m', 'kitty', \"ueberzug\"\n# Flag:     --backend\nimage_backend=\"ueberzug\"\n\n# Image Source\n#\n# Which image or ascii file to display.\n#\n# Default:  'auto'\n# Values:   'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/'\n#           'command output (neofetch --ascii \"$(fortune | cowsay -W 30)\")'\n# Flag:     --source\n#\n# NOTE: 'auto' will pick the best image source for whatever image backend is used.\n#       In ascii mode, distro ascii art will be used and in an image mode, your\n#       wallpaper will be used.\nimage_source=\"/home/barbarossa/.config/neofetch/chun-lo-deat2-crop.png\" #\"/home/barbarossa/.config/neofetch/dna_ascii\"\n\n\n# Ascii Options\n\n\n# Ascii distro\n# Which distro's ascii art to display.\n#\n# Default: 'auto'\n# Values:  'auto', 'distro_name'\n# Flag:    --ascii_distro\n#\n# NOTE: Arch and Ubuntu have 'old' logo variants.\n#       Change this to 'arch_old' or 'ubuntu_old' to use the old logos.\n# NOTE: Ubuntu has flavor variants.\n#       Change this to 'Lubuntu', 'Xubuntu', 'Ubuntu-GNOME' or 'Ubuntu-Budgie' to use the flavors.\n# NOTE: Arch, Crux and Gentoo have a smaller logo variant.\n#       Change this to 'arch_small', 'crux_small' or 'gentoo_small' to use the small logos.\nascii_distro=\"auto\"\n\n# Ascii Colors\n#\n# Default:  'distro'\n# Values:   'distro', 'num' 'num' 'num' 'num' 'num' 'num'\n# Flag:     --ascii_colors\n#\n# Example:\n# ascii_colors=(distro)      - Ascii is colored based on Distro colors.\n# ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors.\nascii_colors=(5 4 3 4 5 6)\n\n# Bold ascii logo\n# Whether or not to bold the ascii logo.\n#\n# Default: 'on'\n# Values:  'on', 'off'\n# Flag:    --ascii_bold\nascii_bold=\"on\"\n\n\n# Image Options\n\n\n# Image loop\n# Setting this to on will make neofetch redraw the image constantly until\n# Ctrl+C is pressed. This fixes display issues in some terminal emulators.\n#\n# Default:  'off'\n# Values:   'on', 'off'\n# Flag:     --loop\nimage_loop=\"off\"\n\n# Thumbnail directory\n#\n# Default: '~/.cache/thumbnails/neofetch'\n# Values:  'dir'\nthumbnail_dir=\"${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch\"\n\n# Crop mode\n#\n# Default:  'normal'\n# Values:   'normal', 'fit', 'fill'\n# Flag:     --crop_mode\n#\n# See this wiki page to learn about the fit and fill options.\n# https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F\ncrop_mode=\"normal\"\n\n# Crop offset\n# Note: Only affects 'normal' crop mode.\n#\n# Default:  'center'\n# Values:   'northwest', 'north', 'northeast', 'west', 'center'\n#           'east', 'southwest', 'south', 'southeast'\n# Flag:     --crop_offset\ncrop_offset=\"center\"\n\n# Image size\n# The image is half the terminal width by default.\n#\n# Default: 'auto'\n# Values:  'auto', '00px', '00%', 'none'\n# Flags:   --image_size\n#          --size\nimage_size=\"440px\"\n\n# Gap between image and text\n#\n# Default: '3'\n# Values:  'num', '-num'\n# Flag:    --gap\ngap=5\n\n# Image offsets\n# Only works with the w3m backend.\n#\n# Default: '0'\n# Values:  'px'\n# Flags:   --xoffset\n#          --yoffset\nyoffset=0\nxoffset=0\n\n# Image background color\n# Only works with the w3m backend.\n#\n# Default: ''\n# Values:  'color', 'blue'\n# Flag:    --bg_color\nbackground_color=\n\n\n# Misc Options\n\n# Stdout mode\n# Turn off all colors and disables image backend (ASCII/Image).\n# Useful for piping into another command.\n# Default: 'off'\n# Values: 'on', 'off'\nstdout=\"off\"\n"
  },
  {
    "path": ".config/paru/paru.conf",
    "content": "#########################\n#.-----.---.-.----.--.--.\n#|  _  |  _  |   _|  |  |\n#|   __|___._|__| |_____|\n#|__|                    \n#########################                        \n#\n# $PARU_CONF\n# /etc/paru.conf\n# ~/.config/paru/paru.conf\n#\n# See the paru.conf(5) manpage for options\n\n#\n# GENERAL OPTIONS\n#\n[options]\nPgpFetch\nDevel\nProvides\nDevelSuffixes = -git -cvs -svn -bzr -darcs -always\nBottomUp\nRemoveMake\nSudoLoop\n#UseAsk\nCombinedUpgrade\nCleanAfter\n#UpgradeMenu\nNewsOnUpgrade\n\n#LocalRepo\n#Chroot\n#MovePkgs\n\n#\n# Binary OPTIONS\n#\n[bin]\n#FileManager = vifm\nBat = bat\n#MFlags = --skippgpcheck\n#Sudo = doas\n"
  },
  {
    "path": ".config/picom/picom.conf",
    "content": "# vim: filetype=conf\n#\n#################################\n#       _\n# _ __ (_) ___ ___  _ __ ___\n#| '_ \\| |/ __/ _ \\| '_ ` _ \\\n#| |_) | | (_| (_) | | | | | |\n#| .__/|_|\\___\\___/|_| |_| |_|\n#|_|\n#################################\n\n\nbackend = \"glx\";\nglx-no-stencil = true;\nglx-no-rebind-pixmap = true;\nxrender-sync-fence = true;\n#force-win-blend = false;\nunredir-if-possible = true;\n#resize-damage = 7;\n#vsync = true;\n\ncorner-radius = 12.0;\nround-borders = 1;\nrounded-corners-exclude = [\n  \"class_g = 'dunst'\",\n  \"class_g = 'Polybar'\",\n  \"class_g = 'Rofi'\", \n  \"QTILE_INTERNAL:32c = 1\"\n  #\"! name~=''\", \n];\nrounded-borders-exclude = [\n  \"class_g = 'dunst'\",\n  \"class_g = 'Polybar'\",\n  \"class_g = 'Rofi'\",\n  \"QTILE_INTERNAL:32c = 1\"\n  #\"! name~=''\", \n]\n\n #Shadow\nshadow = true;\t\t\t# Enabled client-side shadows on windows.\nshadow-radius = 40;\t\t# The blur radius for shadows. (default 12)\nshadow-offset-x = -40;\t\t# The left offset for shadows. (default -15)\nshadow-offset-y = -20;\t\t# The top offset for shadows. (default -15)\nshadow-opacity = 0.35;\nshadow-exclude = [\n \"class_g = 'Plank'\",\n \"! name~=''\",\n \"class_g = 'conky'\",\n \"name = 'cpt_frame_window'\",\n \"class_g = 'slop'\",\n \"name = 'lead'\",\n \"name = 'Eww - border1'\",\n \"name = 'Eww - border2'\",\n #\"name = 'Eww - border'\",\n \"class_g = 'firefox' && argb\",\n #\"QTILE_INTERNAL:32c = 1\",\n \"class_g = 'i3lock'\",\n \"class_g = 'stalonetray'\",\n #\"name = 'polybar-bar_DP-4'\",\n \"name = 'Polybar tray window'\",\n \"name = 'polybar-tray_DP-4'\"\n];\n\n# Fading\nfading = true; # Fade windows during opacity changes.\nfade-delta = 5; # The time between steps in a fade in milliseconds. (default 10).\nfade-in-step = 0.03; # Opacity change between steps while fading in. (default 0.028).\nfade-out-step = 0.03; # Opacity change between steps while fading out. (default 0.03).\n#no-fading-openclose = true; # Fade windows in/out when opening/closing\n\n## Opacity\n#inactive-opacity = 0.90;\n#active-opacity = 1;\n#frame-opacity = 1;\n#inactive-opacity-override = false;\n#inactive-dim = 0.2;\n#inactive-dim-fixed = true;\n## Opacity rules, do \"xprop | grep WM_CLASS\" to find class name\n#opacity-rule = [\"100:class_g = 'firefox'\", \"100:class_g = 'Chromium'\", \"100:class_g = 'Polybar'\", \"100:class_g = 'Thunderbird'\", \"100:name *? = 'i3lock'\", \"90:class_i = 'urxvt'\", \"100:class_i = 'cmatrixterm'\", \"90:class_i = 'dropdown'\", \"100:class_g = 'Zathura'\", \"100:class_g = 'Emacs'\", \"100:class_g = 'mpv'\", \"100:class_g = 'Joplin'\", \"90:class_i = 'applauncher'\", \"90:class_i = 'greenclip'\", \"90:class_i = 'bsphidwins'\", \"90:class_i = 'findFiles'\", \"90:class_i = 'sxhkdhelp'\", \"90:class_i = 'splatmoji'\", \"90:class_i = 'powermenu'\", \"90:class_i = 'fzfnotes'\", \"90:class_i = 'google'\", \"90:class_i = 'Spotify'\", \"90:class_g *? = 'xob'\", \"90:class_i = 'notifHistory'\"];\n\ndetect-client-opacity = true; # This prevents opacity being ignored for some apps. For example without this enabled my xfce4-notifyd is 100% opacity no matter what.\n\nopacity-rule = [\n  #\"0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'\",\n  #\"40:class_g = 'Bspwm' && \n  \"40:class_i = 'presel_feedback'\",\n];\n\n# Blur\nblur-method = \"dual_kawase\";\nblur-strength = 10;\nblur-background = true;\n#blur-background-frame = true;\nblur-background-fixed = true;\nblur-background-exclude = [\n  #\"class_g = 'Plank'\", \n  \"class_g = 'slop'\", \n  #\"class_g != 'i3lock'\",\n  #\"name != 'rofi - ' && \n  \"class_i != 'presel_feedback'\",\n]\n\n# Animation settings\ntransition-length = 300;\ntransition-pow-x = 0.7;\ntransition-pow-y = 0.7;\ntransition-pow-w = 0.7;\ntransition-pow-h = 0.7;\nsize-transition = true;\n\nanimations = true;\nanimation-for-open-window = \"none\";\nanimation-delta = 10;\n\n# Window type settings\nwintypes:\n{\n  tooltip = { fade = true; full-shadow = true; opacity = 1; };\n  dock = { full-shadow = true;};\n  popup_menu = { opacity = 1; full-shadow = true; };\n  normal = {full-shadow = true;};\n  dropdown_menu = { opacity = 1; full-shadow = true; }\n};\n\n"
  },
  {
    "path": ".config/qtile/autostart.sh",
    "content": "#!/usr/bin/env bash\nset -euo pipefail\n\nplayerctld daemon\nblueberry-tray &\ngreenclip daemon &\nmkfifo /tmp/vol && echo \"$(pulsemixer --get-volume | awk '{print $1}')\" > /tmp/vol &\nmkfifo /tmp/vol-icon && ~/.config/qtile/eww_vol_icon.sh &\n~/.config/eww/scripts/getweather &\n#default_startup.sh &\n"
  },
  {
    "path": ".config/qtile/config.py",
    "content": "# -*- coding: utf-8 -*-\nimport os\nimport subprocess\nfrom typing import List  # noqa: F401\nimport psutil\n\nfrom libqtile.config import (\n    Key,\n    Screen,\n    Group,\n    Drag,\n    Click,\n    ScratchPad,\n    DropDown,\n    Match,\n)\nfrom libqtile import layout, bar, widget, hook\nfrom libqtile.lazy import lazy\nfrom libqtile import qtile\nfrom qtile_extras import widget\nfrom qtile_extras.widget.decorations import BorderDecoration\nfrom qtile_extras.widget.decorations import RectDecoration\n\n# from plasma import Plasma\n\n\nmod = \"mod4\"\nterminal = \"alacritty\"\n\n# Resize functions for bsp layout\n\n\ndef resize(qtile, direction):\n    layout = qtile.current_layout\n    child = layout.current\n    parent = child.parent\n\n    while parent:\n        if child in parent.children:\n            layout_all = False\n\n            if (direction == \"left\" and parent.split_horizontal) or (\n                direction == \"up\" and not parent.split_horizontal\n            ):\n                parent.split_ratio = max(5, parent.split_ratio - layout.grow_amount)\n                layout_all = True\n            elif (direction == \"right\" and parent.split_horizontal) or (\n                direction == \"down\" and not parent.split_horizontal\n            ):\n                parent.split_ratio = min(95, parent.split_ratio + layout.grow_amount)\n                layout_all = True\n\n            if layout_all:\n                layout.group.layout_all()\n                break\n\n        child = parent\n        parent = child.parent\n\n\n@lazy.function\ndef resize_left(qtile):\n    current = qtile.current_layout.name\n    layout = qtile.current_layout\n    if current == \"bsp\":\n        resize(qtile, \"left\")\n    elif current == \"columns\":\n        layout.cmd_grow_left()\n\n\n@lazy.function\ndef resize_right(qtile):\n    current = qtile.current_layout.name\n    layout = qtile.current_layout\n    if current == \"bsp\":\n        resize(qtile, \"right\")\n    elif current == \"columns\":\n        layout.cmd_grow_right()\n\n\n@lazy.function\ndef resize_up(qtile):\n    current = qtile.current_layout.name\n    layout = qtile.current_layout\n    if current == \"bsp\":\n        resize(qtile, \"up\")\n    elif current == \"columns\":\n        layout.cmd_grow_up()\n\n\n@lazy.function\ndef resize_down(qtile):\n    current = qtile.current_layout.name\n    layout = qtile.current_layout\n    if current == \"bsp\":\n        resize(qtile, \"down\")\n    elif current == \"columns\":\n        layout.cmd_grow_down()\n\n\ndef show_keys():\n    key_help = \"\"\n    for k in keys:\n        mods = \"\"\n\n        for m in k.modifiers:\n            if m == \"mod4\":\n                mods += \"Super + \"\n            else:\n                mods += m.capitalize() + \" + \"\n\n        if len(k.key) > 1:\n            mods += k.key.capitalize()\n        else:\n            mods += k.key\n\n        key_help += \"{:<30} {}\".format(mods, k.desc + \"\\n\")\n\n    return key_help\n\n\n# Padding\ndef padding(qtile, direction):\n    if direction == \"+\":\n        qtile.current_screen.left.size += 18\n        qtile.current_screen.top.size += 9\n        qtile.current_screen.right.size += 18\n        qtile.current_screen.bottom.size += 9\n        qtile.current_group.layout_all()\n    elif direction == \"-\":\n        qtile.current_screen.left.size -= 18\n        qtile.current_screen.top.size -= 9\n        qtile.current_screen.right.size -= 18\n        qtile.current_screen.bottom.size -= 9\n        qtile.current_group.layout_all()\n    else:\n        qtile.current_screen.left.size = 18\n        qtile.current_screen.top.size = 77\n        qtile.current_screen.right.size = 18\n        qtile.current_screen.bottom.size = 18\n        qtile.current_layout.margin = 9\n        qtile.current_group.layout_all()\n\n\n@lazy.function\ndef inc_pad(qtile):\n    padding(qtile, \"+\")\n\n\n@lazy.function\ndef dec_pad(qtile):\n    padding(qtile, \"-\")\n\n\n@lazy.function\ndef reset_pad(qtile):\n    padding(qtile, \"reset\")\n\n\n@lazy.function\ndef inc_margins(qtile):\n    qtile.current_layout.margin += 9\n    qtile.current_group.layout_all()\n\n\n@lazy.function\ndef dec_margins(qtile):\n    qtile.current_layout.margin -= 9\n    qtile.current_group.layout_all()\n\n\nkeys = [\n    # The essentials\n    Key([mod], \"Return\", lazy.spawn(terminal), desc=\"Launches My Terminal\"),\n    Key(\n        [mod],\n        \"d\",\n        lazy.group[\"scratchpad\"].dropdown_toggle(\"term\"),\n        desc=\"Toggle dropdown terminal\",\n    ),\n    Key(\n        [mod],\n        \"e\",\n        lazy.spawn(\"rofi -show drun\"),\n        desc=\"Rofi app launcher\",\n    ),\n    Key([mod], \"Tab\", lazy.next_layout(), desc=\"Toggle forward layout\"),\n    Key([mod, \"shift\"], \"Tab\", lazy.prev_layout(), desc=\"Toggle last layout\"),\n    Key([mod], \"q\", lazy.window.kill(), desc=\"Kill active window\"),\n    Key(\n        [mod, \"shift\"],\n        \"r\",\n        lazy.restart(),\n        # lazy.spawn(\"reopen_eww.sh\"),\n        desc=\"Restart Qtile\",\n    ),\n    Key(\n        [mod, \"shift\"],\n        \"e\",\n        lazy.spawn(\"power\"),\n        desc=\"Power Menu\",\n    ),\n    Key(\n        [mod, \"shift\"],\n        \"a\",\n        lazy.spawn(\"emacs /home/barbarossa/.config/qtile/config.py\"),\n        desc=\"Config qtile\",\n    ),\n    Key(\n        [mod, \"control\", \"mod1\"],\n        \"grave\",\n        lazy.spawn(\"jgmenu --csv-file=/home/barbarossa/.config/jgmenu/qtile.csv\"),\n        desc=\"Mouse menu (thumb button)\",\n    ),\n    # Switch focus to specific monitor (out of three)\n    # Key([mod], \"w\", lazy.to_screen(0), desc=\"Keyboard focus to monitor 1\"),\n    # Key([mod], \"e\", lazy.to_screen(1), desc=\"Keyboard focus to monitor 2\"),\n    # Key([mod], \"r\", lazy.to_screen(2), desc=\"Keyboard focus to monitor 3\"),\n    # Switch focus of monitors\n    # Key([mod], \"period\", lazy.next_screen(), desc=\"Move focus to next monitor\"),\n    # Key([mod], \"comma\", lazy.prev_screen(), desc=\"Move focus to prev monitor\"),\n    # Window controls\n    # Change Focus\n    Key(\n        [mod], \"Down\", lazy.layout.down(), desc=\"Move focus down in current stack pane\"\n    ),\n    Key([mod], \"Up\", lazy.layout.up(), desc=\"Move focus up in current stack pane\"),\n    Key(\n        [mod],\n        \"Left\",\n        lazy.layout.left(),\n        # lazy.layout.next(),\n        desc=\"Move focus left in current stack pane\",\n    ),\n    Key(\n        [mod],\n        \"Right\",\n        lazy.layout.right(),\n        # lazy.layout.previous(),\n        desc=\"Move focus right in current stack pane\",\n    ),\n    # Move windows within group\n    Key(\n        [mod, \"shift\"],\n        \"Down\",\n        lazy.layout.shuffle_down(),\n        lazy.layout.move_down(),\n        desc=\"Move windows down in current stack\",\n    ),\n    Key(\n        [mod, \"shift\"],\n        \"Up\",\n        lazy.layout.shuffle_up(),\n        lazy.layout.move_up(),\n        desc=\"Move windows up in current stack\",\n    ),\n    Key(\n        [mod, \"shift\"],\n        \"Left\",\n        lazy.layout.shuffle_left(),\n        # lazy.layout.swap_left(),\n        # lazy.layout.client_to_previous(),\n        lazy.layout.move_left(),\n        desc=\"Move windows left in current stack\",\n    ),\n    Key(\n        [mod, \"shift\"],\n        \"Right\",\n        lazy.layout.shuffle_right(),\n        # lazy.layout.swap_right(),\n        # lazy.layout.client_to_next(),\n        lazy.layout.move_right(),\n        desc=\"Move windows right in the current stack\",\n    ),\n    # Flip layouts for bsp\n    Key(\n        [mod, \"control\"],\n        \"Down\",\n        lazy.layout.flip_down(),\n        # lazy.layout.section_down(),\n        # lazy.layout.integrate_down(),\n        desc=\"Flip layout down\",\n    ),\n    Key(\n        [mod, \"control\"],\n        \"Up\",\n        lazy.layout.flip_up(),\n        # lazy.layout.section_up(),\n        # lazy.layout.integrate_up(),\n        desc=\"Flip layout up\",\n    ),\n    Key(\n        [mod, \"control\"],\n        \"Left\",\n        lazy.layout.flip_left(),\n        lazy.layout.swap_column_left(),\n        # lazy.layout.integrate_left(),\n        desc=\"Flip layout left\",\n    ),\n    Key(\n        [mod, \"control\"],\n        \"Right\",\n        lazy.layout.flip_right(),\n        lazy.layout.swap_column_left(),\n        # lazy.layout.integrate_right(),\n        desc=\"Flip layout right\",\n    ),\n    # Resize windows\n    Key(\n        [mod, \"mod1\"],\n        \"Left\",\n        resize_left,\n        # lazy.layout.grow_width(-30),\n        desc=\"Resize window left\",\n    ),\n    Key(\n        [mod, \"mod1\"],\n        \"Right\",\n        resize_right,\n        # lazy.layout.grow_width(30),\n        desc=\"Resize window Right\",\n    ),\n    Key(\n        [mod, \"mod1\"],\n        \"Up\",\n        resize_up,\n        # lazy.layout.grow_height(30),\n        desc=\"Resize windows upward\",\n    ),\n    Key(\n        [mod, \"mod1\"],\n        \"Down\",\n        resize_down,\n        # lazy.layout.grow_height(-30),\n        desc=\"Resize windows downward\",\n    ),\n    Key(\n        [mod],\n        \"n\",\n        lazy.layout.normalize(),\n        # lazy.layout.reset_size(),\n        desc=\"Normalize window size ratios\",\n    ),\n    # Window States\n    Key(\n        [mod],\n        \"m\",\n        lazy.window.toggle_maximize(),\n        desc=\"Toggle window between minimum and maximum sizes\",\n    ),\n    Key([mod, \"shift\"], \"f\", lazy.window.toggle_fullscreen(), desc=\"Toggle fullscreen\"),\n    Key(\n        [mod],\n        \"t\",\n        lazy.window.toggle_floating(),\n        desc=\"Toggle floating on focused window\",\n    ),\n    Key(\n        [mod],\n        \"h\",\n        lazy.window.toggle_minimize(),\n        desc=\"Toggle minimization on focused window\",\n    ),\n    Key(\n        [mod, \"shift\"],\n        \"h\",\n        lazy.group.unminimize_all(),\n        desc=\"Unminimize all windows on current group\",\n    ),\n    # Adjust paddings/margins\n    Key([mod, \"mod1\"], \"equal\", reset_pad, desc=\"Reset padding\"),\n    Key([mod], \"minus\", dec_pad, desc=\"Decrease padding\"),\n    Key([mod], \"equal\", inc_pad, desc=\"Increase padding\"),\n    Key([mod, \"shift\"], \"minus\", dec_margins, desc=\"Decrease layout margins\"),\n    Key([mod, \"shift\"], \"equal\", inc_margins, desc=\"Increase layout margins\"),\n    # Plasma controls\n    # Key(\n    # \t[mod],\n    # \t\"o\",\n    # \tlazy.layout.mode_horizontal(),\n    # \tdesc=\"Horizontal Mode in Plasma Layout\",\n    # ),\n    # Key(\n    # \t[mod, \"shift\"],\n    # \t\"o\",\n    # \tlazy.layout.mode_horizontal_split(),\n    # \tdesc=\"Horizontal Split mode in Plasma Layout\",\n    # ),\n    # Key(\n    # \t[mod],\n    # \t\"u\",\n    # \tlazy.layout.mode_vertical(),\n    # \tdesc=\"Vertical Mode in Plasma Layout\",\n    # ),\n    # Key(\n    # \t[mod, \"shift\"],\n    # \t\"u\",\n    # \tlazy.layout.mode_vertical_split(),\n    # \tdesc=\"Vertical Split Mode in Plasma Layout\",\n    # ),\n    # Split direction in Bsp/ Split stack in columns\n    Key(\n        [mod],\n        \"s\",\n        lazy.layout.toggle_split(),\n        desc=\"Toggle between split and unsplit sides of stack\",\n    ),\n    # Floating controls\n    Key(\n        [mod],\n        \"bracketleft\",\n        lazy.group.prev_window(),\n        lazy.window.bring_to_front(),\n        desc=\"Cycle previous floating window\",\n    ),\n    Key(\n        [mod],\n        \"bracketright\",\n        lazy.group.next_window(),\n        lazy.window.bring_to_front(),\n        desc=\"Cycle next floating windows\",\n    ),\n    # TreeTab controls\n    # Key(\n    # \t[mod],\n    # \t\"v\",\n    # \tlazy.layout.expand_branch(),\n    # \tdesc=\"Expand a branch in the treetab panel\",\n    # ),\n    # Key(\n    # \t[mod, \"shift\"],\n    # \t\"v\",\n    # \tlazy.layout.collapse_branch(),\n    # \tdesc=\"Collapse a branch in the treetab panel\",\n    # ),\n    ### Misc. Commands\n    Key(\n        [mod],\n        \"b\",\n        lazy.spawn(\"./.config/qtile/toggle_eww.sh\"),\n        desc=\"Toggle bottom eww bar visibility\",\n    ),\n    Key(\n        [mod, \"shift\"],\n        \"b\",\n        lazy.spawn(\"toggle_qbar.sh\"),\n        desc=\"Toggle visibility of qtile bar\",\n    ),\n    Key(\n        [mod],\n        \"backslash\",\n        lazy.spawn(\"nautilus\"),\n        desc=\"Launch nautilus\",\n    ),\n    Key([mod, \"shift\"], \"m\", lazy.spawn(\"splatmoji copy\"), desc=\"*moji selector\"),\n    Key(\n        [mod],\n        \"w\",\n        lazy.spawn(\n            \"rofi -theme ~/.config/rofi/configTall.rasi -show window -window-format '{c} {t}' -window-thumbnail\"\n        ),\n        desc=\"Rofi window select\",\n    ),\n    Key(\n        [mod, \"shift\"],\n        \"w\",\n        lazy.spawn(\n            \"rofi -theme ~/.config/rofi/configTall.rasi -show windowcd -window-format '{c} {t}' -window-thumbnail\"\n        ),\n        desc=\"Rofi window select for current desktop\",\n    ),\n    Key(\n        [mod, \"control\"],\n        \"w\",\n        lazy.spawn(\"nc_flash_window\"),\n        desc=\"Flash currently focused window\",\n    ),\n    Key(\n        [mod],\n        \"space\",\n        lazy.spawn(\"rofi_notes.sh\"),\n        desc=\"Rofi quick notes\",\n    ),\n    Key(\n        [],\n        \"Print\",\n        lazy.spawn(\"prtscr\"),\n        desc=\"Print Screen\",\n    ),\n    Key(\n        [mod],\n        \"Print\",\n        lazy.spawn(\"prtregion -d\"),\n        desc=\"Print region of screen\",\n    ),\n    Key(\n        [mod, \"shift\"],\n        \"Print\",\n        lazy.spawn(\"prtregion -c\"),\n        desc=\"Print region of screen to clipboard\",\n    ),\n    Key(\n        [],\n        \"XF86AudioRaiseVolume\",\n        lazy.spawn(\"./.config/qtile/eww_vol.sh up\"),\n        desc=\"Increase volume\",\n    ),\n    Key(\n        [],\n        \"XF86AudioLowerVolume\",\n        lazy.spawn(\"./.config/qtile/eww_vol.sh down\"),\n        desc=\"Decrease volume\",\n    ),\n    Key(\n        [],\n        \"XF86AudioMute\",\n        lazy.spawn(\"./.config/qtile/eww_vol.sh mute\"),\n        desc=\"Toggle mute\",\n    ),\n    Key(\n        [mod],\n        \"XF86AudioRaiseVolume\",\n        lazy.spawn(\"vol pulsemic up\"),\n        desc=\"Increase mic volume\",\n    ),\n    Key(\n        [mod],\n        \"XF86AudioLowerVolume\",\n        lazy.spawn(\"vol pulsemic down\"),\n        desc=\"Decrease mic volume\",\n    ),\n    Key(\n        [mod],\n        \"XF86AudioMute\",\n        lazy.spawn(\"vol pulsemic mute\"),\n        desc=\"Toggle mic mute\",\n    ),\n    Key(\n        [mod],\n        \"F7\",\n        lazy.spawn(\"playerctl previous\"),\n        desc=\"Play last audio\",\n    ),\n    Key([mod], \"F8\", lazy.spawn(\"playerctl next\"), desc=\"Play next audio\"),\n    Key(\n        [mod], \"F5\", lazy.spawn(\"playerctl play-pause\"), desc=\"Toggle play/pause audio\"\n    ),\n    Key([mod], \"F6\", lazy.spawn(\"playerctl stop\"), desc=\"Stop audio\"),\n    Key(\n        [mod],\n        \"z\",\n        lazy.spawn(\n            \"rofi -show file-browser-extended -file-browser-show-hidden -theme ~/.config/rofi/configTall.rasi -file-browser-cmd 'xdg-open'\"\n        ),\n        desc=\"Rofi find files\",\n    ),\n    Key(\n        [mod, \"shift\"],\n        \"z\",\n        lazy.spawn(\"rofi-search.sh\"),\n        desc=\"Rofi google search\",\n    ),\n    Key(\n        [mod, \"control\"],\n        \"r\",\n        lazy.spawn(\"mp4\"),\n        desc=\"Record selected part of screen in mp4\",\n    ),\n    Key(\n        [mod, \"control\", \"shift\"],\n        \"r\",\n        lazy.spawn(\"gif\"),\n        desc=\"Record selected part of screen as gif\",\n    ),\n    Key(\n        [mod, \"shift\"],\n        \"p\",\n        lazy.spawn(\"togglepicom\"),\n        desc=\"Toggle picom\",\n    ),\n    Key([mod], \"x\", lazy.spawn(\"greenclip.sh\"), desc=\"Greenclip\"),\n    Key([mod, \"shift\"], \"c\", lazy.spawn(\"colorpick.sh\"), desc=\"Color picker\"),\n    Key(\n        [mod, \"control\"],\n        \"c\",\n        lazy.spawn(\"toggledunst\"),\n        desc=\"Toggle dunst\",\n    ),\n    Key(\n        [mod, \"mod1\"],\n        \"c\",\n        lazy.spawn(\n            \"sh -c 'xdotool mousemove --window \\\"$(xdotool getwindowfocus)\\\" --polar 0 0'\"\n        ),\n        desc=\"Teleport cursor to center of focused window\",\n    ),\n    Key(\n        [mod],\n        \"grave\",\n        lazy.spawn(\"rofi_notif_center.sh\"),\n        desc=\"Open notification center\",\n    ),\n    Key(\n        [],\n        \"XF86Calculator\",\n        lazy.spawn(\"io.elementary.calculator\"),\n        desc=\"Launch calculator\",\n    ),\n]\n\n\nkeys.extend(\n    [\n        Key(\n            [mod],\n            \"a\",\n            lazy.spawn(\n                \"sh -c 'echo \\\"\"\n                + show_keys()\n                + '\" | rofi -dmenu -theme ~/.config/rofi/configTall.rasi -i -p \"?\"\\''\n            ),\n            desc=\"Print keyboard bindings\",\n        ),\n    ]\n)\n\nworkspaces = [\n    {\"name\": \"\", \"key\": \"1\", \"matches\": [Match(wm_class=\"firefox\")], \"lay\": \"bsp\"},\n    {\n        \"name\": \"\",\n        \"key\": \"2\",\n        \"matches\": [\n            Match(wm_class=\"geary\"),\n            Match(wm_class=\"ptask\"),\n            Match(wm_class=\"io.elementary.calendar\"),\n        ],\n        \"lay\": \"bsp\",\n    },\n    {\"name\": \"\", \"key\": \"3\", \"matches\": [], \"lay\": \"bsp\"},\n    {\"name\": \"\", \"key\": \"4\", \"matches\": [Match(wm_class=\"emacs\")], \"lay\": \"bsp\"},\n    {\n        \"name\": \"\",\n        \"key\": \"5\",\n        \"matches\": [\n            Match(wm_class=\"joplin\"),\n            Match(wm_class=\"libreoffice\"),\n            Match(wm_class=\"evince\"),\n        ],\n        \"lay\": \"columns\",\n    },\n    {\n        \"name\": \"\",\n        \"key\": \"6\",\n        \"matches\": [\n            Match(wm_class=\"slack\"),\n            Match(wm_class=\"discord\"),\n            Match(wm_class=\"srain\"),\n        ],\n        \"lay\": \"bsp\",\n    },\n    {\n        \"name\": \"\",\n        \"key\": \"7\",\n        \"matches\": [Match(wm_class=\"lollypop\")],\n        \"lay\": \"bsp\",\n    },\n    {\"name\": \"\", \"key\": \"8\", \"matches\": [Match(wm_class=\"Steam\")], \"lay\": \"bsp\"},\n    {\n        \"name\": \"\",\n        \"key\": \"9\",\n        \"matches\": [Match(wm_class=\"org.gnome.Nautilus\")],\n        \"lay\": \"bsp\",\n    },\n    {\n        \"name\": \"\",\n        \"key\": \"0\",\n        \"matches\": [\n            Match(wm_class=\"lxappearance\"),\n            Match(wm_class=\"pavucontrol\"),\n        ],\n        \"lay\": \"floating\",\n    },\n]\n\ngroups = [\n    ScratchPad(\n        \"scratchpad\",\n        [\n            # define a drop down terminal.\n            DropDown(\n                \"term\",\n                \"alacritty --class dropdown -e tmux new -As Dropdown\",\n                height=0.6,\n                on_focus_lost_hide=False,\n                opacity=1,\n                warp_pointer=False,\n            ),\n        ],\n    ),\n]\n\nfor workspace in workspaces:\n    matches = workspace[\"matches\"] if \"matches\" in workspace else None\n    groups.append(Group(workspace[\"name\"], matches=matches, layout=workspace[\"lay\"]))\n    keys.append(\n        Key(\n            [mod],\n            workspace[\"key\"],\n            lazy.group[workspace[\"name\"]].toscreen(toggle=True),\n            desc=\"Focus this desktop\",\n        )\n    )\n    keys.append(\n        Key(\n            [mod, \"shift\"],\n            workspace[\"key\"],\n            lazy.window.togroup(workspace[\"name\"]),\n            desc=\"Move focused window to another group\",\n        )\n    )\n\n# Define colors\n\ncolors = [\n    [\"#2e3440\", \"#2e3440\"],  # 0 background\n    [\"#d8dee9\", \"#d8dee9\"],  # 1 foreground\n    [\"#3b4252\", \"#3b4252\"],  # 2 background lighter\n    [\"#bf616a\", \"#bf616a\"],  # 3 red\n    [\"#a3be8c\", \"#a3be8c\"],  # 4 green\n    [\"#ebcb8b\", \"#ebcb8b\"],  # 5 yellow\n    [\"#81a1c1\", \"#81a1c1\"],  # 6 blue\n    [\"#b48ead\", \"#b48ead\"],  # 7 magenta\n    [\"#88c0d0\", \"#88c0d0\"],  # 8 cyan\n    [\"#e5e9f0\", \"#e5e9f0\"],  # 9 white\n    [\"#4c566a\", \"#4c566a\"],  # 10 grey\n    [\"#d08770\", \"#d08770\"],  # 11 orange\n    [\"#8fbcbb\", \"#8fbcbb\"],  # 12 super cyan\n    [\"#5e81ac\", \"#5e81ac\"],  # 13 super blue\n    [\"#242831\", \"#242831\"],  # 14 super dark background\n]\n\nlayout_theme = {\n    \"border_width\": 3,\n    \"margin\": 9,\n    \"border_focus\": \"3b4252\",\n    \"border_normal\": \"3b4252\",\n    \"font\": \"FiraCode Nerd Font\",\n    \"grow_amount\": 2,\n}\n\nlayouts = [\n    # layout.MonadWide(**layout_theme),\n    layout.Bsp(**layout_theme, fair=False, border_on_single=True),\n    layout.Columns(\n        **layout_theme,\n        border_on_single=True,\n        num_columns=2,\n        border_focus_stack=\"#3b4252\",\n        border_normal_stack=\"#3b4252\",\n        split=False,\n        wrap_focus_columns=True,\n        wrap_focus_rows=True,\n        wrap_focus_stacks=True,\n    ),\n    # Plasma(**layout_theme, border_normal_fixed='#3b4252', border_focus_fixed='#3b4252', border_width_single=3),\n    # layout.RatioTile(**layout_theme),\n    # layout.VerticalTile(**layout_theme),\n    # layout.Matrix(**layout_theme, columns=3),\n    # layout.Zoomy(**layout_theme),\n    # layout.Slice(**layout_theme, width=1920, fallback=layout.TreeTab(), match=Match(wm_class=\"joplin\"), side=\"right\"),\n    # layout.MonadTall(**layout_theme),\n    # layout.Max(**layout_theme),\n    # layout.Tile(shift_windows=True, **layout_theme),\n    # layout.Stack(num_stacks=2, **layout_theme),\n    layout.Floating(**layout_theme),\n]\n\n# Setup bar\n\nwidget_defaults = dict(\n    font=\"FiraCode Nerd Font\",\n    fontsize=18,\n    padding=3,\n    background=colors[0],\n    decorations=[\n        BorderDecoration(\n            colour=colors[0],\n            border_width=[11, 0, 10, 0],\n        )\n    ],\n)\nextension_defaults = widget_defaults.copy()\n\ngroup_box_settings = {\n    \"padding\": 5,\n    \"borderwidth\": 4,\n    \"active\": colors[9],\n    \"inactive\": colors[10],\n    \"disable_drag\": True,\n    \"rounded\": True,\n    \"highlight_color\": colors[2],\n    \"block_highlight_text_color\": colors[6],\n    \"highlight_method\": \"block\",\n    \"this_current_screen_border\": colors[14],\n    \"this_screen_border\": colors[7],\n    \"other_current_screen_border\": colors[14],\n    \"other_screen_border\": colors[14],\n    \"foreground\": colors[1],\n    \"background\": colors[14],\n    \"urgent_border\": colors[3],\n}\n\n# Define functions for bar\n\n\ndef dunst():\n    return subprocess.check_output([\"./.config/qtile/dunst.sh\"]).decode(\"utf-8\").strip()\n\n\ndef toggle_dunst():\n    qtile.cmd_spawn(\"./.config/qtile/dunst.sh --toggle\")\n\n\ndef toggle_notif_center():\n    qtile.cmd_spawn(\"./.config/qtile/dunst.sh --notif-center\")\n\n\n# Mouse_callback functions\ndef open_launcher():\n    qtile.cmd_spawn(\"rofi -show drun\")\n\n\ndef kill_window():\n    qtile.cmd_spawn(\"xdotool getwindowfocus windowkill\")\n\n\ndef open_pavu():\n    qtile.cmd_spawn(\"pavucontrol\")\n\n\ndef open_powermenu():\n    qtile.cmd_spawn(\"power\")\n\n\nscreens = [\n    Screen(\n        wallpaper=\"~/Pictures/nordspace2.png\",\n        wallpaper_mode=\"fill\",\n        top=bar.Bar(\n            [\n                widget.TextBox(\n                    text=\"\",\n                    foreground=colors[13],\n                    background=colors[0],\n                    font=\"Font Awesome 6 Free Solid\",\n                    fontsize=28,\n                    padding=20,\n                    mouse_callbacks={\"Button1\": open_launcher},\n                ),\n                widget.TextBox(\n                    text=\"\",\n                    foreground=colors[14],\n                    background=colors[0],\n                    fontsize=28,\n                    padding=0,\n                ),\n                widget.GroupBox(\n                    font=\"Font Awesome 6 Brands\",\n                    visible_groups=[\"\"],\n                    **group_box_settings,\n                ),\n                widget.GroupBox(\n                    font=\"Font Awesome 6 Free Solid\",\n                    visible_groups=[\"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\"],\n                    **group_box_settings,\n                ),\n                widget.TextBox(\n                    text=\"\",\n                    foreground=colors[14],\n                    background=colors[0],\n                    fontsize=28,\n                    padding=0,\n                ),\n                widget.Sep(\n                    linewidth=0,\n                    foreground=colors[2],\n                    background=colors[0],\n                    padding=10,\n                    size_percent=40,\n                ),\n                widget.TextBox(\n                    text=\"\",\n                    foreground=colors[14],\n                    background=colors[0],\n                    fontsize=28,\n                    padding=0,\n                ),\n                widget.CurrentLayoutIcon(\n                    custom_icon_paths=[os.path.expanduser(\"~/.config/qtile/icons\")],\n                    foreground=colors[2],\n                    background=colors[14],\n                    padding=-10,\n                    scale=0.40,\n                ),\n                widget.WindowCount(\n                    background=colors[14],\n                ),\n                widget.TextBox(\n                    text=\"\",\n                    foreground=colors[14],\n                    background=colors[0],\n                    fontsize=28,\n                    padding=0,\n                ),\n                widget.Sep(\n                    linewidth=0,\n                    foreground=colors[2],\n                    padding=10,\n                    size_percent=50,\n                ),\n                widget.TextBox(\n                    text=\"\",\n                    foreground=colors[14],\n                    background=colors[0],\n                    fontsize=28,\n                    padding=0,\n                ),\n                widget.GenPollText(\n                    func=dunst,\n                    update_interval=1,\n                    foreground=colors[11],\n                    background=colors[14],\n                    padding=8,\n                    mouse_callbacks={\n                        \"Button1\": toggle_dunst,\n                        \"Button3\": toggle_notif_center,\n                    },\n                ),\n                widget.TextBox(\n                    text=\"\",\n                    foreground=colors[14],\n                    background=colors[0],\n                    fontsize=28,\n                    padding=0,\n                ),\n                widget.Spacer(),\n                widget.TextBox(\n                    text=\" \",\n                    foreground=colors[12],\n                    background=colors[0],\n                    # fontsize=38,\n                    font=\"Font Awesome 6 Free Solid\",\n                ),\n                widget.WindowName(\n                    background=colors[0],\n                    foreground=colors[12],\n                    width=bar.CALCULATED,\n                    empty_group_string=\"Desktop\",\n                    max_chars=130,\n                    mouse_callbacks={\"Button2\": kill_window},\n                ),\n                widget.Spacer(),\n                widget.Systray(\n                    icon_size=26,\n                    background=colors[0],\n                    padding=7,\n                ),\n                widget.Sep(\n                    linewidth=0,\n                    foreground=colors[2],\n                    padding=10,\n                    size_percent=50,\n                ),\n                widget.TextBox(\n                    text=\"\",\n                    foreground=colors[14],\n                    background=colors[0],\n                    fontsize=28,\n                    padding=0,\n                ),\n                widget.TextBox(\n                    text=\" \",\n                    foreground=colors[8],\n                    background=colors[14],\n                    font=\"Font Awesome 6 Free Solid\",\n                    # fontsize=38,\n                ),\n                widget.PulseVolume(\n                    foreground=colors[8],\n                    background=colors[14],\n                    limit_max_volume=\"True\",\n                    mouse_callbacks={\"Button3\": open_pavu},\n                ),\n                widget.TextBox(\n                    text=\"\",\n                    foreground=colors[14],\n                    background=colors[0],\n                    fontsize=28,\n                    padding=0,\n                ),\n                widget.Sep(\n                    linewidth=0,\n                    foreground=colors[2],\n                    padding=10,\n                    size_percent=50,\n                ),\n                widget.TextBox(\n                    text=\"\",\n                    foreground=colors[14],\n                    background=colors[0],\n                    fontsize=28,\n                    padding=0,\n                ),\n                widget.TextBox(\n                    text=\" \",\n                    font=\"Font Awesome 6 Free Solid\",\n                    foreground=colors[7],  # fontsize=38\n                    background=colors[14],\n                ),\n                widget.Net(\n                    interface=\"enp4s0\",\n                    format=\"{down} ↓↑ {up}\",\n                    foreground=colors[7],\n                    background=colors[14],\n                    prefix=\"k\",\n                    padding=5,\n                ),\n                widget.TextBox(\n                    text=\"\",\n                    foreground=colors[14],\n                    background=colors[0],\n                    fontsize=28,\n                    padding=0,\n                ),\n                widget.Sep(\n                    linewidth=0,\n                    foreground=colors[2],\n                    padding=10,\n                    size_percent=50,\n                ),\n                widget.TextBox(\n                    text=\"\",\n                    foreground=colors[14],\n                    background=colors[0],\n                    fontsize=28,\n                    padding=0,\n                ),\n                widget.TextBox(\n                    text=\" \",\n                    font=\"Font Awesome 6 Free Solid\",\n                    foreground=colors[5],  # fontsize=38\n                    background=colors[14],\n                ),\n                widget.Clock(\n                    format=\"%a, %b %d\",\n                    background=colors[14],\n                    foreground=colors[5],\n                ),\n                widget.TextBox(\n                    text=\"\",\n                    foreground=colors[14],\n                    background=colors[0],\n                    fontsize=28,\n                    padding=0,\n                ),\n                widget.Sep(\n                    linewidth=0,\n                    foreground=colors[2],\n                    padding=10,\n                    size_percent=50,\n                ),\n                widget.TextBox(\n                    text=\"\",\n                    foreground=colors[14],\n                    background=colors[0],\n                    fontsize=28,\n                    padding=0,\n                ),\n                widget.TextBox(\n                    text=\" \",\n                    font=\"Font Awesome 6 Free Solid\",\n                    foreground=colors[4],  # fontsize=38\n                    background=colors[14],\n                ),\n                widget.Clock(\n                    format=\"%I:%M %p\",\n                    foreground=colors[4],\n                    background=colors[14],\n                ),\n                widget.TextBox(\n                    text=\"\",\n                    foreground=colors[14],\n                    background=colors[0],\n                    fontsize=28,\n                    padding=0,\n                ),\n                widget.TextBox(\n                    text=\"⏻\",\n                    foreground=colors[13],\n                    font=\"Font Awesome 6 Free Solid\",\n                    fontsize=34,\n                    padding=20,\n                    mouse_callbacks={\"Button1\": open_powermenu},\n                ),\n            ],\n            56,\n            margin=[0, 0, 21, 0],\n            border_width=[0, 0, 3, 0],\n            border_color=\"#3b4252\",\n        ),\n        bottom=bar.Gap(18),\n        left=bar.Gap(18),\n        right=bar.Gap(18),\n    ),\n]\n\n# Drag floating layouts.\nmouse = [\n    Drag(\n        [mod],\n        \"Button1\",\n        lazy.window.set_position_floating(),\n        start=lazy.window.get_position(),\n    ),\n    Drag(\n        [mod], \"Button3\", lazy.window.set_size_floating(), start=lazy.window.get_size()\n    ),\n    Click([mod], \"Button2\", lazy.window.bring_to_front()),\n]\n\ndgroups_key_binder = None\ndgroups_app_rules = []  # type: List\nfollow_mouse_focus = True\nbring_front_click = \"floating_only\"\ncursor_warp = False\nfloating_layout = layout.Floating(\n    **layout_theme,\n    float_rules=[\n        # Run the utility of `xprop` to see the wm class and name of an X client.\n        *layout.Floating.default_float_rules,\n        Match(title=\"pinentry\"),  # GPG key password entry\n        Match(wm_class=\"ssh-askpass\"),  # ssh-askpass\n        Match(wm_class=\"pomotroid\"),\n        Match(wm_class=\"cmatrixterm\"),\n        Match(title=\"Farge\"),\n        Match(wm_class=\"org.gnome.Nautilus\"),\n        Match(wm_class=\"feh\"),\n        Match(wm_class=\"eog\"),\n        Match(wm_class=\"io.elementary.calculator\"),\n        Match(wm_class=\"blueberry.py\"),\n    ],\n)\nauto_fullscreen = True\nfocus_on_window_activation = \"focus\"\n\n# Startup scripts\n\n\n@hook.subscribe.startup_once\ndef start_once():\n    home = os.path.expanduser(\"~\")\n    subprocess.call([home + \"/.config/qtile/autostart.sh\"])\n\n\n# Window swallowing ;)\n@hook.subscribe.client_new\ndef _swallow(window):\n    pid = window.window.get_net_wm_pid()\n    ppid = psutil.Process(pid).ppid()\n    cpids = {\n        c.window.get_net_wm_pid(): wid for wid, c in window.qtile.windows_map.items()\n    }\n    for i in range(5):\n        if not ppid:\n            return\n        if ppid in cpids:\n            parent = window.qtile.windows_map.get(cpids[ppid])\n            parent.minimized = True\n            window.parent = parent\n            return\n        ppid = psutil.Process(ppid).ppid()\n\n\n@hook.subscribe.client_killed\ndef _unswallow(window):\n    if hasattr(window, \"parent\"):\n        window.parent.minimized = False\n\n\n# Go to group when app opens on matched group\n@hook.subscribe.client_new\ndef modify_window(client):\n    # if (client.window.get_wm_transient_for() or client.window.get_wm_type() in floating_types):\n    #    client.floating = True\n\n    for group in groups:  # follow on auto-move\n        match = next((m for m in group.matches if m.compare(client)), None)\n        if match:\n            targetgroup = client.qtile.groups_map[\n                group.name\n            ]  # there can be multiple instances of a group\n            targetgroup.cmd_toscreen(toggle=False)\n            break\n\n\n# XXX: Gasp! We're lying here. In fact, nobody really uses or cares about this\n# string besides java UI toolkits; you can see several discussions on the\n# mailing lists, GitHub issues, and other WM documentation that suggest setting\n# this string if your java app doesn't work correctly. We may as well just lie\n# and say that we're a working one by default.\n#\n# We choose LG3D to maximize irony: it is a 3D non-reparenting WM written in\n# java that happens to be on java's whitelist.\nwmname = \"qtile\"\n"
  },
  {
    "path": ".config/qtile/dunst.sh",
    "content": "#!/usr/bin/env bash\n\nstatus() {\n  state=$(dunstctl is-paused)\n  if [[ \"$state\" == \"false\" ]]; then\n    echo \"\"\n  else\n    echo \"<span foreground='#3b4252'></span>\"\n  fi\n}\n\n\ncase \"$1\" in\n  --toggle|-t)\n    dunstctl set-paused toggle\n    ;;\n  --notif-center|-nc)\n    rofi_notif_center.sh\n    ;;\n  *)\n    status\n    ;;\nesac\n"
  },
  {
    "path": ".config/qtile/eww_vol.sh",
    "content": "#!/usr/bin/env bash\nset -euo pipefail\n\nmute () {\n     muted=$(pulsemixer --get-mute)\n     if [[ \"$muted\" == \"0\" ]]; then\n        echo \"\" > /tmp/vol-icon\n    else \n        echo \"\" > /tmp/vol-icon\n    fi\n}\n\nif [ -p /tmp/vol ] && [ -p /tmp/vol-icon ]; then\n    true\nelse\n    mkfifo /tmp/vol && echo \"$(pulsemixer --get-volume | awk '{print $1}')\" > /tmp/vol \n    mkfifo /tmp/vol-icon && mute\nfi\n\nscript_name=\"eww_vol.sh\"\nfor pid in $(pgrep -f $script_name); do\n    if [ $pid != $$ ]; then\n        kill -9 $pid\n    fi \ndone\n\nstart=$SECONDS\nvalue=5\n\neww_wid=\"$(xdotool search --name 'Eww - vol' || true)\"\n\nif [ ! -n \"$eww_wid\" ]; then\n    eww open vol\n    eww_wid=\"$(xdotool search --name 'Eww - vol' || true)\"\nfi\n\ncase $1 in\n    up)\n        currentVolume=$(pulsemixer --get-volume | awk '{print $1}')\n               if [[ \"$currentVolume\" -ge \"100\" ]]; then\n                   pulsemixer --max-volume 100\n               else\n                   pulsemixer --change-volume +\"$value\"\n               fi\n    ;;\n    down)\n        pulsemixer --change-volume -\"$value\"\n    ;;\n    mute)\n        muted=$(pulsemixer --get-mute)\n            if [[ \"$muted\" == \"0\" ]]; then\n                pulsemixer --toggle-mute\n                echo \"\" > /tmp/vol-icon\n            else \n                pulsemixer --toggle-mute\n                echo \"\" > /tmp/vol-icon\n            fi\n    ;;\nesac\n\necho $(pulsemixer --get-volume | awk '{print $1}') > /tmp/vol \n\nwhile [ -n \"$eww_wid\" ]; do\n    duration=$(( SECONDS - start ))\n    if [[ $duration -gt 1 ]]; then\n        eww close vol\n        eww_wid=\"$(xdotool search --name 'Eww - vol' || true)\"       \n    fi\n    sleep 0.2\ndone\n\n"
  },
  {
    "path": ".config/qtile/eww_vol_icon.sh",
    "content": "#!/usr/bin/env bash\nset -euo pipefail\n\nmuted=$(pulsemixer --get-mute)\nif [[ \"$muted\" == \"0\" ]]; then\n    echo \"\" > /tmp/vol-icon\nelse\n    echo \"\" > /tmp/vol-icon\nfi\n"
  },
  {
    "path": ".config/qtile/focus_mode.sh",
    "content": "#!/usr/bin/env bash\n#set -euo pipefail\n\nif pgrep conky; then\n    pkill conky\n    eww open border &\n    eww open border1 &\n    eww open border2 &\n    ~/.fehbg &\n    blurwal --backend feh -m 1 -b 30 &\n    qtile cmd-obj -o cmd -f hide_show_bar --args top\nelse\n    pkill blurwal\n    eww close-all\n    feh --no-fehbg --bg-tile '/home/barbarossa/Pictures/colors/4C566A.png'\n    ~/.config/bspwm/cky\n    qtile cmd-obj -o cmd -f hide_show_bar --args top\nfi\n"
  },
  {
    "path": ".config/qtile/toggle_eww.sh",
    "content": "#!/usr/bin/env bash\nset -euo pipefail\n\nstate=$(eww windows | grep main_bottom)\n\nif [ \"$state\" == \"*main_bottom\" ]; then\n    eww close main_bottom\nelse\n    eww open main_bottom\nfi\n"
  },
  {
    "path": ".config/rofi/config.rasi",
    "content": "configuration {\n\tmodi:\t\t\t\t\"drun\";\n\tfont:\t\t\t\t\"monospace 10\";\n\tshow-icons:                     true;\n\ticon-theme: \t\t\t\"Nord-Icon\";\n\tdisplay-drun: \t\t\t\"\";\n\tdrun-display-format:            \"{name}\";\n\tsidebar-mode: \t\t\tfalse;\n}\n\n@theme \"/dev/null\"\n\n* {\n\tbg:\t\t\t\t#2e3440;\n        bg-alt:                         #232831;\n\tfg:\t\t\t\t#eceff4;\n\taccent:\t\t\t\t#8fbcbb;\n        accent-alt:                     #3b4252;\n\tbutton:\t\t\t\t#4c566a;\n\n\tbackground-color:\t\t@bg;\n\ttext-color:\t\t\t@fg;\n}\n\nwindow {\n        border:                         3px;\n        border-color:                   @bg-alt;\n\tborder-radius:                  7px;\n\twidth:\t\t\t    \t50%;\n\tpadding: \t\t\t32px;\n}\n\nprompt {\n\tbackground-color:\t\t@bg-alt;\n\tenabled:\t\t\ttrue;\n\tpadding:\t\t\t0.5% 32px 0% -0.5%;\n\tfont:\t\t\t\t\"monospace 10\";\n}\n\nentry {\n    \tplaceholder:\t\t\t\"Search\";\n\tbackground-color:               @bg-alt;\n    \tplaceholder-color:              @fg;\n    \texpand:                         true;\n    \tpadding:                        0.15% 0% 0% 0%;\n}\n\ninputbar {\n\tchildren:\t\t\t[ prompt, entry ];\n    \tbackground-color:               @bg-alt;\n        border:                         0 5px solid 0 5px solid;\n        border-color:                   @accent;\n    \texpand:                         false;\n    \tborder-radius:                  6px;\n    \tmargin:                         0%;\n    \tpadding:                        10px;\n}\n\nlistview {\n    \tcolumns:                        5;\n    \tlines:\t                        3;\n    \tcycle:                          false;\n    \tdynamic:                        true;\n    \tlayout:                         vertical;\n}\n\nmainbox {\n    \tchildren:                       [ inputbar, listview ];\n    \tspacing:                       \t2%;\n    \tpadding:                        2% 1% 2% 1%;\n}\n\nelement {\n    \tbackground-color:               @bg-alt;\n        border:                         5px solid 0 5px solid 0;\n        border-color:                   @accent-alt;\n    \torientation:                    vertical;\n    \tpadding:                        2% 0% 2% 0%;\n        margin:                         12px;\n}\n\nelement-icon {\n    \tsize:                           48px;\n    \thorizontal-align:\t \t0.5;\n}\n\nelement-text {\n    \texpand:                         true;\n    \thorizontal-align:               0.5;\n    \tvertical-align:                 0.5;\n    \tmargin:                         0.5% 0.5% -0.5% 0.5%;\n}\n\nelement-text, element-icon {\n\tbackground-color:\t\tinherit;\n\ttext-color:\t\t\tinherit;\n}\n\nelement selected {\n    \tbackground-color:               @button;\n        border:                         5px solid 0 5px solid 0;\n        border-color:                   @accent;\n    \tborder-radius:                  6px;\n}\n"
  },
  {
    "path": ".config/rofi/configNotif.rasi",
    "content": "configuration {\n\tdisplay-drun:    \" Apps\";\n\tdisplay-window:  \"缾 Windows\";\n\tshow-icons:true;\n\tfont: \"monospace 14\";\n}\n\n* {\n\tbackground-color:            #2e3440;\n    bg:                          #232831;\n\ttext-color:                  #eceff4;\n\tselbg:                       #81a1c1;\n\tactbg:                       #4c566a;\n\turgbg:                       #bf616a;\n\twinbg:                       #66cccc;\n\n\tselected-normal-foreground:  @text-color;\n\tnormal-foreground:           @text-color;\n\tselected-normal-background:  @actbg;\n\tnormal-background:           @background-color;\n\n\tselected-urgent-foreground:  @urgbg;\n\turgent-foreground:           @text-color;\n\tselected-urgent-background:  @actbg;\n\turgent-background:           @background-color;\n    urgent-foreground:           @urgbg;\n\n\tselected-active-foreground:  @selbg;\n\tactive-foreground:           @selbg;\n\tselected-active-background:  @actbg;\n\tactive-background:           @background-color;\n\n\tline-margin:                 2;\n\tline-padding:                2;\n\tseparator-style:             \"none\";\n\thide-scrollbar:              \"true\";\n\tmargin:                      0;\n\tpadding:                     10;\n}\n\nwindow {\n\tlocation:\t northeast;\n\tanchor:\t\t northeast;\n\t//height:\t\t 85%;\n    y-offset:    68px;\n    x-offset:    12px;\n\twidth:\t\t 20%;\n\torientation: horizontal;\n\tchildren:\t [mainbox];\n    border-radius: 12px;\n    border: 3px solid;\n    border-color: #3b4252;\n}\n\nmainbox {\n\tspacing:  0.8em;\n    orientation: vertical;\n\tchildren: [ inputbar, listview ];\n}\n\nbutton { padding: 5px 2px; }\n\nbutton selected {\n\tbackground-color: @active-background;\n\ttext-color:       @background-color;\n}\n\ninputbar {\n\tpadding: 5px;\n\tspacing: 5px;\n}\n\nlistview {\n\tspacing: 0.5em;\n\tdynamic: true;\n\tcycle:   false;\n}\n\nelement {\n        padding: 10px;\n}\n\nprompt {\n       padding:     35px 20px 20px 25px;\n       font:        \"monospace 18\";\n}\n\nentry {\n\texpand:         true;\n\ttext-color:     @normal-foreground;\n\tvertical-align: 0;\n\tpadding:        5px 0px 0px 20px;\n    enabled:        false;\n}\n\nelement normal.normal {\n\tbackground-color: @bg;\n    border-radius:    8px;\n\ttext-color:       @normal-foreground;\n}\n\nelement normal.urgent {\n\tbackground-color: @bg;\n    border-radius:    8px;\n\ttext-color:       @urgent-foreground;\n}\n\nelement normal.active {\n\tbackground-color: @bg;\n    border-radius:    8px;\n\ttext-color:       @active-foreground;\n}\n\nelement selected.normal {\n\tbackground-color: @selected-normal-background;\n\ttext-color:       @selected-normal-foreground;\n}\n\nelement selected.urgent {\n\tbackground-color: @selected-urgent-background;\n\ttext-color:       @selected-urgent-foreground;\n}\n\nelement selected.active {\n\tbackground-color: @selected-active-background;\n\ttext-color:       @selected-active-foreground;\n}\n\nelement alternate.normal {\n\tbackground-color: @bg;\n    border-radius:    8px;\n\ttext-color:       @normal-foreground;\n}\n\nelement alternate.urgent {\n\tbackground-color: @bg;\n    border-radius:    8px;\n\ttext-color:       @urgent-foreground;\n}\n\nelement alternate.active {\n\tbackground-color: @bg;\n    border-radius:    8px;\n\ttext-color:       @active-foreground;\n}\nelement-icon {\n\tsize: 7ch;\n}\nelement.selected {\n    border-radius: 8px;\n\tborder:           0 0 0 5px solid;\n\tborder-color:\t    @winbg;\n}\nelement-text, element-icon {\n    background-color: inherit;\n    text-color:       inherit;\n}\n"
  },
  {
    "path": ".config/rofi/configPower.rasi",
    "content": "configuration {\n\tdisplay-drun:    \" Apps\";\n\tdisplay-window:  \"缾 Windows\";\n\tshow-icons:true;\n\tfont: \"icons 22\";\n}\n\n@theme \"/dev/null\"\n\n* {\n\tbackground-color:            #2e3440;\n        bg:                          #232831;\n\ttext-color:                  #eceff4;\n\tselbg:                       #81a1c1;\n\tactbg:                       #4c566a;\n\turgbg:                       #bf616a;\n\twinbg:                       #66cccc;\n\n\tselected-normal-foreground:  @text-color;\n\tnormal-foreground:           @text-color;\n\tselected-normal-background:  @actbg;\n\tnormal-background:           @background-color;\n\n\tselected-urgent-foreground:  @urgbg;\n\turgent-foreground:           @text-color;\n\tselected-urgent-background:  @actbg;\n\turgent-background:           @background-color;\n    urgent-foreground:           @urgbg;\n\n\tselected-active-foreground:  @selbg;\n\tactive-foreground:           @selbg;\n\tselected-active-background:  @actbg;\n\tactive-background:           @background-color;\n\n\tline-margin:                 2;\n\tline-padding:                2;\n\tseparator-style:             \"none\";\n\thide-scrollbar:              \"true\";\n\tmargin:                      0;\n\tpadding:                     10;\n}\n\nwindow {\n\tlocation:\t northeast;\n\tanchor:\t\t northeast;\n\theight:\t\t 32%;\n    y-offset:    68px;\n    x-offset:    12px;\n\twidth:\t\t 20%;\n\torientation: horizontal;\n\tchildren:\t [mainbox];\n    border-radius: 12px;\n    border: 3px solid;\n    border-color: #3b4252;\n}\n\n\nmainbox {\n\tspacing:  0.8em;\n    orientation: vertical;\n\tchildren: [ inputbar, listview ];\n}\n\nbutton { padding: 5px 2px; }\n\nbutton selected {\n\tbackground-color: @active-background;\n\ttext-color:       @background-color;\n}\n\ninputbar {\n\tpadding: 5px;\n\tspacing: 5px;\n        children: [prompt];\n}\n\nlistview {\n\tspacing: 0.5em;\n\tdynamic: true;\n\tcycle:   false;\n}\n\nelement {\n        padding: 10px;\n        expand:  false;\n}\n\nprompt {\n       padding:     20px 20px 20px 20px;\n       font:        \"monospace 24\";\n}\n\nentry {\n\texpand:         false;\n\ttext-color:     @normal-foreground;\n\tvertical-align: 0;\n\tpadding:        5px 0px 0px 20px;\n        enabled:        false;\n}\n\nelement normal.normal {\n\tbackground-color: @bg;\n    border-radius:    8px;\n\ttext-color:       @normal-foreground;\n}\n\nelement normal.urgent {\n\tbackground-color: @bg;\n    border-radius:    8px;\n\ttext-color:       @urgent-foreground;\n}\n\nelement normal.active {\n\tbackground-color: @bg;\n    border-radius:    8px;\n\ttext-color:       @active-foreground;\n}\n\nelement selected.normal {\n\tbackground-color: @selected-normal-background;\n\ttext-color:       @selected-normal-foreground;\n}\n\nelement selected.urgent {\n\tbackground-color: @selected-urgent-background;\n\ttext-color:       @selected-urgent-foreground;\n}\n\nelement selected.active {\n\tbackground-color: @selected-active-background;\n\ttext-color:       @selected-active-foreground;\n}\n\nelement alternate.normal {\n\tbackground-color: @bg;\n    border-radius:    8px;\n\ttext-color:       @normal-foreground;\n}\n\nelement alternate.urgent {\n\tbackground-color: @bg;\n    border-radius:    8px;\n\ttext-color:       @urgent-foreground;\n}\n\nelement alternate.active {\n\tbackground-color: @bg;\n    border-radius:    8px;\n\ttext-color:       @active-foreground;\n}\nelement.selected {\n    border-radius: 8px;\n\tborder:           0 0 0 5px solid;\n\tborder-color:\t    @winbg;\n}\nelement-text, element-icon {\n    background-color: inherit;\n    text-color:       inherit;\n}\n"
  },
  {
    "path": ".config/rofi/configTall.rasi",
    "content": "configuration {\n\tdisplay-drun:    \" Apps\";\n\tdisplay-window:  \"缾\";\n\tdisplay-windowcd:  \"缾\";\n\tdisplay-file-browser-extended: \"\";\n\tshow-icons:true;\n\tfont: \"monospace 16\";\n}\n\n* {\n\tbackground-color:            #2e3440;\n    bg:                          #232831;\n\ttext-color:                  #eceff4;\n\tselbg:                       #8fbcbb;\n\tactbg:                       #4c566a;\n\turgbg:                       #bf616a;\n\twinbg:                       #8fbcbb;\n\n\tselected-normal-foreground:  @winbg;\n\tnormal-foreground:           @text-color;\n\tselected-normal-background:  @actbg;\n\tnormal-background:           @background-color;\n\n\tselected-urgent-foreground:  @background-color;\n\turgent-foreground:           @text-color;\n\tselected-urgent-background:  @urgbg;\n\turgent-background:           @background-color;\n\n\tselected-active-foreground:  @winbg;\n\tactive-foreground:           @text-color;\n\tselected-active-background:  @actbg;\n\tactive-background:           @selbg;\n\n\tline-margin:                 2;\n\tline-padding:                2;\n\tseparator-style:             \"none\";\n\thide-scrollbar:              \"true\";\n\tmargin:                      0;\n\tpadding:                     10;\n}\n\nwindow {\n\tlocation:\t west;\n\tanchor:\t\t west;\n\theight:\t\t 85%;\n    //y-offset:    3%;\n    x-offset:    -12px;\n\twidth:\t\t 25%;\n\torientation: horizontal;\n\tchildren:\t [mainbox];\n    border-radius: 12px;\n    border: 3px solid;\n    border-color: #3b4252;\n}\n\nmainbox {\n\tspacing:  0.8em;\n    orientation: vertical;\n\tchildren: [ inputbar, listview ];\n}\n\nbutton { padding: 5px 2px; }\n\nbutton selected {\n\tbackground-color: @active-background;\n\ttext-color:       @background-color;\n}\n\ninputbar {\n\tpadding: 5px;\n\tspacing: 5px;\n}\n\nlistview {\n\tspacing: 0.5em;\n\tdynamic: false;\n\tcycle:   true;\n}\n\nelement {\n    padding: 10px;\n}\n\nprompt {\n       padding:     20px 0px 0px 25px;\n}\n\nentry {\n\texpand:         true;\n\ttext-color:     @normal-foreground;\n\tvertical-align: 0;\n\tpadding:        23px 0px 0px 25px;\n    font:           \"monospace 14\";\n}\n\nelement normal.normal {\n\tbackground-color: @bg;\n    border-radius:     8px;\n\ttext-color:       @normal-foreground;\n}\n\nelement normal.urgent {\n\tbackground-color: @bg;\n    border-radius:     8px;\n\ttext-color:       @urgent-foreground;\n}\n\nelement normal.active {\n\tbackground-color: @bg;\n    border-radius:     8px;\n\ttext-color:       @active-foreground;\n}\n\nelement selected.normal {\n\tbackground-color: @selected-normal-background;\n\ttext-color:       @selected-normal-foreground;\n\tborder:           0 5px solid 0 0;\n\tborder-color:\t    @active-background;\n}\n\nelement selected.urgent {\n\tbackground-color: @selected-urgent-background;\n\ttext-color:       @selected-urgent-foreground;\n}\n\nelement selected.active {\n\tbackground-color: @selected-active-background;\n\ttext-color:       @selected-active-foreground;\n}\n\nelement alternate.normal {\n\tbackground-color: @bg;\n    border-radius:     8px;\n\ttext-color:       @normal-foreground;\n}\n\nelement alternate.urgent {\n\tbackground-color: @bg;\n    border-radius:     8px;\n\ttext-color:       @urgent-foreground;\n}\n\nelement alternate.active {\n\tbackground-color: @bg;\n    border-radius:     8px;\n\ttext-color:       @active-foreground;\n}\nelement-icon {\n\tsize: 2.65ch;\n}\nelement.selected {\n    border-radius: 8px;\n}\nelement-text, element-icon {\n    background-color: inherit;\n    text-color:       inherit;\n}\n"
  },
  {
    "path": ".config/rofi/nordic.rasi",
    "content": "* {\n    background:                     #2e3440ff;\n    background-alt:                 #3b4252ff;\n    foreground:                     #e5e9f0cc;\n    border:               \t\t\t#8fbcbbff;\n    border-alt:               \t\t#81a1c1ff;\n    selected:               \t\t#3b4252ff;\n    urgent:                         #bf616aFF;\n}\n"
  },
  {
    "path": ".config/splatmoji/splatmoji.config",
    "content": "# These are the 3 commands you will need for everything to work\n# you can modify these commands as shown below in the respective subsections\nxsel_command=xclip -selection clipboard\nxdotool_command=xdotool copy\nrofi_command=rofi -theme ~/.config/rofi/configTall.rasi -dmenu -p '☺' -1\n\n"
  },
  {
    "path": ".config/systemd/user/barriers.service",
    "content": "[Unit]\nDescription=Barrier Server\n\n[Service]\nExecStart=/usr/bin/barriers -f --disable-client-cert-checking\nRestart=on-failure\nRestartSec=3s\n\n[Install]\nWantedBy=default.target\n"
  },
  {
    "path": ".config/systemd/user/edges.service",
    "content": "[Unit]\nDescription=Edges\n\n[Service]\nExecStart=/usr/bin/edges --bottom eww_mouse.sh\nRestart=on-failure\nRestartSec=3s\n\n[Install]\nWantedBy=default.target\n"
  },
  {
    "path": ".config/systemd/user/eww.service",
    "content": "[Unit]\nDescription=Eww Daemon\n\n[Service]\nExecStart=/usr/bin/eww --no-daemonize daemon\nRestart=on-failure\nRestartSec=3s\n\n[Install]\nWantedBy=default.target\n"
  },
  {
    "path": ".config/systemd/user/flashfocus.service",
    "content": "[Unit]\nDescription=Flashfocus\n\n[Service]\nExecStart=/usr/bin/flashfocus\nRestart=on-failure\nRestartSec=3s\n\n[Install]\nWantedBy=default.target\n"
  },
  {
    "path": ".config/systemd/user/greenclip.service",
    "content": "[Unit]\nDescription=Greenclip Daemon\n\n[Service]\nExecStart=/usr/bin/greenclip daemon\nRestart=on-failure\nRestartSec=3s\n\n[Install]\nWantedBy=default.target\n"
  },
  {
    "path": ".config/systemd/user/picom.service",
    "content": "[Unit]\nDescription=Picom\n\n[Service]\nExecStart=/usr/bin/picom --experimental-backends\nRestart=on-failure\nRestartSec=3s\n\n[Install]\nWantedBy=default.target\n"
  },
  {
    "path": ".config/systemd/user/redshift.service",
    "content": "[Unit]\nDescription=Redshift\n\n[Service]\nExecStart=/usr/bin/redshift-gtk -l 39.2904:-76.6122\nRestart=on-failure\nRestartSec=3s\n\n[Install]\nWantedBy=default.target\n"
  },
  {
    "path": ".config/systemd/user/xbanish.service",
    "content": "[Unit]\nDescription=xbanish\n\n[Service]\nExecStart=/usr/bin/xbanish\nRestart=on-failure\nRestartSec=3s\n\n[Install]\nWantedBy=default.target\n"
  },
  {
    "path": ".config/systemd/user/xidlehook.service",
    "content": "[Unit]\nDescription=Xidlehook\n\n[Service]\nExecStart=/usr/bin/xidlehook --not-when-fullscreen --not-when-audio --timer 420 'screensaver' '' --timer 180 'light-locker-command -l' ''\nRestart=on-failure\nRestartSec=3s\n\n[Install]\nWantedBy=default.target\n"
  },
  {
    "path": ".config/tmux/tmux.conf",
    "content": "# Set terminfo\nset -g default-terminal \"tmux-256color\"\nset -ag terminal-overrides \",alacritty:Tc\"\n\n# set terminal title\nset -g set-titles on\n\n# boost history\nset -g history-limit 10000\n\n# allow terminal scrolling\nset-option -ga terminal-overrides 'xterm*:smcup@:rmcup@'\n\n# remap prefix from 'C-b' to 'C-a'\nunbind C-b\nset-option -g prefix C-a\nbind-key C-a send-prefix\n\n# split panes using | and -\nbind _ split-window -h\nbind - split-window -v\nunbind '\"'\nunbind %\n\n# reload config file\nbind r source-file ~/.config/tmux/tmux.conf\n\n# switch panes using Ctrl-arrow without prefix\nbind -n M-Left select-pane -L\nbind -n M-Right select-pane -R\nbind -n M-Up select-pane -U\nbind -n M-Down select-pane -D\n\n# Enable mouse mode (tmux 2.1 and above)\nset -g mouse on\n\n# Start windows and panes at 1, not 0\nset -g base-index 1\nsetw -g pane-base-index 1\n\n# Renumber windows when they close\nset-option -g renumber-windows on\n\n#Statusbar stuff\nset -g status 2\nset -Fg status-format[1] '#{status-format[0]}'\nset -g status-format[0] '#[fill=#2e3440]'\nset -g status-justify \"centre\"\nset -g status-left-style \"none\"\nset -g message-command-style \"fg=#88c0d0,bg=#2e3440\"\nset -g status-right-style \"none\"\nset -g pane-active-border-style \"fg=#88c0d0\"\nset -g status-style \"none,bg=#2e3440\"\nset -g message-style \"fg=#88c0d0,bg=#2e3440\"\nset -g pane-border-style \"fg=#2e3440\"\nset -g status-right-length \"100\"\nset -g status-left-length \"100\"\nsetw -g window-status-activity-style \"fg=#88c0d0,bg=#2e3440\"\nsetw -g window-status-separator \"\"\nsetw -g window-status-style \"BOLD,fg=#88c0d0,bg=#2e3440\"\nset -g status-left \"\"\nset -g status-right \"\"\nsetw -g window-status-format \"#[fg=#4c566a,bg=#2e3440] #[fg=#242831,bg=#4c566a]#I #[fg=#e5e9f0,bg=#242831] #W#[fg=#242831,bg=#2e3440] \"\nsetw -g window-status-current-format \"#[fg=#81a1c1,bg=#2e3440] #[fg=#242831,bg=#81a1c1,BOLD]#I #[fg=#e5e9f0,bg=#242831,BOLD] #W#[fg=#242831,bg=#2e3440] \"\n"
  },
  {
    "path": ".config/user-dirs.dirs",
    "content": "# This file is written by xdg-user-dirs-update\n# If you want to change or add directories, just edit the line you're\n# interested in. All local changes will be retained on the next run.\n# Format is XDG_xxx_DIR=\"$HOME/yyy\", where yyy is a shell-escaped\n# homedir-relative path, or XDG_xxx_DIR=\"/yyy\", where /yyy is an\n# absolute path. No other format is supported.\n# \nXDG_DOWNLOAD_DIR=\"$HOME/Downloads\"\nXDG_PUBLICSHARE_DIR=\"$HOME/Public\"\nXDG_DOCUMENTS_DIR=\"$HOME/Documents\"\nXDG_MUSIC_DIR=\"$HOME/Music\"\nXDG_PICTURES_DIR=\"$HOME/Pictures\"\nXDG_VIDEOS_DIR=\"$HOME/Videos\"\nXDG_DESKTOP_DIR=\"$HOME/\"\nXDG_TEMPLATES_DIR=\"$HOME/\"\n"
  },
  {
    "path": ".config/user-dirs.locale",
    "content": "en_US"
  },
  {
    "path": ".config/x11/Xresources",
    "content": "Xcursor.theme: capitaine-cursors\nXcursor.size: 48\n\nXft.dpi:                        161\nXft.antialias:                  1\nXft.autohint:                   1\nXft.hinting:                    true\nXft.hintstyle:                  hintslight\nXft.rgba:                       rgb\nXft.lcdfilter:                  lcddefault\n\n#define FONT Fira Code\n#define ICON FiraCode Nerd Font Mono\n#define EMOJI Noto Color Emoji\n#define NERD_FONT Font Awesome 5 Free Solid\n!Font Awesome 5 Brands\n#define FONT_SIZE 9\n#define ICON_SIZE 9\n#define EMOJI_SIZE 9\n#define NERD_SIZE 9\nURxvt.font: xft:FONT:style=Medium:size=FONT_SIZE:antialias=true, xft:ICON:size=ICON_SIZE:antialias=true, xft:NERD_FONT:size=NERD_SIZE:antialias=true, xft:EMOJI:size=EMOJI_SIZE:antialias=true\nURxvt.boldFont: xft:FONT:style=Bold:size=FONT_SIZE:antialias=true, xft:ICON:size=ICON_SIZE:antialias=true, xft:NERD_FONT:size=NERD_SIZE:antialias=true, xft:EMOJI:size=EMOJI_SIZE:antialias=true\nURxvt.italicFont: xft:FONT:style=Italic:size=FONT_SIZE:antialias=true, xft:ICON:size=ICON_SIZE:antialias=true, xft:NERD_FONT:size=NERD_SIZE:antialias=true, xft:EMOJI:size=EMOJI_SIZE:antialias=true\nURxvt.boldItalicFont: xft:FONT:style=Bold Italic:size=FONT_SIZE:antialias=true, xft:ICON:size=ICON_SIZE:antialias=true, xft:NERD_FONT:size=NERD_SIZE:antialias=true, xft:EMOJI:size=EMOJI_SIZE:antialias=true\n\n!Colors\n#include \"/home/barbarossa/Public/neat-things/colorschemes/nord-xresources/src/nord\"\n!*.font: xft:FiraCode Nerd Font Mono:style=Medium:size=14:antialias=true\n\nURxvt.depth:                    32\nURxvt*lineSpace:                0\nURxvt*letterSpace:\t\t        -1\nURxvt.iso14755:                 false\nURxvt.iso14755_52:              false\nURxvt*geometry:                 184x44\nURxvt.scrollBar:                false\nURxvt*loginShell:               true\nURxvt.internalBorder:           88\n\nURxvt.perl-ext:\t \t\t        default,matcher,resize-font\nURxvt.url-launcher:             linkhandler\nURxvt.matcher.button: \t\t    1\nURxvt.keysym.M-r:    \t\t    perl:matcher:last\nURxvt.keysym.M-l:   \t\t    perl:matcher:list\nURxvt.keysym.M-e:\t\t        perl:matcher:select\nURxvt.saveLine:\t\t\t        10000\nURxvt.cursorBlink: \t\t        true\nURxvt.cursorUnderline: \t\t    true\n\nURxvt*inheritPixmap:    \t    false\nURxvt*transparent:      \t    false\n\n! do not scroll with output\nURxvt*scrollTtyOutput:          false\n\n! scroll in relation to buffer (with mouse scroll or Shift+Page Up)\nURxvt*scrollWithBuffer:         true\n\n! scroll back to the bottom on keypress\nURxvt*scrollTtyKeypress:        true\n\n! Resize font keybindings\nURxvt.keysym.C-minus:           resize-font:smaller\nURxvt.keysym.C-plus:            resize-font:bigger\nURxvt.keysym.C-equal:           resize-font:reset\nURxvt.keysym.C-question:        resize-font:show\nURxvt.resize-font.step:         0.5\n\n! scroll by single line\nURxvt.keysym.Shift-Up:          command:\\033]720;1\\007\nURxvt.keysym.Shift-Down:        command:\\033]721;1\\007\n\n! Helps with man/less/pagers\nURxvt.secondaryScreen:          1\nURxvt.secondaryScroll:          0\nURxvt.secondaryWheel:           1\n\n! Change keybinding for copying/pasting\nURxvt.keysym.Control-Meta-c: builtin-string:\nURxvt.keysym.Control-Meta-v: builtin-string:\nURxvt.keysym.Shift-Control-V: eval:paste_clipboard\nURxvt.keysym.Shift-Control-C: eval:selection_to_clipboard\n\n\n! xterm settings\n\nxterm.vt100.termName: xterm-256color\nxterm.vt100.scaleHeight: 1.0\nXTerm.vt100.geometry: 80x32\nxterm.vt100.internalBorder: 44\nxterm.vt100.borderWidth: 0\n! Every shell is a login shell by default (for inclusion of all necessary environment variables)\nXTerm*loginshell: true\nXTerm*savelines: 16384\nXTerm*charClass: 33:48,36-47:48,58-59:48,61:48,63-64:48,95:48,126:48\n!XTerm.vt100.metaSendsEscape: true\n\nxterm.vt100.utf8: true\nXTerm.vt100.locale: true\nxterm.vt100.scrollBar: false\nxterm.vt100.cursorBlink: true\n!xterm.vt100.cursorUnderline: true\nxterm.vt100.selectToClipboard: true\nxterm.vt100.trimSelection: true\nxterm.vt100.renderFont: true\nxterm.vt100.wideChars: true\nxterm.vt100.visualBell: false\nxterm.vt100.forceBoxChars: true\nxterm.vt100.font-linedrawing: true\n*VT100*translations: #override Shift <Btn1Up>: exec-formatted(\"linkhandler '%t'\", PRIMARY)\n\n\nxterm.vt100.translations: #override \\n\\\n    Shift Ctrl <KeyPress> v:insert-selection(CLIPBOARD) \\n\\\n    Shift Ctrl <KeyPress> c:select-set(CLIPBOARD)\n\nXTerm*faceSize: 10\nxterm.vt100.faceName: monospace\n!xterm.vt100.faceNameDoublesize: Symbola:antialias=true\n!xterm.vt100.wideFont: FiraCode Nerd Font Mono:size=9:antialias=true\n\n! stop output to terminal from jumping down to bottom of scroll again\nXTerm*scrollTtyOutput: false\n\n\n! xst configs\n!st.font: spectrum berry:pixelsize=12:antialias=false:autohint=false;,Cozette:pixelsize=12:antialias=false:autohint=false;,Twemoji:pixelsize=10:antialias=true:autohint=true;,FiraCode Nerd Font Mono:pixelsoze=10:antialias=true:autohint=true\nst.font: monospace:pixelsize=20:antialias=true:autohint=true\nst.alpha: 1\nst.borderpx: 44\nst.cursorshape: 3\nst.disablebold: 0\nst.disableitalics: 0\nst.boxdraw: 1\nst.boxdraw_bold: 1\nst.boxdraw_braille: 1\nst.chscale:           1.0\nst.cwscale:           1.0\n"
  },
  {
    "path": ".config/x11/xinitrc",
    "content": "#!/bin/sh\n\nuserresources=$HOME/.config/x11/Xresources\nusermodmap=$HOME/.config/x11/Xmodmap\nsysresources=/etc/X11/xinit/.Xresources\nsysmodmap=/etc/X11/xinit/.Xmodmap\n\n# merge in defaults and keymaps\n\nif [ -f $sysresources ]; then\n    xrdb -merge $sysresources\n\nfi\n\nif [ -f $sysmodmap ]; then\n    xmodmap $sysmodmap\nfi\n\nif [ -f \"$userresources\" ]; then\n    xrdb -merge \"$userresources\"\n\nfi\n\nif [ -f \"$usermodmap\" ]; then\n    xmodmap \"$usermodmap\"\nfi\n\n#Source env vars\nsource ~/.config/x11/xprofile\n\n# start some nice programs\nif [ -d /etc/X11/xinit/xinitrc.d ] ; then\n for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do\n  [ -x \"$f\" ] && . \"$f\"\n done\n unset f\nfi\n\n## X specific settings\nxset s 0 0\nxset dpms 0 0 0\nxset r rate 440 50\nnumlockx &\n\nlockscreen.sh &\nsleep 1\nexec qtile start -b x11\n"
  },
  {
    "path": ".config/x11/xprofile",
    "content": "# Env settings\nexport XDG_CURRENT_DESKTOP=\"GNOME\"\n\n#New path\nexport PATH=\"/home/barbarossa/.local/bin:/home/barbarossa/.node_modules/bin:$PATH\"\n\n#default editor\nexport EDITOR=\"/usr/bin/emacs\"\n#export EDITOR=\"TERM=xterm-24bit /usr/bin/emacsclient -nw -s term\"\n#export SUDO_EDITOR=\"/usr/bin/emacs\"\n\n#Default browser\nexport BROWSER=/usr/bin/firefox\n\n# Spotipy variables\nexport SPOTIPY_CLIENT_ID=\"$(pass spotipy/client_id)\"\nexport SPOTIPY_CLIENT_SECRET=\"$(pass spotipy/client_secret)\"\nexport SPOTIPY_REDIRECT_URI=\"http://localhost:8888/callback\"\n\n# Enable Neovide multigrid\nexport NEOVIDE_MULTIGRID=1\n\n### Non-standard folder/file locations (moving out of the home dir)\nexport XDG_CONFIG_HOME=\"${HOME}/.config\"\nexport XDG_DATA_HOME=\"${HOME}/.local/share\"\nexport XDG_CACHE_HOME=\"${HOME}/.cache\"\nexport XDG_RUNTIME_DIR=\"/run/user/$(id -u)\"\n\n#export DBUS_SESSION_BUS_ADDRESS=\"unix:path=$XDG_RUNTIME_DIR/bus\"\nexport XDG_STATE_HOME=\"${HOME}/.local/state\"\n\n# xsession start script\nexport USERXSESSION=\"$XDG_CACHE_HOME/x11/xsession\"\nexport USERXSESSIONRC=\"$XDG_CACHE_HOME/x11/xsessionrc\"\nexport ALTUSERXSESSION=\"$XDG_CACHE_HOME/x11/Xsession\"\nexport ERRFILE=\"$XDG_CACHE_HOME/x11/xsession-errors\"\n\n# Move bash history file\nexport HISTFILE=\"$XDG_STATE_HOME\"/bash/history\n\n# Move readline config\nexport INPUTRC=\"$XDG_CONFIG_HOME\"/readline/inputrc\n\n# Move apsell configs\nexport ASPELL_CONF=\"per-conf $XDG_CONFIG_HOME/aspell/aspell.conf; personal $XDG_CONFIG_HOME/aspell/en.pws; repl $XDG_CONFIG_HOME/aspell/en.prepl\"\n\n#Move vimrc\nexport MYVIMRC=\"${XDG_CONFIG_HOME}/vim/vimrc\"\nexport VIMINIT=\"source ${MYVIMRC}\"\n\n#Move CUDA\nexport CUDA_CACHE_PATH=\"$XDG_CACHE_HOME\"/nv\n\n# Change zoom dir\nexport SSB_HOME=\"${XDG_DATA_HOME}/zoom\"\n\n# Change password store\nexport PASSWORD_STORE_DIR=\"${XDG_DATA_HOME}/pass\"\n\n# Move rust dirs\nexport CARGO_HOME=\"${XDG_DATA_HOME}/cargo\"\nexport RUSTUP_HOME=\"$XDG_DATA_HOME\"/rustup\n\n# Move pylint dir\nexport PYLINTHOME=\"${XDG_CACHE_HOME}/pylint\"\n\n# Move python history file\nexport PYTHONSTARTUP=\"${HOME}/.local/bin/startup.py\"\n\n# Move notmuch\nexport NOTMUCH_CONFIG=\"${XDG_CONFIG_HOME}/notmuch/notmuchrc\"\n\n# Move gtk2 config\nexport GTK2_RC_FILES=\"${XDG_CONFIG_HOME}/gtk-2.0/gtkrc\"\n\n# Disable less histfile\nexport LESSHISTFILE=-\n\n# Move z data\nexport _Z_DATA=\"${XDG_DATA_HOME}/z\"\n\n# Move weechat home\nexport WEECHAT_HOME=\"${XDG_CONFIG_HOME}/weechat\"\n\n#Move isync's mbsync config (I think mutt-wizzard is the only one to recognize this)\nexport MBSYNCRC=\"${XDG_CONFIG_HOME}/isync/mbsyncrc\"\n\n# Move go directory\nexport GOPATH=\"${XDG_DATA_HOME}/go\"\n\n# Move vit dir\nexport VIT_DIR=\"${XDG_CONFIG_HOME}/vit\"\n\n# Move taskwarrior data and rc file\nexport TASKDATA=\"${XDG_DATA_HOME}/task\"\nexport TASKRC=\"${XDG_CONFIG_HOME}/task/taskrc\"\n\n# Move terminfo database\nexport TERMINFO=\"$XDG_DATA_HOME\"/terminfo\n\n# Move timewarrior dir\nexport TIMEWARRIORDB=\"${XDG_CONFIG_HOME}/timewarrior\"\n\n#Move urxvt socket\nexport RXVT_SOCKET=\"/tmp/urxvtd\"\n\n#Move java home\nexport _JAVA_OPTIONS=-\"Djava.util.prefs.userRoot=${XDG_CONFIG_HOME}/java -Dsun.java2d.opengl=true\"\n\n### Deprecated (not needed but here for archival reasons)\n# Enable trucolor in lf (needed for proper image previews w/ chafa)\nexport TCELL_TRUECOLOR=on\n\nsystemctl --user import-environment\n"
  },
  {
    "path": ".config/zsh/.p10k.zsh",
    "content": "# Generated by Powerlevel10k configuration wizard on 2021-04-09 at 17:29 EDT.\n# Based on romkatv/powerlevel10k/config/p10k-rainbow.zsh, checksum 00302.\n# Wizard options: nerdfont-complete + powerline, small icons, rainbow, unicode,\n# round separators, round heads, round tails, 1 line, sparse, few icons, fluent,\n# instant_prompt=verbose.\n# Type `p10k configure` to generate another config.\n#\n# Config for Powerlevel10k with powerline prompt style with colorful background.\n# Type `p10k configure` to generate your own config based on it.\n#\n# Tip: Looking for a nice color? Here's a one-liner to print colormap.\n#\n#   for i in {0..255}; do print -Pn \"%K{$i}  %k%F{$i}${(l:3::0:)i}%f \" ${${(M)$((i%6)):#3}:+$'\\n'}; done\n\n# Temporarily change options.\n'builtin' 'local' '-a' 'p10k_config_opts'\n[[ ! -o 'aliases'         ]] || p10k_config_opts+=('aliases')\n[[ ! -o 'sh_glob'         ]] || p10k_config_opts+=('sh_glob')\n[[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand')\n'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand'\n\n() {\n  emulate -L zsh -o extended_glob\n\n  # Unset all configuration options. This allows you to apply configuration changes without\n  # restarting zsh. Edit ~/.p10k.zsh and type `source ~/.p10k.zsh`.\n  unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR'\n\n  # Zsh >= 5.1 is required.\n  autoload -Uz is-at-least && is-at-least 5.1 || return\n\n  # The list of segments shown on the left. Fill it with the most important segments.\n  typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(\n    os_icon               # os identifier\n    dir                     # current directory\n    vcs                     # git status\n    prompt_char           # prompt symbol\n  )\n\n  # The list of segments shown on the right. Fill it with less important segments.\n  # Right prompt on the last prompt line (where you are typing your commands) gets\n  # automatically hidden when the input line reaches it. Right prompt above the\n  # last prompt line gets hidden if it would overlap with left prompt.\n  typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(\n    status                  # exit code of the last command\n    command_execution_time  # duration of the last command\n    background_jobs         # presence of background jobs\n    direnv                  # direnv status (https://direnv.net/)\n    asdf                    # asdf version manager (https://github.com/asdf-vm/asdf)\n    virtualenv              # python virtual environment (https://docs.python.org/3/library/venv.html)\n    anaconda                # conda environment (https://conda.io/)\n    pyenv                   # python environment (https://github.com/pyenv/pyenv)\n    goenv                   # go environment (https://github.com/syndbg/goenv)\n    nodenv                  # node.js version from nodenv (https://github.com/nodenv/nodenv)\n    nvm                     # node.js version from nvm (https://github.com/nvm-sh/nvm)\n    nodeenv                 # node.js environment (https://github.com/ekalinin/nodeenv)\n    # node_version          # node.js version\n    # go_version            # go version (https://golang.org)\n    # rust_version          # rustc version (https://www.rust-lang.org)\n    # dotnet_version        # .NET version (https://dotnet.microsoft.com)\n    # php_version           # php version (https://www.php.net/)\n    # laravel_version       # laravel php framework version (https://laravel.com/)\n    # java_version          # java version (https://www.java.com/)\n    # package               # name@version from package.json (https://docs.npmjs.com/files/package.json)\n    rbenv                   # ruby version from rbenv (https://github.com/rbenv/rbenv)\n    rvm                     # ruby version from rvm (https://rvm.io)\n    fvm                     # flutter version management (https://github.com/leoafarias/fvm)\n    luaenv                  # lua version from luaenv (https://github.com/cehoffman/luaenv)\n    jenv                    # java version from jenv (https://github.com/jenv/jenv)\n    plenv                   # perl version from plenv (https://github.com/tokuhirom/plenv)\n    phpenv                  # php version from phpenv (https://github.com/phpenv/phpenv)\n    scalaenv                # scala version from scalaenv (https://github.com/scalaenv/scalaenv)\n    haskell_stack           # haskell version from stack (https://haskellstack.org/)\n    kubecontext             # current kubernetes context (https://kubernetes.io/)\n    terraform               # terraform workspace (https://www.terraform.io)\n    aws                     # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)\n    aws_eb_env              # aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/)\n    azure                   # azure account name (https://docs.microsoft.com/en-us/cli/azure)\n    gcloud                  # google cloud cli account and project (https://cloud.google.com/)\n    google_app_cred         # google application credentials (https://cloud.google.com/docs/authentication/production)\n    context                 # user@hostname\n    nordvpn                 # nordvpn connection status, linux only (https://nordvpn.com/)\n    ranger                  # ranger shell (https://github.com/ranger/ranger)\n    nnn                     # nnn shell (https://github.com/jarun/nnn)\n    vim_shell               # vim shell indicator (:sh)\n    midnight_commander      # midnight commander shell (https://midnight-commander.org/)\n    nix_shell               # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html)\n    vi_mode                 # vi mode (you don't need this if you've enabled prompt_char)\n    # vpn_ip                # virtual private network indicator\n    # load                  # CPU load\n    # disk_usage            # disk usage\n    # ram                   # free RAM\n    # swap                  # used swap\n    todo                    # todo items (https://github.com/todotxt/todo.txt-cli)\n    timewarrior             # timewarrior tracking status (https://timewarrior.net/)\n    taskwarrior             # taskwarrior task count (https://taskwarrior.org/)\n    # time                  # current time\n    # ip                    # ip address and bandwidth usage for a specified network interface\n    # public_ip             # public IP address\n    # proxy                 # system-wide http/https/ftp proxy\n    # battery               # internal battery\n    # wifi                  # wifi speed\n    # example               # example user-defined segment (see prompt_example function below)\n  )\n\n  # Defines character set used by powerlevel10k. It's best to let `p10k configure` set it for you.\n  typeset -g POWERLEVEL9K_MODE=nerdfont-complete\n  # When set to `moderate`, some icons will have an extra space after them. This is meant to avoid\n  # icon overlap when using non-monospace fonts. When set to `none`, spaces are not added.\n  typeset -g POWERLEVEL9K_ICON_PADDING=none\n\n  # When set to true, icons appear before content on both sides of the prompt. When set\n  # to false, icons go after content. If empty or not set, icons go before content in the left\n  # prompt and after content in the right prompt.\n  #\n  # You can also override it for a specific segment:\n  #\n  #   POWERLEVEL9K_STATUS_ICON_BEFORE_CONTENT=false\n  #\n  # Or for a specific segment in specific state:\n  #\n  #   POWERLEVEL9K_DIR_NOT_WRITABLE_ICON_BEFORE_CONTENT=false\n  typeset -g POWERLEVEL9K_ICON_BEFORE_CONTENT=\n\n  # Add an empty line before each prompt.\n  typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=true\n\n  # Connect left prompt lines with these symbols. You'll probably want to use the same color\n  # as POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND below.\n  typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX='%242F╭─'\n  typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX='%242F├─'\n  typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX='%242F╰─'\n  # Connect right prompt lines with these symbols.\n  typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX='%242F─╮'\n  typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX='%242F─┤'\n  typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX='%242F─╯'\n\n  # Filler between left and right prompt on the first prompt line. You can set it to ' ', '·' or\n  # '─'. The last two make it easier to see the alignment between left and right prompt and to\n  # separate prompt from command output. You might want to set POWERLEVEL9K_PROMPT_ADD_NEWLINE=false\n  # for more compact prompt if using using this option.\n  typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' '\n  typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_BACKGROUND=\n  typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_GAP_BACKGROUND=\n  if [[ $POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR != ' ' ]]; then\n    # The color of the filler. You'll probably want to match the color of POWERLEVEL9K_MULTILINE\n    # ornaments defined above.\n    typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=242\n    # Start filler from the edge of the screen if there are no left segments on the first line.\n    typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_FIRST_SEGMENT_END_SYMBOL='%{%}'\n    # End filler on the edge of the screen if there are no right segments on the first line.\n    typeset -g POWERLEVEL9K_EMPTY_LINE_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='%{%}'\n  fi\n\n  typeset -g POWERLEVEL9K_{LEFT,RIGHT}_{LEFT,RIGHT}_WHITESPACE=''  # no surrounding whitespace\n\n  # Separator between same-color segments on the left.\n  typeset -g POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR=$'%F{016}%K{reset_color} %f%k'  #'\\uE0B5'\n  # Separator between same-color segments on the right.\n  typeset -g POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR=$'%F{016}%K{reset_color} %f%k' #'\\uE0B7'\n  # Separator between different-color segments on the left.\n  typeset -g POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='' #'\\uE0B4'\n  # Separator between different-color segments on the right.\n  typeset -g POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR=''  #'\\uE0B6'\n  # The right end of left prompt.\n  typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='\\uE0B4'\n  # The left end of right prompt.\n  typeset -g POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='\\uE0B6'\n  # The left end of left prompt.\n  typeset -g POWERLEVEL9K_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL='\\uE0B6'\n  # The right end of right prompt.\n  typeset -g POWERLEVEL9K_RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL='\\uE0B4'\n  # Left prompt terminator for lines without any segments.\n  typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=\n\n  #################################[ os_icon: os identifier ]##################################\n  # OS identifier color.\n  typeset -g POWERLEVEL9K_OS_ICON_FOREGROUND=6\n  typeset -g POWERLEVEL9K_OS_ICON_BACKGROUND=16\n  # Custom icon.\n  typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='' #ﮂ\n\n  ################################[ prompt_char: prompt symbol ]################################\n  # Transparent background.\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_BACKGROUND=16\n  # Green prompt symbol if the last command succeeded.\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=2\n  # Red prompt symbol if the last command failed.\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=1\n  # Default prompt symbol.\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION='●'\n  # Prompt symbol in command vi mode.\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION='❮'\n  # Prompt symbol in visual vi mode.\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION='V'\n  # Prompt symbol in overwrite vi mode.\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIOWR_CONTENT_EXPANSION='▶'\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=true\n  # No line terminator if prompt_char is the last segment.\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=''\n  # No line introducer if prompt_char is the first segment.\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL=''\n  # No surrounding whitespace.\n  typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_{LEFT,RIGHT}_WHITESPACE=''\n\n  ##################################[ dir: current directory ]##################################\n  # Current directory background color.\n  typeset -g POWERLEVEL9K_DIR_BACKGROUND=16\n  # Default current directory foreground color.\n  typeset -g POWERLEVEL9K_DIR_FOREGROUND=4\n  # If directory is too long, shorten some of its segments to the shortest possible unique\n  # prefix. The shortened directory can be tab-completed to the original.\n  typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_unique\n  # Replace removed segment suffixes with this symbol.\n  typeset -g POWERLEVEL9K_SHORTEN_DELIMITER=\n  # Color of the shortened directory segments.\n  typeset -g POWERLEVEL9K_DIR_SHORTENED_FOREGROUND=4\n  # Color of the anchor directory segments. Anchor segments are never shortened. The first\n  # segment is always an anchor.\n  typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND=4\n  # Display anchor directory segments in bold.\n  typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=true\n  # Don't shorten directories that contain any of these files. They are anchors.\n  local anchor_files=(\n    .bzr\n    .citc\n    .git\n    .hg\n    .node-version\n    .python-version\n    .go-version\n    .ruby-version\n    .lua-version\n    .java-version\n    .perl-version\n    .php-version\n    .tool-version\n    .shorten_folder_marker\n    .svn\n    .terraform\n    CVS\n    Cargo.toml\n    composer.json\n    go.mod\n    package.json\n    stack.yaml\n  )\n  typeset -g POWERLEVEL9K_SHORTEN_FOLDER_MARKER=\"(${(j:|:)anchor_files})\"\n  # If set to \"first\" (\"last\"), remove everything before the first (last) subdirectory that contains\n  # files matching $POWERLEVEL9K_SHORTEN_FOLDER_MARKER. For example, when the current directory is\n  # /foo/bar/git_repo/nested_git_repo/baz, prompt will display git_repo/nested_git_repo/baz (first)\n  # or nested_git_repo/baz (last). This assumes that git_repo and nested_git_repo contain markers\n  # and other directories don't.\n  #\n  # Optionally, \"first\" and \"last\" can be followed by \":<offset>\" where <offset> is an integer.\n  # This moves the truncation point to the right (positive offset) or to the left (negative offset)\n  # relative to the marker. Plain \"first\" and \"last\" are equivalent to \"first:0\" and \"last:0\"\n  # respectively.\n  typeset -g POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER=false\n  # Don't shorten this many last directory segments. They are anchors.\n  typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1\n  # Shorten directory if it's longer than this even if there is space for it. The value can\n  # be either absolute (e.g., '80') or a percentage of terminal width (e.g, '50%'). If empty,\n  # directory will be shortened only when prompt doesn't fit or when other parameters demand it\n  # (see POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS and POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT below).\n  # If set to `0`, directory will always be shortened to its minimum length.\n  typeset -g POWERLEVEL9K_DIR_MAX_LENGTH=80\n  # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least this\n  # many columns for typing commands.\n  typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS=40\n  # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least\n  # COLUMNS * POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT * 0.01 columns for typing commands.\n  typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT=50\n  # If set to true, embed a hyperlink into the directory. Useful for quickly\n  # opening a directory in the file manager simply by clicking the link.\n  # Can also be handy when the directory is shortened, as it allows you to see\n  # the full directory that was used in previous commands.\n  typeset -g POWERLEVEL9K_DIR_HYPERLINK=false\n\n  # Enable special styling for non-writable directories. See POWERLEVEL9K_LOCK_ICON and\n  # POWERLEVEL9K_DIR_CLASSES below.\n  typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=v2\n\n  # The default icon shown next to non-writable directories when POWERLEVEL9K_DIR_SHOW_WRITABLE is\n  # set to v2.\n  # typeset -g POWERLEVEL9K_LOCK_ICON='⭐'\n\n  # POWERLEVEL9K_DIR_CLASSES allows you to specify custom icons and colors for different\n  # directories. It must be an array with 3 * N elements. Each triplet consists of:\n  #\n  #   1. A pattern against which the current directory ($PWD) is matched. Matching is done with\n  #      extended_glob option enabled.\n  #   2. Directory class for the purpose of styling.\n  #   3. An empty string.\n  #\n  # Triplets are tried in order. The first triplet whose pattern matches $PWD wins.\n  #\n  # If POWERLEVEL9K_DIR_SHOW_WRITABLE is set to v2 and the current directory is not writable,\n  # its class gets suffix _NOT_WRITABLE.\n  #\n  # For example, given these settings:\n  #\n  #   typeset -g POWERLEVEL9K_DIR_CLASSES=(\n  #     '~/work(|/*)'  WORK     ''\n  #     '~(|/*)'       HOME     ''\n  #     '*'            DEFAULT  '')\n  #\n  # Whenever the current directory is ~/work or a subdirectory of ~/work, it gets styled with class\n  # WORK or WORK_NOT_WRITABLE.\n  #\n  # Simply assigning classes to directories doesn't have any visible effects. It merely gives you an\n  # option to define custom colors and icons for different directory classes.\n  #\n  #   # Styling for WORK.\n  #   typeset -g POWERLEVEL9K_DIR_WORK_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  #   typeset -g POWERLEVEL9K_DIR_WORK_BACKGROUND=4\n  #   typeset -g POWERLEVEL9K_DIR_WORK_FOREGROUND=254\n  #   typeset -g POWERLEVEL9K_DIR_WORK_SHORTENED_FOREGROUND=250\n  #   typeset -g POWERLEVEL9K_DIR_WORK_ANCHOR_FOREGROUND=255\n  #\n  #   # Styling for WORK_NOT_WRITABLE.\n  #   typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  #   typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_BACKGROUND=4\n  #   typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND=254\n  #   typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_SHORTENED_FOREGROUND=250\n  #   typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_ANCHOR_FOREGROUND=255\n  #\n  # If a styling parameter isn't explicitly defined for some class, it falls back to the classless\n  # parameter. For example, if POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND is not set, it falls\n  # back to POWERLEVEL9K_DIR_FOREGROUND.\n  #\n  typeset -g POWERLEVEL9K_DIR_CLASSES=()\n\n  # Custom prefix.\n  # typeset -g POWERLEVEL9K_DIR_PREFIX='in '\n\n  #####################################[ vcs: git status ]######################################\n  # Version control system colors.\n  typeset -g POWERLEVEL9K_VCS_CLEAN_BACKGROUND=16\n  typeset -g POWERLEVEL9K_VCS_MODIFIED_BACKGROUND=16\n  typeset -g POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND=16\n  typeset -g POWERLEVEL9K_VCS_CONFLICTED_BACKGROUND=16\n  typeset -g POWERLEVEL9K_VCS_LOADING_BACKGROUND=16\n\n\n  typeset -g POWERLEVEL9K_VCS_CLEAN_FOREGROUND=3\n  typeset -g POWERLEVEL9K_VCS_MODIFIED_FOREGROUND=3\n  typeset -g POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND=3\n  typeset -g POWERLEVEL9K_VCS_CONFLICTED_FOREGROUND=3\n  typeset -g POWERLEVEL9K_VCS_LOADING_FOREGROUND=3\n\n  # Branch icon. Set this parameter to '\\uF126 ' for the popular Powerline branch icon.\n  typeset -g POWERLEVEL9K_VCS_BRANCH_ICON=\n\n  # Untracked files icon. It's really a question mark, your font isn't broken.\n  # Change the value of this parameter to show a different icon.\n  typeset -g POWERLEVEL9K_VCS_UNTRACKED_ICON='?'\n\n  # Formatter for Git status.\n  #\n  # Example output: master ⇣42⇡42 *42 merge ~42 +42 !42 ?42.\n  #\n  # You can edit the function to customize how Git status looks.\n  #\n  # VCS_STATUS_* parameters are set by gitstatus plugin. See reference:\n  # https://github.com/romkatv/gitstatus/blob/master/gitstatus.plugin.zsh.\n  function my_git_formatter() {\n    emulate -L zsh\n\n    if [[ -n $P9K_CONTENT ]]; then\n      # If P9K_CONTENT is not empty, use it. It's either \"loading\" or from vcs_info (not from\n      # gitstatus plugin). VCS_STATUS_* parameters are not available in this case.\n      typeset -g my_git_format=$P9K_CONTENT\n      return\n    fi\n\n    # Styling for different parts of Git status.\n    local       meta='%7F' # white foreground\n    local      clean='%0F' # black foreground\n    local   modified='%0F' # black foreground\n    local  untracked='%0F' # black foreground\n    local conflicted='%1F' # red foreground\n\n    local res\n    local where  # branch or tag\n    if [[ -n $VCS_STATUS_LOCAL_BRANCH ]]; then\n      res+=\"${clean}${(g::)POWERLEVEL9K_VCS_BRANCH_ICON}\"\n      where=${(V)VCS_STATUS_LOCAL_BRANCH}\n    elif [[ -n $VCS_STATUS_TAG ]]; then\n      res+=\"${meta}#\"\n      where=${(V)VCS_STATUS_TAG}\n    fi\n\n    # If local branch name or tag is at most 32 characters long, show it in full.\n    # Otherwise show the first 12 … the last 12.\n    # Tip: To always show local branch name in full without truncation, delete the next line.\n    (( $#where > 32 )) && where[13,-13]=\"…\"\n\n    res+=\"${clean}${where//\\%/%%}\"  # escape %\n\n    # Display the current Git commit if there is no branch or tag.\n    # Tip: To always display the current Git commit, remove `[[ -z $where ]] &&` from the next line.\n    [[ -z $where ]] && res+=\"${meta}@${clean}${VCS_STATUS_COMMIT[1,8]}\"\n\n    # Show tracking branch name if it differs from local branch.\n    if [[ -n ${VCS_STATUS_REMOTE_BRANCH:#$VCS_STATUS_LOCAL_BRANCH} ]]; then\n      res+=\"${meta}:${clean}${(V)VCS_STATUS_REMOTE_BRANCH//\\%/%%}\"  # escape %\n    fi\n\n    # ⇣42 if behind the remote.\n    (( VCS_STATUS_COMMITS_BEHIND )) && res+=\" ${clean}⇣${VCS_STATUS_COMMITS_BEHIND}\"\n    # ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42.\n    (( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=\" \"\n    (( VCS_STATUS_COMMITS_AHEAD  )) && res+=\"${clean}⇡${VCS_STATUS_COMMITS_AHEAD}\"\n    # ⇠42 if behind the push remote.\n    (( VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=\" ${clean}⇠${VCS_STATUS_PUSH_COMMITS_BEHIND}\"\n    (( VCS_STATUS_PUSH_COMMITS_AHEAD && !VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=\" \"\n    # ⇢42 if ahead of the push remote; no leading space if also behind: ⇠42⇢42.\n    (( VCS_STATUS_PUSH_COMMITS_AHEAD  )) && res+=\"${clean}⇢${VCS_STATUS_PUSH_COMMITS_AHEAD}\"\n    # *42 if have stashes.\n    (( VCS_STATUS_STASHES        )) && res+=\" ${clean}*${VCS_STATUS_STASHES}\"\n    # 'merge' if the repo is in an unusual state.\n    [[ -n $VCS_STATUS_ACTION     ]] && res+=\" ${conflicted}${VCS_STATUS_ACTION}\"\n    # ~42 if have merge conflicts.\n    (( VCS_STATUS_NUM_CONFLICTED )) && res+=\" ${conflicted}~${VCS_STATUS_NUM_CONFLICTED}\"\n    # +42 if have staged changes.\n    (( VCS_STATUS_NUM_STAGED     )) && res+=\" ${modified}+${VCS_STATUS_NUM_STAGED}\"\n    # !42 if have unstaged changes.\n    (( VCS_STATUS_NUM_UNSTAGED   )) && res+=\" ${modified}!${VCS_STATUS_NUM_UNSTAGED}\"\n    # ?42 if have untracked files. It's really a question mark, your font isn't broken.\n    # See POWERLEVEL9K_VCS_UNTRACKED_ICON above if you want to use a different icon.\n    # Remove the next line if you don't want to see untracked files at all.\n    (( VCS_STATUS_NUM_UNTRACKED  )) && res+=\" ${untracked}${(g::)POWERLEVEL9K_VCS_UNTRACKED_ICON}${VCS_STATUS_NUM_UNTRACKED}\"\n    # \"─\" if the number of unstaged files is unknown. This can happen due to\n    # POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY (see below) being set to a non-negative number lower\n    # than the number of files in the Git index, or due to bash.showDirtyState being set to false\n    # in the repository config. The number of staged and untracked files may also be unknown\n    # in this case.\n    (( VCS_STATUS_HAS_UNSTAGED == -1 )) && res+=\" ${modified}─\"\n\n    typeset -g my_git_format=$res\n  }\n  functions -M my_git_formatter 2>/dev/null\n\n  # Don't count the number of unstaged, untracked and conflicted files in Git repositories with\n  # more than this many files in the index. Negative value means infinity.\n  #\n  # If you are working in Git repositories with tens of millions of files and seeing performance\n  # sagging, try setting POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY to a number lower than the output\n  # of `git ls-files | wc -l`. Alternatively, add `bash.showDirtyState = false` to the repository's\n  # config: `git config bash.showDirtyState false`.\n  typeset -g POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY=-1\n\n  # Don't show Git status in prompt for repositories whose workdir matches this pattern.\n  # For example, if set to '~', the Git repository at $HOME/.git will be ignored.\n  # Multiple patterns can be combined with '|': '~(|/foo)|/bar/baz/*'.\n  typeset -g POWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN='~'\n\n  # Disable the default Git status formatting.\n  typeset -g POWERLEVEL9K_VCS_DISABLE_GITSTATUS_FORMATTING=true\n  # Install our own Git status formatter.\n  typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${$((my_git_formatter()))+${my_git_format}}'\n  # Enable counters for staged, unstaged, etc.\n  typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED,CONFLICTED,COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=-1\n\n  # Custom icon.\n  typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION=\n  # Custom prefix.\n  typeset -g POWERLEVEL9K_VCS_PREFIX='on '\n\n  # Show status of repositories of these types. You can add svn and/or hg if you are\n  # using them. If you do, your prompt may become slow even when your current directory\n  # isn't in an svn or hg reposotiry.\n  typeset -g POWERLEVEL9K_VCS_BACKENDS=(git)\n\n  ##########################[ status: exit code of the last command ]###########################\n  # Enable OK_PIPE, ERROR_PIPE and ERROR_SIGNAL status states to allow us to enable, disable and\n  # style them independently from the regular OK and ERROR state.\n  typeset -g POWERLEVEL9K_STATUS_EXTENDED_STATES=true\n\n  # Status on success. No content, just an icon. No need to show it if prompt_char is enabled as\n  # it will signify success by turning green.\n  typeset -g POWERLEVEL9K_STATUS_OK=false\n  typeset -g POWERLEVEL9K_STATUS_OK_VISUAL_IDENTIFIER_EXPANSION='✔'\n  # typeset -g POWERLEVEL9K_STATUS_OK_FOREGROUND=2\n  # typeset -g POWERLEVEL9K_STATUS_OK_BACKGROUND=0\n\n  # Status when some part of a pipe command fails but the overall exit status is zero. It may look\n  # like this: 1|0.\n  typeset -g POWERLEVEL9K_STATUS_OK_PIPE=true\n  typeset -g POWERLEVEL9K_STATUS_OK_PIPE_VISUAL_IDENTIFIER_EXPANSION='✔'\n  typeset -g POWERLEVEL9K_STATUS_OK_PIPE_FOREGROUND=2\n  typeset -g POWERLEVEL9K_STATUS_OK_PIPE_BACKGROUND=16\n\n  # Status when it's just an error code (e.g., '1'). No need to show it if prompt_char is enabled as\n  # it will signify error by turning red.\n  typeset -g POWERLEVEL9K_STATUS_ERROR=true\n  typeset -g POWERLEVEL9K_STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION='✘'\n  typeset -g POWERLEVEL9K_STATUS_ERROR_FOREGROUND=1\n  typeset -g POWERLEVEL9K_STATUS_ERROR_BACKGROUND=16\n\n  # Status when the last command was terminated by a signal.\n  typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL=true\n  # Use terse signal names: \"INT\" instead of \"SIGINT(2)\".\n  typeset -g POWERLEVEL9K_STATUS_VERBOSE_SIGNAME=false\n  typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_VISUAL_IDENTIFIER_EXPANSION='✘'\n  typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_FOREGROUND=1\n  typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_BACKGROUND=16\n\n  # Status when some part of a pipe command fails and the overall exit status is also non-zero.\n  # It may look like this: 1|0.\n  typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE=true\n  typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_VISUAL_IDENTIFIER_EXPANSION='✘'\n  typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_FOREGROUND=1\n  typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_BACKGROUND=16\n\n  ###################[ command_execution_time: duration of the last command ]###################\n  # Execution time color.\n  typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=3\n  typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_BACKGROUND=16\n  # Show duration of the last command if takes at least this many seconds.\n  typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3\n  # Show this many fractional digits. Zero means round to seconds.\n  typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0\n  # Duration format: 1d 2h 3m 4s.\n  typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s'\n  # Custom icon.\n  typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_VISUAL_IDENTIFIER_EXPANSION=\n  # Custom prefix.\n  typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PREFIX='took '\n\n  #######################[ background_jobs: presence of background jobs ]#######################\n  # Background jobs color.\n  typeset -g POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=6\n  typeset -g POWERLEVEL9K_BACKGROUND_JOBS_BACKGROUND=16\n  # Don't show the number of background jobs.\n  typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=false\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #######################[ direnv: direnv status (https://direnv.net/) ]########################\n  # Direnv color.\n  # typeset -g POWERLEVEL9K_DIRENV_FOREGROUND=3\n  # typeset -g POWERLEVEL9K_DIRENV_BACKGROUND=0\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_DIRENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ###############[ asdf: asdf version manager (https://github.com/asdf-vm/asdf) ]###############\n  # Default asdf color. Only used to display tools for which there is no color override (see below).\n  # Tip:  Override these parameters for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_FOREGROUND and\n  # POWERLEVEL9K_ASDF_${TOOL}_BACKGROUND.\n  typeset -g POWERLEVEL9K_ASDF_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_BACKGROUND=7\n\n  # There are four parameters that can be used to hide asdf tools. Each parameter describes\n  # conditions under which a tool gets hidden. Parameters can hide tools but not unhide them. If at\n  # least one parameter decides to hide a tool, that tool gets hidden. If no parameter decides to\n  # hide a tool, it gets shown.\n  #\n  # Special note on the difference between POWERLEVEL9K_ASDF_SOURCES and\n  # POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW. Consider the effect of the following commands:\n  #\n  #   asdf local  python 3.8.1\n  #   asdf global python 3.8.1\n  #\n  # After running both commands the current python version is 3.8.1 and its source is \"local\" as\n  # it takes precedence over \"global\". If POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW is set to false,\n  # it'll hide python version in this case because 3.8.1 is the same as the global version.\n  # POWERLEVEL9K_ASDF_SOURCES will hide python version only if the value of this parameter doesn't\n  # contain \"local\".\n\n  # Hide tool versions that don't come from one of these sources.\n  #\n  # Available sources:\n  #\n  # - shell   `asdf current` says \"set by ASDF_${TOOL}_VERSION environment variable\"\n  # - local   `asdf current` says \"set by /some/not/home/directory/file\"\n  # - global  `asdf current` says \"set by /home/username/file\"\n  #\n  # Note: If this parameter is set to (shell local global), it won't hide tools.\n  # Tip:  Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SOURCES.\n  typeset -g POWERLEVEL9K_ASDF_SOURCES=(shell local global)\n\n  # If set to false, hide tool versions that are the same as global.\n  #\n  # Note: The name of this parameter doesn't reflect its meaning at all.\n  # Note: If this parameter is set to true, it won't hide tools.\n  # Tip:  Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_PROMPT_ALWAYS_SHOW.\n  typeset -g POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW=false\n\n  # If set to false, hide tool versions that are equal to \"system\".\n  #\n  # Note: If this parameter is set to true, it won't hide tools.\n  # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SHOW_SYSTEM.\n  typeset -g POWERLEVEL9K_ASDF_SHOW_SYSTEM=true\n\n  # If set to non-empty value, hide tools unless there is a file matching the specified file pattern\n  # in the current directory, or its parent diretory, or its grandparent directory, and so on.\n  #\n  # Note: If this parameter is set to empty value, it won't hide tools.\n  # Note: SHOW_ON_UPGLOB isn't specific to asdf. It works with all prompt segments.\n  # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SHOW_ON_UPGLOB.\n  #\n  # Example: Hide nodejs version when there is no package.json and no *.js files in the current\n  # directory, in `..`, in `../..` and so on.\n  #\n  #   typeset -g POWERLEVEL9K_ASDF_NODEJS_SHOW_ON_UPGLOB='*.js|package.json'\n  typeset -g POWERLEVEL9K_ASDF_SHOW_ON_UPGLOB=\n\n  # Ruby version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_RUBY_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_RUBY_BACKGROUND=1\n  # typeset -g POWERLEVEL9K_ASDF_RUBY_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_RUBY_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Python version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_PYTHON_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_PYTHON_BACKGROUND=4\n  # typeset -g POWERLEVEL9K_ASDF_PYTHON_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_PYTHON_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Go version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_GOLANG_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_GOLANG_BACKGROUND=4\n  # typeset -g POWERLEVEL9K_ASDF_GOLANG_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_GOLANG_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Node.js version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_NODEJS_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_NODEJS_BACKGROUND=2\n  # typeset -g POWERLEVEL9K_ASDF_NODEJS_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_NODEJS_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Rust version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_RUST_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_RUST_BACKGROUND=208\n  # typeset -g POWERLEVEL9K_ASDF_RUST_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_RUST_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # .NET Core version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_BACKGROUND=5\n  # typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Flutter version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_FLUTTER_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_FLUTTER_BACKGROUND=4\n  # typeset -g POWERLEVEL9K_ASDF_FLUTTER_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_FLUTTER_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Lua version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_LUA_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_LUA_BACKGROUND=4\n  # typeset -g POWERLEVEL9K_ASDF_LUA_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_LUA_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Java version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_JAVA_FOREGROUND=1\n  typeset -g POWERLEVEL9K_ASDF_JAVA_BACKGROUND=7\n  # typeset -g POWERLEVEL9K_ASDF_JAVA_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_JAVA_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Perl version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_PERL_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_PERL_BACKGROUND=4\n  # typeset -g POWERLEVEL9K_ASDF_PERL_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_PERL_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Erlang version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_ERLANG_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_ERLANG_BACKGROUND=1\n  # typeset -g POWERLEVEL9K_ASDF_ERLANG_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_ERLANG_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Elixir version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_ELIXIR_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_ELIXIR_BACKGROUND=5\n  # typeset -g POWERLEVEL9K_ASDF_ELIXIR_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_ELIXIR_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Postgres version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_POSTGRES_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_POSTGRES_BACKGROUND=6\n  # typeset -g POWERLEVEL9K_ASDF_POSTGRES_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_POSTGRES_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # PHP version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_PHP_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_PHP_BACKGROUND=5\n  # typeset -g POWERLEVEL9K_ASDF_PHP_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_PHP_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Haskell version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_HASKELL_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_HASKELL_BACKGROUND=3\n  # typeset -g POWERLEVEL9K_ASDF_HASKELL_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_HASKELL_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  # Julia version from asdf.\n  typeset -g POWERLEVEL9K_ASDF_JULIA_FOREGROUND=0\n  typeset -g POWERLEVEL9K_ASDF_JULIA_BACKGROUND=2\n  # typeset -g POWERLEVEL9K_ASDF_JULIA_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # typeset -g POWERLEVEL9K_ASDF_JULIA_SHOW_ON_UPGLOB='*.foo|*.bar'\n\n  ##########[ nordvpn: nordvpn connection status, linux only (https://nordvpn.com/) ]###########\n  # NordVPN connection indicator color.\n  # typeset -g POWERLEVEL9K_NORDVPN_FOREGROUND=7\n  # typeset -g POWERLEVEL9K_NORDVPN_BACKGROUND=4\n  # Hide NordVPN connection indicator when not connected.\n  typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_CONTENT_EXPANSION=\n  typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_VISUAL_IDENTIFIER_EXPANSION=\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_NORDVPN_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #################[ ranger: ranger shell (https://github.com/ranger/ranger) ]##################\n  # Ranger shell color.\n  # typeset -g POWERLEVEL9K_RANGER_FOREGROUND=3\n  # typeset -g POWERLEVEL9K_RANGER_BACKGROUND=0\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ######################[ nnn: nnn shell (https://github.com/jarun/nnn) ]#######################\n  # Nnn shell color.\n  # typeset -g POWERLEVEL9K_NNN_FOREGROUND=0\n  # typeset -g POWERLEVEL9K_NNN_BACKGROUND=6\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_NNN_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ###########################[ vim_shell: vim shell indicator (:sh) ]###########################\n  # Vim shell indicator color.\n  # typeset -g POWERLEVEL9K_VIM_SHELL_FOREGROUND=0\n  # typeset -g POWERLEVEL9K_VIM_SHELL_BACKGROUND=2\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_VIM_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ######[ midnight_commander: midnight commander shell (https://midnight-commander.org/) ]######\n  # Midnight Commander shell color.\n  # typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_FOREGROUND=3\n  # typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_BACKGROUND=0\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #[ nix_shell: nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) ]##\n  # Nix shell color.\n  # typeset -g POWERLEVEL9K_NIX_SHELL_FOREGROUND=0\n  # typeset -g POWERLEVEL9K_NIX_SHELL_BACKGROUND=4\n\n  # Tip: If you want to see just the icon without \"pure\" and \"impure\", uncomment the next line.\n  # typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION=\n\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_NIX_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##################################[ disk_usage: disk usage ]##################################\n  # Colors for different levels of disk usage.\n  # typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=3\n  # typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_BACKGROUND=0\n  # typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_FOREGROUND=0\n  # typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_BACKGROUND=3\n  # typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_FOREGROUND=7\n  # typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_BACKGROUND=1\n  # Thresholds for different levels of disk usage (percentage points).\n  typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL=90\n  typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_LEVEL=95\n  # If set to true, hide disk usage when below $POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL percent.\n  typeset -g POWERLEVEL9K_DISK_USAGE_ONLY_WARNING=false\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_DISK_USAGE_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ###########[ vi_mode: vi mode (you don't need this if you've enabled prompt_char) ]###########\n  # Foreground color.\n  typeset -g POWERLEVEL9K_VI_MODE_FOREGROUND=0\n  # Text and color for normal (a.k.a. command) vi mode.\n  typeset -g POWERLEVEL9K_VI_COMMAND_MODE_STRING=NORMAL\n  typeset -g POWERLEVEL9K_VI_MODE_NORMAL_BACKGROUND=2\n  # Text and color for visual vi mode.\n  typeset -g POWERLEVEL9K_VI_VISUAL_MODE_STRING=VISUAL\n  typeset -g POWERLEVEL9K_VI_MODE_VISUAL_BACKGROUND=4\n  # Text and color for overtype (a.k.a. overwrite and replace) vi mode.\n  typeset -g POWERLEVEL9K_VI_OVERWRITE_MODE_STRING=OVERTYPE\n  typeset -g POWERLEVEL9K_VI_MODE_OVERWRITE_BACKGROUND=3\n  # Text and color for insert vi mode.\n  typeset -g POWERLEVEL9K_VI_INSERT_MODE_STRING=\n  typeset -g POWERLEVEL9K_VI_MODE_INSERT_FOREGROUND=8\n\n  ######################################[ ram: free RAM ]#######################################\n  # RAM color.\n  # typeset -g POWERLEVEL9K_RAM_FOREGROUND=0\n  # typeset -g POWERLEVEL9K_RAM_BACKGROUND=3\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_RAM_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #####################################[ swap: used swap ]######################################\n  # Swap color.\n  # typeset -g POWERLEVEL9K_SWAP_FOREGROUND=0\n  # typeset -g POWERLEVEL9K_SWAP_BACKGROUND=3\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_SWAP_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ######################################[ load: CPU load ]######################################\n  # Show average CPU load over this many last minutes. Valid values are 1, 5 and 15.\n  typeset -g POWERLEVEL9K_LOAD_WHICH=5\n  # Load color when load is under 50%.\n  # typeset -g POWERLEVEL9K_LOAD_NORMAL_FOREGROUND=0\n  # typeset -g POWERLEVEL9K_LOAD_NORMAL_BACKGROUND=2\n  # Load color when load is between 50% and 70%.\n  # typeset -g POWERLEVEL9K_LOAD_WARNING_FOREGROUND=0\n  # typeset -g POWERLEVEL9K_LOAD_WARNING_BACKGROUND=3\n  # Load color when load is over 70%.\n  # typeset -g POWERLEVEL9K_LOAD_CRITICAL_FOREGROUND=0\n  # typeset -g POWERLEVEL9K_LOAD_CRITICAL_BACKGROUND=1\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_LOAD_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ################[ todo: todo items (https://github.com/todotxt/todo.txt-cli) ]################\n  # Todo color.\n  # typeset -g POWERLEVEL9K_TODO_FOREGROUND=0\n  # typeset -g POWERLEVEL9K_TODO_BACKGROUND=8\n  # Hide todo when the total number of tasks is zero.\n  typeset -g POWERLEVEL9K_TODO_HIDE_ZERO_TOTAL=true\n  # Hide todo when the number of tasks after filtering is zero.\n  typeset -g POWERLEVEL9K_TODO_HIDE_ZERO_FILTERED=false\n\n  # Todo format. The following parameters are available within the expansion.\n  #\n  # - P9K_TODO_TOTAL_TASK_COUNT     The total number of tasks.\n  # - P9K_TODO_FILTERED_TASK_COUNT  The number of tasks after filtering.\n  #\n  # These variables correspond to the last line of the output of `todo.sh -p ls`:\n  #\n  #   TODO: 24 of 42 tasks shown\n  #\n  # Here 24 is P9K_TODO_FILTERED_TASK_COUNT and 42 is P9K_TODO_TOTAL_TASK_COUNT.\n  #\n  # typeset -g POWERLEVEL9K_TODO_CONTENT_EXPANSION='$P9K_TODO_FILTERED_TASK_COUNT'\n\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_TODO_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ###########[ timewarrior: timewarrior tracking status (https://timewarrior.net/) ]############\n  # Timewarrior color.\n  typeset -g POWERLEVEL9K_TIMEWARRIOR_FOREGROUND=4\n  typeset -g POWERLEVEL9K_TIMEWARRIOR_BACKGROUND=16\n\n  # If the tracked task is longer than 24 characters, truncate and append \"…\".\n  # Tip: To always display tasks without truncation, delete the following parameter.\n  # Tip: To hide task names and display just the icon when time tracking is enabled, set the\n  # value of the following parameter to \"\".\n  typeset -g POWERLEVEL9K_TIMEWARRIOR_CONTENT_EXPANSION='${P9K_CONTENT:0:24}${${P9K_CONTENT:24}:+…}'\n\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_TIMEWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##############[ taskwarrior: taskwarrior task count (https://taskwarrior.org/) ]##############\n  # Taskwarrior color.\n  typeset -g POWERLEVEL9K_TASKWARRIOR_FOREGROUND=5\n  typeset -g POWERLEVEL9K_TASKWARRIOR_BACKGROUND=16\n\n  # Taskwarrior segment format. The following parameters are available within the expansion.\n  #\n  # - P9K_TASKWARRIOR_PENDING_COUNT   The number of pending tasks: `task +PENDING count`.\n  # - P9K_TASKWARRIOR_OVERDUE_COUNT   The number of overdue tasks: `task +OVERDUE count`.\n  #\n  # Zero values are represented as empty parameters.\n  #\n  # The default format:\n  #\n  #   '${P9K_TASKWARRIOR_OVERDUE_COUNT:+\"!$P9K_TASKWARRIOR_OVERDUE_COUNT/\"}$P9K_TASKWARRIOR_PENDING_COUNT'\n  #\n  # typeset -g POWERLEVEL9K_TASKWARRIOR_CONTENT_EXPANSION='$P9K_TASKWARRIOR_PENDING_COUNT'\n\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_TASKWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##################################[ context: user@hostname ]##################################\n  # Context color when running with privileges.\n  typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=1\n  typeset -g POWERLEVEL9K_CONTEXT_ROOT_BACKGROUND=16\n  # Context color in SSH without privileges.\n  typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_FOREGROUND=3\n  typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_BACKGROUND=0\n  # Default context color (no privileges, no SSH).\n  typeset -g POWERLEVEL9K_CONTEXT_FOREGROUND=3\n  typeset -g POWERLEVEL9K_CONTEXT_BACKGROUND=0\n\n  # Context format when running with privileges: user@hostname.\n  typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE='%n@%m'\n  # Context format when in SSH without privileges: user@hostname.\n  typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_TEMPLATE='%n@%m'\n  # Default context format (no privileges, no SSH): user@hostname.\n  typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE='%n@%m'\n\n  # Don't show context unless running with privileges or in SSH.\n  # Tip: Remove the next line to always show context.\n  typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION=\n\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_CONTEXT_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  # Custom prefix.\n  typeset -g POWERLEVEL9K_CONTEXT_PREFIX='with '\n\n  ###[ virtualenv: python virtual environment (https://docs.python.org/3/library/venv.html) ]###\n  # Python virtual environment color.\n  # typeset -g POWERLEVEL9K_VIRTUALENV_FOREGROUND=0\n  # typeset -g POWERLEVEL9K_VIRTUALENV_BACKGROUND=4\n  # Don't show Python version next to the virtual environment name.\n  typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION=false\n  # If set to \"false\", won't show virtualenv if pyenv is already shown.\n  # If set to \"if-different\", won't show virtualenv if it's the same as pyenv.\n  typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_WITH_PYENV=false\n  # Separate environment name from Python version only with a space.\n  typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER=\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_VIRTUALENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #####################[ anaconda: conda environment (https://conda.io/) ]######################\n  # Anaconda environment color.\n  # typeset -g POWERLEVEL9K_ANACONDA_FOREGROUND=0\n  # typeset -g POWERLEVEL9K_ANACONDA_BACKGROUND=4\n\n  # Anaconda segment format. The following parameters are available within the expansion.\n  #\n  # - CONDA_PREFIX                 Absolute path to the active Anaconda/Miniconda environment.\n  # - CONDA_DEFAULT_ENV            Name of the active Anaconda/Miniconda environment.\n  # - CONDA_PROMPT_MODIFIER        Configurable prompt modifier (see below).\n  # - P9K_ANACONDA_PYTHON_VERSION  Current python version (python --version).\n  #\n  # CONDA_PROMPT_MODIFIER can be configured with the following command:\n  #\n  #   conda config --set env_prompt '({default_env}) '\n  #\n  # The last argument is a Python format string that can use the following variables:\n  #\n  # - prefix       The same as CONDA_PREFIX.\n  # - default_env  The same as CONDA_DEFAULT_ENV.\n  # - name         The last segment of CONDA_PREFIX.\n  # - stacked_env  Comma-separated list of names in the environment stack. The first element is\n  #                always the same as default_env.\n  #\n  # Note: '({default_env}) ' is the default value of env_prompt.\n  #\n  # The default value of POWERLEVEL9K_ANACONDA_CONTENT_EXPANSION expands to $CONDA_PROMPT_MODIFIER\n  # without the surrounding parentheses, or to the last path component of CONDA_PREFIX if the former\n  # is empty.\n  typeset -g POWERLEVEL9K_ANACONDA_CONTENT_EXPANSION='${${${${CONDA_PROMPT_MODIFIER#\\(}% }%\\)}:-${CONDA_PREFIX:t}}'\n\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_ANACONDA_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ################[ pyenv: python environment (https://github.com/pyenv/pyenv) ]################\n  # Pyenv color.\n  # typeset -g POWERLEVEL9K_PYENV_FOREGROUND=0\n  # typeset -g POWERLEVEL9K_PYENV_BACKGROUND=4\n  # Hide python version if it doesn't come from one of these sources.\n  typeset -g POWERLEVEL9K_PYENV_SOURCES=(shell local global)\n  # If set to false, hide python version if it's the same as global:\n  # $(pyenv version-name) == $(pyenv global).\n  typeset -g POWERLEVEL9K_PYENV_PROMPT_ALWAYS_SHOW=false\n  # If set to false, hide python version if it's equal to \"system\".\n  typeset -g POWERLEVEL9K_PYENV_SHOW_SYSTEM=true\n\n  # Pyenv segment format. The following parameters are available within the expansion.\n  #\n  # - P9K_CONTENT                Current pyenv environment (pyenv version-name).\n  # - P9K_PYENV_PYTHON_VERSION   Current python version (python --version).\n  #\n  # The default format has the following logic:\n  #\n  # 1. Display \"$P9K_CONTENT $P9K_PYENV_PYTHON_VERSION\" if $P9K_PYENV_PYTHON_VERSION is not\n  #   empty and unequal to $P9K_CONTENT.\n  # 2. Otherwise display just \"$P9K_CONTENT\".\n  typeset -g POWERLEVEL9K_PYENV_CONTENT_EXPANSION='${P9K_CONTENT}${${P9K_PYENV_PYTHON_VERSION:#$P9K_CONTENT}:+ $P9K_PYENV_PYTHON_VERSION}'\n\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_PYENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ################[ goenv: go environment (https://github.com/syndbg/goenv) ]################\n  # Goenv color.\n  # typeset -g POWERLEVEL9K_GOENV_FOREGROUND=0\n  # typeset -g POWERLEVEL9K_GOENV_BACKGROUND=4\n  # Hide go version if it doesn't come from one of these sources.\n  typeset -g POWERLEVEL9K_GOENV_SOURCES=(shell local global)\n  # If set to false, hide go version if it's the same as global:\n  # $(goenv version-name) == $(goenv global).\n  typeset -g POWERLEVEL9K_GOENV_PROMPT_ALWAYS_SHOW=false\n  # If set to false, hide go version if it's equal to \"system\".\n  typeset -g POWERLEVEL9K_GOENV_SHOW_SYSTEM=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_GOENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##########[ nodenv: node.js version from nodenv (https://github.com/nodenv/nodenv) ]##########\n  # Nodenv color.\n  # typeset -g POWERLEVEL9K_NODENV_FOREGROUND=2\n  # typeset -g POWERLEVEL9K_NODENV_BACKGROUND=0\n  # Hide node version if it doesn't come from one of these sources.\n  typeset -g POWERLEVEL9K_NODENV_SOURCES=(shell local global)\n  # If set to false, hide node version if it's the same as global:\n  # $(nodenv version-name) == $(nodenv global).\n  typeset -g POWERLEVEL9K_NODENV_PROMPT_ALWAYS_SHOW=false\n  # If set to false, hide node version if it's equal to \"system\".\n  typeset -g POWERLEVEL9K_NODENV_SHOW_SYSTEM=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_NODENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##############[ nvm: node.js version from nvm (https://github.com/nvm-sh/nvm) ]###############\n  # Nvm color.\n  # typeset -g POWERLEVEL9K_NVM_FOREGROUND=0\n  # typeset -g POWERLEVEL9K_NVM_BACKGROUND=5\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ############[ nodeenv: node.js environment (https://github.com/ekalinin/nodeenv) ]############\n  # Nodeenv color.\n  # typeset -g POWERLEVEL9K_NODEENV_FOREGROUND=2\n  # typeset -g POWERLEVEL9K_NODEENV_BACKGROUND=0\n  # Don't show Node version next to the environment name.\n  typeset -g POWERLEVEL9K_NODEENV_SHOW_NODE_VERSION=false\n  # Separate environment name from Node version only with a space.\n  typeset -g POWERLEVEL9K_NODEENV_{LEFT,RIGHT}_DELIMITER=\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_NODEENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##############################[ node_version: node.js version ]###############################\n  # Node version color.\n  # typeset -g POWERLEVEL9K_NODE_VERSION_FOREGROUND=7\n  # typeset -g POWERLEVEL9K_NODE_VERSION_BACKGROUND=2\n  # Show node version only when in a directory tree containing package.json.\n  typeset -g POWERLEVEL9K_NODE_VERSION_PROJECT_ONLY=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_NODE_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #######################[ go_version: go version (https://golang.org) ]########################\n  # Go version color.\n  # typeset -g POWERLEVEL9K_GO_VERSION_FOREGROUND=255\n  # typeset -g POWERLEVEL9K_GO_VERSION_BACKGROUND=2\n  # Show go version only when in a go project subdirectory.\n  typeset -g POWERLEVEL9K_GO_VERSION_PROJECT_ONLY=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_GO_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #################[ rust_version: rustc version (https://www.rust-lang.org) ]##################\n  # Rust version color.\n  # typeset -g POWERLEVEL9K_RUST_VERSION_FOREGROUND=0\n  # typeset -g POWERLEVEL9K_RUST_VERSION_BACKGROUND=208\n  # Show rust version only when in a rust project subdirectory.\n  typeset -g POWERLEVEL9K_RUST_VERSION_PROJECT_ONLY=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_RUST_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ###############[ dotnet_version: .NET version (https://dotnet.microsoft.com) ]################\n  # .NET version color.\n  # typeset -g POWERLEVEL9K_DOTNET_VERSION_FOREGROUND=7\n  # typeset -g POWERLEVEL9K_DOTNET_VERSION_BACKGROUND=5\n  # Show .NET version only when in a .NET project subdirectory.\n  typeset -g POWERLEVEL9K_DOTNET_VERSION_PROJECT_ONLY=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_DOTNET_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #####################[ php_version: php version (https://www.php.net/) ]######################\n  # PHP version color.\n  typeset -g POWERLEVEL9K_PHP_VERSION_FOREGROUND=0\n  typeset -g POWERLEVEL9K_PHP_VERSION_BACKGROUND=5\n  # Show PHP version only when in a PHP project subdirectory.\n  typeset -g POWERLEVEL9K_PHP_VERSION_PROJECT_ONLY=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_PHP_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##########[ laravel_version: laravel php framework version (https://laravel.com/) ]###########\n  # Laravel version color.\n  typeset -g POWERLEVEL9K_LARAVEL_VERSION_FOREGROUND=1\n  typeset -g POWERLEVEL9K_LARAVEL_VERSION_BACKGROUND=7\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_LARAVEL_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #############[ rbenv: ruby version from rbenv (https://github.com/rbenv/rbenv) ]##############\n  # Rbenv color.\n  # typeset -g POWERLEVEL9K_RBENV_FOREGROUND=0\n  # typeset -g POWERLEVEL9K_RBENV_BACKGROUND=1\n  # Hide ruby version if it doesn't come from one of these sources.\n  typeset -g POWERLEVEL9K_RBENV_SOURCES=(shell local global)\n  # If set to false, hide ruby version if it's the same as global:\n  # $(rbenv version-name) == $(rbenv global).\n  typeset -g POWERLEVEL9K_RBENV_PROMPT_ALWAYS_SHOW=false\n  # If set to false, hide ruby version if it's equal to \"system\".\n  typeset -g POWERLEVEL9K_RBENV_SHOW_SYSTEM=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_RBENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ####################[ java_version: java version (https://www.java.com/) ]####################\n  # Java version color.\n  typeset -g POWERLEVEL9K_JAVA_VERSION_FOREGROUND=1\n  typeset -g POWERLEVEL9K_JAVA_VERSION_BACKGROUND=7\n  # Show java version only when in a java project subdirectory.\n  typeset -g POWERLEVEL9K_JAVA_VERSION_PROJECT_ONLY=true\n  # Show brief version.\n  typeset -g POWERLEVEL9K_JAVA_VERSION_FULL=false\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_JAVA_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ###[ package: name@version from package.json (https://docs.npmjs.com/files/package.json) ]####\n  # Package color.\n  # typeset -g POWERLEVEL9K_PACKAGE_FOREGROUND=0\n  # typeset -g POWERLEVEL9K_PACKAGE_BACKGROUND=6\n\n  # Package format. The following parameters are available within the expansion.\n  #\n  # - P9K_PACKAGE_NAME     The value of `name` field in package.json.\n  # - P9K_PACKAGE_VERSION  The value of `version` field in package.json.\n  #\n  # typeset -g POWERLEVEL9K_PACKAGE_CONTENT_EXPANSION='${P9K_PACKAGE_NAME//\\%/%%}@${P9K_PACKAGE_VERSION//\\%/%%}'\n\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_PACKAGE_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #######################[ rvm: ruby version from rvm (https://rvm.io) ]########################\n  # Rvm color.\n  # typeset -g POWERLEVEL9K_RVM_FOREGROUND=0\n  # typeset -g POWERLEVEL9K_RVM_BACKGROUND=240\n  # Don't show @gemset at the end.\n  typeset -g POWERLEVEL9K_RVM_SHOW_GEMSET=false\n  # Don't show ruby- at the front.\n  typeset -g POWERLEVEL9K_RVM_SHOW_PREFIX=false\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_RVM_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ###########[ fvm: flutter version management (https://github.com/leoafarias/fvm) ]############\n  # Fvm color.\n  # typeset -g POWERLEVEL9K_FVM_FOREGROUND=0\n  # typeset -g POWERLEVEL9K_FVM_BACKGROUND=4\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_FVM_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##########[ luaenv: lua version from luaenv (https://github.com/cehoffman/luaenv) ]###########\n  # Lua color.\n  # typeset -g POWERLEVEL9K_LUAENV_FOREGROUND=0\n  # typeset -g POWERLEVEL9K_LUAENV_BACKGROUND=4\n  # Hide lua version if it doesn't come from one of these sources.\n  typeset -g POWERLEVEL9K_LUAENV_SOURCES=(shell local global)\n  # If set to false, hide lua version if it's the same as global:\n  # $(luaenv version-name) == $(luaenv global).\n  typeset -g POWERLEVEL9K_LUAENV_PROMPT_ALWAYS_SHOW=false\n  # If set to false, hide lua version if it's equal to \"system\".\n  typeset -g POWERLEVEL9K_LUAENV_SHOW_SYSTEM=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_LUAENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ###############[ jenv: java version from jenv (https://github.com/jenv/jenv) ]################\n  # Java color.\n  # typeset -g POWERLEVEL9K_JENV_FOREGROUND=1\n  # typeset -g POWERLEVEL9K_JENV_BACKGROUND=7\n  # Hide java version if it doesn't come from one of these sources.\n  typeset -g POWERLEVEL9K_JENV_SOURCES=(shell local global)\n  # If set to false, hide java version if it's the same as global:\n  # $(jenv version-name) == $(jenv global).\n  typeset -g POWERLEVEL9K_JENV_PROMPT_ALWAYS_SHOW=false\n  # If set to false, hide java version if it's equal to \"system\".\n  typeset -g POWERLEVEL9K_JENV_SHOW_SYSTEM=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_JENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ###########[ plenv: perl version from plenv (https://github.com/tokuhirom/plenv) ]############\n  # Perl color.\n  # typeset -g POWERLEVEL9K_PLENV_FOREGROUND=0\n  # typeset -g POWERLEVEL9K_PLENV_BACKGROUND=4\n  # Hide perl version if it doesn't come from one of these sources.\n  typeset -g POWERLEVEL9K_PLENV_SOURCES=(shell local global)\n  # If set to false, hide perl version if it's the same as global:\n  # $(plenv version-name) == $(plenv global).\n  typeset -g POWERLEVEL9K_PLENV_PROMPT_ALWAYS_SHOW=false\n  # If set to false, hide perl version if it's equal to \"system\".\n  typeset -g POWERLEVEL9K_PLENV_SHOW_SYSTEM=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_PLENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ############[ phpenv: php version from phpenv (https://github.com/phpenv/phpenv) ]############\n  # PHP color.\n  # typeset -g POWERLEVEL9K_PHPENV_FOREGROUND=0\n  # typeset -g POWERLEVEL9K_PHPENV_BACKGROUND=5\n  # Hide php version if it doesn't come from one of these sources.\n  typeset -g POWERLEVEL9K_PHPENV_SOURCES=(shell local global)\n  # If set to false, hide php version if it's the same as global:\n  # $(phpenv version-name) == $(phpenv global).\n  typeset -g POWERLEVEL9K_PHPENV_PROMPT_ALWAYS_SHOW=false\n  # If set to false, hide PHP version if it's equal to \"system\".\n  typeset -g POWERLEVEL9K_PHPENV_SHOW_SYSTEM=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_PHPENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #######[ scalaenv: scala version from scalaenv (https://github.com/scalaenv/scalaenv) ]#######\n  # Scala color.\n  # typeset -g POWERLEVEL9K_SCALAENV_FOREGROUND=0\n  # typeset -g POWERLEVEL9K_SCALAENV_BACKGROUND=1\n  # Hide scala version if it doesn't come from one of these sources.\n  typeset -g POWERLEVEL9K_SCALAENV_SOURCES=(shell local global)\n  # If set to false, hide scala version if it's the same as global:\n  # $(scalaenv version-name) == $(scalaenv global).\n  typeset -g POWERLEVEL9K_SCALAENV_PROMPT_ALWAYS_SHOW=false\n  # If set to false, hide scala version if it's equal to \"system\".\n  typeset -g POWERLEVEL9K_SCALAENV_SHOW_SYSTEM=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_SCALAENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##########[ haskell_stack: haskell version from stack (https://haskellstack.org/) ]###########\n  # Haskell color.\n  # typeset -g POWERLEVEL9K_HASKELL_STACK_FOREGROUND=0\n  # typeset -g POWERLEVEL9K_HASKELL_STACK_BACKGROUND=3\n\n  # Hide haskell version if it doesn't come from one of these sources.\n  #\n  #   shell:  version is set by STACK_YAML\n  #   local:  version is set by stack.yaml up the directory tree\n  #   global: version is set by the implicit global project (~/.stack/global-project/stack.yaml)\n  typeset -g POWERLEVEL9K_HASKELL_STACK_SOURCES=(shell local)\n  # If set to false, hide haskell version if it's the same as in the implicit global project.\n  typeset -g POWERLEVEL9K_HASKELL_STACK_ALWAYS_SHOW=true\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_HASKELL_STACK_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ################[ terraform: terraform workspace (https://www.terraform.io) ]#################\n  # Don't show terraform workspace if it's literally \"default\".\n  typeset -g POWERLEVEL9K_TERRAFORM_SHOW_DEFAULT=false\n  # POWERLEVEL9K_TERRAFORM_CLASSES is an array with even number of elements. The first element\n  # in each pair defines a pattern against which the current terraform workspace gets matched.\n  # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)\n  # that gets matched. If you unset all POWERLEVEL9K_TERRAFORM_*CONTENT_EXPANSION parameters,\n  # you'll see this value in your prompt. The second element of each pair in\n  # POWERLEVEL9K_TERRAFORM_CLASSES defines the workspace class. Patterns are tried in order. The\n  # first match wins.\n  #\n  # For example, given these settings:\n  #\n  #   typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=(\n  #     '*prod*'  PROD\n  #     '*test*'  TEST\n  #     '*'       OTHER)\n  #\n  # If your current terraform workspace is \"project_test\", its class is TEST because \"project_test\"\n  # doesn't match the pattern '*prod*' but does match '*test*'.\n  #\n  # You can define different colors, icons and content expansions for different classes:\n  #\n  #   typeset -g POWERLEVEL9K_TERRAFORM_TEST_FOREGROUND=2\n  #   typeset -g POWERLEVEL9K_TERRAFORM_TEST_BACKGROUND=0\n  #   typeset -g POWERLEVEL9K_TERRAFORM_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  #   typeset -g POWERLEVEL9K_TERRAFORM_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'\n  typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=(\n      # '*prod*'  PROD    # These values are examples that are unlikely\n      # '*test*'  TEST    # to match your needs. Customize them as needed.\n      '*'         OTHER)\n  typeset -g POWERLEVEL9K_TERRAFORM_OTHER_FOREGROUND=4\n  typeset -g POWERLEVEL9K_TERRAFORM_OTHER_BACKGROUND=0\n  # typeset -g POWERLEVEL9K_TERRAFORM_OTHER_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]#############\n  # Show kubecontext only when the the command you are typing invokes one of these tools.\n  # Tip: Remove the next line to always show kubecontext.\n  typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile'\n\n  # Kubernetes context classes for the purpose of using different colors, icons and expansions with\n  # different contexts.\n  #\n  # POWERLEVEL9K_KUBECONTEXT_CLASSES is an array with even number of elements. The first element\n  # in each pair defines a pattern against which the current kubernetes context gets matched.\n  # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)\n  # that gets matched. If you unset all POWERLEVEL9K_KUBECONTEXT_*CONTENT_EXPANSION parameters,\n  # you'll see this value in your prompt. The second element of each pair in\n  # POWERLEVEL9K_KUBECONTEXT_CLASSES defines the context class. Patterns are tried in order. The\n  # first match wins.\n  #\n  # For example, given these settings:\n  #\n  #   typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=(\n  #     '*prod*'  PROD\n  #     '*test*'  TEST\n  #     '*'       DEFAULT)\n  #\n  # If your current kubernetes context is \"deathray-testing/default\", its class is TEST\n  # because \"deathray-testing/default\" doesn't match the pattern '*prod*' but does match '*test*'.\n  #\n  # You can define different colors, icons and content expansions for different classes:\n  #\n  #   typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_FOREGROUND=0\n  #   typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_BACKGROUND=2\n  #   typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  #   typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'\n  typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=(\n      # '*prod*'  PROD    # These values are examples that are unlikely\n      # '*test*'  TEST    # to match your needs. Customize them as needed.\n      '*'       DEFAULT)\n  typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_FOREGROUND=7\n  typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_BACKGROUND=5\n  # typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  # Use POWERLEVEL9K_KUBECONTEXT_CONTENT_EXPANSION to specify the content displayed by kubecontext\n  # segment. Parameter expansions are very flexible and fast, too. See reference:\n  # http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion.\n  #\n  # Within the expansion the following parameters are always available:\n  #\n  # - P9K_CONTENT                The content that would've been displayed if there was no content\n  #                              expansion defined.\n  # - P9K_KUBECONTEXT_NAME       The current context's name. Corresponds to column NAME in the\n  #                              output of `kubectl config get-contexts`.\n  # - P9K_KUBECONTEXT_CLUSTER    The current context's cluster. Corresponds to column CLUSTER in the\n  #                              output of `kubectl config get-contexts`.\n  # - P9K_KUBECONTEXT_NAMESPACE  The current context's namespace. Corresponds to column NAMESPACE\n  #                              in the output of `kubectl config get-contexts`. If there is no\n  #                              namespace, the parameter is set to \"default\".\n  # - P9K_KUBECONTEXT_USER       The current context's user. Corresponds to column AUTHINFO in the\n  #                              output of `kubectl config get-contexts`.\n  #\n  # If the context points to Google Kubernetes Engine (GKE) or Elastic Kubernetes Service (EKS),\n  # the following extra parameters are available:\n  #\n  # - P9K_KUBECONTEXT_CLOUD_NAME     Either \"gke\" or \"eks\".\n  # - P9K_KUBECONTEXT_CLOUD_ACCOUNT  Account/project ID.\n  # - P9K_KUBECONTEXT_CLOUD_ZONE     Availability zone.\n  # - P9K_KUBECONTEXT_CLOUD_CLUSTER  Cluster.\n  #\n  # P9K_KUBECONTEXT_CLOUD_* parameters are derived from P9K_KUBECONTEXT_CLUSTER. For example,\n  # if P9K_KUBECONTEXT_CLUSTER is \"gke_my-account_us-east1-a_my-cluster-01\":\n  #\n  #   - P9K_KUBECONTEXT_CLOUD_NAME=gke\n  #   - P9K_KUBECONTEXT_CLOUD_ACCOUNT=my-account\n  #   - P9K_KUBECONTEXT_CLOUD_ZONE=us-east1-a\n  #   - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01\n  #\n  # If P9K_KUBECONTEXT_CLUSTER is \"arn:aws:eks:us-east-1:123456789012:cluster/my-cluster-01\":\n  #\n  #   - P9K_KUBECONTEXT_CLOUD_NAME=eks\n  #   - P9K_KUBECONTEXT_CLOUD_ACCOUNT=123456789012\n  #   - P9K_KUBECONTEXT_CLOUD_ZONE=us-east-1\n  #   - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01\n  typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION=\n  # Show P9K_KUBECONTEXT_CLOUD_CLUSTER if it's not empty and fall back to P9K_KUBECONTEXT_NAME.\n  POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${P9K_KUBECONTEXT_CLOUD_CLUSTER:-${P9K_KUBECONTEXT_NAME}}'\n  # Append the current context's namespace if it's not \"default\".\n  POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${${:-/$P9K_KUBECONTEXT_NAMESPACE}:#/default}'\n\n  # Custom prefix.\n  typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX='at '\n\n  #[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]#\n  # Show aws only when the the command you are typing invokes one of these tools.\n  # Tip: Remove the next line to always show aws.\n  typeset -g POWERLEVEL9K_AWS_SHOW_ON_COMMAND='aws|awless|terraform|pulumi|terragrunt'\n\n  # POWERLEVEL9K_AWS_CLASSES is an array with even number of elements. The first element\n  # in each pair defines a pattern against which the current AWS profile gets matched.\n  # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)\n  # that gets matched. If you unset all POWERLEVEL9K_AWS_*CONTENT_EXPANSION parameters,\n  # you'll see this value in your prompt. The second element of each pair in\n  # POWERLEVEL9K_AWS_CLASSES defines the profile class. Patterns are tried in order. The\n  # first match wins.\n  #\n  # For example, given these settings:\n  #\n  #   typeset -g POWERLEVEL9K_AWS_CLASSES=(\n  #     '*prod*'  PROD\n  #     '*test*'  TEST\n  #     '*'       DEFAULT)\n  #\n  # If your current AWS profile is \"company_test\", its class is TEST\n  # because \"company_test\" doesn't match the pattern '*prod*' but does match '*test*'.\n  #\n  # You can define different colors, icons and content expansions for different classes:\n  #\n  #   typeset -g POWERLEVEL9K_AWS_TEST_FOREGROUND=28\n  #   typeset -g POWERLEVEL9K_AWS_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  #   typeset -g POWERLEVEL9K_AWS_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'\n  typeset -g POWERLEVEL9K_AWS_CLASSES=(\n      # '*prod*'  PROD    # These values are examples that are unlikely\n      # '*test*'  TEST    # to match your needs. Customize them as needed.\n      '*'       DEFAULT)\n  # typeset -g POWERLEVEL9K_AWS_DEFAULT_FOREGROUND=7\n  # typeset -g POWERLEVEL9K_AWS_DEFAULT_BACKGROUND=1\n  # typeset -g POWERLEVEL9K_AWS_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #[ aws_eb_env: aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) ]#\n  # AWS Elastic Beanstalk environment color.\n  # typeset -g POWERLEVEL9K_AWS_EB_ENV_FOREGROUND=2\n  # typeset -g POWERLEVEL9K_AWS_EB_ENV_BACKGROUND=0\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_AWS_EB_ENV_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##########[ azure: azure account name (https://docs.microsoft.com/en-us/cli/azure) ]##########\n  # Show azure only when the the command you are typing invokes one of these tools.\n  # Tip: Remove the next line to always show azure.\n  typeset -g POWERLEVEL9K_AZURE_SHOW_ON_COMMAND='az|terraform|pulumi|terragrunt'\n  # Azure account name color.\n  # typeset -g POWERLEVEL9K_AZURE_FOREGROUND=7\n  # typeset -g POWERLEVEL9K_AZURE_BACKGROUND=4\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_AZURE_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ##########[ gcloud: google cloud account and project (https://cloud.google.com/) ]###########\n  # Show gcloud only when the the command you are typing invokes one of these tools.\n  # Tip: Remove the next line to always show gcloud.\n  typeset -g POWERLEVEL9K_GCLOUD_SHOW_ON_COMMAND='gcloud|gcs'\n  # Google cloud color.\n  # typeset -g POWERLEVEL9K_GCLOUD_FOREGROUND=7\n  # typeset -g POWERLEVEL9K_GCLOUD_BACKGROUND=4\n\n  # Google cloud format. Change the value of POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION and/or\n  # POWERLEVEL9K_GCLOUD_COMPLETE_CONTENT_EXPANSION if the default is too verbose or not informative\n  # enough. You can use the following parameters in the expansions. Each of them corresponds to the\n  # output of `gcloud` tool.\n  #\n  #   Parameter                | Source\n  #   -------------------------|--------------------------------------------------------------------\n  #   P9K_GCLOUD_CONFIGURATION | gcloud config configurations list --format='value(name)'\n  #   P9K_GCLOUD_ACCOUNT       | gcloud config get-value account\n  #   P9K_GCLOUD_PROJECT_ID    | gcloud config get-value project\n  #   P9K_GCLOUD_PROJECT_NAME  | gcloud projects describe $P9K_GCLOUD_PROJECT_ID --format='value(name)'\n  #\n  # Note: ${VARIABLE//\\%/%%} expands to ${VARIABLE} with all occurrences of '%' replaced with '%%'.\n  #\n  # Obtaining project name requires sending a request to Google servers. This can take a long time\n  # and even fail. When project name is unknown, P9K_GCLOUD_PROJECT_NAME is not set and gcloud\n  # prompt segment is in state PARTIAL. When project name gets known, P9K_GCLOUD_PROJECT_NAME gets\n  # set and gcloud prompt segment transitions to state COMPLETE.\n  #\n  # You can customize the format, icon and colors of gcloud segment separately for states PARTIAL\n  # and COMPLETE. You can also hide gcloud in state PARTIAL by setting\n  # POWERLEVEL9K_GCLOUD_PARTIAL_VISUAL_IDENTIFIER_EXPANSION and\n  # POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION to empty.\n  typeset -g POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION='${P9K_GCLOUD_PROJECT_ID//\\%/%%}'\n  typeset -g POWERLEVEL9K_GCLOUD_COMPLETE_CONTENT_EXPANSION='${P9K_GCLOUD_PROJECT_NAME//\\%/%%}'\n\n  # Send a request to Google (by means of `gcloud projects describe ...`) to obtain project name\n  # this often. Negative value disables periodic polling. In this mode project name is retrieved\n  # only when the current configuration, account or project id changes.\n  typeset -g POWERLEVEL9K_GCLOUD_REFRESH_PROJECT_NAME_SECONDS=60\n\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_GCLOUD_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #[ google_app_cred: google application credentials (https://cloud.google.com/docs/authentication/production) ]#\n  # Show google_app_cred only when the the command you are typing invokes one of these tools.\n  # Tip: Remove the next line to always show google_app_cred.\n  typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_SHOW_ON_COMMAND='terraform|pulumi|terragrunt'\n\n  # Google application credentials classes for the purpose of using different colors, icons and\n  # expansions with different credentials.\n  #\n  # POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES is an array with even number of elements. The first\n  # element in each pair defines a pattern against which the current kubernetes context gets\n  # matched. More specifically, it's P9K_CONTENT prior to the application of context expansion\n  # (see below) that gets matched. If you unset all POWERLEVEL9K_GOOGLE_APP_CRED_*CONTENT_EXPANSION\n  # parameters, you'll see this value in your prompt. The second element of each pair in\n  # POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES defines the context class. Patterns are tried in order.\n  # The first match wins.\n  #\n  # For example, given these settings:\n  #\n  #   typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES=(\n  #     '*:*prod*:*'  PROD\n  #     '*:*test*:*'  TEST\n  #     '*'           DEFAULT)\n  #\n  # If your current Google application credentials is \"service_account deathray-testing x@y.com\",\n  # its class is TEST because it doesn't match the pattern '* *prod* *' but does match '* *test* *'.\n  #\n  # You can define different colors, icons and content expansions for different classes:\n  #\n  #   typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_FOREGROUND=28\n  #   typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'\n  #   typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_CONTENT_EXPANSION='$P9K_GOOGLE_APP_CRED_PROJECT_ID'\n  typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES=(\n      # '*:*prod*:*'  PROD    # These values are examples that are unlikely\n      # '*:*test*:*'  TEST    # to match your needs. Customize them as needed.\n      '*'             DEFAULT)\n  # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_FOREGROUND=7\n  # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_BACKGROUND=4\n  # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  # Use POWERLEVEL9K_GOOGLE_APP_CRED_CONTENT_EXPANSION to specify the content displayed by\n  # google_app_cred segment. Parameter expansions are very flexible and fast, too. See reference:\n  # http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion.\n  #\n  # You can use the following parameters in the expansion. Each of them corresponds to one of the\n  # fields in the JSON file pointed to by GOOGLE_APPLICATION_CREDENTIALS.\n  #\n  #   Parameter                        | JSON key file field\n  #   ---------------------------------+---------------\n  #   P9K_GOOGLE_APP_CRED_TYPE         | type\n  #   P9K_GOOGLE_APP_CRED_PROJECT_ID   | project_id\n  #   P9K_GOOGLE_APP_CRED_CLIENT_EMAIL | client_email\n  #\n  # Note: ${VARIABLE//\\%/%%} expands to ${VARIABLE} with all occurrences of '%' replaced by '%%'.\n  typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_CONTENT_EXPANSION='${P9K_GOOGLE_APP_CRED_PROJECT_ID//\\%/%%}'\n\n  ###############################[ public_ip: public IP address ]###############################\n  # Public IP color.\n  # typeset -g POWERLEVEL9K_PUBLIC_IP_FOREGROUND=7\n  # typeset -g POWERLEVEL9K_PUBLIC_IP_BACKGROUND=0\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_PUBLIC_IP_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ########################[ vpn_ip: virtual private network indicator ]#########################\n  # VPN IP color.\n  # typeset -g POWERLEVEL9K_VPN_IP_FOREGROUND=0\n  # typeset -g POWERLEVEL9K_VPN_IP_BACKGROUND=6\n  # When on VPN, show just an icon without the IP address.\n  # Tip: To display the private IP address when on VPN, remove the next line.\n  typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION=\n  # Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN\n  # to see the name of the interface.\n  typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(gpd|wg|(.*tun))[0-9]*'\n  # If set to true, show one segment per matching network interface. If set to false, show only\n  # one segment corresponding to the first matching network interface.\n  # Tip: If you set it to true, you'll probably want to unset POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION.\n  typeset -g POWERLEVEL9K_VPN_IP_SHOW_ALL=false\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_VPN_IP_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ###########[ ip: ip address and bandwidth usage for a specified network interface ]###########\n  # IP color.\n  typeset -g POWERLEVEL9K_IP_BACKGROUND=4\n  typeset -g POWERLEVEL9K_IP_FOREGROUND=0\n  # The following parameters are accessible within the expansion:\n  #\n  #   Parameter             | Meaning\n  #   ----------------------+---------------\n  #   P9K_IP_IP         | IP address\n  #   P9K_IP_INTERFACE  | network interface\n  #   P9K_IP_RX_BYTES   | total number of bytes received\n  #   P9K_IP_TX_BYTES   | total number of bytes sent\n  #   P9K_IP_RX_RATE    | receive rate (since last prompt)\n  #   P9K_IP_TX_RATE    | send rate (since last prompt)\n  typeset -g POWERLEVEL9K_IP_CONTENT_EXPANSION='${P9K_IP_RX_RATE:+⇣$P9K_IP_RX_RATE }${P9K_IP_TX_RATE:+⇡$P9K_IP_TX_RATE }$P9K_IP_IP'\n  # Show information for the first network interface whose name matches this regular expression.\n  # Run `ifconfig` or `ip -4 a show` to see the names of all network interfaces.\n  typeset -g POWERLEVEL9K_IP_INTERFACE='e.*'\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_IP_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  #########################[ proxy: system-wide http/https/ftp proxy ]##########################\n  # Proxy color.\n  # typeset -g POWERLEVEL9K_PROXY_FOREGROUND=4\n  # typeset -g POWERLEVEL9K_PROXY_BACKGROUND=0\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_PROXY_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  ################################[ battery: internal battery ]#################################\n  # Show battery in red when it's below this level and not connected to power supply.\n  typeset -g POWERLEVEL9K_BATTERY_LOW_THRESHOLD=20\n  typeset -g POWERLEVEL9K_BATTERY_LOW_FOREGROUND=1\n  # Show battery in green when it's charging or fully charged.\n  typeset -g POWERLEVEL9K_BATTERY_{CHARGING,CHARGED}_FOREGROUND=2\n  # Show battery in yellow when it's discharging.\n  typeset -g POWERLEVEL9K_BATTERY_DISCONNECTED_FOREGROUND=3\n  # Battery pictograms going from low to high level of charge.\n  typeset -g POWERLEVEL9K_BATTERY_STAGES='\\uf58d\\uf579\\uf57a\\uf57b\\uf57c\\uf57d\\uf57e\\uf57f\\uf580\\uf581\\uf578'\n  # Don't show the remaining time to charge/discharge.\n  typeset -g POWERLEVEL9K_BATTERY_VERBOSE=false\n  # typeset -g POWERLEVEL9K_BATTERY_BACKGROUND=0\n\n  #####################################[ wifi: wifi speed ]#####################################\n  # WiFi color.\n  # typeset -g POWERLEVEL9K_WIFI_FOREGROUND=0\n  # typeset -g POWERLEVEL9K_WIFI_BACKGROUND=4\n  # Custom icon.\n  # typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  # Use different colors and icons depending on signal strength ($P9K_WIFI_BARS).\n  #\n  #   # Wifi colors and icons for different signal strength levels (low to high).\n  #   typeset -g my_wifi_fg=(0 0 0 0 0)                                # <-- change these values\n  #   typeset -g my_wifi_icon=('WiFi' 'WiFi' 'WiFi' 'WiFi' 'WiFi')     # <-- change these values\n  #\n  #   typeset -g POWERLEVEL9K_WIFI_CONTENT_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}$P9K_WIFI_LAST_TX_RATE Mbps'\n  #   typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}${my_wifi_icon[P9K_WIFI_BARS+1]}'\n  #\n  # The following parameters are accessible within the expansions:\n  #\n  #   Parameter             | Meaning\n  #   ----------------------+---------------\n  #   P9K_WIFI_SSID         | service set identifier, a.k.a. network name\n  #   P9K_WIFI_LINK_AUTH    | authentication protocol such as \"wpa2-psk\" or \"none\"; empty if unknown\n  #   P9K_WIFI_LAST_TX_RATE | wireless transmit rate in megabits per second\n  #   P9K_WIFI_RSSI         | signal strength in dBm, from -120 to 0\n  #   P9K_WIFI_NOISE        | noise in dBm, from -120 to 0\n  #   P9K_WIFI_BARS         | signal strength in bars, from 0 to 4 (derived from P9K_WIFI_RSSI and P9K_WIFI_NOISE)\n\n  ####################################[ time: current time ]####################################\n  # Current time color.\n  # typeset -g POWERLEVEL9K_TIME_FOREGROUND=0\n  # typeset -g POWERLEVEL9K_TIME_BACKGROUND=7\n  # Format for the current time: 09:51:02. See `man 3 strftime`.\n  typeset -g POWERLEVEL9K_TIME_FORMAT='%D{%H:%M:%S}'\n  # If set to true, time will update when you hit enter. This way prompts for the past\n  # commands will contain the start times of their commands as opposed to the default\n  # behavior where they contain the end times of their preceding commands.\n  typeset -g POWERLEVEL9K_TIME_UPDATE_ON_COMMAND=false\n  # Custom icon.\n  typeset -g POWERLEVEL9K_TIME_VISUAL_IDENTIFIER_EXPANSION=\n  # Custom prefix.\n  typeset -g POWERLEVEL9K_TIME_PREFIX='at '\n\n  # Example of a user-defined prompt segment. Function prompt_example will be called on every\n  # prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or\n  # POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and yellow text on red background\n  # greeting the user.\n  #\n  # Type `p10k help segment` for documentation and a more sophisticated example.\n  function prompt_example() {\n    p10k segment -b 1 -f 3 -i '⭐' -t 'hello, %n'\n  }\n\n  # User-defined prompt segments may optionally provide an instant_prompt_* function. Its job\n  # is to generate the prompt segment for display in instant prompt. See\n  # https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt.\n  #\n  # Powerlevel10k will call instant_prompt_* at the same time as the regular prompt_* function\n  # and will record all `p10k segment` calls it makes. When displaying instant prompt, Powerlevel10k\n  # will replay these calls without actually calling instant_prompt_*. It is imperative that\n  # instant_prompt_* always makes the same `p10k segment` calls regardless of environment. If this\n  # rule is not observed, the content of instant prompt will be incorrect.\n  #\n  # Usually, you should either not define instant_prompt_* or simply call prompt_* from it. If\n  # instant_prompt_* is not defined for a segment, the segment won't be shown in instant prompt.\n  function instant_prompt_example() {\n    # Since prompt_example always makes the same `p10k segment` calls, we can call it from\n    # instant_prompt_example. This will give us the same `example` prompt segment in the instant\n    # and regular prompts.\n    prompt_example\n  }\n\n  # User-defined prompt segments can be customized the same way as built-in segments.\n  # typeset -g POWERLEVEL9K_EXAMPLE_FOREGROUND=3\n  # typeset -g POWERLEVEL9K_EXAMPLE_VISUAL_IDENTIFIER_EXPANSION='⭐'\n\n  # Transient prompt works similarly to the builtin transient_rprompt option. It trims down prompt\n  # when accepting a command line. Supported values:\n  #\n  #   - off:      Don't change prompt when accepting a command line.\n  #   - always:   Trim down prompt when accepting a command line.\n  #   - same-dir: Trim down prompt when accepting a command line unless this is the first command\n  #               typed after changing current working directory.\n  typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=off\n\n  # Instant prompt mode.\n  #\n  #   - off:     Disable instant prompt. Choose this if you've tried instant prompt and found\n  #              it incompatible with your zsh configuration files.\n  #   - quiet:   Enable instant prompt and don't print warnings when detecting console output\n  #              during zsh initialization. Choose this if you've read and understood\n  #              https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt.\n  #   - verbose: Enable instant prompt and print a warning when detecting console output during\n  #              zsh initialization. Choose this if you've never tried instant prompt, haven't\n  #              seen the warning, or if you are unsure what this all means.\n  typeset -g POWERLEVEL9K_INSTANT_PROMPT=verbose\n\n  # Hot reload allows you to change POWERLEVEL9K options after Powerlevel10k has been initialized.\n  # For example, you can type POWERLEVEL9K_BACKGROUND=red and see your prompt turn red. Hot reload\n  # can slow down prompt by 1-2 milliseconds, so it's better to keep it turned off unless you\n  # really need it.\n  typeset -g POWERLEVEL9K_DISABLE_HOT_RELOAD=true\n\n  # If p10k is already loaded, reload configuration.\n  # This works even with POWERLEVEL9K_DISABLE_HOT_RELOAD=true.\n  (( ! $+functions[p10k] )) || p10k reload\n}\n\n# Tell `p10k configure` which file it should overwrite.\ntypeset -g POWERLEVEL9K_CONFIG_FILE=${${(%):-%x}:a}\n\n(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]}\n'builtin' 'unset' 'p10k_config_opts'\n"
  },
  {
    "path": ".config/zsh/.zprofile",
    "content": "# Auto start xorg\nif [ -z \"${DISPLAY}\" ] && [ \"${XDG_VTNR}\" -eq 1 ]; then\n  export XAUTHORITY=\"$HOME/.local/share/x11/xauthority\"\n  exec startx ~/.config/x11/xinitrc #&>/dev/null\nfi\n"
  },
  {
    "path": ".config/zsh/.zshrc",
    "content": "#!/bin/sh\n### Zsh specific settings\n# Completion\nautoload -Uz compinit\ncompinit\nunsetopt completealiases\nzstyle ':completion:*' rehash true\nzstyle -e ':completion:*:default' list-colors 'reply=(\"${PREFIX:+=(#bi)($PREFIX:t)(?)*==35=35}:${(s.:.)LS_COLORS}\")';\nzstyle ':completion:*:descriptions' format $'\\e[01;33m %d\\e[0m'\nzstyle ':completion:*:messages' format $'\\e[01;31m %d\\e[0m'\n\n# General opts\nsetopt autocd\nunsetopt beep notify\nbindkey -e\nzstyle :compinstall filename '/home/barbaross/.config/zsh/.zshrc'\n\n# History opts\nHISTFILE=~/.config/zsh/.zsh_history\nHISTSIZE=100000\nSAVEHIST=100000\nsetopt APPEND_HISTORY\nsetopt HIST_EXPIRE_DUPS_FIRST\nsetopt EXTENDED_HISTORY\nsetopt SHARE_HISTORY\n\n# hide division sign on incomplete line\nPROMPT_EOL_MARK=''\n\n# Make home/end/del keys work properly\nbindkey  \"^[[7~\"   beginning-of-line\nbindkey  \"^[[1~\"   beginning-of-line\nbindkey  \"^[[8~\"   end-of-line\nbindkey  \"^[[4~\"   end-of-line\nbindkey  \"^[[3~\"   delete-char\nbindkey  \"^[[5~\"   up-line-or-history\nbindkey  \"^[[6~\"   down-line-or-history\n\n# Preferred editor for local and remote sessions\nif [[ -n $SSH_CONNECTION ]]; then\n  export EDITOR='vim'\nelse\n  export EDITOR='emacs'\nfi\n\n# Source stuff\n. /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh\n. /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh\n. /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme\n. ~/.config/zsh/.p10k.zsh\n\n# Startup zoxide\neval \"$(zoxide init zsh)\"\n\n# fzf stuff\nexport FZF_BASE=/usr/bin/fzf\nexport FZF_DEFAULT_OPTS=$FZF_DEFAULT_OPTS'  --color fg:7,bg:-1,hl:6,fg+:6,bg+:-1,hl+:6 --color info:2,prompt:1,spinner:5,pointer:5,marker:3,header:8'\nsource /usr/share/fzf/key-bindings.zsh\n\n\n#for bat theme\nexport BAT_THEME=\"base16\"\n\n# Aliases\nalias weather=\"curl 'wttr.in/?T'\"\nalias svim=\"sudoedit\"\nalias ip=\"ip --color=auto\"\nalias diff='diff --color=auto'\nalias cht='f(){ curl -s \"cheat.sh/$(echo -n \"$*\"|jq -sRr @uri)\";};f'\nalias l=\"exa -la\"\nalias ls=\"exa\"\nalias li=\"exa --icons\"\nalias clip=\"xclip -sel clip\"\nalias cp=\"cp --reflink\" #to make lightweight copies w/ btrfs\nalias tksv='tmux kill-server'\nalias dotlink=\"stow --ignore='.git' --ignore='Scrots' --ignore='Boot' --ignore='.gitignore' --ignore='pkglist.txt' --ignore='README.md' -R --target=/home/barbarossa -d /home/barbarossa/Public/tower-dotfiles .\"\nalias fm=\"setsid -f nautilus .\"\nalias yayinst=\"yay -Slq | fzf -m --preview 'yay -Si {1}' | xargs -ro sudo yay -S\"\nalias cat=\"bat -p\"\nalias pfetch=\"curl -s https://raw.githubusercontent.com/dylanaraps/pfetch/master/pfetch | sh\"\nalias doom=\"~/.emacs.d/bin/doom\"\nalias vim=\"emacs -nw\"\nalias emacs=\"emacs -nw\"\nalias yay=\"paru\"\nalias sshpi=\"ssh -p 5522 barbaross@192.168.0.2\"\nalias ...='cd ../..'\nalias ....='cd ../../..'\nalias .....=\"cd ../../../..\"\nalias _=\"sudo\"\n\n### Functions\n# Colorized man pages\nman() {\n\tenv \\\n\t\tLESS_TERMCAP_mb=$(printf \"\\e[1;31m\") \\\n\t\tLESS_TERMCAP_md=$(printf \"\\e[1;31m\") \\\n\t\tLESS_TERMCAP_me=$(printf \"\\e[0m\") \\\n\t\tLESS_TERMCAP_se=$(printf \"\\e[0m\") \\\n\t\tLESS_TERMCAP_so=$(printf \"\\e[1;40;35m\") \\\n\t\tLESS_TERMCAP_ue=$(printf \"\\e[0m\") \\\n\t\tLESS_TERMCAP_us=$(printf \"\\e[1;33m\") \\\n\t\tman \"$@\"\n}\n\ne() {\n  if [[ $# -eq 0 ]]; then\n    /usr/bin/emacs # \"emacs\" is function, will cause recursion\n    return\n  fi\n  args=($*)\n  for ((i=0; i <= ${#args}; i++)); do\n    local a=${args[i]}\n    # NOTE: -c for creating new frame\n    if [[ ${a:0:1} == '-' && ${a} != '-c' && ${a} != '--' ]]; then\n      /usr/bin/emacs ${args[*]}\n      return\n    fi\n  done\n  setsid emacsclient -n -a /usr/bin/emacs ${args[*]}\n}\n\n# ls after a cd\ncl() {\n\tlocal dir=\"$1\"\n\tlocal dir=\"${dir:=$HOME}\"\n\tif [[ -d \"$dir\" ]]; then\n\t\tcd \"$dir\" >/dev/null\n\t\tls\n\telse\n\t\techo \"zsh: cl: $dir: Directory not found\"\n\tfi\n}\n\ndotgit() {\n\tgitdir=\"/home/barbarossa/Public/tower-dotfiles/\"\n\tgit -C $gitdir add .\n\tgit -C $gitdir commit -m \"$*\"\n\tgit -C $gitdir push\n}\n\n# one off calculator\ncalc() {\n\techo \"scale=3;$@\" | bc -l\n}\n"
  },
  {
    "path": ".gitignore",
    "content": ".config/zsh/.zsh_history\n.config/zsh/.zcompdump\n"
  },
  {
    "path": ".local/bin/colorpick.sh",
    "content": "#!/usr/bin/env bash\nset -euo pipefail\n\n#color=$(gpick -so 2>/dev/null)\ncolor=$(xcolor)\n\nif [ -n \"$color\" ]; then\n    random_file=$(mktemp --suffix \".png\")\n    convert -size 100x100 xc:\"$color\" \"$random_file\"\n    dunstify -i \"$random_file\" -a ColorPicker -u normal \"$color\"\nfi\n"
  },
  {
    "path": ".local/bin/dunst_logger.sh",
    "content": "#!/usr/bin/env bash\n#set -euo pipefail\n\n# Because certain programs like to insert their own newlines and fuck up my format (im looking at you thunderbird)\n# we need to crunch each input to ensure that each component is its own line in the log file\ncrunch_appname=$(echo \"$1\" | sed  '/^$/d')\ncrunch_summary=$(echo \"$2\" | sed  '/^$/d' | xargs)\ncrunch_body=$(echo \"$3\" | sed  '/^$/d' | xargs)\ncrunch_icon=$(echo \"$4\" | sed  '/^$/d')\ncrunch_urgency=$(echo \"$5\" | sed  '/^$/d')\ntimestamp=$(date +\"%I:%M %p\")\n\n# Rules for notifs that send their icons over the wire (w/o an actual path)\nif [[ \"$crunch_appname\" == \"Spotify\" ]]; then\n    random_name=$(mktemp --suffix \".png\")\n    artlink=$(playerctl metadata mpris:artUrl | sed -e 's/open.spotify.com/i.scdn.co/g')\n    curl -s \"$artlink\" -o \"$random_name\"\n    crunch_icon=$random_name\nelif [[ \"$crunch_appname\" == \"AN2Linux\" ]]; then\n    crunch_icon=\"/usr/share/icons/Nord-Icon/48x48/apps/android-sdk.svg\"\nfi\n    \n\necho -en \"$timestamp\\n$crunch_urgency\\n$crunch_icon\\n$crunch_body\\n$crunch_summary\\n$crunch_appname\\n\" >> /tmp/dunstlog\n\n\n#echo \"$crunch_appname\\n$crunch_summary\\n$crunch_body\\n$crunch_icon\\n$crunch_urgency\\x0f\" >> /tmp/dunstlog\n"
  },
  {
    "path": ".local/bin/eww_mouse.sh",
    "content": "#!/usr/bin/env bash\nset -euo pipefail\n\neww open main_bottom\n\nsleep 0.2\nWIN_ID=$(xdotool search --name 'Eww - main_bottom')\n\nxev -id \"$WIN_ID\" -event mouse | while read line; do\n     if [[ \"$line\" =~ ^LeaveNotify.* ]]; then\n         sleep 0.2\n         eww close main_bottom\n         pkill xev\n     fi\ndone\n"
  },
  {
    "path": ".local/bin/gamer_mode.sh",
    "content": "#!/bin/sh\n\n# Epic gamer mode activate!\nsystemctl --user stop xbanish\ndunstctl set-paused true\nsystemctl --user stop picom\n\n# Gamer time 😎\n\"$@\"\n\n# Le epic gamer mode deactivate!\nsystemctl --user start xbanish\ndunstctl set-paused false\nsystemctl --user start picom\n"
  },
  {
    "path": ".local/bin/gif",
    "content": "#!/bin/bash\n\nif pgrep -f giph &>/dev/null; then\n\tgiph --stop &>/dev/null\n\tnotify-send --app-name \"giph\" -u normal \"Stopping gif recording...\"\nelse\n\tnotify-send --app-name \"giph\" -u normal \"Select region to record\"\n\tsetsid -f giph -s -y ~/Pictures/Gifs/Recordings/$(date +%s).gif &>/dev/null\nfi\n"
  },
  {
    "path": ".local/bin/greenclip.sh",
    "content": "#!/bin/sh\n\ngreenclip print | sed '/^$/d' | rofi -theme ~/.config/rofi/configTall.rasi -dmenu -i -l 10 -p  -columns 1 | xargs -r -d'\\n' -I '{}' greenclip print '{}'\n\n"
  },
  {
    "path": ".local/bin/linkhandler",
    "content": "#!/bin/sh\n\n# Feed script a url or file location.\n# If an image, it will view in sxiv,\n# if a video or gif, it will view in mpv\n# if a music file or pdf, it will download,\n# otherwise it opens link in browser.\n\nexport BROWSER=/usr/bin/firefox\n# If no url given. Opens browser. For using script as $BROWSER.\n[ -z \"$1\" ] && { exit; }\n\ncase \"$1\" in\n\t*mkv|*webm|*mp4|*youtube.com/watch*|*youtube.com/playlist*|*youtu.be*|*hooktube.com*|*bitchute.com*)\n\t\tsetsid mpv --autofit=1366x768 --input-ipc-server=/tmp/mpvsoc$(date +%s) -quiet \"$1\" >/dev/null 2>&1 & ;;\n\t*torrent)\n\t\tsetsid transadd \"$1\" >/dev/null 2>&1 & ;;\n\t*png|*png*|*jpg|*jpg*|*jpe|*jpe*|*jpeg|*jpeg*)\n\t\tcurl -sL \"$1\" > \"/tmp/$(echo \"$1\" | sed \"s/.*\\///\")\" && feh --scale-down \"/tmp/$(echo \"$1\" | sed \"s/.*\\///\")\"  >/dev/null 2>&1 & ;;\n\t*pdf|*cbz|*cbr)\n\t\tcurl -sL \"$1\" > \"/tmp/$(echo \"$1\" | sed \"s/.*\\///;s/%20/ /g\")\" && zathura \"/tmp/$(echo \"$1\" | sed \"s/.*\\///;s/%20/ /g\")\"  >/dev/null 2>&1 & ;;\n\t*mp3|*flac|*opus|*mp3?source*)\n\t\tsetsid tsp curl -LO \"$1\" >/dev/null 2>&1 & ;;\n\t*gif*)\n\t\tcurl -sL \"$1\" > \"/tmp/$(echo \"$1\" | sed \"s/.*\\///\")\" && mpv --loop -quiet \"/tmp/$(echo \"$1\" | sed \"s/.*\\///\")\"  >/dev/null 2>&1 & ;;\n\t*)\n\t\tif [ -f \"$1\" ]; then \"$TERMINAL\" -e \"$EDITOR $1\"\n\t\t#elif [ -z \"$*\" ]; then exit 0\n\t\telse setsid $BROWSER \"$1\" >/dev/null 2>&1 & fi ;;\nesac\n"
  },
  {
    "path": ".local/bin/lockscreen.sh",
    "content": "#!/usr/bin/env bash\nset -euo pipefail\n\n#lock() {\n#    i3lock -n -c 242831ff -i ~/Pictures/lock_background3.png -t -e \\\n#        --indicator --force-clock --pass-media-keys --pass-power-keys --pass-volume-keys \\\n#        --insidevercolor=2e3440A8 --insidewrongcolor=2e3440A8 --insidecolor=2e344000 --ringwrongcolor=bf616a \\\n#        --ringcolor=81a1c1 --ringvercolor=88c0d0 --line-uses-inside --keyhlcolor=b48ead --bshlcolor=bf616a \\\n#        --separatorcolor=81a1c1 --verifcolor=88c0d0 --wrongcolor=bf616a --indpos=\"w/6:h/2-200\" --timecolor=e5e9f0 \\\n#        --timepos=\"w/6:h/2+50\" --timestr=\"%I:%M %p\" --datecolor=e5e9f0 --time-font=\"FiraCode Nerd Font\" \\\n#        --date-font=\"FiraCode Nerd Font\" --verif-font=\"FiraCode Nerd Font\" --wrong-font=\"FiraCode Nerd Font\" \\\n#        --greeter-font=\"FiraCode Nerd Font\" --greetertext=\"$USER\" --greetercolor=e5e9f0 --greeterpos=\"w/6:h/2-10\" \\\n#        --radius 120 --ring-width 3 --greetersize=36\n#}\n\ncachepath=$HOME/.cache/lockscreen\ncropuser=$cachepath/$USER-pic-crop.png\n\nwidth=3840       #$(xrandr --query | grep ' connected' | grep -o '[0-9][0-9]*x[0-9][0-9]*[^ ]*' | sed -r 's/^[^0-9]*([0-9]+x[0-9]+).*$/\\1/' |cut -d \"x\" -f 1 |head -n1)\nheight=2160    #$(xrandr --query | grep ' connected' | grep -o '[0-9][0-9]*x[0-9][0-9]*[^ ]*' | sed -r 's/^[^0-9]*([0-9]+x[0-9]+).*$/\\1/' |cut -d \"x\" -f 2 |head -n1)\nhalf_width=$((width/2))\nhalf_height=$((height/2))\n\ncropuser() {\n  userpic=~/Pictures/barbarossaCircle.png\n\n\tconvert $userpic -resize 170x170 -gravity Center \\( \\\n\t\t-size 170x170 xc:Black \\\n\t\t-fill White \\\n\t\t-draw \"circle 85 85 85 1\" \\\n\t\t-alpha Copy\\\n\t\t\\) -compose CopyOpacity -composite -trim $cropuser\n}\n\nblurbg() {\n    maim -u \"$cachepath/screenshot.png\"\n\tconvert \"$cachepath/screenshot.png\" \\\n\t\t-filter Gaussian \\\n\t\t-blur 0x27 \\\n\t\t\"$cachepath/screenshot-blur.png\"\n}\n\ngenbg() {\n\tif [[ ! -d $HOME/.cache/lockscreen ]]; then\n\t\tmkdir $HOME/.cache/lockscreen\n    cropuser\n\tfi\n\tblurbg\n\tcomposite -geometry \"+$((half_width-85))+$((half_height-137))\" $cropuser $cachepath/screenshot-blur.png $cachepath/screenshot-pic-blur.png\n}\n\nlock() {\n\ti3lock -n -c 00000000 -e --date-str=\"@$(uname -n)\" -i ~/Pictures/nordspace_lock.png -F --date-pos=\"w/2:h/2+90\" \\\n        --indicator --force-clock --pass-media-keys --pass-power-keys --pass-volume-keys --date-size=16 \\\n        --insidever-color=2e3440A8 --insidewrong-color=2e3440A8 --inside-color=2e344000 --ringwrong-color=bf616a \\\n        --ring-color=81a1c1 --ringver-color=88c0d0 --line-uses-inside --keyhl-color=b48ead --bshl-color=bf616a \\\n        --separator-color=81a1c1 --verif-color=88c0d0 --wrong-color=bf616a --ind-pos=\"w/2:h/2-42\" --time-color=e5e9f0 \\\n        --time-pos=\"w/2:h/2+35\" --time-str=\"%I:%M %p\" --date-color=e5e9f0 --time-font=\"FiraCode Nerd Font\" \\\n        --date-font=\"FiraCode Nerd Font\" --verif-font=\"FiraCode Nerd Font\" --wrong-font=\"FiraCode Nerd Font\" \\\n        --greeter-font=\"FiraCode Nerd Font:style=Bold\" --greeter-text=\"$USER\" --greeter-color=8fbcbb --greeter-pos=\"w/2:h/2+70\" \\\n        --radius 50 --ring-width 3 --greeter-size=18 --time-size=14 --verif-size=10 --wrong-size=10  --modif-size=9 --modif-pos=\"w/2:h/2-15\" #--no-verify\n}\n\nstatus=$(playerctl status || true)\n\n#genbg\nif [ \"$status\" == \"Playing\" ]; then\n\tplayerctl pause\nfi\ndunstctl set-paused true\n#if pgrep -x \"picom\" >/dev/null; then\n#\ttrue\n#else\n#\tsetsid -f picom --experimental-backends &\n#fi\n# If rofi is opened, it grabs the keyboard and borks i3lock. Not sure how to\n# take a general approach to see if the keyboard is actively grabbed\nif pgrep -x rofi; then\n\tkillall rofi\nfi\nlock || lockscreen.sh\nif [ \"$status\" == \"Playing\" ]; then\n\tplayerctl play\nfi\ndunstctl set-paused false\n"
  },
  {
    "path": ".local/bin/mp4",
    "content": "#!/bin/bash\n\nif pgrep -f giph &>/dev/null; then\n\tgiph --stop &>/dev/null\nelse\n\tnotify-send --app-name \"giph\" -u normal \"Select region to record\"\n\tsetsid -f giph -s -y -a --format mp4 ~/Videos/$(date +%s).mp4 &>/dev/null\nfi\n"
  },
  {
    "path": ".local/bin/power",
    "content": "#!/bin/sh\n\noptions=\" Lock\n Logout\n Hibernate\n Reboot\n Shutdown\"\n\nchoice=$(echo \"$options\" | rofi -config ~/.config/rofi/configPower.rasi -dmenu -p \"Power\")\n\ncase \"$choice\" in\n*Lock*)\n\tlockscreen.sh\n\t#light-locker-command -l\n\t;;\n*Logout*)\n\tqtile cmd-obj -o cmd -f shutdown\n\t#logout\n\t;;\n*Hibernate*)\n\tsystemctl hibernate\n\t;;\n*Reboot*)\n\tsystemctl reboot\n\t;;\n*Shutdown*)\n\tpoweroff\n\t;;\nesac\n"
  },
  {
    "path": ".local/bin/prtregion",
    "content": "#!/bin/sh\n\ncase \"$1\" in\n    -c|--clipboard)\n        notify-send -i /usr/share/icons/Nord-Icon/48x48/apps/accessories-screenshot.svg -a Screenshot -u normal -t 3000 'Select a region to screenshot'\n        maim -s | xclip -selection clipboard -t image/png\n        notify-send -i /usr/share/icons/Nord-Icon/48x48/apps/accessories-screenshot.svg -a Screenshot -u normal -t 3000 'Screenshot of region taken and saved to clipboard'\n        ;;\n    -d|--disk)    \n        notify-send -i /usr/share/icons/Nord-Icon/48x48/apps/accessories-screenshot.svg -a Screenshot -u normal -t 3000 'Select a region to screenshot'\n        maim -s ~/Pictures/Screenshots/$(date +%s).png | xclip -selection clipboard -t image/png\n        notify-send -i /usr/share/icons/Nord-Icon/48x48/apps/accessories-screenshot.svg -a Screenshot -u normal -t 3000 'Screenshot of region taken'\n        ;;\nesac\n              \n"
  },
  {
    "path": ".local/bin/prtscr",
    "content": "#!/bin/sh\n\nnotify-send -i /usr/share/icons/Nord-Icon/48x48/apps/accessories-screenshot.svg -a Screenshot -u normal -t 3000 'Screenshot will be taken in 5 seconds'\nlocation=~/Pictures/Screenshots/$(date +%s).png\nsleep 5\nmaim -q \"$location\"\nnotify-send -a Screenshot -i \"$location\" -u normal -t 3000 'Screenshot taken'\n\n"
  },
  {
    "path": ".local/bin/rofi-search.sh",
    "content": "#!/bin/sh\n\n# Will need to update usr/lib/node_modules/rofi-search/rofi-search when rofi-search updates to change default prompt\n\n#export ROFI_SEARCH='googler'\n#export GOOGLE_ARGS='[\"--count\", 13]'\nexport GOOGLE_API_KEY='AIzaSyCrJ4mbG-TrR0_VxaqM9rOzknhIAiCvDwc'\nexport GOOGLE_SEARCH_ID='b84e8a9005e8ce3b4'\nexport ROFI_SEARCH='cse'\n\nexport TITLE_COLOR='#5e81ac'\nexport ROFI_SEARCH_CMD='linkhandler $URL'\n\nrofi -modi blocks -blocks-wrap /usr/bin/rofi-search -show blocks -lines 13 -eh 4 -kb-custom-1 'Control+y' -theme ~/.config/rofi/configTall.rasi  \n"
  },
  {
    "path": ".local/bin/rofi-task",
    "content": "#!/usr/bin/env sh\n\nID=$(task export | jq -r 'sort_by( -.urgency )[] | [ (.id|tostring), .description ] | join(\"\t\")' | awk '!$1==\"0\"' |\n  rofi -no-auto-select -theme ~/.config/rofi/configTall.rasi -i -dmenu -p \"\" |\n  cut -f 1)\n[ -z \"$ID\" ] && echo \"Cancelled.\" && exit\n\nACTION=$(printf \"add\\nstart\\nstop\\nedit\\ndone\" | rofi -config ~/.config/rofi/configTall.rasi -no-auto-select -i -dmenu -p \"Action\")\n[ -z \"$ACTION\" ] && echo \"Cancelled.\" && exit\n\ntask \"$ID\" \"$ACTION\"\n"
  },
  {
    "path": ".local/bin/rofi_notes.sh",
    "content": "#!/bin/bash\n\nset -u\nset -e\n\nreadonly NOTES_FILE=~/Documents/quick_notes\n\nif [[ ! -a \"${NOTES_FILE}\" ]]; then\n    echo \"empty\" >> \"${NOTES_FILE}\"\nfi\n\nfunction get_notes()\n{\n    cat ${NOTES_FILE}\n}\n\nfunction main()\n{\n    local all_notes=\"$(get_notes)\"\n\n    local note=$( (echo \"${all_notes}\")  | rofi -theme ~/.config/rofi/configTall.rasi -dmenu -i -p \"\")\n    local matching=$( (echo \"${all_notes}\") | grep \"^${note}$\")\n\n    if [[ -n \"${matching}\" ]]; then\n        local new_notes=$( (echo \"${all_notes}\")  | grep -v \"^${note}$\" )\n    else\n        local new_notes=$( (echo -e \"${all_notes}\\n${note}\") | grep -v \"^$\")\n    fi\n\n    echo \"${new_notes}\" > \"${NOTES_FILE}\"\n}\n\nmain\n"
  },
  {
    "path": ".local/bin/rofi_notif_center.sh",
    "content": "#!/usr/bin/env bash\n#set -euo pipefail\n\n##### Useful settings #####\n\n# Directory to search for icons\ndirectory=\"/usr/share/icons/Nord-Icon/48x48/\"\n#In case there is no icon path provided, use appname to guess icons\nuse_appname=true\n\n###########################\n\n### Raw data\nraw=$(tac /tmp/dunstlog)\nappname=$(echo -n \"$raw\" | sed -n '1~6p')\nto_rofi=$(echo -n \"$raw\" | sed -n '2~6p;3~6p' | sed 's/\\&/&amp;/g')\nicon=$(echo -n \"$raw\" | sed -n '4~6p' | while read -r line; do echo \"$line\"; done)\nurgency=$(echo -n \"$raw\" | sed -n '5~6p')\ntimestamp=$(echo -n \"$raw\" | sed -n '6~6p')\n\n### Create Icon list to parse through with rofi\nwhile IFS= read -r i; do\n    if [[ -f \"$i\" ]]; then\n        full_path=\"$i\\n\"\n    elif [[ -n \"$i\" ]]; then\n        incomplete_icon_path=$(fd \"$i\" \"$directory\" | head -1)\n        full_path=\"${incomplete_icon_path}\\n\"\n    else\n        full_path=\"\\n\"\n    fi\n    icon_paths_list=\"${icon_paths_list}${full_path}\"\ndone <<< \"$icon\"\n\n### Create list of rows that are \"active\" i.e. low urgency for the -a flag on rofi\ncount=0\nwhile IFS= read -r u; do\n    if [[ \"$u\" == *\"LOW\"* ]]; then\n        active_list=${active_list}${active_list:+,}$count\n        count=$((count+1))\n    else\n        count=$((count+1))\n    fi\ndone <<< \"$urgency\"\n\n### Create list of urgent rows for rofi\ncount=0\nwhile IFS= read -r u; do\n    if [[ \"$u\" == *\"CRITICAL\"* ]]; then\n        urgent_list=${urgent_list}${urgent_list:+,}$count\n        count=$((count+1))\n    else\n        count=$((count+1))\n    fi\ndone <<< \"$urgency\"\n\n### Guess icon with appname\nreadarray -t app_array < <(echo -en \"$appname\")\napp_array=( \"${app_array[@],,}\" )\n##FIXME: if first notification doesnt have an icon path, notif center will only show latest notification. current workaround is to\n##enable dunst startup notification\nreadarray -t icon_path_array < <(echo -en \"$icon_paths_list\")\nif $use_appname; then\n    for i in \"${!icon_path_array[@]}\"; do\n        if [ -z \"${icon_path_array[$i]}\" ]; then\n            icon_path_array[$i]=\"${app_array[$i]}\"\n        fi\n    done\nfi\n\n### Bold appname\nreadarray -t timestamp_array < <(echo -en \"$timestamp\")\ncount=0\nwhile IFS= read -r a; do\n    app_spaces=$(printf %-42.42s \"$a\")\n    embolden_app=\"${embolden_app}${embolden_app:+\\n}<b>$app_spaces</b>${timestamp_array[$count]}\"\n    count=$((count+1))\ndone <<< \"$appname\"\n\n### insert embolden appname\nsummary_line=0\nbody_line=1\nreadarray -t appname_array < <(echo -en \"$embolden_app\")\nreadarray -t to_rofi_array < <(echo -en \"$to_rofi\")\nfor a in \"${appname_array[@]}\"; do\n    app_merge=\"${app_merge}${app_merge:+\\n}$a\\n${to_rofi_array[$summary_line]}\\n${to_rofi_array[$body_line]}\" \n    summary_line=$((summary_line+2))\n    body_line=$((body_line+2))\ndone\n\n### Insert icon paths\nappname_line=0\nsummary_line=1\nbody_line=2\nreadarray -t merged_app_array < <(echo -en \"$app_merge\")\nfor i in \"${icon_path_array[@]}\"; do\n    merge=\"${merged_app_array[$body_line]}\\\\\\0icon\\\\\\x1f${i}\"\n    amend=\"${amend}${amend:+\\n}${merged_app_array[$appname_line]}\\n${merged_app_array[$summary_line]}\\n$merge\"\n    appname_line=$((appname_line+3)) \n    summary_line=$((summary_line+3))\n    body_line=$((body_line+3))\ndone\n\n### Final prep\nseparation=$(sed '0~3 s/$/\\x0f/g' <(echo -en \"$amend\"))\nfinal_rofi=$(sed ':a;/\\x0f$/{N;s/\\n//;ba}'   <(echo -n \"$separation\"))\n\n### Eventual Final command to be executed\nselection=$(echo -ne \"$final_rofi\" | rofi -markup-rows -theme ~/.config/rofi/configNotif.rasi -dmenu -eh 3 -a \"$active_list\" -u \"$urgent_list\" -sep '\\x0f' -p \"Notification Center\" -no-fixed-num-lines -lines 8 -i -no-config)\n\n### If a notification was selected, delete it from the logs\nif [ -n \"$selection\" ]; then\n    remove_markup=$(echo -n \"$selection\" | sed -e 's/<[^>]*>//g')\n    extract_date=\"${remove_markup:42:8}\"\n    remove_whitespace=$(echo -ne \"$remove_markup\" | sed '1~3 s/\\s.*$//')\n    add_timestamp=\"$remove_whitespace\\n.*\\n.*\\n$extract_date\\n\"\n    reverse_search=$(tac <(echo -ne \"$add_timestamp\") | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g')\n    sed -i \"N;N;N;N;N; /^$reverse_search$/d\" /tmp/dunstlog\nfi\n"
  },
  {
    "path": ".local/bin/screensaver",
    "content": "#!/usr/bin/env bash\n\n#for mon_id in $(bspc query -M); do\n#       \tbspc rule -a '*:*' -o monitor=\"$mon_id\"\n#       \turxvt -name cmatrixterm -e zsh -ic \"timeout 178 cbonsai -S -M 20 -L 105 -b 2\" & #unimatrix -fans 88 -l 'o' -t 178 &\n #      \tbspc subscribe node_add -c 1 > /dev/null\n#done\n#wait -n\n#jobs -rp | xargs -r -n1 kill\n\n#tmux new-session -d -s matrix timeout 178 pipes.sh -t 1 -r 8000 #cbonsai -i -M 15 -L 150 -b 2 -m \"$(fortune -e tao wisdom science medicine)\" \n#unimatrix -fans 88 -l 'o' -t 178\n\n#urxvt -name cmatrixterm -e tmux attach -t matrix \\; set status off & disown\n\nalacritty -o window.startup_mode=Fullscreen --class cmatrixterm -e bash -c 'sleep 0.2; timeout 178 pipes.sh -t 1 -r 8000'\n#-o window.startup_mode=Fullscreen \n\n#tmux attach -t matrix \\; set status off & disown\n\n#sleep 0.1\n#qtile cmd-obj -o window -f toggle_fullscreen\n#wid=$(xdotool search --classname \"cmatrixterm\")\n#xdotool windowmove $wid -3 -3\n#xdotool windowsize $wid 100% 100%\n#wmctrl -r matrix -b toggle,fullscreen\n"
  },
  {
    "path": ".local/bin/toggle_qbar.sh",
    "content": "#!/usr/bin/env bash\n\nstatus=$(eww windows | grep \"*\" | wc -l)\n\nif [ $status -eq 3 ]; then\n\tqtile cmd-obj -o cmd -f hide_show_bar -a top\n\tqtile cmd-obj -o cmd -f eval -a \"self.current_screen.top.size += 18\" && qtile cmd-obj -o cmd -f eval -a \"self.current_group.layout_all()\"\n\t#feh-blur -s\n\t#feh --no-fehbg --bg-fill ~/Pictures/colors/242831.png\n\t#cky &\nelse\n\t#pkill -f conky\n\t#feh-blur --darken 0 -b 6 &\n\tqtile cmd-obj -o cmd -f eval -a \"self.current_screen.top.size -= 18\" && qtile cmd-obj -o cmd -f eval -a \"self.current_group.layout_all()\"\n\tqtile cmd-obj -o cmd -f hide_show_bar -a top\nfi\n"
  },
  {
    "path": ".local/bin/toggledunst",
    "content": "#!/bin/sh\n\nif [ \"$(dunstctl is-paused)\" = \"false\" ];\nthen\n\tdunstify -u normal -a dunst -t 3000 -r 669 \"Dunst disabled\"\n\tsleep 3\n\tdunstctl set-paused true\n\tpolybar-msg hook dunst 2\nelse\n\t dunstctl set-paused false\n\t dunstify -u normal -a dunst -t 3000 -r 669 \"Dunst enabled\"\n\t polybar-msg hook dunst 1\nfi\n"
  },
  {
    "path": ".local/bin/togglepicom",
    "content": "#!/bin/sh\n\nif pidof picom;\nthen\n\tkillall picom;\n\tnotify-send -a Picom -i /usr/share/icons/Nord-Icon/48x48/apps/picom.svg -u normal -t 3000 \"Picom killed\"\t\n\t#dunstify -u normal -r 609 -t 3000 \"Picom killed\"\nelse\n\tpicom --experimental-backends &\n\tnotify-send -a Picom -i /usr/share/icons/Nord-Icon/48x48/apps/picom.svg -u normal -t 3000 \"Picom Started\"\n\t#dunstify -u normal -r 609 -t 3000 \"Picom Started\"\nfi\n"
  },
  {
    "path": ".local/bin/updates.sh",
    "content": "#!/bin/sh\n\nexport PATH=\"/home/barbarossa/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl\"\nexport DISPLAY=\":0\"\nexport XAUTHORITY=\"/home/barbarossa/.Xauthority\"\nexport XDG_RUNTIME_DIR=\"/run/user/1000\"\nexport DBUS_SESSION_BUS_ADDRESS=\"unix:path=/run/user/1000/bus\"\n\nif ! updates_arch=$(checkupdates 2> /dev/null | wc -l ); then\n    updates_arch=0\nfi\n\nif ! updates_aur=$(paru -Qua 2> /dev/null | wc -l); then\n    updates_aur=0\nfi\n\nupdates=$((\"$updates_arch\" + \"$updates_aur\"))\n\nif [ \"$updates\" -gt 0 ]; then\n    #echo \" $updates\"\n    notify-send -u normal -t 3000 -a Pacman -i /usr/share/icons/Nord-Icon/48x48/apps/system-software-update.svg \"Updates: $updates\"\nelse\n    echo \"\"\nfi\n\n"
  },
  {
    "path": ".local/bin/vol",
    "content": "#!/bin/sh\ncolor=\"#afb7d2'>\"\ncol=\"<span color='\"\nend=\"</span>\"\nFULL=\"\"\nEMPTY=\"\"\nvalue=\"${3:-5}\"\n\ncase $1 in\npulse)\n\tcase $2 in\n\t\tup) currentVolume=$(pulsemixer --get-volume | awk '{print $1}')\n\t\t\tif [[ \"$currentVolume\" -ge \"100\" ]]; then\n\t\t\t\tpulsemixer --max-volume 100\n\t\t\telse\n\t\t\t\tpulsemixer --change-volume +\"$value\"\n\t\t\tfi\n\t\t\tlabel=\"\" \n\t\t;;\n\t\tdown) pulsemixer --change-volume -\"$value\"\n\t\t\tlabel=\"\"\n\t\t;;\n\t\tmute) muted=$(pulsemixer --get-mute)\n\t\t\tif [[ \"$muted\" == \"0\" ]]; then\n\t\t\t\tpulsemixer --toggle-mute\n\t\t\t\t#dunstify -u normal -t 3000 -r 5421 ' Audio muted'\n\t\t\t\texit 0\n\t\t\telse \n\t\t\t\tpulsemixer --toggle-mute\n\t\t\t\tlabel=\"\"\n\t\t\tfi\n\tesac\n\tvol=$(pulsemixer --get-volume | awk '{print $1}')\n\t;;\npulsemic)\n\tcase $2 in\n\t\tup) currentVolume=$(pulsemixer --id source-1 --get-volume | awk '{print $1}')\n\t\t\tif [[ \"$currentVolume\" -ge \"100\" ]]; then\n\t\t\t\tpulsemixer --max-volume 100 --id source-1\n\t\t\telse\n\t\t\t\tpulsemixer --id source-1 --change-volume +\"$value\" \n\t\t\tfi\n\t\t\tlabel=\"\" \n\t\t;;\n\t\tdown) pulsemixer --id source-1 --change-volume -\"$value\"\n\t\t\tlabel=\"\"\n\t\t;;\n\t\tmute) muted=$(pulsemixer --id source-1 --get-mute)\n\t\t\tif [[ \"$muted\" == \"0\" ]]; then\n\t\t\t\tpulsemixer --toggle-mute --id source-1\n\t\t\t\tnotify-send -u normal ' Mic muted'\n\t\t\t\texit 0\n\t\t\telse \n\t\t\t\tpulsemixer --toggle-mute --id source-1\n\t\t\t\tlabel=\"\"\n\t\t\tfi\n\tesac\n\tvol=$(pulsemixer --id source-1 --get-volume | awk '{print $1}')\n\tnotify-send -u normal \"$label Mic Volume: $vol%\"\n\t;;\n\nmpc)\n\tcase $2 in\n\tup)\n\t\tmpc volume +\"$value\"\n\t\t;;\n\tdown)\n\t\tmpc volume -\"$value\"\n\t\t;;\n\tesac\n\tvol=$(mpc volume | awk -F \"\\t|%|:\" '{ print $2 }' | tr -d \" \")\n\tlabel=\"MPD\"\n\t;;\nesac\n\nbarFull=$(seq -s \"$FULL\" $((vol / 10)) | sed 's/[0-9]//g')\nbarEmpty=$(seq -s \"$EMPTY\" $((11 - vol / 10)) | sed 's/[0-9]//g')\n#dunstify -t 3000 -r 2593 -u normal \"$label Volume: $vol%\" \"$col$color$barFull$end$barEmpty\"\n"
  },
  {
    "path": ".local/share/icons/Nord-Icon/index.theme",
    "content": "[Icon Theme]\nName=Nord-Icon\nComment=Papirus icon theme\nInherits=breeze,hicolor\n\nExample=folder\n\nFollowsColorScheme=true\n\nDesktopDefault=48\nDesktopSizes=16,22,24,32,48,64\nToolbarDefault=22\nToolbarSizes=16,22,24,32,48\nMainToolbarDefault=22\nMainToolbarSizes=16,22,24,32,48\nSmallDefault=16\nSmallSizes=16,22,24,32,48\nPanelDefault=48\nPanelSizes=16,22,24,32,48,64\nDialogDefault=48\nDialogSizes=16,22,24,32,48,64\n\n# Directory list\nDirectories=8x8/emblems,16x16/actions,16x16/apps,16x16/categories,16x16/devices,16x16/emblems,16x16/emotes,16x16/mimetypes,16x16/panel,16x16/places,16x16/status,16x16@2x/actions,16x16@2x/apps,16x16@2x/categories,16x16@2x/devices,16x16@2x/emblems,16x16@2x/emotes,16x16@2x/mimetypes,16x16@2x/panel,16x16@2x/places,16x16@2x/status,18x18/actions,18x18@2x/actions,22x22/actions,22x22/animations,22x22/apps,22x22/categories,22x22/devices,22x22/emblems,22x22/emotes,22x22/mimetypes,22x22/panel,22x22/places,22x22/status,22x22@2x/actions,22x22@2x/animations,22x22@2x/apps,22x22@2x/categories,22x22@2x/devices,22x22@2x/emblems,22x22@2x/emotes,22x22@2x/mimetypes,22x22@2x/panel,22x22@2x/places,22x22@2x/status,24x24/actions,24x24/animations,24x24/apps,24x24/categories,24x24/devices,24x24/emblems,24x24/emotes,24x24/mimetypes,24x24/panel,24x24/places,24x24/status,24x24@2x/actions,24x24@2x/animations,24x24@2x/apps,24x24@2x/categories,24x24@2x/devices,24x24@2x/emblems,24x24@2x/emotes,24x24@2x/mimetypes,24x24@2x/panel,24x24@2x/places,24x24@2x/status,32x32/actions,32x32/apps,32x32/categories,32x32/devices,32x32/emblems,32x32/emotes,32x32/mimetypes,32x32/places,32x32/status,32x32@2x/actions,32x32@2x/apps,32x32@2x/categories,32x32@2x/devices,32x32@2x/emblems,32x32@2x/emotes,32x32@2x/mimetypes,32x32@2x/places,32x32@2x/status,48x48/actions,48x48/apps,48x48/categories,48x48/devices,48x48/emblems,48x48/emotes,48x48/mimetypes,48x48/places,48x48/status,48x48@2x/actions,48x48@2x/apps,48x48@2x/categories,48x48@2x/devices,48x48@2x/emblems,48x48@2x/emotes,48x48@2x/mimetypes,48x48@2x/places,48x48@2x/status,64x64/apps,64x64/categories,64x64/devices,64x64/mimetypes,64x64/places,64x64@2x/apps,64x64@2x/categories,64x64@2x/devices,64x64@2x/mimetypes,64x64@2x/places,96x96/apps,96x96/devices,96x96/mimetypes,96x96/places,128x128/apps,128x128/devices,128x128/mimetypes,128x128/places,symbolic/actions,symbolic/apps,symbolic/categories,symbolic/devices,symbolic/emblems,symbolic/emotes,symbolic/mimetypes,symbolic/places,symbolic/status\n\n[8x8/emblems]\nContext=Emblems\nSize=8\nType=Fixed\n\n[16x16/actions]\nContext=Actions\nSize=16\nType=Fixed\n\n[16x16/apps]\nContext=Applications\nSize=16\nType=Fixed\n\n[16x16/categories]\nContext=Categories\nSize=16\nType=Fixed\n\n[16x16/devices]\nContext=Devices\nSize=16\nType=Fixed\n\n[16x16/emblems]\nContext=Emblems\nSize=16\nType=Fixed\n\n[16x16/emotes]\nContext=Emotes\nSize=16\nType=Fixed\n\n[16x16/mimetypes]\nContext=MimeTypes\nSize=16\nType=Fixed\n\n[16x16/panel]\nContext=Status\nSize=16\nType=Fixed\n\n[16x16/places]\nContext=Places\nSize=16\nType=Fixed\n\n[16x16/status]\nContext=Status\nSize=16\nType=Fixed\n\n[16x16@2x/actions]\nContext=Actions\nSize=16\nScale=2\nType=Fixed\n\n[16x16@2x/apps]\nContext=Applications\nSize=16\nScale=2\nType=Fixed\n\n[16x16@2x/categories]\nContext=Categories\nSize=16\nScale=2\nType=Fixed\n\n[16x16@2x/devices]\nContext=Devices\nSize=16\nScale=2\nType=Fixed\n\n[16x16@2x/emblems]\nContext=Emblems\nSize=16\nScale=2\nType=Fixed\n\n[16x16@2x/emotes]\nContext=Emotes\nSize=16\nScale=2\nType=Fixed\n\n[16x16@2x/mimetypes]\nContext=MimeTypes\nSize=16\nScale=2\nType=Fixed\n\n[16x16@2x/panel]\nContext=Status\nSize=16\nScale=2\nType=Fixed\n\n[16x16@2x/places]\nContext=Places\nSize=16\nScale=2\nType=Fixed\n\n[16x16@2x/status]\nContext=Status\nSize=16\nScale=2\nType=Fixed\n\n[18x18/actions]\nContext=Actions\nSize=18\nType=Fixed\n\n[18x18@2x/actions]\nContext=Actions\nSize=18\nScale=2\nType=Fixed\n\n[22x22/actions]\nContext=Actions\nSize=22\nType=Fixed\n\n[22x22/animations]\nContext=Animations\nSize=22\nType=Fixed\n\n[22x22/apps]\nContext=Applications\nSize=22\nType=Fixed\n\n[22x22/categories]\nContext=Categories\nSize=22\nType=Fixed\n\n[22x22/devices]\nContext=Devices\nSize=22\nType=Fixed\n\n[22x22/emblems]\nContext=Emblems\nSize=22\nType=Fixed\n\n[22x22/emotes]\nContext=Emotes\nSize=22\nType=Fixed\n\n[22x22/mimetypes]\nContext=MimeTypes\nSize=22\nType=Fixed\n\n[22x22/panel]\nContext=Status\nSize=22\nType=Fixed\n\n[22x22/places]\nContext=Places\nSize=22\nType=Fixed\n\n[22x22/status]\nContext=Status\nSize=22\nType=Fixed\n\n[22x22@2x/actions]\nContext=Actions\nSize=22\nScale=2\nType=Fixed\n\n[22x22@2x/animations]\nContext=Animations\nSize=22\nScale=2\nType=Fixed\n\n[22x22@2x/apps]\nContext=Applications\nSize=22\nScale=2\nType=Fixed\n\n[22x22@2x/categories]\nContext=Categories\nSize=22\nScale=2\nType=Fixed\n\n[22x22@2x/devices]\nContext=Devices\nSize=22\nScale=2\nType=Fixed\n\n[22x22@2x/emblems]\nContext=Emblems\nSize=22\nScale=2\nType=Fixed\n\n[22x22@2x/emotes]\nContext=Emotes\nSize=22\nScale=2\nType=Fixed\n\n[22x22@2x/mimetypes]\nContext=MimeTypes\nSize=22\nScale=2\nType=Fixed\n\n[22x22@2x/panel]\nContext=Status\nSize=22\nScale=2\nType=Fixed\n\n[22x22@2x/places]\nContext=Places\nSize=22\nScale=2\nType=Fixed\n\n[22x22@2x/status]\nContext=Status\nSize=22\nScale=2\nType=Fixed\n\n[24x24/actions]\nContext=Actions\nSize=24\nType=Fixed\n\n[24x24/animations]\nContext=Animations\nSize=24\nType=Fixed\n\n[24x24/apps]\nContext=Applications\nSize=24\nType=Fixed\n\n[24x24/categories]\nContext=Categories\nSize=24\nType=Fixed\n\n[24x24/devices]\nContext=Devices\nSize=24\nType=Fixed\n\n[24x24/emblems]\nContext=Emblems\nSize=24\nType=Fixed\n\n[24x24/emotes]\nContext=Emotes\nSize=24\nType=Fixed\n\n[24x24/mimetypes]\nContext=MimeTypes\nSize=24\nType=Fixed\n\n[24x24/panel]\nContext=Status\nSize=24\nType=Fixed\n\n[24x24/places]\nContext=Places\nSize=24\nType=Fixed\n\n[24x24/status]\nContext=Status\nSize=24\nType=Fixed\n\n[24x24@2x/actions]\nContext=Actions\nSize=24\nScale=2\nType=Fixed\n\n[24x24@2x/animations]\nContext=Animations\nSize=24\nScale=2\nType=Fixed\n\n[24x24@2x/apps]\nContext=Applications\nSize=24\nScale=2\nType=Fixed\n\n[24x24@2x/categories]\nContext=Categories\nSize=24\nScale=2\nType=Fixed\n\n[24x24@2x/devices]\nContext=Devices\nSize=24\nScale=2\nType=Fixed\n\n[24x24@2x/emblems]\nContext=Emblems\nSize=24\nScale=2\nType=Fixed\n\n[24x24@2x/emotes]\nContext=Emotes\nSize=24\nScale=2\nType=Fixed\n\n[24x24@2x/mimetypes]\nContext=MimeTypes\nSize=24\nScale=2\nType=Fixed\n\n[24x24@2x/panel]\nContext=Status\nSize=24\nScale=2\nType=Fixed\n\n[24x24@2x/places]\nContext=Places\nSize=24\nScale=2\nType=Fixed\n\n[24x24@2x/status]\nContext=Status\nSize=24\nScale=2\nType=Fixed\n\n[32x32/actions]\nContext=Actions\nSize=32\nType=Fixed\n\n[32x32/apps]\nContext=Applications\nSize=32\nType=Fixed\n\n[32x32/categories]\nContext=Categories\nSize=32\nType=Fixed\n\n[32x32/devices]\nContext=Devices\nSize=32\nType=Fixed\n\n[32x32/emblems]\nContext=Emblems\nSize=32\nType=Fixed\n\n[32x32/emotes]\nContext=Emotes\nSize=32\nType=Fixed\n\n[32x32/mimetypes]\nContext=MimeTypes\nSize=32\nType=Fixed\n\n[32x32/places]\nContext=Places\nSize=32\nType=Fixed\n\n[32x32/status]\nContext=Status\nSize=32\nType=Fixed\n\n[32x32@2x/actions]\nContext=Actions\nSize=32\nScale=2\nType=Fixed\n\n[32x32@2x/apps]\nContext=Applications\nSize=32\nScale=2\nType=Fixed\n\n[32x32@2x/categories]\nContext=Categories\nSize=32\nScale=2\nType=Fixed\n\n[32x32@2x/devices]\nContext=Devices\nSize=32\nScale=2\nType=Fixed\n\n[32x32@2x/emblems]\nContext=Emblems\nSize=32\nScale=2\nType=Fixed\n\n[32x32@2x/emotes]\nContext=Emotes\nSize=32\nScale=2\nType=Fixed\n\n[32x32@2x/mimetypes]\nContext=MimeTypes\nSize=32\nScale=2\nType=Fixed\n\n[32x32@2x/places]\nContext=Places\nSize=32\nScale=2\nType=Fixed\n\n[32x32@2x/status]\nContext=Status\nSize=32\nScale=2\nType=Fixed\n\n[48x48/actions]\nContext=Actions\nSize=48\nType=Fixed\n\n[48x48/apps]\nContext=Applications\nSize=48\nType=Fixed\n\n[48x48/categories]\nContext=Categories\nSize=48\nType=Fixed\n\n[48x48/devices]\nContext=Devices\nSize=48\nType=Fixed\n\n[48x48/emblems]\nContext=Emblems\nSize=48\nType=Fixed\n\n[48x48/emotes]\nContext=Emotes\nSize=48\nType=Fixed\n\n[48x48/mimetypes]\nContext=MimeTypes\nSize=48\nType=Fixed\n\n[48x48/places]\nContext=Places\nSize=48\nType=Fixed\n\n[48x48/status]\nContext=Status\nSize=48\nMinSize=48\nMaxSize=512\nType=Scalable\n\n[48x48@2x/actions]\nContext=Actions\nSize=48\nScale=2\nType=Fixed\n\n[48x48@2x/apps]\nContext=Applications\nSize=48\nScale=2\nType=Fixed\n\n[48x48@2x/categories]\nContext=Categories\nSize=48\nScale=2\nType=Fixed\n\n[48x48@2x/devices]\nContext=Devices\nSize=48\nScale=2\nType=Fixed\n\n[48x48@2x/emblems]\nContext=Emblems\nSize=48\nScale=2\nType=Fixed\n\n[48x48@2x/emotes]\nContext=Emotes\nSize=48\nScale=2\nType=Fixed\n\n[48x48@2x/mimetypes]\nContext=MimeTypes\nSize=48\nScale=2\nType=Fixed\n\n[48x48@2x/places]\nContext=Places\nSize=48\nScale=2\nType=Fixed\n\n[48x48@2x/status]\nContext=Status\nSize=48\nMinSize=48\nMaxSize=512\nScale=2\nType=Scalable\n\n[64x64/apps]\nContext=Applications\nSize=64\nType=Fixed\n\n[64x64/categories]\nContext=Categories\nSize=64\nType=Fixed\n\n[64x64/devices]\nContext=Devices\nSize=64\nType=Fixed\n\n[64x64/mimetypes]\nContext=MimeTypes\nSize=64\nType=Fixed\n\n[64x64/places]\nContext=Places\nSize=64\nType=Fixed\n\n[64x64@2x/apps]\nContext=Applications\nSize=64\nScale=2\nType=Fixed\n\n[64x64@2x/categories]\nContext=Categories\nSize=64\nScale=2\nType=Fixed\n\n[64x64@2x/devices]\nContext=Devices\nSize=64\nScale=2\nType=Fixed\n\n[64x64@2x/mimetypes]\nContext=MimeTypes\nSize=64\nScale=2\nType=Fixed\n\n[64x64@2x/places]\nContext=Places\nSize=64\nScale=2\nType=Fixed\n\n[96x96/apps]\nContext=Applications\nSize=96\nType=Fixed\n\n[96x96/devices]\nContext=Devices\nSize=96\nType=Fixed\n\n[96x96/mimetypes]\nContext=MimeTypes\nSize=96\nType=Fixed\n\n[96x96/places]\nContext=Places\nSize=96\nType=Fixed\n\n[128x128/apps]\nContext=Applications\nSize=128\nMinSize=128\nMaxSize=512\nType=Scalable\n\n[128x128/devices]\nContext=Devices\nSize=128\nMinSize=128\nMaxSize=512\nType=Scalable\n\n[128x128/mimetypes]\nContext=MimeTypes\nSize=128\nMinSize=128\nMaxSize=512\nType=Scalable\n\n[128x128/places]\nContext=Places\nSize=128\nMinSize=128\nMaxSize=512\nType=Scalable\n\n[symbolic/actions]\nContext=Actions\nSize=16\nMinSize=16\nMaxSize=512\nType=Scalable\n\n[symbolic/apps]\nContext=Applications\nSize=16\nMinSize=16\nMaxSize=512\nType=Scalable\n\n[symbolic/categories]\nContext=Categories\nSize=16\nMinSize=16\nMaxSize=512\nType=Scalable\n\n[symbolic/devices]\nContext=Devices\nSize=16\nMinSize=16\nMaxSize=512\nType=Scalable\n\n[symbolic/emblems]\nContext=Emblems\nSize=16\nMinSize=16\nMaxSize=512\nType=Scalable\n\n[symbolic/emotes]\nContext=Emotes\nSize=16\nMinSize=16\nMaxSize=512\nType=Scalable\n\n[symbolic/mimetypes]\nContext=MimeTypes\nSize=16\nMinSize=16\nMaxSize=512\nType=Scalable\n\n[symbolic/places]\nContext=Places\nSize=16\nMinSize=16\nMaxSize=512\nType=Scalable\n\n[symbolic/status]\nContext=Status\nSize=16\nMinSize=16\nMaxSize=512\nType=Scalable\n"
  },
  {
    "path": ".local/share/icons/cursor/index.theme",
    "content": "[Icon Theme]\nName=X11 Default Black\nComment=Little bit edited default X11 cursors in black\nExample=hand1\n"
  },
  {
    "path": ".local/share/icons/cursor/source/X_cursor.in",
    "content": "32 9 9 X_cursor.png 1000\n"
  },
  {
    "path": ".local/share/icons/cursor/source/based_arrow_down.in",
    "content": "32 12 9 based_arrow_down.png 1000\n"
  },
  {
    "path": ".local/share/icons/cursor/source/based_arrow_up.in",
    "content": "32 12 9 based_arrow_up.png 1000\n"
  },
  {
    "path": ".local/share/icons/cursor/source/bottom_left_corner.in",
    "content": "32 11 11 bottom_left_corner.png 1000\n"
  },
  {
    "path": ".local/share/icons/cursor/source/bottom_right_corner.in",
    "content": "32 11 11 bottom_right_corner.png 1000\n"
  },
  {
    "path": ".local/share/icons/cursor/source/circle.in",
    "content": "32 5 5 circle.png 1000\n"
  },
  {
    "path": ".local/share/icons/cursor/source/copy.in",
    "content": "32 5 5 copy.png 1000\n"
  },
  {
    "path": ".local/share/icons/cursor/source/crossed_circle.in",
    "content": "24 10 10 crossed_circle.png 1000\n"
  },
  {
    "path": ".local/share/icons/cursor/source/fleur.in",
    "content": "32 11 10 fleur.png 1000\n"
  },
  {
    "path": ".local/share/icons/cursor/source/hand1.in",
    "content": "32 8 4 hand1.png 1000\n"
  },
  {
    "path": ".local/share/icons/cursor/source/left_ptr.in",
    "content": "32 5 5 left_ptr.png 1000\n"
  },
  {
    "path": ".local/share/icons/cursor/source/loading/watch.in",
    "content": "32 11 11 beachball1.png 25\n32 11 11 beachball2.png 25\n32 11 11 beachball3.png 25\n32 11 11 beachball4.png 25\n32 11 11 beachball5.png 25\n32 11 11 beachball6.png 25\n"
  },
  {
    "path": ".local/share/icons/cursor/source/make.sh",
    "content": "#!/bin/sh\nif ! [ -x \"$(command -v xcursorgen)\" ]; then\necho 'xcursorgen is not installed (part of \\e[4;32mx11-apps\\e[0m package in Devuan)'\nreturn\nfi\n[ -d \"../cursors\" ] && rm -rf ../cursors ; mkdir ../cursors\nxcursorgen hand1.in ../cursors/hand1\nxcursorgen hand1.in ../cursors/hand2\nxcursorgen left_ptr.in ../cursors/left_ptr\nxcursorgen xterm.in ../cursors/xterm\nxcursorgen crossed_circle.in ../cursors/crossed_circle\nxcursorgen right_ptr.in ../cursors/right_ptr\nxcursorgen copy.in ../cursors/copy\nxcursorgen circle.in ../cursors/circle\nxcursorgen sb_h_double_arrow.in ../cursors/sb_h_double_arrow\nxcursorgen sb_v_double_arrow.in ../cursors/sb_v_double_arrow\nxcursorgen top_left_corner.in ../cursors/top_left_corner\nxcursorgen top_right_corner.in ../cursors/top_right_corner\nxcursorgen bottom_left_corner.in ../cursors/bottom_left_corner\nxcursorgen bottom_right_corner.in ../cursors/bottom_right_corner\nxcursorgen watch.in ../cursors/watch\nxcursorgen sb_left_arrow.in ../cursors/sb_left_arrow\nxcursorgen sb_right_arrow.in ../cursors/sb_right_arrow\nxcursorgen sb_up_arrow.in ../cursors/sb_up_arrow\nxcursorgen sb_down_arrow.in ../cursors/sb_down_arrow\nxcursorgen based_arrow_down.in ../cursors/based_arrow_down\nxcursorgen based_arrow_up.in ../cursors/based_arrow_up\nxcursorgen fleur.in ../cursors/fleur\nxcursorgen sizing.in ../cursors/sizing\nxcursorgen question_arrow.in ../cursors/question_arrow\nxcursorgen X_cursor.in ../cursors/X_cursor\nln -s right_ptr ../cursors/arrow\nln -s sb_v_double_arrow ../cursors/bottom_side\nln -s sb_v_double_arrow ../cursors/double_arrow\nln -s right_ptr ../cursors/draft_large\nln -s right_ptr ../cursors/draft_small\nln -s sb_h_double_arrow ../cursors/left_side\nln -s sb_h_double_arrow ../cursors/right_side\nln -s left_ptr ../cursors/top_left_arrow\nln -s sb_v_double_arrow ../cursors/top_side\nln -s X_cursor ../cursors/pirate\n"
  },
  {
    "path": ".local/share/icons/cursor/source/question_arrow.in",
    "content": "32 5 5 question_arrow.png 1000\n"
  },
  {
    "path": ".local/share/icons/cursor/source/right_ptr.in",
    "content": "32 13 6 right_ptr.png 1000\n"
  },
  {
    "path": ".local/share/icons/cursor/source/sb_down_arrow.in",
    "content": "32 12 9 sb_down_arrow.png 1000\n"
  },
  {
    "path": ".local/share/icons/cursor/source/sb_h_double_arrow.in",
    "content": "32 12 9 sb_h_double_arrow.png 1000\n"
  },
  {
    "path": ".local/share/icons/cursor/source/sb_left_arrow.in",
    "content": "32 12 9 sb_left_arrow.png 1000\n"
  },
  {
    "path": ".local/share/icons/cursor/source/sb_right_arrow.in",
    "content": "32 12 9 sb_right_arrow.png 1000\n"
  },
  {
    "path": ".local/share/icons/cursor/source/sb_up_arrow.in",
    "content": "32 12 9 sb_up_arrow.png 1000\n"
  },
  {
    "path": ".local/share/icons/cursor/source/sb_v_double_arrow.in",
    "content": "32 8 11 sb_v_double_arrow.png 1000\n"
  },
  {
    "path": ".local/share/icons/cursor/source/sizing.in",
    "content": "32 5 5 sizing.png 1000\n"
  },
  {
    "path": ".local/share/icons/cursor/source/top_left_corner.in",
    "content": "32 11 11 top_left_corner.png 1000\n"
  },
  {
    "path": ".local/share/icons/cursor/source/top_right_corner.in",
    "content": "32 11 11 top_right_corner.png 1000\n"
  },
  {
    "path": ".local/share/icons/cursor/source/watch.in",
    "content": "32 5 5 beachball1.png 75\n32 5 5 beachball2.png 75\n32 5 5 beachball3.png 75\n32 5 5 beachball4.png 75\n32 5 5 beachball5.png 75\n32 5 5 beachball6.png 75\n32 5 5 beachball7.png 75\n32 5 5 beachball8.png 75\n"
  },
  {
    "path": ".local/share/icons/cursor/source/xterm.in",
    "content": "32 8 12 xterm.png 1000\n"
  },
  {
    "path": ".local/share/icons/default/index.theme",
    "content": "# This file is written by LXAppearance. Do not edit.\n[Icon Theme]\nName=Default\nComment=Default Cursor Theme\nInherits=capitaine-cursors\n"
  },
  {
    "path": ".local/share/icons/miniature/cursor.theme",
    "content": "[Icon Theme]\nInherits=miniature\n"
  },
  {
    "path": ".local/share/icons/miniature/cursors/busy.cursor",
    "content": "32 0 0 busy.png\n"
  },
  {
    "path": ".local/share/icons/miniature/cursors/diag1.cursor",
    "content": "32 0 0 diag1.png\n"
  },
  {
    "path": ".local/share/icons/miniature/cursors/diag2.cursor",
    "content": "32 0 0 diag2.png\n"
  },
  {
    "path": ".local/share/icons/miniature/cursors/help.cursor",
    "content": "32 0 0 help.png\n"
  },
  {
    "path": ".local/share/icons/miniature/cursors/hori.cursor",
    "content": "32 0 0 hori.png\n"
  },
  {
    "path": ".local/share/icons/miniature/cursors/link.cursor",
    "content": "32 0 0 link.png\n"
  },
  {
    "path": ".local/share/icons/miniature/cursors/move.cursor",
    "content": "32 0 0 move.png\n"
  },
  {
    "path": ".local/share/icons/miniature/cursors/nope.cursor",
    "content": "32 0 0 nope.png\n"
  },
  {
    "path": ".local/share/icons/miniature/cursors/norm.cursor",
    "content": "32 0 0 norm.png \n"
  },
  {
    "path": ".local/share/icons/miniature/cursors/prec.cursor",
    "content": "32 0 0 prec.png\n"
  },
  {
    "path": ".local/share/icons/miniature/cursors/text.cursor",
    "content": "32 0 0 text.png\n"
  },
  {
    "path": ".local/share/icons/miniature/cursors/up.cursor",
    "content": "32 0 0 up.png\n"
  },
  {
    "path": ".local/share/icons/miniature/cursors/vert.cursor",
    "content": "32 0 0 vert.png\n"
  },
  {
    "path": ".local/share/icons/miniature/cursors/work.cursor",
    "content": "32 0 0 work.png\n"
  },
  {
    "path": ".local/share/icons/miniature/cursors/write.cursor",
    "content": "32 0 0 write.png\n"
  },
  {
    "path": ".local/share/icons/miniature/index.theme",
    "content": "[Icon Theme]\nName=miniature\nComment=Tiny minimal cursor (ported by nxll)\n"
  },
  {
    "path": ".local/share/icons/pixelfun3/cursor.theme",
    "content": "[Icon Theme]\nInherits=pixelfun3\n"
  },
  {
    "path": ".local/share/icons/pixelfun3/index.theme",
    "content": "[Icon Theme]\nName=pixelfun3\nComment=Good white modern-looking theme with a piece of nostalgia\n"
  },
  {
    "path": ".local/share/icons/pixelfun3-eclipse/cursor.theme",
    "content": "[Icon Theme]\nInherits=pixelfun3-eclipse\n"
  },
  {
    "path": ".local/share/icons/pixelfun3-eclipse/index.theme",
    "content": "[Icon Theme]\nName=pixelfun3-eclipse\nComment=Good black modern-looking theme with a piece of nostalgia\n"
  },
  {
    "path": "Boot/enkel/.Rhistory",
    "content": ""
  },
  {
    "path": "Boot/enkel/index.html",
    "content": "<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  </head>\n  <body style=\"background: #2e3440;\">\n    <main></main>\n  <script type=\"text/javascript\" src=\"main.js\"></script></body>\n</html>\n"
  },
  {
    "path": "Boot/enkel/index.theme",
    "content": "[theme]\nname=enkel\ndescription=yeah...\nengine=lightdm-webkit2-greeter\nurl=index.html\nsession=gnome"
  },
  {
    "path": "Boot/enkel/main.js",
    "content": "! function(e) {\n    var t = {};\n\n    function n(o) {\n        if (t[o]) return t[o].exports;\n        var r = t[o] = {\n            i: o,\n            l: !1,\n            exports: {}\n        };\n        return e[o].call(r.exports, r, r.exports, n), r.l = !0, r.exports\n    }\n    n.m = e, n.c = t, n.d = function(e, t, o) {\n        n.o(e, t) || Object.defineProperty(e, t, {\n            enumerable: !0,\n            get: o\n        })\n    }, n.r = function(e) {\n        \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n            value: \"Module\"\n        }), Object.defineProperty(e, \"__esModule\", {\n            value: !0\n        })\n    }, n.t = function(e, t) {\n        if (1 & t && (e = n(e)), 8 & t) return e;\n        if (4 & t && \"object\" == typeof e && e && e.__esModule) return e;\n        var o = Object.create(null);\n        if (n.r(o), Object.defineProperty(o, \"default\", {\n                enumerable: !0,\n                value: e\n            }), 2 & t && \"string\" != typeof e)\n            for (var r in e) n.d(o, r, function(t) {\n                return e[t]\n            }.bind(null, r));\n        return o\n    }, n.n = function(e) {\n        var t = e && e.__esModule ? function() {\n            return e.default\n        } : function() {\n            return e\n        };\n        return n.d(t, \"a\", t), t\n    }, n.o = function(e, t) {\n        return Object.prototype.hasOwnProperty.call(e, t)\n    }, n.p = \"\", n(n.s = 26)\n}([function(e, t, n) {\n    \"use strict\";\n    e.exports = function(e) {\n        var t = [];\n        return t.toString = function() {\n            return this.map(function(t) {\n                var n = function(e, t) {\n                    var n = e[1] || \"\",\n                        o = e[3];\n                    if (!o) return n;\n                    if (t && \"function\" == typeof btoa) {\n                        var r = (s = o, \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(s)))) + \" */\"),\n                            i = o.sources.map(function(e) {\n                                return \"/*# sourceURL=\" + o.sourceRoot + e + \" */\"\n                            });\n                        return [n].concat(i).concat([r]).join(\"\\n\")\n                    }\n                    var s;\n                    return [n].join(\"\\n\")\n                }(t, e);\n                return t[2] ? \"@media \" + t[2] + \"{\" + n + \"}\" : n\n            }).join(\"\")\n        }, t.i = function(e, n) {\n            \"string\" == typeof e && (e = [\n                [null, e, \"\"]\n            ]);\n            for (var o = {}, r = 0; r < this.length; r++) {\n                var i = this[r][0];\n                null != i && (o[i] = !0)\n            }\n            for (r = 0; r < e.length; r++) {\n                var s = e[r];\n                null != s[0] && o[s[0]] || (n && !s[2] ? s[2] = n : n && (s[2] = \"(\" + s[2] + \") and (\" + n + \")\"), t.push(s))\n            }\n        }, t\n    }\n}, function(e, t, n) {\n    var o, r, i = {},\n        s = (o = function() {\n            return window && document && document.all && !window.atob\n        }, function() {\n            return void 0 === r && (r = o.apply(this, arguments)), r\n        }),\n        a = function(e) {\n            var t = {};\n            return function(e, n) {\n                if (\"function\" == typeof e) return e();\n                if (void 0 === t[e]) {\n                    var o = function(e, t) {\n                        return t ? t.querySelector(e) : document.querySelector(e)\n                    }.call(this, e, n);\n                    if (window.HTMLIFrameElement && o instanceof window.HTMLIFrameElement) try {\n                        o = o.contentDocument.head\n                    } catch (e) {\n                        o = null\n                    }\n                    t[e] = o\n                }\n                return t[e]\n            }\n        }(),\n        c = null,\n        l = 0,\n        u = [],\n        d = n(8);\n\n    function f(e, t) {\n        for (var n = 0; n < e.length; n++) {\n            var o = e[n],\n                r = i[o.id];\n            if (r) {\n                r.refs++;\n                for (var s = 0; s < r.parts.length; s++) r.parts[s](o.parts[s]);\n                for (; s < o.parts.length; s++) r.parts.push(I(o.parts[s], t))\n            } else {\n                var a = [];\n                for (s = 0; s < o.parts.length; s++) a.push(I(o.parts[s], t));\n                i[o.id] = {\n                    id: o.id,\n                    refs: 1,\n                    parts: a\n                }\n            }\n        }\n    }\n\n    function p(e, t) {\n        for (var n = [], o = {}, r = 0; r < e.length; r++) {\n            var i = e[r],\n                s = t.base ? i[0] + t.base : i[0],\n                a = {\n                    css: i[1],\n                    media: i[2],\n                    sourceMap: i[3]\n                };\n            o[s] ? o[s].parts.push(a) : n.push(o[s] = {\n                id: s,\n                parts: [a]\n            })\n        }\n        return n\n    }\n\n    function g(e, t) {\n        var n = a(e.insertInto);\n        if (!n) throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");\n        var o = u[u.length - 1];\n        if (\"top\" === e.insertAt) o ? o.nextSibling ? n.insertBefore(t, o.nextSibling) : n.appendChild(t) : n.insertBefore(t, n.firstChild), u.push(t);\n        else if (\"bottom\" === e.insertAt) n.appendChild(t);\n        else {\n            if (\"object\" != typeof e.insertAt || !e.insertAt.before) throw new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");\n            var r = a(e.insertAt.before, n);\n            n.insertBefore(t, r)\n        }\n    }\n\n    function m(e) {\n        if (null === e.parentNode) return !1;\n        e.parentNode.removeChild(e);\n        var t = u.indexOf(e);\n        t >= 0 && u.splice(t, 1)\n    }\n\n    function v(e) {\n        var t = document.createElement(\"style\");\n        if (void 0 === e.attrs.type && (e.attrs.type = \"text/css\"), void 0 === e.attrs.nonce) {\n            var o = function() {\n                0;\n                return n.nc\n            }();\n            o && (e.attrs.nonce = o)\n        }\n        return h(t, e.attrs), g(e, t), t\n    }\n\n    function h(e, t) {\n        Object.keys(t).forEach(function(n) {\n            e.setAttribute(n, t[n])\n        })\n    }\n\n    function I(e, t) {\n        var n, o, r, i;\n        if (t.transform && e.css) {\n            if (!(i = \"function\" == typeof t.transform ? t.transform(e.css) : t.transform.default(e.css))) return function() {};\n            e.css = i\n        }\n        if (t.singleton) {\n            var s = l++;\n            n = c || (c = v(t)), o = x.bind(null, n, s, !1), r = x.bind(null, n, s, !0)\n        } else e.sourceMap && \"function\" == typeof URL && \"function\" == typeof URL.createObjectURL && \"function\" == typeof URL.revokeObjectURL && \"function\" == typeof Blob && \"function\" == typeof btoa ? (n = function(e) {\n            var t = document.createElement(\"link\");\n            return void 0 === e.attrs.type && (e.attrs.type = \"text/css\"), e.attrs.rel = \"stylesheet\", h(t, e.attrs), g(e, t), t\n        }(t), o = function(e, t, n) {\n            var o = n.css,\n                r = n.sourceMap,\n                i = void 0 === t.convertToAbsoluteUrls && r;\n            (t.convertToAbsoluteUrls || i) && (o = d(o));\n            r && (o += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(r)))) + \" */\");\n            var s = new Blob([o], {\n                    type: \"text/css\"\n                }),\n                a = e.href;\n            e.href = URL.createObjectURL(s), a && URL.revokeObjectURL(a)\n        }.bind(null, n, t), r = function() {\n            m(n), n.href && URL.revokeObjectURL(n.href)\n        }) : (n = v(t), o = function(e, t) {\n            var n = t.css,\n                o = t.media;\n            o && e.setAttribute(\"media\", o);\n            if (e.styleSheet) e.styleSheet.cssText = n;\n            else {\n                for (; e.firstChild;) e.removeChild(e.firstChild);\n                e.appendChild(document.createTextNode(n))\n            }\n        }.bind(null, n), r = function() {\n            m(n)\n        });\n        return o(e),\n            function(t) {\n                if (t) {\n                    if (t.css === e.css && t.media === e.media && t.sourceMap === e.sourceMap) return;\n                    o(e = t)\n                } else r()\n            }\n    }\n    e.exports = function(e, t) {\n        if (\"undefined\" != typeof DEBUG && DEBUG && \"object\" != typeof document) throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n        (t = t || {}).attrs = \"object\" == typeof t.attrs ? t.attrs : {}, t.singleton || \"boolean\" == typeof t.singleton || (t.singleton = s()), t.insertInto || (t.insertInto = \"head\"), t.insertAt || (t.insertAt = \"bottom\");\n        var n = p(e, t);\n        return f(n, t),\n            function(e) {\n                for (var o = [], r = 0; r < n.length; r++) {\n                    var s = n[r];\n                    (a = i[s.id]).refs--, o.push(a)\n                }\n                e && f(p(e, t), t);\n                for (r = 0; r < o.length; r++) {\n                    var a;\n                    if (0 === (a = o[r]).refs) {\n                        for (var c = 0; c < a.parts.length; c++) a.parts[c]();\n                        delete i[a.id]\n                    }\n                }\n            }\n    };\n    var b, y = (b = [], function(e, t) {\n        return b[e] = t, b.filter(Boolean).join(\"\\n\")\n    });\n\n    function x(e, t, n, o) {\n        var r = n ? \"\" : o.css;\n        if (e.styleSheet) e.styleSheet.cssText = y(t, r);\n        else {\n            var i = document.createTextNode(r),\n                s = e.childNodes;\n            s[t] && e.removeChild(s[t]), s.length ? e.insertBefore(i, s[t]) : e.appendChild(i)\n        }\n    }\n}, function(e, t, n) {\n    \"use strict\";\n    e.exports = function(e, t) {\n        return \"string\" != typeof e ? e : (/^['\"].*['\"]$/.test(e) && (e = e.slice(1, -1)), /[\"'() \\t\\n]/.test(e) || t ? '\"' + e.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\") + '\"' : e)\n    }\n}, function(e, t) {\n    e.exports = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMDAlJyBoZWlnaHQ9JzEwMCUnIHZpZXdCb3g9Jy01IC0yIDUwIDYwJyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSdub25lJz48cGF0aCBmaWxsPScjZmZmJyBkPSdNMTQuNzU3IDQ2LjAyYTUuNjg4IDUuNjg4IDAgMCAxLTMuOTI5LTEuNTY5IDUuNzA1IDUuNzA1IDAgMCAxLS4yMDQtOC4wNjNMMjMuMzgyIDIyLjk3IDEwLjYzNyA5LjY0NWE1LjcwMyA1LjcwMyAwIDAgMSA4LjI0Mi03Ljg4NGwxNi41MDUgMTcuMjUzYTUuNzA3IDUuNzA3IDAgMCAxIC4wMTMgNy44NzJMMTguODkzIDQ0LjI0N2E1LjY5OSA1LjY5OSAwIDAgMS00LjEzNiAxLjc3M3onLz48L3N2Zz4=\"\n}, function(e, t) {\n    e.exports = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCIgY2xhc3M9Imxkcy1zdHJpcGUiPjxkZWZzPjxwYXR0ZXJuIHBhdHRlcm5Vbml0cz0idXNlclNwYWNlT25Vc2UiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBpZD0iYSI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTEuODQyKSI+PHBhdGggZmlsbD0iI2FmNjZmZSIgZD0iTS0yMC0xMGgxMHYxMjBoLTEweiIgdHJhbnNmb3JtPSJyb3RhdGUoMjAgNTAgNTApIHNjYWxlKDEuMikiLz48cGF0aCBmaWxsPSIjNjNlMmZmIiBkPSJNLTEwLTEwSDB2MTIwaC0xMHoiIHRyYW5zZm9ybT0icm90YXRlKDIwIDUwIDUwKSBzY2FsZSgxLjIpIi8+PHBhdGggZmlsbD0iI2FmNjZmZSIgZD0iTTAtMTBoMTB2MTIwSDB6IiB0cmFuc2Zvcm09InJvdGF0ZSgyMCA1MCA1MCkgc2NhbGUoMS4yKSIvPjxwYXRoIGZpbGw9IiM2M2UyZmYiIGQ9Ik0xMC0xMGgxMHYxMjBIMTB6IiB0cmFuc2Zvcm09InJvdGF0ZSgyMCA1MCA1MCkgc2NhbGUoMS4yKSIvPjxwYXRoIGZpbGw9IiNhZjY2ZmUiIGQ9Ik0yMC0xMGgxMHYxMjBIMjB6IiB0cmFuc2Zvcm09InJvdGF0ZSgyMCA1MCA1MCkgc2NhbGUoMS4yKSIvPjxwYXRoIGZpbGw9IiM2M2UyZmYiIGQ9Ik0zMC0xMGgxMHYxMjBIMzB6IiB0cmFuc2Zvcm09InJvdGF0ZSgyMCA1MCA1MCkgc2NhbGUoMS4yKSIvPjxwYXRoIGZpbGw9IiNhZjY2ZmUiIGQ9Ik00MC0xMGgxMHYxMjBINDB6IiB0cmFuc2Zvcm09InJvdGF0ZSgyMCA1MCA1MCkgc2NhbGUoMS4yKSIvPjxwYXRoIGZpbGw9IiM2M2UyZmYiIGQ9Ik01MC0xMGgxMHYxMjBINTB6IiB0cmFuc2Zvcm09InJvdGF0ZSgyMCA1MCA1MCkgc2NhbGUoMS4yKSIvPjxwYXRoIGZpbGw9IiNhZjY2ZmUiIGQ9Ik02MC0xMGgxMHYxMjBINjB6IiB0cmFuc2Zvcm09InJvdGF0ZSgyMCA1MCA1MCkgc2NhbGUoMS4yKSIvPjxwYXRoIGZpbGw9IiM2M2UyZmYiIGQ9Ik03MC0xMGgxMHYxMjBINzB6IiB0cmFuc2Zvcm09InJvdGF0ZSgyMCA1MCA1MCkgc2NhbGUoMS4yKSIvPjxwYXRoIGZpbGw9IiNhZjY2ZmUiIGQ9Ik04MC0xMGgxMHYxMjBIODB6IiB0cmFuc2Zvcm09InJvdGF0ZSgyMCA1MCA1MCkgc2NhbGUoMS4yKSIvPjxwYXRoIGZpbGw9IiM2M2UyZmYiIGQ9Ik05MC0xMGgxMHYxMjBIOTB6IiB0cmFuc2Zvcm09InJvdGF0ZSgyMCA1MCA1MCkgc2NhbGUoMS4yKSIvPjxwYXRoIGZpbGw9IiNhZjY2ZmUiIGQ9Ik0xMDAtMTBoMTB2MTIwaC0xMHpNMTEwLTEwaDEwdjEyMGgtMTB6IiB0cmFuc2Zvcm09InJvdGF0ZSgyMCA1MCA1MCkgc2NhbGUoMS4yKSIvPjxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0idHJhbnNsYXRlIiB2YWx1ZXM9IjAgMDsyNiAwIiBrZXlUaW1lcz0iMDsxIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIxLjlzIi8+PC9nPjwvcGF0dGVybj48L2RlZnM+PHJlY3Qgcng9IjEwIiByeT0iMTAiIHg9IjEwIiB5PSI0MCIgc3Ryb2tlPSIjMDQwMzBmIiBzdHJva2Utd2lkdGg9IjQiIHdpZHRoPSI4MCIgaGVpZ2h0PSIyMCIgZmlsbD0idXJsKCNhKSIvPjwvc3ZnPg==\"\n}, function(e, t, n) {\n    var o = n(6);\n    \"string\" == typeof o && (o = [\n        [e.i, o, \"\"]\n    ]);\n    var r = {\n        insertAt: \"top\",\n        singleton: !0,\n        hmr: !0,\n        transform: void 0,\n        insertInto: void 0\n    };\n    n(1)(o, r);\n    o.locals && (e.exports = o.locals)\n}, function(e, t, n) {\n    t = e.exports = n(0)(!1);\n    var o = n(2)(n(7));\n    t.push([e.i, \"::-webkit-input-placeholder{color:var(--c4)}::-moz-placeholder{color:var(--c4)}:-ms-input-placeholder{color:var(--c4)}::-ms-input-placeholder{color:var(--c4)}::placeholder{color:var(--c4)}.container.svelte-aie5gw{background:var(--c3);width:100%;max-width:400px;min-width:300px;max-height:500px;margin:50px;padding:40px;border-radius:8px;border:3px solid var(--c5);box-shadow:var(--shadow);transition:all .3s cubic-bezier(.455,.03,.515,.955);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:100;position:absolute;left:10%;top:39%}h1.svelte-aie5gw{color:#fff;letter-spacing:2px;margin:0 0 20px}input.svelte-aie5gw{background-color:transparent;border:none;outline:none;font-size:1em;font-family:scientifica;font-style:normal;color:#fff;padding:8px;width:100%;z-index:100;position:relative}form.svelte-aie5gw{display:flex;flex-direction:column;margin:0}.form-group.svelte-aie5gw{position:relative;margin-bottom:20px}.form-group.svelte-aie5gw>span.svelte-aie5gw{position:absolute;width:100%;border-radius:6px;top:95%;bottom:0;left:0;background:var(--c1);background:linear-gradient(45deg,var(--c1),var(--c2));transition:all .3s cubic-bezier(.785,.135,.15,.86);z-index:1}.form-group>input:focus+span.svelte-aie5gw{top:0}.error-group.svelte-aie5gw{text-align:center;color:#bf616a;font-style:italic;position:relative;overflow:hidden;transition:all .3s ease-in-out}.error-group.svelte-aie5gw p.svelte-aie5gw{margin:10px 0;position:absolute;left:0;right:0}button.svelte-aie5gw{border-radius:50%;background:var(--c1);background:linear-gradient(45deg,var(--c1),var(--c2));border:none;width:40px;height:40px;box-shadow:0 10px 20px rgba(129,161,193,.19),0 6px 6px rgba(129,161,193,.23);cursor:pointer;padding:10px;margin-left:auto;color:#fff;transition:all .3s cubic-bezier(.39,.575,.565,1)}button.svelte-aie5gw:focus,button.svelte-aie5gw:hover{box-shadow:0 3px 6px rgba(129,161,193,.16),0 3px 6px rgba(129,161,193,.23)}.bottom.svelte-aie5gw{display:flex;margin-top:20px}.session.svelte-aie5gw{display:flex;align-items:flex-end;font-family:scientifica}.session.svelte-aie5gw>span.svelte-aie5gw{color:var(--c4);margin-right:2px}.session-list.svelte-aie5gw{color:var(--c4);box-sizing:border-box;margin:0;padding-left:15px;border:none;-webkit-appearance:none;background-color:transparent;background-image:url(\" + o + \");background-repeat:no-repeat;background-position:0;background-size:contain;cursor:pointer;font-family:scientifica}.session-list.svelte-aie5gw option.svelte-aie5gw{background:var(--c3);font-size:1em;font-family:scientifica}\", \"\"])\n}, function(e, t) {\n    e.exports = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSIjNTE1MDY1IiBkPSJNOC43MSAxMS43MWwyLjU5IDIuNTljLjM5LjM5IDEuMDIuMzkgMS40MSAwbDIuNTktMi41OWMuNjMtLjYzLjE4LTEuNzEtLjcxLTEuNzFIOS40MWMtLjg5IDAtMS4zMyAxLjA4LS43IDEuNzF6Ii8+PC9zdmc+\"\n}, function(e, t) {\n    e.exports = function(e) {\n        var t = \"undefined\" != typeof window && window.location;\n        if (!t) throw new Error(\"fixUrls requires window.location\");\n        if (!e || \"string\" != typeof e) return e;\n        var n = t.protocol + \"//\" + t.host,\n            o = n + t.pathname.replace(/\\/[^\\/]*$/, \"/\");\n        return e.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(e, t) {\n            var r, i = t.trim().replace(/^\"(.*)\"$/, function(e, t) {\n                return t\n            }).replace(/^'(.*)'$/, function(e, t) {\n                return t\n            });\n            return /^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(i) ? e : (r = 0 === i.indexOf(\"//\") ? i : 0 === i.indexOf(\"/\") ? n + i : o + i.replace(/^\\.\\//, \"\"), \"url(\" + JSON.stringify(r) + \")\")\n        })\n    }\n}, function(e, t, n) {\n    var o = n(10);\n    \"string\" == typeof o && (o = [\n        [e.i, o, \"\"]\n    ]);\n    var r = {\n        insertAt: \"top\",\n        singleton: !0,\n        hmr: !0,\n        transform: void 0,\n        insertInto: void 0\n    };\n    n(1)(o, r);\n    o.locals && (e.exports = o.locals)\n}, function(e, t, n) {\n    (e.exports = n(0)(!1)).push([e.i, \".loader.svelte-1gjz2c5{position:absolute;display:flex;flex-direction:column;align-items:center;z-index:100}.loader.svelte-1gjz2c5 img.svelte-1gjz2c5{width:75px}.loader.svelte-1gjz2c5 span.svelte-1gjz2c5{font-size:1.6em;font-style:italic;color:var(--c3)}\", \"\"])\n}, function(e, t, n) {\n    var o = n(12);\n    \"string\" == typeof o && (o = [\n        [e.i, o, \"\"]\n    ]);\n    var r = {\n        insertAt: \"top\",\n        singleton: !0,\n        hmr: !0,\n        transform: void 0,\n        insertInto: void 0\n    };\n    n(1)(o, r);\n    o.locals && (e.exports = o.locals)\n}, function(e, t, n) {\n    (e.exports = n(0)(!1)).push([e.i, \".clock.svelte-6cac4v{display:flex}\", \"\"])\n}, function(e, t, n) {\n    var o = n(14);\n    \"string\" == typeof o && (o = [\n        [e.i, o, \"\"]\n    ]);\n    var r = {\n        insertAt: \"top\",\n        singleton: !0,\n        hmr: !0,\n        transform: void 0,\n        insertInto: void 0\n    };\n    n(1)(o, r);\n    o.locals && (e.exports = o.locals)\n}, function(e, t, n) {\n    (e.exports = n(0)(!1)).push([e.i, \"div.svelte-1bnanxq{display:flex;color:var(--c4);font-family:scientifica;position:absolute;top:0;right:0;padding:20px 20px 0 0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:100}.action.svelte-1bnanxq{cursor:pointer;opacity:.5;transition:all .3s ease-in-out}.action.svelte-1bnanxq:hover{opacity:1}.divider.svelte-1bnanxq{margin:0 10px}\", \"\"])\n}, function(e, t, n) {\n    e.exports = n.p + \"assets/background.jpg\"\n}, function(e, t, n) {\n    var o = n(17);\n    \"string\" == typeof o && (o = [\n        [e.i, o, \"\"]\n    ]);\n    var r = {\n        insertAt: \"top\",\n        singleton: !0,\n        hmr: !0,\n        transform: void 0,\n        insertInto: void 0\n    };\n    n(1)(o, r);\n    o.locals && (e.exports = o.locals)\n}, function(e, t, n) {\n    (e.exports = n(0)(!1)).push([e.i, \":root{--c1:#81a1c1;--c2:#81a1c1;--c3:#2e3440;--c4:#4c566a;--c5:#3b4252;--shadow:0 14px 28px rgba(4,3,15,0.25),0 10px 10px rgba(4,3,15,0.22);--shadow-h:0 19px 38px rgba(4,3,15,0.3),0 15px 12px rgba(4,3,15,0.22)}*{box-sizing:border-box}body,html{margin:0;padding:0;font-family:scientifica;font-size:14px;overflow:hidden;transition:opacity .3s ease-out}main{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative}.container__active{box-shadow:var(--shadow-h)!important}.imageReady{opacity:1!important}.error-show{height:35px}.logged-in{background:#000!important;opacity:0}.show-error{height:35px}.hide-error{height:0}.background.svelte-13zn5s{position:absolute;width:100%;height:100%;opacity:0;transition:opacity .3s ease-in}\", \"\"])\n}, function(e, t, n) {\n    var o = n(19);\n    \"string\" == typeof o && (o = [\n        [e.i, o, \"\"]\n    ]);\n    var r = {\n        insertAt: \"top\",\n        singleton: !0,\n        hmr: !0,\n        transform: void 0,\n        insertInto: void 0\n    };\n    n(1)(o, r);\n    o.locals && (e.exports = o.locals)\n}, function(e, t, n) {\n    t = e.exports = n(0)(!1);\n    var o = n(2),\n        r = o(n(20)),\n        i = o(n(21)),\n        s = o(n(22)),\n        a = o(n(23)),\n        c = o(n(24)),\n        l = o(n(25));\n    t.push([e.i, \"@font-face{font-family:scientifica;src:url(\" + r + ') format(\"woff2\"),url(' + i + ') format(\"woff\");font-style:normal;font-weight:400}@font-face{font-family:scientifica;src:url(' + s + ') format(\"woff2\"),url(' + a + ') format(\"woff\");font-style:italic;font-weight:400}@font-face{font-family:scientifica;src:url(' + c + ') format(\"woff2\"),url(' + l + ') format(\"woff\");font-style:bold;font-weight:400}', \"\"])\n}, function(e, t, n) {\n    e.exports = n.p + \"assets/scientifica.woff2\"\n}, function(e, t, n) {\n    e.exports = n.p + \"assets/scientifica.woff\"\n}, function(e, t, n) {\n    e.exports = n.p + \"assets/scientificaItalic.woff2\"\n}, function(e, t, n) {\n    e.exports = n.p + \"assets/scientificaItalic.woff\"\n}, function(e, t, n) {\n    e.exports = n.p + \"assets/scientificaBold.woff2\"\n}, function(e, t, n) {\n    e.exports = n.p + \"assets/scientificaBold.woff\"\n}, function(e, t, n) {\n    \"use strict\";\n\n    function o() {}\n    n.r(t);\n    const r = e => e;\n\n    function i(e) {\n        return e()\n    }\n\n    function s() {\n        return Object.create(null)\n    }\n\n    function a(e) {\n        e.forEach(i)\n    }\n\n    function c(e) {\n        return \"function\" == typeof e\n    }\n\n    function l(e, t) {\n        return e != e ? t == t : e !== t || e && \"object\" == typeof e || \"function\" == typeof e\n    }\n    const u = new Set;\n    let d, f = !1;\n\n    function p() {\n        u.forEach(e => {\n            e[0](window.performance.now()) || (u.delete(e), e[1]())\n        }), (f = u.size > 0) && requestAnimationFrame(p)\n    }\n\n    function g(e) {\n        let t;\n        return f || (f = !0, requestAnimationFrame(p)), {\n            promise: new Promise(n => {\n                u.add(t = [e, n])\n            }),\n            abort() {\n                u.delete(t)\n            }\n        }\n    }\n\n    function m(e, t) {\n        e.appendChild(t)\n    }\n\n    function v(e, t, n) {\n        e.insertBefore(t, n)\n    }\n\n    function h(e) {\n        e.parentNode.removeChild(e)\n    }\n\n    function I(e, t) {\n        for (let n = 0; n < e.length; n += 1) e[n] && e[n].d(t)\n    }\n\n    function b(e) {\n        return document.createElement(e)\n    }\n\n    function y(e) {\n        return document.createTextNode(e)\n    }\n\n    function x() {\n        return y(\" \")\n    }\n\n    function w() {\n        return y(\"\")\n    }\n\n    function M(e, t, n, o) {\n        return e.addEventListener(t, n, o), () => e.removeEventListener(t, n, o)\n    }\n\n    function j(e, t, n) {\n        null == n ? e.removeAttribute(t) : e.setAttribute(t, n)\n    }\n\n    function $(e, t) {\n        t = \"\" + t, e.data !== t && (e.data = t)\n    }\n\n    function S(e, t) {\n        for (let n = 0; n < e.options.length; n += 1) {\n            const o = e.options[n];\n            if (o.__value === t) return void(o.selected = !0)\n        }\n    }\n\n    function N(e, t) {\n        const n = document.createEvent(\"CustomEvent\");\n        return n.initCustomEvent(e, !1, !1, t), n\n    }\n    let C, Z = 0,\n        A = {};\n\n    function k(e, t, n, o, r, i, s, a = 0) {\n        const c = 16.666 / o;\n        let l = \"{\\n\";\n        for (let e = 0; e <= 1; e += c) {\n            const o = t + (n - t) * i(e);\n            l += 100 * e + `%{${s(o,1-o)}}\\n`\n        }\n        const u = l + `100% {${s(n,1-n)}}\\n}`,\n            f = `__svelte_${function(e){let t=5381,n=e.length;for(;n--;)t=(t<<5)-t^e.charCodeAt(n);return t>>>0}(u)}_${a}`;\n        if (!A[f]) {\n            if (!d) {\n                const e = b(\"style\");\n                document.head.appendChild(e), d = e.sheet\n            }\n            A[f] = !0, d.insertRule(`@keyframes ${f} ${u}`, d.cssRules.length)\n        }\n        const p = e.style.animation || \"\";\n        return e.style.animation = `${p?`${p}, `:\"\"}${f} ${o}ms linear ${r}ms 1 both`, Z += 1, f\n    }\n\n    function G(e, t) {\n        e.style.animation = (e.style.animation || \"\").split(\", \").filter(t ? e => e.indexOf(t) < 0 : e => -1 === e.indexOf(\"__svelte\")).join(\", \"), t && !--Z && requestAnimationFrame(() => {\n            if (Z) return;\n            let e = d.cssRules.length;\n            for (; e--;) d.deleteRule(e);\n            A = {}\n        })\n    }\n\n    function z(e) {\n        C = e\n    }\n\n    function B() {\n        if (!C) throw new Error(\"Function called outside component initialization\");\n        return C\n    }\n\n    function L(e) {\n        B().$$.on_mount.push(e)\n    }\n    const U = [],\n        D = Promise.resolve();\n    let _ = !1;\n    const T = [],\n        Y = [],\n        P = [];\n\n    function E() {\n        _ || (_ = !0, D.then(R))\n    }\n\n    function H(e) {\n        Y.push(e)\n    }\n\n    function R() {\n        const e = new Set;\n        do {\n            for (; U.length;) {\n                const e = U.shift();\n                z(e), O(e.$$)\n            }\n            for (; T.length;) T.shift()();\n            for (; Y.length;) {\n                const t = Y.pop();\n                e.has(t) || (t(), e.add(t))\n            }\n        } while (U.length);\n        for (; P.length;) P.pop()();\n        _ = !1\n    }\n\n    function O(e) {\n        e.fragment && (e.update(e.dirty), a(e.before_render), e.fragment.p(e.dirty, e.ctx), e.dirty = null, e.after_render.forEach(H))\n    }\n    let J, F;\n\n    function X() {\n        return J || (J = Promise.resolve()).then(() => {\n            J = null\n        }), J\n    }\n\n    function W(e, t, n) {\n        e.dispatchEvent(N(`${t?\"intro\":\"outro\"}${n}`))\n    }\n\n    function q() {\n        F = {\n            remaining: 0,\n            callbacks: []\n        }\n    }\n\n    function Q() {\n        F.remaining || a(F.callbacks)\n    }\n\n    function K(e) {\n        F.callbacks.push(e)\n    }\n\n    function V(e, t, n) {\n        let i, s, a = t(e, n),\n            c = !1,\n            l = 0;\n\n        function u() {\n            i && G(e, i)\n        }\n\n        function d() {\n            const {\n                delay: t = 0,\n                duration: n = 300,\n                easing: d = r,\n                tick: f = o,\n                css: p\n            } = a;\n            p && (i = k(e, 0, 1, n, t, d, p, l++)), f(0, 1);\n            const m = window.performance.now() + t,\n                v = m + n;\n            s && s.abort(), c = !0, s = g(e => {\n                if (c) {\n                    if (e >= v) return f(1, 0), u(), c = !1;\n                    if (e >= m) {\n                        const t = d((e - m) / n);\n                        f(t, 1 - t)\n                    }\n                }\n                return c\n            })\n        }\n        let f = !1;\n        return {\n            start() {\n                f || (G(e), \"function\" == typeof a ? (a = a(), X().then(d)) : d())\n            },\n            invalidate() {\n                f = !1\n            },\n            end() {\n                c && (u(), c = !1)\n            }\n        }\n    }\n\n    function ee(e, t, n) {\n        let i, s = t(e, n),\n            c = !0;\n        const l = F;\n\n        function u() {\n            const {\n                delay: t = 0,\n                duration: n = 300,\n                easing: u = r,\n                tick: d = o,\n                css: f\n            } = s;\n            f && (i = k(e, 1, 0, n, t, u, f));\n            const p = window.performance.now() + t,\n                m = p + n;\n            g(e => {\n                if (c) {\n                    if (e >= m) return d(0, 1), --l.remaining || a(l.callbacks), !1;\n                    if (e >= p) {\n                        const t = u((e - p) / n);\n                        d(1 - t, t)\n                    }\n                }\n                return c\n            })\n        }\n        return l.remaining += 1, \"function\" == typeof s ? X().then(() => {\n            s = s(), u()\n        }) : u(), {\n            end(t) {\n                t && s.tick && s.tick(1, 0), c && (i && G(e, i), c = !1)\n            }\n        }\n    }\n\n    function te(e, t, n, i) {\n        let s = t(e, n),\n            c = i ? 0 : 1,\n            l = null,\n            u = null,\n            d = null;\n\n        function f() {\n            d && G(e, d)\n        }\n\n        function p(e, t) {\n            const n = e.b - c;\n            return t *= Math.abs(n), {\n                a: c,\n                b: e.b,\n                d: n,\n                duration: t,\n                start: e.start,\n                end: e.start + t,\n                group: e.group\n            }\n        }\n\n        function m(t) {\n            const {\n                delay: n = 0,\n                duration: i = 300,\n                easing: m = r,\n                tick: v = o,\n                css: h\n            } = s, I = {\n                start: window.performance.now() + n,\n                b: t\n            };\n            t || (I.group = F, F.remaining += 1), l ? u = I : (h && (f(), d = k(e, c, t, i, n, m, h)), t && v(0, 1), l = p(I, i), H(() => W(e, t, \"start\")), g(t => {\n                if (u && t > u.start && (l = p(u, i), u = null, W(e, l.b, \"start\"), h && (f(), d = k(e, c, l.b, l.duration, 0, m, s.css))), l)\n                    if (t >= l.end) v(c = l.b, 1 - c), W(e, l.b, \"end\"), u || (l.b ? f() : --l.group.remaining || a(l.group.callbacks)), l = null;\n                    else if (t >= l.start) {\n                    const e = t - l.start;\n                    c = l.a + l.d * m(e / l.duration), v(c, 1 - c)\n                }\n                return !(!l && !u)\n            }))\n        }\n        return {\n            run(e) {\n                \"function\" == typeof s ? X().then(() => {\n                    s = s(), m(e)\n                }) : m(e)\n            },\n            end() {\n                f(), l = u = null\n            }\n        }\n    }\n    let ne;\n\n    function oe(e, t, n) {\n        const {\n            fragment: o,\n            on_mount: r,\n            on_destroy: s,\n            after_render: l\n        } = e.$$;\n        o.m(t, n), H(() => {\n            const t = r.map(i).filter(c);\n            s ? s.push(...t) : a(t), e.$$.on_mount = []\n        }), l.forEach(H)\n    }\n\n    function re(e, t) {\n        e.$$ && (a(e.$$.on_destroy), e.$$.fragment.d(t), e.$$.on_destroy = e.$$.fragment = null, e.$$.ctx = {})\n    }\n\n    function ie(e, t, n, r, i, c) {\n        const l = C;\n        z(e);\n        const u = t.props || {},\n            d = e.$$ = {\n                fragment: null,\n                ctx: null,\n                props: c,\n                update: o,\n                not_equal: i,\n                bound: s(),\n                on_mount: [],\n                on_destroy: [],\n                before_render: [],\n                after_render: [],\n                context: new Map(l ? l.$$.context : []),\n                callbacks: s(),\n                dirty: null\n            };\n        let f = !1;\n        var p;\n        d.ctx = n ? n(e, u, (t, n) => {\n            d.ctx && i(d.ctx[t], d.ctx[t] = n) && (d.bound[t] && d.bound[t](n), f && function(e, t) {\n                e.$$.dirty || (U.push(e), E(), e.$$.dirty = {}), e.$$.dirty[t] = !0\n            }(e, t))\n        }) : u, d.update(), f = !0, a(d.before_render), d.fragment = r(d.ctx), t.target && (t.hydrate ? d.fragment.l((p = t.target, Array.from(p.childNodes))) : d.fragment.c(), t.intro && e.$$.fragment.i && e.$$.fragment.i(), oe(e, t.target, t.anchor), R()), z(l)\n    }\n    \"undefined\" != typeof HTMLElement && (ne = class extends HTMLElement {\n        constructor() {\n            super(), this.attachShadow({\n                mode: \"open\"\n            })\n        }\n        connectedCallback() {\n            for (const e in this.$$.slotted) this.appendChild(this.$$.slotted[e])\n        }\n        attributeChangedCallback(e, t, n) {\n            this[e] = n\n        }\n        $destroy() {\n            re(this, !0), this.$destroy = o\n        }\n        $on(e, t) {\n            const n = this.$$.callbacks[e] || (this.$$.callbacks[e] = []);\n            return n.push(t), () => {\n                const e = n.indexOf(t); - 1 !== e && n.splice(e, 1)\n            }\n        }\n        $set() {}\n    });\n    class se {\n        $destroy() {\n            re(this, !0), this.$destroy = o\n        }\n        $on(e, t) {\n            const n = this.$$.callbacks[e] || (this.$$.callbacks[e] = []);\n            return n.push(t), () => {\n                const e = n.indexOf(t); - 1 !== e && n.splice(e, 1)\n            }\n        }\n        $set() {}\n    }\n\n    function ae(e) {\n        var t = e - 1;\n        return t * t * t + 1\n    }\n\n    function ce(e) {\n        return (e /= .5) < 1 ? .5 * e * e : -.5 * (--e * (e - 2) - 1)\n    }\n\n    function le(e, {\n        delay: t = 0,\n        duration: n = 400\n    }) {\n        const o = +getComputedStyle(e).opacity;\n        return {\n            delay: t,\n            duration: n,\n            css: e => `opacity: ${e*o}`\n        }\n    }\n\n    function ue(e, {\n        delay: t = 0,\n        duration: n = 400,\n        easing: o = ae,\n        x: r = 0,\n        y: i = 0,\n        opacity: s = 0\n    }) {\n        const a = getComputedStyle(e),\n            c = +a.opacity,\n            l = \"none\" === a.transform ? \"\" : a.transform,\n            u = c * (1 - s);\n        return {\n            delay: t,\n            duration: n,\n            easing: o,\n            css: (e, t) => `\\n\\t\\t\\ttransform: ${l} translate(${(1-e)*r}px, ${(1-e)*i}px);\\n\\t\\t\\topacity: ${c-u*t}`\n        }\n    }\n    var de = n(3),\n        fe = n.n(de);\n    n(5);\n\n    function pe(e, t, n) {\n        const o = Object.create(e);\n        return o.session = t[n], o\n    }\n\n    function ge(e) {\n        for (var t, n, o, r, i, s, c, l, u, d, f, p, g, w, N, C, Z, A, k, G, z, B, L, U, D, _, T, Y, P, E, R, O, J = e.lightdm.hostname || \"welcome\", F = e.error || \"\", X = e.lightdm.sessions, W = [], q = 0; q < X.length; q += 1) W[q] = me(pe(e, X, q));\n        return {\n            c() {\n                t = b(\"div\"), n = b(\"h1\"), o = y(J), r = x(), i = b(\"form\"), s = b(\"div\"), c = b(\"input\"), l = x(), u = b(\"span\"), d = x(), f = b(\"div\"), p = b(\"input\"), g = x(), w = b(\"span\"), N = x(), C = b(\"div\"), Z = b(\"p\"), A = y(F), G = x(), z = b(\"div\"), B = b(\"div\"), (L = b(\"span\")).textContent = \"session:\", U = x(), D = b(\"select\");\n                for (var a = 0; a < W.length; a += 1) W[a].c();\n                var m;\n                _ = x(), T = b(\"button\"), Y = b(\"img\"), n.className = \"svelte-aie5gw\", c.id = \"user-name\", j(c, \"type\", \"text\"), c.placeholder = \"username\", c.value = \"barbarossa\", c.className = \"svelte-aie5gw\", u.className = \"svelte-aie5gw\", s.className = \"form-group svelte-aie5gw\", p.autofocus = !0, p.id = \"user-secret\", j(p, \"type\", \"password\"), p.placeholder = \"password\", p.className = \"svelte-aie5gw\", w.className = \"svelte-aie5gw\", f.className = \"form-group svelte-aie5gw\", Z.className = \"svelte-aie5gw\", C.id = \"error-message\", C.className = k = \"error-group \" + (e.error ? \"show-error\" : \"hide-error\") + \" svelte-aie5gw\", L.className = \"svelte-aie5gw\", void 0 === e.selectedSession && H(() => e.select_change_handler.call(D)), D.className = \"session-list svelte-aie5gw\", B.className = \"session svelte-aie5gw\", Y.src = fe.a, Y.alt = \"login\", Y.className = \"svelte-aie5gw\", T.id = \"login-btn\", T.className = \"svelte-aie5gw\", z.className = \"bottom svelte-aie5gw\", i.autocomplete = \"off\", i.className = \"svelte-aie5gw\", t.className = \"container svelte-aie5gw\", O = [M(c, \"focus\", e.clearError), M(p, \"focus\", e.clearError), M(D, \"change\", e.select_change_handler), M(i, \"submit\", (m = e.handleLogin, function(e) {\n                    return e.preventDefault(), m.call(this, e)\n                })), M(t, \"focusin\", he), M(t, \"focusout\", he)]\n            },\n            m(a, h) {\n                v(a, t, h), m(t, n), m(n, o), m(t, r), m(t, i), m(i, s), m(s, c), m(s, l), m(s, u), m(i, d), m(i, f), m(f, p), m(f, g), m(f, w), m(i, N), m(i, C), m(C, Z), m(Z, A), m(i, G), m(i, z), m(z, B), m(B, L), m(B, U), m(B, D);\n                for (var I = 0; I < W.length; I += 1) W[I].m(D, null);\n                S(D, e.selectedSession), m(z, _), m(z, T), m(T, Y), R = !0, p.focus()\n            },\n            p(e, t) {\n                if (R && !e.error || F === (F = t.error || \"\") || $(A, F), R && !e.error || k === (k = \"error-group \" + (t.error ? \"show-error\" : \"hide-error\") + \" svelte-aie5gw\") || (C.className = k), e.lightdm) {\n                    X = t.lightdm.sessions;\n                    for (var n = 0; n < X.length; n += 1) {\n                        const o = pe(t, X, n);\n                        W[n] ? W[n].p(e, o) : (W[n] = me(o), W[n].c(), W[n].m(D, null))\n                    }\n                    for (; n < W.length; n += 1) W[n].d(1);\n                    W.length = X.length\n                }\n                e.selectedSession && S(D, t.selectedSession)\n            },\n            i(e) {\n                R || (H(() => {\n                    E && E.end(1), P || (P = V(t, ue, {\n                        y: 40,\n                        easing: ce\n                    })), P.start()\n                }), R = !0)\n            },\n            o(e) {\n                P && P.invalidate(), e && (E = ee(t, le, {})), R = !1\n            },\n            d(e) {\n                e && h(t), I(W, e), e && E && E.end(), a(O)\n            }\n        }\n    }\n\n    function me(e) {\n        var t, n, o = e.session.name;\n        return {\n            c() {\n                t = b(\"option\"), n = y(o), t.__value = e.session, t.value = t.__value, t.className = \"svelte-aie5gw\"\n            },\n            m(e, o) {\n                v(e, t, o), m(t, n)\n            },\n            p(e, n) {\n                t.value = t.__value\n            },\n            d(e) {\n                e && h(t)\n            }\n        }\n    }\n\n    function ve(e) {\n        var t, n, o = e.isIdle && ge(e);\n        return {\n            c() {\n                o && o.c(), t = w()\n            },\n            m(e, r) {\n                o && o.m(e, r), v(e, t, r), n = !0\n            },\n            p(e, n) {\n                n.isIdle ? o ? (o.p(e, n), o.i(1)) : ((o = ge(n)).c(), o.i(1), o.m(t.parentNode, t)) : o && (q(), K(() => {\n                    o.d(1), o = null\n                }), o.o(1), Q())\n            },\n            i(e) {\n                n || (o && o.i(), n = !0)\n            },\n            o(e) {\n                o && o.o(), n = !1\n            },\n            d(e) {\n                o && o.d(e), e && h(t)\n            }\n        }\n    }\n\n    function he() {\n        document.querySelector(\".container\").classList.toggle(\"container__active\")\n    }\n\n    function Ie(e, t, n) {\n        let o, r, {\n            isIdle: i,\n            toggleIdle: s,\n            logIn: a\n        } = t;\n        const c = window.lightdm || {};\n        return L(() => {\n            s(), \"default\" !== c.default_session ? c.sessions.find(e => e.name === c.default_session) : n(\"selectedSession\", r = c.sessions[0])\n        }), window.show_prompt = ((e, t) => {\n            const {\n                value: n\n            } = document.querySelector(\"#user-secret\");\n            \"password\" === t && c.respond(n)\n        }), window.authentication_complete = (() => {\n            c.is_authenticated ? (c.login(c.authentication_user, r.name.toLowerCase()), a()) : (s(), n(\"error\", o = \"Invalid username/password\"))\n        }), window.show_message = (e => {\n            n(\"error\", o = e)\n        }), e.$set = (e => {\n            \"isIdle\" in e && n(\"isIdle\", i = e.isIdle), \"toggleIdle\" in e && n(\"toggleIdle\", s = e.toggleIdle), \"logIn\" in e && n(\"logIn\", a = e.logIn)\n        }), {\n            isIdle: i,\n            toggleIdle: s,\n            logIn: a,\n            error: o,\n            selectedSession: r,\n            lightdm: c,\n            clearError: function() {\n                n(\"error\", o = void 0)\n            },\n            handleLogin: function() {\n                document.querySelector(\"#login-btn\").blur();\n                const {\n                    value: e\n                } = document.querySelector(\"#user-name\"), {\n                    value: t\n                } = document.querySelector(\"#user-secret\");\n                e && t ? (c.authenticate(e), s()) : n(\"error\", o = e || t ? e ? \"missing password\" : \"missing username\" : \"missing username and password\")\n            },\n            select_change_handler: function() {\n                r = function(e) {\n                    const t = e.querySelector(\":checked\") || e.options[0];\n                    return t && t.__value\n                }(this), n(\"selectedSession\", r), n(\"lightdm\", c)\n            }\n        }\n    }\n    var be = class extends se {\n            constructor(e) {\n                super(), ie(this, e, Ie, ve, l, [\"isIdle\", \"toggleIdle\", \"logIn\"])\n            }\n        },\n        ye = n(4),\n        xe = n.n(ye);\n    n(9);\n\n    function we(e) {\n        var t, n, r, i, s, a, c;\n        return {\n            c() {\n                t = b(\"div\"), n = b(\"img\"), r = x(), i = b(\"span\"), s = y(je), n.src = xe.a, n.alt = \"loading\", n.className = \"svelte-1gjz2c5\", i.className = \"svelte-1gjz2c5\", t.className = \"loader svelte-1gjz2c5\"\n            },\n            m(e, o) {\n                v(e, t, o), m(t, n), m(t, r), m(t, i), m(i, s), c = !0\n            },\n            p: o,\n            i(e) {\n                c || (H(() => {\n                    a || (a = te(t, le, {\n                        easing: ce\n                    }, !0)), a.run(1)\n                }), c = !0)\n            },\n            o(e) {\n                a || (a = te(t, le, {\n                    easing: ce\n                }, !1)), a.run(0), c = !1\n            },\n            d(e) {\n                e && (h(t), a && a.end())\n            }\n        }\n    }\n\n    function Me(e) {\n        var t, n, o = !1 === e.isIdle && we();\n        return {\n            c() {\n                o && o.c(), t = w()\n            },\n            m(e, r) {\n                o && o.m(e, r), v(e, t, r), n = !0\n            },\n            p(e, n) {\n                !1 === n.isIdle ? o ? (o.p(e, n), o.i(1)) : ((o = we()).c(), o.i(1), o.m(t.parentNode, t)) : o && (q(), K(() => {\n                    o.d(1), o = null\n                }), o.o(1), Q())\n            },\n            i(e) {\n                n || (o && o.i(), n = !0)\n            },\n            o(e) {\n                o && o.o(), n = !1\n            },\n            d(e) {\n                o && o.d(e), e && h(t)\n            }\n        }\n    }\n    let je = \"signing in\";\n\n    function $e(e, t, n) {\n        let {\n            isIdle: o\n        } = t;\n        return e.$set = (e => {\n            \"isIdle\" in e && n(\"isIdle\", o = e.isIdle)\n        }), {\n            isIdle: o\n        }\n    }\n    var Se = class extends se {\n        constructor(e) {\n            super(), ie(this, e, $e, Me, l, [\"isIdle\"])\n        }\n    };\n    n(11);\n\n    function Ne(e) {\n        var t, n, r, i, s, a, c, l;\n        return {\n            c() {\n                t = b(\"div\"), n = b(\"span\"), r = y(e.hours), i = x(), (s = b(\"span\")).textContent = \":\", a = x(), c = b(\"span\"), l = y(e.minutes), t.className = \"clock svelte-6cac4v\"\n            },\n            m(e, o) {\n                v(e, t, o), m(t, n), m(n, r), m(t, i), m(t, s), m(t, a), m(t, c), m(c, l)\n            },\n            p(e, t) {\n                e.hours && $(r, t.hours), e.minutes && $(l, t.minutes)\n            },\n            i: o,\n            o: o,\n            d(e) {\n                e && h(t)\n            }\n        }\n    }\n\n    function Ce(e, t, n) {\n        let o = new Date,\n            r = void 0,\n            i = \"AM\";\n        var s;\n        let a, c;\n        return L(() => {\n            n(\"interval\", r = setInterval(() => {\n                n(\"time\", o = new Date), n(\"dayOrNight\", i = a >= 12 ? \"PM\" : \"AM\")\n            }, 3e3))\n        }), s = (() => clearInterval(r)), B().$$.on_destroy.push(s), e.$$.update = ((e = {\n            time: 1\n        }) => {\n            e.time && n(\"hours\", a = o.getHours()), e.time && n(\"minutes\", c = o.getMinutes() < 10 ? `0${o.getMinutes()}` : o.getMinutes())\n        }), {\n            hours: a,\n            minutes: c\n        }\n    }\n    var Ze = class extends se {\n        constructor(e) {\n            super(), ie(this, e, Ce, Ne, l, [])\n        }\n    };\n    n(13);\n\n    function Ae(e, t, n) {\n        const o = Object.create(e);\n        return o.option = t[n], o.index = n, o\n    }\n\n    function ke(e) {\n        for (var t, n, o, r, i, s = Object.keys(e.userOptions), a = [], c = 0; c < s.length; c += 1) a[c] = ze(Ae(e, s, c));\n        var l = new Ze({});\n        return {\n            c() {\n                t = b(\"div\");\n                for (var e = 0; e < a.length; e += 1) a[e].c();\n                n = x(), l.$$.fragment.c(), t.className = \"svelte-1bnanxq\"\n            },\n            m(e, o) {\n                v(e, t, o);\n                for (var r = 0; r < a.length; r += 1) a[r].m(t, null);\n                m(t, n), oe(l, t, null), i = !0\n            },\n            p(e, o) {\n                if (e.userOptions) {\n                    s = Object.keys(o.userOptions);\n                    for (var r = 0; r < s.length; r += 1) {\n                        const i = Ae(o, s, r);\n                        a[r] ? a[r].p(e, i) : (a[r] = ze(i), a[r].c(), a[r].m(t, n))\n                    }\n                    for (; r < a.length; r += 1) a[r].d(1);\n                    a.length = s.length\n                }\n            },\n            i(e) {\n                i || (l.$$.fragment.i(e), H(() => {\n                    r && r.end(1), o || (o = V(t, ue, {\n                        delay: 200,\n                        y: 20,\n                        easing: ce\n                    })), o.start()\n                }), i = !0)\n            },\n            o(e) {\n                l.$$.fragment.o(e), o && o.invalidate(), e && (r = ee(t, le, {})), i = !1\n            },\n            d(e) {\n                e && h(t), I(a, e), l.$destroy(), e && r && r.end()\n            }\n        }\n    }\n\n    function Ge(e) {\n        var t, n, o, r, i, s = Object.keys(e.userOptions)[e.index];\n\n        function a() {\n            return e.click_handler(e)\n        }\n        return {\n            c() {\n                t = b(\"span\"), n = y(s), o = x(), (r = b(\"span\")).textContent = \"—\", t.className = \"action svelte-1bnanxq\", r.className = \"divider svelte-1bnanxq\", i = M(t, \"click\", a)\n            },\n            m(e, i) {\n                v(e, t, i), m(t, n), v(e, o, i), v(e, r, i)\n            },\n            p(t, n) {\n                e = n\n            },\n            d(e) {\n                e && (h(t), h(o), h(r)), i()\n            }\n        }\n    }\n\n    function ze(e) {\n        var t, n = e.userOptions[e.option] && Ge(e);\n        return {\n            c() {\n                n && n.c(), t = w()\n            },\n            m(e, o) {\n                n && n.m(e, o), v(e, t, o)\n            },\n            p(e, o) {\n                o.userOptions[o.option] ? n ? n.p(e, o) : ((n = Ge(o)).c(), n.m(t.parentNode, t)) : n && (n.d(1), n = null)\n            },\n            d(e) {\n                n && n.d(e), e && h(t)\n            }\n        }\n    }\n\n    function Be(e) {\n        var t, n, o = e.isIdle && ke(e);\n        return {\n            c() {\n                o && o.c(), t = w()\n            },\n            m(e, r) {\n                o && o.m(e, r), v(e, t, r), n = !0\n            },\n            p(e, n) {\n                n.isIdle ? o ? (o.p(e, n), o.i(1)) : ((o = ke(n)).c(), o.i(1), o.m(t.parentNode, t)) : o && (q(), K(() => {\n                    o.d(1), o = null\n                }), o.o(1), Q())\n            },\n            i(e) {\n                n || (o && o.i(), n = !0)\n            },\n            o(e) {\n                o && o.o(), n = !1\n            },\n            d(e) {\n                o && o.d(e), e && h(t)\n            }\n        }\n    }\n\n    function Le(e, t, n) {\n        let {\n            isIdle: o\n        } = t, r = {\n            hibernate: lightdm.can_hibernate,\n            restart: lightdm.can_restart,\n            shutdown: lightdm.can_shutdown,\n            suspend: lightdm.can_suspend\n        };\n        return e.$set = (e => {\n            \"isIdle\" in e && n(\"isIdle\", o = e.isIdle)\n        }), {\n            isIdle: o,\n            userOptions: r,\n            click_handler: function({\n                index: e\n            }) {\n                return t = Object.keys(r)[e], void lightdm[t]();\n                var t\n            }\n        }\n    }\n    var Ue = class extends se {\n        constructor(e) {\n            super(), ie(this, e, Le, Be, l, [\"isIdle\"])\n        }\n    };\n    n(15), n(16);\n\n    function De(e) {\n        var t, n, o, r, i, s = new be({\n                props: {\n                    isIdle: e.isIdle,\n                    toggleIdle: e.toggleIdle,\n                    logIn: _e\n                }\n            }),\n            a = new Se({\n                props: {\n                    isIdle: e.isIdle\n                }\n            }),\n            c = new Ue({\n                props: {\n                    isIdle: e.isIdle\n                }\n            });\n        return {\n            c() {\n                t = b(\"img\"), n = x(), s.$$.fragment.c(), o = x(), a.$$.fragment.c(), r = x(), c.$$.fragment.c(), t.className = \"background svelte-13zn5s\", t.alt = \"background\"\n            },\n            m(e, l) {\n                v(e, t, l), v(e, n, l), oe(s, e, l), v(e, o, l), oe(a, e, l), v(e, r, l), oe(c, e, l), i = !0\n            },\n            p(e, t) {\n                var n = {};\n                e.isIdle && (n.isIdle = t.isIdle), e.toggleIdle && (n.toggleIdle = t.toggleIdle), e.logIn && (n.logIn = _e), s.$set(n);\n                var o = {};\n                e.isIdle && (o.isIdle = t.isIdle), a.$set(o);\n                var r = {};\n                e.isIdle && (r.isIdle = t.isIdle), c.$set(r)\n            },\n            i(e) {\n                i || (s.$$.fragment.i(e), a.$$.fragment.i(e), c.$$.fragment.i(e), i = !0)\n            },\n            o(e) {\n                s.$$.fragment.o(e), a.$$.fragment.o(e), c.$$.fragment.o(e), i = !1\n            },\n            d(e) {\n                e && (h(t), h(n)), s.$destroy(e), e && h(o), a.$destroy(e), e && h(r), c.$destroy(e)\n            }\n        }\n    }\n\n    function _e() {\n        document.querySelector(\"body\").classList.add(\"logged-in\")\n    }\n\n    function Te(e, t, n) {\n        let o = null;\n        return L(() => {\n            const e = new Image;\n            e.onload = (() => {\n                const t = document.querySelector(\".background\");\n                t.src = e.src, t.classList.add(\"imageReady\")\n            }), e.src = \"./assets/background.jpg\"\n        }), {\n            isIdle: o,\n            toggleIdle: function() {\n                n(\"isIdle\", o = !o)\n            }\n        }\n    }\n    var Ye = class extends se {\n        constructor(e) {\n            super(), ie(this, e, Te, De, l, [])\n        }\n    };\n    n(18);\n    new Ye({\n        target: document.querySelector(\"main\")\n    })\n}]);\n"
  },
  {
    "path": "Boot/refind-black/README.md",
    "content": "refind-black\n============\n\nMinimalistic, flat, black and white theme for [rEFInd](http://www.rodsbooks.com/refind/).\nHeavily inspired by [rEFInd-minimal](https://github.com/EvanPurkhiser/rEFInd-minimal)\n\n![screenshot](http://i.imgur.com/Pqg4Frk.png)\n\n![screenshot](http://i.imgur.com/WBr2chP.png)\n\n![screenshot](http://i.imgur.com/B3pN0N1.png)\n"
  },
  {
    "path": "Boot/refind-black/theme.conf",
    "content": "# Hide user interface elements for personal preference or to increase\n# security:\n#  banner      - the rEFInd title banner (built-in or loaded via \"banner\")\n#  label       - boot option text label in the menu\n#  singleuser  - remove the submenu options to boot Mac OS X in single-user\n#                or verbose modes; affects ONLY MacOS X\n#  safemode    - remove the submenu option to boot Mac OS X in \"safe mode\"\n#  hwtest      - the submenu option to run Apple's hardware test\n#  arrows      - scroll arrows on the OS selection tag line\n#  hints       - brief command summary in the menu\n#  editor      - the options editor (+, F2, or Insert on boot options menu)\n#  all         - all of the above\n# Default is none of these (all elements active)\n#\nhideui singleuser,hints,arrows,label,badges\n\n# Set the name of a subdirectory in which icons are stored. Icons must\n# have the same names they have in the standard directory. The directory\n# name is specified relative to the main rEFInd binary's directory. If\n# an icon can't be found in the specified directory, an attempt is made\n# to load it from the default directory; thus, you can replace just some\n# icons in your own directory and rely on the default for others.\n# Default is \"icons\".\n#\nbig_icon_size 256\nsmall_icon_size 64\nicons_dir themes/refind-black/icons\n\n# Use a custom title banner instead of the rEFInd icon and name. The file\n# path is relative to the directory where refind.efi is located. The color\n# in the top left corner of the image is used as the background color\n# for the menu screens. Currently uncompressed BMP images with color\n# depths of 24, 8, 4 or 1 bits are supported, as well as PNG images.\n#\nbanner themes/refind-black/background.png\nbanner_scale fillscreen\n\n# Custom images for the selection background. There is a big one (144 x 144)\n# for the OS icons, and a small one (64 x 64) for the function icons in the\n# second row. If only a small image is given, that one is also used for\n# the big icons by stretching it in the middle. If only a big one is given,\n# the built-in default will be used for the small icons.\n#\n# Like the banner option above, these options take a filename of an\n# uncompressed BMP image file with a color depth of 24, 8, 4, or 1 bits,\n# or a PNG image. The PNG format is required if you need transparency\n# support (to let you \"see through\" to a full-screen banner).\n#\nselection_big   themes/refind-black/selection_big.png\nselection_small themes/refind-black/selection_small.png\n\n# Which non-bootloader tools to show on the tools line, and in what\n# order to display them:\n#  shell           - the EFI shell (requires external program; see rEFInd\n#                    documentation for details)\n#  gptsync         - the (dangerous) gptsync.efi utility (requires external\n#                    program; see rEFInd documentation for details)\n#  apple_recovery  - boots the Apple Recovery HD partition, if present\n#  mok_tool        - makes available the Machine Owner Key (MOK) maintenance\n#                    tool, MokManager.efi, used on Secure Boot systems\n#  about           - an \"about this program\" option\n#  exit            - a tag to exit from rEFInd\n#  shutdown        - shuts down the computer (a bug causes this to reboot\n#                    EFI systems)\n#  reboot          - a tag to reboot the computer\n#  firmware        - a tag to reboot the computer into the firmware's\n#                    user interface (ignored on older computers)\n# Default is shell,apple_recovery,mok_tool,about,shutdown,reboot,firmware\n#\nshowtools\n"
  },
  {
    "path": "LICENSE",
    "content": "CC0 1.0 Universal\n\nStatement of Purpose\n\nThe laws of most jurisdictions throughout the world automatically confer\nexclusive Copyright and Related Rights (defined below) upon the creator and\nsubsequent owner(s) (each and all, an \"owner\") of an original work of\nauthorship and/or a database (each, a \"Work\").\n\nCertain owners wish to permanently relinquish those rights to a Work for the\npurpose of contributing to a commons of creative, cultural and scientific\nworks (\"Commons\") that the public can reliably and without fear of later\nclaims of infringement build upon, modify, incorporate in other works, reuse\nand redistribute as freely as possible in any form whatsoever and for any\npurposes, including without limitation commercial purposes. These owners may\ncontribute to the Commons to promote the ideal of a free culture and the\nfurther production of creative, cultural and scientific works, or to gain\nreputation or greater distribution for their Work in part through the use and\nefforts of others.\n\nFor these and/or other purposes and motivations, and without any expectation\nof additional consideration or compensation, the person associating CC0 with a\nWork (the \"Affirmer\"), to the extent that he or she is an owner of Copyright\nand Related Rights in the Work, voluntarily elects to apply CC0 to the Work\nand publicly distribute the Work under its terms, with knowledge of his or her\nCopyright and Related Rights in the Work and the meaning and intended legal\neffect of CC0 on those rights.\n\n1. Copyright and Related Rights. A Work made available under CC0 may be\nprotected by copyright and related or neighboring rights (\"Copyright and\nRelated Rights\"). Copyright and Related Rights include, but are not limited\nto, the following:\n\n  i. the right to reproduce, adapt, distribute, perform, display, communicate,\n  and translate a Work;\n\n  ii. moral rights retained by the original author(s) and/or performer(s);\n\n  iii. publicity and privacy rights pertaining to a person's image or likeness\n  depicted in a Work;\n\n  iv. rights protecting against unfair competition in regards to a Work,\n  subject to the limitations in paragraph 4(a), below;\n\n  v. rights protecting the extraction, dissemination, use and reuse of data in\n  a Work;\n\n  vi. database rights (such as those arising under Directive 96/9/EC of the\n  European Parliament and of the Council of 11 March 1996 on the legal\n  protection of databases, and under any national implementation thereof,\n  including any amended or successor version of such directive); and\n\n  vii. other similar, equivalent or corresponding rights throughout the world\n  based on applicable law or treaty, and any national implementations thereof.\n\n2. Waiver. To the greatest extent permitted by, but not in contravention of,\napplicable law, Affirmer hereby overtly, fully, permanently, irrevocably and\nunconditionally waives, abandons, and surrenders all of Affirmer's Copyright\nand Related Rights and associated claims and causes of action, whether now\nknown or unknown (including existing as well as future claims and causes of\naction), in the Work (i) in all territories worldwide, (ii) for the maximum\nduration provided by applicable law or treaty (including future time\nextensions), (iii) in any current or future medium and for any number of\ncopies, and (iv) for any purpose whatsoever, including without limitation\ncommercial, advertising or promotional purposes (the \"Waiver\"). Affirmer makes\nthe Waiver for the benefit of each member of the public at large and to the\ndetriment of Affirmer's heirs and successors, fully intending that such Waiver\nshall not be subject to revocation, rescission, cancellation, termination, or\nany other legal or equitable action to disrupt the quiet enjoyment of the Work\nby the public as contemplated by Affirmer's express Statement of Purpose.\n\n3. Public License Fallback. Should any part of the Waiver for any reason be\njudged legally invalid or ineffective under applicable law, then the Waiver\nshall be preserved to the maximum extent permitted taking into account\nAffirmer's express Statement of Purpose. In addition, to the extent the Waiver\nis so judged Affirmer hereby grants to each affected person a royalty-free,\nnon transferable, non sublicensable, non exclusive, irrevocable and\nunconditional license to exercise Affirmer's Copyright and Related Rights in\nthe Work (i) in all territories worldwide, (ii) for the maximum duration\nprovided by applicable law or treaty (including future time extensions), (iii)\nin any current or future medium and for any number of copies, and (iv) for any\npurpose whatsoever, including without limitation commercial, advertising or\npromotional purposes (the \"License\"). The License shall be deemed effective as\nof the date CC0 was applied by Affirmer to the Work. Should any part of the\nLicense for any reason be judged legally invalid or ineffective under\napplicable law, such partial invalidity or ineffectiveness shall not\ninvalidate the remainder of the License, and in such case Affirmer hereby\naffirms that he or she will not (i) exercise any of his or her remaining\nCopyright and Related Rights in the Work or (ii) assert any associated claims\nand causes of action with respect to the Work, in either case contrary to\nAffirmer's express Statement of Purpose.\n\n4. Limitations and Disclaimers.\n\n  a. No trademark or patent rights held by Affirmer are waived, abandoned,\n  surrendered, licensed or otherwise affected by this document.\n\n  b. Affirmer offers the Work as-is and makes no representations or warranties\n  of any kind concerning the Work, express, implied, statutory or otherwise,\n  including without limitation warranties of title, merchantability, fitness\n  for a particular purpose, non infringement, or the absence of latent or\n  other defects, accuracy, or the present or absence of errors, whether or not\n  discoverable, all to the greatest extent permissible under applicable law.\n\n  c. Affirmer disclaims responsibility for clearing rights of other persons\n  that may apply to the Work or any use thereof, including without limitation\n  any person's Copyright and Related Rights in the Work. Further, Affirmer\n  disclaims responsibility for obtaining any necessary consents, permissions\n  or other rights required for any use of the Work.\n\n  d. Affirmer understands and acknowledges that Creative Commons is not a\n  party to this document and has no duty or obligation with respect to this\n  CC0 or use of the Work.\n\nFor more information, please see\n<http://creativecommons.org/publicdomain/zero/1.0/>\n"
  },
  {
    "path": "README.md",
    "content": "# Nebula (formerly Genome)\nNOTE: These dots are intended for my setup. If you wish to use them (and feel free to take them and tinker around), you will have to make specific modifications\nfor your own machine. I'll do my best to answer questions related to parameters that may need to be changed\n\n## Info\n- OS: Arch\n- WM: [Qtile](https://github.com/qtile/qtile)\n- Terminal: Alacritty\n- Shell: zsh\n- Bar: Qtile's internal bar\n- Browser: Firefox\n  - Startpage: [nightTab](https://github.com/zombieFox/nightTab)\n  - Userchrome: [firefox-nordic-theme](https://github.com/EliverLara/firefox-nordic-theme)\n- Fonts: FiraCode [Nerd Font](https://github.com/ryanoasis/nerd-fonts) for general text and [Font Awesome 6 Free](https://fontawesome.com/) for icons\n- Music: Lollypop\n- Gtk: [Nordic-darker](https://github.com/EliverLara/Nordic)\n- File manager: Nautilus\n- Editor: [Doom Emacs](https://github.com/hlissner/doom-emacs)\n- Chat: Discord with [BetterDiscord](https://github.com/rauenzi/BetterDiscordApp) and [srain](https://github.com/SrainApp/srain) irc client\n- Fetch: Neofetch\n- Widgets: [Eww](https://github.com/elkowar/eww)\n- Notifications: Dunst with scripts for a rofi based notification center (see [here](https://github.com/Barbarossa93/Genome/blob/4a08d3cfd0900807aefaa9f9241a6dbf926c549b/.config/dunst/dunstrc#L77), [here](https://github.com/Barbarossa93/Genome/blob/main/.local/bin/dunst_logger.sh) and [here](https://github.com/Barbarossa93/Genome/blob/main/.local/bin/rofi_notif_center.sh))\n- Compositor: [Picom](https://github.com/yshui/picom)\n- Display Manager: Lightdm with modified enkel theme\n- Colorscheme: [Nord](https://www.nordtheme.com/) with extra dark color #242831\n\n## FAQ\n\n### How are you getting space around your qtile bar widgets?\nThanks to [qtile-extras](https://github.com/elParaguayo/qtile-extras), I use the decoration widget to, well, add decorations to the bar's widgets.\n\n## Scrots\n![main](./Scrots/1650648471.png)\n![second](./Scrots/1650648454.png)\n"
  }
]