diff --git a/playbooks/box.yml b/playbooks/box.yml
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/playbooks/box.yml
@@ -0,0 +1 @@
+
diff --git a/playbooks/host.yml b/playbooks/host.yml
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/playbooks/host.yml
@@ -0,0 +1 @@
+
diff --git a/roles/dotfiles/files/.alacritty.toml b/roles/dotfiles/files/.alacritty.toml
new file mode 100644
index 0000000..72bebe7
--- /dev/null
+++ b/roles/dotfiles/files/.alacritty.toml
@@ -0,0 +1,45 @@
+
+[font]
+size = 11.0
+
+[font.bold]
+family = "JetBrains Mono"
+# family = "Fantasque Sans Mono"
+# family = "Comic Mono"
+style = "Bold"
+
+[font.bold_italic]
+family = "JetBrains Mono"
+# family = "Fantasque Sans Mono"
+# family = "Comic Mono"
+style = "Bold Italic"
+
+[font.italic]
+family = "JetBrains Mono"
+# family = "Fantasque Sans Mono"
+# family = "Comic Mono"
+style = "Italic"
+
+[font.normal]
+family = "JetBrains Mono"
+# family = "Fantasque Sans Mono"
+# family = "Comic Mono"
+style = "Regular"
+
+[general]
+import = [
+ # "~/.config/alacritty/themes/themes/papercolor_light.toml"
+ "~/.config/alacritty/themes/themes/ayu_dark.toml"
+]
+
+[terminal]
+
+[terminal.shell]
+program = "/bin/fish"
+
+# [keyboard]
+# bindings = [
+# { key = "C", mods = "Control", action = "Copy" },
+# { key = "V", mods = "Control", action = "Paste" },
+# { key = "C", mods = "Control|Shift", chars = "\u0003" },
+# ]
diff --git a/roles/dotfiles/files/.bash_profile b/roles/dotfiles/files/.bash_profile
new file mode 100644
index 0000000..baaaa32
--- /dev/null
+++ b/roles/dotfiles/files/.bash_profile
@@ -0,0 +1,8 @@
+# .bash_profile
+
+# Get the aliases and functions
+if [ -f ~/.bashrc ]; then
+ . ~/.bashrc
+fi
+
+# User specific environment and startup programs
diff --git a/roles/dotfiles/files/.bashrc b/roles/dotfiles/files/.bashrc
new file mode 100644
index 0000000..1ed1d53
--- /dev/null
+++ b/roles/dotfiles/files/.bashrc
@@ -0,0 +1,25 @@
+# .bashrc
+
+# Source global definitions
+if [ -f /etc/bashrc ]; then
+ . /etc/bashrc
+fi
+
+# User specific environment
+if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]; then
+ PATH="$HOME/.local/bin:$HOME/bin:$PATH"
+fi
+export PATH
+
+# Uncomment the following line if you don't like systemctl's auto-paging feature:
+# export SYSTEMD_PAGER=
+
+# User specific aliases and functions
+if [ -d ~/.bashrc.d ]; then
+ for rc in ~/.bashrc.d/*; do
+ if [ -f "$rc" ]; then
+ . "$rc"
+ fi
+ done
+fi
+unset rc
diff --git a/roles/dotfiles/files/.config/alacritty/themes/LICENSE b/roles/dotfiles/files/.config/alacritty/themes/LICENSE
new file mode 100644
index 0000000..149bf8b
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/LICENSE
@@ -0,0 +1,202 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+Copyright 2019-2023 indrajit
+Copyright 2023- The Alacritty Project
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
diff --git a/roles/dotfiles/files/.config/alacritty/themes/README.md b/roles/dotfiles/files/.config/alacritty/themes/README.md
new file mode 100644
index 0000000..a45ecf6
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/README.md
@@ -0,0 +1,185 @@
+# Alacritty Theme
+
+Collection of colorschemes for easy configuration of the [Alacritty terminal
+emulator].
+
+[Alacritty terminal emulator]: https://github.com/alacritty/alacritty
+
+## Installation
+
+### Imports
+
+Clone the repository, or download the theme of your choice:
+
+```sh
+# We use Alacritty's default Linux config directory as our storage location here.
+mkdir -p ~/.config/alacritty/themes
+git clone https://github.com/alacritty/alacritty-theme ~/.config/alacritty/themes
+```
+
+Add an import to your `alacritty.toml` (Replace `{theme}` with your desired
+colorscheme):
+
+```toml
+import = [
+ "~/.config/alacritty/themes/themes/{theme}.toml"
+]
+```
+
+### Manual
+
+To manually include a colorscheme in an existing `alacritty.toml`, you just need
+to copy the entire content of the theme into the root level of your
+configuration file.
+
+## Color Schemes
+
+| NAME | COLORS |
+|:-------------------------------------------------------------------------------------------------------------------------------------------------:|:----------------------------------------------------------:|
+| **_afterglow_**
[source](https://github.com/YabataDesign/afterglow-theme) |  |
+| **_alabaster_**
[source](https://github.com/tonsky/vscode-theme-alabaster) |  |
+| **_alabaster_dark_**
[source](https://github.com/gargakshit/vscode-theme-alabaster-dark) |  |
+| **_alacritty_0_12_**
[source](https://github.com/alacritty/alacritty/blob/v0.12.3/alacritty/src/config/color.rs) |  |
+| **_argonaut_**
[source](https://github.com/pwaleczek/Argonaut-theme) |  |
+| **_ashes_dark_**
[source](https://marketplace.visualstudio.com/items?itemName=AndrsDC.base16-themes) |  |
+| **_ashes_light_**
[source](https://marketplace.visualstudio.com/items?itemName=AndrsDC.base16-themes) |  |
+| **_atom_one_light_**
[source](https://github.com/dexpota/kitty-themes/blob/master/themes/AtomOneLight.conf) |  |
+| **_aura_**
[source](https://github.com/daltonmenezes/aura-theme) |  |
+| **_ayu_dark_**
[source](https://github.com/ayu-theme/ayu-colors) |  |
+| **_ayu_light_**
[source](https://github.com/ayu-theme/ayu-colors) |  |
+| **_baitong_**
[source](https://github.com/cypj/baitong-theme) |  |
+| **_base16_default_dark_**
[source](https://github.com/chriskempson/base16) |  |
+| **_blood_moon_**
[source](https://github.com/dguo/blood-moon) |  |
+| **_bluish_** |  |
+| **_breeze_**
[source](https://github.com/KDE/breeze) |  |
+| **_campbell_**
[source](https://blogs.msdn.microsoft.com/commandline/2017/08/02/updating-the-windows-console-colors) |  |
+| **_carbonfox_**
[source](https://github.com/edeneast/nightfox.nvim/raw/main/extra/carbonfox/nightfox_alacritty.yml) |  |
+| **_catppuccin_frappe_**
[source](https://github.com/catppuccin/alacritty) |  |
+| **_catppuccin_latte_**
[source](https://github.com/catppuccin/alacritty) |  |
+| **_catppuccin_macchiato_**
[source](https://github.com/catppuccin/alacritty) |  |
+| **_catppuccin_mocha_**
[source](https://github.com/catppuccin/alacritty) |  |
+| **_challenger_deep_**
[source](https://github.com/challenger-deep-theme/alacritty) |  |
+| **_chicago95_** |  |
+| **_citylights_**
[source](https://citylights.xyz/) |  |
+| **_Cobalt2_**
[source](https://github.com/wesbos/cobalt2/tree/master/Cobalt2) |  |
+| **_cyber_punk_neon_**
[source](https://github.com/Roboron3042/Cyberpunk-Neon) |  |
+| **_dark_pastels_**
[source](https://invent.kde.org/utilities/konsole/-/blob/master/data/color-schemes/DarkPastels.colorscheme) |  |
+| **_dark_pride_**
[source](https://github.com/kovidgoyal/kitty-themes/blob/master/themes/dark_pride.conf) |  |
+| **_deep_space_** |  |
+| **_doom_one_**
[source](https://github.com/hlissner/emacs-doom-themes) |  |
+| **_dracula_**
[source](https://draculatheme.com) |  |
+| **_dracula_plus_**
[source](https://draculatheme.com) |  |
+| **_enfocado_dark_**
[source](https://github.com/wuelnerdotexe/vim-enfocado.git) | |
+| **_enfocado_light_**
[source](https://github.com/wuelnerdotexe/vim-enfocado.git) | |
+| **_everforest_dark_**
[source](https://github.com/sainnhe/everforest) |  |
+| **_everforest_light_**
[source](https://github.com/sainnhe/everforest) |  |
+| **_falcon_**
[source](https://github.com/fenetikm/falcon) |  |
+| **_flat_remix_**
[source](https://github.com/Mayccoll/Gogh/blob/master/themes/flat-remix.sh) |  |
+| **_flexoki_**
[source](https://github.com/kepano/flexoki/tree/main/alacritty) |  |
+| **_github_dark_**
[source](https://github.com/projekt0n/github-theme-contrib/blob/main/themes/alacritty/github_dark.yml) |  |
+| **_github_dark_colorblind_**
[source](https://github.com/projekt0n/github-theme-contrib/blob/main/themes/alacritty/github_dark_colorblind.yml) |  |
+| **_github_dark_dimmed_**
[source](https://github.com/projekt0n/github-theme-contrib/blob/main/themes/alacritty/github_dark_dimmed.yml) |  |
+| **_github_dark_high_contrast_**
[source](https://github.com/projekt0n/github-theme-contrib/blob/main/themes/alacritty/github_dark_high_contrast.yml)| |
+| **_github_dark_tritanopia_**
[source](https://github.com/projekt0n/github-theme-contrib/blob/main/themes/alacritty/github_dark_tritanopia.yml) |  |
+| **_github_light_**
[source](https://github.com/projekt0n/github-theme-contrib/blob/main/themes/alacritty/github_light.yml) |  |
+| **_github_light_colorblind_**
[source](https://github.com/projekt0n/github-theme-contrib/blob/main/themes/alacritty/github_light_colorblind.yml)|  |
+| **_github_light_high_contrast_**
[source](https://github.com/projekt0n/github-theme-contrib/blob/main/themes/alacritty/github_light_high_contrast.yml)| |
+| **_github_light_tritanopia_**
[source](https://github.com/projekt0n/github-theme-contrib/blob/main/themes/alacritty/github_light_tritanopia.yml)|  |
+| **_google_** |  |
+| **_gotham_** |  |
+| **_gnome_terminal_**
[source](https://gitlab.gnome.org/GNOME/gnome-terminal) |  |
+| **_gruvbox_dark_**
[source](https://github.com/morhetz/gruvbox) |  |
+| **_gruvbox_light_**
[source](https://github.com/morhetz/gruvbox) |  |
+| **_gruvbox_material_hard_dark_**
[source](https://github.com/sainnhe/gruvbox-material) |  |
+| **_gruvbox_material_hard_light_**
[source](https://github.com/sainnhe/gruvbox-material) |  |
+| **_gruvbox_material_medium_dark_**
[source](https://github.com/sainnhe/gruvbox-material) |  |
+| **_gruvbox_material_medium_light_**
[source](https://github.com/sainnhe/gruvbox-material) |  |
+| **_hardhacker_**
[source](https://github.com/hardhackerlabs/theme-alacritty) |  |
+| **_hatsunemiku_**
[source](https://github.com/4513ECHO/vim-colors-hatsunemiku/) |  |
+| **_high_contrast_** |  |
+| **_horizon-dark_**
[source](https://github.com/jolaleye/horizon-theme-vscode) |  |
+| **_hyper_**
[source](https://hyper.is) |  |
+| **_inferno_**
[source](https://github.com/hafiz-muhammad/inferno-alacritty-theme) |  |
+| **_iris_**
[source](https://github.com/DioptricDesign/Iris) |  |
+| **_iterm_** |  |
+| **_kanagawa_dragon_**
[source](https://github.com/rebelot/kanagawa.nvim) |  |
+| **_kanagawa_wave_**
[source](https://github.com/rebelot/kanagawa.nvim) |  |
+| **_konsole_linux_** |  |
+| **_low_contrast_** |  |
+| **_Mariana_**
[source](https://github.com/mbadolato/iTerm2-Color-Schemes/blob/master/alacritty/Mariana.yml) |  |
+| **_marine_dark_**
[source](https://github.com/ProDeSquare/alacritty-colorschemes/blob/master/themes/marine_dark.yaml) |  |
+| **_material_theme_**
[source](https://github.com/equinusocio/material-theme) |  |
+| **_material_theme_mod_** |  |
+| **_meliora_**
[source](https://github.com/ramojus/mellifluous.nvim) |  |
+| **_midnight-haze_**
[source](https://github.com/hafiz-muhammad/midnight-haze-alacritty-theme) |  |
+| **_monokai_**
[source](https://unpkg.com/browse/alacritty-themes@4.1.5/themes/Monokai.dark.yml) |  |
+| **_monokai_charcoal_**
[source](https://github.com/dodeca12/Monokai-Charcoal-Theme-for-Alacritty/blob/main/monokai_charcoal_white.yaml) |  |
+| **_monokai_pro_**
[source](https://gist.github.com/AlphaTechnolog/d1d5f6557f77f71519cb5713268da7dd) |  |
+| **_moonlight_ii_vscode_**
[source](https://github.com/atomiks/moonlight-vscode-theme) |  |
+| **_msx_**
[source](https://paulwratt.github.io/programmers-palettes/HW-MSX/HW-MSX-palettes.html) |  |
+| **_nightfly_**
[source](https://github.com/bluz71/vim-nightfly-colors) |  |
+| **_nightfox_**
[source](https://github.com/EdenEast/nightfox.nvim) |  |
+| **_night_owl_**
[source](https://vscodethemes.com/e/sdras.night-owl/night-owl) |  |
+| **_night_owlish_light_** |  |
+| **_noctis-lux_**
[source](https://github.com/liviuschera/noctis) |  |
+| **_nord_**
[source](https://github.com/arcticicestudio/nord) |  |
+| **_nordic_**
[source](https://github.com/AlexvZyl/nordic.nvim) |  |
+| **_nord_light_**
[source](https://github.com/nordtheme/alacritty/issues/28#issuecomment-1422225211) |  |
+| **_oceanic_next_**
[source](https://github.com/voronianski/oceanic-next-color-scheme) |  |
+| **_omni_**
[source](https://github.com/getomni/alacritty/blob/main/omni.yml) |  |
+| **_one_dark_** |  |
+| **_palenight_**
[source](https://github.com/JonathanSpeek/palenight-iterm2) |  |
+| **_papercolor_dark_**
[source](https://github.com/NLKNguyen/papercolor-theme/blob/master/colors/PaperColor.vim#L126) |  |
+| **_papercolor_light_**
[source](https://github.com/NLKNguyen/papercolor-theme/blob/master/colors/PaperColor.vim#L36) |  |
+| **_papertheme_**
[source](https://github.com/s6muel/paper-theme/blob/main/themes/alacritty/paper-theme.yml) |  |
+|**_pastel_dark_**
[source](https://github.com/gnachman/iTerm2/blob/01c280152acebfe123f56e0215a3c178297a0edc/plists/ColorPresets.plist#L3715-L3924)|  |
+| **_pencil_dark_**
[source](https://github.com/mattly/iterm-colors-pencil) |  |
+| **_pencil_light_**
[source](https://github.com/mattly/iterm-colors-pencil) |  |
+| **_rainbow_** |  |
+| **_remedy_dark_**
[source](https://github.com/robertrossmann/vscode-remedy) |  |
+| **_rose-pine_**
[source](https://github.com/rose-pine/alacritty) |  |
+| **_rose-pine-dawn_**
[source](https://github.com/rose-pine/alacritty) |  |
+| **_rose-pine-moon_**
[source](https://github.com/rose-pine/alacritty) |  |
+| **_snazzy_**
[source](https://github.com/sindresorhus/hyper-snazzy) |  |
+| **seashells**
[source](https://raw.githubusercontent.com/mbadolato/iTerm2-Color-Schemes/master/schemes/SeaShells.itermcolors) |  |
+| **smoooooth**
[source](https://github.com/gnachman/iTerm2/blob/33945e63ad48ed80d6cc1adf7cbeb663217652d2/plists/ColorPresets.plist#L4345-L4685) |  |
+| **_solarized_dark_**
[source](http://ethanschoonover.com/solarized) |  |
+| **_solarized_light_**
[source](http://ethanschoonover.com/solarized) |  |
+| **_solarized_osaka_**
[source](https://github.com/craftzdog/solarized-osaka.nvim) |  |
+| **_taerminal_**
[source](https://github.com/cozywigwam/iterm-taerminal) |  |
+| **_tango_dark_**
[source](https://github.com/GNOME/gnome-terminal/blob/18939a24d21d6b7c6edd57a00a3a8a48f3aecec5/src/profile-editor.c#L213) |  |
+| **_tender_**
[source](https://github.com/huyvohcmc/tender-alacritty) |  |
+| **_terminal_app_** |  |
+| **_thelovelace_** |  |
+| **_tokyo-night_**
[source](https://github.com/zatchheems/tokyo-night-alacritty-theme) |  |
+| **_tokyo-night-storm_**
[source](https://github.com/zatchheems/tokyo-night-alacritty-theme) |  |
+| **_tomorrow_night_**
[source](https://github.com/ChrisKempson/Tomorrow-Theme) |  |
+| **_tomorrow_night_bright_**
[source](https://github.com/ChrisKempson/Tomorrow-Theme) |  |
+| **_ubuntu_**
[source](https://design.ubuntu.com/brand/colour-palette/) |  |
+| **_vesper_**
[source](https://github.com/raunofreiberg/vesper) |  |
+| **_wombat_**
[source](https://github.com/djoyner/iTerm2-wombat) |  |
+| **_xterm_** |  |
+| **_zenburn_**
[source](https://github.com/jnurmine/Zenburn) |  |
+
+## Contributing
+
+Bug reports and pull requests are welcome on GitHub at the [alacritty-theme]
+repository.
+
+[alacritty-theme]: https://github.com/alacritty/alacritty-theme
+
+To add a new theme, just create a Pull Request with the following changes:
+
+ - Add your theme to the `themes` directory with the `{theme}.toml` file format
+ - Create a screenshot of your theme using the [`print_colors.sh`](./print_colors.sh) script
+ - Add the screenshot to the `images` directory with the `{theme}.png` file format
+ - Add your theme to the `README.md`, following alphabetical ordering
+
+## Maintainers
+
+ * **indrajit** - *Author* - [eendroroy](https://github.com/eendroroy)
+ * **Christian Dürr** - *Maintainer* - [chrisduerr](https://github.com/chrisduerr)
+
+## License
+
+The project is available as open source under the terms of the [Apache License, Version 2.0](LICENSE)
diff --git a/roles/dotfiles/files/.config/alacritty/themes/print_colors.sh b/roles/dotfiles/files/.config/alacritty/themes/print_colors.sh
new file mode 100755
index 0000000..100099f
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/print_colors.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env sh
+
+printf "|039| \033[39mDefault \033[m |049| \033[49mDefault \033[m |037| \033[37mLight gray \033[m |047| \033[47mLight gray \033[m\n"
+printf "|030| \033[30mBlack \033[m |040| \033[40mBlack \033[m |090| \033[90mDark gray \033[m |100| \033[100mDark gray \033[m\n"
+printf "|031| \033[31mRed \033[m |041| \033[41mRed \033[m |091| \033[91mLight red \033[m |101| \033[101mLight red \033[m\n"
+printf "|032| \033[32mGreen \033[m |042| \033[42mGreen \033[m |092| \033[92mLight green \033[m |102| \033[102mLight green \033[m\n"
+printf "|033| \033[33mYellow \033[m |043| \033[43mYellow \033[m |093| \033[93mLight yellow \033[m |103| \033[103mLight yellow \033[m\n"
+printf "|034| \033[34mBlue \033[m |044| \033[44mBlue \033[m |094| \033[94mLight blue \033[m |104| \033[104mLight blue \033[m\n"
+printf "|035| \033[35mMagenta \033[m |045| \033[45mMagenta \033[m |095| \033[95mLight magenta \033[m |105| \033[105mLight magenta \033[m\n"
+printf "|036| \033[36mCyan \033[m |046| \033[46mCyan \033[m |096| \033[96mLight cyan \033[m |106| \033[106mLight cyan \033[m\n"
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/Cobalt2.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/Cobalt2.toml
new file mode 100644
index 0000000..d390bab
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/Cobalt2.toml
@@ -0,0 +1,33 @@
+# From the famous Cobalt2 sublime theme
+# Source https//github.com/wesbos/cobalt2/tree/master/Cobalt2
+
+# Default colors
+[colors.primary]
+background = '#122637'
+foreground = '#ffffff'
+
+[colors.cursor]
+text = '#122637'
+cursor = '#f0cb09'
+
+# Normal colors
+[colors.normal]
+black = '#000000'
+red = '#ff0000'
+green = '#37dd21'
+yellow = '#fee409'
+blue = '#1460d2'
+magenta = '#ff005d'
+cyan = '#00bbbb'
+white = '#bbbbbb'
+
+# Bright colors
+[colors.bright]
+black = '#545454'
+red = '#f40d17'
+green = '#3bcf1d'
+yellow = '#ecc809'
+blue = '#5555ff'
+magenta = '#ff55ff'
+cyan = '#6ae3f9'
+white = '#ffffff'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/Mariana.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/Mariana.toml
new file mode 100644
index 0000000..0b7497b
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/Mariana.toml
@@ -0,0 +1,39 @@
+# Mariana (ported from Sublime Text 4)
+# Source https//github.com/mbadolato/iTerm2-Color-Schemes/blob/master/alacritty/Mariana.yml
+
+# Default colors
+[colors.primary]
+background = '#343d46'
+foreground = '#d8dee9'
+
+# Cursor colors
+[colors.cursor]
+cursor = '#fcbb6a'
+text = '#ffffff'
+
+# Normal colors
+[colors.normal]
+black = '#000000'
+blue = '#6699cc'
+cyan = '#5fb4b4'
+green = '#99c794'
+magenta = '#c695c6'
+red = '#ec5f66'
+white = '#f7f7f7'
+yellow = '#f9ae58'
+
+# Bright colors
+[colors.bright]
+black = '#333333'
+blue = '#85add6'
+cyan = '#82c4c4'
+green = '#acd1a8'
+magenta = '#d8b6d8'
+red = '#f97b58'
+white = '#ffffff'
+yellow = '#fac761'
+
+# Selection colors
+[colors.selection]
+background = '#4e5a65'
+text = '#d8dee9'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/afterglow.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/afterglow.toml
new file mode 100644
index 0000000..74702c1
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/afterglow.toml
@@ -0,0 +1,45 @@
+# Default colors
+[colors.primary]
+background = '#2c2c2c'
+foreground = '#d6d6d6'
+
+dim_foreground = '#dbdbdb'
+bright_foreground = '#d9d9d9'
+
+# Cursor colors
+[colors.cursor]
+text = '#2c2c2c'
+cursor = '#d9d9d9'
+
+# Normal colors
+[colors.normal]
+black = '#1c1c1c'
+red = '#bc5653'
+green = '#909d63'
+yellow = '#ebc17a'
+blue = '#7eaac7'
+magenta = '#aa6292'
+cyan = '#86d3ce'
+white = '#cacaca'
+
+# Bright colors
+[colors.bright]
+black = '#636363'
+red = '#bc5653'
+green = '#909d63'
+yellow = '#ebc17a'
+blue = '#7eaac7'
+magenta = '#aa6292'
+cyan = '#86d3ce'
+white = '#f7f7f7'
+
+# Dim colors
+[colors.dim]
+black = '#232323'
+red = '#74423f'
+green = '#5e6547'
+yellow = '#8b7653'
+blue = '#556b79'
+magenta = '#6e4962'
+cyan = '#5c8482'
+white = '#828282'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/alabaster.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/alabaster.toml
new file mode 100644
index 0000000..df312d3
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/alabaster.toml
@@ -0,0 +1,30 @@
+# Colors (Alabaster)
+# author tonsky
+
+[colors.primary]
+background = '#F7F7F7'
+foreground = '#434343'
+
+[colors.cursor]
+text = '#F7F7F7'
+cursor = '#434343'
+
+[colors.normal]
+black = '#000000'
+red = '#AA3731'
+green = '#448C27'
+yellow = '#CB9000'
+blue = '#325CC0'
+magenta = '#7A3E9D'
+cyan = '#0083B2'
+white = '#BBBBBB'
+
+[colors.bright]
+black = '#777777'
+red = '#F05050'
+green = '#60CB00'
+yellow = '#FFBC5D'
+blue = '#007ACC'
+magenta = '#E64CE6'
+cyan = '#00AACB'
+white = '#FFFFFF'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/alabaster_dark.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/alabaster_dark.toml
new file mode 100644
index 0000000..500f1ee
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/alabaster_dark.toml
@@ -0,0 +1,30 @@
+# Colors (Alabaster Dark)
+# author tonsky
+
+[colors.primary]
+background = '#0E1415'
+foreground = '#CECECE'
+
+[colors.cursor]
+text = '#0E1415'
+cursor = '#CECECE'
+
+[colors.normal]
+black = '#0E1415'
+red = '#e25d56'
+green = '#73ca50'
+yellow = '#e9bf57'
+blue = '#4a88e4'
+magenta = '#915caf'
+cyan = '#23acdd'
+white = '#f0f0f0'
+
+[colors.bright]
+black = '#777777'
+red = '#f36868'
+green = '#88db3f'
+yellow = '#f0bf7a'
+blue = '#6f8fdb'
+magenta = '#e987e9'
+cyan = '#4ac9e2'
+white = '#FFFFFF'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/alacritty_0_12.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/alacritty_0_12.toml
new file mode 100644
index 0000000..434db48
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/alacritty_0_12.toml
@@ -0,0 +1,44 @@
+# Alacritty's default color scheme pre-0.13 (based on tomorrow_night)
+# https://github.com/alacritty/alacritty/blob/v0.12.3/alacritty/src/config/color.rs
+
+[colors.primary]
+foreground = "#c5c8c6"
+background = "#1d1f21"
+
+[colors.normal]
+black = "#1d1f21"
+red = "#cc6666"
+green = "#b5bd68"
+yellow = "#f0c674"
+blue = "#81a2be"
+magenta = "#b294bb"
+cyan = "#8abeb7"
+white = "#c5c8c6"
+
+[colors.bright]
+black = "#666666"
+red = "#d54e53"
+green = "#b9ca4a"
+yellow = "#e7c547"
+blue = "#7aa6da"
+magenta = "#c397d8"
+cyan = "#70c0b1"
+white = "#eaeaea"
+
+[colors.dim]
+black = "#131415"
+red = "#864343"
+green = "#777c44"
+yellow = "#9e824c"
+blue = "#556a7d"
+magenta = "#75617b"
+cyan = "#5b7d78"
+white = "#828482"
+
+[colors.hints]
+start = { foreground = "#1d1f21", background = "#e9ff5e" }
+end = { foreground = "#e9ff5e", background = "#1d1f21" }
+
+[colors.search]
+matches = { foreground = "#000000", background = "#ffffff" }
+focused_match = { foreground = "#ffffff", background = "#000000" }
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/argonaut.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/argonaut.toml
new file mode 100644
index 0000000..dc5eb53
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/argonaut.toml
@@ -0,0 +1,31 @@
+# Default colors
+[colors.primary]
+background = '#292C3E'
+foreground = '#EBEBEB'
+
+# Cursor colors
+[colors.cursor]
+text = '#EBEBEB'
+cursor = '#FF261E'
+
+# Normal colors
+[colors.normal]
+black = '#0d0d0d'
+red = '#FF301B'
+green = '#A0E521'
+yellow = '#FFC620'
+blue = '#1BA6FA'
+magenta = '#8763B8'
+cyan = '#21DEEF'
+white = '#EBEBEB'
+
+# Bright colors
+[colors.bright]
+black = '#6D7070'
+red = '#FF4352'
+green = '#B8E466'
+yellow = '#FFD750'
+blue = '#1BA6FA'
+magenta = '#A578EA'
+cyan = '#73FBF1'
+white = '#FEFEF8'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/ashes_dark.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/ashes_dark.toml
new file mode 100644
index 0000000..ed218ea
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/ashes_dark.toml
@@ -0,0 +1,27 @@
+[colors.primary]
+background = '#1c2023'
+foreground = '#c7ccd1'
+
+[colors.cursor]
+text = '#1c2023'
+cursor = '#c7ccd1'
+
+[colors.normal]
+black = '#1c2023'
+red = '#c7ae95'
+green = '#95c7ae'
+yellow = '#aec795'
+blue = '#ae95c7'
+magenta = '#c795ae'
+cyan = '#95aec7'
+white = '#c7ccd1'
+
+[colors.bright]
+black = '#747c84'
+red = '#c7ae95'
+green = '#95c7ae'
+yellow = '#aec795'
+blue = '#ae95c7'
+magenta = '#c795ae'
+cyan = '#95aec7'
+white = '#f3f4f5'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/ashes_light.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/ashes_light.toml
new file mode 100644
index 0000000..1b76e8f
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/ashes_light.toml
@@ -0,0 +1,27 @@
+[colors.primary]
+background = '#f3f4f5'
+foreground = '#565e65'
+
+[colors.cursor]
+text = '#f3f4f5'
+cursor = '#565e65'
+
+[colors.normal]
+black = '#1c2023'
+red = '#c7ae95'
+green = '#95c7ae'
+yellow = '#aec795'
+blue = '#ae95c7'
+magenta = '#c795ae'
+cyan = '#95aec7'
+white = '#c7ccd1'
+
+[colors.bright]
+black = '#747c84'
+red = '#c7ae95'
+green = '#95c7ae'
+yellow = '#aec795'
+blue = '#ae95c7'
+magenta = '#c795ae'
+cyan = '#95aec7'
+white = '#f3f4f5'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/atom_one_light.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/atom_one_light.toml
new file mode 100644
index 0000000..0337917
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/atom_one_light.toml
@@ -0,0 +1,23 @@
+[colors.primary]
+background = '#f8f8f8'
+foreground = '#2a2b33'
+
+[colors.normal]
+black = '#000000'
+red = '#de3d35'
+green = '#3e953a'
+yellow = '#d2b67b'
+blue = '#2f5af3'
+magenta = '#a00095'
+cyan = '#3e953a'
+white = '#bbbbbb'
+
+[colors.bright]
+black = '#000000'
+red = '#de3d35'
+green = '#3e953a'
+yellow = '#d2b67b'
+blue = '#2f5af3'
+magenta = '#a00095'
+cyan = '#3e953a'
+white = '#ffffff'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/aura.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/aura.toml
new file mode 100644
index 0000000..e9967ef
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/aura.toml
@@ -0,0 +1,30 @@
+[colors.primary]
+background = "#15141b"
+foreground = "#edecee"
+
+[colors.cursor]
+cursor = "#a277ff"
+
+[colors.selection]
+text = "CellForeground"
+background = "#29263c"
+
+[colors.normal]
+black = "#110f18"
+red = "#ff6767"
+green = "#61ffca"
+yellow = "#ffca85"
+blue = "#a277ff"
+magenta = "#a277ff"
+cyan = "#61ffca"
+white = "#edecee"
+
+[colors.bright]
+black = "#4d4d4d"
+red = "#ff6767"
+green = "#61ffca"
+yellow = "#ffca85"
+blue = "#a277ff"
+magenta = "#a277ff"
+cyan = "#61ffca"
+white = "#edecee"
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/ayu_dark.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/ayu_dark.toml
new file mode 100644
index 0000000..a2ea740
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/ayu_dark.toml
@@ -0,0 +1,28 @@
+# Colors (Ayu Dark)
+
+# Default colors
+[colors.primary]
+background = '#0A0E14'
+foreground = '#B3B1AD'
+
+# Normal colors
+[colors.normal]
+black = '#01060E'
+red = '#EA6C73'
+green = '#91B362'
+yellow = '#F9AF4F'
+blue = '#53BDFA'
+magenta = '#FAE994'
+cyan = '#90E1C6'
+white = '#C7C7C7'
+
+# Bright colors
+[colors.bright]
+black = '#686868'
+red = '#F07178'
+green = '#C2D94C'
+yellow = '#FFB454'
+blue = '#59C2FF'
+magenta = '#FFEE99'
+cyan = '#95E6CB'
+white = '#FFFFFF'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/ayu_light.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/ayu_light.toml
new file mode 100644
index 0000000..d5cd4f9
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/ayu_light.toml
@@ -0,0 +1,28 @@
+# Colors (Ayu Light)
+
+# Default colors - taken from ayu-colors
+[colors.primary]
+background = '#FCFCFC'
+foreground = '#5C6166'
+
+# Normal colors - taken from ayu-iTerm
+[colors.normal]
+black = '#010101'
+red = '#e7666a'
+green = '#80ab24'
+yellow = '#eba54d'
+blue = '#4196df'
+magenta = '#9870c3'
+cyan = '#51b891'
+white = '#c1c1c1'
+
+# Bright colors - pastel lighten 0.1 except black lighten with 0.2
+[colors.bright]
+black = '#343434'
+red = '#ee9295'
+green = '#9fd32f'
+yellow = '#f0bc7b'
+blue = '#6daee6'
+magenta = '#b294d2'
+cyan = '#75c7a8'
+white = '#dbdbdb'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/baitong.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/baitong.toml
new file mode 100644
index 0000000..4057041
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/baitong.toml
@@ -0,0 +1,55 @@
+# Colors (Baitong)
+
+[colors.primary]
+background = '#112a2a'
+foreground = '#33ff33'
+
+[colors.cursor]
+text = '#112a2a'
+cursor = '#ff00ff'
+
+[colors.vi_mode_cursor]
+text = '#112a2a'
+cursor = '#ff00ff'
+
+[colors.search]
+matches = { foreground = '#000000', background = '#1AE642' }
+focused_match = { foreground = '#000000', background = '#ff00ff' }
+
+[colors.hints]
+start = { foreground = '#1d1f21', background = '#1AE642' }
+end = { foreground = '#1AE642', background = '#1d1f21' }
+
+[colors.line_indicator]
+foreground = '#33ff33'
+background = '#1d1f21'
+
+[colors.footer_bar]
+background = '#731d8b'
+foreground = '#ffffff'
+
+[colors.selection]
+text = '#112a2a'
+background = '#1AE642'
+
+# Normal colors
+[colors.normal]
+black = '#000000'
+red = '#f77272'
+green = '#33ff33'
+yellow = '#1AE642'
+blue = '#68FDFE'
+magenta = '#ff66ff'
+cyan = '#87CEFA'
+white = '#dbdbd9'
+
+# Bright colors
+[colors.bright]
+black = '#ffffff'
+red = '#f77272'
+green = '#33ff33'
+yellow = '#1AE642'
+blue = '#68FDFE'
+magenta = '#ff66ff'
+cyan = '#68FDFE'
+white = '#dbdbd9'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/base16_default_dark.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/base16_default_dark.toml
new file mode 100644
index 0000000..ca85177
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/base16_default_dark.toml
@@ -0,0 +1,32 @@
+# Colors (Base16 Default Dark)
+
+# Default colors
+[colors.primary]
+background = '#181818'
+foreground = '#d8d8d8'
+
+[colors.cursor]
+text = '#181818'
+cursor = '#d8d8d8'
+
+# Normal colors
+[colors.normal]
+black = '#181818'
+red = '#ab4642'
+green = '#a1b56c'
+yellow = '#f7ca88'
+blue = '#7cafc2'
+magenta = '#ba8baf'
+cyan = '#86c1b9'
+white = '#d8d8d8'
+
+# Bright colors
+[colors.bright]
+black = '#585858'
+red = '#ab4642'
+green = '#a1b56c'
+yellow = '#f7ca88'
+blue = '#7cafc2'
+magenta = '#ba8baf'
+cyan = '#86c1b9'
+white = '#f8f8f8'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/blood_moon.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/blood_moon.toml
new file mode 100644
index 0000000..ae99edd
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/blood_moon.toml
@@ -0,0 +1,28 @@
+# Colors (Blood Moon)
+
+# Default colors
+[colors.primary]
+background = '#10100E'
+foreground = '#C6C6C4'
+
+# Normal colors
+[colors.normal]
+black = '#10100E'
+red = '#C40233'
+green = '#009F6B'
+yellow = '#FFD700'
+blue = '#0087BD'
+magenta = '#9A4EAE'
+cyan = '#20B2AA'
+white = '#C6C6C4'
+
+# Bright colors
+[colors.bright]
+black = '#696969'
+red = '#FF2400'
+green = '#03C03C'
+yellow = '#FDFF00'
+blue = '#007FFF'
+magenta = '#FF1493'
+cyan = '#00CCCC'
+white = '#FFFAFA'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/bluish.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/bluish.toml
new file mode 100644
index 0000000..ca2333f
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/bluish.toml
@@ -0,0 +1,26 @@
+# Default colors
+[colors.primary]
+background = '#2c3640'
+foreground = '#297dd3'
+
+# Normal colors
+[colors.normal]
+black = '#0b0b0c'
+red = '#377fc4'
+green = '#2691e7'
+yellow = '#2090c1'
+blue = '#2c5e87'
+magenta = '#436280'
+cyan = '#547aa2'
+white = '#536679'
+
+# Bright colors
+[colors.bright]
+black = '#23272c'
+red = '#66a5cc'
+green = '#59b0f2'
+yellow = '#4bb0d3'
+blue = '#487092'
+magenta = '#50829e'
+cyan = '#658795'
+white = '#4d676b'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/breeze.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/breeze.toml
new file mode 100644
index 0000000..67e4992
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/breeze.toml
@@ -0,0 +1,42 @@
+# KDE Breeze (Ported from Konsole)
+
+# Default colors
+[colors.primary]
+background = '#232627'
+foreground = '#fcfcfc'
+
+dim_foreground = '#eff0f1'
+bright_foreground = '#ffffff'
+
+# Normal colors
+[colors.normal]
+black = '#232627'
+red = '#ed1515'
+green = '#11d116'
+yellow = '#f67400'
+blue = '#1d99f3'
+magenta = '#9b59b6'
+cyan = '#1abc9c'
+white = '#fcfcfc'
+
+# Bright colors
+[colors.bright]
+black = '#7f8c8d'
+red = '#c0392b'
+green = '#1cdc9a'
+yellow = '#fdbc4b'
+blue = '#3daee9'
+magenta = '#8e44ad'
+cyan = '#16a085'
+white = '#ffffff'
+
+# Dim colors
+[colors.dim]
+black = '#31363b'
+red = '#783228'
+green = '#17a262'
+yellow = '#b65619'
+blue = '#1b668f'
+magenta = '#614a73'
+cyan = '#186c60'
+white = '#63686d'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/campbell.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/campbell.toml
new file mode 100644
index 0000000..05630b7
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/campbell.toml
@@ -0,0 +1,28 @@
+# Campbell (Windows 10 default)
+
+# Default colors
+[colors.primary]
+background = '#0c0c0c'
+foreground = '#cccccc'
+
+# Normal colors
+[colors.normal]
+black = '#0c0c0c'
+red = '#c50f1f'
+green = '#13a10e'
+yellow = '#c19c00'
+blue = '#0037da'
+magenta = '#881798'
+cyan = '#3a96dd'
+white = '#cccccc'
+
+# Bright colors
+[colors.bright]
+black = '#767676'
+red = '#e74856'
+green = '#16c60c'
+yellow = '#f9f1a5'
+blue = '#3b78ff'
+magenta = '#b4009e'
+cyan = '#61d6d6'
+white = '#f2f2f2'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/carbonfox.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/carbonfox.toml
new file mode 100644
index 0000000..a5caa75
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/carbonfox.toml
@@ -0,0 +1,26 @@
+# Default colors
+[colors.primary]
+background = '#161616'
+foreground = '#f2f4f8'
+
+# Normal colors
+[colors.normal]
+black = '#282828'
+red = '#ee5396'
+green = '#25be6a'
+yellow = '#08bdba'
+blue = '#78a9ff'
+magenta = '#be95ff'
+cyan = '#33b1ff'
+white = '#dfdfe0'
+
+# Bright colors
+[colors.bright]
+black = '#484848'
+red = '#f16da6'
+green = '#46c880'
+yellow = '#2dc7c4'
+blue = '#8cb6ff'
+magenta = '#c8a5ff'
+cyan = '#52bdff'
+white = '#e4e4e5'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/catppuccin.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/catppuccin.toml
new file mode 100644
index 0000000..2ea110f
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/catppuccin.toml
@@ -0,0 +1,39 @@
+# Catppuccino theme scheme for Alacritty
+
+[colors.primary]
+background = '#1E1E2E'
+foreground = '#D6D6D6'
+
+[colors.cursor]
+text = '#1E1E2E'
+cursor = '#D9D9D9'
+
+[colors.normal]
+black = '#181A1F'
+red = '#E86671'
+green = '#98C379'
+yellow = '#E5C07B'
+blue = '#61AFEF'
+magenta = '#C678DD'
+cyan = '#54AFBC'
+white = '#ABB2BF'
+
+[colors.bright]
+black = '#5C6370'
+red = '#E86671'
+green = '#98C379'
+yellow = '#E5C07B'
+blue = '#61AFEF'
+magenta = '#C678DD'
+cyan = '#54AFBC'
+white = '#F7F7F7'
+
+[colors.dim]
+black = '#5C6370'
+red = '#74423F'
+green = '#98C379'
+yellow = '#E5C07B'
+blue = '#61AFEF'
+magenta = '#6E4962'
+cyan = '#5C8482'
+white = '#828282'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/catppuccin_frappe.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/catppuccin_frappe.toml
new file mode 100644
index 0000000..6a286e2
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/catppuccin_frappe.toml
@@ -0,0 +1,73 @@
+# Default colors
+[colors.primary]
+background = '#303446' # base
+foreground = '#C6D0F5' # text
+# Bright and dim foreground colors
+dim_foreground = '#C6D0F5' # text
+bright_foreground = '#C6D0F5' # text
+
+# Cursor colors
+[colors.cursor]
+text = '#303446' # base
+cursor = '#F2D5CF' # rosewater
+
+[colors.vi_mode_cursor]
+text = '#303446' # base
+cursor = '#BABBF1' # lavender
+
+# Search colors
+[colors.search.matches]
+foreground = '#303446' # base
+background = '#A5ADCE' # subtext0
+[colors.search.focused_match]
+foreground = '#303446' # base
+background = '#A6D189' # green
+[colors.footer_bar]
+foreground = '#303446' # base
+background = '#A5ADCE' # subtext0
+
+# Keyboard regex hints
+[colors.hints.start]
+foreground = '#303446' # base
+background = '#E5C890' # yellow
+[colors.hints.end]
+foreground = '#303446' # base
+background = '#A5ADCE' # subtext0
+
+# Selection colors
+[colors.selection]
+text = '#303446' # base
+background = '#F2D5CF' # rosewater
+
+# Normal colors
+[colors.normal]
+black = '#51576D' # surface1
+red = '#E78284' # red
+green = '#A6D189' # green
+yellow = '#E5C890' # yellow
+blue = '#8CAAEE' # blue
+magenta = '#F4B8E4' # pink
+cyan = '#81C8BE' # teal
+white = '#B5BFE2' # subtext1
+
+# Bright colors
+[colors.bright]
+black = '#626880' # surface2
+red = '#E78284' # red
+green = '#A6D189' # green
+yellow = '#E5C890' # yellow
+blue = '#8CAAEE' # blue
+magenta = '#F4B8E4' # pink
+cyan = '#81C8BE' # teal
+white = '#A5ADCE' # subtext0
+
+# Dim colors
+[colors.dim]
+black = '#51576D' # surface1
+red = '#E78284' # red
+green = '#A6D189' # green
+yellow = '#E5C890' # yellow
+blue = '#8CAAEE' # blue
+magenta = '#F4B8E4' # pink
+cyan = '#81C8BE' # teal
+white = '#B5BFE2' # subtext1
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/catppuccin_latte.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/catppuccin_latte.toml
new file mode 100644
index 0000000..9a1cde7
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/catppuccin_latte.toml
@@ -0,0 +1,76 @@
+# Default colors
+[colors.primary]
+background = '#EFF1F5' # base
+foreground = '#4C4F69' # text
+# Bright and dim foreground colors
+dim_foreground = '#4C4F69' # text
+bright_foreground = '#4C4F69' # text
+
+# Cursor colors
+[colors.cursor]
+text = '#EFF1F5' # base
+cursor = '#DC8A78' # rosewater
+
+[colors.vi_mode_cursor]
+text = '#EFF1F5' # base
+cursor = '#7287FD' # lavender
+
+# Search colors
+[colors.search.matches]
+foreground = '#EFF1F5' # base
+background = '#6C6F85' # subtext0
+
+[colors.search.focused_match]
+foreground = '#EFF1F5' # base
+background = '#40A02B' # green
+
+[colors.footer_bar]
+foreground = '#EFF1F5' # base
+background = '#6C6F85' # subtext0
+
+# Keyboard regex hints
+[colors.hints.start]
+foreground = '#EFF1F5' # base
+background = '#DF8E1D' # yellow
+
+[colors.hints.end]
+foreground = '#EFF1F5' # base
+background = '#6C6F85' # subtext0
+
+# Selection colors
+[colors.selection]
+text = '#EFF1F5' # base
+background = '#DC8A78' # rosewater
+
+# Normal colors
+[colors.normal]
+black = '#5C5F77' # subtext1
+red = '#D20F39' # red
+green = '#40A02B' # green
+yellow = '#DF8E1D' # yellow
+blue = '#1E66F5' # blue
+magenta = '#EA76CB' # pink
+cyan = '#179299' # teal
+white = '#ACB0BE' # surface2
+
+# Bright colors
+[colors.bright]
+black = '#6C6F85' # subtext0
+red = '#D20F39' # red
+green = '#40A02B' # green
+yellow = '#DF8E1D' # yellow
+blue = '#1E66F5' # blue
+magenta = '#EA76CB' # pink
+cyan = '#179299' # teal
+white = '#BCC0CC' # surface1
+
+# Dim colors
+[colors.dim]
+black = '#5C5F77' # subtext1
+red = '#D20F39' # red
+green = '#40A02B' # green
+yellow = '#DF8E1D' # yellow
+blue = '#1E66F5' # blue
+magenta = '#EA76CB' # pink
+cyan = '#179299' # teal
+white = '#ACB0BE' # surface2
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/catppuccin_macchiato.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/catppuccin_macchiato.toml
new file mode 100644
index 0000000..fdec19a
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/catppuccin_macchiato.toml
@@ -0,0 +1,76 @@
+# Default colors
+[colors.primary]
+background = '#24273A' # base
+foreground = '#CAD3F5' # text
+# Bright and dim foreground colors
+dim_foreground = '#CAD3F5' # text
+bright_foreground = '#CAD3F5' # text
+
+# Cursor colors
+[colors.cursor]
+text = '#24273A' # base
+cursor = '#F4DBD6' # rosewater
+
+[colors.vi_mode_cursor]
+text = '#24273A' # base
+cursor = '#B7BDF8' # lavender
+
+# Search colors
+[colors.search.matches]
+foreground = '#24273A' # base
+background = '#A5ADCB' # subtext0
+
+[colors.search.focused_match]
+foreground = '#24273A' # base
+background = '#A6DA95' # green
+
+[colors.footer_bar]
+foreground = '#24273A' # base
+background = '#A5ADCB' # subtext0
+
+# Keyboard regex hints
+[colors.hints.start]
+foreground = '#24273A' # base
+background = '#EED49F' # yellow
+
+[colors.hints.end]
+foreground = '#24273A' # base
+background = '#A5ADCB' # subtext0
+
+# Selection colors
+[colors.selection]
+text = '#24273A' # base
+background = '#F4DBD6' # rosewater
+
+# Normal colors
+[colors.normal]
+black = '#494D64' # surface1
+red = '#ED8796' # red
+green = '#A6DA95' # green
+yellow = '#EED49F' # yellow
+blue = '#8AADF4' # blue
+magenta = '#F5BDE6' # pink
+cyan = '#8BD5CA' # teal
+white = '#B8C0E0' # subtext1
+
+# Bright colors
+[colors.bright]
+black = '#5B6078' # surface2
+red = '#ED8796' # red
+green = '#A6DA95' # green
+yellow = '#EED49F' # yellow
+blue = '#8AADF4' # blue
+magenta = '#F5BDE6' # pink
+cyan = '#8BD5CA' # teal
+white = '#A5ADCB' # subtext0
+
+# Dim colors
+[colors.dim]
+black = '#494D64' # surface1
+red = '#ED8796' # red
+green = '#A6DA95' # green
+yellow = '#EED49F' # yellow
+blue = '#8AADF4' # blue
+magenta = '#F5BDE6' # pink
+cyan = '#8BD5CA' # teal
+white = '#B8C0E0' # subtext1
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/catppuccin_mocha.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/catppuccin_mocha.toml
new file mode 100644
index 0000000..e57824d
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/catppuccin_mocha.toml
@@ -0,0 +1,75 @@
+[colors.primary]
+background = '#1E1E2E' # base
+foreground = '#CDD6F4' # text
+# Bright and dim foreground colors
+dim_foreground = '#CDD6F4' # text
+bright_foreground = '#CDD6F4' # text
+
+# Cursor colors
+[colors.cursor]
+text = '#1E1E2E' # base
+cursor = '#F5E0DC' # rosewater
+
+[colors.vi_mode_cursor]
+text = '#1E1E2E' # base
+cursor = '#B4BEFE' # lavender
+
+# Search colors
+[colors.search.matches]
+foreground = '#1E1E2E' # base
+background = '#A6ADC8' # subtext0
+
+[colors.search.focused_match]
+foreground = '#1E1E2E' # base
+background = '#A6E3A1' # green
+
+[colors.footer_bar]
+foreground = '#1E1E2E' # base
+background = '#A6ADC8' # subtext0
+
+# Keyboard regex hints
+[colors.hints.start]
+foreground = '#1E1E2E' # base
+background = '#F9E2AF' # yellow
+
+[colors.hints.end]
+foreground = '#1E1E2E' # base
+background = '#A6ADC8' # subtext0
+
+# Selection colors
+[colors.selection]
+text = '#1E1E2E' # base
+background = '#F5E0DC' # rosewater
+
+# Normal colors
+[colors.normal]
+black = '#45475A' # surface1
+red = '#F38BA8' # red
+green = '#A6E3A1' # green
+yellow = '#F9E2AF' # yellow
+blue = '#89B4FA' # blue
+magenta = '#F5C2E7' # pink
+cyan = '#94E2D5' # teal
+white = '#BAC2DE' # subtext1
+
+# Bright colors
+[colors.bright]
+black = '#585B70' # surface2
+red = '#F38BA8' # red
+green = '#A6E3A1' # green
+yellow = '#F9E2AF' # yellow
+blue = '#89B4FA' # blue
+magenta = '#F5C2E7' # pink
+cyan = '#94E2D5' # teal
+white = '#A6ADC8' # subtext0
+
+# Dim colors
+[colors.dim]
+black = '#45475A' # surface1
+red = '#F38BA8' # red
+green = '#A6E3A1' # green
+yellow = '#F9E2AF' # yellow
+blue = '#89B4FA' # blue
+magenta = '#F5C2E7' # pink
+cyan = '#94E2D5' # teal
+white = '#BAC2DE' # subtext1
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/challenger_deep.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/challenger_deep.toml
new file mode 100644
index 0000000..a5c4a32
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/challenger_deep.toml
@@ -0,0 +1,32 @@
+# Colors (Challenger Deep)
+
+# Default colors
+[colors.primary]
+background = '#1e1c31'
+foreground = '#cbe1e7'
+
+[colors.cursor]
+text = '#ff271d'
+cursor = '#fbfcfc'
+
+# Normal colors
+[colors.normal]
+black = '#141228'
+red = '#ff5458'
+green = '#62d196'
+yellow = '#ffb378'
+blue = '#65b2ff'
+magenta = '#906cff'
+cyan = '#63f2f1'
+white = '#a6b3cc'
+
+# Bright colors
+[colors.bright]
+black = '#565575'
+red = '#ff8080'
+green = '#95ffa4'
+yellow = '#ffe9aa'
+blue = '#91ddff'
+magenta = '#c991e1'
+cyan = '#aaffe4'
+white = '#cbe3e7'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/chicago95.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/chicago95.toml
new file mode 100644
index 0000000..6902e76
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/chicago95.toml
@@ -0,0 +1,29 @@
+# Windows 95 Color Scheme
+# To have the authentic experience in Chicago95 GTK Theme.
+
+# Default colors
+[colors.primary]
+background = '#000000'
+foreground = '#C0C7C8'
+
+# Normal colors
+[colors.normal]
+black = '#000000'
+red = '#A80000'
+green = '#00A800'
+yellow = '#A85400'
+blue = '#0000A8'
+magenta = '#A800A8'
+cyan = '#00A8A8'
+white = '#A8A8A8'
+
+# Bright colors
+[colors.bright]
+black = '#545454'
+red = '#FC5454'
+green = '#54FC54'
+yellow = '#FCFC54'
+blue = '#5454FC'
+magenta = '#FC54FC'
+cyan = '#54FCFC'
+white = '#FFFFFF'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/citylights.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/citylights.toml
new file mode 100644
index 0000000..775ee72
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/citylights.toml
@@ -0,0 +1,30 @@
+# Default colors
+[colors.primary]
+background = '#171d23'
+foreground = '#ffffff'
+
+# Cursor colors
+[colors.cursor]
+text = '#fafafa'
+cursor = '#008b94'
+
+# Normal colors
+[colors.normal]
+black = '#333f4a'
+red = '#d95468'
+green = '#8bd49c'
+blue = '#539afc'
+magenta = '#b62d65'
+cyan = '#70e1e8'
+white = '#b7c5d3'
+
+# Bright colors
+[colors.bright]
+black = '#41505e'
+red = '#d95468'
+green = '#8bd49c'
+yellow = '#ebbf83'
+blue = '#5ec4ff'
+magenta = '#e27e8d'
+cyan = '#70e1e8'
+white = '#ffffff'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/cyber_punk_neon.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/cyber_punk_neon.toml
new file mode 100644
index 0000000..0424e47
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/cyber_punk_neon.toml
@@ -0,0 +1,33 @@
+# Cyber Punk Neon
+# Source https//github.com/Roboron3042/Cyberpunk-Neon
+
+# Default colors
+[colors.primary]
+background = '#000b1e'
+foreground = '#0abdc6'
+
+[colors.cursor]
+text = '#000b1e'
+cursor = '#0abdc6'
+
+# Normal colors
+[colors.normal]
+black = '#123e7c'
+red = '#ff0000'
+green = '#d300c4'
+yellow = '#f57800'
+blue = '#123e7c'
+magenta = '#711c91'
+cyan = '#0abdc6'
+white = '#d7d7d5'
+
+# Bright colors
+[colors.bright]
+black = '#1c61c2'
+red = '#ff0000'
+green = '#d300c4'
+yellow = '#f57800'
+blue = '#00ff00'
+magenta = '#711c91'
+cyan = '#0abdc6'
+white = '#d7d7d5'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/dark_pastels.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/dark_pastels.toml
new file mode 100644
index 0000000..6f11b9b
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/dark_pastels.toml
@@ -0,0 +1,28 @@
+# Colors (Konsole's Dark Pastels)
+
+# Default colors
+[colors.primary]
+background = '#2C2C2C'
+foreground = '#DCDCCC'
+
+# Normal colors
+[colors.normal]
+black = '#3F3F3F'
+red = '#705050'
+green = '#60B48A'
+yellow = '#DFAF8F'
+blue = '#9AB8D7'
+magenta = '#DC8CC3'
+cyan = '#8CD0D3'
+white = '#DCDCCC'
+
+# Bright colors
+[colors.bright]
+black = '#709080'
+red = '#DCA3A3'
+green = '#72D5A3'
+yellow = '#F0DFAF'
+blue = '#94BFF3'
+magenta = '#EC93D3'
+cyan = '#93E0E3'
+white = '#FFFFFF'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/dark_pride.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/dark_pride.toml
new file mode 100644
index 0000000..6cfba47
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/dark_pride.toml
@@ -0,0 +1,34 @@
+# Dark Pride
+# A dark trans pride colour inspired theme
+
+# Primary colors
+[colors.primary]
+background = '#0d0d1b'
+foreground = '#ccccce'
+
+# Colors used for 'custom_cursor_colors'
+[colors.cursor]
+text = '#bbbbbb'
+cursor = '#ff0017'
+
+# Colors 0 through 7
+[colors.normal]
+black = '#282828'
+red = '#ca1444'
+green = '#789aba'
+yellow = '#b3879f'
+blue = '#95569b'
+magenta = '#cb6fa1'
+cyan = '#fb6e93'
+white = '#cf98c1'
+
+# Colors 8 through 15
+[colors.bright]
+black = '#98218e'
+red = '#cb515d'
+green = '#5a87b1'
+yellow = '#9c61ab'
+blue = '#9a77b1'
+magenta = '#f2a297'
+cyan = '#f4436f'
+white = '#ebdbb2'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/deep_space.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/deep_space.toml
new file mode 100644
index 0000000..551d899
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/deep_space.toml
@@ -0,0 +1,33 @@
+# Source https//github.com/tyrannicaltoucan/vim-deep-space
+
+# Default colors
+[colors.primary]
+background = '#1b202a'
+foreground = '#9aa7bd'
+
+# Colors the cursor will use if `custom_cursor_colors` is true
+[colors.cursor]
+text = '#232936'
+cursor = '#51617d'
+
+# Normal colors
+[colors.normal]
+black = '#1b202a'
+red = '#b15e7c'
+green = '#709d6c'
+yellow = '#b5a262'
+blue = '#608cc3'
+magenta = '#8f72bf'
+cyan = '#56adb7'
+white = '#9aa7bd'
+
+# Bright colors
+[colors.bright]
+black = '#232936'
+red = '#b3785d'
+green = '#709d6c'
+yellow = '#d5b875'
+blue = '#608cc3'
+magenta = '#c47ebd'
+cyan = '#51617d'
+white = '#9aa7bd'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/doom_one.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/doom_one.toml
new file mode 100644
index 0000000..c7133f6
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/doom_one.toml
@@ -0,0 +1,17 @@
+# Colors (Doom One)
+
+# Default colors
+[colors.primary]
+background = '#282c34'
+foreground = '#bbc2cf'
+
+# Normal colors
+[colors.normal]
+black = '#282c34'
+red = '#ff6c6b'
+green = '#98be65'
+yellow = '#ecbe7b'
+blue = '#51afef'
+magenta = '#c678dd'
+cyan = '#46d9ff'
+white = '#bbc2cf'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/dracula.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/dracula.toml
new file mode 100644
index 0000000..b64f482
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/dracula.toml
@@ -0,0 +1,28 @@
+# Colors (Dracula)
+
+# Default colors
+[colors.primary]
+background = '#282a36'
+foreground = '#f8f8f2'
+
+# Normal colors
+[colors.normal]
+black = '#000000'
+red = '#ff5555'
+green = '#50fa7b'
+yellow = '#f1fa8c'
+blue = '#bd93f9'
+magenta = '#ff79c6'
+cyan = '#8be9fd'
+white = '#bbbbbb'
+
+# Bright colors
+[colors.bright]
+black = '#555555'
+red = '#ff5555'
+green = '#50fa7b'
+yellow = '#f1fa8c'
+blue = '#caa9fa'
+magenta = '#ff79c6'
+cyan = '#8be9fd'
+white = '#ffffff'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/dracula_plus.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/dracula_plus.toml
new file mode 100644
index 0000000..86a8549
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/dracula_plus.toml
@@ -0,0 +1,29 @@
+# Colors (Dracula+)
+
+[colors.primary]
+background = '#212121'
+foreground = '#F8F8F2'
+
+[colors.cursor]
+text = '#0E1415'
+cursor = '#ECEFF4'
+
+[colors.normal]
+black = '#21222C'
+red = '#FF5555'
+green = '#50FA7B'
+yellow = '#FFCB6B'
+blue = '#82AAFF'
+magenta = '#C792EA'
+cyan = '#8BE9FD'
+white = '#F8F9F2'
+
+[colors.bright]
+black = '#545454'
+red = '#FF6E6E'
+green = '#69FF94'
+yellow = '#FFCB6B'
+blue = '#D6ACFF'
+magenta = '#FF92DF'
+cyan = '#A4FFFF'
+white = '#F8F8F2'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/enfocado_dark.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/enfocado_dark.toml
new file mode 100644
index 0000000..d4e2fde
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/enfocado_dark.toml
@@ -0,0 +1,29 @@
+# Theme: enfocado_dark
+# Source: https://github.com/wuelnerdotexe/vim-enfocado
+
+# Default colors
+[colors.primary]
+background = '#181818'
+foreground = '#b9b9b9'
+
+# Normal colors
+[colors.normal]
+black = '#3b3b3b'
+red = '#ed4a46'
+green = '#70b433'
+yellow = '#dbb32d'
+blue = '#368aeb'
+magenta = '#eb6eb7'
+cyan = '#3fc5b7'
+white = '#b9b9b9'
+
+# Bright colors
+[colors.bright]
+black = '#777777'
+red = '#ff5e56'
+green = '#83c746'
+yellow = '#efc541'
+blue = '#4f9cfe'
+magenta = '#ff81ca'
+cyan = '#56d8c9'
+white = '#dedede'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/enfocado_light.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/enfocado_light.toml
new file mode 100644
index 0000000..5c27f56
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/enfocado_light.toml
@@ -0,0 +1,29 @@
+# Theme: enfocado_light
+# Source: https://github.com/wuelnerdotexe/vim-enfocado
+
+# Default colors
+[colors.primary]
+background = '#ffffff'
+foreground = '#474747'
+
+# Normal colors
+[colors.normal]
+black = '#282828'
+red = '#d6000c'
+green = '#1d9700'
+yellow = '#c49700'
+blue = '#0064e4'
+magenta = '#dd0f9d'
+cyan = '#00ad9c'
+white = '#cdcdcd'
+
+# Bright colors
+[colors.bright]
+black = '#878787'
+red = '#df0000'
+green = '#008400'
+yellow = '#af8500'
+blue = '#0054cf'
+magenta = '#c7008b'
+cyan = '#009a8a'
+white = '#ebebeb'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/everforest_dark.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/everforest_dark.toml
new file mode 100644
index 0000000..af185d2
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/everforest_dark.toml
@@ -0,0 +1,28 @@
+# Colors (Everforest Dark)
+
+# Default colors
+[colors.primary]
+background = '#2d353b'
+foreground = '#d3c6aa'
+
+# Normal colors
+[colors.normal]
+black = '#475258'
+red = '#e67e80'
+green = '#a7c080'
+yellow = '#dbbc7f'
+blue = '#7fbbb3'
+magenta = '#d699b6'
+cyan = '#83c092'
+white = '#d3c6aa'
+
+# Bright colors
+[colors.bright]
+black = '#475258'
+red = '#e67e80'
+green = '#a7c080'
+yellow = '#dbbc7f'
+blue = '#7fbbb3'
+magenta = '#d699b6'
+cyan = '#83c092'
+white = '#d3c6aa'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/everforest_light.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/everforest_light.toml
new file mode 100644
index 0000000..3c720a2
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/everforest_light.toml
@@ -0,0 +1,28 @@
+# Colors (Everforest Light)
+
+# Default colors
+[colors.primary]
+background = '#fdf6e3'
+foreground = '#5c6a72'
+
+# Normal colors
+[colors.normal]
+black = '#5c6a72'
+red = '#f85552'
+green = '#8da101'
+yellow = '#dfa000'
+blue = '#3a94c5'
+magenta = '#df69ba'
+cyan = '#35a77c'
+white = '#e0dcc7'
+
+# Bright Colors
+[colors.bright]
+black = '#5c6a72'
+red = '#f85552'
+green = '#8da101'
+yellow = '#dfa000'
+blue = '#3a94c5'
+magenta = '#df69ba'
+cyan = '#35a77c'
+white = '#e0dcc7'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/falcon.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/falcon.toml
new file mode 100644
index 0000000..e5b027b
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/falcon.toml
@@ -0,0 +1,33 @@
+# falcon colorscheme for alacritty
+# by fenetikm, https//github.com/fenetikm/falcon
+
+# Default colors
+[colors.primary]
+background = '#020221'
+foreground = '#b4b4b9'
+
+[colors.cursor]
+text = '#020221'
+cursor = '#ffe8c0'
+
+# Normal colors
+[colors.normal]
+black = '#000004'
+red = '#ff3600'
+green = '#718e3f'
+yellow = '#ffc552'
+blue = '#635196'
+magenta = '#ff761a'
+cyan = '#34bfa4'
+white = '#b4b4b9'
+
+# Bright colors
+[colors.bright]
+black = '#020221'
+red = '#ff8e78'
+green = '#b1bf75'
+yellow = '#ffd392'
+blue = '#99a4bc'
+magenta = '#ffb07b'
+cyan = '#8bccbf'
+white = '#f8f8ff'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/flat_remix.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/flat_remix.toml
new file mode 100644
index 0000000..907ac82
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/flat_remix.toml
@@ -0,0 +1,23 @@
+[colors.primary]
+background = '#272a34'
+foreground = '#FFFFFF'
+
+[colors.normal]
+black = '#1F2229'
+red = '#EC0101'
+green = '#47D4B9'
+yellow = '#FF8A18'
+blue = '#277FFF'
+magenta = '#D71655'
+cyan = '#05A1F7'
+white = '#FFFFFF'
+
+[colors.bright]
+black = '#1F2229'
+red = '#D41919'
+green = '#5EBDAB'
+yellow = '#FEA44C'
+blue = '#367bf0'
+magenta = '#BF2E5D'
+cyan = '#49AEE6'
+white = '#FFFFFF'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/flexoki.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/flexoki.toml
new file mode 100644
index 0000000..f4b3b37
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/flexoki.toml
@@ -0,0 +1,46 @@
+# based on https//stephango.com/flexoki and https//github.com/kepano/flexoki/tree/main/alacritty
+
+# Default colors
+[colors.primary]
+background = '#282726'
+foreground = '#FFFCF0'
+dim_foreground = '#FFFCF0'
+bright_foreground = '#FFFCF0'
+
+# Cursor colors
+[colors.cursor]
+text = '#FFFCF0'
+cursor = '#FFFCF0'
+
+# Normal colors
+[colors.normal]
+black = '#100F0F'
+red = '#AF3029'
+green = '#66800B'
+yellow = '#AD8301'
+blue = '#205EA6'
+magenta = '#A02F6F'
+cyan = '#24837B'
+white = '#FFFCF0'
+
+# Bright colors
+[colors.bright]
+black = '#100F0F'
+red = '#D14D41'
+green = '#879A39'
+yellow = '#D0A215'
+blue = '#4385BE'
+magenta = '#CE5D97'
+cyan = '#3AA99F'
+white = '#FFFCF0'
+
+# Dim colors
+[colors.dim]
+black = '#100F0F'
+red = '#AF3029'
+green = '#66800B'
+yellow = '#AD8301'
+blue = '#205EA6'
+magenta = '#A02F6F'
+cyan = '#24837B'
+white = '#FFFCF0'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/github_dark.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/github_dark.toml
new file mode 100644
index 0000000..dc3a338
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/github_dark.toml
@@ -0,0 +1,36 @@
+# github Alacritty Colors
+
+# Default colors
+[colors.primary]
+background = '#24292e'
+foreground = '#d1d5da'
+
+# Normal colors
+[colors.normal]
+black = '#586069'
+red = '#ea4a5a'
+green = '#34d058'
+yellow = '#ffea7f'
+blue = '#2188ff'
+magenta = '#b392f0'
+cyan = '#39c5cf'
+white = '#d1d5da'
+
+# Bright colors
+[colors.bright]
+black = '#959da5'
+red = '#f97583'
+green = '#85e89d'
+yellow = '#ffea7f'
+blue = '#79b8ff'
+magenta = '#b392f0'
+cyan = '#56d4dd'
+white = '#fafbfc'
+
+[[colors.indexed_colors]]
+index = 16
+color = '#d18616'
+
+[[colors.indexed_colors]]
+index = 17
+color = '#f97583'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/github_dark_colorblind.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/github_dark_colorblind.toml
new file mode 100644
index 0000000..76bb4f2
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/github_dark_colorblind.toml
@@ -0,0 +1,36 @@
+# github Alacritty Colors
+
+# Default colors
+[colors.primary]
+background = '#0d1117'
+foreground = '#b3b1ad'
+
+# Normal colors
+[colors.normal]
+black = '#484f58'
+red = '#ff7b72'
+green = '#3fb950'
+yellow = '#d29922'
+blue = '#58a6ff'
+magenta = '#bc8cff'
+cyan = '#39c5cf'
+white = '#b1bac4'
+
+# Bright colors
+[colors.bright]
+black = '#6e7681'
+red = '#ffa198'
+green = '#56d364'
+yellow = '#e3b341'
+blue = '#79c0ff'
+magenta = '#d2a8ff'
+cyan = '#56d4dd'
+white = '#f0f6fc'
+
+[[colors.indexed_colors]]
+index = 16
+color = '#d18616'
+
+[[colors.indexed_colors]]
+index = 17
+color = '#ffa198'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/github_dark_default.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/github_dark_default.toml
new file mode 100644
index 0000000..76bb4f2
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/github_dark_default.toml
@@ -0,0 +1,36 @@
+# github Alacritty Colors
+
+# Default colors
+[colors.primary]
+background = '#0d1117'
+foreground = '#b3b1ad'
+
+# Normal colors
+[colors.normal]
+black = '#484f58'
+red = '#ff7b72'
+green = '#3fb950'
+yellow = '#d29922'
+blue = '#58a6ff'
+magenta = '#bc8cff'
+cyan = '#39c5cf'
+white = '#b1bac4'
+
+# Bright colors
+[colors.bright]
+black = '#6e7681'
+red = '#ffa198'
+green = '#56d364'
+yellow = '#e3b341'
+blue = '#79c0ff'
+magenta = '#d2a8ff'
+cyan = '#56d4dd'
+white = '#f0f6fc'
+
+[[colors.indexed_colors]]
+index = 16
+color = '#d18616'
+
+[[colors.indexed_colors]]
+index = 17
+color = '#ffa198'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/github_dark_dimmed.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/github_dark_dimmed.toml
new file mode 100644
index 0000000..851cbfe
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/github_dark_dimmed.toml
@@ -0,0 +1,36 @@
+# github Alacritty Colors
+
+# Default colors
+[colors.primary]
+background = '#22272e'
+foreground = '#768390'
+
+# Normal colors
+[colors.normal]
+black = '#545d68'
+red = '#f47067'
+green = '#57ab5a'
+yellow = '#c69026'
+blue = '#539bf5'
+magenta = '#b083f0'
+cyan = '#39c5cf'
+white = '#909dab'
+
+# Bright colors
+[colors.bright]
+black = '#636e7b'
+red = '#ff938a'
+green = '#6bc46d'
+yellow = '#daaa3f'
+blue = '#6cb6ff'
+magenta = '#dcbdfb'
+cyan = '#56d4dd'
+white = '#cdd9e5'
+
+[[colors.indexed_colors]]
+index = 16
+color = '#d18616'
+
+[[colors.indexed_colors]]
+index = 17
+color = '#ff938a'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/github_dark_high_contrast.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/github_dark_high_contrast.toml
new file mode 100644
index 0000000..e1b1b3e
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/github_dark_high_contrast.toml
@@ -0,0 +1,33 @@
+# (Github Dark High Contrast) Colors for Alacritty
+
+# Default colors
+[colors.primary]
+background = '#0a0c10'
+foreground = '#f0f3f6'
+
+# Cursor colors
+[colors.cursor]
+text = '#0a0c10'
+cursor = '#f0f3f6'
+
+# Normal colors
+[colors.normal]
+black = '#7a828e'
+red = '#ff9492'
+green = '#26cd4d'
+yellow = '#f0b72f'
+blue = '#71b7ff'
+magenta = '#cb9eff'
+cyan = '#39c5cf'
+white = '#d9dee3'
+
+# Bright colors
+[colors.bright]
+black = '#9ea7b3'
+red = '#ffb1af'
+green = '#4ae168'
+yellow = '#f7c843'
+blue = '#91cbff'
+magenta = '#cb9eff'
+cyan = '#39c5cf'
+white = '#d9dee3'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/github_dark_tritanopia.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/github_dark_tritanopia.toml
new file mode 100644
index 0000000..e24c822
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/github_dark_tritanopia.toml
@@ -0,0 +1,33 @@
+# (Github Dark Tritanopia) Colors for Alacritty
+
+# Default colors
+[colors.primary]
+background = '#0d1117'
+foreground = '#c9d1d9'
+
+# Cursor colors
+[colors.cursor]
+text = '#0d1117'
+cursor = '#c9d1d9'
+
+# Normal colors
+[colors.normal]
+black = '#484f58'
+red = '#ff7b72'
+green = '#58a6ff'
+yellow = '#d29922'
+blue = '#58a6ff'
+magenta = '#bc8cff'
+cyan = '#39c5cf'
+white = '#b1bac4'
+
+# Bright colors
+[colors.bright]
+black = '#6e7681'
+red = '#ffa198'
+green = '#79c0ff'
+yellow = '#e3b341'
+blue = '#79c0ff'
+magenta = '#bc8cff'
+cyan = '#39c5cf'
+white = '#b1bac4'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/github_light.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/github_light.toml
new file mode 100644
index 0000000..4c6524a
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/github_light.toml
@@ -0,0 +1,36 @@
+# github Alacritty Colors
+
+# Default colors
+[colors.primary]
+background = '#ffffff'
+foreground = '#24292f'
+
+# Normal colors
+[colors.normal]
+black = '#24292e'
+red = '#d73a49'
+green = '#28a745'
+yellow = '#dbab09'
+blue = '#0366d6'
+magenta = '#5a32a3'
+cyan = '#0598bc'
+white = '#6a737d'
+
+# Bright colors
+[colors.bright]
+black = '#959da5'
+red = '#cb2431'
+green = '#22863a'
+yellow = '#b08800'
+blue = '#005cc5'
+magenta = '#5a32a3'
+cyan = '#3192aa'
+white = '#d1d5da'
+
+[[colors.indexed_colors]]
+index = 16
+color = '#d18616'
+
+[[colors.indexed_colors]]
+index = 17
+color = '#cb2431'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/github_light_colorblind.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/github_light_colorblind.toml
new file mode 100644
index 0000000..4e02300
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/github_light_colorblind.toml
@@ -0,0 +1,36 @@
+# github Alacritty Colors
+
+# Default colors
+[colors.primary]
+background = '#ffffff'
+foreground = '#0E1116'
+
+# Normal colors
+[colors.normal]
+black = '#24292f'
+red = '#cf222e'
+green = '#116329'
+yellow = '#4d2d00'
+blue = '#0969da'
+magenta = '#8250df'
+cyan = '#1b7c83'
+white = '#6e7781'
+
+# Bright colors
+[colors.bright]
+black = '#57606a'
+red = '#a40e26'
+green = '#1a7f37'
+yellow = '#633c01'
+blue = '#218bff'
+magenta = '#a475f9'
+cyan = '#3192aa'
+white = '#8c959f'
+
+[[colors.indexed_colors]]
+index = 16
+color = '#d18616'
+
+[[colors.indexed_colors]]
+index = 17
+color = '#a40e26'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/github_light_default.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/github_light_default.toml
new file mode 100644
index 0000000..4e02300
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/github_light_default.toml
@@ -0,0 +1,36 @@
+# github Alacritty Colors
+
+# Default colors
+[colors.primary]
+background = '#ffffff'
+foreground = '#0E1116'
+
+# Normal colors
+[colors.normal]
+black = '#24292f'
+red = '#cf222e'
+green = '#116329'
+yellow = '#4d2d00'
+blue = '#0969da'
+magenta = '#8250df'
+cyan = '#1b7c83'
+white = '#6e7781'
+
+# Bright colors
+[colors.bright]
+black = '#57606a'
+red = '#a40e26'
+green = '#1a7f37'
+yellow = '#633c01'
+blue = '#218bff'
+magenta = '#a475f9'
+cyan = '#3192aa'
+white = '#8c959f'
+
+[[colors.indexed_colors]]
+index = 16
+color = '#d18616'
+
+[[colors.indexed_colors]]
+index = 17
+color = '#a40e26'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/github_light_high_contrast.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/github_light_high_contrast.toml
new file mode 100644
index 0000000..ee5b9c7
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/github_light_high_contrast.toml
@@ -0,0 +1,33 @@
+# (Github Light High Contrast) Colors for Alacritty
+
+# Default colors
+[colors.primary]
+background = '#ffffff'
+foreground = '#010409'
+
+# Cursor colors
+[colors.cursor]
+text = '#ffffff'
+cursor = '#0e1116'
+
+# Normal colors
+[colors.normal]
+black = '#0e1116'
+red = '#a0111f'
+green = '#024c1a'
+yellow = '#3f2200'
+blue = '#0349b4'
+magenta = '#622cbc'
+cyan = '#1b7c83'
+white = '#66707b'
+
+# Bright colors
+[colors.bright]
+black = '#4b535d'
+red = '#86061d'
+green = '#055d20'
+yellow = '#4e2c00'
+blue = '#1168e3'
+magenta = '#622cbc'
+cyan = '#1b7c83'
+white = '#66707b'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/github_light_tritanopia.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/github_light_tritanopia.toml
new file mode 100644
index 0000000..6b68f6a
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/github_light_tritanopia.toml
@@ -0,0 +1,33 @@
+# (Github Light Tritanopia) Colors for Alacritty
+
+# Default colors
+[colors.primary]
+background = '#ffffff'
+foreground = '#1b1f24'
+
+# Cursor colors
+[colors.cursor]
+text = '#ffffff'
+cursor = '#24292f'
+
+# Normal colors
+[colors.normal]
+black = '#24292f'
+red = '#cf222e'
+green = '#0550ae'
+yellow = '#4d2d00'
+blue = '#0969da'
+magenta = '#8250df'
+cyan = '#1b7c83'
+white = '#6e7781'
+
+# Bright colors
+[colors.bright]
+black = '#57606a'
+red = '#a40e26'
+green = '#0969da'
+yellow = '#633c01'
+blue = '#218bff'
+magenta = '#8250df'
+cyan = '#1b7c83'
+white = '#6e7781'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/gnome_terminal.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/gnome_terminal.toml
new file mode 100644
index 0000000..a6d21fb
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/gnome_terminal.toml
@@ -0,0 +1,28 @@
+# Gnome (Gnome Terminal Default)
+
+# Default colors
+[colors.primary]
+background = '#1e1e1e'
+foreground = '#ffffff'
+
+# Normal colors
+[colors.normal]
+black = '#171421'
+red = '#c01c28'
+green = '#26a269'
+yellow = '#a2734c'
+blue = '#12488b'
+magenta = '#a347ba'
+cyan = '#2aa1b3'
+white = '#d0cfcc'
+
+# Bright colors
+[colors.bright]
+black = '#5e5c64'
+red = '#f66151'
+green = '#33d17a'
+yellow = '#e9ad0c'
+blue = '#2a7bde'
+magenta = '#c061cb'
+cyan = '#33c7de'
+white = '#ffffff'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/google.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/google.toml
new file mode 100644
index 0000000..001c45d
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/google.toml
@@ -0,0 +1,23 @@
+[colors.primary]
+background = '#1d1f21'
+foreground = '#c5c8c6'
+
+[colors.normal]
+black = '#1d1f21'
+red = '#cc342b'
+green = '#198844'
+yellow = '#fba922'
+blue = '#3971ed'
+magenta = '#a36ac7'
+cyan = '#3971ed'
+white = '#c5c8c6'
+
+[colors.bright]
+black = '#969896'
+red = '#cc342b'
+green = '#198844'
+yellow = '#fba922'
+blue = '#3971ed'
+magenta = '#a36ac7'
+cyan = '#3971ed'
+white = '#ffffff'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/gotham.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/gotham.toml
new file mode 100644
index 0000000..d4a405d
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/gotham.toml
@@ -0,0 +1,28 @@
+# Colors (Gotham)
+
+# Default colors
+[colors.primary]
+background = '#0a0f14'
+foreground = '#98d1ce'
+
+# Normal colors
+[colors.normal]
+black = '#0a0f14'
+red = '#c33027'
+green = '#26a98b'
+yellow = '#edb54b'
+blue = '#195465'
+magenta = '#4e5165'
+cyan = '#33859d'
+white = '#98d1ce'
+
+# Bright colors
+[colors.bright]
+black = '#10151b'
+red = '#d26939'
+green = '#081f2d'
+yellow = '#245361'
+blue = '#093748'
+magenta = '#888ba5'
+cyan = '#599caa'
+white = '#d3ebe9'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/gruvbox_dark.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/gruvbox_dark.toml
new file mode 100644
index 0000000..d2845cd
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/gruvbox_dark.toml
@@ -0,0 +1,30 @@
+# Colors (Gruvbox dark)
+
+# Default colors
+[colors.primary]
+# hard contrast background = = '#1d2021'
+background = '#282828'
+# soft contrast background = = '#32302f'
+foreground = '#ebdbb2'
+
+# Normal colors
+[colors.normal]
+black = '#282828'
+red = '#cc241d'
+green = '#98971a'
+yellow = '#d79921'
+blue = '#458588'
+magenta = '#b16286'
+cyan = '#689d6a'
+white = '#a89984'
+
+# Bright colors
+[colors.bright]
+black = '#928374'
+red = '#fb4934'
+green = '#b8bb26'
+yellow = '#fabd2f'
+blue = '#83a598'
+magenta = '#d3869b'
+cyan = '#8ec07c'
+white = '#ebdbb2'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/gruvbox_light.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/gruvbox_light.toml
new file mode 100644
index 0000000..d2852db
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/gruvbox_light.toml
@@ -0,0 +1,30 @@
+# Colors (Gruvbox light)
+
+# Default colors
+[colors.primary]
+# hard contrast background = = '#f9f5d7'
+background = '#fbf1c7'
+# soft contrast background = = '#f2e5bc'
+foreground = '#3c3836'
+
+# Normal colors
+[colors.normal]
+black = '#fbf1c7'
+red = '#cc241d'
+green = '#98971a'
+yellow = '#d79921'
+blue = '#458588'
+magenta = '#b16286'
+cyan = '#689d6a'
+white = '#7c6f64'
+
+# Bright colors
+[colors.bright]
+black = '#928374'
+red = '#9d0006'
+green = '#79740e'
+yellow = '#b57614'
+blue = '#076678'
+magenta = '#8f3f71'
+cyan = '#427b58'
+white = '#3c3836'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/gruvbox_material.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/gruvbox_material.toml
new file mode 100644
index 0000000..02accfd
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/gruvbox_material.toml
@@ -0,0 +1,25 @@
+# Colors (Gruvbox Material Dark Medium)
+
+[colors.primary]
+background = '#282828'
+foreground = '#dfbf8e'
+
+[colors.normal]
+black = '#665c54'
+red = '#ea6962'
+green = '#a9b665'
+yellow = '#e78a4e'
+blue = '#7daea3'
+magenta = '#d3869b'
+cyan = '#89b482'
+white = '#dfbf8e'
+
+[colors.bright]
+black = '#928374'
+red = '#ea6962'
+green = '#a9b665'
+yellow = '#e3a84e'
+blue = '#7daea3'
+magenta = '#d3869b'
+cyan = '#89b482'
+white = '#dfbf8e'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/gruvbox_material_hard_dark.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/gruvbox_material_hard_dark.toml
new file mode 100644
index 0000000..f9fb56d
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/gruvbox_material_hard_dark.toml
@@ -0,0 +1,28 @@
+# Colors (Gruvbox Material Hard Dark)
+
+# Default colors
+[colors.primary]
+background = '#1d2021'
+foreground = '#d4be98'
+
+# Normal colors
+[colors.normal]
+black = '#32302f'
+red = '#ea6962'
+green = '#a9b665'
+yellow = '#d8a657'
+blue = '#7daea3'
+magenta = '#d3869b'
+cyan = '#89b482'
+white = '#d4be98'
+
+# Bright colors (same as normal colors)
+[colors.bright]
+black = '#32302f'
+red = '#ea6962'
+green = '#a9b665'
+yellow = '#d8a657'
+blue = '#7daea3'
+magenta = '#d3869b'
+cyan = '#89b482'
+white = '#d4be98'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/gruvbox_material_hard_light.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/gruvbox_material_hard_light.toml
new file mode 100644
index 0000000..e17ebdf
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/gruvbox_material_hard_light.toml
@@ -0,0 +1,28 @@
+# Colors (Gruvbox Material Hard Light)
+
+# Default colors
+[colors.primary]
+background = '#f9f5d7'
+foreground = '#654735'
+
+# Normal colors
+[colors.normal]
+black = '#654735'
+red = '#c14a4a'
+green = '#6c782e'
+yellow = '#b47109'
+blue = '#45707a'
+magenta = '#945e80'
+cyan = '#4c7a5d'
+white = '#f2e5bc'
+
+# Bright colors (same as normal colors)
+[colors.bright]
+black = '#654735'
+red = '#c14a4a'
+green = '#6c782e'
+yellow = '#b47109'
+blue = '#45707a'
+magenta = '#945e80'
+cyan = '#4c7a5d'
+white = '#f2e5bc'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/gruvbox_material_medium_dark.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/gruvbox_material_medium_dark.toml
new file mode 100644
index 0000000..1bbbfe8
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/gruvbox_material_medium_dark.toml
@@ -0,0 +1,28 @@
+# Colors (Gruvbox Material Medium Dark)
+
+# Default colors
+[colors.primary]
+background = '#282828'
+foreground = '#d4be98'
+
+# Normal colors
+[colors.normal]
+black = '#3c3836'
+red = '#ea6962'
+green = '#a9b665'
+yellow = '#d8a657'
+blue = '#7daea3'
+magenta = '#d3869b'
+cyan = '#89b482'
+white = '#d4be98'
+
+# Bright colors (same as normal colors)
+[colors.bright]
+black = '#3c3836'
+red = '#ea6962'
+green = '#a9b665'
+yellow = '#d8a657'
+blue = '#7daea3'
+magenta = '#d3869b'
+cyan = '#89b482'
+white = '#d4be98'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/gruvbox_material_medium_light.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/gruvbox_material_medium_light.toml
new file mode 100644
index 0000000..d43ac16
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/gruvbox_material_medium_light.toml
@@ -0,0 +1,28 @@
+# Colors (Gruvbox Material Medium Light)
+
+# Default colors
+[colors.primary]
+background = '#fbf1c7'
+foreground = '#654735'
+
+# Normal colors
+[colors.normal]
+black = '#654735'
+red = '#c14a4a'
+green = '#6c782e'
+yellow = '#b47109'
+blue = '#45707a'
+magenta = '#945e80'
+cyan = '#4c7a5d'
+white = '#eee0b7'
+
+# Bright colors (same as normal colors)
+[colors.bright]
+black = '#654735'
+red = '#c14a4a'
+green = '#6c782e'
+yellow = '#b47109'
+blue = '#45707a'
+magenta = '#945e80'
+cyan = '#4c7a5d'
+white = '#eee0b7'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/hardhacker.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/hardhacker.toml
new file mode 100644
index 0000000..a3b0b64
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/hardhacker.toml
@@ -0,0 +1,33 @@
+# hardhacker colorscheme for alacritty
+# by xin wu, https//github.com/hardhackerlabs/theme-alacritty
+
+# Default colors
+[colors.primary]
+background = '#282433'
+foreground = '#eee9fc'
+
+[colors.cursor]
+text = '#eee9fc'
+cursor = '#eee9fc'
+
+# Normal colors
+[colors.normal]
+black = '#282433'
+red = '#e965a5'
+green = '#b1f2a7'
+yellow = '#ebde76'
+blue = '#b1baf4'
+magenta = '#e192ef'
+cyan = '#b3f4f3'
+white = '#eee9fc'
+
+# Bright colors
+[colors.bright]
+black = '#3f3951'
+red = '#e965a5'
+green = '#b1f2a7'
+yellow = '#ebde76'
+blue = '#b1baf4'
+magenta = '#e192ef'
+cyan = '#b3f4f3'
+white = '#eee9fc'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/hatsunemiku.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/hatsunemiku.toml
new file mode 100644
index 0000000..d39317a
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/hatsunemiku.toml
@@ -0,0 +1,23 @@
+[colors.primary]
+background = '#242829'
+foreground = '#dcd7d7'
+
+[colors.normal]
+black = '#242829'
+red = '#df2683'
+green = '#13868c'
+yellow = '#fcfcdf'
+blue = '#1a86b9'
+magenta = '#bc7fd2'
+cyan = '#7cc7d6'
+white = '#4a4b4b'
+
+[colors.bright]
+black = '#7b8b99'
+red = '#df2683'
+green = '#13868c'
+yellow = '#fcfcdf'
+blue = '#1a86b9'
+magenta = '#bc7fd2'
+cyan = '#7cc7d6'
+white = '#dcd7d7'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/high_contrast.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/high_contrast.toml
new file mode 100644
index 0000000..c90466b
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/high_contrast.toml
@@ -0,0 +1,33 @@
+# Colors (High Contrast)
+
+# Default colors
+[colors.primary]
+background = '#444444'
+foreground = '#dddddd'
+
+# Colors the cursor will use if `custom_cursor_colors` is true
+[colors.cursor]
+text = '#aaaaaa'
+cursor = '#ffffff'
+
+# Normal colors
+[colors.normal]
+black = '#000000'
+red = '#ff0000'
+green = '#00ff00'
+yellow = '#ffff00'
+blue = '#0000ff'
+magenta = '#ff00ff'
+cyan = '#00ffff'
+white = '#ffffff'
+
+# Bright colors
+[colors.bright]
+black = '#000000'
+red = '#ff0000'
+green = '#00ff00'
+yellow = '#ffff00'
+blue = '#0000ff'
+magenta = '#ff00ff'
+cyan = '#00ffff'
+white = '#ffffff'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/horizon-dark.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/horizon-dark.toml
new file mode 100644
index 0000000..009a784
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/horizon-dark.toml
@@ -0,0 +1,28 @@
+# Colors (Horizon Dark)
+
+# Primary colors
+[colors.primary]
+background = '#1c1e26'
+foreground = '#e0e0e0'
+
+# Normal colors
+[colors.normal]
+black = '#16161c'
+red = '#e95678'
+green = '#29d398'
+yellow = '#fab795'
+blue = '#26bbd9'
+magenta = '#ee64ac'
+cyan = '#59e1e3'
+white = '#d5d8da'
+
+# Bright colors
+[colors.bright]
+black = '#5b5858'
+red = '#ec6a88'
+green = '#3fdaa4'
+yellow = '#fbc3a7'
+blue = '#3fc4de'
+magenta = '#f075b5'
+cyan = '#6be4e6'
+white = '#d5d8da'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/hyper.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/hyper.toml
new file mode 100644
index 0000000..89256b2
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/hyper.toml
@@ -0,0 +1,32 @@
+# Colors (Hyper)
+
+# Default colors
+[colors.primary]
+background = '#000000'
+foreground = '#ffffff'
+
+[colors.cursor]
+text = '#F81CE5'
+cursor = '#ffffff'
+
+# Normal colors
+[colors.normal]
+black = '#000000'
+red = '#fe0100'
+green = '#33ff00'
+yellow = '#feff00'
+blue = '#0066ff'
+magenta = '#cc00ff'
+cyan = '#00ffff'
+white = '#d0d0d0'
+
+# Bright colors
+[colors.bright]
+black = '#808080'
+red = '#fe0100'
+green = '#33ff00'
+yellow = '#feff00'
+blue = '#0066ff'
+magenta = '#cc00ff'
+cyan = '#00ffff'
+white = '#FFFFFF'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/inferno.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/inferno.toml
new file mode 100644
index 0000000..5157fab
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/inferno.toml
@@ -0,0 +1,29 @@
+# Inferno theme
+# Source https//github.com/hafiz-muhammad/inferno-alacritty-theme
+
+# Default colors
+[colors.primary]
+background = '#270d06'
+foreground = '#d9d9d9'
+
+# Normal colors
+[colors.normal]
+black = '#330000'
+red = '#ff3300'
+green = '#ff6600'
+yellow = '#ff9900'
+blue = '#ffcc00'
+magenta = '#ff6600'
+cyan = '#ff9900'
+white = '#d9d9d9'
+
+# Bright colors
+[colors.bright]
+black = '#663300'
+red = '#ff6633'
+green = '#ff9966'
+yellow = '#ffcc99'
+blue = '#ffcc33'
+magenta = '#ff9966'
+cyan = '#ffcc99'
+white = '#d9d9d9'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/iris.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/iris.toml
new file mode 100644
index 0000000..38401a1
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/iris.toml
@@ -0,0 +1,28 @@
+# Colors (Iris)
+
+# Default colors
+[colors.primary]
+background = '#272537'
+foreground = '#e8e6e9'
+
+# Normal colors
+[colors.normal]
+black = '#111133'
+red = '#d61d52'
+green = '#48a842'
+yellow = '#e1a51c'
+blue = '#5556d3'
+magenta = '#8650d3'
+cyan = '#52afb7'
+white = '#9f9aa7'
+
+# Bright colors
+[colors.bright]
+black = '#484867'
+red = '#e15877'
+green = '#71ab3a'
+yellow = '#c6a642'
+blue = '#6d6dc9'
+magenta = '#956ad3'
+cyan = '#6ab6bd'
+white = '#e8e6e9'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/iterm.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/iterm.toml
new file mode 100644
index 0000000..018f6c8
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/iterm.toml
@@ -0,0 +1,28 @@
+# Colors (iTerm 2 default theme)
+
+# Default colors
+[colors.primary]
+background = '#101421'
+foreground = '#fffbf6'
+
+# Normal colors
+[colors.normal]
+black = '#2e2e2e'
+red = '#eb4129'
+green = '#abe047'
+yellow = '#f6c744'
+blue = '#47a0f3'
+magenta = '#7b5cb0'
+cyan = '#64dbed'
+white = '#e5e9f0'
+
+# Bright colors
+[colors.bright]
+black = '#565656'
+red = '#ec5357'
+green = '#c0e17d'
+yellow = '#f9da6a'
+blue = '#49a4f8'
+magenta = '#a47de9'
+cyan = '#99faf2'
+white = '#ffffff'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/kanagawa_dragon.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/kanagawa_dragon.toml
new file mode 100644
index 0000000..a3dc784
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/kanagawa_dragon.toml
@@ -0,0 +1,38 @@
+# Colors (Kanagawa Dragon)
+# Source https//github.com/rebelot/kanagawa.nvim
+
+[colors.primary]
+background = '#181616'
+foreground = '#c5c9c5'
+
+[colors.normal]
+black = '#0d0c0c'
+blue = '#8ba4b0'
+cyan = '#8ea4a2'
+green = '#8a9a7b'
+magenta = '#a292a3'
+red = '#c4746e'
+white = '#C8C093'
+yellow = '#c4b28a'
+
+[colors.bright]
+black = '#a6a69c'
+blue = '#7FB4CA'
+cyan = '#7AA89F'
+green = '#87a987'
+magenta = '#938AA9'
+red = '#E46876'
+white = '#c5c9c5'
+yellow = '#E6C384'
+
+[colors.selection]
+background = '#2d4f67'
+foreground = '#c8c093'
+
+[[colors.indexed_colors]]
+index = 16
+color = '#ffa066'
+
+[[colors.indexed_colors]]
+index = 17
+color = '#ff5d62'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/kanagawa_wave.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/kanagawa_wave.toml
new file mode 100644
index 0000000..73ae8fb
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/kanagawa_wave.toml
@@ -0,0 +1,38 @@
+# Colors (Kanagawa Wave)
+# Source https//github.com/rebelot/kanagawa.nvim
+
+[colors.primary]
+background = '#1f1f28'
+foreground = '#dcd7ba'
+
+[colors.normal]
+black = '#090618'
+red = '#c34043'
+green = '#76946a'
+yellow = '#c0a36e'
+blue = '#7e9cd8'
+magenta = '#957fb8'
+cyan = '#6a9589'
+white = '#c8c093'
+
+[colors.bright]
+black = '#727169'
+red = '#e82424'
+green = '#98bb6c'
+yellow = '#e6c384'
+blue = '#7fb4ca'
+magenta = '#938aa9'
+cyan = '#7aa89f'
+white = '#dcd7ba'
+
+[colors.selection]
+background = '#2d4f67'
+foreground = '#c8c093'
+
+[[colors.indexed_colors]]
+index = 16
+color = '#ffa066'
+
+[[colors.indexed_colors]]
+index = 17
+color = '#ff5d62'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/konsole_linux.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/konsole_linux.toml
new file mode 100644
index 0000000..b5b15d3
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/konsole_linux.toml
@@ -0,0 +1,44 @@
+# Color theme ported from Konsole Linux colors
+
+[colors.primary]
+foreground = '#e3e3e3'
+bright_foreground = '#ffffff'
+background = '#1f1f1f'
+
+[colors.cursor]
+text = '#191622'
+cursor = '#f8f8f2'
+
+[colors.search]
+matches = { foreground = '#b2b2b2', background = '#b26818' }
+focused_match = { foreground = "CellBackground", background = "CellForeground" }
+
+[colors.normal]
+black = '#000000'
+red = '#b21818'
+green = '#18b218'
+yellow = '#b26818'
+blue = '#1818b2'
+magenta = '#b218b2'
+cyan = '#18b2b2'
+white = '#b2b2b2'
+
+[colors.bright]
+black = '#686868'
+red = '#ff5454'
+green = '#54ff54'
+yellow = '#ffff54'
+blue = '#5454ff'
+magenta = '#ff54ff'
+cyan = '#54ffff'
+white = '#ffffff'
+
+[colors.dim]
+black = '#000000'
+red = '#b21818'
+green = '#18b218'
+yellow = '#b26818'
+blue = '#1818b2'
+magenta = '#b218b2'
+cyan = '#18b2b2'
+white = '#b2b2b2'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/low_contrast.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/low_contrast.toml
new file mode 100644
index 0000000..ecde019
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/low_contrast.toml
@@ -0,0 +1,32 @@
+# Colors (Dim)
+
+# Default colors
+[colors.primary]
+background = '#333333'
+foreground = '#dddddd'
+
+[colors.cursor]
+text = '#aaaaaa'
+cursor = '#ffffff'
+
+# Normal colors
+[colors.normal]
+black = '#000000'
+red = '#bb0000'
+green = '#00bb00'
+yellow = '#bbbb00'
+blue = '#0000bb'
+magenta = '#bb00bb'
+cyan = '#00bbbb'
+white = '#bbbbbb'
+
+# Bright colors
+[colors.bright]
+black = '#000000'
+red = '#bb0000'
+green = '#00bb00'
+yellow = '#bbbb00'
+blue = '#0000bb'
+magenta = '#bb00bb'
+cyan = '#00bbbb'
+white = '#bbbbbb'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/marine_dark.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/marine_dark.toml
new file mode 100644
index 0000000..a06dcfa
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/marine_dark.toml
@@ -0,0 +1,29 @@
+# Marine Dark Theme
+# Source https//github.com/ProDeSquare/alacritty-colorschemes/blob/master/themes/marine_dark.yaml
+
+# Default colors
+[colors.primary]
+background = '#002221'
+foreground = '#e6f8f8'
+
+# Normal colors
+[colors.normal]
+black = '#002221'
+red = '#ea3431'
+green = '#00b6b6'
+yellow = '#f8b017'
+blue = '#4894fd'
+magenta = '#e01dca'
+cyan = '#1ab2ad'
+white = '#99dddb'
+
+# Bright colors
+[colors.bright]
+black = '#006562'
+red = '#ea3431'
+green = '#00b6b6'
+yellow = '#f8b017'
+blue = '#4894fd'
+magenta = '#e01dca'
+cyan = '#1ab2ad'
+white = '#e6f6f6'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/material_theme.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/material_theme.toml
new file mode 100644
index 0000000..deae20b
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/material_theme.toml
@@ -0,0 +1,28 @@
+# Colors (Material Theme)
+
+# Default colors
+[colors.primary]
+background = '#1e282d'
+foreground = '#c4c7d1'
+
+# Normal colors
+[colors.normal]
+black = '#666666'
+red = '#eb606b'
+green = '#c3e88d'
+yellow = '#f7eb95'
+blue = '#80cbc4'
+magenta = '#ff2f90'
+cyan = '#aeddff'
+white = '#ffffff'
+
+# Bright colors
+[colors.bright]
+black = '#ff262b'
+red = '#eb606b'
+green = '#c3e88d'
+yellow = '#f7eb95'
+blue = '#7dc6bf'
+magenta = '#6c71c4'
+cyan = '#35434d'
+white = '#ffffff'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/material_theme_mod.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/material_theme_mod.toml
new file mode 100644
index 0000000..782760d
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/material_theme_mod.toml
@@ -0,0 +1,28 @@
+# Colors (Material Theme)
+
+# Default colors
+[colors.primary]
+background = '#1e282d'
+foreground = '#c4c7d1'
+
+# Normal colors
+[colors.normal]
+black = '#666666'
+red = '#eb606b'
+green = '#c3e88d'
+yellow = '#f7eb95'
+blue = '#80cbc4'
+magenta = '#ff2f90'
+cyan = '#aeddff'
+white = '#ffffff'
+
+# Bright colors
+[colors.bright]
+black = '#a1a1a1'
+red = '#eb606b'
+green = '#c3e88d'
+yellow = '#f7eb95'
+blue = '#7dc6bf'
+magenta = '#6c71c4'
+cyan = '#35434d'
+white = '#ffffff'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/meliora.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/meliora.toml
new file mode 100644
index 0000000..8eb702f
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/meliora.toml
@@ -0,0 +1,75 @@
+[colors.primary]
+background = '#1c1917'
+foreground = '#d6d0cd'
+# Bright and dim foreground colors
+dim_foreground = '#d6d0cd'
+bright_foreground = '#d6d0cd'
+
+# Cursor colors
+[colors.cursor]
+text = '#1c1917'
+cursor = '#d6d0cd'
+
+[colors.vi_mode_cursor]
+text = '#1c1917'
+cursor = '#d6d0cd'
+
+# Search colors
+[colors.search]
+matches = { foreground = '#1c1917', background = '#24201e' }
+focused_match = { foreground = '#1c1917', background = '#2a2522' }
+
+[colors.footer_bar]
+foreground = '#1c1917'
+background = '#b8aea8'
+
+# Keyboard regex hints
+[colors.hints]
+start = { foreground = '#1c1917', background = '#c4b392' }
+end = { foreground = '#1c1917', background = '#24201e' }
+
+# Selection colors
+[colors.selection]
+text = '#d6d0cd'
+background = '#2a2522'
+
+# Normal colors
+[colors.normal]
+black = '#2a2421'
+red = '#d49191'
+green = '#b6b696'
+yellow = '#c4b392'
+blue = '#9e96b6'
+magenta = '#b696b1'
+cyan = '#98acc8'
+white = '#ddd9d6'
+
+# Bright colors
+[colors.bright]
+black = '#2e2622'
+red = '#d89393'
+green = '#b9b99b'
+yellow = '#c8b692'
+blue = '#a299b9'
+magenta = '#b997b4'
+cyan = '#9bb0ca'
+white = '#e1dbd9'
+
+# Dim colors
+[colors.dim]
+black = '#2a2421'
+red = '#d18989'
+green = '#727246'
+yellow = '#c1b090'
+blue = '#9b92b3'
+magenta = '#b393ad'
+cyan = '#95a9c5'
+white = '#e3d5ce'
+
+[[colors.indexed_colors]]
+index = 16
+color = '#c4b392'
+
+[[colors.indexed_colors]]
+index = 17
+color = '#ddd9d6'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/midnight-haze.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/midnight-haze.toml
new file mode 100644
index 0000000..9cb5557
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/midnight-haze.toml
@@ -0,0 +1,29 @@
+# Midnight Haze theme
+# Source https//github.com/hafiz-muhammad/midnight-haze-alacritty-theme
+
+# Default colors
+[colors.primary]
+background = '#0c0c16'
+foreground = '#d8dee9'
+
+# Normal colors
+[colors.normal]
+black = '#2c2c3d'
+red = '#ff6e6e'
+green = '#9ec875'
+yellow = '#ffa759'
+blue = '#70a7d4'
+magenta = '#d291e0'
+cyan = '#96e0e0'
+white = '#d8dee9'
+
+# Bright colors
+[colors.bright]
+black = '#414166'
+red = '#ff8d8d'
+green = '#b3d987'
+yellow = '#ffc57f'
+blue = '#9bb3d3'
+magenta = '#ffa1ff'
+cyan = '#9cd8d8'
+white = '#ffffff'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/monokai.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/monokai.toml
new file mode 100644
index 0000000..45aaafe
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/monokai.toml
@@ -0,0 +1,23 @@
+[colors.primary]
+background = "#272822"
+foreground = "#f8f8f2"
+
+[colors.normal]
+black = "#272822"
+red = "#f92672"
+green = "#a6e22e"
+yellow = "#f4bf75"
+blue = "#66d9ef"
+magenta = "#ae81ff"
+cyan = "#a1efe4"
+white = "#f8f8f2"
+
+[colors.bright]
+black = "#75715e"
+red = "#f92672"
+green = "#a6e22e"
+yellow = "#f4bf75"
+blue = "#66d9ef"
+magenta = "#ae81ff"
+cyan = "#a1efe4"
+white = "#f9f8f5"
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/monokai_charcoal.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/monokai_charcoal.toml
new file mode 100644
index 0000000..c6ae6c6
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/monokai_charcoal.toml
@@ -0,0 +1,28 @@
+# Colours (Monokai Charcoal)
+
+# Default Colours
+[colors.primary]
+background = '#000000'
+foreground = '#FFFFFF'
+
+# Normal Colours
+[colors.normal]
+black = '#1a1a1a'
+red = '#f4005f'
+green = '#98e024'
+yellow = '#fa8419'
+blue = '#9d65ff'
+magenta = '#f4005f'
+cyan = '#58d1eb'
+white = '#c4c5b5'
+
+# Bright Colours
+[colors.bright]
+black = '#625e4c'
+red = '#f4005f'
+green = '#98e024'
+yellow = '#e0d561'
+blue = '#9d65ff'
+magenta = '#f4005f'
+cyan = '#58d1eb'
+white = '#f6f6ef'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/monokai_pro.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/monokai_pro.toml
new file mode 100644
index 0000000..e434900
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/monokai_pro.toml
@@ -0,0 +1,26 @@
+# Default colors
+[colors.primary]
+background = '#2D2A2E'
+foreground = '#fff1f3'
+
+# Normal colors
+[colors.normal]
+black = '#2c2525'
+red = '#fd6883'
+green = '#adda78'
+yellow = '#f9cc6c'
+blue = '#f38d70'
+magenta = '#a8a9eb'
+cyan = '#85dacc'
+white = '#fff1f3'
+
+# Bright colors
+[colors.bright]
+black = '#72696a'
+red = '#fd6883'
+green = '#adda78'
+yellow = '#f9cc6c'
+blue = '#f38d70'
+magenta = '#a8a9eb'
+cyan = '#85dacc'
+white = '#fff1f3'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/moonlight_ii_vscode.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/moonlight_ii_vscode.toml
new file mode 100644
index 0000000..2991e70
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/moonlight_ii_vscode.toml
@@ -0,0 +1,27 @@
+[colors.primary]
+background = '#1e2030'
+foreground = '#7f85a3'
+
+[colors.cursor]
+text = '#7f85a3'
+cursor = '#808080'
+
+[colors.normal]
+black = '#444a73'
+red = '#ff5370'
+green = '#4fd6be'
+yellow = '#ffc777'
+blue = '#3e68d7'
+magenta = '#fc7b7b'
+cyan = '#86e1fc'
+white = '#d0d0d0'
+
+[colors.bright]
+black = '#828bb8'
+red = '#ff98a4'
+green = '#c3e88d'
+yellow = '#ffc777'
+blue = '#82aaff'
+magenta = '#ff966c'
+cyan = '#b4f9f8'
+white = '#5f8787'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/msx.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/msx.toml
new file mode 100644
index 0000000..d10a124
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/msx.toml
@@ -0,0 +1,41 @@
+# Colors (MSX-like)
+# Notice that MSX used blue as background so [bright] blue and [bright] black
+# are reversed in this theme. Also MSX had only 15 colors (color 0 was
+# transparent) so 'gray' (#CCCCCC) is used two times both as white and
+# bright black.
+
+# Default colors
+[colors.primary]
+background = '#5955E0'
+foreground = '#FFFFFF'
+
+# Normal colors
+[colors.normal]
+# It is 'dark blue' not black
+black = '#5955E0'
+red = '#B95E51'
+green = '#3AA241'
+yellow = '#CCC35E'
+# It is 'black' not blue
+blue = '#000000'
+# It is 'medium red' not magenta
+magenta = '#DB6559'
+# It is 'medium green' not cyan
+cyan = '#3EB849'
+# It is 'gray' not white
+white = '#CCCCCC'
+
+# Bright colors
+[colors.bright]
+# It is 'light blue' not bright black
+black = '#8076F1'
+red = '#FF897D'
+green = '#74D07D'
+yellow = '#DED087'
+# It is 'gray' not bright blue
+blue = '#CCCCCC'
+# It is 'magenta' not bright magenta
+magenta = '#B766B5'
+# It is 'cyan' not bright cyan
+cyan = '#65DBEF'
+white = '#FFFFFF'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/night_owl.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/night_owl.toml
new file mode 100644
index 0000000..f77eebc
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/night_owl.toml
@@ -0,0 +1,54 @@
+# Default colors
+[colors.primary]
+background = "#011627"
+foreground = "#d6deeb"
+
+# Cursor colors
+[colors.cursor]
+text = "CellBackground"
+cursor = "CellForeground"
+
+[colors.vi_mode_cursor]
+text = "CellBackground"
+cursor = "#22da6e"
+
+# Search colors
+[colors.search.matches]
+foreground = "#000000"
+background = "#22da6e"
+
+[colors.search.focused_match]
+foreground = "#ffffff"
+background = "#22da6e"
+
+[colors.footer_bar]
+foreground = "#ffffff"
+background = "#1d3b53"
+
+# Selection colors
+[colors.selection]
+text = "#ffffff"
+background = "#0d486e"
+
+# Normal colors
+[colors.normal]
+black = "#011627"
+red = "#EF5350"
+green = "#22da6e"
+yellow = "#c5e478"
+blue = "#82AAFF"
+magenta = "#C792EA"
+cyan = "#21c7a8"
+white = "#ffffff"
+
+# Bright colors
+[colors.bright]
+black = "#575656"
+red = "#EF5350"
+green = "#22da6e"
+yellow = "#ffeb95"
+blue = "#82AAFF"
+magenta = "#C792EA"
+cyan = "#7fdbca"
+white = "#ffffff"
+
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/night_owlish_light.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/night_owlish_light.toml
new file mode 100644
index 0000000..7aaf7cf
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/night_owlish_light.toml
@@ -0,0 +1,33 @@
+# Colors (Night Owlish Light)
+
+[colors.primary]
+background = '#ffffff'
+foreground = '#403f53'
+
+[colors.normal]
+black = '#011627'
+red = '#d3423e'
+green = '#2aa298'
+yellow = '#daaa01'
+blue = '#4876d6'
+magenta = '#403f53'
+cyan = '#08916a'
+white = '#7a8181'
+
+[colors.bright]
+black = '#7a8181'
+red = '#f76e6e'
+green = '#49d0c5'
+yellow = '#dac26b'
+blue = '#5ca7e4'
+magenta = '#697098'
+cyan = '#00c990'
+white = '#989fb1'
+
+[colors.cursor]
+cursor = '#403f53'
+text = '#fbfbfb'
+
+[colors.selection]
+background = '#f2f2f2'
+text = '#403f53'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/nightfly.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/nightfly.toml
new file mode 100644
index 0000000..f935754
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/nightfly.toml
@@ -0,0 +1,34 @@
+# Source https://github.com/bluz71/vim-nightfly-colors
+
+[colors.bright]
+black = "#7c8f8f"
+blue = "#82aaff"
+cyan = "#7fdbca"
+green = "#21c7a8"
+magenta = "#ae81ff"
+red = "#ff5874"
+white = "#d6deeb"
+yellow = "#ecc48d"
+
+[colors.cursor]
+cursor = "#9ca1aa"
+text = "#080808"
+
+[colors.normal]
+black = "#1d3b53"
+blue = "#82aaff"
+cyan = "#7fdbca"
+green = "#a1cd5e"
+magenta = "#c792ea"
+red = "#fc514e"
+white = "#a1aab8"
+yellow = "#e3d18a"
+
+[colors.primary]
+background = "#011627"
+bright_foreground = "#eeeeee"
+foreground = "#bdc1c6"
+
+[colors.selection]
+background = "#b2ceee"
+text = "#080808"
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/nightfox.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/nightfox.toml
new file mode 100644
index 0000000..552457a
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/nightfox.toml
@@ -0,0 +1,28 @@
+# Colors (NightFox)
+
+# Default colors
+[colors.primary]
+background = '#192330'
+foreground = '#cdcecf'
+
+# Normal colors
+[colors.normal]
+black = '#393b44'
+red = '#c94f6d'
+green = '#81b29a'
+yellow = '#dbc074'
+blue = '#719cd6'
+magenta = '#9d79d6'
+cyan = '#63cdcf'
+white = '#dfdfe0'
+
+# Bright colors
+[colors.bright]
+black = '#575860'
+red = '#d16983'
+green = '#8ebaa4'
+yellow = '#e0c989'
+blue = '#86abdc'
+magenta = '#baa1e2'
+cyan = '#7ad5d6'
+white = '#e4e4e5'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/noctis-lux.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/noctis-lux.toml
new file mode 100644
index 0000000..eb2479a
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/noctis-lux.toml
@@ -0,0 +1,28 @@
+# Colors (NoctixLux)
+
+# Default colors
+[colors.primary]
+background = '#fef8ec'
+foreground = '#005661'
+
+# Normal colors
+[colors.normal]
+black = '#003b42'
+red = '#e34e1c'
+green = '#00b368'
+yellow = '#f49725'
+blue = '#0094f0'
+magenta = '#ff5792'
+cyan = '#00bdd6'
+white = '#8ca6a6'
+
+# Bright colors
+[colors.bright]
+black = '#004d57'
+red = '#ff4000'
+green = '#00d17a'
+yellow = '#ff8c00'
+blue = '#0fa3ff'
+magenta = '#ff6b9f'
+cyan = '#00cbe6'
+white = '#bbc3c4'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/nord.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/nord.toml
new file mode 100644
index 0000000..01cc0d0
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/nord.toml
@@ -0,0 +1,28 @@
+# Colors (Nord)
+
+# Default colors
+[colors.primary]
+background = '#2E3440'
+foreground = '#D8DEE9'
+
+# Normal colors
+[colors.normal]
+black = '#3B4252'
+red = '#BF616A'
+green = '#A3BE8C'
+yellow = '#EBCB8B'
+blue = '#81A1C1'
+magenta = '#B48EAD'
+cyan = '#88C0D0'
+white = '#E5E9F0'
+
+# Bright colors
+[colors.bright]
+black = '#4C566A'
+red = '#BF616A'
+green = '#A3BE8C'
+yellow = '#EBCB8B'
+blue = '#81A1C1'
+magenta = '#B48EAD'
+cyan = '#8FBCBB'
+white = '#ECEFF4'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/nord_light.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/nord_light.toml
new file mode 100644
index 0000000..84e570c
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/nord_light.toml
@@ -0,0 +1,28 @@
+# Colors (Nord light) theme based on https//github.com/nordtheme/alacritty/issues/28#issuecomment-1422225211
+
+# Default colors
+[colors.primary]
+background = '#ECEFF4'
+foreground = '#81A1C1'
+
+# Normal colors
+[colors.normal]
+black = '#D8DEE9'
+red = '#bf616a'
+green = '#a3be8c'
+yellow = '#D08770'
+blue = '#81A1C1'
+magenta = '#B48EAD'
+cyan = '#88C0D0'
+white = '#4C566A'
+
+# Bright colors
+[colors.bright]
+black = '#D8DEE9'
+red = '#bf616a'
+green = '#a3be8c'
+yellow = '#D08770'
+blue = '#D8DEE9'
+magenta = '#B48EAD'
+cyan = '#8FBCBB'
+white = '#D8DEE9'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/nordic.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/nordic.toml
new file mode 100644
index 0000000..a72e017
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/nordic.toml
@@ -0,0 +1,29 @@
+# Colors (Nordic)
+
+[colors.primary]
+background = '#242933'
+foreground = '#BBBDAF'
+
+[colors.normal]
+black = '#191C1D'
+red = '#BD6062'
+green = '#A3D6A9'
+yellow = '#F0DFAF'
+blue = '#8FB4D8'
+magenta = '#C7A9D9'
+cyan = '#B6D7A8'
+white = '#BDC5BD'
+
+[colors.bright]
+black = '#727C7C'
+red = '#D18FAF'
+green = '#B7CEB0'
+yellow = '#BCBCBC'
+blue = '#E0CF9F'
+magenta = '#C7A9D9'
+cyan = '#BBDA97'
+white = '#BDC5BD'
+
+[colors.selection]
+text = '#000000'
+background = '#F0DFAF'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/oceanic_next.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/oceanic_next.toml
new file mode 100644
index 0000000..9268425
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/oceanic_next.toml
@@ -0,0 +1,28 @@
+# Colors (Oceanic Next)
+
+# Default colors
+[colors.primary]
+background = '#1b2b34'
+foreground = '#d8dee9'
+
+# Normal colors
+[colors.normal]
+black = '#29414f'
+red = '#ec5f67'
+green = '#99c794'
+yellow = '#fac863'
+blue = '#6699cc'
+magenta = '#c594c5'
+cyan = '#5fb3b3'
+white = '#65737e'
+
+# Bright colors
+[colors.bright]
+black = '#405860'
+red = '#ec5f67'
+green = '#99c794'
+yellow = '#fac863'
+blue = '#6699cc'
+magenta = '#c594c5'
+cyan = '#5fb3b3'
+white = '#adb5c0'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/omni.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/omni.toml
new file mode 100644
index 0000000..ed006d1
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/omni.toml
@@ -0,0 +1,37 @@
+[colors.primary]
+background = '#191622'
+foreground = '#e1e1e6'
+
+[colors.cursor]
+text = '#191622'
+cursor = '#f8f8f2'
+
+[colors.normal]
+black = '#000000'
+red = '#ff5555'
+green = '#50fa7b'
+yellow = '#effa78'
+blue = '#bd93f9'
+magenta = '#ff79c6'
+cyan = '#8d79ba'
+white = '#bfbfbf'
+
+[colors.bright]
+black = '#4d4d4d'
+red = '#ff6e67'
+green = '#5af78e'
+yellow = '#eaf08d'
+blue = '#caa9fa'
+magenta = '#ff92d0'
+cyan = '#aa91e3'
+white = '#e6e6e6'
+
+[colors.dim]
+black = '#000000'
+red = '#a90000'
+green = '#049f2b'
+yellow = '#a3b106'
+blue = '#530aba'
+magenta = '#bb006b'
+cyan = '#433364'
+white = '#5f5f5f'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/one_dark.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/one_dark.toml
new file mode 100644
index 0000000..b2de35e
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/one_dark.toml
@@ -0,0 +1,28 @@
+# Colors (One Dark)
+
+# Default colors
+[colors.primary]
+background = '#282c34'
+foreground = '#abb2bf'
+
+# Normal colors
+[colors.normal]
+black = '#1e2127'
+red = '#e06c75'
+green = '#98c379'
+yellow = '#d19a66'
+blue = '#61afef'
+magenta = '#c678dd'
+cyan = '#56b6c2'
+white = '#abb2bf'
+
+# Bright colors
+[colors.bright]
+black = '#5c6370'
+red = '#e06c75'
+green = '#98c379'
+yellow = '#d19a66'
+blue = '#61afef'
+magenta = '#c678dd'
+cyan = '#56b6c2'
+white = '#ffffff'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/palenight.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/palenight.toml
new file mode 100644
index 0000000..fb9ccfc
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/palenight.toml
@@ -0,0 +1,29 @@
+# iTerm2 Material Design - Palenight theme for Alacritty
+# Source https//github.com/JonathanSpeek/palenight-iterm2
+
+# Default colors
+[colors.primary]
+background = '#292d3e'
+foreground = '#d0d0d0'
+
+# Normal colors
+[colors.normal]
+black = '#292d3e'
+red = '#f07178'
+green = '#c3e88d'
+yellow = '#ffcb6b'
+blue = '#82aaff'
+magenta = '#c792ea'
+cyan = '#89ddff'
+white = '#d0d0d0'
+
+# Bright colors
+[colors.bright]
+black = '#434758'
+red = '#ff8b92'
+green = '#ddffa7'
+yellow = '#ffe585'
+blue = '#9cc4ff'
+magenta = '#e1acff'
+cyan = '#a3f7ff'
+white = '#ffffff'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/papercolor_dark.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/papercolor_dark.toml
new file mode 100644
index 0000000..a595146
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/papercolor_dark.toml
@@ -0,0 +1,32 @@
+# Colors (PaperColor - Dark)
+
+# Default colors
+[colors.primary]
+background = '#1c1c1c'
+foreground = '#808080'
+
+[colors.cursor]
+text = '#1c1c1c'
+cursor = '#808080'
+
+# Normal colors
+[colors.normal]
+black = '#1c1c1c'
+red = '#af005f'
+green = '#5faf00'
+yellow = '#d7af5f'
+blue = '#5fafd7'
+magenta = '#808080'
+cyan = '#d7875f'
+white = '#d0d0d0'
+
+# Bright colors
+[colors.bright]
+black = '#585858'
+red = '#5faf5f'
+green = '#afd700'
+yellow = '#af87d7'
+blue = '#ffaf00'
+magenta = '#ffaf00'
+cyan = '#00afaf'
+white = '#5f8787'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/papercolor_light.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/papercolor_light.toml
new file mode 100644
index 0000000..bcbec81
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/papercolor_light.toml
@@ -0,0 +1,32 @@
+# Colors (PaperColor - Light)
+
+# Default colors
+[colors.primary]
+background = '#eeeeee'
+foreground = '#444444'
+
+[colors.cursor]
+text = '#eeeeee'
+cursor = '#444444'
+
+# Normal colors
+[colors.normal]
+black = '#eeeeee'
+red = '#af0000'
+green = '#008700'
+yellow = '#5f8700'
+blue = '#0087af'
+magenta = '#878787'
+cyan = '#005f87'
+white = '#444444'
+
+# Bright colors
+[colors.bright]
+black = '#bcbcbc'
+red = '#d70000'
+green = '#d70087'
+yellow = '#8700af'
+blue = '#d75f00'
+magenta = '#d75f00'
+cyan = '#005faf'
+white = '#005f87'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/papertheme.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/papertheme.toml
new file mode 100644
index 0000000..0c192b1
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/papertheme.toml
@@ -0,0 +1,28 @@
+# Colors (Paper Theme)
+
+# Default colors
+[colors.primary]
+background = '#F2EEDE'
+foreground = '#000000'
+
+# Normal colors
+[colors.normal]
+black = '#000000'
+red = '#CC3E28'
+green = '#216609'
+yellow = '#B58900'
+blue = '#1E6FCC'
+magenta = '#5C21A5'
+cyan = '#158C86'
+white = '#AAAAAA'
+
+# Bright colors
+[colors.bright]
+black = '#555555'
+red = '#CC3E28'
+green = '#216609'
+yellow = '#B58900'
+blue = '#1E6FCC'
+magenta = '#5C21A5'
+cyan = '#158C86'
+white = '#AAAAAA'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/pastel_dark.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/pastel_dark.toml
new file mode 100644
index 0000000..a877760
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/pastel_dark.toml
@@ -0,0 +1,33 @@
+# From iTerm2 Pastel Dark theme
+
+# Default colors
+[colors.primary]
+background = '#000000'
+foreground = '#C7C7C7'
+
+# Cursor colors
+[colors.cursor]
+text = '#FFFEFF'
+cursor = '#FFB472'
+
+# Normal colors
+[colors.normal]
+black = '#616161'
+red = '#FF8272'
+green = '#B4FA72'
+yellow = '#FEFDC2'
+blue = '#A5D5FE'
+magenta = '#FF8FFD'
+cyan = '#D0D1FE'
+white = '#F1F1F1'
+
+# Bright colors
+[colors.bright]
+black = '#8E8E8E'
+red = '#FFC4BD'
+green = '#D6FCB9'
+yellow = '#FEFDD5'
+blue = '#C1E3FE'
+magenta = '#FFB1FE'
+cyan = '#E5E6FE'
+white = '#FFFEFF'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/pencil_dark.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/pencil_dark.toml
new file mode 100644
index 0000000..470544c
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/pencil_dark.toml
@@ -0,0 +1,28 @@
+# Colors (Pencil Dark)
+
+# Default Colors
+[colors.primary]
+background = '#212121'
+foreground = '#f1f1f1'
+
+# Normal colors
+[colors.normal]
+black = '#212121'
+red = '#c30771'
+green = '#10a778'
+yellow = '#a89c14'
+blue = '#008ec4'
+magenta = '#523c79'
+cyan = '#20a5ba'
+white = '#e0e0e0'
+
+# Bright colors
+[colors.bright]
+black = '#818181'
+red = '#fb007a'
+green = '#5fd7af'
+yellow = '#f3e430'
+blue = '#20bbfc'
+magenta = '#6855de'
+cyan = '#4fb8cc'
+white = '#f1f1f1'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/pencil_light.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/pencil_light.toml
new file mode 100644
index 0000000..a985b10
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/pencil_light.toml
@@ -0,0 +1,28 @@
+# Colors (Pencil Light)
+
+# Default Colors
+[colors.primary]
+background = '#f1f1f1'
+foreground = '#424242'
+
+# Normal colors
+[colors.normal]
+black = '#212121'
+red = '#c30771'
+green = '#10a778'
+yellow = '#a89c14'
+blue = '#008ec4'
+magenta = '#523c79'
+cyan = '#20a5ba'
+white = '#e0e0e0'
+
+# Bright colors
+[colors.bright]
+black = '#212121'
+red = '#fb007a'
+green = '#5fd7af'
+yellow = '#f3e430'
+blue = '#20bbfc'
+magenta = '#6855de'
+cyan = '#4fb8cc'
+white = '#f1f1f1'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/rainbow.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/rainbow.toml
new file mode 100644
index 0000000..dd7a782
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/rainbow.toml
@@ -0,0 +1,26 @@
+# Default colors
+[colors.primary]
+background = '#192835'
+foreground = '#AADA4F'
+
+# Normal colors
+[colors.normal]
+black = '#5B4375'
+red = '#426bb6'
+green = '#2286b5'
+yellow = '#5ab782'
+blue = '#93ca5b'
+magenta = '#c6c842'
+cyan = '#8a5135'
+white = '#c54646'
+
+# Bright colors
+[colors.bright]
+black = '#5B4375'
+red = '#426bb6'
+green = '#2286b5'
+yellow = '#5ab782'
+blue = '#93ca5b'
+magenta = '#c6c842'
+cyan = '#8a5135'
+white = '#c54646'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/remedy_dark.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/remedy_dark.toml
new file mode 100644
index 0000000..682ec20
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/remedy_dark.toml
@@ -0,0 +1,29 @@
+# Default colors
+[colors.primary]
+background = '#2c2b2a'
+foreground = '#f9e7c4'
+
+dim_foreground = '#685E4A'
+bright_foreground = '#1C1508'
+
+# Normal colors
+[colors.normal]
+black = '#282a2e'
+red = '#a54242'
+green = '#8c9440'
+yellow = '#de935f'
+blue = '#5f819d'
+magenta = '#85678f'
+cyan = '#5e8d87'
+white = '#707880'
+
+# Bright colors
+[colors.bright]
+black = '#373b41'
+red = '#cc6666'
+green = '#b5bd68'
+yellow = '#f0c674'
+blue = '#81a2be'
+magenta = '#b294bb'
+cyan = '#8abeb7'
+white = '#c5c8c6'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/rose-pine-dawn.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/rose-pine-dawn.toml
new file mode 100644
index 0000000..a0ee855
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/rose-pine-dawn.toml
@@ -0,0 +1,39 @@
+[colors.primary]
+background = '#faf4ed'
+foreground = '#575279'
+
+[colors.cursor]
+text = '#575279'
+cursor = '#cecacd'
+
+[colors.vi_mode_cursor]
+text = '#575279'
+cursor = '#cecacd'
+
+[colors.selection]
+text = '#575279'
+background = '#dfdad9'
+
+[colors.normal]
+black = '#f2e9e1'
+red = '#b4637a'
+green = '#286983'
+yellow = '#ea9d34'
+blue = '#56949f'
+magenta = '#907aa9'
+cyan = '#d7827e'
+white = '#575279'
+
+[colors.bright]
+black = '#9893a5'
+red = '#b4637a'
+green = '#286983'
+yellow = '#ea9d34'
+blue = '#56949f'
+magenta = '#907aa9'
+cyan = '#d7827e'
+white = '#575279'
+
+[colors.hints]
+start = { foreground = '#797593', background = '#fffaf3' }
+end = { foreground = '#9893a5', background = '#fffaf3' }
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/rose-pine-moon.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/rose-pine-moon.toml
new file mode 100644
index 0000000..f816e1e
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/rose-pine-moon.toml
@@ -0,0 +1,38 @@
+[colors.primary]
+background = '#232136'
+foreground = '#e0def4'
+
+[colors.cursor]
+text = '#e0def4'
+cursor = '#56526e'
+
+[colors.vi_mode_cursor]
+text = '#e0def4'
+cursor = '#56526e'
+
+[colors.selection]
+text = '#e0def4'
+background = '#44415a'
+[colors.normal]
+black = '#393552'
+red = '#eb6f92'
+green = '#3e8fb0'
+yellow = '#f6c177'
+blue = '#9ccfd8'
+magenta = '#c4a7e7'
+cyan = '#ea9a97'
+white = '#e0def4'
+
+[colors.bright]
+black = '#6e6a86'
+red = '#eb6f92'
+green = '#3e8fb0'
+yellow = '#f6c177'
+blue = '#9ccfd8'
+magenta = '#c4a7e7'
+cyan = '#ea9a97'
+white = '#e0def4'
+
+[colors.hints]
+start = { foreground = '#908caa', background = '#2a273f' }
+end = { foreground = '#6e6a86', background = '#2a273f' }
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/rose-pine.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/rose-pine.toml
new file mode 100644
index 0000000..0c5ffc2
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/rose-pine.toml
@@ -0,0 +1,39 @@
+[colors.primary]
+background = '#191724'
+foreground = '#e0def4'
+
+[colors.cursor]
+text = '#e0def4'
+cursor = '#524f67'
+
+[colors.vi_mode_cursor]
+text = '#e0def4'
+cursor = '#524f67'
+
+[colors.selection]
+text = '#e0def4'
+background = '#403d52'
+
+[colors.normal]
+black = '#26233a'
+red = '#eb6f92'
+green = '#31748f'
+yellow = '#f6c177'
+blue = '#9ccfd8'
+magenta = '#c4a7e7'
+cyan = '#ebbcba'
+white = '#e0def4'
+
+[colors.bright]
+black = '#6e6a86'
+red = '#eb6f92'
+green = '#31748f'
+yellow = '#f6c177'
+blue = '#9ccfd8'
+magenta = '#c4a7e7'
+cyan = '#ebbcba'
+white = '#e0def4'
+
+[colors.hints]
+start = {foreground = '#908caa', background = '#1f1d2e' }
+end = { foreground = '#6e6a86', background = '#1f1d2e' }
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/seashells.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/seashells.toml
new file mode 100644
index 0000000..0db2734
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/seashells.toml
@@ -0,0 +1,37 @@
+# Colors (SeaShells)
+# Source https//raw.githubusercontent.com/mbadolato/iTerm2-Color-Schemes/master/schemes/SeaShells.itermcolors
+
+# Default colors
+[colors.primary]
+background = '#061923'
+foreground = '#e5c49e'
+
+[colors.cursor]
+text = '#061822'
+cursor = '#feaf3c'
+
+[colors.selection]
+text = '#ffe9d7'
+background = '#265b75'
+
+# Normal colors
+[colors.normal]
+black = '#1d485f'
+red = '#db662d'
+green = '#008eab'
+yellow = '#feaf3c'
+blue = '#255a62'
+magenta = '#77dbf4'
+cyan = '#5fb1c2'
+white = '#e5c49e'
+
+# Bright colors
+[colors.bright]
+black = '#545d65'
+red = '#dd998a'
+green = '#739da8'
+yellow = '#fedaae'
+blue = '#0bc7e3'
+magenta = '#c6e8f1'
+cyan = '#97b9c0'
+white = '#ffe9d7'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/smoooooth.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/smoooooth.toml
new file mode 100644
index 0000000..bdda69f
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/smoooooth.toml
@@ -0,0 +1,33 @@
+# Color theme ported from iTerm 2 Smoooooth
+
+[colors.primary]
+foreground = '#dbdbdb'
+background = '#14191e'
+
+[colors.cursor]
+text = '#000000'
+cursor = '#fefffe'
+
+[colors.selection]
+text = '#000000'
+background = '#b3d7ff'
+
+[colors.normal]
+black = '#14191e'
+red = '#b43c29'
+green = '#00c200'
+yellow = '#c7c400'
+blue = '#2743c7'
+magenta = '#bf3fbd'
+cyan = '#00c5c7'
+white = '#c7c7c7'
+
+[colors.bright]
+black = '#676767'
+red = '#dc7974'
+green = '#57e690'
+yellow = '#ece100'
+blue = '#a6aaf1'
+magenta = '#e07de0'
+cyan = '#5ffdff'
+white = '#feffff'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/snazzy.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/snazzy.toml
new file mode 100644
index 0000000..1d47914
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/snazzy.toml
@@ -0,0 +1,28 @@
+# Colors (Snazzy)
+
+# Default colors
+[colors.primary]
+background = '#282a36'
+foreground = '#eff0eb'
+
+# Normal colors
+[colors.normal]
+black = '#282a36'
+red = '#ff5c57'
+green = '#5af78e'
+yellow = '#f3f99d'
+blue = '#57c7ff'
+magenta = '#ff6ac1'
+cyan = '#9aedfe'
+white = '#f1f1f0'
+
+# Bright colors
+[colors.bright]
+black = '#686868'
+red = '#ff5c57'
+green = '#5af78e'
+yellow = '#f3f99d'
+blue = '#57c7ff'
+magenta = '#ff6ac1'
+cyan = '#9aedfe'
+white = '#f1f1f0'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/solarized_dark.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/solarized_dark.toml
new file mode 100644
index 0000000..dbcce2b
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/solarized_dark.toml
@@ -0,0 +1,28 @@
+# Colors (Solarized Dark)
+
+# Default colors
+[colors.primary]
+background = '#002b36'
+foreground = '#839496'
+
+# Normal colors
+[colors.normal]
+black = '#073642'
+red = '#dc322f'
+green = '#859900'
+yellow = '#b58900'
+blue = '#268bd2'
+magenta = '#d33682'
+cyan = '#2aa198'
+white = '#eee8d5'
+
+# Bright colors
+[colors.bright]
+black = '#002b36'
+red = '#cb4b16'
+green = '#586e75'
+yellow = '#657b83'
+blue = '#839496'
+magenta = '#6c71c4'
+cyan = '#93a1a1'
+white = '#fdf6e3'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/solarized_light.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/solarized_light.toml
new file mode 100644
index 0000000..3f7eb25
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/solarized_light.toml
@@ -0,0 +1,28 @@
+# Colors (Solarized Light)
+
+# Default colors
+[colors.primary]
+background = '#fdf6e3'
+foreground = '#586e75'
+
+# Normal colors
+[colors.normal]
+black = '#073642'
+red = '#dc322f'
+green = '#859900'
+yellow = '#b58900'
+blue = '#268bd2'
+magenta = '#d33682'
+cyan = '#2aa198'
+white = '#eee8d5'
+
+# Bright colors
+[colors.bright]
+black = '#002b36'
+red = '#cb4b16'
+green = '#586e75'
+yellow = '#657b83'
+blue = '#839496'
+magenta = '#6c71c4'
+cyan = '#93a1a1'
+white = '#fdf6e3'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/solarized_osaka.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/solarized_osaka.toml
new file mode 100644
index 0000000..0f25c29
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/solarized_osaka.toml
@@ -0,0 +1,29 @@
+# Colors (Solarized Osaka)
+# Source https://github.com/craftzdog/solarized-osaka.nvim
+
+# Default colors
+[colors.primary]
+background = '#001a1d'
+foreground = '#839496'
+
+# Normal colors
+[colors.normal]
+black = '#073642'
+red = '#dc322f'
+green = '#859900'
+yellow = '#b58900'
+blue = '#268bd2'
+magenta = '#d33682'
+cyan = '#2aa198'
+white = '#eee8d5'
+
+# Bright colors
+[colors.bright]
+black = '#4c4c4c'
+red = '#cb4b16'
+green = '#586e75'
+yellow = '#657b83'
+blue = '#839496'
+magenta = '#6c71c4'
+cyan = '#93a1a1'
+white = '#fdf6e3'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/taerminal.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/taerminal.toml
new file mode 100644
index 0000000..1ae012a
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/taerminal.toml
@@ -0,0 +1,32 @@
+# Colors (Taerminal)
+
+# Default colors
+[colors.primary]
+background = '#26282a'
+foreground = '#f0f0f0'
+
+[colors.cursor]
+background = '#f0f0f0'
+foreground = '#26282a'
+
+# Normal colors
+[colors.normal]
+black = '#26282a'
+red = '#ff8878'
+green = '#b4fb73'
+yellow = '#fffcb7'
+blue = '#8bbce5'
+magenta = '#ffb2fe'
+cyan = '#a2e1f8'
+white = '#f1f1f1'
+
+# Bright colors
+[colors.bright]
+black = '#6f6f6f'
+red = '#fe978b'
+green = '#d6fcba'
+yellow = '#fffed5'
+blue = '#c2e3ff'
+magenta = '#ffc6ff'
+cyan = '#c0e9f8'
+white = '#ffffff'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/tango_dark.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/tango_dark.toml
new file mode 100644
index 0000000..55541a9
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/tango_dark.toml
@@ -0,0 +1,25 @@
+# GNOME Terminal Tango Dark
+
+[colors.primary]
+background = '#2e3436'
+foreground = '#d3d7cf'
+
+[colors.normal]
+black = '#2e3436'
+red = '#cc0000'
+green = '#4e9a06'
+yellow = '#c4a000'
+blue = '#3465a4'
+magenta = '#75507b'
+cyan = '#06989a'
+white = '#d3d7cf'
+
+[colors.bright]
+black = '#555753'
+red = '#ef2929'
+green = '#8ae234'
+yellow = '#fce94f'
+blue = '#729fcf'
+magenta = '#ad7fa8'
+cyan = '#34e2e2'
+white = '#eeeeec'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/tender.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/tender.toml
new file mode 100644
index 0000000..9e09a06
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/tender.toml
@@ -0,0 +1,26 @@
+# Default colors
+[colors.primary]
+background = '#282828'
+foreground = '#eeeeee'
+
+# Normal colors
+[colors.normal]
+black = '#282828'
+red = '#f43753'
+green = '#c9d05c'
+yellow = '#ffc24b'
+blue = '#b3deef'
+magenta = '#d3b987'
+cyan = '#73cef4'
+white = '#eeeeee'
+
+# Bright colors
+[colors.bright]
+black = '#4c4c4c'
+red = '#f43753'
+green = '#c9d05c'
+yellow = '#ffc24b'
+blue = '#b3deef'
+magenta = '#d3b987'
+cyan = '#73cef4'
+white = '#feffff'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/terminal_app.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/terminal_app.toml
new file mode 100644
index 0000000..838f7a5
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/terminal_app.toml
@@ -0,0 +1,28 @@
+# Colors (Terminal.app)
+
+# Default colors
+[colors.primary]
+background = '#000000'
+foreground = '#b6b6b6'
+
+# Normal colors
+[colors.normal]
+black = '#000000'
+red = '#990000'
+green = '#00a600'
+yellow = '#999900'
+blue = '#0000b2'
+magenta = '#b200b2'
+cyan = '#00a6b2'
+white = '#bfbfbf'
+
+# Bright colors
+[colors.bright]
+black = '#666666'
+red = '#e50000'
+green = '#00d900'
+yellow = '#e5e500'
+blue = '#0000ff'
+magenta = '#e500e5'
+cyan = '#00e5e5'
+white = '#e5e5e5'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/thelovelace.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/thelovelace.toml
new file mode 100644
index 0000000..461474e
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/thelovelace.toml
@@ -0,0 +1,26 @@
+# Default colors
+[colors.primary]
+background = '#1D1F28'
+foreground = '#FDFDFD'
+
+# Normal colors
+[colors.normal]
+# Bright colors
+black = '#282A36'
+red = '#F37F97'
+green = '#5ADECD'
+yellow = '#F2A272'
+blue = '#8897F4'
+magenta = '#C574DD'
+cyan = '#79E6F3'
+white = '#FDFDFD'
+
+[colors.bright]
+black = '#414458'
+red = '#FF4971'
+green = '#18E3C8'
+yellow = '#EBCB8B'
+blue = '#FF8037'
+magenta = '#556FFF'
+cyan = '#3FDCEE'
+white = '#BEBEC1'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/tokyo-night-storm.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/tokyo-night-storm.toml
new file mode 100644
index 0000000..992f1d3
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/tokyo-night-storm.toml
@@ -0,0 +1,29 @@
+# Colors (Tokyo Night Storm variant)
+# Source https//github.com/zatchheems/tokyo-night-alacritty-theme
+
+# Default colors
+[colors.primary]
+background = '#24283b'
+foreground = '#a9b1d6'
+
+# Normal colors
+[colors.normal]
+black = '#32344a'
+red = '#f7768e'
+green = '#9ece6a'
+yellow = '#e0af68'
+blue = '#7aa2f7'
+magenta = '#ad8ee6'
+cyan = '#449dab'
+white = '#9699a8'
+
+# Bright colors
+[colors.bright]
+black = '#444b6a'
+red = '#ff7a93'
+green = '#b9f27c'
+yellow = '#ff9e64'
+blue = '#7da6ff'
+magenta = '#bb9af7'
+cyan = '#0db9d7'
+white = '#acb0d0'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/tokyo-night.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/tokyo-night.toml
new file mode 100644
index 0000000..0642a90
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/tokyo-night.toml
@@ -0,0 +1,29 @@
+# Colors (Tokyo Night)
+# Source https//github.com/zatchheems/tokyo-night-alacritty-theme
+
+# Default colors
+[colors.primary]
+background = '#1a1b26'
+foreground = '#a9b1d6'
+
+# Normal colors
+[colors.normal]
+black = '#32344a'
+red = '#f7768e'
+green = '#9ece6a'
+yellow = '#e0af68'
+blue = '#7aa2f7'
+magenta = '#ad8ee6'
+cyan = '#449dab'
+white = '#787c99'
+
+# Bright colors
+[colors.bright]
+black = '#444b6a'
+red = '#ff7a93'
+green = '#b9f27c'
+yellow = '#ff9e64'
+blue = '#7da6ff'
+magenta = '#bb9af7'
+cyan = '#0db9d7'
+white = '#acb0d0'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/tomorrow_night.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/tomorrow_night.toml
new file mode 100644
index 0000000..579ebd8
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/tomorrow_night.toml
@@ -0,0 +1,32 @@
+# Colors (Tomorrow Night)
+
+# Default colors
+[colors.primary]
+background = '#1d1f21'
+foreground = '#c5c8c6'
+
+[colors.cursor]
+text = '#1d1f21'
+cursor = '#ffffff'
+
+# Normal colors
+[colors.normal]
+black = '#1d1f21'
+red = '#cc6666'
+green = '#b5bd68'
+yellow = '#e6c547'
+blue = '#81a2be'
+magenta = '#b294bb'
+cyan = '#70c0ba'
+white = '#373b41'
+
+# Bright colors
+[colors.bright]
+black = '#666666'
+red = '#ff3334'
+green = '#9ec400'
+yellow = '#f0c674'
+blue = '#81a2be'
+magenta = '#b77ee0'
+cyan = '#54ced6'
+white = '#282a2e'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/tomorrow_night_bright.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/tomorrow_night_bright.toml
new file mode 100644
index 0000000..9ce62a3
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/tomorrow_night_bright.toml
@@ -0,0 +1,28 @@
+# Colors (Tomorrow Night Bright)
+
+# Default colors
+[colors.primary]
+background = '#000000'
+foreground = '#eaeaea'
+
+# Normal colors
+[colors.normal]
+black = '#000000'
+red = '#d54e53'
+green = '#b9ca4a'
+yellow = '#e6c547'
+blue = '#7aa6da'
+magenta = '#c397d8'
+cyan = '#70c0ba'
+white = '#424242'
+
+# Bright colors
+[colors.bright]
+black = '#666666'
+red = '#ff3334'
+green = '#9ec400'
+yellow = '#e7c547'
+blue = '#7aa6da'
+magenta = '#b77ee0'
+cyan = '#54ced6'
+white = '#2a2a2a'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/ubuntu.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/ubuntu.toml
new file mode 100644
index 0000000..952cc07
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/ubuntu.toml
@@ -0,0 +1,33 @@
+# 0x From the Ubuntu terminal color palette
+
+# 0x Default colors
+[colors.primary]
+background = '#300a24'
+foreground = '#eeeeec'
+
+# 0x Colors the cursor will use if `custom_cursor_colors` is true
+[colors.cursor]
+text = '#bbbbbb'
+cursor = '#b4d5ff'
+
+# 0x Normal colors
+[colors.normal]
+black = '#2e3436'
+red = '#cc0000'
+green = '#4e9a06'
+yellow = '#c4a000'
+blue = '#3465a4'
+magenta = '#75507b'
+cyan = '#06989a'
+white = '#d3d7cf'
+
+# 0x Bright colors
+[colors.bright]
+black = '#555753'
+red = '#ef2929'
+green = '#8ae234'
+yellow = '#fce94f'
+blue = '#729fcf'
+magenta = '#ad7fa8'
+cyan = '#34e2e2'
+white = '#eeeeec'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/vesper.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/vesper.toml
new file mode 100644
index 0000000..dea338c
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/vesper.toml
@@ -0,0 +1,26 @@
+# Colors (Vesper)
+# Source https://github.com/raunofreiberg/vesper
+
+[colors.primary]
+background = '#101010'
+foreground = '#ffffff'
+
+[colors.normal]
+black = '#101010'
+red = '#f5a191'
+green = '#90b99f'
+yellow = '#e6b99d'
+blue = '#aca1cf'
+magenta = '#e29eca'
+cyan = '#ea83a5'
+white = '#a0a0a0'
+
+[colors.bright]
+black = '#7e7e7e'
+red = '#ff8080'
+green = '#99ffe4'
+yellow = '#ffc799'
+blue = '#b9aeda'
+magenta = '#ecaad6'
+cyan = '#f591b2'
+white = '#ffffff'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/wombat.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/wombat.toml
new file mode 100644
index 0000000..fb13a54
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/wombat.toml
@@ -0,0 +1,28 @@
+# Colors (Wombat)
+
+# Default colors
+[colors.primary]
+background = '#1f1f1f'
+foreground = '#e5e1d8'
+
+# Normal colors
+[colors.normal]
+black = '#000000'
+red = '#f7786d'
+green = '#bde97c'
+yellow = '#efdfac'
+blue = '#6ebaf8'
+magenta = '#ef88ff'
+cyan = '#90fdf8'
+white = '#e5e1d8'
+
+# Bright colors
+[colors.bright]
+black = '#b4b4b4'
+red = '#f99f92'
+green = '#e3f7a1'
+yellow = '#f2e9bf'
+blue = '#b3d2ff'
+magenta = '#e5bdff'
+cyan = '#c2fefa'
+white = '#ffffff'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/xterm.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/xterm.toml
new file mode 100644
index 0000000..47fd62c
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/xterm.toml
@@ -0,0 +1,28 @@
+# XTerm's default colors
+
+# Default colors
+[colors.primary]
+background = '#000000'
+foreground = '#ffffff'
+
+# Normal colors
+[colors.normal]
+black = '#000000'
+red = '#cd0000'
+green = '#00cd00'
+yellow = '#cdcd00'
+blue = '#0000ee'
+magenta = '#cd00cd'
+cyan = '#00cdcd'
+white = '#e5e5e5'
+
+# Bright colors
+[colors.bright]
+black = '#7f7f7f'
+red = '#ff0000'
+green = '#00ff00'
+yellow = '#ffff00'
+blue = '#5c5cff'
+magenta = '#ff00ff'
+cyan = '#00ffff'
+white = '#ffffff'
diff --git a/roles/dotfiles/files/.config/alacritty/themes/themes/zenburn.toml b/roles/dotfiles/files/.config/alacritty/themes/themes/zenburn.toml
new file mode 100644
index 0000000..9c6fcd0
--- /dev/null
+++ b/roles/dotfiles/files/.config/alacritty/themes/themes/zenburn.toml
@@ -0,0 +1,29 @@
+# Colors (Zenburn)
+# Orginally designed by jnurmine for vim.
+
+# Default colors
+[colors.primary]
+background = '#3A3A3A'
+foreground = '#DCDCCC'
+
+# Normal colors
+[colors.normal]
+black = '#1E2320'
+red = '#D78787'
+green = '#60B48A'
+yellow = '#DFAF8F'
+blue = '#506070'
+magenta = '#DC8CC3'
+cyan = '#8CD0D3'
+white = '#DCDCCC'
+
+# Bright colors
+[colors.bright]
+black = '#709080'
+red = '#DCA3A3'
+green = '#C3BF9F'
+yellow = '#F0DFAF'
+blue = '#94BFF3'
+magenta = '#EC93D3'
+cyan = '#93E0E3'
+white = '#FFFFFF'
diff --git a/roles/dotfiles/files/.config/fish/config.fish b/roles/dotfiles/files/.config/fish/config.fish
new file mode 100644
index 0000000..c6a3dc2
--- /dev/null
+++ b/roles/dotfiles/files/.config/fish/config.fish
@@ -0,0 +1,6 @@
+if status is-interactive
+ # Commands to run in interactive sessions can go here
+end
+
+# opam configuration
+source /home/dragon/Containers/Dev/.opam/opam-init/init.fish > /dev/null 2> /dev/null; or true
diff --git a/roles/dotfiles/files/.config/fish/fish_variables b/roles/dotfiles/files/.config/fish/fish_variables
new file mode 100644
index 0000000..14730eb
--- /dev/null
+++ b/roles/dotfiles/files/.config/fish/fish_variables
@@ -0,0 +1,44 @@
+# This file contains fish universal variable definitions.
+# VERSION: 3.0
+SETUVAR __fish_initialized:3400
+SETUVAR fish_color_autosuggestion:4D5566
+SETUVAR fish_color_cancel:\x2dr
+SETUVAR fish_color_command:39BAE6
+SETUVAR fish_color_comment:626A73
+SETUVAR fish_color_cwd:59C2FF
+SETUVAR fish_color_cwd_root:red
+SETUVAR fish_color_end:F29668
+SETUVAR fish_color_error:FF3333
+SETUVAR fish_color_escape:95E6CB
+SETUVAR fish_color_history_current:\x2d\x2dbold
+SETUVAR fish_color_host:normal
+SETUVAR fish_color_host_remote:yellow
+SETUVAR fish_color_keyword:39BAE6
+SETUVAR fish_color_match:F07178
+SETUVAR fish_color_normal:B3B1AD
+SETUVAR fish_color_operator:E6B450
+SETUVAR fish_color_option:B3B1AD
+SETUVAR fish_color_param:B3B1AD
+SETUVAR fish_color_quote:C2D94C
+SETUVAR fish_color_redirection:FFEE99
+SETUVAR fish_color_search_match:\x2d\x2dbackground\x3dE6B450
+SETUVAR fish_color_selection:\x2d\x2dbackground\x3dE6B450
+SETUVAR fish_color_status:red
+SETUVAR fish_color_user:brgreen
+SETUVAR fish_color_valid_path:\x2d\x2dunderline
+SETUVAR fish_greeting:\x1d
+SETUVAR fish_key_bindings:fish_default_key_bindings
+SETUVAR fish_pager_color_background:\x1d
+SETUVAR fish_pager_color_completion:normal
+SETUVAR fish_pager_color_description:B3A06D\x1eyellow
+SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
+SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
+SETUVAR fish_pager_color_secondary_background:\x1d
+SETUVAR fish_pager_color_secondary_completion:\x1d
+SETUVAR fish_pager_color_secondary_description:\x1d
+SETUVAR fish_pager_color_secondary_prefix:\x1d
+SETUVAR fish_pager_color_selected_background:\x2d\x2dbackground\x3dE6B450
+SETUVAR fish_pager_color_selected_completion:\x1d
+SETUVAR fish_pager_color_selected_description:\x1d
+SETUVAR fish_pager_color_selected_prefix:\x1d
+SETUVAR fish_user_paths:/home/dragon/\x2elocal/bin
diff --git a/roles/dotfiles/files/.config/fish/functions/fish_prompt.fish b/roles/dotfiles/files/.config/fish/functions/fish_prompt.fish
new file mode 100644
index 0000000..0396e6f
--- /dev/null
+++ b/roles/dotfiles/files/.config/fish/functions/fish_prompt.fish
@@ -0,0 +1,61 @@
+function fish_prompt --description 'Write out the prompt'
+ set -l last_pipestatus $pipestatus
+ set -lx __fish_last_status $status # Export for __fish_print_pipestatus.
+
+ if not set -q __fish_git_prompt_show_informative_status
+ set -g __fish_git_prompt_show_informative_status 1
+ end
+ if not set -q __fish_git_prompt_hide_untrackedfiles
+ set -g __fish_git_prompt_hide_untrackedfiles 1
+ end
+ if not set -q __fish_git_prompt_color_branch
+ set -g __fish_git_prompt_color_branch magenta --bold
+ end
+ if not set -q __fish_git_prompt_showupstream
+ set -g __fish_git_prompt_showupstream informative
+ end
+ if not set -q __fish_git_prompt_color_dirtystate
+ set -g __fish_git_prompt_color_dirtystate blue
+ end
+ if not set -q __fish_git_prompt_color_stagedstate
+ set -g __fish_git_prompt_color_stagedstate yellow
+ end
+ if not set -q __fish_git_prompt_color_invalidstate
+ set -g __fish_git_prompt_color_invalidstate red
+ end
+ if not set -q __fish_git_prompt_color_untrackedfiles
+ set -g __fish_git_prompt_color_untrackedfiles $fish_color_normal
+ end
+ if not set -q __fish_git_prompt_color_cleanstate
+ set -g __fish_git_prompt_color_cleanstate green --bold
+ end
+
+ set -l color_cwd
+ set -l suffix
+ if functions -q fish_is_root_user; and fish_is_root_user
+ if set -q fish_color_cwd_root
+ set color_cwd $fish_color_cwd_root
+ else
+ set color_cwd $fish_color_cwd
+ end
+ set suffix '#'
+ else
+ set color_cwd $fish_color_cwd
+ set suffix '$'
+ end
+
+ # PWD
+ set_color $color_cwd
+ echo -n (prompt_pwd)
+ set_color normal
+
+ printf '%s ' (fish_vcs_prompt)
+
+ set -l status_color (set_color $fish_color_status)
+ set -l statusb_color (set_color --bold $fish_color_status)
+ set -l prompt_status (__fish_print_pipestatus "[" "]" "|" "$status_color" "$statusb_color" $last_pipestatus)
+ echo -n $prompt_status
+ set_color normal
+
+ echo -n "$suffix "
+end
diff --git a/roles/dotfiles/files/.config/fish/functions/fish_prompt.fish.bak b/roles/dotfiles/files/.config/fish/functions/fish_prompt.fish.bak
new file mode 100644
index 0000000..0396e6f
--- /dev/null
+++ b/roles/dotfiles/files/.config/fish/functions/fish_prompt.fish.bak
@@ -0,0 +1,61 @@
+function fish_prompt --description 'Write out the prompt'
+ set -l last_pipestatus $pipestatus
+ set -lx __fish_last_status $status # Export for __fish_print_pipestatus.
+
+ if not set -q __fish_git_prompt_show_informative_status
+ set -g __fish_git_prompt_show_informative_status 1
+ end
+ if not set -q __fish_git_prompt_hide_untrackedfiles
+ set -g __fish_git_prompt_hide_untrackedfiles 1
+ end
+ if not set -q __fish_git_prompt_color_branch
+ set -g __fish_git_prompt_color_branch magenta --bold
+ end
+ if not set -q __fish_git_prompt_showupstream
+ set -g __fish_git_prompt_showupstream informative
+ end
+ if not set -q __fish_git_prompt_color_dirtystate
+ set -g __fish_git_prompt_color_dirtystate blue
+ end
+ if not set -q __fish_git_prompt_color_stagedstate
+ set -g __fish_git_prompt_color_stagedstate yellow
+ end
+ if not set -q __fish_git_prompt_color_invalidstate
+ set -g __fish_git_prompt_color_invalidstate red
+ end
+ if not set -q __fish_git_prompt_color_untrackedfiles
+ set -g __fish_git_prompt_color_untrackedfiles $fish_color_normal
+ end
+ if not set -q __fish_git_prompt_color_cleanstate
+ set -g __fish_git_prompt_color_cleanstate green --bold
+ end
+
+ set -l color_cwd
+ set -l suffix
+ if functions -q fish_is_root_user; and fish_is_root_user
+ if set -q fish_color_cwd_root
+ set color_cwd $fish_color_cwd_root
+ else
+ set color_cwd $fish_color_cwd
+ end
+ set suffix '#'
+ else
+ set color_cwd $fish_color_cwd
+ set suffix '$'
+ end
+
+ # PWD
+ set_color $color_cwd
+ echo -n (prompt_pwd)
+ set_color normal
+
+ printf '%s ' (fish_vcs_prompt)
+
+ set -l status_color (set_color $fish_color_status)
+ set -l statusb_color (set_color --bold $fish_color_status)
+ set -l prompt_status (__fish_print_pipestatus "[" "]" "|" "$status_color" "$statusb_color" $last_pipestatus)
+ echo -n $prompt_status
+ set_color normal
+
+ echo -n "$suffix "
+end
diff --git a/roles/dotfiles/files/.config/fish/functions/home.fish b/roles/dotfiles/files/.config/fish/functions/home.fish
new file mode 100644
index 0000000..3e4f5fb
--- /dev/null
+++ b/roles/dotfiles/files/.config/fish/functions/home.fish
@@ -0,0 +1,4 @@
+function home --wraps='git --work-tree=$HOME --git-dir=$HOME/.home' --description 'alias home=git --work-tree=$HOME --git-dir=$HOME/.home'
+ git --work-tree=$HOME --git-dir=$HOME/.home $argv
+
+end
diff --git a/roles/dotfiles/files/.config/helix/config.toml b/roles/dotfiles/files/.config/helix/config.toml
new file mode 100644
index 0000000..efc064b
--- /dev/null
+++ b/roles/dotfiles/files/.config/helix/config.toml
@@ -0,0 +1,31 @@
+theme = "catppuccin_latte"
+
+[editor]
+auto-completion = false
+true-color = true
+whitespace.render = "all"
+mouse = false
+# bufferline = "multiple"
+
+[keys.normal]
+"и" = "insert_mode"
+"р" = "replace"
+"Р" = "replace_with_yanked"
+"у" = "undo"
+"У" = "redo"
+"ы" = "yank"
+"п" = "paste_after"
+"П" = "paste_before"
+"д" = "delete_selection"
+"х" = "extend_line_below"
+"в" = "select_mode"
+"ret" = ":w"
+"S-left"="jump_view_left"
+"S-right"="jump_view_right"
+
+[keys.select]
+"ы" = "yank"
+"д" = "delete_selection"
+
+[keys.normal.space]
+l = ":toggle lsp.display-inlay-hints"
diff --git a/roles/dotfiles/files/.config/helix/languages.toml b/roles/dotfiles/files/.config/helix/languages.toml
new file mode 100644
index 0000000..cacfd85
--- /dev/null
+++ b/roles/dotfiles/files/.config/helix/languages.toml
@@ -0,0 +1,3 @@
+[[language]]
+name = "cpp"
+# auto-format = true
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/.all-contributorsrc b/roles/dotfiles/files/.config/kitty/kitty-themes/.all-contributorsrc
new file mode 100644
index 0000000..c990c95
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/.all-contributorsrc
@@ -0,0 +1,111 @@
+{
+ "files": [
+ "README.md"
+ ],
+ "badgeTemplate": "[](#contributors)",
+ "contributorTemplate": "\"><%= contributor.name %>
<%= contributions %>",
+ "imageSize": 100,
+ "commit": false,
+ "contributors": [
+ {
+ "login": "scopatz",
+ "name": "Anthony Scopatz",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/320553?v=4",
+ "profile": "http://www.scopatz.com",
+ "contributions": [
+ "doc"
+ ]
+ },
+ {
+ "login": "orangecoloured",
+ "name": "RCKT",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/3314891?v=4",
+ "profile": "https://rckt.cc",
+ "contributions": [
+ "theme"
+ ]
+ },
+ {
+ "login": "varmanishant",
+ "name": "varmanishant",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/4084912?v=4",
+ "profile": "https://github.com/varmanishant",
+ "contributions": [
+ "theme"
+ ]
+ },
+ {
+ "login": "rlerdorf",
+ "name": "Rasmus Lerdorf",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/54641?v=4",
+ "profile": "https://github.com/rlerdorf",
+ "contributions": [
+ "bug",
+ "ideas"
+ ]
+ },
+ {
+ "login": "Luflosi",
+ "name": "Luflosi",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/15217907?v=4",
+ "profile": "https://github.com/Luflosi",
+ "contributions": [
+ "fix",
+ "question",
+ "doc"
+ ]
+ },
+ {
+ "login": "connorholyday",
+ "name": "Connor Holyday",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/4559119?v=4",
+ "profile": "https://holyday.me",
+ "contributions": [
+ "fix"
+ ]
+ },
+ {
+ "login": "BlueDrink9",
+ "name": "BlueDrink9",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/26474254?v=4",
+ "profile": "https://github.com/BlueDrink9",
+ "contributions": [
+ "bug"
+ ]
+ },
+ {
+ "login": "brujoand",
+ "name": "Anders Brujordet",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/124421?v=4",
+ "profile": "https://github.com/brujoand",
+ "contributions": [
+ "theme"
+ ]
+ },
+ {
+ "login": "rjshrjndrn",
+ "name": "Rajesh Rajendran",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/2563385?v=4",
+ "profile": "http://www.hackouts.com",
+ "contributions": [
+ "fix"
+ ]
+ }
+ ],
+ "types": {
+ "theme": {
+ "symbol": "😻",
+ "description": "New theme added to the collection"
+ },
+ "fix": {
+ "symbol": "🛠️",
+ "description": "Fixed a theme"
+ }
+ },
+ "contributorsPerLine": 7,
+ "projectName": "kitty-themes",
+ "projectOwner": "dexpota",
+ "repoType": "github",
+ "repoHost": "https://github.com",
+ "commitConvention": "none"
+}
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/README.md b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/README.md
new file mode 100644
index 0000000..7321155
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/README.md
@@ -0,0 +1,9 @@
+# kitty-tools
+> A bunch of useful scripts used to convert schemes and generate files.
+
+## Process overview
+
+1. Find a nice theme and check the licensing, is it possible to distribute the theme?
+2. Generate the configuration file for **kitty**;
+3. Add a new preview for the theme;
+4. Update the README.md;
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/color_table.sh b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/color_table.sh
new file mode 100755
index 0000000..b7b4559
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/color_table.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+#
+# This file echoes a bunch of color codes to the
+# terminal to demonstrate what's available. Each
+# line is the color code of one forground color,
+# out of 17 (default + 16 escapes), followed by a
+# test use of that color on all nine background
+# colors (default + 8 escapes).
+#
+
+T='gYw' # The test text
+
+echo -e "\n 40m 41m 42m 43m\
+ 44m 45m 46m 47m";
+
+for FGs in ' m' ' 1m' ' 30m' '1;30m' ' 31m' '1;31m' ' 32m' \
+ '1;32m' ' 33m' '1;33m' ' 34m' '1;34m' ' 35m' '1;35m' \
+ ' 36m' '1;36m' ' 37m' '1;37m';
+ do FG=${FGs// /}
+ echo -en " $FGs \033[$FG $T "
+ for BG in 40m 41m 42m 43m 44m 45m 46m 47m;
+ do echo -en "$EINS \033[$FG\033[$BG $T \033[0m";
+ done
+ echo;
+done
+echo
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/convert.py b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/convert.py
new file mode 100644
index 0000000..3599ddc
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/convert.py
@@ -0,0 +1,30 @@
+import json
+from jinja2 import FileSystemLoader, Environment
+import sys
+import os
+
+
+def removeAlpha(value):
+ hex = value.lstrip("#")
+ return "#" + hex[0:6]
+
+
+filename = sys.argv[1]
+
+kitty_configuration = os.path.splitext(filename)[0] + ".conf"
+
+with open(filename, "r") as configuration_file:
+ configuration = json.load(configuration_file)
+
+loader = FileSystemLoader(".")
+env = Environment(loader=loader)
+
+env.filters['removeAlpha'] = removeAlpha
+env.trim_blocks = True
+
+template = env.get_template("template.conf.j2")
+
+output = template.render(**configuration)
+
+with open(kitty_configuration, "w") as fp:
+ fp.write(output)
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/convert_conf.swift b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/convert_conf.swift
new file mode 100755
index 0000000..b023f56
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/convert_conf.swift
@@ -0,0 +1,57 @@
+#!/usr/bin/swift
+// main.swift
+// nscolor
+//
+// Created by Fabrizio FD. Destro on 28/12/18.
+// Copyright © 2018 Fabrizio FD. Destro. All rights reserved.
+//
+
+import Foundation
+import AppKit
+
+func hex(color: NSColor) -> String {
+ return String(format: "#%02x%02x%02x", Int(color.redComponent * 0xFF), Int(color.greenComponent * 0xFF), Int(color.blueComponent * 0xFF))
+}
+
+func process_color(field: String, data: Data) {
+ let color = NSKeyedUnarchiver.unarchiveObject(with: data) as! NSColor
+ print("\(field) \(hex(color: color))");
+}
+
+func generate_conf_line(field: String, key: String, dictionary: NSDictionary){
+ if let data = dictionary[key] {
+ process_color(field: field, data: data as! Data)
+ }
+}
+
+func process(filename: String) {
+ let plist = NSDictionary(contentsOfFile: filename)!
+
+ generate_conf_line(field: "background", key: "BackgroundColor", dictionary: plist)
+ generate_conf_line(field: "foreground", key: "TextColor", dictionary: plist)
+ generate_conf_line(field: "cursor", key: "CursorColor", dictionary: plist)
+ generate_conf_line(field: "selection_background", key: "SelectionColor", dictionary: plist)
+ generate_conf_line(field: "color0", key: "ANSIBlackColor", dictionary: plist)
+ generate_conf_line(field: "color8", key: "ANSIBrightBlackColor", dictionary: plist)
+ generate_conf_line(field: "color1", key: "ANSIRedColor", dictionary: plist)
+ generate_conf_line(field: "color9", key: "ANSIBrightRedColor", dictionary: plist)
+ generate_conf_line(field: "color2", key: "ANSIGreenColor", dictionary: plist)
+ generate_conf_line(field: "color10", key: "ANSIBrightGreenColor", dictionary: plist)
+ generate_conf_line(field: "color3", key: "ANSIYellowColor", dictionary: plist)
+ generate_conf_line(field: "color11", key: "ANSIBrightYellowColor", dictionary: plist)
+ generate_conf_line(field: "color4", key: "ANSIBlueColor", dictionary: plist)
+ generate_conf_line(field: "color12", key: "ANSIBrightBlueColor", dictionary: plist)
+ generate_conf_line(field: "color5", key: "ANSIMagentaColor", dictionary: plist)
+ generate_conf_line(field: "color13", key: "ANSIBrightMagentaColor", dictionary: plist)
+ generate_conf_line(field: "color6", key: "ANSICyanColor", dictionary: plist)
+ generate_conf_line(field: "color14", key: "ANSIBrightCyanColor", dictionary: plist)
+ generate_conf_line(field: "color7", key: "ANSIWhiteColor", dictionary: plist)
+ generate_conf_line(field: "color15", key: "ANSIBrightWhiteColor", dictionary: plist)
+}
+
+if (CommandLine.argc == 2) {
+ let filename = CommandLine.arguments[1]
+ process(filename: filename)
+} else {
+ print("Missing plist's path.")
+}
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/extract-vscode.sh b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/extract-vscode.sh
new file mode 100755
index 0000000..71a6930
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/extract-vscode.sh
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+
+theme=$1
+
+jq ".colors | to_entries | map(select(.key | match(\"terminal.*\"))) | map({(.key | gsub(\"\\\\.(?.)\"; .a | ascii_upcase) | ltrimstr(\"terminal\") | sub(\"(?.)\"; .a | ascii_downcase)):.value}) | add" < "$theme" > "terminal/${theme%.*}.json"
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/generate_conf.sh b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/generate_conf.sh
new file mode 100755
index 0000000..db498b9
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/generate_conf.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+
+find ~/github/macos-terminal-themes/schemes/ -name "*.terminal" -print0 | while read -d $'\0' -r file; do
+ filename=`basename "$file"`
+ without_ext=${filename%.*}
+ removed_spaces=${without_ext// /_}
+ # output_filename=`echo ${removed_spaces} | tr '[:upper:]' '[:lower:]'`
+ echo ${removed_spaces}.conf
+ ./convert_conf.swift "$file" > ./themes/${removed_spaces}.conf
+done
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/generate_theme_preview.sh b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/generate_theme_preview.sh
new file mode 100755
index 0000000..040867b
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/generate_theme_preview.sh
@@ -0,0 +1,22 @@
+#!/usr/bin/env bash
+# This script generate all preview images for the themes
+# In order to capture previews without the to bar start kitty without decorations
+# kitty -o hide_window_decorations=yes
+
+# shellcheck source=libcapture.sh
+source libcapture.sh
+
+# read theme path from args
+id=$1
+theme=$2
+preview_filename=$3
+
+conf_filename=$(basename "$theme")
+
+lockfile=$(mktemp)
+
+kitty @ set-colors --match id:"$id" "$theme"
+kitty @ send-text --match id:"$id" "clear && figlet -f digital -t \"$conf_filename\" && unbuffer ./color_table.sh && rm \"$lockfile\"\n"
+
+# simple sync mechanism, wait for the lockfile to be removed
+( echo "$lockfile" | entr "false" 1>/dev/null 2>&1 ) || capture themes "$preview_filename"
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/generate_themes_previews.sh b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/generate_themes_previews.sh
new file mode 100755
index 0000000..63e5825
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/generate_themes_previews.sh
@@ -0,0 +1,32 @@
+#!/usr/bin/env bash
+# This script generate all preview images for the themes
+
+root="$(git rev-parse --show-toplevel)"
+tools="$root/.tools"
+
+PATH=$tools:$PATH
+
+# new kitty window, return its id
+id=$(kitty @ new-window --title themes --window-type os --cwd "$tools")
+# start bash without reading the profile nor the configuration
+kitty @ send-text --match id:"$id" "/usr/bin/env bash --noprofile --norc\n"
+kitty @ set-font-size 24
+
+# save all preview in this directory
+previews="$root/_previews"
+if [ ! -d "$previews" ]; then
+ mkdir "$previews"
+fi
+
+while read -r theme
+do
+ echo "Genereting theme preview for $theme"
+ preview_directory=$previews/$(basename "${theme%.*}")
+ [ ! -d "$preview_directory" ] && mkdir "$preview_directory"
+ preview_filename=$previews/$(basename "${theme%.*}")/preview.png
+ generate_theme_preview.sh "$id" "$theme" "$preview_filename"
+ mogrify -resize 1024x\> "$preview_filename"
+done < /dev/stdin
+
+kitty @ close-window --match id:"$id"
+kitty @ set-font-size 16
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/libcapture.sh b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/libcapture.sh
new file mode 100755
index 0000000..ff51591
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/libcapture.sh
@@ -0,0 +1,23 @@
+#!/usr/bin/env bash
+
+function capture_linux() {
+ local title="$1"
+ local output="$2"
+ import -window "$title" "$output"
+}
+
+function capture_osx() {
+ local title="$1"
+ local output="$2"
+ # get system id of the new created window
+ sys_id=$(./windowid.swift "kitty" "$title")
+ screencapture -wl"$sys_id" "$output"
+}
+
+function capture() {
+ if [[ "$OSTYPE" == "linux-gnu" ]]; then
+ capture_linux "$@"
+ elif [[ "$OSTYPE" == "darwin"* ]]; then
+ capture_osx "$@"
+ fi
+}
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/markdown.sh b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/markdown.sh
new file mode 100755
index 0000000..0fb08ba
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/markdown.sh
@@ -0,0 +1,15 @@
+#!/usr/bin/env bash
+
+previews_root=$1
+# usually this value: https://raw.githubusercontent.com/dexpota/kitty-themes-website/master
+url_root=$2
+
+for f in $(find "$previews_root/previews" -maxdepth 1 -mindepth 1 -type d | sort); do
+ preview_file="$f"/preview.png
+ theme=$(basename $f)
+ relative_path=$(realpath --relative-to="$previews_root" "$preview_file")
+ header=`basename $theme | sed 's/_/ /g'`
+ image=""
+ echo \#\# $header
+ echo $image
+done
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/palette.py b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/palette.py
new file mode 100644
index 0000000..f47fd9c
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/palette.py
@@ -0,0 +1,91 @@
+from argparse import ArgumentParser
+from svgwrite.shapes import Rect
+import svgwrite
+
+theme_keys = [
+ "foreground", "background", "background_opacity", "dynamic_background_opacity", "dim_opacity",
+ "selection_foreground", "selection_background", "color0", "color8", "color1", "color9", "color2", "color10",
+ "color3", "color11", "color4", "color12", "color5", "color13", "color6", "color14", "color7", "color15"
+]
+
+
+def is_valid(line):
+ """
+ Returns true if a line inside a configuration file is a valid theme configuration pair: is not a comment, is not
+ empty and the key is correct.
+
+ :param line: a line inside the configuration file
+ :type line: str
+ :return: true if is valid, false otherwise
+ :rtype: bool
+ """
+ return (not line.lstrip().startswith("#") # is not a comment
+ and len(line.strip()) != 0 # is not empty
+ and line.split(maxsplit=1)[0] in theme_keys) # key is a valid one
+
+
+def extract_configuration_pair(line):
+ """
+ Extract a configuration pair by splitting on spaces and taking the first couple of values.
+
+ :param line: a line inside the configuration file
+ :type line: str
+ :return: a key-value pair
+ :rtype: bool
+ """
+ split = line.split(maxsplit=2)
+ return split[0], split[1]
+
+
+def read_configuration(filename):
+ """
+ Read a kitty configuration file and extract only theme related keys and values.
+
+ :param filename: path to the configuration file
+ :type filename: str
+ :return: a map with theme related configuration values
+ :rtype: dict[str, str]
+ """
+ with open(filename, "r") as fp:
+ lines = fp.readlines()
+ print(filename)
+ theme_config = dict([extract_configuration_pair(line) for line in lines if is_valid(line)])
+ return theme_config
+
+
+def draw_theme_palette(theme_configuration, start_point, size, displacement):
+ rects = []
+ for k, v in theme_configuration.items():
+ rgb = tuple(int(v[i + 1:i + 3], 16) for i in (0, 2, 4))
+ rects.append(Rect(start_point, size, fill=svgwrite.utils.rgb(rgb[0], rgb[1], rgb[2])))
+ start_point = (start_point[0] + displacement[0], start_point[1] + displacement[1])
+
+ return rects
+
+
+def draw_all_palettes(themes):
+ dwg = svgwrite.Drawing('test.svg', profile='tiny')
+ y = 0
+ palettes = []
+ for theme in themes:
+ palettes += draw_theme_palette(theme, (0, y), (10, 10), (10, 0))
+ y += 10
+
+ for rect in palettes:
+ dwg.add(rect)
+ dwg.save()
+
+
+def main():
+ parser = ArgumentParser()
+ parser.add_argument("theme", type=str, nargs="+")
+
+ ns = parser.parse_args()
+
+ theme_configurations = [read_configuration(theme) for theme in ns.theme]
+
+ draw_all_palettes(theme_configurations)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/preview.py b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/preview.py
new file mode 100644
index 0000000..c29387a
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/preview.py
@@ -0,0 +1,136 @@
+import sys
+import os
+import sys
+
+theme_keys = [
+ "cursor", "foreground", "background", "background_opacity", "dynamic_background_opacity", "dim_opacity",
+ "selection_foreground", "selection_background", "color0", "color8", "color1", "color9", "color2", "color10",
+ "color3", "color11", "color4", "color12", "color5", "color13", "color6", "color14", "color7", "color15"
+]
+
+
+def is_valid(line):
+ """
+ Returns true if a line inside a configuration file is a valid theme configuration pair: is not a comment, is not
+ empty and the key is correct.
+
+ :param line: a line inside the configuration file
+ :type line: str
+ :return: true if is valid, false otherwise
+ :rtype: bool
+ """
+ return (not line.lstrip().startswith("#") # is not a comment
+ and len(line.strip()) != 0 # is not empty
+ and line.split(maxsplit=1)[0] in theme_keys) # key is a valid one
+
+
+def extract_configuration_pair(line):
+ """
+ Extract a configuration pair by splitting on spaces and taking the first couple of values.
+
+ :param line: a line inside the configuration file
+ :type line: str
+ :return: a key-value pair
+ :rtype: bool
+ """
+ split = line.split(maxsplit=2)
+ return split[0], split[1]
+
+
+def read_configuration(filename):
+ """
+ Read a kitty configuration file and extract only theme related keys and values.
+
+ :param filename: path to the configuration file
+ :type filename: str
+ :return: a map with theme related configuration values
+ :rtype: dict[str, str]
+ """
+ with open(filename, "r") as fp:
+ lines = fp.readlines()
+ theme_config = dict([extract_configuration_pair(line) for line in lines if is_valid(line)])
+ return theme_config
+
+
+def fg(color, text):
+ rgb = tuple(int(color[i + 1:i + 3], 16) for i in (0, 2, 4))
+ return ('\x1b[38;2;%s;%s;%sm' % rgb + text + '\x1b[0m')
+
+
+def bg(color, text):
+ rgb = tuple(int(color[i + 1:i + 3], 16) for i in (0, 2, 4))
+ return ('\x1b[48;2;%s;%s;%sm' % rgb + text + '\x1b[0m')
+
+
+def print_preview(filename, configuration):
+ cursor = configuration["cursor"]
+ background = configuration["background"]
+ foreground = configuration["foreground"]
+
+ theme = os.path.basename(filename)
+
+ size = len(theme) + (2 + 2 + 16 + 2 + 16 + 1 + 2)
+ print(bg(background, " " * size))
+ print(bg(background, " "), end="")
+ print(bg(background, fg(foreground, theme)), end="")
+ print(bg(background, " "), end="")
+
+ c='a'
+ for i in range(0, 16):
+ color = configuration["color%d" % i]
+ print(bg(background, fg(color, c)), end="")
+ c = chr(ord(c) + 1)
+
+ print(bg(background, " "), end="")
+
+ selection_background = configuration["selection_background"]
+ selection_foreground = configuration["selection_foreground"]
+
+ c='A'
+ for i in range(0, 16):
+ print(bg(selection_background, fg(selection_foreground, c)), end="")
+ c = chr(ord(c) + 1)
+
+ print(bg(cursor, " "), end="")
+ print(bg(background, " "))
+
+ print(bg(background, " " * size))
+
+ print(bg(background, " "), end="")
+ print(bg(configuration["color0"], " "), end="")
+ print(bg(configuration["color1"], " "), end="")
+ print(bg(configuration["color2"], " "), end="")
+ print(bg(configuration["color3"], " "), end="")
+ print(bg(configuration["color4"], " "), end="")
+ print(bg(configuration["color5"], " "), end="")
+ print(bg(configuration["color6"], " "), end="")
+ print(bg(configuration["color7"], " "), end="")
+ print(bg(background, " "), end="")
+ print(bg(configuration["color8"], " "), end="")
+ print(bg(configuration["color9"], " "), end="")
+ print(bg(configuration["color10"], " "), end="")
+ print(bg(configuration["color11"], " "), end="")
+ print(bg(configuration["color12"], " "), end="")
+ print(bg(configuration["color13"], " "), end="")
+ print(bg(configuration["color14"], " "), end="")
+ print(bg(configuration["color15"], " "), end="")
+ print(bg(background, " " * (size - 16 - 4)), end="")
+ print()
+
+ print(bg(background, " " * size))
+ print()
+
+
+def main(directory):
+ for filename in os.listdir(directory):
+ try:
+ path = os.path.join(directory, filename)
+ configuration = read_configuration(path)
+ print_preview(path, configuration)
+ except Exception as e:
+ print(e, file=sys.stderr)
+ print("Error while processing %s" % filename, file=sys.stderr)
+
+
+if __name__ == "__main__":
+ main(sys.argv[1])
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/previews.sh b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/previews.sh
new file mode 100755
index 0000000..c39c2c7
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/previews.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+# @author: @vrdhn on github
+
+SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+cd $SCRIPT_DIR/..
+
+set_theme () {
+ cat themes/$1.conf | awk 'BEGIN {printf("kitty @ set-colors ")} {printf( "%s=%s ",$1,$2 )} END{printf("\n")}' | sh
+}
+
+list=$(find themes -type f | grep "$1" | xargs basename | cut -d. -f1)
+
+for x in $list ;
+do
+ kitty +kitten icat "previews/$x.png"
+ read -n 1 -p "$x : Next / Set / Quit :" ans
+ echo
+
+ case $ans in
+ n ) ;;
+ s ) set_theme $x ; exit ;;
+ q ) exit ;;
+ esac
+done
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/template.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/template.conf
new file mode 100644
index 0000000..0af1722
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/template.conf
@@ -0,0 +1,37 @@
+background #
+foreground #
+cursor #
+cursor_text_color #
+selection_foreground #
+selection_background #
+# black
+color0 #
+color8 #
+# red
+color1 #
+# light red
+color9 #
+# green
+color2 #
+# light green
+color10 #
+# yellow
+color3 #
+# light yellow
+color11 #
+# blue
+color4 #
+# light blue
+color12 #
+# magenta
+color5 #
+# light magenta
+color13 #
+# cyan
+color6 #
+# lighy cyan
+color14 #
+# light gray
+color7 #
+# dark gray
+color15 #
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/template.conf.j2 b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/template.conf.j2
new file mode 100644
index 0000000..8ff9450
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/template.conf.j2
@@ -0,0 +1,91 @@
+{% if background is defined %}
+background {{background}}
+{% endif %}
+{% if foreground is defined %}
+foreground {{foreground}}
+{% endif %}
+
+{% if cursorForeground is defined %}
+cursor {{cursorForeground}}
+{% endif %}
+{% if cursorBackground is defined %}
+cursor_text_color {{cursorBackground | removeAlpha}}
+{% endif %}
+{% if background is defined %}
+selection_foreground {{background | removeAlpha}}
+{% endif %}
+{% if selectionBackground is defined %}
+selection_background {{selectionBackground | removeAlpha}}
+{% endif %}
+
+{% if ansiBlack is defined %}
+# dull black
+color0 {{ansiBlack}}
+{% endif %}
+{% if ansiBrightBlack is defined %}
+# light black
+color8 {{ansiBrightBlack}}
+{% endif %}
+
+{% if ansiRed is defined %}
+# dull red
+color1 {{ansiRed}}
+{% endif %}
+{% if ansiBrightRed %}
+# light red
+color9 {{ansiBrightRed}}
+{% endif %}
+
+{% if ansiGreen is defined %}
+# dull green
+color2 {{ansiGreen}}
+{% endif %}
+{% if ansiBrightGreen is defined %}
+# light green
+color10 {{ansiBrightGreen}}
+{% endif %}
+
+{% if ansiYellow is defined %}
+# yellow
+color3 {{ansiYellow}}
+{% endif %}
+{% if ansiBrightYellow is defined %}
+# light yellow
+color11 {{ansiBrightYellow}}
+{% endif %}
+
+{% if ansiBlue is defined %}
+# blue
+color4 {{ansiBlue}}
+{% endif %}
+{% if ansiBrightBlue %}
+# light blue
+color12 {{ansiBrightBlue}}
+{% endif %}
+
+{% if ansiMagenta is defined %}
+# magenta
+color5 {{ansiMagenta}}
+{% endif %}
+{% if ansiBrightMagenta is defined %}
+# light magenta
+color13 {{ansiBrightMagenta}}
+{% endif %}
+
+{% if ansiCyan is defined %}
+# cyan
+color6 {{ansiCyan}}
+{% endif %}
+{% if ansiBrightCyan is defined %}
+# light cyan
+color14 {{ansiBrightCyan}}
+{% endif %}
+
+{% if ansiWhite is defined %}
+# dull white
+color7 {{ansiWhite}}
+{% endif %}
+{% if ansiBrightWhite is defined %}
+# bright white
+color15 {{ansiBrightWhite}}
+{% endif %}
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/windowid.swift b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/windowid.swift
new file mode 100755
index 0000000..1dc95e6
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/.tools/windowid.swift
@@ -0,0 +1,20 @@
+#!/usr/bin/swift
+import Foundation
+import Cocoa
+import CoreGraphics.CGWindow
+
+let windows : NSArray = CGWindowListCopyWindowInfo(CGWindowListOption.excludeDesktopElements, kCGNullWindowID)! as NSArray
+
+let search_for_app = CommandLine.arguments[1]
+let search_for_win = CommandLine.arguments[2]
+
+for window in windows {
+ let window = window as! NSDictionary
+
+ let app_name = window[kCGWindowOwnerName] as! String
+ let window_name = window[kCGWindowName] as? String
+
+ if app_name == search_for_app && window_name == search_for_win {
+ print("\(window[kCGWindowNumber]!)")
+ }
+}
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/CONTRIBUTING.md b/roles/dotfiles/files/.config/kitty/kitty-themes/CONTRIBUTING.md
new file mode 100644
index 0000000..fed9d6d
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/CONTRIBUTING.md
@@ -0,0 +1,8 @@
+# Contributing to kitty-themes
+
+We always welcome your pull request! To start contributing follow these simple
+steps:
+
+1. Fork the repo and create your branch from `master`;
+2. Add your theme as config file under `themes` directory;
+3. Issue the pull request through github;
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/LICENSE.md b/roles/dotfiles/files/.config/kitty/kitty-themes/LICENSE.md
new file mode 100644
index 0000000..50fa549
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/LICENSE.md
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 Fabrizio Destro
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/README.md b/roles/dotfiles/files/.config/kitty/kitty-themes/README.md
new file mode 100644
index 0000000..5fb8cbe
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/README.md
@@ -0,0 +1,465 @@
+[iterm2-themes]: https://github.com/mbadolato/iTerm2-Color-Schemes
+[color-scripts]: https://github.com/stark/Color-Scripts/tree/master/color-scripts
+[license]: https://opensource.org/licenses/MIT
+[license-badge]: https://img.shields.io/github/license/dexpota/kitty-themes.svg?style=for-the-badge
+[kitty-themes-previews]: https://github.com/dexpota/kitty-themes-website/tree/master/previews
+
+
+
+> **Personalize** your *kitty* terminal and choose your theme from this awesome
+> collection, for more information on the terminal visit
+> https://github.com/kovidgoyal/kitty
+
+[![License: MIT][license-badge]][license]
+[](#contributors)
+
+- [About](#about)
+- [Installation](#installation)
+ - [Source Code](#source-code)
+ - [Conda](#conda)
+- [License](#license)
+- [Bring me to the previews!](#previews)
+- [Contributors](#contributors)
+
+## About
+
+In this repository you can find a set of themes to personalize your kitty
+terminal, these have been ported from [iTerm2-Color-Schemes][iterm2-themes]. You can find
+the previews for each theme in the [section](#previews) below or in this other
+[repository](kitty-themes-previews).
+
+## Installation
+
+### Source Code
+
+1. If you want to download and use one of these theme you have two options:
+ - clone the entire *kitty-themes* repository:
+ ```bash
+ git clone --depth 1 https://github.com/dexpota/kitty-themes.git ~/.config/kitty/kitty-themes
+ ```
+ - or download just one theme:
+ ```bash
+ THEME=https://raw.githubusercontent.com/dexpota/kitty-themes/master/themes/3024_Day.conf
+ wget "$THEME" -P ~/.config/kitty/kitty-themes/themes
+ ```
+
+2. Choose a theme and create a symlink:
+
+ ```bash
+ cd ~/.config/kitty
+ ln -s ./kitty-themes/themes/Floraverse.conf ~/.config/kitty/theme.conf
+ ```
+
+3. Add this line to your kitty.conf configuration file:
+
+ ```
+ include ./theme.conf
+ ```
+
+### Conda
+
+If you using the ``conda`` package manager, you may also install these themes
+with the following command:
+
+```bash
+conda install -c conda-forge kitty-themes
+```
+
+## License
+
+All original content of this repository is licensed with the [MIT
+License](./LICENSE.md). Whenever possible the author of the theme is cited
+inside each theme configuration file, together with its license. Hit me up if
+you find your theme inside this repository and you want a proper citation.
+
+## Previews
+
+If you have followed the [installation](#installation) instructions and cloned
+the entire repo, you have two options to try a theme:
+
+1. If you have enabled remote control in *kitty* you can run this command:
+
+ ```bash
+ kitty @ set-colors -a "~/.config/kitty/kitty-themes/themes/AdventureTime.conf"
+ ```
+
+2. Otherwise you can start another instance of kitty and specify another config
+ file to read from, this will cause *kitty* to read both its normal config
+ file and the specified one:
+
+ ```bash
+ kitty -o include="~/.config/kitty/kitty-themes/themes/AdventureTime.conf"
+ ```
+
+### Bonus
+
+Try your new theme with one of the scripts in [Color-scripts][color-scripts] with this
+one-liner (requires `jq`):
+
+```bash
+COLOR_SCRIPT_REPO=https://api.github.com/repos/stark/Color-Scripts/contents/color-scripts
+wget -q -O - $(curl -s $COLOR_SCRIPT_REPO | jq '.[] | "\(.path) \(.download_url)"' -r | shuf -n1 | cut -d " " -f2) | bash
+```
+
+### 3024 Day
+
+### 3024 Night
+
+### AdventureTime
+
+### Afterglow
+
+### AlienBlood
+
+### Alucard
+
+### Apprentice
+
+### Argonaut
+
+### Arthur
+
+### AtelierSulphurpool
+
+### Atom
+
+### AtomOneLight
+
+### ayu
+
+### ayu light
+
+### ayu mirage
+
+### Batman
+
+### Belafonte Day
+
+### Belafonte Night
+
+### BirdsOfParadise
+
+### Blazer
+
+### Borland
+
+### Bright Lights
+
+### Broadcast
+
+### Brogrammer
+
+### C64
+
+### Chalk
+
+### Chalkboard
+
+### Ciapre
+
+### CLRS
+
+### Cobalt2
+
+### Cobalt Neon
+
+### CrayonPonyFish
+
+### Dark Pastel
+
+### Darkside
+
+### Desert
+
+### DimmedMonokai
+
+### DotGov
+
+### Dracula
+
+### Dumbledore
+
+### Duotone Dark
+
+### Earthsong
+
+### Elemental
+
+### ENCOM
+
+### Espresso
+
+### Espresso Libre
+
+### Fideloper
+
+### FishTank
+
+### Flat
+
+### Flatland
+
+### Floraverse
+
+### FrontEndDelight
+
+### FunForrest
+
+### Galaxy
+
+### Github
+
+### Glacier
+
+### GoaBase
+
+### Grape
+
+### Grass
+
+### gruvbox dark
+
+### gruvbox light
+
+### Hardcore
+
+### Harper
+
+### Highway
+
+### Hipster Green
+
+### Homebrew
+
+### Hurtado
+
+### Hybrid
+
+### IC Green PPL
+
+### IC Orange PPL
+
+### idleToes
+
+### IR Black
+
+### Jackie Brown
+
+### Japanesque
+
+### Jellybeans
+
+### JetBrains Darcula
+
+### Kibble
+
+### Later This Evening
+
+### Lavandula
+
+### LiquidCarbon
+
+### LiquidCarbonTransparent
+
+### LiquidCarbonTransparentInverse
+
+### Man Page
+
+### Material
+
+### MaterialDark
+
+### Mathias
+
+### Medallion
+
+### Misterioso
+
+### Molokai
+
+### MonaLisa
+
+### Monokai Classic
+
+### Monokai Pro
+
+### Monokai Pro (Filter Machine)
+/preview.png)
+### Monokai Pro (Filter Octagon)
+/preview.png)
+### Monokai Pro (Filter Ristretto)
+/preview.png)
+### Monokai Pro (Filter Spectrum)
+/preview.png)
+### Monokai Soda
+
+### N0tch2k
+
+### Neopolitan
+
+### Neutron
+
+### NightLion v1
+
+### NightLion v2
+
+### Nova
+
+### Novel
+
+### Obsidian
+
+### Ocean
+
+### OceanicMaterial
+
+### Ollie
+
+### OneDark
+
+### Parasio Dark
+
+### PaulMillr
+
+### PencilDark
+
+### PencilLight
+
+### Piatto Light
+
+### Pnevma
+
+### Pro
+
+### Red Alert
+
+### Red Sands
+
+### Relaxed Afterglow
+
+### Renault Style
+
+### Renault Style Light
+
+### Rippedcasts
+
+### Royal
+
+### Seafoam Pastel
+
+### SeaShells
+
+### Seti
+
+### Shaman
+
+### Slate
+
+### Smyck
+
+### snazzy
+
+### SoftServer
+
+### Solarized Darcula
+
+### Solarized Dark
+
+### Solarized Dark Higher Contrast
+
+### Solarized Dark - Patched
+
+### Solarized Light
+
+### Source Code X
+
+### Spacedust
+
+### SpaceGray
+
+### SpaceGray Eighties
+
+### SpaceGray Eighties Dull
+
+### Spiderman
+
+### Spring
+
+### Square
+
+### Sundried
+
+### Symfonic
+
+### Tango Dark
+
+### Tango Light
+
+### Teerb
+
+### Thayer Bright
+
+### The Hulk
+
+### Tomorrow
+
+### Tomorrow Night
+
+### Tomorrow Night Blue
+
+### Tomorrow Night Bright
+
+### Tomorrow Night Eighties
+
+### ToyChest
+
+### Treehouse
+
+### Twilight
+
+### Ubuntu
+
+### Urple
+
+### Vaughn
+
+### VibrantInk
+
+### WarmNeon
+
+### Wez
+
+### WildCherry
+
+### Wombat
+
+### Wryan
+
+### Zenburn
+
+
+## Contributors
+
+Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
+
+
+
+
+
+
+
+This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/3024_Day.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/3024_Day.conf
new file mode 100644
index 0000000..747996a
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/3024_Day.conf
@@ -0,0 +1,21 @@
+background #f7f7f7
+foreground #494542
+cursor #494542
+selection_background #a4a1a1
+color0 #090200
+color8 #5b5754
+color1 #da2c20
+color9 #e8bacf
+color2 #00a152
+color10 #3a3332
+color3 #fcec02
+color11 #494542
+color4 #00a0e4
+color12 #7f7c7b
+color5 #a06994
+color13 #d6d4d3
+color6 #b5e4f4
+color14 #ccab53
+color7 #a4a1a1
+color15 #f7f7f7
+selection_foreground #f7f7f7
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/3024_Night.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/3024_Night.conf
new file mode 100644
index 0000000..2543819
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/3024_Night.conf
@@ -0,0 +1,21 @@
+background #090200
+foreground #a4a1a1
+cursor #a4a1a1
+selection_background #494542
+color0 #090200
+color8 #5b5754
+color1 #da2c20
+color9 #e8bacf
+color2 #00a152
+color10 #3a3332
+color3 #fcec02
+color11 #494542
+color4 #00a0e4
+color12 #7f7c7b
+color5 #a06994
+color13 #d6d4d3
+color6 #b5e4f4
+color14 #ccab53
+color7 #a4a1a1
+color15 #f7f7f7
+selection_foreground #090200
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/AdventureTime.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/AdventureTime.conf
new file mode 100644
index 0000000..e523a1a
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/AdventureTime.conf
@@ -0,0 +1,21 @@
+background #1e1c44
+foreground #f8dbc0
+cursor #eebf37
+selection_background #6f6a4e
+color0 #050404
+color8 #4e7bbf
+color1 #bc0013
+color9 #fc5e59
+color2 #49b117
+color10 #9dff6e
+color3 #e6741d
+color11 #efc11a
+color4 #0f49c6
+color12 #1896c6
+color5 #665992
+color13 #9a5952
+color6 #6fa497
+color14 #c8f9f3
+color7 #f8dbc0
+color15 #f5f4fb
+selection_foreground #1e1c44
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Afterglow.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Afterglow.conf
new file mode 100644
index 0000000..2df3efd
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Afterglow.conf
@@ -0,0 +1,21 @@
+background #202020
+foreground #d0d0d0
+cursor #d0d0d0
+selection_background #303030
+color0 #151515
+color8 #505050
+color1 #ac4142
+color9 #ac4142
+color2 #7e8d50
+color10 #7e8d50
+color3 #e5b566
+color11 #e5b566
+color4 #6c99ba
+color12 #6c99ba
+color5 #9e4e85
+color13 #9e4e85
+color6 #7dd5cf
+color14 #7dd5cf
+color7 #d0d0d0
+color15 #f5f5f5
+selection_foreground #202020
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/AlienBlood.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/AlienBlood.conf
new file mode 100644
index 0000000..453ea80
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/AlienBlood.conf
@@ -0,0 +1,21 @@
+background #0f160f
+foreground #637d75
+cursor #73f990
+selection_background #1d4025
+color0 #112615
+color8 #3c4711
+color1 #7f2b26
+color9 #df8008
+color2 #2f7e25
+color10 #18e000
+color3 #707f23
+color11 #bde000
+color4 #2f697f
+color12 #00a9df
+color5 #47577e
+color13 #0058df
+color6 #317f76
+color14 #00dfc3
+color7 #647d75
+color15 #73f990
+selection_foreground #0f160f
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Alucard.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Alucard.conf
new file mode 100644
index 0000000..43665fe
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Alucard.conf
@@ -0,0 +1,21 @@
+background #222330
+foreground #cef3ff
+cursor #ffffff
+selection_background #44475a
+color0 #000000
+color8 #545454
+color1 #ff5555
+color9 #ff5454
+color2 #fa0074
+color10 #50fa7b
+color3 #7f0a1f
+color11 #f0fa8b
+color4 #3282ff
+color12 #1200f8
+color5 #1b3cff
+color13 #ff78c5
+color6 #0037fc
+color14 #8ae9fc
+color7 #bbbbbb
+color15 #ffffff
+selection_foreground #222330
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Apprentice.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Apprentice.conf
new file mode 100644
index 0000000..c8c0583
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Apprentice.conf
@@ -0,0 +1,26 @@
+# Apprentice by Romain Lafourcade, https://github.com/romainl
+# This work is licensed under the terms of the MIT license.
+# For a copy, see https://opensource.org/licenses/MIT.
+
+cursor #c7c7c7
+cursor_text_color #feffff
+selection_foreground #3e3e3e
+selection_background #c1ddff
+foreground #c8c8c8
+background #323232
+color0 #252525
+color8 #555555
+color1 #be7472
+color9 #ff9900
+color2 #709772
+color10 #97bb98
+color3 #989772
+color11 #fefdbc
+color4 #7199bc
+color12 #9fbdde
+color5 #727399
+color13 #989abc
+color6 #719899
+color14 #6fbbbc
+color7 #7f7f7f
+color15 #feffff
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Argonaut.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Argonaut.conf
new file mode 100644
index 0000000..058186e
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Argonaut.conf
@@ -0,0 +1,21 @@
+background #0d0f18
+foreground #fffaf3
+cursor #ff0017
+selection_background #002a3a
+color0 #222222
+color8 #444444
+color1 #ff000f
+color9 #ff273f
+color2 #8ce00a
+color10 #abe05a
+color3 #ffb900
+color11 #ffd141
+color4 #008df8
+color12 #0092ff
+color5 #6c43a5
+color13 #9a5feb
+color6 #00d7eb
+color14 #67ffef
+color7 #ffffff
+color15 #ffffff
+selection_foreground #0d0f18
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Arthur.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Arthur.conf
new file mode 100644
index 0000000..d3fb520
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Arthur.conf
@@ -0,0 +1,21 @@
+background #1c1c1c
+foreground #ddeedd
+cursor #e2bbef
+selection_background #4d4d4d
+color0 #3d352a
+color8 #554444
+color1 #cd5c5c
+color9 #cc5533
+color2 #86af80
+color10 #88aa22
+color3 #e8ae5b
+color11 #ffa75d
+color4 #6495ed
+color12 #87ceeb
+color5 #deb887
+color13 #996600
+color6 #b0c4de
+color14 #b0c4de
+color7 #bbaa99
+color15 #ddccbb
+selection_foreground #1c1c1c
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/AtelierSulphurpool.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/AtelierSulphurpool.conf
new file mode 100644
index 0000000..05674b0
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/AtelierSulphurpool.conf
@@ -0,0 +1,21 @@
+background #202745
+foreground #969cb3
+cursor #969cb3
+selection_background #5e6686
+color0 #202745
+color8 #6a7394
+color1 #c84821
+color9 #c76a28
+color2 #ab9639
+color10 #283256
+color3 #c08a2f
+color11 #5e6686
+color4 #3d8ed0
+color12 #898ea3
+color5 #6678cc
+color13 #dee1f0
+color6 #21a1c8
+color14 #9c6279
+color7 #969cb3
+color15 #f4f7ff
+selection_foreground #202745
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Atom.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Atom.conf
new file mode 100644
index 0000000..091c683
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Atom.conf
@@ -0,0 +1,21 @@
+background #161718
+foreground #c4c8c5
+cursor #d0d0d0
+selection_background #444444
+color0 #000000
+color8 #000000
+color1 #fc5ef0
+color9 #fc5ef0
+color2 #86c38a
+color10 #94f936
+color3 #ffd6b1
+color11 #f5ffa7
+color4 #85befd
+color12 #95cbfe
+color5 #b9b5fc
+color13 #b9b5fc
+color6 #85befd
+color14 #85befd
+color7 #dfdfdf
+color15 #dfdfdf
+selection_foreground #161718
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/AtomOneLight.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/AtomOneLight.conf
new file mode 100644
index 0000000..056ef3b
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/AtomOneLight.conf
@@ -0,0 +1,21 @@
+background #f8f8f8
+foreground #2a2b33
+cursor #bbbbbb
+selection_background #ececec
+color0 #000000
+color8 #000000
+color1 #de3d35
+color9 #de3d35
+color2 #3e953a
+color10 #3e953a
+color3 #d2b67b
+color11 #d2b67b
+color4 #2f5af3
+color12 #2f5af3
+color5 #950095
+color13 #a00095
+color6 #3e953a
+color14 #3e953a
+color7 #bbbbbb
+color15 #ffffff
+selection_foreground #f8f8f8
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Batman.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Batman.conf
new file mode 100644
index 0000000..aef20e8
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Batman.conf
@@ -0,0 +1,21 @@
+background #1b1d1e
+foreground #6e6e6e
+cursor #fcee0b
+selection_background #4d4f4c
+color0 #1b1d1e
+color8 #505354
+color1 #e6db43
+color9 #fff68d
+color2 #c8be46
+color10 #fff27c
+color3 #f3fd21
+color11 #feed6c
+color4 #737074
+color12 #909495
+color5 #737271
+color13 #9a999d
+color6 #615f5e
+color14 #a2a2a5
+color7 #c5c5be
+color15 #dadad5
+selection_foreground #1b1d1e
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Belafonte_Day.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Belafonte_Day.conf
new file mode 100644
index 0000000..56a8796
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Belafonte_Day.conf
@@ -0,0 +1,21 @@
+background #d4ccb9
+foreground #45363b
+cursor #45363b
+selection_background #958b83
+color0 #20111a
+color8 #5e5252
+color1 #bd100d
+color9 #bd100d
+color2 #858062
+color10 #858062
+color3 #e9a448
+color11 #e9a448
+color4 #416978
+color12 #416978
+color5 #96522b
+color13 #96522b
+color6 #98999c
+color14 #98999c
+color7 #958b83
+color15 #d4ccb9
+selection_foreground #d4ccb9
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Belafonte_Night.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Belafonte_Night.conf
new file mode 100644
index 0000000..fc51e9c
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Belafonte_Night.conf
@@ -0,0 +1,21 @@
+background #20111a
+foreground #958b83
+cursor #958b83
+selection_background #45363b
+color0 #20111a
+color8 #5e5252
+color1 #bd100d
+color9 #bd100d
+color2 #858062
+color10 #858062
+color3 #e9a448
+color11 #e9a448
+color4 #416978
+color12 #416978
+color5 #96522b
+color13 #96522b
+color6 #98999c
+color14 #98999c
+color7 #958b83
+color15 #d4ccb9
+selection_foreground #20111a
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/BirdsOfParadise.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/BirdsOfParadise.conf
new file mode 100644
index 0000000..df38e80
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/BirdsOfParadise.conf
@@ -0,0 +1,21 @@
+background #2a1e1d
+foreground #dfdab7
+cursor #573d25
+selection_background #563c27
+color0 #573d25
+color8 #9a6b49
+color1 #be2d26
+color9 #e84526
+color2 #6ba08a
+color10 #94d7ba
+color3 #e99c29
+color11 #d0d04f
+color4 #5a86ac
+color12 #b8d3ed
+color5 #ab80a6
+color13 #d09dca
+color6 #74a5ac
+color14 #92ced6
+color7 #dfdab7
+color15 #fff9d4
+selection_foreground #2a1e1d
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Blazer.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Blazer.conf
new file mode 100644
index 0000000..f1dd601
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Blazer.conf
@@ -0,0 +1,21 @@
+background #0d1925
+foreground #d9e5f1
+cursor #d9e5f1
+color0 #000000
+color8 #252525
+color1 #b87979
+color9 #dabdbd
+color2 #79b879
+color10 #bddabd
+color3 #b8b879
+color11 #dadabd
+color4 #7979b8
+color12 #bdbdda
+color5 #b879b8
+color13 #dabdda
+color6 #79b8b8
+color14 #bddada
+color7 #d9d9d9
+color15 #ffffff
+selection_foreground #0d1925
+selection_background #d9e6f2
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Borland.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Borland.conf
new file mode 100644
index 0000000..c27cc83
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Borland.conf
@@ -0,0 +1,21 @@
+background #0000a3
+foreground #ffff4d
+cursor #ffa460
+selection_background #a3a3a3
+color0 #4e4e4e
+color8 #7c7c7c
+color1 #ff6b60
+color9 #ffb6b0
+color2 #a7ff60
+color10 #ceffab
+color3 #ffffb6
+color11 #ffffcb
+color4 #96cafd
+color12 #b5dcfe
+color5 #ff73fd
+color13 #ff9cfe
+color6 #c6c4fd
+color14 #dfdffe
+color7 #eeeeee
+color15 #ffffff
+selection_foreground #0000a3
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Bright_Lights.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Bright_Lights.conf
new file mode 100644
index 0000000..9b365f4
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Bright_Lights.conf
@@ -0,0 +1,21 @@
+background #191919
+foreground #b2c8d6
+cursor #f34a00
+selection_background #b2c8d6
+color0 #191919
+color8 #191919
+color1 #ff355b
+color9 #ff355b
+color2 #b6e875
+color10 #b6e875
+color3 #ffc150
+color11 #ffc150
+color4 #75d3ff
+color12 #75d4ff
+color5 #b975e6
+color13 #b975e6
+color6 #6cbeb5
+color14 #6cbeb5
+color7 #c1c8d6
+color15 #c1c8d6
+selection_foreground #191919
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Broadcast.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Broadcast.conf
new file mode 100644
index 0000000..7844942
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Broadcast.conf
@@ -0,0 +1,21 @@
+background #2b2b2b
+foreground #e5e1db
+cursor #ffffff
+selection_background #5a637e
+color0 #000000
+color8 #323232
+color1 #da4839
+color9 #ff7b6a
+color2 #509f50
+color10 #83d082
+color3 #ffd249
+color11 #ffff7b
+color4 #6d9cbd
+color12 #9fcef0
+color5 #cfcfff
+color13 #ffffff
+color6 #6d9cbd
+color14 #a0cef0
+color7 #ffffff
+color15 #ffffff
+selection_foreground #2b2b2b
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Brogrammer.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Brogrammer.conf
new file mode 100644
index 0000000..41cc37b
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Brogrammer.conf
@@ -0,0 +1,21 @@
+background #131313
+foreground #d6dae4
+cursor #b9b9b9
+selection_background #1f1f1f
+color0 #1f1f1f
+color8 #d6dae4
+color1 #f71118
+color9 #de342e
+color2 #2cc55d
+color10 #1dd260
+color3 #ecb90f
+color11 #f2bd09
+color4 #2a84d2
+color12 #0f80d5
+color5 #4e59b7
+color13 #524fb9
+color6 #0f80d5
+color14 #0f7cda
+color7 #d6dae4
+color15 #ffffff
+selection_foreground #131313
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/C64.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/C64.conf
new file mode 100644
index 0000000..70978d5
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/C64.conf
@@ -0,0 +1,21 @@
+background #40318d
+foreground #7869c4
+cursor #7869c4
+selection_background #7869c4
+color0 #090300
+color8 #000000
+color1 #883932
+color9 #883932
+color2 #55a049
+color10 #55a049
+color3 #bfce72
+color11 #bfce72
+color4 #40318d
+color12 #40318d
+color5 #8b3f96
+color13 #8a3e95
+color6 #67b6bd
+color14 #67b6bd
+color7 #ffffff
+color15 #f7f7f7
+selection_foreground #40318d
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/CLRS.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/CLRS.conf
new file mode 100644
index 0000000..ddcb324
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/CLRS.conf
@@ -0,0 +1,21 @@
+background #ffffff
+foreground #262626
+cursor #6fd2fc
+selection_background #6fd2fc
+color0 #000000
+color8 #545753
+color1 #f72729
+color9 #fb0416
+color2 #32895c
+color10 #2cc631
+color3 #f96f1c
+color11 #fcd627
+color4 #125ccf
+color12 #156ffe
+color5 #9f00bc
+color13 #e800b0
+color6 #32c2c0
+color14 #39d5ce
+color7 #b2b2b2
+color15 #ededec
+selection_foreground #ffffff
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Chalk.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Chalk.conf
new file mode 100644
index 0000000..7051698
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Chalk.conf
@@ -0,0 +1,21 @@
+background #2b2c2e
+foreground #d2d8d9
+cursor #708183
+selection_background #e3e8ed
+color0 #7c8a8f
+color8 #888888
+color1 #b23a51
+color9 #f24840
+color2 #789a69
+color10 #80c46f
+color3 #b9ab4a
+color11 #ffeb62
+color4 #2a7fac
+color12 #4095ff
+color5 #bc4f5a
+color13 #fb5175
+color6 #44a799
+color14 #52ccbd
+color7 #d2d8d9
+color15 #d2d8d9
+selection_foreground #2b2c2e
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Chalkboard.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Chalkboard.conf
new file mode 100644
index 0000000..f0b7350
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Chalkboard.conf
@@ -0,0 +1,21 @@
+background #29262f
+foreground #d9e6f2
+cursor #d9e6f2
+selection_background #073642
+color0 #000000
+color8 #323232
+color1 #c37372
+color9 #dbaaaa
+color2 #72c373
+color10 #aadbaa
+color3 #c2c372
+color11 #dadbaa
+color4 #7372c3
+color12 #aaaadb
+color5 #c372c2
+color13 #dbaada
+color6 #72c2c3
+color14 #aadadb
+color7 #d9d9d9
+color15 #ffffff
+selection_foreground #29262f
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Ciapre.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Ciapre.conf
new file mode 100644
index 0000000..2b496fb
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Ciapre.conf
@@ -0,0 +1,21 @@
+background #181c27
+foreground #ada37a
+cursor #91805a
+selection_background #172539
+color0 #181818
+color8 #555555
+color1 #800009
+color9 #ab3834
+color2 #48513b
+color10 #a6a65d
+color3 #cc8a3e
+color11 #dcde7b
+color4 #566d8c
+color12 #2f97c6
+color5 #724c7c
+color13 #d33060
+color6 #5b4f4a
+color14 #f3dab1
+color7 #ada37e
+color15 #f3f3f3
+selection_foreground #181c27
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Cobalt2.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Cobalt2.conf
new file mode 100644
index 0000000..3ffcbe2
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Cobalt2.conf
@@ -0,0 +1,21 @@
+background #122637
+foreground #ffffff
+cursor #f0cb09
+selection_background #18344f
+color0 #000000
+color8 #545454
+color1 #ff0000
+color9 #f40d17
+color2 #37dd21
+color10 #3bcf1d
+color3 #fee409
+color11 #ecc809
+color4 #1460d2
+color12 #5555ff
+color5 #ff005d
+color13 #ff55ff
+color6 #00bbbb
+color14 #6ae3f9
+color7 #bbbbbb
+color15 #ffffff
+selection_foreground #122637
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Cobalt_Neon.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Cobalt_Neon.conf
new file mode 100644
index 0000000..02a66e5
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Cobalt_Neon.conf
@@ -0,0 +1,21 @@
+background #142838
+foreground #8ff586
+cursor #c4206f
+selection_background #084fb0
+color0 #142630
+color8 #fff688
+color1 #ff2320
+color9 #d4312e
+color2 #3aa5ff
+color10 #8ff586
+color3 #e9e75c
+color11 #e9f06d
+color4 #8ff586
+color12 #3c7dd2
+color5 #781aa0
+color13 #8230a7
+color6 #8ff586
+color14 #6cbc67
+color7 #ba45b1
+color15 #8ff586
+selection_foreground #142838
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/CrayonPonyFish.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/CrayonPonyFish.conf
new file mode 100644
index 0000000..068fab3
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/CrayonPonyFish.conf
@@ -0,0 +1,21 @@
+background #140607
+foreground #685259
+cursor #685259
+selection_background #2a1a1c
+color0 #2a1a1c
+color8 #3c2a2e
+color1 #90002a
+color9 #c5245c
+color2 #579523
+color10 #8dff56
+color3 #aa301b
+color11 #c7371d
+color4 #8b87af
+color12 #cfc9ff
+color5 #682e50
+color13 #fb6cb9
+color6 #e8a766
+color14 #ffceae
+color7 #685259
+color15 #af949d
+selection_foreground #140607
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Dark_Pastel.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Dark_Pastel.conf
new file mode 100644
index 0000000..15083f7
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Dark_Pastel.conf
@@ -0,0 +1,21 @@
+background #000000
+foreground #ffffff
+cursor #bbbbbb
+selection_background #b5d5ff
+color0 #000000
+color8 #545454
+color1 #ff5555
+color9 #ff5555
+color2 #55ff55
+color10 #55ff55
+color3 #ffff55
+color11 #ffff55
+color4 #5555ff
+color12 #5555ff
+color5 #ff55ff
+color13 #ff55ff
+color6 #55ffff
+color14 #55ffff
+color7 #bbbbbb
+color15 #ffffff
+selection_foreground #000000
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Darkside.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Darkside.conf
new file mode 100644
index 0000000..10238d1
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Darkside.conf
@@ -0,0 +1,21 @@
+background #212324
+foreground #b9b9b9
+cursor #bbbbbb
+selection_background #2f3333
+color0 #000000
+color8 #000000
+color1 #e8331c
+color9 #df5a4f
+color2 #68c156
+color10 #76b768
+color3 #f1d32b
+color11 #eed64a
+color4 #1c98e8
+color12 #387bd2
+color5 #8e69c8
+color13 #957bbd
+color6 #1c98e8
+color14 #3d96e2
+color7 #b9b9b9
+color15 #b9b9b9
+selection_foreground #212324
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Desert.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Desert.conf
new file mode 100644
index 0000000..5491a97
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Desert.conf
@@ -0,0 +1,21 @@
+background #333333
+foreground #ffffff
+cursor #00ff00
+selection_background #b5d5ff
+color0 #4d4d4d
+color8 #545454
+color1 #ff2b2b
+color9 #ff5555
+color2 #98fb98
+color10 #55ff55
+color3 #f0e68c
+color11 #ffff55
+color4 #cd853f
+color12 #87ceff
+color5 #ffdead
+color13 #ff55ff
+color6 #ffa0a0
+color14 #ffd700
+color7 #f5deb3
+color15 #ffffff
+selection_foreground #333333
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/DimmedMonokai.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/DimmedMonokai.conf
new file mode 100644
index 0000000..99d7a83
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/DimmedMonokai.conf
@@ -0,0 +1,21 @@
+background #1e1e1e
+foreground #b8bcb9
+cursor #f83d19
+selection_background #292c31
+color0 #3a3c43
+color8 #888987
+color1 #be3e48
+color9 #fb001e
+color2 #869a3a
+color10 #0e712e
+color3 #c4a535
+color11 #c37033
+color4 #4e76a1
+color12 #176ce3
+color5 #855b8d
+color13 #fb0067
+color6 #568ea3
+color14 #2d6f6c
+color7 #b8bcb9
+color15 #fcffb8
+selection_foreground #1e1e1e
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/DotGov.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/DotGov.conf
new file mode 100644
index 0000000..345cef9
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/DotGov.conf
@@ -0,0 +1,21 @@
+background #252b35
+foreground #eaeaea
+cursor #d9002f
+selection_background #194080
+color0 #181818
+color8 #181818
+color1 #bf081d
+color9 #bf081d
+color2 #3d9751
+color10 #3d9751
+color3 #f6bb33
+color11 #f6bb33
+color4 #16b1df
+color12 #16b1df
+color5 #772fb0
+color13 #772fb0
+color6 #8bd1ed
+color14 #8bd1ed
+color7 #ffffff
+color15 #ffffff
+selection_foreground #252b35
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Dracula.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Dracula.conf
new file mode 100644
index 0000000..9cf0ed6
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Dracula.conf
@@ -0,0 +1,21 @@
+background #1e1f28
+foreground #f8f8f2
+cursor #bbbbbb
+selection_background #44475a
+color0 #000000
+color8 #545454
+color1 #ff5555
+color9 #ff5454
+color2 #50fa7b
+color10 #50fa7b
+color3 #f0fa8b
+color11 #f0fa8b
+color4 #bd92f8
+color12 #bd92f8
+color5 #ff78c5
+color13 #ff78c5
+color6 #8ae9fc
+color14 #8ae9fc
+color7 #bbbbbb
+color15 #ffffff
+selection_foreground #1e1f28
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Dumbledore.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Dumbledore.conf
new file mode 100644
index 0000000..c1ef032
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Dumbledore.conf
@@ -0,0 +1,21 @@
+background #422553
+foreground #c4c8c5
+cursor #c4c8c5
+selection_background #008aff
+color0 #2b283d
+color8 #413e53
+color1 #ae0000
+color9 #d3a624
+color2 #3e7c54
+color10 #aaaaaa
+color3 #f0c75e
+color11 #716254
+color4 #415baf
+color12 #946a2c
+color5 #9445ae
+color13 #b294ba
+color6 #008aff
+color14 #25de50
+color7 #850000
+color15 #c9c9c9
+selection_foreground #422553
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Duotone_Dark.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Duotone_Dark.conf
new file mode 100644
index 0000000..4867604
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Duotone_Dark.conf
@@ -0,0 +1,21 @@
+background #1f1c27
+foreground #b6a0ff
+cursor #ff9738
+selection_background #353146
+color0 #1f1c27
+color8 #353146
+color1 #d8393d
+color9 #d8393d
+color2 #2dcc72
+color10 #2dcc72
+color3 #d8b76e
+color11 #d8b76e
+color4 #ffc183
+color12 #ffc183
+color5 #dd8d40
+color13 #dd8d40
+color6 #2388ff
+color14 #2388ff
+color7 #b6a0ff
+color15 #e9e4ff
+selection_foreground #1f1c27
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/ENCOM.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/ENCOM.conf
new file mode 100644
index 0000000..7afc7ae
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/ENCOM.conf
@@ -0,0 +1,21 @@
+background #000000
+foreground #00a595
+cursor #bbbbbb
+selection_background #00a48c
+color0 #000000
+color8 #545454
+color1 #9f0000
+color9 #ff0000
+color2 #008b00
+color10 #00ee00
+color3 #ffcf00
+color11 #ffff00
+color4 #0081ff
+color12 #0000ff
+color5 #bc00ca
+color13 #ff00ff
+color6 #008b8b
+color14 #00cdcd
+color7 #bbbbbb
+color15 #ffffff
+selection_foreground #000000
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Earthsong.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Earthsong.conf
new file mode 100644
index 0000000..50f0da8
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Earthsong.conf
@@ -0,0 +1,21 @@
+background #282420
+foreground #e5c6a8
+cursor #f6f6ec
+selection_background #111417
+color0 #111417
+color8 #665e54
+color1 #c84134
+color9 #ff6459
+color2 #84c44b
+color10 #97e035
+color3 #f4ae2e
+color11 #dfd561
+color4 #1397b9
+color12 #5ed9ff
+color5 #d0623c
+color13 #ff9168
+color6 #4f9452
+color14 #83ef88
+color7 #e5c5a9
+color15 #f6f6ec
+selection_foreground #282420
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Elemental.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Elemental.conf
new file mode 100644
index 0000000..e24a3d3
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Elemental.conf
@@ -0,0 +1,21 @@
+background #21211c
+foreground #807973
+cursor #facb7f
+selection_background #403729
+color0 #3c3b30
+color8 #545444
+color1 #97280f
+color9 #df502a
+color2 #479942
+color10 #60e06f
+color3 #7f7110
+color11 #d69827
+color4 #497f7d
+color12 #78d8d8
+color5 #7e4e2e
+color13 #cd7c53
+color6 #387f58
+color14 #58d598
+color7 #807974
+color15 #fff1e8
+selection_foreground #21211c
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Espresso.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Espresso.conf
new file mode 100644
index 0000000..373c178
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Espresso.conf
@@ -0,0 +1,27 @@
+# Theme ported from the Mac Terminal application.
+
+background #323232
+foreground #ffffff
+cursor #d6d6d6
+selection_background #5b5b5b
+selection_foreground #323232
+color0 #353535
+color8 #535353
+color1 #d25252
+color9 #f00c0c
+color2 #a4c161
+color10 #c1df74
+color3 #ffc56d
+color11 #e1e48a
+color4 #6c99ba
+color12 #8ab6d9
+color5 #d096d9
+color13 #efb5f7
+color6 #bdd6ff
+color14 #dbf4ff
+color7 #ededec
+color15 #ffffff
+active_tab_foreground #ffffff
+active_tab_background #535353
+inactive_tab_foreground #ffffff
+inactive_tab_background #353535
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Espresso_Libre.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Espresso_Libre.conf
new file mode 100644
index 0000000..fa042b2
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Espresso_Libre.conf
@@ -0,0 +1,21 @@
+background #2a211c
+foreground #b8a898
+cursor #ffffff
+selection_background #c3dcff
+color0 #000000
+color8 #545753
+color1 #cc0000
+color9 #ef2828
+color2 #1a921c
+color10 #9aff87
+color3 #efe43a
+color11 #fffa5c
+color4 #0066ff
+color12 #43a8ed
+color5 #c5656b
+color13 #ff8089
+color6 #05989a
+color14 #34e2e2
+color7 #d3d7cf
+color15 #ededec
+selection_foreground #2a211c
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Fideloper.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Fideloper.conf
new file mode 100644
index 0000000..7e099fc
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Fideloper.conf
@@ -0,0 +1,21 @@
+background #282f32
+foreground #dad9df
+cursor #d35f5a
+selection_background #eeb7ab
+color0 #282f32
+color8 #092027
+color1 #ca1d2c
+color9 #d35f5a
+color2 #edb7ab
+color10 #d35f5a
+color3 #b7aa9a
+color11 #a86571
+color4 #2e78c1
+color12 #7c84c4
+color5 #c0226e
+color13 #5b5db2
+color6 #309185
+color14 #81908f
+color7 #e9e2cd
+color15 #fcf4de
+selection_foreground #282f32
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/FishTank.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/FishTank.conf
new file mode 100644
index 0000000..dce32a4
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/FishTank.conf
@@ -0,0 +1,21 @@
+background #222436
+foreground #eceffd
+cursor #fdcd5e
+selection_background #fcf6e8
+color0 #03063c
+color8 #6c5a30
+color1 #c60049
+color9 #d94a8a
+color2 #abf157
+color10 #daffa8
+color3 #fdcd5e
+color11 #fee6a8
+color4 #525fb8
+color12 #b1bdf9
+color5 #976f81
+color13 #fda4cc
+color6 #968662
+color14 #a4bc86
+color7 #eceffc
+color15 #f6ffec
+selection_foreground #222436
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Flat.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Flat.conf
new file mode 100644
index 0000000..036e563
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Flat.conf
@@ -0,0 +1,21 @@
+background #002240
+foreground #2bc45d
+cursor #e5bd0c
+selection_background #782b9c
+color0 #212c3e
+color8 #202b3b
+color1 #a72320
+color9 #d3302e
+color2 #32a448
+color10 #2c9440
+color3 #e58d11
+color11 #e5bd0c
+color4 #3066ab
+color12 #3b7cd2
+color5 #7819a0
+color13 #822fa7
+color6 #2b9270
+color14 #35b286
+color7 #afb6b9
+color15 #e6ecec
+selection_foreground #002240
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Flatland.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Flatland.conf
new file mode 100644
index 0000000..637b72d
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Flatland.conf
@@ -0,0 +1,21 @@
+background #1c1e20
+foreground #b8daee
+cursor #708183
+selection_background #2a2a24
+color0 #1c1d19
+color8 #1c1d19
+color1 #f18238
+color9 #d12a24
+color2 #9ed264
+color10 #a7d32c
+color3 #f3ef6d
+color11 #ff8948
+color4 #4f96be
+color12 #61b8d0
+color5 #695abb
+color13 #695abb
+color6 #d53864
+color14 #d53864
+color7 #fefffe
+color15 #fefffe
+selection_foreground #1c1e20
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Floraverse.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Floraverse.conf
new file mode 100644
index 0000000..6e6a06c
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Floraverse.conf
@@ -0,0 +1,21 @@
+background #0e0c15
+foreground #dbd0b9
+cursor #bbbbbb
+selection_background #f3e0b8
+color0 #08002e
+color8 #331d4c
+color1 #64002c
+color9 #cf2062
+color2 #5d731a
+color10 #b3ce58
+color3 #cd751c
+color11 #fac357
+color4 #1d6da1
+color12 #40a4cf
+color5 #b7077e
+color13 #f02aae
+color6 #42a38c
+color14 #62caa8
+color7 #f3e0b8
+color15 #fff5db
+selection_foreground #0e0c15
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/FrontEndDelight.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/FrontEndDelight.conf
new file mode 100644
index 0000000..ccbf0d4
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/FrontEndDelight.conf
@@ -0,0 +1,21 @@
+background #1b1b1d
+foreground #acacac
+cursor #cccccc
+selection_background #e96153
+color0 #242426
+color8 #5eac6c
+color1 #f8501a
+color9 #f64319
+color2 #565746
+color10 #74eb4c
+color3 #f9761d
+color11 #fcc224
+color4 #2c70b7
+color12 #3393c9
+color5 #f02d4e
+color13 #e75e4e
+color6 #3ba0a5
+color14 #4ebce5
+color7 #acacac
+color15 #8b735a
+selection_foreground #1b1b1d
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/FunForrest.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/FunForrest.conf
new file mode 100644
index 0000000..df8f4ee
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/FunForrest.conf
@@ -0,0 +1,21 @@
+background #241200
+foreground #ddc165
+cursor #e5591c
+selection_background #e5591c
+color0 #000000
+color8 #7e6954
+color1 #d5252b
+color9 #e4591b
+color2 #909b00
+color10 #bfc659
+color3 #bd8a13
+color11 #ffca1b
+color4 #4698a2
+color12 #7cc9ce
+color5 #8c4231
+color13 #d16349
+color6 #d98112
+color14 #e6a96b
+color7 #ddc165
+color15 #ffe9a3
+selection_foreground #241200
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Galaxy.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Galaxy.conf
new file mode 100644
index 0000000..fab36a7
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Galaxy.conf
@@ -0,0 +1,21 @@
+background #1c2836
+foreground #ffffff
+cursor #bbbbbb
+selection_background #b4d5ff
+color0 #000000
+color8 #545454
+color1 #f9555f
+color9 #fa8b8e
+color2 #20af89
+color10 #34bb99
+color3 #fdf029
+color11 #ffff55
+color4 #589cf5
+color12 #589cf5
+color5 #934d95
+color13 #e75598
+color6 #1e9ee6
+color14 #3978bb
+color7 #bbbbbb
+color15 #ffffff
+selection_foreground #1c2836
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Github.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Github.conf
new file mode 100644
index 0000000..22122d7
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Github.conf
@@ -0,0 +1,21 @@
+background #f4f4f4
+foreground #3e3e3e
+cursor #3f3f3f
+selection_background #a9c1e2
+color0 #3e3e3e
+color8 #666666
+color1 #970b16
+color9 #de0000
+color2 #07962a
+color10 #87d5a2
+color3 #f7edc7
+color11 #f0cf06
+color4 #003e8a
+color12 #2e6cba
+color5 #e94691
+color13 #ffa29f
+color6 #89d1ec
+color14 #1cfafe
+color7 #ffffff
+color15 #ffffff
+selection_foreground #f4f4f4
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Glacier.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Glacier.conf
new file mode 100644
index 0000000..08de697
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Glacier.conf
@@ -0,0 +1,21 @@
+background #0c1115
+foreground #ffffff
+cursor #6c6c6c
+selection_background #bd2523
+color0 #2e343c
+color8 #404a55
+color1 #bd0f2f
+color9 #bd0f2f
+color2 #35a770
+color10 #49e998
+color3 #fb9435
+color11 #fddf6e
+color4 #1f5872
+color12 #2a8bc1
+color5 #bd2523
+color13 #ea4727
+color6 #778397
+color14 #a0b6d3
+color7 #ffffff
+color15 #ffffff
+selection_foreground #0c1115
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/GoaBase.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/GoaBase.conf
new file mode 100644
index 0000000..fcc6741
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/GoaBase.conf
@@ -0,0 +1,21 @@
+background #2f0033
+foreground #f6ed00
+cursor #1a6500
+selection_background #100a24
+color0 #880041
+color8 #411a6d
+color1 #f78000
+color9 #f800e1
+color2 #249000
+color10 #5743ff
+color3 #f40000
+color11 #ea00d7
+color4 #000482
+color12 #b90003
+color5 #f43bff
+color13 #9a5952
+color6 #3affff
+color14 #c8f9f3
+color7 #000000
+color15 #f5f4fb
+selection_foreground #2f0033
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Grape.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Grape.conf
new file mode 100644
index 0000000..38b8a18
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Grape.conf
@@ -0,0 +1,21 @@
+background #161423
+foreground #9e9ea0
+cursor #a188f7
+selection_background #483d70
+color0 #2d283e
+color8 #58506a
+color1 #ec2160
+color9 #f0719a
+color2 #1fa91b
+color10 #52a95d
+color3 #8ddc1f
+color11 #b2dc87
+color4 #487cf4
+color12 #a9bbeb
+color5 #8c35c8
+color13 #ac81c1
+color6 #3added
+color14 #9ce3ea
+color7 #9e9ea0
+color15 #a188f7
+selection_foreground #161423
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Grass.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Grass.conf
new file mode 100644
index 0000000..ef9c321
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Grass.conf
@@ -0,0 +1,23 @@
+# Theme ported from the Mac Terminal application.
+
+background #12773d
+foreground #fff0a4
+cursor #8b2800
+selection_background #b64825
+color0 #000000
+color8 #545454
+color1 #ba0000
+color9 #ba0000
+color2 #00ba00
+color10 #00ba00
+color3 #e6af00
+color11 #e6af00
+color4 #0000a3
+color12 #0000ba
+color5 #950062
+color13 #ff54ff
+color6 #00baba
+color14 #54ffff
+color7 #bababa
+color15 #ffffff
+selection_foreground #12773d
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Hardcore.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Hardcore.conf
new file mode 100644
index 0000000..9af78ea
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Hardcore.conf
@@ -0,0 +1,21 @@
+background #121212
+foreground #a0a0a0
+cursor #bbbbbb
+selection_background #453a39
+color0 #1b1d1e
+color8 #505354
+color1 #f92672
+color9 #ff669d
+color2 #a6e22e
+color10 #beed5f
+color3 #fd971f
+color11 #e6db74
+color4 #66d9ef
+color12 #66d9ef
+color5 #9e6ffe
+color13 #9e6ffe
+color6 #5e7175
+color14 #a3babf
+color7 #ccccc6
+color15 #f8f8f2
+selection_foreground #121212
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Harper.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Harper.conf
new file mode 100644
index 0000000..2579aac
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Harper.conf
@@ -0,0 +1,21 @@
+background #000000
+foreground #a7a39c
+cursor #a7a39c
+selection_background #5a5753
+color0 #000000
+color8 #716d69
+color1 #f7b63e
+color9 #f7b63e
+color2 #7fb5e1
+color10 #7fb5e1
+color3 #d6da24
+color11 #d6da24
+color4 #489d48
+color12 #489d48
+color5 #b295c5
+color13 #b295c5
+color6 #f4bed6
+color14 #f4bed6
+color7 #a7a39c
+color15 #fefbe9
+selection_foreground #000000
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Highway.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Highway.conf
new file mode 100644
index 0000000..f0dfa4d
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Highway.conf
@@ -0,0 +1,21 @@
+background #212224
+foreground #ededed
+cursor #dfd9b8
+selection_background #384563
+color0 #000000
+color8 #5c4f49
+color1 #cf0d17
+color9 #ef7d17
+color2 #128033
+color10 #b1d130
+color3 #ffca3d
+color11 #fff11f
+color4 #006ab3
+color12 #4fc2fd
+color5 #6a2674
+color13 #de0070
+color6 #384563
+color14 #5c4f49
+color7 #ededed
+color15 #fefffe
+selection_foreground #212224
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Hipster_Green.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Hipster_Green.conf
new file mode 100644
index 0000000..26adfe7
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Hipster_Green.conf
@@ -0,0 +1,21 @@
+background #0f0a05
+foreground #84c137
+cursor #23ff18
+selection_background #083905
+color0 #000000
+color8 #666666
+color1 #b6204a
+color9 #e50000
+color2 #00a600
+color10 #86a83e
+color3 #bebe00
+color11 #e5e500
+color4 #246db2
+color12 #0000ff
+color5 #b200b2
+color13 #e500e5
+color6 #00a6b2
+color14 #00e5e5
+color7 #bfbfbf
+color15 #e5e5e5
+selection_foreground #0f0a05
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Homebrew.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Homebrew.conf
new file mode 100644
index 0000000..d96bb72
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Homebrew.conf
@@ -0,0 +1,23 @@
+# Theme ported from the Mac Terminal application.
+
+background #000000
+foreground #00ff00
+cursor #23ff18
+selection_background #083905
+color0 #000000
+color8 #666666
+color1 #990000
+color9 #e50000
+color2 #00a600
+color10 #00d900
+color3 #999900
+color11 #e5e500
+color4 #0000b2
+color12 #0000ff
+color5 #b200b2
+color13 #e500e5
+color6 #00a6b2
+color14 #00e5e5
+color7 #bebebe
+color15 #e5e5e5
+selection_foreground #000000
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Hurtado.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Hurtado.conf
new file mode 100644
index 0000000..1ca0421
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Hurtado.conf
@@ -0,0 +1,21 @@
+background #000000
+foreground #dadbda
+cursor #bbbbbb
+selection_background #b4d5ff
+color0 #575757
+color8 #252525
+color1 #ff1b00
+color9 #d41c00
+color2 #a5df55
+color10 #a5df55
+color3 #fbe74a
+color11 #fbe749
+color4 #486387
+color12 #89bdff
+color5 #fc5ef0
+color13 #bf00c0
+color6 #85e9fe
+color14 #85e9fe
+color7 #cbcbcb
+color15 #dbdbdb
+selection_foreground #000000
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Hybrid.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Hybrid.conf
new file mode 100644
index 0000000..8f9dc50
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Hybrid.conf
@@ -0,0 +1,21 @@
+background #161718
+foreground #b7bcb9
+cursor #b7bcb9
+selection_background #1e1f22
+color0 #2a2e33
+color8 #1d1e21
+color1 #b74d50
+color9 #8c2d32
+color2 #b3be5a
+color10 #788331
+color3 #e3b55e
+color11 #e5894f
+color4 #6d90b0
+color12 #4b6b88
+color5 #a07eab
+color13 #6e4f79
+color6 #7fbeb3
+color14 #4d7b73
+color7 #b5b8b6
+color15 #5a6169
+selection_foreground #161718
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/IC_Green_PPL.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/IC_Green_PPL.conf
new file mode 100644
index 0000000..35587dd
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/IC_Green_PPL.conf
@@ -0,0 +1,21 @@
+background #3a3c3e
+foreground #d9eed2
+cursor #41ff58
+selection_background #2a9b34
+color0 #1e1e1e
+color8 #03260f
+color1 #fb0029
+color9 #a6ff3e
+color2 #329b24
+color10 #9fff6d
+color3 #649a25
+color11 #d1ff6d
+color4 #149b45
+color12 #72ffb5
+color5 #53b82b
+color13 #50ff3d
+color6 #2bb767
+color14 #22ff71
+color7 #dffeee
+color15 #daeed0
+selection_foreground #3a3c3e
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/IC_Orange_PPL.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/IC_Orange_PPL.conf
new file mode 100644
index 0000000..b8dead8
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/IC_Orange_PPL.conf
@@ -0,0 +1,21 @@
+background #262626
+foreground #ffcb83
+cursor #fb521c
+selection_background #c03f1f
+color0 #000000
+color8 #6a4e29
+color1 #c03900
+color9 #ff8b67
+color2 #a3a900
+color10 #f6ff3f
+color3 #caae00
+color11 #ffe36e
+color4 #bd6c00
+color12 #ffbd54
+color5 #fb5d00
+color13 #fc874f
+color6 #f79400
+color14 #c59752
+color7 #ffc88a
+color15 #f9f9fe
+selection_foreground #262626
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/IR_Black.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/IR_Black.conf
new file mode 100644
index 0000000..5b8709b
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/IR_Black.conf
@@ -0,0 +1,21 @@
+background #000000
+foreground #f1f1f1
+cursor #7f7f7f
+selection_background #b4d5ff
+color0 #4f4f4f
+color8 #7b7b7b
+color1 #fa6c5f
+color9 #fcb6af
+color2 #a8fe60
+color10 #ceffab
+color3 #fffeb6
+color11 #fffecc
+color4 #96cafd
+color12 #b5dcfe
+color5 #fa72fc
+color13 #fb9bfe
+color6 #c6c4fd
+color14 #dfdffd
+color7 #eeedee
+color15 #fefffe
+selection_foreground #000000
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Jackie_Brown.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Jackie_Brown.conf
new file mode 100644
index 0000000..08a72e4
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Jackie_Brown.conf
@@ -0,0 +1,21 @@
+background #2c1c15
+foreground #ffcc2f
+cursor #23ff18
+selection_background #ae8c20
+color0 #2c1d16
+color8 #666666
+color1 #ef5734
+color9 #e50000
+color2 #2baf2b
+color10 #86a83e
+color3 #bdbe00
+color11 #e5e500
+color4 #246db2
+color12 #0000ff
+color5 #cf5ec0
+color13 #e500e5
+color6 #00acee
+color14 #00e5e5
+color7 #bfbfbf
+color15 #e5e5e5
+selection_foreground #2c1c15
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Japanesque.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Japanesque.conf
new file mode 100644
index 0000000..c045273
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Japanesque.conf
@@ -0,0 +1,21 @@
+background #1d1d1d
+foreground #f7f6ec
+cursor #eccf4f
+selection_background #165776
+color0 #343835
+color8 #585a58
+color1 #ce3e60
+color9 #d18ea6
+color2 #7bb75b
+color10 #767e2b
+color3 #e8b32a
+color11 #77592e
+color4 #4c99d3
+color12 #135879
+color5 #a57fc4
+color13 #5f4190
+color6 #389aac
+color14 #76bbca
+color7 #f9faf6
+color15 #b1b5ae
+selection_foreground #1d1d1d
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Jellybeans.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Jellybeans.conf
new file mode 100644
index 0000000..bac5fb7
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Jellybeans.conf
@@ -0,0 +1,21 @@
+background #111111
+foreground #dedede
+cursor #ffa460
+selection_background #464d91
+color0 #919191
+color8 #bdbdbd
+color1 #e17373
+color9 #ffa0a0
+color2 #94b978
+color10 #bddeab
+color3 #ffb97b
+color11 #ffdba0
+color4 #96bddb
+color12 #b1d7f6
+color5 #e1c0fa
+color13 #fbdaff
+color6 #00988e
+color14 #19b2a7
+color7 #dedede
+color15 #ffffff
+selection_foreground #111111
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/JetBrains_Darcula.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/JetBrains_Darcula.conf
new file mode 100644
index 0000000..64ac146
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/JetBrains_Darcula.conf
@@ -0,0 +1,21 @@
+background #202020
+foreground #adadad
+cursor #ffffff
+selection_background #1a3272
+color0 #000000
+color8 #545454
+color1 #fa5355
+color9 #fb7172
+color2 #126e00
+color10 #67ff4f
+color3 #c2c300
+color11 #ffff00
+color4 #4581eb
+color12 #6d9df1
+color5 #fa54ff
+color13 #fb82ff
+color6 #33c2c1
+color14 #60d3d1
+color7 #adadad
+color15 #eeeeee
+selection_foreground #202020
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Kibble.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Kibble.conf
new file mode 100644
index 0000000..3b13105
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Kibble.conf
@@ -0,0 +1,21 @@
+background #0e100a
+foreground #f7f7f7
+cursor #9fda9c
+selection_background #9ba686
+color0 #4d4d4d
+color8 #5a5a5a
+color1 #c70031
+color9 #f01578
+color2 #29cf13
+color10 #6ce05c
+color3 #d8e30e
+color11 #f3f79e
+color4 #3449d1
+color12 #97a4f7
+color5 #8400ff
+color13 #c495f0
+color6 #0798ab
+color14 #68f2e0
+color7 #e2d1e3
+color15 #ffffff
+selection_foreground #0e100a
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Later_This_Evening.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Later_This_Evening.conf
new file mode 100644
index 0000000..1354788
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Later_This_Evening.conf
@@ -0,0 +1,21 @@
+background #212121
+foreground #949494
+cursor #424242
+selection_background #424242
+color0 #2b2b2b
+color8 #444747
+color1 #d35a5f
+color9 #d3222e
+color2 #afba66
+color10 #aabb39
+color3 #e5d289
+color11 #e4bd39
+color4 #a0b9d5
+color12 #6599d5
+color5 #bf92d5
+color13 #aa52d5
+color6 #91beb6
+color14 #5fbfad
+color7 #3b3c3c
+color15 #c0c2c2
+selection_foreground #212121
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Lavandula.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Lavandula.conf
new file mode 100644
index 0000000..14aa7aa
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Lavandula.conf
@@ -0,0 +1,21 @@
+background #050014
+foreground #736d7c
+cursor #8b91fa
+selection_background #36323b
+color0 #230045
+color8 #362c45
+color1 #7c1525
+color9 #df5066
+color2 #337e6f
+color10 #52e0c4
+color3 #7f6f49
+color11 #e0c286
+color4 #4f4a7f
+color12 #8e86df
+color5 #593f7e
+color13 #a675df
+color6 #57767f
+color14 #9ad3df
+color7 #736d7c
+color15 #8b91fa
+selection_foreground #050014
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/LiquidCarbon.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/LiquidCarbon.conf
new file mode 100644
index 0000000..2f3a994
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/LiquidCarbon.conf
@@ -0,0 +1,21 @@
+background #2f2f2f
+foreground #afc2c2
+cursor #ffffff
+selection_background #7cbeff
+color0 #000000
+color8 #000000
+color1 #ff2f2f
+color9 #ff2f2f
+color2 #549a6f
+color10 #549a6f
+color3 #ccac00
+color11 #ccac00
+color4 #0099cc
+color12 #0099cc
+color5 #cc68c8
+color13 #cc68c8
+color6 #79c4cc
+color14 #79c4cc
+color7 #bccccc
+color15 #bccccc
+selection_foreground #2f2f2f
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/LiquidCarbonTransparent.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/LiquidCarbonTransparent.conf
new file mode 100644
index 0000000..41e5f89
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/LiquidCarbonTransparent.conf
@@ -0,0 +1,21 @@
+background #000000
+foreground #afc2c2
+cursor #ffffff
+selection_background #7cbeff
+color0 #000000
+color8 #000000
+color1 #ff2f2f
+color9 #ff2f2f
+color2 #549a6f
+color10 #549a6f
+color3 #ccac00
+color11 #ccac00
+color4 #0099cc
+color12 #0099cc
+color5 #cc68c8
+color13 #cc68c8
+color6 #79c4cc
+color14 #79c4cc
+color7 #bccccc
+color15 #bccccc
+selection_foreground #000000
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/LiquidCarbonTransparentInverse.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/LiquidCarbonTransparentInverse.conf
new file mode 100644
index 0000000..d584624
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/LiquidCarbonTransparentInverse.conf
@@ -0,0 +1,21 @@
+background #000000
+foreground #afc2c2
+cursor #ffffff
+selection_background #7cbeff
+color0 #bbcbcc
+color8 #ffffff
+color1 #ff2f2f
+color9 #ff2f2f
+color2 #549a6f
+color10 #549a6f
+color3 #ccac00
+color11 #ccac00
+color4 #0099cc
+color12 #0099cc
+color5 #cc68c8
+color13 #cc68c8
+color6 #79c4cc
+color14 #79c4cc
+color7 #000000
+color15 #000000
+selection_foreground #000000
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Man_Page.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Man_Page.conf
new file mode 100644
index 0000000..7c8aa38
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Man_Page.conf
@@ -0,0 +1,23 @@
+# Theme ported from the Mac Terminal application.
+
+background #fef49c
+foreground #000000
+cursor #7f7f7f
+selection_background #a4c9cd
+color0 #000000
+color8 #666666
+color1 #cc0000
+color9 #e50000
+color2 #00a600
+color10 #00d900
+color3 #999900
+color11 #e5e500
+color4 #0000b2
+color12 #0000ff
+color5 #b200b2
+color13 #e500e5
+color6 #00a6b2
+color14 #00e5e5
+color7 #cccccc
+color15 #e5e5e5
+selection_foreground #fef49c
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Material.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Material.conf
new file mode 100644
index 0000000..ba38846
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Material.conf
@@ -0,0 +1,21 @@
+background #eaeaea
+foreground #222221
+cursor #16aec9
+selection_background #c1c1c1
+color0 #212121
+color8 #424242
+color1 #b7141e
+color9 #e83a3f
+color2 #457b23
+color10 #7aba39
+color3 #f5971d
+color11 #fee92e
+color4 #134eb2
+color12 #53a4f3
+color5 #550087
+color13 #a94dbb
+color6 #0e707c
+color14 #26bad1
+color7 #eeeeee
+color15 #d8d8d8
+selection_foreground #eaeaea
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/MaterialDark.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/MaterialDark.conf
new file mode 100644
index 0000000..e599021
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/MaterialDark.conf
@@ -0,0 +1,21 @@
+background #222221
+foreground #e4e4e4
+cursor #16aec9
+selection_background #dedede
+color0 #212121
+color8 #424242
+color1 #b7141e
+color9 #e83a3f
+color2 #457b23
+color10 #7aba39
+color3 #f5971d
+color11 #fee92e
+color4 #134eb2
+color12 #53a4f3
+color5 #550087
+color13 #a94dbb
+color6 #0e707c
+color14 #26bad1
+color7 #eeeeee
+color15 #d8d8d8
+selection_foreground #222221
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Mathias.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Mathias.conf
new file mode 100644
index 0000000..cd1ab14
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Mathias.conf
@@ -0,0 +1,21 @@
+background #000000
+foreground #bbbbbb
+cursor #bbbbbb
+selection_background #545454
+color0 #000000
+color8 #545454
+color1 #e52222
+color9 #ff5555
+color2 #a6e32d
+color10 #55ff55
+color3 #fc951e
+color11 #ffff55
+color4 #c48dff
+color12 #5555ff
+color5 #fa2573
+color13 #ff55ff
+color6 #67d9f0
+color14 #55ffff
+color7 #f2f2f2
+color15 #ffffff
+selection_foreground #000000
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Medallion.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Medallion.conf
new file mode 100644
index 0000000..0ad8805
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Medallion.conf
@@ -0,0 +1,21 @@
+background #1d1808
+foreground #cac296
+cursor #d3b92f
+selection_background #616cab
+color0 #000000
+color8 #5e5118
+color1 #b54c00
+color9 #ff9148
+color2 #7c8a16
+color10 #b1c93a
+color3 #d2bd25
+color11 #ffe449
+color4 #606baf
+color12 #abb8ff
+color5 #8b5990
+color13 #fe9fff
+color6 #906b25
+color14 #ffbb51
+color7 #c9c199
+color15 #fed597
+selection_foreground #1d1808
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Misterioso.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Misterioso.conf
new file mode 100644
index 0000000..1960f9b
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Misterioso.conf
@@ -0,0 +1,21 @@
+background #2d3743
+foreground #e1e1e0
+cursor #000000
+selection_background #2d37ff
+color0 #000000
+color8 #545454
+color1 #ff4141
+color9 #ff3241
+color2 #74ae68
+color10 #74cc68
+color3 #ffac28
+color11 #ffb928
+color4 #338e86
+color12 #23d6d6
+color5 #9413e5
+color13 #ff37ff
+color6 #23d6d6
+color14 #00ece1
+color7 #e1e1df
+color15 #ffffff
+selection_foreground #2d3743
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Molokai.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Molokai.conf
new file mode 100644
index 0000000..cd35d1f
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Molokai.conf
@@ -0,0 +1,21 @@
+background #121212
+foreground #bbbbbb
+cursor #bbbbbb
+selection_background #b4d5ff
+color0 #121212
+color8 #545454
+color1 #fa2573
+color9 #f5669c
+color2 #97e123
+color10 #b0e05e
+color3 #dfd460
+color11 #fef26c
+color4 #0f7fcf
+color12 #00afff
+color5 #8700ff
+color13 #af87ff
+color6 #42a7cf
+color14 #50cdfe
+color7 #bbbbbb
+color15 #ffffff
+selection_foreground #121212
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/MonaLisa.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/MonaLisa.conf
new file mode 100644
index 0000000..3b1602d
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/MonaLisa.conf
@@ -0,0 +1,21 @@
+background #110b0d
+foreground #f6d56a
+cursor #c36c32
+selection_background #f6d56a
+color0 #341a0d
+color8 #874227
+color1 #9b281b
+color9 #ff4230
+color2 #626132
+color10 #b3b163
+color3 #c26e27
+color11 #ff9565
+color4 #515b5c
+color12 #9eb2b3
+color5 #9b1d29
+color13 #ff5b6a
+color6 #588056
+color14 #89cc8e
+color7 #f6d75c
+color15 #ffe597
+selection_foreground #110b0d
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Monokai.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Monokai.conf
new file mode 100644
index 0000000..660c0cc
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Monokai.conf
@@ -0,0 +1,41 @@
+# Monokai
+
+background #272822
+foreground #f8f8f2
+cursor #f8f8f2
+selection_background #f8f8f2
+selection_foreground #272822
+active_tab_background #75715e
+active_tab_foreground #272822
+active_border_color #75715e
+inactive_tab_background #272822
+inactive_tab_foreground #75715e
+inactive_border_color #75715e
+url_color #f8f8f2
+
+# 16 Color Space
+
+# black
+color0 #272822
+color8 #75715e
+# red
+color1 #f92672
+color9 #f92672
+# green
+color2 #a6e22e
+color10 #a6e22e
+# yellow
+color3 #e6db74
+color11 #e6db74
+# blue
+color4 #66d9ef
+color12 #66d9ef
+# magenta
+color5 #fd971f
+color13 #fd971f
+# cyan
+color6 #ae81ff
+color14 #ae81ff
+# white
+color7 #f8f8f2
+color15 #f8f8f2
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Monokai_Classic.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Monokai_Classic.conf
new file mode 100644
index 0000000..9c74f40
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Monokai_Classic.conf
@@ -0,0 +1,47 @@
+background #3b3c35
+foreground #fdfff1
+
+cursor #fdfff1
+cursor_text_color #000000
+selection_foreground #3b3c35
+selection_background #fdfff1
+
+# dull black
+color0 #3b3c35
+# light black
+color8 #6e7066
+
+# dull red
+color1 #f82570
+# light red
+color9 #f82570
+
+# dull green
+color2 #a6e12d
+# light green
+color10 #a6e12d
+
+# yellow
+color3 #e4db73
+# light yellow
+color11 #e4db73
+
+# blue
+color4 #fc961f
+# light blue
+color12 #fc961f
+
+# magenta
+color5 #ae81ff
+# light magenta
+color13 #ae81ff
+
+# cyan
+color6 #66d9ee
+# light cyan
+color14 #66d9ee
+
+# dull white
+color7 #fdfff1
+# bright white
+color15 #fdfff1
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Monokai_Pro.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Monokai_Pro.conf
new file mode 100644
index 0000000..f5a2e8c
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Monokai_Pro.conf
@@ -0,0 +1,47 @@
+background #403e41
+foreground #fcfcfa
+
+cursor #fcfcfa
+cursor_text_color #000000
+selection_foreground #403e41
+selection_background #fcfcfa
+
+# dull black
+color0 #403e41
+# light black
+color8 #727072
+
+# dull red
+color1 #ff6188
+# light red
+color9 #ff6188
+
+# dull green
+color2 #a9dc76
+# light green
+color10 #a9dc76
+
+# yellow
+color3 #ffd866
+# light yellow
+color11 #ffd866
+
+# blue
+color4 #fc9867
+# light blue
+color12 #fc9867
+
+# magenta
+color5 #ab9df2
+# light magenta
+color13 #ab9df2
+
+# cyan
+color6 #78dce8
+# light cyan
+color14 #78dce8
+
+# dull white
+color7 #fcfcfa
+# bright white
+color15 #fcfcfa
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Monokai_Pro_(Filter_Machine).conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Monokai_Pro_(Filter_Machine).conf
new file mode 100644
index 0000000..b46e1d3
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Monokai_Pro_(Filter_Machine).conf
@@ -0,0 +1,47 @@
+background #3a4449
+foreground #f2fffc
+
+cursor #f2fffc
+cursor_text_color #000000
+selection_foreground #3a4449
+selection_background #f2fffc
+
+# dull black
+color0 #3a4449
+# light black
+color8 #6b7678
+
+# dull red
+color1 #ff6d7e
+# light red
+color9 #ff6d7e
+
+# dull green
+color2 #a2e57b
+# light green
+color10 #a2e57b
+
+# yellow
+color3 #ffed72
+# light yellow
+color11 #ffed72
+
+# blue
+color4 #ffb270
+# light blue
+color12 #ffb270
+
+# magenta
+color5 #baa0f8
+# light magenta
+color13 #baa0f8
+
+# cyan
+color6 #7cd5f1
+# light cyan
+color14 #7cd5f1
+
+# dull white
+color7 #f2fffc
+# bright white
+color15 #f2fffc
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Monokai_Pro_(Filter_Octagon).conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Monokai_Pro_(Filter_Octagon).conf
new file mode 100644
index 0000000..3aee34a
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Monokai_Pro_(Filter_Octagon).conf
@@ -0,0 +1,47 @@
+background #3a3d4b
+foreground #eaf2f1
+
+cursor #eaf2f1
+cursor_text_color #000000
+selection_foreground #3a3d4b
+selection_background #eaf2f1
+
+# dull black
+color0 #3a3d4b
+# light black
+color8 #696d77
+
+# dull red
+color1 #ff657a
+# light red
+color9 #ff657a
+
+# dull green
+color2 #bad761
+# light green
+color10 #bad761
+
+# yellow
+color3 #ffd76d
+# light yellow
+color11 #ffd76d
+
+# blue
+color4 #ff9b5e
+# light blue
+color12 #ff9b5e
+
+# magenta
+color5 #c39ac9
+# light magenta
+color13 #c39ac9
+
+# cyan
+color6 #9cd1bb
+# light cyan
+color14 #9cd1bb
+
+# dull white
+color7 #eaf2f1
+# bright white
+color15 #eaf2f1
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Monokai_Pro_(Filter_Ristretto).conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Monokai_Pro_(Filter_Ristretto).conf
new file mode 100644
index 0000000..599b0e1
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Monokai_Pro_(Filter_Ristretto).conf
@@ -0,0 +1,47 @@
+background #403838
+foreground #fff1f3
+
+cursor #fff1f3
+cursor_text_color #000000
+selection_foreground #403838
+selection_background #fff1f3
+
+# dull black
+color0 #403838
+# light black
+color8 #72696a
+
+# dull red
+color1 #fd6883
+# light red
+color9 #fd6883
+
+# dull green
+color2 #adda78
+# light green
+color10 #adda78
+
+# yellow
+color3 #f9cc6c
+# light yellow
+color11 #f9cc6c
+
+# blue
+color4 #f38d70
+# light blue
+color12 #f38d70
+
+# magenta
+color5 #a8a9eb
+# light magenta
+color13 #a8a9eb
+
+# cyan
+color6 #85dacc
+# light cyan
+color14 #85dacc
+
+# dull white
+color7 #fff1f3
+# bright white
+color15 #fff1f3
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Monokai_Pro_(Filter_Spectrum).conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Monokai_Pro_(Filter_Spectrum).conf
new file mode 100644
index 0000000..5617a6d
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Monokai_Pro_(Filter_Spectrum).conf
@@ -0,0 +1,47 @@
+background #363537
+foreground #f7f1ff
+
+cursor #f7f1ff
+cursor_text_color #000000
+selection_foreground #363537
+selection_background #f7f1ff
+
+# dull black
+color0 #363537
+# light black
+color8 #69676c
+
+# dull red
+color1 #fc618d
+# light red
+color9 #fc618d
+
+# dull green
+color2 #7bd88f
+# light green
+color10 #7bd88f
+
+# yellow
+color3 #fce566
+# light yellow
+color11 #fce566
+
+# blue
+color4 #fd9353
+# light blue
+color12 #fd9353
+
+# magenta
+color5 #948ae3
+# light magenta
+color13 #948ae3
+
+# cyan
+color6 #5ad4e6
+# light cyan
+color14 #5ad4e6
+
+# dull white
+color7 #f7f1ff
+# bright white
+color15 #f7f1ff
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Monokai_Soda.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Monokai_Soda.conf
new file mode 100644
index 0000000..eb7a24d
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Monokai_Soda.conf
@@ -0,0 +1,21 @@
+background #191919
+foreground #c4c4b5
+cursor #f6f6ec
+selection_background #343434
+color0 #191919
+color8 #615e4b
+color1 #f3005f
+color9 #f3005f
+color2 #97e023
+color10 #97e023
+color3 #fa8419
+color11 #dfd561
+color4 #9c64fe
+color12 #9c64fe
+color5 #f3005f
+color13 #f3005f
+color6 #57d1ea
+color14 #57d1ea
+color7 #c4c4b5
+color15 #f6f6ee
+selection_foreground #191919
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/N0tch2k.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/N0tch2k.conf
new file mode 100644
index 0000000..3e2bb6c
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/N0tch2k.conf
@@ -0,0 +1,21 @@
+background #222222
+foreground #a0a0a0
+cursor #a99075
+selection_background #4d4d4d
+color0 #383838
+color8 #474747
+color1 #a95551
+color9 #a97775
+color2 #666666
+color10 #8c8c8c
+color3 #a98051
+color11 #a99175
+color4 #657d3e
+color12 #98bd5e
+color5 #767676
+color13 #a3a3a3
+color6 #c9c9c9
+color14 #dcdcdc
+color7 #d0b8a3
+color15 #d8c8bb
+selection_foreground #222222
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Neopolitan.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Neopolitan.conf
new file mode 100644
index 0000000..2c6ffce
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Neopolitan.conf
@@ -0,0 +1,21 @@
+background #271f19
+foreground #ffffff
+cursor #ffffff
+selection_background #253b76
+color0 #000000
+color8 #000000
+color1 #800000
+color9 #800000
+color2 #61ce3c
+color10 #61ce3c
+color3 #fbde2d
+color11 #fbde2d
+color4 #253b76
+color12 #253b76
+color5 #ff0080
+color13 #ff0080
+color6 #8da6ce
+color14 #8da6ce
+color7 #f8f8f8
+color15 #f8f8f8
+selection_foreground #271f19
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Neutron.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Neutron.conf
new file mode 100644
index 0000000..9f2fe4d
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Neutron.conf
@@ -0,0 +1,21 @@
+background #1b1d22
+foreground #e6e8ee
+cursor #f6f6ec
+selection_background #2e353d
+color0 #22252b
+color8 #22252b
+color1 #b53f36
+color9 #b53f36
+color2 #5ab977
+color10 #5ab977
+color3 #ddb566
+color11 #ddb566
+color4 #6a7b92
+color12 #6a7b92
+color5 #a3799d
+color13 #a3799d
+color6 #3f93a8
+color14 #3f93a8
+color7 #e6e8ee
+color15 #ebedf2
+selection_foreground #1b1d22
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/NightLion_v1.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/NightLion_v1.conf
new file mode 100644
index 0000000..1021c46
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/NightLion_v1.conf
@@ -0,0 +1,21 @@
+background #000000
+foreground #bbbbbb
+cursor #bbbbbb
+selection_background #b4d5ff
+color0 #4c4c4c
+color8 #545454
+color1 #bb0000
+color9 #ff5555
+color2 #5ede8f
+color10 #55ff55
+color3 #f2f067
+color11 #ffff55
+color4 #266ad7
+color12 #5555ff
+color5 #bb00bb
+color13 #ff55ff
+color6 #00d9df
+color14 #55ffff
+color7 #bbbbbb
+color15 #ffffff
+selection_foreground #000000
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/NightLion_v2.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/NightLion_v2.conf
new file mode 100644
index 0000000..aed7f8d
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/NightLion_v2.conf
@@ -0,0 +1,21 @@
+background #171717
+foreground #bbbbbb
+cursor #bbbbbb
+selection_background #b4d5ff
+color0 #4c4c4c
+color8 #545454
+color1 #bb0000
+color9 #ff5555
+color2 #03f622
+color10 #7df61c
+color3 #f2f067
+color11 #ffff55
+color4 #63d0f0
+color12 #62cae7
+color5 #ce6fda
+color13 #ff9af5
+color6 #00d9df
+color14 #00ccd7
+color7 #bbbbbb
+color15 #ffffff
+selection_foreground #171717
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Nova.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Nova.conf
new file mode 100644
index 0000000..c3f2da1
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Nova.conf
@@ -0,0 +1,21 @@
+background #3c4c54
+foreground #8798a3
+cursor #7fc1c9
+color0 #8799a4
+color8 #c4d3dc
+color1 #efc08d
+color9 #ef8358
+color2 #a6cb91
+color10 #a8ce93
+color3 #d7d690
+color11 #e5e77f
+color4 #83afe4
+color12 #69c8ff
+color5 #d460da
+color13 #d18ec2
+color6 #7fc1b6
+color14 #00e59f
+color7 #c4d3dc
+color15 #e6eef3
+selection_foreground #3c4c54
+selection_background #7fc1ca
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Novel.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Novel.conf
new file mode 100644
index 0000000..03220e3
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Novel.conf
@@ -0,0 +1,23 @@
+# Theme ported from the Mac Terminal application.
+
+background #dfdbc3
+foreground #3b2322
+cursor #73635a
+selection_background #a4a390
+color0 #000000
+color8 #7f7f7f
+color1 #cc0000
+color9 #cc0000
+color2 #009600
+color10 #009600
+color3 #d06b00
+color11 #d06b00
+color4 #0000cc
+color12 #0000cc
+color5 #cc00cc
+color13 #cc00cc
+color6 #0087cc
+color14 #0086cb
+color7 #cccccc
+color15 #ffffff
+selection_foreground #dfdbc3
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Obsidian.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Obsidian.conf
new file mode 100644
index 0000000..7265d44
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Obsidian.conf
@@ -0,0 +1,21 @@
+background #273032
+foreground #cccccc
+cursor #c0cad0
+selection_background #3d4b4e
+color0 #000000
+color8 #545454
+color1 #a50001
+color9 #ff0003
+color2 #00bb00
+color10 #92c763
+color3 #fecc22
+color11 #fef773
+color4 #399bda
+color12 #a0d6ff
+color5 #bb00bb
+color13 #ff55ff
+color6 #00bbbb
+color14 #55ffff
+color7 #bbbbbb
+color15 #ffffff
+selection_foreground #273032
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Ocean.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Ocean.conf
new file mode 100644
index 0000000..ad6205a
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Ocean.conf
@@ -0,0 +1,23 @@
+# Theme ported from the Mac Terminal application.
+
+background #214fbc
+foreground #ffffff
+cursor #7f7f7f
+selection_background #216dff
+color0 #000000
+color8 #666666
+color1 #990000
+color9 #e50000
+color2 #00a600
+color10 #00d900
+color3 #999900
+color11 #e5e500
+color4 #0000b2
+color12 #0000ff
+color5 #b200b2
+color13 #e500e5
+color6 #00a6b2
+color14 #00e5e5
+color7 #bebebe
+color15 #e5e5e5
+selection_foreground #214fbc
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/OceanicMaterial.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/OceanicMaterial.conf
new file mode 100644
index 0000000..9403518
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/OceanicMaterial.conf
@@ -0,0 +1,21 @@
+background #1c262b
+foreground #c1c8d6
+cursor #b2b8c3
+selection_background #6dc1b8
+color0 #000000
+color8 #767676
+color1 #ee2a29
+color9 #dc5b60
+color2 #3fa33f
+color10 #70be71
+color3 #fee92e
+color11 #fef063
+color4 #1d80ef
+color12 #53a4f3
+color5 #8800a0
+color13 #a94dbb
+color6 #16aec9
+color14 #42c6d9
+color7 #a4a4a4
+color15 #fffefe
+selection_foreground #1c262b
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Ollie.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Ollie.conf
new file mode 100644
index 0000000..66eecf5
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Ollie.conf
@@ -0,0 +1,21 @@
+background #212024
+foreground #8a8dae
+cursor #5b6da7
+selection_background #1e3965
+color0 #000000
+color8 #5a3625
+color1 #ab2e30
+color9 #ff3d48
+color2 #31ab60
+color10 #3bff99
+color3 #ab4200
+color11 #ff5e1e
+color4 #2c56ab
+color12 #4487ff
+color5 #af8427
+color13 #ffc21c
+color6 #1fa5ab
+color14 #1efaff
+color7 #8a8dab
+color15 #5b6da7
+selection_foreground #212024
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/OneDark.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/OneDark.conf
new file mode 100644
index 0000000..ad6cb4e
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/OneDark.conf
@@ -0,0 +1,25 @@
+# One Dark by Giuseppe Cesarano, https://github.com/GiuseppeCesarano
+# This work is licensed under the terms of the GPL-2.0 license.
+# For a copy, see https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html.
+
+foreground #979eab
+background #282c34
+cursor #cccccc
+color0 #282c34
+color1 #e06c75
+color2 #98c379
+color3 #e5c07b
+color4 #61afef
+color5 #be5046
+color6 #56b6c2
+color7 #979eab
+color8 #393e48
+color9 #d19a66
+color10 #56b6c2
+color11 #e5c07b
+color12 #61afef
+color13 #be5046
+color14 #56b6c2
+color15 #abb2bf
+selection_foreground #282c34
+selection_background #979eab
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Parasio_Dark.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Parasio_Dark.conf
new file mode 100644
index 0000000..4cc1e8d
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Parasio_Dark.conf
@@ -0,0 +1,21 @@
+background #2f1d2e
+foreground #a39d9b
+cursor #a39d9b
+selection_background #4f414c
+color0 #2f1d2e
+color8 #776d70
+color1 #ef6154
+color9 #ef6154
+color2 #48b685
+color10 #48b685
+color3 #fec418
+color11 #fec418
+color4 #05b6ef
+color12 #05b6ef
+color5 #805ba3
+color13 #805ba3
+color6 #5bc4be
+color14 #5bc4be
+color7 #a39d9b
+color15 #e6e9da
+selection_foreground #2f1d2e
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/PaulMillr.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/PaulMillr.conf
new file mode 100644
index 0000000..72cc95c
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/PaulMillr.conf
@@ -0,0 +1,21 @@
+background #000000
+foreground #f1f1f1
+cursor #4c4c4c
+selection_background #414141
+color0 #2a2a2a
+color8 #666666
+color1 #ff0000
+color9 #ff007f
+color2 #78ff0e
+color10 #66ff66
+color3 #e6be00
+color11 #f3d64d
+color4 #396ad6
+color12 #7099ec
+color5 #b348bd
+color13 #da66e5
+color6 #66ccff
+color14 #79def1
+color7 #bababa
+color15 #ffffff
+selection_foreground #000000
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/PencilDark.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/PencilDark.conf
new file mode 100644
index 0000000..3926f6c
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/PencilDark.conf
@@ -0,0 +1,21 @@
+background #202020
+foreground #f0f0f0
+cursor #20bafb
+selection_background #b6d6fc
+color0 #202020
+color8 #414141
+color1 #c30670
+color9 #fb0079
+color2 #10a778
+color10 #5ed6ae
+color3 #a79c14
+color11 #f3e42f
+color4 #008ec4
+color12 #20bafb
+color5 #523b78
+color13 #6854de
+color6 #20a4b9
+color14 #4fb8cc
+color7 #d9d9d9
+color15 #f0f0f0
+selection_foreground #202020
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/PencilLight.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/PencilLight.conf
new file mode 100644
index 0000000..4311c70
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/PencilLight.conf
@@ -0,0 +1,21 @@
+background #f0f0f0
+foreground #414141
+cursor #20bafb
+selection_background #b6d6fc
+color0 #202020
+color8 #414141
+color1 #c30670
+color9 #fb0079
+color2 #10a778
+color10 #5ed6ae
+color3 #a79c14
+color11 #f3e42f
+color4 #008ec4
+color12 #20bafb
+color5 #523b78
+color13 #6854de
+color6 #20a4b9
+color14 #4fb8cc
+color7 #d9d9d9
+color15 #f0f0f0
+selection_foreground #f0f0f0
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Piatto_Light.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Piatto_Light.conf
new file mode 100644
index 0000000..401fe91
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Piatto_Light.conf
@@ -0,0 +1,21 @@
+background #ffffff
+foreground #414141
+cursor #5e76c7
+selection_background #6f6a4e
+color0 #414141
+color8 #3e3e3e
+color1 #b23670
+color9 #da3365
+color2 #66781d
+color10 #829428
+color3 #cc6e33
+color11 #cc6e33
+color4 #3b5ea7
+color12 #3b5ea7
+color5 #a353b2
+color13 #a353b2
+color6 #66781d
+color14 #829428
+color7 #ffffff
+color15 #f1f1f1
+selection_foreground #ffffff
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Pnevma.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Pnevma.conf
new file mode 100644
index 0000000..1dda097
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Pnevma.conf
@@ -0,0 +1,21 @@
+background #1c1c1c
+foreground #d0d0d0
+cursor #e3c8ae
+selection_background #4d4d4d
+color0 #2f2e2d
+color8 #4a4845
+color1 #a36666
+color9 #d78787
+color2 #90a57d
+color10 #afbea2
+color3 #d7af87
+color11 #e4c9af
+color4 #7fa5bd
+color12 #a1bdce
+color5 #c79ec4
+color13 #d7beda
+color6 #8adbb4
+color14 #b1e7dd
+color7 #d0d0d0
+color15 #efefef
+selection_foreground #1c1c1c
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Pro.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Pro.conf
new file mode 100644
index 0000000..6ffc047
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Pro.conf
@@ -0,0 +1,23 @@
+# Theme ported from the Mac Terminal application.
+
+background #000000
+foreground #f2f2f2
+cursor #4d4d4d
+selection_background #414141
+color0 #000000
+color8 #666666
+color1 #990000
+color9 #e50000
+color2 #00a600
+color10 #00d900
+color3 #999900
+color11 #e5e500
+color4 #1f08db
+color12 #0000ff
+color5 #b200b2
+color13 #e500e5
+color6 #00a6b2
+color14 #00e5e5
+color7 #bfbfbf
+color15 #e5e5e5
+selection_foreground #000000
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Red_Alert.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Red_Alert.conf
new file mode 100644
index 0000000..020429a
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Red_Alert.conf
@@ -0,0 +1,21 @@
+background #762423
+foreground #ffffff
+cursor #ffffff
+selection_background #073642
+color0 #000000
+color8 #262626
+color1 #d52e4d
+color9 #e02453
+color2 #71be6b
+color10 #aff08b
+color3 #beb86b
+color11 #dfddb7
+color4 #479bed
+color12 #65a9f0
+color5 #e878d6
+color13 #ddb7df
+color6 #6bbeb8
+color14 #b7dfdd
+color7 #d6d6d6
+color15 #ffffff
+selection_foreground #762423
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Red_Sands.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Red_Sands.conf
new file mode 100644
index 0000000..a491f3d
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Red_Sands.conf
@@ -0,0 +1,23 @@
+# Theme ported from the Mac Terminal application.
+
+background #79241d
+foreground #d6c8a7
+cursor #ffffff
+selection_background #a4a390
+color0 #000000
+color8 #545454
+color1 #ff3e00
+color9 #ba0000
+color2 #00ba00
+color10 #00ba00
+color3 #e6af00
+color11 #e6af00
+color4 #0071ff
+color12 #0071ae
+color5 #ba00ba
+color13 #ff54ff
+color6 #00baba
+color14 #54ffff
+color7 #bababa
+color15 #ffffff
+selection_foreground #79241d
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Relaxed_Afterglow.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Relaxed_Afterglow.conf
new file mode 100644
index 0000000..5988777
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Relaxed_Afterglow.conf
@@ -0,0 +1,25 @@
+# Relaxed Afterglow by Michael Kühnel , https://github.com/Relaxed-Theme/relaxed-terminal-themes
+# This work is licensed under the terms of the MIT license.
+# For a copy, see https://opensource.org/licenses/MIT.
+
+background #353a44
+foreground #d9d9d9
+cursor #d9d9d9
+selection_foreground #d8d8d8
+selection_background #6a7984
+color0 #151515
+color1 #bc5653
+color2 #909d63
+color3 #ebc17a
+color4 #6a8799
+color5 #b06698
+color6 #c9dfff
+color7 #d9d9d9
+color8 #636363
+color9 #bc5653
+color10 #a0ac77
+color11 #ebc17a
+color12 #7eaac7
+color13 #b06698
+color14 #acbbd0
+color15 #f7f7f7
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Renault_Style.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Renault_Style.conf
new file mode 100644
index 0000000..856818d
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Renault_Style.conf
@@ -0,0 +1,22 @@
+background #3a3a3a
+foreground #e9cb7b
+cursor #7f7f7f
+selection_background #958553
+
+color0 #000000
+color1 #990000
+color2 #00A600
+color3 #999900
+color4 #0000B2
+color5 #B200B2
+color6 #00A6B2
+color7 #BFBFBF
+color8 #666666
+color9 #E50000
+color10 #00d800
+color11 #E5E500
+color12 #0000FF
+color13 #E500E5
+color14 #00e5e5
+color15 #E5E5E5
+selection_foreground #3a3a3a
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Renault_Style_Light.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Renault_Style_Light.conf
new file mode 100644
index 0000000..e08cd6a
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Renault_Style_Light.conf
@@ -0,0 +1,21 @@
+background #3a3a3a
+foreground #e9cb7b
+cursor #7f7f7f
+selection_background #958553
+color0 #000000
+color8 #323232
+color1 #da4839
+color9 #ff7b6a
+color2 #509f50
+color10 #83d082
+color3 #ffd249
+color11 #ffff7b
+color4 #46657d
+color12 #9fcef0
+color5 #cfcfff
+color13 #ffffff
+color6 #87c1f1
+color14 #a4d4f8
+color7 #ffffff
+color15 #ffffff
+selection_foreground #3a3a3a
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Rippedcasts.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Rippedcasts.conf
new file mode 100644
index 0000000..20e9872
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Rippedcasts.conf
@@ -0,0 +1,21 @@
+background #2b2b2b
+foreground #ffffff
+cursor #7f7f7f
+selection_background #5a637e
+color0 #000000
+color8 #666666
+color1 #ccae95
+color9 #edcbac
+color2 #a7ff60
+color10 #bced68
+color3 #beba1f
+color11 #e5e500
+color4 #74a4af
+color12 #86bdc8
+color5 #ff73fd
+color13 #e500e5
+color6 #5a637e
+color14 #8b9bc4
+color7 #bebebe
+color15 #e5e5e5
+selection_foreground #2b2b2b
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Royal.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Royal.conf
new file mode 100644
index 0000000..0ebd236
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Royal.conf
@@ -0,0 +1,21 @@
+background #100814
+foreground #504868
+cursor #514965
+selection_background #1e1d2a
+color0 #241f2a
+color8 #312d3c
+color1 #90274b
+color9 #d4346c
+color2 #23801c
+color10 #2cd845
+color3 #b49d27
+color11 #fde83a
+color4 #6480af
+color12 #8fb9f9
+color5 #664d96
+color13 #a479e2
+color6 #8aaabd
+color14 #abd3eb
+color7 #514965
+color15 #9d8bbd
+selection_foreground #100814
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/SeaShells.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/SeaShells.conf
new file mode 100644
index 0000000..60a2968
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/SeaShells.conf
@@ -0,0 +1,21 @@
+background #08131a
+foreground #deb88d
+cursor #fba02f
+selection_background #1e4862
+color0 #17384c
+color8 #424b52
+color1 #d05023
+color9 #d38677
+color2 #027b9b
+color10 #618c98
+color3 #fba02f
+color11 #fdd29e
+color4 #1d4850
+color12 #1abcdd
+color5 #68d3f0
+color13 #bbe3ee
+color6 #50a3b5
+color14 #86abb3
+color7 #deb88d
+color15 #fee3cd
+selection_foreground #08131a
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Seafoam_Pastel.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Seafoam_Pastel.conf
new file mode 100644
index 0000000..c3e95a7
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Seafoam_Pastel.conf
@@ -0,0 +1,21 @@
+background #243335
+foreground #d3e6d3
+cursor #576379
+selection_background #ffffff
+color0 #747474
+color8 #8a8a8a
+color1 #825d4c
+color9 #cf9279
+color2 #718b62
+color10 #98d9aa
+color3 #aca06d
+color11 #fae69c
+color4 #4c7b82
+color12 #79c3cf
+color5 #8a7166
+color13 #d6b2a0
+color6 #719494
+color14 #acdfdf
+color7 #dfdfdf
+color15 #dfdfdf
+selection_foreground #243335
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Seti.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Seti.conf
new file mode 100644
index 0000000..69c4105
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Seti.conf
@@ -0,0 +1,21 @@
+background #111213
+foreground #cacecd
+cursor #e2be21
+selection_background #303233
+color0 #323232
+color8 #323232
+color1 #c22832
+color9 #c22832
+color2 #8ec43d
+color10 #8ec43d
+color3 #e0c64f
+color11 #e0c64f
+color4 #43a5d5
+color12 #43a5d5
+color5 #8b57b5
+color13 #8b57b5
+color6 #8ec43d
+color14 #8ec43d
+color7 #eeeeee
+color15 #ffffff
+selection_foreground #111213
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Shaman.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Shaman.conf
new file mode 100644
index 0000000..a316711
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Shaman.conf
@@ -0,0 +1,21 @@
+background #001014
+foreground #405555
+cursor #49fcd5
+selection_background #415554
+color0 #012026
+color8 #374350
+color1 #b12f2c
+color9 #ff4242
+color2 #00a940
+color10 #2aea5e
+color3 #5d8aa9
+color11 #8dd3fd
+color4 #449985
+color12 #61d4b9
+color5 #00599c
+color13 #1298ff
+color6 #5c7e19
+color14 #98cf28
+color7 #405554
+color15 #58fad6
+selection_foreground #001014
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Slate.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Slate.conf
new file mode 100644
index 0000000..650e4ab
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Slate.conf
@@ -0,0 +1,21 @@
+background #212121
+foreground #34b0d2
+cursor #87d2c3
+selection_background #0f3754
+color0 #212121
+color8 #ffffff
+color1 #e1a7bf
+color9 #ffccd8
+color2 #80d778
+color10 #bdffa8
+color3 #c4c9bf
+color11 #d0cbc9
+color4 #254a49
+color12 #79afd2
+color5 #a380d3
+color13 #c4a7d8
+color6 #14ab9c
+color14 #8bdee0
+color7 #02c4e0
+color15 #e0e0e0
+selection_foreground #212121
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Smyck.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Smyck.conf
new file mode 100644
index 0000000..3c97251
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Smyck.conf
@@ -0,0 +1,21 @@
+background #1b1b1b
+foreground #f7f7f7
+cursor #bbbbbb
+selection_background #207383
+color0 #000000
+color8 #7a7a7a
+color1 #b74131
+color9 #d6837b
+color2 #7da900
+color10 #c4f036
+color3 #c4a400
+color11 #fee14d
+color4 #62a3c4
+color12 #8dcff0
+color5 #b98acc
+color13 #f799ff
+color6 #207383
+color14 #69d9cf
+color7 #a0a0a0
+color15 #f7f7f7
+selection_foreground #1b1b1b
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/SoftServer.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/SoftServer.conf
new file mode 100644
index 0000000..e7eb5fe
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/SoftServer.conf
@@ -0,0 +1,21 @@
+background #242626
+foreground #99a3a2
+cursor #d1dfde
+selection_background #7f8786
+color0 #000000
+color8 #666c6b
+color1 #a16869
+color9 #dc5b5f
+color2 #99a569
+color10 #bfde54
+color3 #a29069
+color11 #deb35f
+color4 #6a8fa3
+color12 #62b1df
+color5 #6971a3
+color13 #5f6ede
+color6 #6ba48f
+color14 #64e39c
+color7 #99a3a2
+color15 #d1dfde
+selection_foreground #242626
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Solarized_Darcula.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Solarized_Darcula.conf
new file mode 100644
index 0000000..0a845d4
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Solarized_Darcula.conf
@@ -0,0 +1,21 @@
+background #3d3f41
+foreground #d2d8d9
+cursor #708183
+selection_background #214283
+color0 #25292a
+color8 #25292a
+color1 #f24840
+color9 #f24840
+color2 #629655
+color10 #629655
+color3 #b68800
+color11 #b68800
+color4 #2074c7
+color12 #2074c7
+color5 #797fd4
+color13 #797fd4
+color6 #15968d
+color14 #15968d
+color7 #d2d8d9
+color15 #d2d8d9
+selection_foreground #3d3f41
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Solarized_Dark.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Solarized_Dark.conf
new file mode 100644
index 0000000..8419426
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Solarized_Dark.conf
@@ -0,0 +1,21 @@
+background #001e26
+foreground #708183
+cursor #708183
+selection_background #002731
+color0 #002731
+color8 #001e26
+color1 #d01b24
+color9 #bd3612
+color2 #728905
+color10 #465a61
+color3 #a57705
+color11 #52676f
+color4 #2075c7
+color12 #708183
+color5 #c61b6e
+color13 #5856b9
+color6 #259185
+color14 #81908f
+color7 #e9e2cb
+color15 #fcf4dc
+selection_foreground #001e26
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Solarized_Dark_-_Patched.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Solarized_Dark_-_Patched.conf
new file mode 100644
index 0000000..37c3597
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Solarized_Dark_-_Patched.conf
@@ -0,0 +1,21 @@
+background #001e26
+foreground #708183
+cursor #708183
+selection_background #002731
+color0 #002731
+color8 #465a61
+color1 #d01b24
+color9 #bd3612
+color2 #728905
+color10 #465a61
+color3 #a57705
+color11 #52676f
+color4 #2075c7
+color12 #708183
+color5 #c61b6e
+color13 #5856b9
+color6 #259185
+color14 #81908f
+color7 #e9e2cb
+color15 #fcf4dc
+selection_foreground #001e26
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Solarized_Dark_Higher_Contrast.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Solarized_Dark_Higher_Contrast.conf
new file mode 100644
index 0000000..8477ea1
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Solarized_Dark_Higher_Contrast.conf
@@ -0,0 +1,21 @@
+background #001e26
+foreground #9bc1c2
+cursor #f34a00
+selection_background #003747
+color0 #002731
+color8 #006388
+color1 #d01b24
+color9 #f4153b
+color2 #6bbe6c
+color10 #50ee84
+color3 #a57705
+color11 #b17e28
+color4 #2075c7
+color12 #178dc7
+color5 #c61b6e
+color13 #e14d8e
+color6 #259185
+color14 #00b29e
+color7 #e9e2cb
+color15 #fcf4dc
+selection_foreground #001e26
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Solarized_Light.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Solarized_Light.conf
new file mode 100644
index 0000000..36e101b
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Solarized_Light.conf
@@ -0,0 +1,21 @@
+background #fdf6e3
+foreground #52676f
+cursor #52676f
+selection_background #e9e2cb
+color0 #e4e4e4
+color8 #ffffd7
+color1 #d70000
+color9 #d75f00
+color2 #5f8700
+color10 #585858
+color3 #af8700
+color11 #626262
+color4 #0087ff
+color12 #808080
+color5 #af005f
+color13 #5f5faf
+color6 #00afaf
+color14 #8a8a8a
+color7 #262626
+color15 #1c1c1c
+selection_foreground #fcf4dc
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Source_Code_X.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Source_Code_X.conf
new file mode 100644
index 0000000..d3aefa3
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Source_Code_X.conf
@@ -0,0 +1,21 @@
+foreground #000000
+background #1f1f24
+cursor #7F7F7F
+color0 #4e596b
+color8 #91a0b1
+color1 #fb695d
+color7 #BFBFBF
+color9 #fb695d
+color2 #74b391
+color10 #aef37c
+color3 #fc8e3e
+color11 #fc8e3e
+color4 #9586f4
+color12 #53a4fb
+color5 #fb5ea3
+color13 #fb5ea3
+color6 #79c8b6
+color14 #83d2c0
+color15 #91a0b1
+selection_foreground #1f1f24
+selection_background #000000
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/SpaceGray.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/SpaceGray.conf
new file mode 100644
index 0000000..ba9afeb
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/SpaceGray.conf
@@ -0,0 +1,21 @@
+background #20232c
+foreground #b2b8c2
+cursor #b2b8c2
+selection_background #15171e
+color0 #000000
+color8 #000000
+color1 #af4b57
+color9 #af4b57
+color2 #87b279
+color10 #87b279
+color3 #e5c078
+color11 #e5c078
+color4 #7c8fa3
+color12 #7c8fa3
+color5 #a37996
+color13 #a37996
+color6 #84a6a4
+color14 #84a6a4
+color7 #b2b8c2
+color15 #fffefe
+selection_foreground #20232c
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/SpaceGray_Eighties.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/SpaceGray_Eighties.conf
new file mode 100644
index 0000000..8249a17
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/SpaceGray_Eighties.conf
@@ -0,0 +1,21 @@
+background #212121
+foreground #bdb9ae
+cursor #bbbbbb
+selection_background #262e35
+color0 #15171c
+color8 #545454
+color1 #ec5f67
+color9 #ff6973
+color2 #80a763
+color10 #93d393
+color3 #fdc253
+color11 #ffd156
+color4 #5485c0
+color12 #4d83d0
+color5 #bf83c0
+color13 #ff55ff
+color6 #57c2c0
+color14 #83e8e4
+color7 #eeece7
+color15 #ffffff
+selection_foreground #212121
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/SpaceGray_Eighties_Dull.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/SpaceGray_Eighties_Dull.conf
new file mode 100644
index 0000000..eabf184
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/SpaceGray_Eighties_Dull.conf
@@ -0,0 +1,21 @@
+background #212121
+foreground #c8c5bc
+cursor #bbbbbb
+selection_background #262e36
+color0 #15171c
+color8 #545454
+color1 #b14956
+color9 #ec5f67
+color2 #91b377
+color10 #88e985
+color3 #c6725a
+color11 #fdc253
+color4 #7b8fa4
+color12 #5485c0
+color5 #a5779e
+color13 #bf83c0
+color6 #7fcccb
+color14 #58c2c0
+color7 #b2b8c2
+color15 #ffffff
+selection_foreground #212121
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Spacedust.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Spacedust.conf
new file mode 100644
index 0000000..08b93c4
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Spacedust.conf
@@ -0,0 +1,21 @@
+background #0a1e24
+foreground #ecefc1
+cursor #708183
+selection_background #0a385c
+color0 #6e5246
+color8 #674c31
+color1 #e35a00
+color9 #ff8a39
+color2 #5cab96
+color10 #adcab8
+color3 #e3cd7b
+color11 #ffc777
+color4 #0e548b
+color12 #67a0cd
+color5 #e35a00
+color13 #ff8a39
+color6 #06afc7
+color14 #83a6b3
+color7 #f0f1ce
+color15 #fefff0
+selection_foreground #0a1e24
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Spiderman.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Spiderman.conf
new file mode 100644
index 0000000..a72bbca
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Spiderman.conf
@@ -0,0 +1,21 @@
+background #1b1d1e
+foreground #e2e2e2
+cursor #2b3fff
+selection_background #070e4f
+color0 #1b1d1e
+color8 #505354
+color1 #e60712
+color9 #ff0325
+color2 #e22828
+color10 #ff3238
+color3 #e24655
+color11 #fe3935
+color4 #2b3fff
+color12 #1d4fff
+color5 #2435db
+color13 #737bff
+color6 #3255ff
+color14 #6083ff
+color7 #fffef6
+color15 #fefff9
+selection_foreground #1b1d1e
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Spring.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Spring.conf
new file mode 100644
index 0000000..4df6d1c
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Spring.conf
@@ -0,0 +1,21 @@
+background #ffffff
+foreground #4d4d4c
+cursor #4d4d4c
+selection_background #d6d6d6
+color0 #000000
+color8 #000000
+color1 #ff4c83
+color9 #ff0021
+color2 #1f8c3a
+color10 #1fc231
+color3 #1fc95a
+color11 #d4b706
+color4 #1cd2ee
+color12 #15a9fd
+color5 #8959a8
+color13 #8959a8
+color6 #3e999f
+color14 #3e999f
+color7 #fffefe
+color15 #fffefe
+selection_foreground #ffffff
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Square.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Square.conf
new file mode 100644
index 0000000..e5457a5
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Square.conf
@@ -0,0 +1,21 @@
+background #1a1a1a
+foreground #acacab
+cursor #fbfacc
+selection_background #4d4d4d
+color0 #050505
+color8 #141414
+color1 #e9897c
+color9 #f99286
+color2 #b6377d
+color10 #c3f786
+color3 #ecebbe
+color11 #fcfbcc
+color4 #a9cdeb
+color12 #b6defb
+color5 #75507b
+color13 #ad7fa8
+color6 #c9caec
+color14 #d7d9fc
+color7 #f2f2f2
+color15 #e2e2e2
+selection_foreground #1a1a1a
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Sundried.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Sundried.conf
new file mode 100644
index 0000000..d5ff99d
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Sundried.conf
@@ -0,0 +1,21 @@
+background #1a1818
+foreground #c8c8c8
+cursor #fffefe
+selection_background #302b2a
+color0 #302b2a
+color8 #4d4d47
+color1 #a6463d
+color9 #aa000c
+color2 #577644
+color10 #128c20
+color3 #9c5f2a
+color11 #fc6a20
+color4 #485a98
+color12 #7898f7
+color5 #854551
+color13 #fc89a0
+color6 #9c814e
+color14 #fad384
+color7 #c8c8c8
+color15 #fffefe
+selection_foreground #1a1818
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Symfonic.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Symfonic.conf
new file mode 100644
index 0000000..9b5e0d3
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Symfonic.conf
@@ -0,0 +1,21 @@
+background #000000
+foreground #ffffff
+cursor #dc322f
+selection_background #073642
+color0 #000000
+color8 #1b1d21
+color1 #dc322f
+color9 #dc322f
+color2 #56db3a
+color10 #56db3a
+color3 #ff8400
+color11 #ff8400
+color4 #0084d4
+color12 #0084d4
+color5 #b729d9
+color13 #b729d9
+color6 #ccccff
+color14 #ccccff
+color7 #ffffff
+color15 #ffffff
+selection_foreground #000000
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Tango_Dark.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Tango_Dark.conf
new file mode 100644
index 0000000..6a4673a
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Tango_Dark.conf
@@ -0,0 +1,21 @@
+background #000000
+foreground #ffffff
+cursor #ffffff
+selection_background #b4d5ff
+color0 #000000
+color8 #545753
+color1 #cc0000
+color9 #ef2828
+color2 #4e9a05
+color10 #8ae234
+color3 #c4a000
+color11 #fce94e
+color4 #3464a4
+color12 #719ecf
+color5 #74507a
+color13 #ad7ea7
+color6 #05989a
+color14 #34e2e2
+color7 #d3d7cf
+color15 #ededec
+selection_foreground #000000
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Tango_Light.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Tango_Light.conf
new file mode 100644
index 0000000..07f82bf
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Tango_Light.conf
@@ -0,0 +1,21 @@
+background #ffffff
+foreground #000000
+cursor #000000
+selection_background #b4d5ff
+color0 #000000
+color8 #545753
+color1 #cc0000
+color9 #ef2828
+color2 #4e9a05
+color10 #8ae234
+color3 #c4a000
+color11 #fce94e
+color4 #3464a4
+color12 #719ecf
+color5 #74507a
+color13 #ad7ea7
+color6 #05989a
+color14 #34e2e2
+color7 #d3d7cf
+color15 #ededec
+selection_foreground #ffffff
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Teerb.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Teerb.conf
new file mode 100644
index 0000000..9e9cab7
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Teerb.conf
@@ -0,0 +1,21 @@
+background #262626
+foreground #d0d0d0
+cursor #e3c8ae
+selection_background #4d4d4d
+color0 #1c1c1c
+color8 #1c1c1c
+color1 #d68686
+color9 #d68686
+color2 #aed686
+color10 #aed686
+color3 #d7af87
+color11 #e4c9af
+color4 #86aed6
+color12 #86aed6
+color5 #d6aed6
+color13 #d6aed6
+color6 #8adbb4
+color14 #b1e7dd
+color7 #d0d0d0
+color15 #efefef
+selection_foreground #262626
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Thayer_Bright.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Thayer_Bright.conf
new file mode 100644
index 0000000..b74bc60
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Thayer_Bright.conf
@@ -0,0 +1,21 @@
+background #1b1d1e
+foreground #f8f8f8
+cursor #fc971e
+selection_background #4d4d4d
+color0 #1b1d1e
+color8 #505354
+color1 #f92672
+color9 #ff5995
+color2 #4df740
+color10 #b6e354
+color3 #f3fd21
+color11 #feed6c
+color4 #2656d6
+color12 #3f78ff
+color5 #8c54fe
+color13 #9e6ffe
+color6 #37c8b4
+color14 #23ced4
+color7 #ccccc6
+color15 #f8f8f2
+selection_foreground #1b1d1e
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/The_Hulk.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/The_Hulk.conf
new file mode 100644
index 0000000..81bd962
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/The_Hulk.conf
@@ -0,0 +1,21 @@
+background #1b1d1e
+foreground #b4b4b4
+cursor #15b61a
+selection_background #4d4f4c
+color0 #1b1d1e
+color8 #505354
+color1 #259d1a
+color9 #8dff2a
+color2 #13ce2f
+color10 #48ff76
+color3 #62e456
+color11 #3afe15
+color4 #2424f4
+color12 #4f6a95
+color5 #641e73
+color13 #72579d
+color6 #378ca9
+color14 #3f85a5
+color7 #d8d8d0
+color15 #e5e5e0
+selection_foreground #1b1d1e
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Tomorrow.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Tomorrow.conf
new file mode 100644
index 0000000..23a8dfc
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Tomorrow.conf
@@ -0,0 +1,21 @@
+background #ffffff
+foreground #4c4c4c
+cursor #4c4c4c
+selection_background #d6d6d6
+color0 #000000
+color8 #000000
+color1 #c82828
+color9 #c82828
+color2 #708b00
+color10 #708b00
+color3 #e9b600
+color11 #e9b600
+color4 #4170ae
+color12 #4170ae
+color5 #8958a7
+color13 #8958a7
+color6 #3d999f
+color14 #3d999f
+color7 #fffefe
+color15 #fffefe
+selection_foreground #ffffff
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Tomorrow_Night.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Tomorrow_Night.conf
new file mode 100644
index 0000000..0bf3cf7
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Tomorrow_Night.conf
@@ -0,0 +1,21 @@
+background #1d1f21
+foreground #c4c8c5
+cursor #c4c8c5
+selection_background #363a41
+color0 #000000
+color8 #000000
+color1 #cc6666
+color9 #cc6666
+color2 #b5bd68
+color10 #b5bd68
+color3 #f0c574
+color11 #f0c574
+color4 #80a1bd
+color12 #80a1bd
+color5 #b294ba
+color13 #b294ba
+color6 #8abdb6
+color14 #8abdb6
+color7 #fffefe
+color15 #fffefe
+selection_foreground #1d1f21
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Tomorrow_Night_Blue.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Tomorrow_Night_Blue.conf
new file mode 100644
index 0000000..b32cbfd
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Tomorrow_Night_Blue.conf
@@ -0,0 +1,21 @@
+background #002450
+foreground #fffefe
+cursor #fffefe
+selection_background #003e8e
+color0 #000000
+color8 #000000
+color1 #ff9ca3
+color9 #ff9ca3
+color2 #d0f0a8
+color10 #d0f0a8
+color3 #ffedac
+color11 #ffedac
+color4 #badaff
+color12 #badaff
+color5 #ebbaff
+color13 #ebbaff
+color6 #99ffff
+color14 #99ffff
+color7 #fffefe
+color15 #fffefe
+selection_foreground #002450
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Tomorrow_Night_Bright.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Tomorrow_Night_Bright.conf
new file mode 100644
index 0000000..346f3dc
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Tomorrow_Night_Bright.conf
@@ -0,0 +1,21 @@
+background #000000
+foreground #e9e9e9
+cursor #e9e9e9
+selection_background #424242
+color0 #000000
+color8 #000000
+color1 #d44d53
+color9 #d44d53
+color2 #b9c949
+color10 #b9c949
+color3 #e6c446
+color11 #e6c446
+color4 #79a6da
+color12 #79a6da
+color5 #c396d7
+color13 #c396d7
+color6 #70c0b1
+color14 #70c0b1
+color7 #fffefe
+color15 #fffefe
+selection_foreground #000000
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Tomorrow_Night_Eighties.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Tomorrow_Night_Eighties.conf
new file mode 100644
index 0000000..404efc7
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Tomorrow_Night_Eighties.conf
@@ -0,0 +1,21 @@
+background #2c2c2c
+foreground #cccccc
+cursor #cccccc
+selection_background #505050
+color0 #000000
+color8 #000000
+color1 #f17779
+color9 #f17779
+color2 #99cc99
+color10 #99cc99
+color3 #ffcc66
+color11 #ffcc66
+color4 #6699cc
+color12 #6699cc
+color5 #cc99cc
+color13 #cc99cc
+color6 #66cccc
+color14 #66cccc
+color7 #fffefe
+color15 #fffefe
+selection_foreground #2c2c2c
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/ToyChest.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/ToyChest.conf
new file mode 100644
index 0000000..040cb8d
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/ToyChest.conf
@@ -0,0 +1,21 @@
+background #23364a
+foreground #30cf7b
+cursor #d4d4d4
+selection_background #5f207a
+color0 #2c3f57
+color8 #326889
+color1 #be2d26
+color9 #dd5943
+color2 #199171
+color10 #30cf7b
+color3 #da8e26
+color11 #e7d74b
+color4 #325d96
+color12 #33a5d9
+color5 #8a5ddb
+color13 #ad6bdc
+color6 #35a08f
+color14 #41c3ad
+color7 #23d082
+color15 #d4d4d4
+selection_foreground #23364a
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Treehouse.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Treehouse.conf
new file mode 100644
index 0000000..940751e
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Treehouse.conf
@@ -0,0 +1,21 @@
+background #191919
+foreground #776b53
+cursor #fac814
+selection_background #776b53
+color0 #321200
+color8 #423625
+color1 #b1270e
+color9 #ed5c20
+color2 #44a900
+color10 #55f237
+color3 #a9810b
+color11 #f1b731
+color4 #578499
+color12 #85cfec
+color5 #96363c
+color13 #e04b5a
+color6 #b2591d
+color14 #f07c14
+color7 #776b53
+color15 #ffc800
+selection_foreground #191919
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Twilight.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Twilight.conf
new file mode 100644
index 0000000..452a4d2
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Twilight.conf
@@ -0,0 +1,21 @@
+background #141414
+foreground #feffd3
+cursor #ffffff
+selection_background #303030
+color0 #141414
+color8 #262626
+color1 #c06c43
+color9 #dd7c4c
+color2 #afb979
+color10 #cbd88c
+color3 #c2a86c
+color11 #e1c47d
+color4 #444649
+color12 #5a5d61
+color5 #b4be7b
+color13 #d0db8e
+color6 #778284
+color14 #8a989a
+color7 #feffd3
+color15 #feffd3
+selection_foreground #141414
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Ubuntu.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Ubuntu.conf
new file mode 100644
index 0000000..96e9d09
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Ubuntu.conf
@@ -0,0 +1,21 @@
+background #300a24
+foreground #eeeeec
+cursor #bbbbbb
+selection_background #b4d5ff
+color0 #2e3436
+color8 #555753
+color1 #cc0000
+color9 #ef2929
+color2 #4e9a06
+color10 #8ae234
+color3 #c4a000
+color11 #fce94f
+color4 #3465a4
+color12 #729fcf
+color5 #75507b
+color13 #ad7fa8
+color6 #06989a
+color14 #34e2e2
+color7 #d3d7cf
+color15 #eeeeec
+selection_foreground #300a24
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Urple.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Urple.conf
new file mode 100644
index 0000000..a29dcad
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Urple.conf
@@ -0,0 +1,21 @@
+background #1b1b23
+foreground #86799a
+cursor #a062ea
+selection_background #a062ea
+color0 #000000
+color8 #5c3125
+color1 #af425b
+color9 #ff6387
+color2 #37a315
+color10 #28e51f
+color3 #ac5b41
+color11 #f08061
+color4 #554d9a
+color12 #8579ed
+color5 #6c3ba1
+color13 #a05dee
+color6 #808080
+color14 #eaeaea
+color7 #87799c
+color15 #bfa3ff
+selection_foreground #1b1b23
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Vaughn.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Vaughn.conf
new file mode 100644
index 0000000..26d1885
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Vaughn.conf
@@ -0,0 +1,21 @@
+background #25234e
+foreground #dcdccc
+cursor #ff5555
+selection_background #b5d5ff
+color0 #24234f
+color8 #709080
+color1 #705050
+color9 #dca3a3
+color2 #60b48a
+color10 #60b48a
+color3 #dfaf8f
+color11 #f0dfaf
+color4 #5454ff
+color12 #5454ff
+color5 #f08cc3
+color13 #ec93d3
+color6 #8cd0d3
+color14 #93e0e3
+color7 #709080
+color15 #ffffff
+selection_foreground #25234e
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/VibrantInk.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/VibrantInk.conf
new file mode 100644
index 0000000..5fbd281
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/VibrantInk.conf
@@ -0,0 +1,21 @@
+background #000000
+foreground #ffffff
+cursor #ffffff
+selection_background #b4d5ff
+color0 #868686
+color8 #545454
+color1 #ff6600
+color9 #ff0000
+color2 #ccff04
+color10 #00ff00
+color3 #ffcc00
+color11 #ffff00
+color4 #44b3cc
+color12 #0000ff
+color5 #9933cc
+color13 #ff00ff
+color6 #44b3cc
+color14 #00ffff
+color7 #f4f4f4
+color15 #e5e5e5
+selection_foreground #000000
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/WarmNeon.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/WarmNeon.conf
new file mode 100644
index 0000000..3256f5d
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/WarmNeon.conf
@@ -0,0 +1,21 @@
+background #3f3f3f
+foreground #afdab6
+cursor #2fff24
+selection_background #b0ad21
+color0 #000000
+color8 #fdfcfc
+color1 #e24345
+color9 #e86f71
+color2 #38b139
+color10 #9bc08f
+color3 #dae145
+color11 #ddd979
+color4 #4260c5
+color12 #7a90d5
+color5 #f81ffb
+color13 #f674b9
+color6 #29bad3
+color14 #5ed1e4
+color7 #d0b8a3
+color15 #d8c8bb
+selection_foreground #3f3f3f
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Wez.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Wez.conf
new file mode 100644
index 0000000..11706ab
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Wez.conf
@@ -0,0 +1,21 @@
+background #000000
+foreground #b3b3b3
+cursor #52ad70
+selection_background #4c52f8
+color0 #000000
+color8 #555555
+color1 #cc5555
+color9 #ff5555
+color2 #55cc55
+color10 #55ff55
+color3 #cdcd55
+color11 #ffff55
+color4 #5455cb
+color12 #5555ff
+color5 #cc55cc
+color13 #ff55ff
+color6 #7acaca
+color14 #55ffff
+color7 #cccccc
+color15 #ffffff
+selection_foreground #000000
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/WildCherry.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/WildCherry.conf
new file mode 100644
index 0000000..a4bfa47
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/WildCherry.conf
@@ -0,0 +1,21 @@
+background #1f1626
+foreground #d9faff
+cursor #dd00ff
+selection_background #002731
+color0 #000506
+color8 #009cc9
+color1 #d94085
+color9 #da6bab
+color2 #2ab250
+color10 #f4dba5
+color3 #ffd06e
+color11 #eac066
+color4 #873bdb
+color12 #2f8bb9
+color5 #ececec
+color13 #ae636b
+color6 #c1b8b6
+color14 #ff919d
+color7 #fff8dd
+color15 #e4838d
+selection_foreground #1f1626
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Wombat.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Wombat.conf
new file mode 100644
index 0000000..d4616fc
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Wombat.conf
@@ -0,0 +1,21 @@
+background #171717
+foreground #ded9ce
+cursor #bbbbbb
+selection_background #453a39
+color0 #000000
+color8 #313131
+color1 #ff605a
+color9 #f58b7f
+color2 #b1e869
+color10 #dcf88f
+color3 #ead89c
+color11 #eee5b2
+color4 #5da9f6
+color12 #a5c7ff
+color5 #e86aff
+color13 #ddaaff
+color6 #82fff6
+color14 #b6fff9
+color7 #ded9ce
+color15 #fefffe
+selection_foreground #171717
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Wryan.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Wryan.conf
new file mode 100644
index 0000000..73d758d
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Wryan.conf
@@ -0,0 +1,21 @@
+background #101010
+foreground #999993
+cursor #9d9eca
+selection_background #4d4d4d
+color0 #333333
+color8 #3d3d3d
+color1 #8c4665
+color9 #bf4d80
+color2 #287373
+color10 #53a6a6
+color3 #7c7c99
+color11 #9e9ecb
+color4 #395573
+color12 #477ab3
+color5 #5e468c
+color13 #7e62b3
+color6 #31658c
+color14 #6096bf
+color7 #899ca1
+color15 #c0c0c0
+selection_foreground #101010
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Zenburn.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Zenburn.conf
new file mode 100644
index 0000000..032b99b
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/Zenburn.conf
@@ -0,0 +1,25 @@
+# Zenburn by jnurmine, https://github.com/jnurmine/Zenburn
+# This work is licensed under the terms of the GNU GPL license.
+# For a copy, see http://www.gnu.org/licenses/gpl.html.
+
+background #3f3f3f
+foreground #dcdccc
+cursor #73635a
+selection_background #21322f
+color0 #4d4d4d
+color8 #709080
+color1 #705050
+color9 #dca3a3
+color2 #60b48a
+color10 #c3bf9f
+color3 #f0deae
+color11 #dfcf9f
+color4 #506070
+color12 #94bff3
+color5 #dc8cc3
+color13 #ec93d3
+color6 #8cd0d3
+color14 #93e0e3
+color7 #dcdccc
+color15 #ffffff
+selection_foreground #3f3f3f
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/ayu.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/ayu.conf
new file mode 100644
index 0000000..8030263
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/ayu.conf
@@ -0,0 +1,21 @@
+background #0e1419
+foreground #e5e1cf
+cursor #f19618
+selection_background #243340
+color0 #000000
+color8 #323232
+color1 #ff3333
+color9 #ff6565
+color2 #b8cc52
+color10 #e9fe83
+color3 #e6c446
+color11 #fff778
+color4 #36a3d9
+color12 #68d4ff
+color5 #f07078
+color13 #ffa3aa
+color6 #95e5cb
+color14 #c7fffc
+color7 #ffffff
+color15 #ffffff
+selection_foreground #0e1419
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/ayu_light.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/ayu_light.conf
new file mode 100644
index 0000000..35c532c
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/ayu_light.conf
@@ -0,0 +1,21 @@
+background #fafafa
+foreground #5b6673
+cursor #ff6900
+selection_background #f0ede4
+color0 #000000
+color8 #323232
+color1 #ff3333
+color9 #ff6565
+color2 #86b200
+color10 #b8e532
+color3 #f19618
+color11 #ffc849
+color4 #41a6d9
+color12 #73d7ff
+color5 #f07078
+color13 #ffa3aa
+color6 #4cbe99
+color14 #7ff0cb
+color7 #ffffff
+color15 #ffffff
+selection_foreground #fafafa
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/ayu_mirage.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/ayu_mirage.conf
new file mode 100644
index 0000000..19d2e40
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/ayu_mirage.conf
@@ -0,0 +1,21 @@
+background #212733
+foreground #d9d7ce
+cursor #ffcc66
+selection_background #343f4c
+color0 #191e2a
+color8 #686868
+color1 #ed8274
+color9 #f28779
+color2 #a6cc70
+color10 #bae67e
+color3 #fad07b
+color11 #ffd580
+color4 #6dcbfa
+color12 #73d0ff
+color5 #cfbafa
+color13 #d4bfff
+color6 #90e1c6
+color14 #95e6cb
+color7 #c7c7c7
+color15 #ffffff
+selection_foreground #212733
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/gruvbox_dark.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/gruvbox_dark.conf
new file mode 100644
index 0000000..369da8d
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/gruvbox_dark.conf
@@ -0,0 +1,49 @@
+# gruvbox dark by morhetz, https://github.com/morhetz/gruvbox
+# This work is licensed under the terms of the MIT license.
+# For a copy, see https://opensource.org/licenses/MIT.
+
+background #282828
+foreground #ebdbb2
+
+cursor #928374
+
+selection_foreground #928374
+selection_background #3c3836
+
+color0 #282828
+color8 #928374
+
+# red
+color1 #cc241d
+# light red
+color9 #fb4934
+
+# green
+color2 #98971a
+# light green
+color10 #b8bb26
+
+# yellow
+color3 #d79921
+# light yellow
+color11 #fabd2d
+
+# blue
+color4 #458588
+# light blue
+color12 #83a598
+
+# magenta
+color5 #b16286
+# light magenta
+color13 #d3869b
+
+# cyan
+color6 #689d6a
+# lighy cyan
+color14 #8ec07c
+
+# light gray
+color7 #a89984
+# dark gray
+color15 #928374
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/gruvbox_light.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/gruvbox_light.conf
new file mode 100644
index 0000000..6d8b89b
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/gruvbox_light.conf
@@ -0,0 +1,49 @@
+# gruvbox light by morhetz, https://github.com/morhetz/gruvbox
+# This work is licensed under the terms of the MIT license.
+# For a copy, see https://opensource.org/licenses/MIT.
+
+background #fbf1c7
+foreground #3c3836
+
+cursor #928374
+
+selection_foreground #3c3836
+selection_background #928374
+
+color0 #fbf1c7
+color8 #282828
+
+# red
+color1 #cc241d
+# light red
+color9 #9d0006
+
+# green
+color2 #98971a
+# light green
+color10 #79740e
+
+# yellow
+color3 #d79921
+# light yellow
+color11 #b57614
+
+# blue
+color4 #458588
+# light blue
+color12 #076678
+
+# magenta
+color5 #b16286
+# light magenta
+color13 #8f3f71
+
+# cyan
+color6 #689d6a
+# lighy cyan
+color14 #427b58
+
+# light gray
+color7 #7c6f64
+# dark gray
+color15 #928374
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/idleToes.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/idleToes.conf
new file mode 100644
index 0000000..941d4b2
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/idleToes.conf
@@ -0,0 +1,21 @@
+background #323232
+foreground #ffffff
+cursor #d6d6d6
+selection_background #5b5b5b
+color0 #323232
+color8 #535353
+color1 #d25252
+color9 #f07070
+color2 #7fe173
+color10 #9dff90
+color3 #ffc66d
+color11 #ffe48b
+color4 #4098ff
+color12 #5eb7f7
+color5 #f57fff
+color13 #ff9dff
+color6 #bed6ff
+color14 #dcf4ff
+color7 #eeeeec
+color15 #ffffff
+selection_foreground #323232
diff --git a/roles/dotfiles/files/.config/kitty/kitty-themes/themes/snazzy.conf b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/snazzy.conf
new file mode 100644
index 0000000..2ed5ff5
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty-themes/themes/snazzy.conf
@@ -0,0 +1,46 @@
+# snazzy by Connor Holyday (holyday.me)
+# This work is licensed under the terms of the MIT license.
+# For a copy, see https://opensource.org/licenses/MIT.
+
+# Snazzy Colorscheme for Kitty
+# Based on https://github.com/sindresorhus/hyper-snazzy
+
+foreground #eff0eb
+background #282a36
+selection_foreground #000000
+selection_background #FFFACD
+url_color #0087BD
+cursor #97979B
+cursor_text_color #282A36
+
+# black
+color0 #282a36
+color8 #686868
+
+# red
+color1 #FF5C57
+color9 #FF5C57
+
+# green
+color2 #5AF78E
+color10 #5AF78E
+
+# yellow
+color3 #F3F99D
+color11 #F3F99D
+
+# blue
+color4 #57C7FF
+color12 #57C7FF
+
+# magenta
+color5 #FF6AC1
+color13 #FF6AC1
+
+# cyan
+color6 #9AEDFE
+color14 #9AEDFE
+
+# white
+color7 #F1F1F0
+color15 #EFF0EB
diff --git a/roles/dotfiles/files/.config/kitty/kitty.conf b/roles/dotfiles/files/.config/kitty/kitty.conf
new file mode 100644
index 0000000..6679074
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty.conf
@@ -0,0 +1,2594 @@
+# vim:fileencoding=utf-8:foldmethod=marker
+
+include ./theme.conf
+
+#: Fonts {{{
+
+#: kitty has very powerful font management. You can configure
+#: individual font faces and even specify special fonts for particular
+#: characters.
+
+font_family JetBrains Mono
+bold_font auto
+italic_font auto
+bold_italic_font auto
+
+#: You can specify different fonts for the bold/italic/bold-italic
+#: variants. The easiest way to select fonts is to run the `kitten
+#: choose-fonts` command which will present a nice UI for you to
+#: select the fonts you want with previews and support for selecting
+#: variable fonts and font features. If you want to learn to select
+#: fonts manually, read the font specification syntax
+#: .
+
+# font_size 11.0
+
+#: Font size (in pts).
+
+# force_ltr no
+
+#: kitty does not support BIDI (bidirectional text), however, for RTL
+#: scripts, words are automatically displayed in RTL. That is to say,
+#: in an RTL script, the words "HELLO WORLD" display in kitty as
+#: "WORLD HELLO", and if you try to select a substring of an RTL-
+#: shaped string, you will get the character that would be there had
+#: the string been LTR. For example, assuming the Hebrew word ירושלים,
+#: selecting the character that on the screen appears to be ם actually
+#: writes into the selection buffer the character י. kitty's default
+#: behavior is useful in conjunction with a filter to reverse the word
+#: order, however, if you wish to manipulate RTL glyphs, it can be
+#: very challenging to work with, so this option is provided to turn
+#: it off. Furthermore, this option can be used with the command line
+#: program GNU FriBidi
+#: to get BIDI support, because it will force kitty to always treat
+#: the text as LTR, which FriBidi expects for terminals.
+
+# symbol_map
+
+#: E.g. symbol_map U+E0A0-U+E0A3,U+E0C0-U+E0C7 PowerlineSymbols
+
+#: Map the specified Unicode codepoints to a particular font. Useful
+#: if you need special rendering for some symbols, such as for
+#: Powerline. Avoids the need for patched fonts. Each Unicode code
+#: point is specified in the form `U+`. You
+#: can specify multiple code points, separated by commas and ranges
+#: separated by hyphens. This option can be specified multiple times.
+#: The syntax is::
+
+#: symbol_map codepoints Font Family Name
+
+# narrow_symbols
+
+#: E.g. narrow_symbols U+E0A0-U+E0A3,U+E0C0-U+E0C7 1
+
+#: Usually, for Private Use Unicode characters and some symbol/dingbat
+#: characters, if the character is followed by one or more spaces,
+#: kitty will use those extra cells to render the character larger, if
+#: the character in the font has a wide aspect ratio. Using this
+#: option you can force kitty to restrict the specified code points to
+#: render in the specified number of cells (defaulting to one cell).
+#: This option can be specified multiple times. The syntax is::
+
+#: narrow_symbols codepoints [optionally the number of cells]
+
+disable_ligatures cursor
+
+#: Choose how you want to handle multi-character ligatures. The
+#: default is to always render them. You can tell kitty to not render
+#: them when the cursor is over them by using cursor to make editing
+#: easier, or have kitty never render them at all by using always, if
+#: you don't like them. The ligature strategy can be set per-window
+#: either using the kitty remote control facility or by defining
+#: shortcuts for it in kitty.conf, for example::
+
+#: map alt+1 disable_ligatures_in active always
+#: map alt+2 disable_ligatures_in all never
+#: map alt+3 disable_ligatures_in tab cursor
+
+#: Note that this refers to programming ligatures, typically
+#: implemented using the calt OpenType feature. For disabling general
+#: ligatures, use the font_features option.
+
+# font_features
+
+#: E.g. font_features none
+
+#: Choose exactly which OpenType features to enable or disable. Note
+#: that for the main fonts, features can be specified when selecting
+#: the font using the choose-fonts kitten. This setting is useful for
+#: fallback fonts.
+
+#: Some fonts might have features worthwhile in a terminal. For
+#: example, Fira Code includes a discretionary feature, zero, which in
+#: that font changes the appearance of the zero (0), to make it more
+#: easily distinguishable from Ø. Fira Code also includes other
+#: discretionary features known as Stylistic Sets which have the tags
+#: ss01 through ss20.
+
+#: For the exact syntax to use for individual features, see the
+#: HarfBuzz documentation .
+
+#: Note that this code is indexed by PostScript name, and not the font
+#: family. This allows you to define very precise feature settings;
+#: e.g. you can disable a feature in the italic font but not in the
+#: regular font.
+
+#: On Linux, font features are first read from the FontConfig database
+#: and then this option is applied, so they can be configured in a
+#: single, central place.
+
+#: To get the PostScript name for a font, use the `fc-scan file.ttf`
+#: command on Linux or the `Font Book tool on macOS
+#: `__.
+
+#: Enable alternate zero and oldstyle numerals::
+
+#: font_features FiraCode-Retina +zero +onum
+
+#: Enable only alternate zero in the bold font::
+
+#: font_features FiraCode-Bold +zero
+
+#: Disable the normal ligatures, but keep the calt feature which (in
+#: this font) breaks up monotony::
+
+#: font_features TT2020StyleB-Regular -liga +calt
+
+#: In conjunction with force_ltr, you may want to disable Arabic
+#: shaping entirely, and only look at their isolated forms if they
+#: show up in a document. You can do this with e.g.::
+
+#: font_features UnifontMedium +isol -medi -fina -init
+
+# modify_font
+
+#: Modify font characteristics such as the position or thickness of
+#: the underline and strikethrough. The modifications can have the
+#: suffix px for pixels or % for percentage of original value. No
+#: suffix means use pts. For example::
+
+#: modify_font underline_position -2
+#: modify_font underline_thickness 150%
+#: modify_font strikethrough_position 2px
+
+#: Additionally, you can modify the size of the cell in which each
+#: font glyph is rendered and the baseline at which the glyph is
+#: placed in the cell. For example::
+
+#: modify_font cell_width 80%
+#: modify_font cell_height -2px
+#: modify_font baseline 3
+
+#: Note that modifying the baseline will automatically adjust the
+#: underline and strikethrough positions by the same amount.
+#: Increasing the baseline raises glyphs inside the cell and
+#: decreasing it lowers them. Decreasing the cell size might cause
+#: rendering artifacts, so use with care.
+
+# box_drawing_scale 0.001, 1, 1.5, 2
+
+#: The sizes of the lines used for the box drawing Unicode characters.
+#: These values are in pts. They will be scaled by the monitor DPI to
+#: arrive at a pixel value. There must be four values corresponding to
+#: thin, normal, thick, and very thick lines.
+
+# undercurl_style thin-sparse
+
+#: The style with which undercurls are rendered. This option takes the
+#: form (thin|thick)-(sparse|dense). Thin and thick control the
+#: thickness of the undercurl. Sparse and dense control how often the
+#: curl oscillates. With sparse the curl will peak once per character,
+#: with dense twice.
+
+# text_composition_strategy platform
+
+#: Control how kitty composites text glyphs onto the background color.
+#: The default value of platform tries for text rendering as close to
+#: "native" for the platform kitty is running on as possible.
+
+#: A value of legacy uses the old (pre kitty 0.28) strategy for how
+#: glyphs are composited. This will make dark text on light
+#: backgrounds look thicker and light text on dark backgrounds
+#: thinner. It might also make some text appear like the strokes are
+#: uneven.
+
+#: You can fine tune the actual contrast curve used for glyph
+#: composition by specifying up to two space-separated numbers for
+#: this setting.
+
+#: The first number is the gamma adjustment, which controls the
+#: thickness of dark text on light backgrounds. Increasing the value
+#: will make text appear thicker. The default value for this is 1.0 on
+#: Linux and 1.7 on macOS. Valid values are 0.01 and above. The result
+#: is scaled based on the luminance difference between the background
+#: and the foreground. Dark text on light backgrounds receives the
+#: full impact of the curve while light text on dark backgrounds is
+#: affected very little.
+
+#: The second number is an additional multiplicative contrast. It is
+#: percentage ranging from 0 to 100. The default value is 0 on Linux
+#: and 30 on macOS.
+
+#: If you wish to achieve similar looking thickness in light and dark
+#: themes, a good way to experiment is start by setting the value to
+#: 1.0 0 and use a dark theme. Then adjust the second parameter until
+#: it looks good. Then switch to a light theme and adjust the first
+#: parameter until the perceived thickness matches the dark theme.
+
+# text_fg_override_threshold 0
+
+#: The minimum accepted difference in luminance between the foreground
+#: and background color, below which kitty will override the
+#: foreground color. It is percentage ranging from 0 to 100. If the
+#: difference in luminance of the foreground and background is below
+#: this threshold, the foreground color will be set to white if the
+#: background is dark or black if the background is light. The default
+#: value is 0, which means no overriding is performed. Useful when
+#: working with applications that use colors that do not contrast well
+#: with your preferred color scheme.
+
+#: WARNING: Some programs use characters (such as block characters)
+#: for graphics display and may expect to be able to set the
+#: foreground and background to the same color (or similar colors).
+#: If you see unexpected stripes, dots, lines, incorrect color, no
+#: color where you expect color, or any kind of graphic display
+#: problem try setting text_fg_override_threshold to 0 to see if this
+#: is the cause of the problem.
+
+#: }}}
+
+#: Text cursor customization {{{
+
+# cursor #cccccc
+
+#: Default text cursor color. If set to the special value none the
+#: cursor will be rendered with a "reverse video" effect. Its color
+#: will be the color of the text in the cell it is over and the text
+#: will be rendered with the background color of the cell. Note that
+#: if the program running in the terminal sets a cursor color, this
+#: takes precedence. Also, the cursor colors are modified if the cell
+#: background and foreground colors have very low contrast. Note that
+#: some themes set this value, so if you want to override it, place
+#: your value after the lines where the theme file is included.
+
+# cursor_text_color #111111
+
+#: The color of text under the cursor. If you want it rendered with
+#: the background color of the cell underneath instead, use the
+#: special keyword: `background`. Note that if cursor is set to none
+#: then this option is ignored. Note that some themes set this value,
+#: so if you want to override it, place your value after the lines
+#: where the theme file is included.
+
+cursor_shape beam
+
+#: The cursor shape can be one of block, beam, underline. Note that
+#: when reloading the config this will be changed only if the cursor
+#: shape has not been set by the program running in the terminal. This
+#: sets the default cursor shape, applications running in the terminal
+#: can override it. In particular, shell integration
+#: in kitty sets
+#: the cursor shape to beam at shell prompts. You can avoid this by
+#: setting shell_integration to no-cursor.
+
+# cursor_shape_unfocused hollow
+
+#: Defines the text cursor shape when the OS window is not focused.
+#: The unfocused cursor shape can be one of block, beam, underline,
+#: hollow and unchanged (leave the cursor shape as it is).
+
+# cursor_beam_thickness 1.5
+
+#: The thickness of the beam cursor (in pts).
+
+# cursor_underline_thickness 2.0
+
+#: The thickness of the underline cursor (in pts).
+
+# cursor_blink_interval -1
+
+#: The interval to blink the cursor (in seconds). Set to zero to
+#: disable blinking. Negative values mean use system default. Note
+#: that the minimum interval will be limited to repaint_delay. You can
+#: also animate the cursor blink by specifying an easing function. For
+#: example, setting this to option to 0.5 ease-in-out will cause the
+#: cursor blink to be animated over a second, in the first half of the
+#: second it will go from opaque to transparent and then back again
+#: over the next half. You can specify different easing functions for
+#: the two halves, for example: -1 linear ease-out. kitty supports all
+#: the CSS easing functions . Note that turning on animations
+#: uses extra power as it means the screen is redrawn multiple times
+#: per blink interval. See also, cursor_stop_blinking_after.
+
+# cursor_stop_blinking_after 15.0
+
+#: Stop blinking cursor after the specified number of seconds of
+#: keyboard inactivity. Set to zero to never stop blinking.
+
+#: }}}
+
+#: Scrollback {{{
+
+# scrollback_lines 2000
+
+#: Number of lines of history to keep in memory for scrolling back.
+#: Memory is allocated on demand. Negative numbers are (effectively)
+#: infinite scrollback. Note that using very large scrollback is not
+#: recommended as it can slow down performance of the terminal and
+#: also use large amounts of RAM. Instead, consider using
+#: scrollback_pager_history_size. Note that on config reload if this
+#: is changed it will only affect newly created windows, not existing
+#: ones.
+
+# scrollback_indicator_opacity 1.0
+
+#: The opacity of the scrollback indicator which is a small colored
+#: rectangle that moves along the right hand side of the window as you
+#: scroll, indicating what fraction you have scrolled. The default is
+#: one which means fully opaque, aka visible. Set to a value between
+#: zero and one to make the indicator less visible.
+
+# scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER
+
+#: Program with which to view scrollback in a new window. The
+#: scrollback buffer is passed as STDIN to this program. If you change
+#: it, make sure the program you use can handle ANSI escape sequences
+#: for colors and text formatting. INPUT_LINE_NUMBER in the command
+#: line above will be replaced by an integer representing which line
+#: should be at the top of the screen. Similarly CURSOR_LINE and
+#: CURSOR_COLUMN will be replaced by the current cursor position or
+#: set to 0 if there is no cursor, for example, when showing the last
+#: command output.
+
+# scrollback_pager_history_size 0
+
+#: Separate scrollback history size (in MB), used only for browsing
+#: the scrollback buffer with pager. This separate buffer is not
+#: available for interactive scrolling but will be piped to the pager
+#: program when viewing scrollback buffer in a separate window. The
+#: current implementation stores the data in UTF-8, so approximately
+#: 10000 lines per megabyte at 100 chars per line, for pure ASCII,
+#: unformatted text. A value of zero or less disables this feature.
+#: The maximum allowed size is 4GB. Note that on config reload if this
+#: is changed it will only affect newly created windows, not existing
+#: ones.
+
+# scrollback_fill_enlarged_window no
+
+#: Fill new space with lines from the scrollback buffer after
+#: enlarging a window.
+
+# wheel_scroll_multiplier 5.0
+
+#: Multiplier for the number of lines scrolled by the mouse wheel.
+#: Note that this is only used for low precision scrolling devices,
+#: not for high precision scrolling devices on platforms such as macOS
+#: and Wayland. Use negative numbers to change scroll direction. See
+#: also wheel_scroll_min_lines.
+
+# wheel_scroll_min_lines 1
+
+#: The minimum number of lines scrolled by the mouse wheel. The scroll
+#: multiplier wheel_scroll_multiplier only takes effect after it
+#: reaches this number. Note that this is only used for low precision
+#: scrolling devices like wheel mice that scroll by very small amounts
+#: when using the wheel. With a negative number, the minimum number of
+#: lines will always be added.
+
+# touch_scroll_multiplier 1.0
+
+#: Multiplier for the number of lines scrolled by a touchpad. Note
+#: that this is only used for high precision scrolling devices on
+#: platforms such as macOS and Wayland. Use negative numbers to change
+#: scroll direction.
+
+#: }}}
+
+#: Mouse {{{
+
+# mouse_hide_wait 3.0
+
+#: Hide mouse cursor after the specified number of seconds of the
+#: mouse not being used. Set to zero to disable mouse cursor hiding.
+#: Set to a negative value to hide the mouse cursor immediately when
+#: typing text. Disabled by default on macOS as getting it to work
+#: robustly with the ever-changing sea of bugs that is Cocoa is too
+#: much effort.
+
+# url_color #0087bd
+# url_style curly
+
+#: The color and style for highlighting URLs on mouse-over. url_style
+#: can be one of: none, straight, double, curly, dotted, dashed.
+
+# open_url_with default
+
+#: The program to open clicked URLs. The special value default will
+#: first look for any URL handlers defined via the open_actions
+#: facility and if non
+#: are found, it will use the Operating System's default URL handler
+#: (open on macOS and xdg-open on Linux).
+
+# url_prefixes file ftp ftps gemini git gopher http https irc ircs kitty mailto news sftp ssh
+
+#: The set of URL prefixes to look for when detecting a URL under the
+#: mouse cursor.
+
+# detect_urls yes
+
+#: Detect URLs under the mouse. Detected URLs are highlighted with an
+#: underline and the mouse cursor becomes a hand over them. Even if
+#: this option is disabled, URLs are still clickable. See also the
+#: underline_hyperlinks option to control how hyperlinks (as opposed
+#: to plain text URLs) are displayed.
+
+# url_excluded_characters
+
+#: Additional characters to be disallowed from URLs, when detecting
+#: URLs under the mouse cursor. By default, all characters that are
+#: legal in URLs are allowed. Additionally, newlines are allowed (but
+#: stripped). This is to accommodate programs such as mutt that add
+#: hard line breaks even for continued lines. \n can be added to this
+#: option to disable this behavior. Special characters can be
+#: specified using backslash escapes, to specify a backslash use a
+#: double backslash.
+
+# show_hyperlink_targets no
+
+#: When the mouse hovers over a terminal hyperlink, show the actual
+#: URL that will be activated when the hyperlink is clicked.
+
+# underline_hyperlinks hover
+
+#: Control how hyperlinks are underlined. They can either be
+#: underlined on mouse hover, always (i.e. permanently underlined) or
+#: never which means that kitty will not apply any underline styling
+#: to hyperlinks. Uses the url_style and url_color settings for the
+#: underline style. Note that reloading the config and changing this
+#: value to/from always will only affect text subsequently received by
+#: kitty.
+
+# copy_on_select no
+
+#: Copy to clipboard or a private buffer on select. With this set to
+#: clipboard, selecting text with the mouse will cause the text to be
+#: copied to clipboard. Useful on platforms such as macOS that do not
+#: have the concept of primary selection. You can instead specify a
+#: name such as a1 to copy to a private kitty buffer. Map a shortcut
+#: with the paste_from_buffer action to paste from this private
+#: buffer. For example::
+
+#: copy_on_select a1
+#: map shift+cmd+v paste_from_buffer a1
+
+#: Note that copying to the clipboard is a security risk, as all
+#: programs, including websites open in your browser can read the
+#: contents of the system clipboard.
+
+# paste_actions quote-urls-at-prompt,confirm
+
+#: A comma separated list of actions to take when pasting text into
+#: the terminal. The supported paste actions are:
+
+#: quote-urls-at-prompt:
+#: If the text being pasted is a URL and the cursor is at a shell prompt,
+#: automatically quote the URL (needs shell_integration).
+#: replace-dangerous-control-codes
+#: Replace dangerous control codes from pasted text, without confirmation.
+#: replace-newline
+#: Replace the newline character from pasted text, without confirmation.
+#: confirm:
+#: Confirm the paste if the text to be pasted contains any terminal control codes
+#: as this can be dangerous, leading to code execution if the shell/program running
+#: in the terminal does not properly handle these.
+#: confirm-if-large
+#: Confirm the paste if it is very large (larger than 16KB) as pasting
+#: large amounts of text into shells can be very slow.
+#: filter:
+#: Run the filter_paste() function from the file paste-actions.py in
+#: the kitty config directory on the pasted text. The text returned by the
+#: function will be actually pasted.
+#: no-op:
+#: Has no effect.
+
+# strip_trailing_spaces never
+
+#: Remove spaces at the end of lines when copying to clipboard. A
+#: value of smart will do it when using normal selections, but not
+#: rectangle selections. A value of always will always do it.
+
+# select_by_word_characters @-./_~?&=%+#
+
+src#: Characters considered part of a word when double clicking. In
+#: addition to these characters any character that is marked as an
+#: alphanumeric character in the Unicode database will be matched.
+
+# select_by_word_characters_forward
+
+#: Characters considered part of a word when extending the selection
+#: forward on double clicking. In addition to these characters any
+#: character that is marked as an alphanumeric character in the
+#: Unicode database will be matched.
+
+#: If empty (default) select_by_word_characters will be used for both
+#: directions.
+
+# click_interval -1.0
+
+#: The interval between successive clicks to detect double/triple
+#: clicks (in seconds). Negative numbers will use the system default
+#: instead, if available, or fallback to 0.5.
+
+# focus_follows_mouse no
+
+#: Set the active window to the window under the mouse when moving the
+#: mouse around. On macOS, this will also cause the OS Window under
+#: the mouse to be focused automatically when the mouse enters it.
+
+# pointer_shape_when_grabbed arrow
+
+#: The shape of the mouse pointer when the program running in the
+#: terminal grabs the mouse.
+
+# default_pointer_shape beam
+
+#: The default shape of the mouse pointer.
+
+# pointer_shape_when_dragging beam
+
+#: The default shape of the mouse pointer when dragging across text.
+
+#: Mouse actions {{{
+
+#: Mouse buttons can be mapped to perform arbitrary actions. The
+#: syntax is:
+
+#: .. code-block:: none
+
+#: mouse_map button-name event-type modes action
+
+#: Where button-name is one of left, middle, right, b1 ... b8 with
+#: added keyboard modifiers. For example: ctrl+shift+left refers to
+#: holding the Ctrl+Shift keys while clicking with the left mouse
+#: button. The value b1 ... b8 can be used to refer to up to eight
+#: buttons on a mouse.
+
+#: event-type is one of press, release, doublepress, triplepress,
+#: click, doubleclick. modes indicates whether the action is performed
+#: when the mouse is grabbed by the program running in the terminal,
+#: or not. The values are grabbed or ungrabbed or a comma separated
+#: combination of them. grabbed refers to when the program running in
+#: the terminal has requested mouse events. Note that the click and
+#: double click events have a delay of click_interval to disambiguate
+#: from double and triple presses.
+
+#: You can run kitty with the kitty --debug-input command line option
+#: to see mouse events. See the builtin actions below to get a sense
+#: of what is possible.
+
+#: If you want to unmap a button, map it to nothing. For example, to
+#: disable opening of URLs with a plain click::
+
+#: mouse_map left click ungrabbed
+
+#: See all the mappable actions including mouse actions here
+#: .
+
+#: .. note::
+#: Once a selection is started, releasing the button that started it will
+#: automatically end it and no release event will be dispatched.
+
+# clear_all_mouse_actions no
+
+#: Remove all mouse action definitions up to this point. Useful, for
+#: instance, to remove the default mouse actions.
+
+#: Click the link under the mouse or move the cursor
+
+# mouse_map left click ungrabbed mouse_handle_click selection link prompt
+
+#:: First check for a selection and if one exists do nothing. Then
+#:: check for a link under the mouse cursor and if one exists, click
+#:: it. Finally check if the click happened at the current shell
+#:: prompt and if so, move the cursor to the click location. Note
+#:: that this requires shell integration
+#:: to work.
+
+#: Click the link under the mouse or move the cursor even when grabbed
+
+# mouse_map shift+left click grabbed,ungrabbed mouse_handle_click selection link prompt
+
+#:: Same as above, except that the action is performed even when the
+#:: mouse is grabbed by the program running in the terminal.
+
+#: Click the link under the mouse cursor
+
+# mouse_map ctrl+shift+left release grabbed,ungrabbed mouse_handle_click link
+
+#:: Variant with Ctrl+Shift is present because the simple click based
+#:: version has an unavoidable delay of click_interval, to
+#:: disambiguate clicks from double clicks.
+
+#: Discard press event for link click
+
+# mouse_map ctrl+shift+left press grabbed discard_event
+
+#:: Prevent this press event from being sent to the program that has
+#:: grabbed the mouse, as the corresponding release event is used to
+#:: open a URL.
+
+#: Paste from the primary selection
+
+# mouse_map middle release ungrabbed paste_from_selection
+
+#: Start selecting text
+
+# mouse_map left press ungrabbed mouse_selection normal
+
+#: Start selecting text in a rectangle
+
+# mouse_map ctrl+alt+left press ungrabbed mouse_selection rectangle
+
+#: Select a word
+
+# mouse_map left doublepress ungrabbed mouse_selection word
+
+#: Select a line
+
+# mouse_map left triplepress ungrabbed mouse_selection line
+
+#: Select line from point
+
+# mouse_map ctrl+alt+left triplepress ungrabbed mouse_selection line_from_point
+
+#:: Select from the clicked point to the end of the line. If you
+#:: would like to select the word at the point and then extend to the
+#:: rest of the line, change `line_from_point` to
+#:: `word_and_line_from_point`.
+
+#: Extend the current selection
+
+# mouse_map right press ungrabbed mouse_selection extend
+
+#:: If you want only the end of the selection to be moved instead of
+#:: the nearest boundary, use move-end instead of extend.
+
+#: Paste from the primary selection even when grabbed
+
+# mouse_map shift+middle release ungrabbed,grabbed paste_selection
+# mouse_map shift+middle press grabbed discard_event
+
+#: Start selecting text even when grabbed
+
+# mouse_map shift+left press ungrabbed,grabbed mouse_selection normal
+
+#: Start selecting text in a rectangle even when grabbed
+
+# mouse_map ctrl+shift+alt+left press ungrabbed,grabbed mouse_selection rectangle
+
+#: Select a word even when grabbed
+
+# mouse_map shift+left doublepress ungrabbed,grabbed mouse_selection word
+
+#: Select a line even when grabbed
+
+# mouse_map shift+left triplepress ungrabbed,grabbed mouse_selection line
+
+#: Select line from point even when grabbed
+
+# mouse_map ctrl+shift+alt+left triplepress ungrabbed,grabbed mouse_selection line_from_point
+
+#:: Select from the clicked point to the end of the line even when
+#:: grabbed. If you would like to select the word at the point and
+#:: then extend to the rest of the line, change `line_from_point` to
+#:: `word_and_line_from_point`.
+
+#: Extend the current selection even when grabbed
+
+# mouse_map shift+right press ungrabbed,grabbed mouse_selection extend
+
+#: Show clicked command output in pager
+
+# mouse_map ctrl+shift+right press ungrabbed mouse_show_command_output
+
+#:: Requires shell integration
+#:: to work.
+
+#: }}}
+
+#: }}}
+
+#: Performance tuning {{{
+
+# repaint_delay 10
+
+#: Delay between screen updates (in milliseconds). Decreasing it,
+#: increases frames-per-second (FPS) at the cost of more CPU usage.
+#: The default value yields ~100 FPS which is more than sufficient for
+#: most uses. Note that to actually achieve 100 FPS, you have to
+#: either set sync_to_monitor to no or use a monitor with a high
+#: refresh rate. Also, to minimize latency when there is pending input
+#: to be processed, this option is ignored.
+
+# input_delay 3
+
+#: Delay before input from the program running in the terminal is
+#: processed (in milliseconds). Note that decreasing it will increase
+#: responsiveness, but also increase CPU usage and might cause flicker
+#: in full screen programs that redraw the entire screen on each loop,
+#: because kitty is so fast that partial screen updates will be drawn.
+#: This setting is ignored when the input buffer is almost full.
+
+# sync_to_monitor yes
+
+#: Sync screen updates to the refresh rate of the monitor. This
+#: prevents screen tearing
+#: when scrolling.
+#: However, it limits the rendering speed to the refresh rate of your
+#: monitor. With a very high speed mouse/high keyboard repeat rate,
+#: you may notice some slight input latency. If so, set this to no.
+
+#: }}}
+
+#: Terminal bell {{{
+
+enable_audio_bell no
+
+#: The audio bell. Useful to disable it in environments that require
+#: silence.
+
+# visual_bell_duration 0.0
+
+#: The visual bell duration (in seconds). Flash the screen when a bell
+#: occurs for the specified number of seconds. Set to zero to disable.
+#: The flash is animated, fading in and out over the specified
+#: duration. The easing function used for the fading can be
+#: controlled. For example, 2.0 linear will casuse the flash to fade
+#: in and out linearly. The default if unspecified is to use ease-in-
+#: out which fades slowly at the start, middle and end. You can
+#: specify different easing functions for the fade-in and fade-out
+#: parts, like this: 2.0 ease-in linear. kitty supports all the CSS
+#: easing functions .
+
+# visual_bell_color none
+
+#: The color used by visual bell. Set to none will fall back to
+#: selection background color. If you feel that the visual bell is too
+#: bright, you can set it to a darker color.
+
+# window_alert_on_bell yes
+
+#: Request window attention on bell. Makes the dock icon bounce on
+#: macOS or the taskbar flash on Linux.
+
+# bell_on_tab "🔔 "
+
+#: Some text or a Unicode symbol to show on the tab if a window in the
+#: tab that does not have focus has a bell. If you want to use leading
+#: or trailing spaces, surround the text with quotes. See
+#: tab_title_template for how this is rendered.
+
+#: For backwards compatibility, values of yes, y and true are
+#: converted to the default bell symbol and no, n, false and none are
+#: converted to the empty string.
+
+# command_on_bell none
+
+#: Program to run when a bell occurs. The environment variable
+#: KITTY_CHILD_CMDLINE can be used to get the program running in the
+#: window in which the bell occurred.
+
+# bell_path none
+
+#: Path to a sound file to play as the bell sound. If set to none, the
+#: system default bell sound is used. Must be in a format supported by
+#: the operating systems sound API, such as WAV or OGA on Linux
+#: (libcanberra) or AIFF, MP3 or WAV on macOS (NSSound).
+
+# linux_bell_theme __custom
+
+#: The XDG Sound Theme kitty will use to play the bell sound. Defaults
+#: to the custom theme name specified in the XDG Sound theme
+#: specification , falling back to the default
+#: freedesktop theme if it does not exist. To change your sound theme
+#: desktop wide, create
+#: :file:~/.local/share/sounds/__custom/index.theme` with the
+#: contents:
+
+#: [Sound Theme]
+
+#: Inherits=name-of-the-sound-theme-you-want-to-use
+
+#: Replace name-of-the-sound-theme-you-want-to-use with the actual
+#: theme name. Now all compliant applications should use sounds from
+#: this theme.
+
+#: }}}
+
+#: Window layout {{{
+
+# remember_window_size yes
+# initial_window_width 640
+# initial_window_height 400
+
+#: If enabled, the OS Window size will be remembered so that new
+#: instances of kitty will have the same size as the previous
+#: instance. If disabled, the OS Window will initially have size
+#: configured by initial_window_width/height, in pixels. You can use a
+#: suffix of "c" on the width/height values to have them interpreted
+#: as number of cells instead of pixels.
+
+# enabled_layouts *
+
+#: The enabled window layouts. A comma separated list of layout names.
+#: The special value all means all layouts. The first listed layout
+#: will be used as the startup layout. Default configuration is all
+#: layouts in alphabetical order. For a list of available layouts, see
+#: the layouts .
+
+# window_resize_step_cells 2
+# window_resize_step_lines 2
+
+#: The step size (in units of cell width/cell height) to use when
+#: resizing kitty windows in a layout with the shortcut
+#: start_resizing_window. The cells value is used for horizontal
+#: resizing, and the lines value is used for vertical resizing.
+
+# window_border_width 0.5pt
+
+#: The width of window borders. Can be either in pixels (px) or pts
+#: (pt). Values in pts will be rounded to the nearest number of pixels
+#: based on screen resolution. If not specified, the unit is assumed
+#: to be pts. Note that borders are displayed only when more than one
+#: window is visible. They are meant to separate multiple windows.
+
+# draw_minimal_borders yes
+
+#: Draw only the minimum borders needed. This means that only the
+#: borders that separate the window from a neighbor are drawn. Note
+#: that setting a non-zero window_margin_width overrides this and
+#: causes all borders to be drawn.
+
+# window_margin_width 0
+
+#: The window margin (in pts) (blank area outside the border). A
+#: single value sets all four sides. Two values set the vertical and
+#: horizontal sides. Three values set top, horizontal and bottom. Four
+#: values set top, right, bottom and left.
+
+# single_window_margin_width -1
+
+#: The window margin to use when only a single window is visible (in
+#: pts). Negative values will cause the value of window_margin_width
+#: to be used instead. A single value sets all four sides. Two values
+#: set the vertical and horizontal sides. Three values set top,
+#: horizontal and bottom. Four values set top, right, bottom and left.
+
+# window_padding_width 0
+
+#: The window padding (in pts) (blank area between the text and the
+#: window border). A single value sets all four sides. Two values set
+#: the vertical and horizontal sides. Three values set top, horizontal
+#: and bottom. Four values set top, right, bottom and left.
+
+# single_window_padding_width -1
+
+#: The window padding to use when only a single window is visible (in
+#: pts). Negative values will cause the value of window_padding_width
+#: to be used instead. A single value sets all four sides. Two values
+#: set the vertical and horizontal sides. Three values set top,
+#: horizontal and bottom. Four values set top, right, bottom and left.
+
+# placement_strategy center
+
+#: When the window size is not an exact multiple of the cell size, the
+#: cell area of the terminal window will have some extra padding on
+#: the sides. You can control how that padding is distributed with
+#: this option. Using a value of center means the cell area will be
+#: placed centrally. A value of top-left means the padding will be
+#: only at the bottom and right edges. The value can be one of: top-
+#: left, top, top-right, left, center, right, bottom-left, bottom,
+#: bottom-right.
+
+# active_border_color #00ff00
+
+#: The color for the border of the active window. Set this to none to
+#: not draw borders around the active window.
+
+# inactive_border_color #cccccc
+
+#: The color for the border of inactive windows.
+
+# bell_border_color #ff5a00
+
+#: The color for the border of inactive windows in which a bell has
+#: occurred.
+
+# inactive_text_alpha 1.0
+
+#: Fade the text in inactive windows by the specified amount (a number
+#: between zero and one, with zero being fully faded).
+
+# hide_window_decorations no
+
+#: Hide the window decorations (title-bar and window borders) with
+#: yes. On macOS, titlebar-only and titlebar-and-corners can be used
+#: to only hide the titlebar and the rounded corners. Whether this
+#: works and exactly what effect it has depends on the window
+#: manager/operating system. Note that the effects of changing this
+#: option when reloading config are undefined. When using titlebar-
+#: only, it is useful to also set window_margin_width and
+#: placement_strategy to prevent the rounded corners from clipping
+#: text. Or use titlebar-and-corners.
+
+# window_logo_path none
+
+#: Path to a logo image. Must be in PNG/JPEG/WEBP/GIF/TIFF/BMP format.
+#: Relative paths are interpreted relative to the kitty config
+#: directory. The logo is displayed in a corner of every kitty window.
+#: The position is controlled by window_logo_position. Individual
+#: windows can be configured to have different logos either using the
+#: launch action or the remote control
+#: facility.
+
+# window_logo_position bottom-right
+
+#: Where to position the window logo in the window. The value can be
+#: one of: top-left, top, top-right, left, center, right, bottom-left,
+#: bottom, bottom-right.
+
+# window_logo_alpha 0.5
+
+#: The amount the logo should be faded into the background. With zero
+#: being fully faded and one being fully opaque.
+
+# window_logo_scale 0
+
+#: The percentage (0-100] of the window size to which the logo should
+#: scale. Using a single number means the logo is scaled to that
+#: percentage of the shortest window dimension, while preseving aspect
+#: ratio of the logo image.
+
+#: Using two numbers means the width and height of the logo are scaled
+#: to the respective percentage of the window's width and height.
+
+#: Using zero as the percentage disables scaling in that dimension. A
+#: single zero (the default) disables all scaling of the window logo.
+
+# resize_debounce_time 0.1 0.5
+
+#: The time to wait (in seconds) before asking the program running in
+#: kitty to resize and redraw the screen during a live resize of the
+#: OS window, when no new resize events have been received, i.e. when
+#: resizing is either paused or finished. On platforms such as macOS,
+#: where the operating system sends events corresponding to the start
+#: and end of a live resize, the second number is used for redraw-
+#: after-pause since kitty can distinguish between a pause and end of
+#: resizing. On such systems the first number is ignored and redraw is
+#: immediate after end of resize. On other systems only the first
+#: number is used so that kitty is "ready" quickly after the end of
+#: resizing, while not also continuously redrawing, to save energy.
+
+# resize_in_steps no
+
+#: Resize the OS window in steps as large as the cells, instead of
+#: with the usual pixel accuracy. Combined with initial_window_width
+#: and initial_window_height in number of cells, this option can be
+#: used to keep the margins as small as possible when resizing the OS
+#: window. Note that this does not currently work on Wayland.
+
+# visual_window_select_characters 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
+
+#: The list of characters for visual window selection. For example,
+#: for selecting a window to focus on with focus_visible_window. The
+#: value should be a series of unique numbers or alphabets, case
+#: insensitive, from the set 0-9A-Z\-=[];',./\\`. Specify your
+#: preference as a string of characters.
+
+# confirm_os_window_close -1
+
+#: Ask for confirmation when closing an OS window or a tab with at
+#: least this number of kitty windows in it by window manager (e.g.
+#: clicking the window close button or pressing the operating system
+#: shortcut to close windows) or by the close_tab action. A value of
+#: zero disables confirmation. This confirmation also applies to
+#: requests to quit the entire application (all OS windows, via the
+#: quit action). Negative values are converted to positive ones,
+#: however, with shell_integration enabled, using negative values
+#: means windows sitting at a shell prompt are not counted, only
+#: windows where some command is currently running. Note that if you
+#: want confirmation when closing individual windows, you can map the
+#: close_window_with_confirmation action.
+
+#: }}}
+
+#: Tab bar {{{
+
+# tab_bar_edge bottom
+
+#: The edge to show the tab bar on, top or bottom.
+
+# tab_bar_margin_width 0.0
+
+#: The margin to the left and right of the tab bar (in pts).
+
+# tab_bar_margin_height 0.0 0.0
+
+#: The margin above and below the tab bar (in pts). The first number
+#: is the margin between the edge of the OS Window and the tab bar.
+#: The second number is the margin between the tab bar and the
+#: contents of the current tab.
+
+# tab_bar_style fade
+
+#: The tab bar style, can be one of:
+
+#: fade
+#: Each tab's edges fade into the background color. (See also tab_fade)
+#: slant
+#: Tabs look like the tabs in a physical file.
+#: separator
+#: Tabs are separated by a configurable separator. (See also
+#: tab_separator)
+#: powerline
+#: Tabs are shown as a continuous line with "fancy" separators.
+#: (See also tab_powerline_style)
+#: custom
+#: A user-supplied Python function called draw_tab is loaded from the file
+#: tab_bar.py in the kitty config directory. For examples of how to
+#: write such a function, see the functions named draw_tab_with_* in
+#: kitty's source code: kitty/tab_bar.py. See also
+#: this discussion
+#: for examples from kitty users.
+#: hidden
+#: The tab bar is hidden. If you use this, you might want to create
+#: a mapping for the select_tab action which presents you with a list of
+#: tabs and allows for easy switching to a tab.
+
+# tab_bar_align left
+
+#: The horizontal alignment of the tab bar, can be one of: left,
+#: center, right.
+
+# tab_bar_min_tabs 2
+
+#: The minimum number of tabs that must exist before the tab bar is
+#: shown.
+
+# tab_switch_strategy previous
+
+#: The algorithm to use when switching to a tab when the current tab
+#: is closed. The default of previous will switch to the last used
+#: tab. A value of left will switch to the tab to the left of the
+#: closed tab. A value of right will switch to the tab to the right of
+#: the closed tab. A value of last will switch to the right-most tab.
+
+# tab_fade 0.25 0.5 0.75 1
+
+#: Control how each tab fades into the background when using fade for
+#: the tab_bar_style. Each number is an alpha (between zero and one)
+#: that controls how much the corresponding cell fades into the
+#: background, with zero being no fade and one being full fade. You
+#: can change the number of cells used by adding/removing entries to
+#: this list.
+
+# tab_separator " ┇"
+
+#: The separator between tabs in the tab bar when using separator as
+#: the tab_bar_style.
+
+# tab_powerline_style angled
+
+#: The powerline separator style between tabs in the tab bar when
+#: using powerline as the tab_bar_style, can be one of: angled,
+#: slanted, round.
+
+# tab_activity_symbol none
+
+#: Some text or a Unicode symbol to show on the tab if a window in the
+#: tab that does not have focus has some activity. If you want to use
+#: leading or trailing spaces, surround the text with quotes. See
+#: tab_title_template for how this is rendered.
+
+# tab_title_max_length 0
+
+#: The maximum number of cells that can be used to render the text in
+#: a tab. A value of zero means that no limit is applied.
+
+# tab_title_template "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{title}"
+
+#: A template to render the tab title. The default just renders the
+#: title with optional symbols for bell and activity. If you wish to
+#: include the tab-index as well, use something like: {index}:{title}.
+#: Useful if you have shortcuts mapped for goto_tab N. If you prefer
+#: to see the index as a superscript, use {sup.index}. All data
+#: available is:
+
+#: title
+#: The current tab title.
+#: index
+#: The tab index usable with goto_tab N goto_tab shortcuts.
+#: layout_name
+#: The current layout name.
+#: num_windows
+#: The number of windows in the tab.
+#: num_window_groups
+#: The number of window groups (a window group is a window and all of its overlay windows) in the tab.
+#: tab.active_wd
+#: The working directory of the currently active window in the tab
+#: (expensive, requires syscall). Use active_oldest_wd to get
+#: the directory of the oldest foreground process rather than the newest.
+#: tab.active_exe
+#: The name of the executable running in the foreground of the currently
+#: active window in the tab (expensive, requires syscall). Use
+#: active_oldest_exe for the oldest foreground process.
+#: max_title_length
+#: The maximum title length available.
+#: keyboard_mode
+#: The name of the current keyboard mode or the empty string if no keyboard mode is active.
+
+#: Note that formatting is done by Python's string formatting
+#: machinery, so you can use, for instance, {layout_name[:2].upper()}
+#: to show only the first two letters of the layout name, upper-cased.
+#: If you want to style the text, you can use styling directives, for
+#: example:
+#: `{fmt.fg.red}red{fmt.fg.tab}normal{fmt.bg._00FF00}greenbg{fmt.bg.tab}`.
+#: Similarly, for bold and italic:
+#: `{fmt.bold}bold{fmt.nobold}normal{fmt.italic}italic{fmt.noitalic}`.
+#: Note that for backward compatibility, if {bell_symbol} or
+#: {activity_symbol} are not present in the template, they are
+#: prepended to it.
+
+# active_tab_title_template none
+
+#: Template to use for active tabs. If not specified falls back to
+#: tab_title_template.
+
+# active_tab_foreground #000
+# active_tab_background #eee
+# active_tab_font_style bold-italic
+# inactive_tab_foreground #444
+# inactive_tab_background #999
+# inactive_tab_font_style normal
+
+#: Tab bar colors and styles.
+
+# tab_bar_background none
+
+#: Background color for the tab bar. Defaults to using the terminal
+#: background color.
+
+# tab_bar_margin_color none
+
+#: Color for the tab bar margin area. Defaults to using the terminal
+#: background color for margins above and below the tab bar. For side
+#: margins the default color is chosen to match the background color
+#: of the neighboring tab.
+
+#: }}}
+
+#: Color scheme {{{
+
+# foreground #dddddd
+# background #000000
+
+#: The foreground and background colors.
+
+# background_opacity 1.0
+
+#: The opacity of the background. A number between zero and one, where
+#: one is opaque and zero is fully transparent. This will only work if
+#: supported by the OS (for instance, when using a compositor under
+#: X11). Note that it only sets the background color's opacity in
+#: cells that have the same background color as the default terminal
+#: background, so that things like the status bar in vim, powerline
+#: prompts, etc. still look good. But it means that if you use a color
+#: theme with a background color in your editor, it will not be
+#: rendered as transparent. Instead you should change the default
+#: background color in your kitty config and not use a background
+#: color in the editor color scheme. Or use the escape codes to set
+#: the terminals default colors in a shell script to launch your
+#: editor. See also second_transparent_bg. Be aware that using a value
+#: less than 1.0 is a (possibly significant) performance hit. When
+#: using a low value for this setting, it is desirable that you set
+#: the background color to a color the matches the general color of
+#: the desktop background, for best text rendering. If you want to
+#: dynamically change transparency of windows, set
+#: dynamic_background_opacity to yes (this is off by default as it has
+#: a performance cost). Changing this option when reloading the config
+#: will only work if dynamic_background_opacity was enabled in the
+#: original config.
+
+# background_blur 0
+
+#: Set to a positive value to enable background blur (blurring of the
+#: visuals behind a transparent window) on platforms that support it.
+#: Only takes effect when background_opacity is less than one. On
+#: macOS, this will also control the blur radius (amount of blurring).
+#: Setting it to too high a value will cause severe performance issues
+#: and/or rendering artifacts. Usually, values up to 64 work well.
+#: Note that this might cause performance issues, depending on how the
+#: platform implements it, so use with care. Currently supported on
+#: macOS and KDE.
+
+# background_image none
+
+#: Path to a background image. Must be in PNG/JPEG/WEBP/TIFF/GIF/BMP
+#: format.
+
+# background_image_layout tiled
+
+#: Whether to tile, scale or clamp the background image. The value can
+#: be one of tiled, mirror-tiled, scaled, clamped, centered or
+#: cscaled. The scaled and cscaled values scale the image to the
+#: window size, with cscaled preserving the image aspect ratio.
+
+# background_image_linear no
+
+#: When background image is scaled, whether linear interpolation
+#: should be used.
+
+# second_transparent_bg none
+
+#: When the background color matches this color, background_opacity is
+#: applied to it to render it as semi-transparent, just as for colors
+#: matching the main background color. Useful in more complex UIs like
+#: editors where you could want more than a single background color to
+#: be rendered as transparent, for instance, for a cursor highlight
+#: line background. Terminal applications can set this color using The
+#: kitty color control escape code.
+
+# dynamic_background_opacity no
+
+#: Allow changing of the background_opacity dynamically, using either
+#: keyboard shortcuts (increase_background_opacity and
+#: decrease_background_opacity) or the remote control facility.
+#: Changing this option by reloading the config is not supported.
+
+# background_tint 0.0
+
+#: How much to tint the background image by the background color. This
+#: option makes it easier to read the text. Tinting is done using the
+#: srccurrent background color for each window. This option applies only
+#: if background_opacity is set and transparent windows are supported
+#: or background_image is set.
+
+# background_tint_gaps 1.0
+
+#: How much to tint the background image at the window gaps by the
+#: background color, after applying background_tint. Since this is
+#: multiplicative with background_tint, it can be used to lighten the
+#: tint over the window gaps for a *separated* look.
+
+# dim_opacity 0.4
+
+#: How much to dim text that has the DIM/FAINT attribute set. One
+#: means no dimming and zero means fully dimmed (i.e. invisible).
+
+# selection_foreground #000000
+# selection_background #fffacd
+
+#: The foreground and background colors for text selected with the
+#: mouse. Setting both of these to none will cause a "reverse video"
+#: effect for selections, where the selection will be the cell text
+#: color and the text will become the cell background color. Setting
+#: only selection_foreground to none will cause the foreground color
+#: to be used unchanged. Note that these colors can be overridden by
+#: the program running in the terminal.
+
+#: The color table {{{
+
+#: The 256 terminal colors. There are 8 basic colors, each color has a
+#: dull and bright version, for the first 16 colors. You can set the
+#: remaining 240 colors as color16 to color255.
+
+# color0 #000000
+# color8 #767676
+
+#: black
+
+# color1 #cc0403
+# color9 #f2201f
+
+#: red
+
+# color2 #19cb00
+# color10 #23fd00
+
+#: green
+
+# color3 #cecb00
+# color11 #fffd00
+
+#: yellow
+
+# color4 #0d73cc
+# color12 #1a8fff
+
+#: blue
+
+# color5 #cb1ed1
+# color13 #fd28ff
+
+#: magenta
+
+# color6 #0dcdcd
+# color14 #14ffff
+
+#: cyan
+
+# color7 #dddddd
+# color15 #ffffff
+
+#: white
+
+# mark1_foreground black
+
+#: Color for marks of type 1
+
+# mark1_background #98d3cb
+
+#: Color for marks of type 1 (light steel blue)
+
+# mark2_foreground black
+
+#: Color for marks of type 2
+
+# mark2_background #f2dcd3
+
+#: Color for marks of type 1 (beige)
+
+# mark3_foreground black
+
+#: Color for marks of type 3
+
+# mark3_background #f274bc
+
+#: Color for marks of type 3 (violet)
+
+#: }}}
+
+#: }}}
+
+#: Advanced {{{
+
+shell /usr/bin/fish
+
+#: The shell program to execute. The default value of . means to use
+#: the value of of the SHELL environment variable or if unset,
+#: whatever shell is set as the default shell for the current user.
+#: Note that on macOS if you change this, you might need to add
+#: --login and --interactive to ensure that the shell starts in
+#: interactive mode and reads its startup rc files. Environment
+#: variables are expanded in this setting.
+
+editor /usr/bin/hx
+
+#: The terminal based text editor (such as vim or nano) to use when
+#: editing the kitty config file or similar tasks.
+
+#: The default value of . means to use the environment variables
+#: VISUAL and EDITOR in that order. If these variables aren't set,
+#: kitty will run your shell ($SHELL -l -i -c env) to see if your
+#: shell startup rc files set VISUAL or EDITOR. If that doesn't work,
+#: kitty will cycle through various known editors (vim, emacs, etc.)
+#: and take the first one that exists on your system.
+
+# close_on_child_death no
+
+#: Close the window when the child process (usually the shell) exits.
+#: With the default value no, the terminal will remain open when the
+#: child exits as long as there are still other processes outputting
+#: to the terminal (for example disowned or backgrounded processes).
+#: When enabled with yes, the window will close as soon as the child
+#: process exits. Note that setting it to yes means that any
+#: background processes still using the terminal can fail silently
+#: because their stdout/stderr/stdin no longer work.
+
+# remote_control_password
+
+#: Allow other programs to control kitty using passwords. This option
+#: can be specified multiple times to add multiple passwords. If no
+#: passwords are present kitty will ask the user for permission if a
+#: program tries to use remote control with a password. A password can
+#: also *optionally* be associated with a set of allowed remote
+#: control actions. For example::
+
+#: remote_control_password "my passphrase" get-colors set-colors focus-window focus-tab
+
+#: Only the specified actions will be allowed when using this
+#: password. Glob patterns can be used too, for example::
+
+#: remote_control_password "my passphrase" set-tab-* resize-*
+
+#: To get a list of available actions, run::
+
+#: kitten @ --help
+
+#: A set of actions to be allowed when no password is sent can be
+#: specified by using an empty password. For example::
+
+#: remote_control_password "" *-colors
+
+#: Finally, the path to a python module can be specified that provides
+#: a function is_cmd_allowed that is used to check every remote
+#: control command. For example::
+
+#: remote_control_password "my passphrase" my_rc_command_checker.py
+
+#: Relative paths are resolved from the kitty configuration directory.
+#: See rc_custom_auth for details.
+
+# allow_remote_control no
+
+#: Allow other programs to control kitty. If you turn this on, other
+#: programs can control all aspects of kitty, including sending text
+#: to kitty windows, opening new windows, closing windows, reading the
+#: content of windows, etc. Note that this even works over SSH
+#: connections. The default setting of no prevents any form of remote
+#: control. The meaning of the various values are:
+
+#: password
+#: Remote control requests received over both the TTY device and the socket
+#: are confirmed based on passwords, see remote_control_password.
+
+#: socket-only
+#: Remote control requests received over a socket are accepted
+#: unconditionally. Requests received over the TTY are denied.
+#: See listen_on.
+
+#: socket
+#: Remote control requests received over a socket are accepted
+#: unconditionally. Requests received over the TTY are confirmed based on
+#: password.
+
+#: no
+#: Remote control is completely disabled.
+
+#: yes
+#: Remote control requests are always accepted.
+
+# listen_on none
+
+#: Listen to the specified socket for remote control connections. Note
+#: that this will apply to all kitty instances. It can be overridden
+#: by the kitty --listen-on command line option. For UNIX sockets,
+#: such as unix:${TEMP}/mykitty or unix:@mykitty (on Linux).
+#: Environment variables are expanded and relative paths are resolved
+#: with respect to the temporary directory. If {kitty_pid} is present,
+#: then it is replaced by the PID of the kitty process, otherwise the
+#: PID of the kitty process is appended to the value, with a hyphen.
+#: For TCP sockets such as tcp:localhost:0 a random port is always
+#: used even if a non-zero port number is specified. See the help for
+#: kitty --listen-on for more details. Note that this will be ignored
+#: unless allow_remote_control is set to either: yes, socket or
+#: socket-only. Changing this option by reloading the config is not
+#: supported.
+
+# env
+
+#: Specify the environment variables to be set in all child processes.
+#: Using the name with an equal sign (e.g. env VAR=) will set it to
+#: the empty string. Specifying only the name (e.g. env VAR) will
+#: remove the variable from the child process' environment. Note that
+#: environment variables are expanded recursively, for example::
+
+#: env VAR1=a
+#: env VAR2=${HOME}/${VAR1}/b
+
+#: The value of VAR2 will be /a/b.
+
+# filter_notification
+
+#: Specify rules to filter out notifications sent by applications
+#: running in kitty. Can be specified multiple times to create
+#: multiple filter rules. A rule specification is of the form
+#: field:regexp. A filter rule can match on any of the fields: title,
+#: body, app, type. The special value of all filters out all
+#: notifications. Rules can be combined using Boolean operators. Some
+#: examples::
+
+#: filter_notification title:hello or body:"abc.*def"
+#: # filter out notification from vim except for ones about updates, (?i)
+#: # makes matching case insesitive.
+#: filter_notification app:"[ng]?vim" and not body:"(?i)update"
+#: # filter out all notifications
+#: filter_notification all
+
+#: The field app is the name of the application sending the
+#: notification and type is the type of the notification. Not all
+#: applications will send these fields, so you can also match on the
+#: title and body of the notification text. More sophisticated
+#: programmatic filtering and custom actions on notifications can be
+#: done by creating a notifications.py file in the kitty config
+#: directory (~/.config/kitty). An annotated sample is available
+#: .
+
+# watcher
+
+#: Path to python file which will be loaded for watchers
+#: . Can be
+#: specified more than once to load multiple watchers. The watchers
+#: will be added to every kitty window. Relative paths are resolved
+#: relative to the kitty config directory. Note that reloading the
+#: config will only affect windows created after the reload.
+
+# exe_search_path
+
+#: Control where kitty finds the programs to run. The default search
+#: order is: First search the system wide PATH, then ~/.local/bin and
+#: ~/bin. If still not found, the PATH defined in the login shell
+#: after sourcing all its startup files is tried. Finally, if present,
+#: the PATH specified by the env option is tried.
+
+#: This option allows you to prepend, append, or remove paths from
+#: this search order. It can be specified multiple times for multiple
+#: paths. A simple path will be prepended to the search order. A path
+#: that starts with the + sign will be append to the search order,
+#: after ~/bin above. A path that starts with the - sign will be
+#: removed from the entire search order. For example::
+
+#: exe_search_path /some/prepended/path
+#: exe_search_path +/some/appended/path
+#: exe_search_path -/some/excluded/path
+
+update_check_interval 0
+
+#: The interval to periodically check if an update to kitty is
+#: available (in hours). If an update is found, a system notification
+#: is displayed informing you of the available update. The default is
+#: to check every 24 hours, set to zero to disable. Update checking is
+#: only done by the official binary builds. Distro packages or source
+#: builds do not do update checking. Changing this option by reloading
+#: the config is not supported.
+
+# startup_session none
+
+#: Path to a session file to use for all kitty instances. Can be
+#: overridden by using the kitty --session =none command line option
+#: for individual instances. See sessions
+#: in the kitty
+#: documentation for details. Note that relative paths are interpreted
+#: with respect to the kitty config directory. Environment variables
+#: in the path are expanded. Changing this option by reloading the
+#: config is not supported. Note that if kitty is invoked with command
+#: line arguments specifying a command to run, this option is ignored.
+
+# clipboard_control write-clipboard write-primary read-clipboard-ask read-primary-ask
+
+#: Allow programs running in kitty to read and write from the
+#: clipboard. You can control exactly which actions are allowed. The
+#: possible actions are: write-clipboard, read-clipboard, write-
+#: primary, read-primary, read-clipboard-ask, read-primary-ask. The
+#: default is to allow writing to the clipboard and primary selection
+#: and to ask for permission when a program tries to read from the
+#: clipboard. Note that disabling the read confirmation is a security
+#: risk as it means that any program, even the ones running on a
+#: remote server via SSH can read your clipboard. See also
+#: clipboard_max_size.
+
+# clipboard_max_size 512
+
+#: The maximum size (in MB) of data from programs running in kitty
+#: that will be stored for writing to the system clipboard. A value of
+#: zero means no size limit is applied. See also clipboard_control.
+
+# file_transfer_confirmation_bypass
+
+#: The password that can be supplied to the file transfer kitten
+#: to skip the
+#: transfer confirmation prompt. This should only be used when
+#: initiating transfers from trusted computers, over trusted networks
+#: or encrypted transports, as it allows any programs running on the
+#: remote machine to read/write to the local filesystem, without
+#: permission.
+
+# allow_hyperlinks yes
+
+#: Process hyperlink escape sequences (OSC 8). If disabled OSC 8
+#: escape sequences are ignored. Otherwise they become clickable
+#: links, that you can click with the mouse or by using the hints
+#: kitten . The
+#: special value of ask means that kitty will ask before opening the
+#: link when clicked.
+
+# shell_integration enabled
+
+#: Enable shell integration on supported shells. This enables features
+#: such as jumping to previous prompts, browsing the output of the
+#: previous command in a pager, etc. on supported shells. Set to
+#: disabled to turn off shell integration, completely. It is also
+#: possible to disable individual features, set to a space separated
+#: list of these values: no-rc, no-cursor, no-title, no-cwd, no-
+#: prompt-mark, no-complete, no-sudo. See Shell integration
+#: for details.
+
+# allow_cloning ask
+
+#: Control whether programs running in the terminal can request new
+#: windows to be created. The canonical example is clone-in-kitty
+#: .
+#: By default, kitty will ask for permission for each clone request.
+#: Allowing cloning unconditionally gives programs running in the
+#: terminal (including over SSH) permission to execute arbitrary code,
+#: as the user who is running the terminal, on the computer that the
+#: terminal is running on.
+
+# clone_source_strategies venv,conda,env_var,path
+
+#: Control what shell code is sourced when running clone-in-kitty in
+#: the newly cloned window. The supported strategies are:
+
+#: venv
+#: Source the file $VIRTUAL_ENV/bin/activate. This is used by the
+#: Python stdlib venv module and allows cloning venvs automatically.
+#: conda
+#: Run conda activate $CONDA_DEFAULT_ENV. This supports the virtual
+#: environments created by conda.
+#: env_var
+#: Execute the contents of the environment variable
+#: KITTY_CLONE_SOURCE_CODE with eval.
+#: path
+#: Source the file pointed to by the environment variable
+#: KITTY_CLONE_SOURCE_PATH.
+
+#: This option must be a comma separated list of the above values.
+#: Only the first valid match, in the order specified, is sourced.
+
+# notify_on_cmd_finish never
+
+#: Show a desktop notification when a long-running command finishes
+#: (needs shell_integration). The possible values are:
+
+#: never
+#: Never send a notification.
+
+#: unfocused
+#: Only send a notification when the window does not have keyboard focus.
+
+#: invisible
+#: Only send a notification when the window both is unfocused and not visible
+#: to the user, for example, because it is in an inactive tab or its OS window
+#: is not currently active.
+
+#: always
+#: Always send a notification, regardless of window state.
+
+#: There are two optional arguments:
+
+#: First, the minimum duration for what is considered a long running
+#: command. The default is 5 seconds. Specify a second argument to set
+#: the duration. For example: invisible 15. Do not set the value too
+#: small, otherwise a command that launches a new OS Window and exits
+#: will spam a notification.
+
+#: Second, the action to perform. The default is notify. The possible
+#: values are:
+
+#: notify
+#: Send a desktop notification.
+
+#: bell
+#: Ring the terminal bell.
+
+#: command
+#: Run a custom command. All subsequent arguments are the cmdline to run.
+
+#: Some more examples::
+
+#: # Send a notification when a command takes more than 5 seconds in an unfocused window
+#: notify_on_cmd_finish unfocused
+#: # Send a notification when a command takes more than 10 seconds in a invisible window
+#: notify_on_cmd_finish invisible 10.0
+#: # Ring a bell when a command takes more than 10 seconds in a invisible window
+#: notify_on_cmd_finish invisible 10.0 bell
+#: # Run 'notify-send' when a command takes more than 10 seconds in a invisible window
+#: # Here %c is replaced by the current command line and %s by the job exit code
+#: notify_on_cmd_finish invisible 10.0 command notify-send "job finished with status: %s" %c
+
+# term xterm-kitty
+
+#: The value of the TERM environment variable to set. Changing this
+#: can break many terminal programs, only change it if you know what
+#: you are doing, not because you read some advice on "Stack Overflow"
+#: to change it. The TERM variable is used by various programs to get
+#: information about the capabilities and behavior of the terminal. If
+#: you change it, depending on what programs you run, and how
+#: different the terminal you are changing it to is, various things
+#: from key-presses, to colors, to various advanced features may not
+#: work. Changing this option by reloading the config will only affect
+#: newly created windows.
+
+# terminfo_type path
+
+#: The value of the TERMINFO environment variable to set. This
+#: variable is used by programs running in the terminal to search for
+#: terminfo databases. The default value of path causes kitty to set
+#: it to a filesystem location containing the kitty terminfo database.
+#: A value of direct means put the entire database into the env var
+#: directly. This can be useful when connecting to containers, for
+#: example. But, note that not all software supports this. A value of
+#: none means do not touch the variable.
+
+# forward_stdio no
+
+#: Forward STDOUT and STDERR of the kitty process to child processes
+#: as file descriptors 3 and 4. This is useful for debugging as it
+#: allows child processes to print to kitty's STDOUT directly. For
+#: example, echo hello world >&3 in a shell will print to the parent
+#: kitty's STDOUT. When enabled, this also sets the
+#: KITTY_STDIO_FORWARDED=3 environment variable so child processes
+#: know about the forwarding.
+
+# menu_map
+
+#: Specify entries for various menus in kitty. Currently only the
+#: global menubar on macOS is supported. For example::
+
+#: menu_map global "Actions::Launch something special" launch --hold --type=os-window sh -c "echo hello world"
+
+#: This will create a menu entry named "Launch something special" in
+#: an "Actions" menu in the macOS global menubar. Sub-menus can be
+#: created by adding more levels separated by the :: characters.
+
+#: }}}
+
+#: OS specific tweaks {{{
+
+# wayland_titlebar_color system
+
+#: The color of the kitty window's titlebar on Wayland systems with
+#: client side window decorations such as GNOME. A value of system
+#: means to use the default system colors, a value of background means
+#: to use the background color of the currently active kitty window
+#: and finally you can use an arbitrary color, such as #12af59 or red.
+
+# macos_titlebar_color system
+
+#: The color of the kitty window's titlebar on macOS. A value of
+#: system means to use the default system color, light or dark can
+#: also be used to set it explicitly. A value of background means to
+#: use the background color of the currently active window and finally
+#: you can use an arbitrary color, such as #12af59 or red. WARNING:
+#: This option works by using a hack when arbitrary color (or
+#: background) is configured, as there is no proper Cocoa API for it.
+#: It sets the background color of the entire window and makes the
+#: titlebar transparent. As such it is incompatible with
+#: background_opacity. If you want to use both, you are probably
+#: better off just hiding the titlebar with hide_window_decorations.
+
+# macos_option_as_alt no
+
+#: Use the Option key as an Alt key on macOS. With this set to no,
+#: kitty will use the macOS native Option+Key to enter Unicode
+#: character behavior. This will break any Alt+Key keyboard shortcuts
+#: in your terminal programs, but you can use the macOS Unicode input
+#: technique. You can use the values: left, right or both to use only
+#: the left, right or both Option keys as Alt, instead. Note that
+#: kitty itself always treats Option the same as Alt. This means you
+#: cannot use this option to configure different kitty shortcuts for
+#: Option+Key vs. Alt+Key. Also, any kitty shortcuts using
+#: Option/Alt+Key will take priority, so that any such key presses
+#: will not be passed to terminal programs running inside kitty.
+#: Changing this option by reloading the config is not supported.
+
+# macos_hide_from_tasks no
+
+#: Hide the kitty window from running tasks on macOS (⌘+Tab and the
+#: Dock). Changing this option by reloading the config is not
+#: supported.
+
+# macos_quit_when_last_window_closed no
+
+#: Have kitty quit when all the top-level windows are closed on macOS.
+#: By default, kitty will stay running, even with no open windows, as
+#: is the expected behavior on macOS.
+
+# macos_window_resizable yes
+
+#: Disable this if you want kitty top-level OS windows to not be
+#: resizable on macOS.
+
+# macos_thicken_font 0
+
+#: Draw an extra border around the font with the given width, to
+#: increase legibility at small font sizes on macOS. For example, a
+#: value of 0.75 will result in rendering that looks similar to sub-
+#: pixel antialiasing at common font sizes. Note that in modern kitty,
+#: this option is obsolete (although still supported). Consider using
+#: text_composition_strategy instead.
+
+# macos_traditional_fullscreen no
+
+#: Use the macOS traditional full-screen transition, that is faster,
+#: but less pretty.
+
+# macos_show_window_title_in all
+
+#: Control where the window title is displayed on macOS. A value of
+#: window will show the title of the currently active window at the
+#: top of the macOS window. A value of menubar will show the title of
+#: the currently active window in the macOS global menu bar, making
+#: use of otherwise wasted space. A value of all will show the title
+#: in both places, and none hides the title. See
+#: macos_menubar_title_max_length for how to control the length of the
+#: title in the menu bar.
+
+# macos_menubar_title_max_length 0
+
+#: The maximum number of characters from the window title to show in
+#: the macOS global menu bar. Values less than one means that there is
+#: no maximum limit.
+
+# macos_custom_beam_cursor no
+
+#: Use a custom mouse cursor for macOS that is easier to see on both
+#: light and dark backgrounds. Nowadays, the default macOS cursor
+#: already comes with a white border. WARNING: this might make your
+#: mouse cursor invisible on dual GPU machines. Changing this option
+#: by reloading the config is not supported.
+
+# macos_colorspace srgb
+
+#: The colorspace in which to interpret terminal colors. The default
+#: of srgb will cause colors to match those seen in web browsers. The
+#: value of default will use whatever the native colorspace of the
+#: display is. The value of displayp3 will use Apple's special
+#: snowflake display P3 color space, which will result in over
+#: saturated (brighter) colors with some color shift. Reloading
+#: configuration will change this value only for newly created OS
+#: windows.
+
+# linux_display_server auto
+
+#: Choose between Wayland and X11 backends. By default, an appropriate
+#: backend based on the system state is chosen automatically. Set it
+#: to x11 or wayland to force the choice. Changing this option by
+#: reloading the config is not supported.
+
+# wayland_enable_ime yes
+
+#: Enable Input Method Extension on Wayland. This is typically used
+#: for inputting text in East Asian languages. However, its
+#: implementation in Wayland is often buggy and introduces latency
+#: into the input loop, so disable this if you know you dont need it.
+#: Changing this option by reloading the config is not supported, it
+#: will not have any effect.
+
+#: }}}
+
+#: Keyboard shortcuts {{{
+
+#: Keys are identified simply by their lowercase Unicode characters.
+#: For example: a for the A key, [ for the left square bracket key,
+#: etc. For functional keys, such as Enter or Escape, the names are
+#: present at Functional key definitions
+#: .
+#: For modifier keys, the names are ctrl (control, ⌃), shift (⇧), alt
+#: (opt, option, ⌥), super (cmd, command, ⌘).
+
+#: Simple shortcut mapping is done with the map directive. For full
+#: details on advanced mapping including modal and per application
+#: maps, see mapping . Some
+#: quick examples to illustrate common tasks::
+
+#: # unmap a keyboard shortcut, passing it to the program running in kitty
+#: map kitty_mod+space
+#: # completely ignore a keyboard event
+#: map ctrl+alt+f1 discard_event
+#: # combine multiple actions
+#: map kitty_mod+e combine : new_window : next_layout
+#: # multi-key shortcuts
+#: map ctrl+x>ctrl+y>z action
+
+#: The full list of actions that can be mapped to key presses is
+#: available here .
+
+# kitty_mod ctrl+shift
+
+#: Special modifier key alias for default shortcuts. You can change
+#: the value of this option to alter all default shortcuts that use
+#: kitty_mod.
+
+# clear_all_shortcuts no
+
+#: Remove all shortcut definitions up to this point. Useful, for
+#: instance, to remove the default shortcuts.
+
+# action_alias
+
+#: E.g. action_alias launch_tab launch --type=tab --cwd=current
+
+#: Define action aliases to avoid repeating the same options in
+#: multiple mappings. Aliases can be defined for any action and will
+#: be expanded recursively. For example, the above alias allows you to
+#: create mappings to launch a new tab in the current working
+#: directory without duplication::
+
+#: map f1 launch_tab vim
+#: map f2 launch_tab emacs
+
+#: Similarly, to alias kitten invocation::
+
+#: action_alias hints kitten hints --hints-offset=0
+
+# kitten_alias
+
+#: E.g. kitten_alias hints hints --hints-offset=0
+
+#: Like action_alias above, but specifically for kittens. Generally,
+#: prefer to use action_alias. This option is a legacy version,
+#: present for backwards compatibility. It causes all invocations of
+#: the aliased kitten to be substituted. So the example above will
+#: cause all invocations of the hints kitten to have the --hints-
+#: offset=0 option applied.
+
+#: Clipboard {{{
+
+#: Copy to clipboard
+
+# map kitty_mod+c copy_to_clipboard
+# map cmd+c copy_to_clipboard
+
+#:: There is also a copy_or_interrupt action that can be optionally
+#:: mapped to Ctrl+C. It will copy only if there is a selection and
+#:: send an interrupt otherwise. Similarly,
+#:: copy_and_clear_or_interrupt will copy and clear the selection or
+#:: send an interrupt if there is no selection.
+
+#: Paste from clipboard
+
+# map kitty_mod+v paste_from_clipboard
+# map cmd+v paste_from_clipboard
+
+#: Paste from selection
+
+# map kitty_mod+s paste_from_selection
+# map shift+insert paste_from_selection
+
+#: Pass selection to program
+
+# map kitty_mod+o pass_selection_to_program
+
+#:: You can also pass the contents of the current selection to any
+#:: program with pass_selection_to_program. By default, the system's
+#:: open program is used, but you can specify your own, the selection
+#:: will be passed as a command line argument to the program. For
+#:: example::
+
+#:: map kitty_mod+o pass_selection_to_program firefox
+
+#:: You can pass the current selection to a terminal program running
+#:: in a new kitty window, by using the @selection placeholder::
+
+#:: map kitty_mod+y new_window less @selection
+
+#: }}}
+
+#: Scrolling {{{
+
+#: Scroll line up
+
+# map kitty_mod+up scroll_line_up
+# map kitty_mod+k scroll_line_up
+# map opt+cmd+page_up scroll_line_up
+# map cmd+up scroll_line_up
+
+#: Scroll line down
+
+# map kitty_mod+down scroll_line_down
+# map kitty_mod+j scroll_line_down
+# map opt+cmd+page_down scroll_line_down
+# map cmd+down scroll_line_down
+
+#: Scroll page up
+
+# map kitty_mod+page_up scroll_page_up
+# map cmd+page_up scroll_page_up
+
+#: Scroll page down
+
+# map kitty_mod+page_down scroll_page_down
+# map cmd+page_down scroll_page_down
+
+#: Scroll to top
+
+# map kitty_mod+home scroll_home
+# map cmd+home scroll_home
+
+#: Scroll to bottom
+
+# map kitty_mod+end scroll_end
+# map cmd+end scroll_end
+
+#: Scroll to previous shell prompt
+
+# map kitty_mod+z scroll_to_prompt -1
+
+#:: Use a parameter of 0 for scroll_to_prompt to scroll to the last
+#:: jumped to or the last clicked position. Requires shell
+#:: integration
+#:: to work.
+
+#: Scroll to next shell prompt
+
+# map kitty_mod+x scroll_to_prompt 1
+
+#: Browse scrollback buffer in pager
+
+# map kitty_mod+h show_scrollback
+
+#:: You can pipe the contents of the current screen and history
+#:: buffer as STDIN to an arbitrary program using launch --stdin-
+#:: source. For example, the following opens the scrollback buffer in
+#:: less in an overlay window::
+
+#:: map f1 launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay less +G -R
+
+#:: For more details on piping screen and buffer contents to external
+#:: programs, see launch .
+
+#: Browse output of the last shell command in pager
+
+# map kitty_mod+g show_last_command_output
+
+#:: You can also define additional shortcuts to get the command
+#:: output. For example, to get the first command output on screen::
+
+#:: map f1 show_first_command_output_on_screen
+
+#:: To get the command output that was last accessed by a keyboard
+#:: action or mouse action::
+
+#:: map f1 show_last_visited_command_output
+
+#:: You can pipe the output of the last command run in the shell
+#:: using the launch action. For example, the following opens the
+#:: output in less in an overlay window::
+
+#:: map f1 launch --stdin-source=@last_cmd_output --stdin-add-formatting --type=overlay less +G -R
+
+#:: To get the output of the first command on the screen, use
+#:: @first_cmd_output_on_screen. To get the output of the last jumped
+#:: to command, use @last_visited_cmd_output.
+
+#:: Requires shell integration
+#:: to work.
+
+#: }}}
+
+#: Window management {{{
+
+#: New window
+
+# map kitty_mod+enter new_window
+# map cmd+enter new_window
+
+#:: You can open a new kitty window running an arbitrary program, for
+#:: example::
+
+#:: map kitty_mod+y launch mutt
+
+#:: You can open a new window with the current working directory set
+#:: to the working directory of the current window using::
+
+#:: map ctrl+alt+enter launch --cwd=current
+
+#:: You can open a new window that is allowed to control kitty via
+#:: the kitty remote control facility with launch --allow-remote-
+#:: control. Any programs running in that window will be allowed to
+#:: control kitty. For example::
+
+#:: map ctrl+enter launch --allow-remote-control some_program
+
+#:: You can open a new window next to the currently active window or
+#:: as the first window, with::
+
+#:: map ctrl+n launch --location=neighbor
+#:: map ctrl+f launch --location=first
+
+#:: For more details, see launch
+#:: .
+
+#: New OS window
+
+# map kitty_mod+n new_os_window
+# map cmd+n new_os_window
+
+#:: Works like new_window above, except that it opens a top-level OS
+#:: window. In particular you can use new_os_window_with_cwd to open
+#:: a window with the current working directory.
+
+#: Close window
+
+# map kitty_mod+w close_window
+# map shift+cmd+d close_window
+
+#: Next window
+
+# map kitty_mod+] next_window
+
+#: Previous window
+
+# map kitty_mod+[ previous_window
+
+#: Move window forward
+
+# map kitty_mod+f move_window_forward
+
+#: Move window backward
+
+# map kitty_mod+b move_window_backward
+
+#: Move window to top
+
+# map kitty_mod+` move_window_to_top
+
+#: Start resizing window
+
+# map kitty_mod+r start_resizing_window
+# map cmd+r start_resizing_window
+
+#: First window
+
+# map kitty_mod+1 first_window
+# map cmd+1 first_window
+
+#: Second window
+
+# map kitty_mod+2 second_window
+# map cmd+2 second_window
+
+#: Third window
+
+# map kitty_mod+3 third_window
+# map cmd+3 third_window
+
+#: Fourth window
+
+# map kitty_mod+4 fourth_window
+# map cmd+4 fourth_window
+
+#: Fifth window
+
+# map kitty_mod+5 fifth_window
+# map cmd+5 fifth_window
+
+#: Sixth window
+
+# map kitty_mod+6 sixth_window
+# map cmd+6 sixth_window
+
+#: Seventh window
+
+# map kitty_mod+7 seventh_window
+# map cmd+7 seventh_window
+
+#: Eighth window
+
+# map kitty_mod+8 eighth_window
+# map cmd+8 eighth_window
+
+#: Ninth window
+
+# map kitty_mod+9 ninth_window
+# map cmd+9 ninth_window
+
+#: Tenth window
+
+# map kitty_mod+0 tenth_window
+
+#: Visually select and focus window
+
+# map kitty_mod+f7 focus_visible_window
+
+#:: Display overlay numbers and alphabets on the window, and switch
+#:: the focus to the window when you press the key. When there are
+#:: only two windows, the focus will be switched directly without
+#:: displaying the overlay. You can change the overlay characters and
+#:: their order with option visual_window_select_characters.
+
+#: Visually swap window with another
+
+# map kitty_mod+f8 swap_with_window
+
+#:: Works like focus_visible_window above, but swaps the window.
+
+#: }}}
+
+#: Tab management {{{
+
+#: Next tab
+
+# map kitty_mod+right next_tab
+# map shift+cmd+] next_tab
+# map ctrl+tab next_tab
+
+#: Previous tab
+
+# map kitty_mod+left previous_tab
+# map shift+cmd+[ previous_tab
+# map ctrl+shift+tab previous_tab
+
+#: New tab
+
+# map kitty_mod+t new_tab
+# map cmd+t new_tab
+
+#: Close tab
+
+# map kitty_mod+q close_tab
+# map cmd+w close_tab
+
+#: Close OS window
+
+# map shift+cmd+w close_os_window
+
+#: Move tab forward
+
+# map kitty_mod+. move_tab_forward
+
+#: Move tab backward
+
+# map kitty_mod+, move_tab_backward
+
+#: Set tab title
+
+# map kitty_mod+alt+t set_tab_title
+# map shift+cmd+i set_tab_title
+
+
+#: You can also create shortcuts to go to specific tabs, with 1 being
+#: the first tab, 2 the second tab and -1 being the previously active
+#: tab, -2 being the tab active before the previously active tab and
+#: so on. Any number larger than the number of tabs goes to the last
+#: tab and any number less than the number of previously used tabs in
+#: the history goes to the oldest previously used tab in the history::
+
+#: map ctrl+alt+1 goto_tab 1
+#: map ctrl+alt+2 goto_tab 2
+
+#: Just as with new_window above, you can also pass the name of
+#: arbitrary commands to run when using new_tab and new_tab_with_cwd.
+#: Finally, if you want the new tab to open next to the current tab
+#: rather than at the end of the tabs list, use::
+
+#: map ctrl+t new_tab !neighbor [optional cmd to run]
+#: }}}
+
+#: Layout management {{{
+
+#: Next layout
+
+# map kitty_mod+l next_layout
+
+
+#: You can also create shortcuts to switch to specific layouts::
+
+#: map ctrl+alt+t goto_layout tall
+#: map ctrl+alt+s goto_layout stack
+
+#: Similarly, to switch back to the previous layout::
+
+#: map ctrl+alt+p last_used_layout
+
+#: There is also a toggle_layout action that switches to the named
+#: layout or back to the previous layout if in the named layout.
+#: Useful to temporarily "zoom" the active window by switching to the
+#: stack layout::
+
+#: map ctrl+alt+z toggle_layout stack
+#: }}}
+
+#: Font sizes {{{
+
+#: You can change the font size for all top-level kitty OS windows at
+#: a time or only the current one.
+
+#: Increase font size
+
+# map kitty_mod+equal change_font_size all +2.0
+# map kitty_mod+plus change_font_size all +2.0
+# map kitty_mod+kp_add change_font_size all +2.0
+# map cmd+plus change_font_size all +2.0
+# map cmd+equal change_font_size all +2.0
+# map shift+cmd+equal change_font_size all +2.0
+
+#: Decrease font size
+
+# map kitty_mod+minus change_font_size all -2.0
+# map kitty_mod+kp_subtract change_font_size all -2.0
+# map cmd+minus change_font_size all -2.0
+# map shift+cmd+minus change_font_size all -2.0
+
+#: Reset font size
+
+# map kitty_mod+backspace change_font_size all 0
+# map cmd+0 change_font_size all 0
+
+
+#: To setup shortcuts for specific font sizes::
+
+#: map kitty_mod+f6 change_font_size all 10.0
+
+#: To setup shortcuts to change only the current OS window's font
+#: size::
+
+#: map kitty_mod+f6 change_font_size current 10.0
+#: }}}
+
+#: Select and act on visible text {{{
+
+#: Use the hints kitten to select text and either pass it to an
+#: external program or insert it into the terminal or copy it to the
+#: clipboard.
+
+#: Open URL
+
+# map kitty_mod+e open_url_with_hints
+
+#:: Open a currently visible URL using the keyboard. The program used
+#:: to open the URL is specified in open_url_with.
+
+#: Insert selected path
+
+# map kitty_mod+p>f kitten hints --type path --program -
+
+#:: Select a path/filename and insert it into the terminal. Useful,
+#:: for instance to run git commands on a filename output from a
+#:: previous git command.
+
+#: Open selected path
+
+# map kitty_mod+p>shift+f kitten hints --type path
+
+#:: Select a path/filename and open it with the default open program.
+
+#: Insert selected line
+
+# map kitty_mod+p>l kitten hints --type line --program -
+
+#:: Select a line of text and insert it into the terminal. Useful for
+#:: the output of things like: `ls -1`.
+
+#: Insert selected word
+
+# map kitty_mod+p>w kitten hints --type word --program -
+
+#:: Select words and insert into terminal.
+
+#: Insert selected hash
+
+# map kitty_mod+p>h kitten hints --type hash --program -
+
+#:: Select something that looks like a hash and insert it into the
+#:: terminal. Useful with git, which uses SHA1 hashes to identify
+#:: commits.
+
+#: Open the selected file at the selected line
+
+# map kitty_mod+p>n kitten hints --type linenum
+
+#:: Select something that looks like filename:linenum and open it in
+#:: your default editor at the specified line number.
+
+#: Open the selected hyperlink
+
+# map kitty_mod+p>y kitten hints --type hyperlink
+
+#:: Select a hyperlink (i.e. a URL that has been marked as such by
+#:: the terminal program, for example, by `ls --hyperlink=auto`).
+
+
+#: The hints kitten has many more modes of operation that you can map
+#: to different shortcuts. For a full description see hints kitten
+#: .
+#: }}}
+
+#: Miscellaneous {{{
+
+#: Show documentation
+
+# map kitty_mod+f1 show_kitty_doc overview
+
+#: Toggle fullscreen
+
+# map kitty_mod+f11 toggle_fullscreen
+# map ctrl+cmd+f toggle_fullscreen
+
+#: Toggle maximized
+
+# map kitty_mod+f10 toggle_maximized
+
+#: Toggle macOS secure keyboard entry
+
+# map opt+cmd+s toggle_macos_secure_keyboard_entry
+
+#: Unisrccode input
+
+# map kitty_mod+u kitten unicode_input
+# map ctrl+cmd+space kitten unicode_input
+
+#: Edit config file
+
+# map kitty_mod+f2 edit_config_file
+# map cmd+, edit_config_file
+
+#: Open the kitty command shell
+
+# map kitty_mod+escape kitty_shell window
+
+#:: Open the kitty shell in a new window / tab / overlay / os_window
+#:: to control kitty using commands.
+
+#: Increase background opacity
+
+# map kitty_mod+a>m set_background_opacity +0.1
+
+#: Decrease background opacity
+
+# map kitty_mod+a>l set_background_opacity -0.1
+
+#: Make background fully opaque
+
+# map kitty_mod+a>1 set_background_opacity 1
+
+#: Reset background opacity
+
+# map kitty_mod+a>d set_background_opacity default
+
+#: Reset the terminal
+
+# map kitty_mod+delete clear_terminal reset active
+# map opt+cmd+r clear_terminal reset active
+
+#:: You can create shortcuts to clear/reset the terminal. For
+#:: example::
+
+#:: # Reset the terminal
+#:: map f1 clear_terminal reset active
+#:: # Clear the terminal screen by erasing all contents
+#:: map f1 clear_terminal clear active
+#:: # Clear the terminal scrollback by erasing it
+#:: map f1 clear_terminal scrollback active
+#:: # Scroll the contents of the screen into the scrollback
+#:: map f1 clear_terminal scroll active
+#:: # Clear everything on screen up to the line with the cursor or the start of the current prompt (needs shell integration)
+#:: map f1 clear_terminal to_cursor active
+#:: # Same as above except cleared lines are moved into scrollback
+#:: map f1 clear_terminal to_cursor_scroll active
+
+#:: If you want to operate on all kitty windows instead of just the
+#:: current one, use all instead of active.
+
+#:: Some useful functions that can be defined in the shell rc files
+#:: to perform various kinds of clearing of the current window:
+
+#:: .. code-block:: sh
+
+#:: clear-only-screen() {
+#:: printf "\e[H\e[2J"
+#:: }
+
+#:: clear-screen-and-scrollback() {
+#:: printf "\e[H\e[3J"
+#:: }
+
+#:: clear-screen-saving-contents-in-scrollback() {
+#:: printf "\e[H\e[22J"
+#:: }
+
+#:: For instance, using these escape codes, it is possible to remap
+#:: Ctrl+L to both scroll the current screen contents into the
+#:: scrollback buffer and clear the screen, instead of just clearing
+#:: the screen. For ZSH, in ~/.zshrc, add:
+
+#:: .. code-block:: zsh
+
+#:: ctrl_l() {
+#:: builtin print -rn -- $'\r\e[0J\e[H\e[22J' >"$TTY"
+#:: builtin zle .reset-prompt
+#:: builtin zle -R
+#:: }
+#:: zle -N ctrl_l
+#:: bindkey '^l' ctrl_l
+
+#:: Alternatively, you can just add map ctrl+l clear_terminal
+#:: to_cursor_scroll active to kitty.conf which works with no changes
+#:: to the shell rc files, but only clears up to the prompt, it does
+#:: not clear anytext at the prompt itself.
+
+#: Clear up to cursor line
+
+# map cmd+k clear_terminal to_cursor active
+
+#: Reload kitty.conf
+
+# map kitty_mod+f5 load_config_file
+# map ctrl+cmd+, load_config_file
+
+#:: Reload kitty.conf, applying any changes since the last time it
+#:: was loaded. Note that a handful of options cannot be dynamically
+#:: changed and require a full restart of kitty. Particularly, when
+#:: changing shortcuts for actions located on the macOS global menu
+#:: bar, a full restart is needed. You can also map a keybinding to
+#:: load a different config file, for example::
+
+#:: map f5 load_config /path/to/alternative/kitty.conf
+
+#:: Note that all options from the original kitty.conf are discarded,
+#:: in other words the new configuration *replace* the old ones.
+
+#: Debug kitty configuration
+
+# map kitty_mod+f6 debug_config
+# map opt+cmd+, debug_config
+
+#:: Show details about exactly what configuration kitty is running
+#:: with and its host environment. Useful for debugging issues.
+
+#: Send arbitrary text on key presses
+
+#:: E.g. map ctrl+shift+alt+h send_text all Hello World
+
+#:: You can tell kitty to send arbitrary (UTF-8) encoded text to the
+#:: client program when pressing specified shortcut keys. For
+#:: example::
+
+#:: map ctrl+alt+a send_text all Special text
+
+#:: This will send "Special text" when you press the Ctrl+Alt+A key
+#:: combination. The text to be sent decodes ANSI C escapes
+#:: so you can use escapes like \e to send control
+#:: codes or \u21fb to send Unicode characters (or you can just input
+#:: the Unicode characters directly as UTF-8 text). You can use
+#:: `kitten show-key` to get the key escape codes you want to
+#:: emulate.
+
+#:: The first argument to send_text is the keyboard modes in which to
+#:: activate the shortcut. The possible values are normal,
+#:: application, kitty or a comma separated combination of them. The
+#:: modes normal and application refer to the DECCKM cursor key mode
+#:: for terminals, and kitty refers to the kitty extended keyboard
+#:: protocol. The special value all means all of them.
+
+#:: Some more examples::
+
+#:: # Output a word and move the cursor to the start of the line (like typing and pressing Home)
+#:: map ctrl+alt+a send_text normal Word\e[H
+#:: map ctrl+alt+a send_text application Word\eOH
+#:: # Run a command at a shell prompt (like typing the command and pressing Enter)
+#:: map ctrl+alt+a send_text normal,application some command with arguments\r
+
+#: Open kitty Website
+
+# map shift+cmd+/ open_url https://sw.kovidgoyal.net/kitty/
+
+#: Hide macOS kitty application
+
+# map cmd+h hide_macos_app
+
+#: Hide macOS other applications
+
+# map opt+cmd+h hide_macos_other_apps
+
+#: Minimize macOS window
+
+# map cmd+m minimize_macos_window
+
+#: Quit kitty
+
+# map cmd+q quit
+
+#: }}}
+
+#: }}}
diff --git a/roles/dotfiles/files/.config/kitty/kitty.conf.save b/roles/dotfiles/files/.config/kitty/kitty.conf.save
new file mode 100644
index 0000000..92c0b68
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/kitty.conf.save
@@ -0,0 +1,2594 @@
+# vim:fileencoding=utf-8:foldmethod=marker
+
+include ./theme.conf
+
+#: Fonts {{{
+
+#: kitty has very powerful font management. You can configure
+#: individual font faces and even specify special fonts for particular
+#: characters.
+
+font_family JetBrains Mono
+bold_font auto
+italic_font auto
+bold_italic_font auto
+
+#: You can specify different fonts for the bold/italic/bold-italic
+#: variants. The easiest way to select fonts is to run the `kitten
+#: choose-fonts` command which will present a nice UI for you to
+#: select the fonts you want with previews and support for selecting
+#: variable fonts and font features. If you want to learn to select
+#: fonts manually, read the font specification syntax
+#: .
+
+# font_size 11.0
+
+#: Font size (in pts).
+
+# force_ltr no
+
+#: kitty does not support BIDI (bidirectional text), however, for RTL
+#: scripts, words are automatically displayed in RTL. That is to say,
+#: in an RTL script, the words "HELLO WORLD" display in kitty as
+#: "WORLD HELLO", and if you try to select a substring of an RTL-
+#: shaped string, you will get the character that would be there had
+#: the string been LTR. For example, assuming the Hebrew word ירושלים,
+#: selecting the character that on the screen appears to be ם actually
+#: writes into the selection buffer the character י. kitty's default
+#: behavior is useful in conjunction with a filter to reverse the word
+#: order, however, if you wish to manipulate RTL glyphs, it can be
+#: very challenging to work with, so this option is provided to turn
+#: it off. Furthermore, this option can be used with the command line
+#: program GNU FriBidi
+#: to get BIDI support, because it will force kitty to always treat
+#: the text as LTR, which FriBidi expects for terminals.
+
+# symbol_map
+
+#: E.g. symbol_map U+E0A0-U+E0A3,U+E0C0-U+E0C7 PowerlineSymbols
+
+#: Map the specified Unicode codepoints to a particular font. Useful
+#: if you need special rendering for some symbols, such as for
+#: Powerline. Avoids the need for patched fonts. Each Unicode code
+#: point is specified in the form `U+`. You
+#: can specify multiple code points, separated by commas and ranges
+#: separated by hyphens. This option can be specified multiple times.
+#: The syntax is::
+
+#: symbol_map codepoints Font Family Name
+
+# narrow_symbols
+
+#: E.g. narrow_symbols U+E0A0-U+E0A3,U+E0C0-U+E0C7 1
+
+#: Usually, for Private Use Unicode characters and some symbol/dingbat
+#: characters, if the character is followed by one or more spaces,
+#: kitty will use those extra cells to render the character larger, if
+#: the character in the font has a wide aspect ratio. Using this
+#: option you can force kitty to restrict the specified code points to
+#: render in the specified number of cells (defaulting to one cell).
+#: This option can be specified multiple times. The syntax is::
+
+#: narrow_symbols codepoints [optionally the number of cells]
+
+# disable_ligatures never
+
+#: Choose how you want to handle multi-character ligatures. The
+#: default is to always render them. You can tell kitty to not render
+#: them when the cursor is over them by using cursor to make editing
+#: easier, or have kitty never render them at all by using always, if
+#: you don't like them. The ligature strategy can be set per-window
+#: either using the kitty remote control facility or by defining
+#: shortcuts for it in kitty.conf, for example::
+
+#: map alt+1 disable_ligatures_in active always
+#: map alt+2 disable_ligatures_in all never
+#: map alt+3 disable_ligatures_in tab cursor
+
+#: Note that this refers to programming ligatures, typically
+#: implemented using the calt OpenType feature. For disabling general
+#: ligatures, use the font_features option.
+
+# font_features
+
+#: E.g. font_features none
+
+#: Choose exactly which OpenType features to enable or disable. Note
+#: that for the main fonts, features can be specified when selecting
+#: the font using the choose-fonts kitten. This setting is useful for
+#: fallback fonts.
+
+#: Some fonts might have features worthwhile in a terminal. For
+#: example, Fira Code includes a discretionary feature, zero, which in
+#: that font changes the appearance of the zero (0), to make it more
+#: easily distinguishable from Ø. Fira Code also includes other
+#: discretionary features known as Stylistic Sets which have the tags
+#: ss01 through ss20.
+
+#: For the exact syntax to use for individual features, see the
+#: HarfBuzz documentation .
+
+#: Note that this code is indexed by PostScript name, and not the font
+#: family. This allows you to define very precise feature settings;
+#: e.g. you can disable a feature in the italic font but not in the
+#: regular font.
+
+#: On Linux, font features are first read from the FontConfig database
+#: and then this option is applied, so they can be configured in a
+#: single, central place.
+
+#: To get the PostScript name for a font, use the `fc-scan file.ttf`
+#: command on Linux or the `Font Book tool on macOS
+#: `__.
+
+#: Enable alternate zero and oldstyle numerals::
+
+#: font_features FiraCode-Retina +zero +onum
+
+#: Enable only alternate zero in the bold font::
+
+#: font_features FiraCode-Bold +zero
+
+#: Disable the normal ligatures, but keep the calt feature which (in
+#: this font) breaks up monotony::
+
+#: font_features TT2020StyleB-Regular -liga +calt
+
+#: In conjunction with force_ltr, you may want to disable Arabic
+#: shaping entirely, and only look at their isolated forms if they
+#: show up in a document. You can do this with e.g.::
+
+#: font_features UnifontMedium +isol -medi -fina -init
+
+# modify_font
+
+#: Modify font characteristics such as the position or thickness of
+#: the underline and strikethrough. The modifications can have the
+#: suffix px for pixels or % for percentage of original value. No
+#: suffix means use pts. For example::
+
+#: modify_font underline_position -2
+#: modify_font underline_thickness 150%
+#: modify_font strikethrough_position 2px
+
+#: Additionally, you can modify the size of the cell in which each
+#: font glyph is rendered and the baseline at which the glyph is
+#: placed in the cell. For example::
+
+#: modify_font cell_width 80%
+#: modify_font cell_height -2px
+#: modify_font baseline 3
+
+#: Note that modifying the baseline will automatically adjust the
+#: underline and strikethrough positions by the same amount.
+#: Increasing the baseline raises glyphs inside the cell and
+#: decreasing it lowers them. Decreasing the cell size might cause
+#: rendering artifacts, so use with care.
+
+# box_drawing_scale 0.001, 1, 1.5, 2
+
+#: The sizes of the lines used for the box drawing Unicode characters.
+#: These values are in pts. They will be scaled by the monitor DPI to
+#: arrive at a pixel value. There must be four values corresponding to
+#: thin, normal, thick, and very thick lines.
+
+# undercurl_style thin-sparse
+
+#: The style with which undercurls are rendered. This option takes the
+#: form (thin|thick)-(sparse|dense). Thin and thick control the
+#: thickness of the undercurl. Sparse and dense control how often the
+#: curl oscillates. With sparse the curl will peak once per character,
+#: with dense twice.
+
+# text_composition_strategy platform
+
+#: Control how kitty composites text glyphs onto the background color.
+#: The default value of platform tries for text rendering as close to
+#: "native" for the platform kitty is running on as possible.
+
+#: A value of legacy uses the old (pre kitty 0.28) strategy for how
+#: glyphs are composited. This will make dark text on light
+#: backgrounds look thicker and light text on dark backgrounds
+#: thinner. It might also make some text appear like the strokes are
+#: uneven.
+
+#: You can fine tune the actual contrast curve used for glyph
+#: composition by specifying up to two space-separated numbers for
+#: this setting.
+
+#: The first number is the gamma adjustment, which controls the
+#: thickness of dark text on light backgrounds. Increasing the value
+#: will make text appear thicker. The default value for this is 1.0 on
+#: Linux and 1.7 on macOS. Valid values are 0.01 and above. The result
+#: is scaled based on the luminance difference between the background
+#: and the foreground. Dark text on light backgrounds receives the
+#: full impact of the curve while light text on dark backgrounds is
+#: affected very little.
+
+#: The second number is an additional multiplicative contrast. It is
+#: percentage ranging from 0 to 100. The default value is 0 on Linux
+#: and 30 on macOS.
+
+#: If you wish to achieve similar looking thickness in light and dark
+#: themes, a good way to experiment is start by setting the value to
+#: 1.0 0 and use a dark theme. Then adjust the second parameter until
+#: it looks good. Then switch to a light theme and adjust the first
+#: parameter until the perceived thickness matches the dark theme.
+
+# text_fg_override_threshold 0
+
+#: The minimum accepted difference in luminance between the foreground
+#: and background color, below which kitty will override the
+#: foreground color. It is percentage ranging from 0 to 100. If the
+#: difference in luminance of the foreground and background is below
+#: this threshold, the foreground color will be set to white if the
+#: background is dark or black if the background is light. The default
+#: value is 0, which means no overriding is performed. Useful when
+#: working with applications that use colors that do not contrast well
+#: with your preferred color scheme.
+
+#: WARNING: Some programs use characters (such as block characters)
+#: for graphics display and may expect to be able to set the
+#: foreground and background to the same color (or similar colors).
+#: If you see unexpected stripes, dots, lines, incorrect color, no
+#: color where you expect color, or any kind of graphic display
+#: problem try setting text_fg_override_threshold to 0 to see if this
+#: is the cause of the problem.
+
+#: }}}
+
+#: Text cursor customization {{{
+
+# cursor #cccccc
+
+#: Default text cursor color. If set to the special value none the
+#: cursor will be rendered with a "reverse video" effect. Its color
+#: will be the color of the text in the cell it is over and the text
+#: will be rendered with the background color of the cell. Note that
+#: if the program running in the terminal sets a cursor color, this
+#: takes precedence. Also, the cursor colors are modified if the cell
+#: background and foreground colors have very low contrast. Note that
+#: some themes set this value, so if you want to override it, place
+#: your value after the lines where the theme file is included.
+
+# cursor_text_color #111111
+
+#: The color of text under the cursor. If you want it rendered with
+#: the background color of the cell underneath instead, use the
+#: special keyword: `background`. Note that if cursor is set to none
+#: then this option is ignored. Note that some themes set this value,
+#: so if you want to override it, place your value after the lines
+#: where the theme file is included.
+
+cursor_shape beam
+
+#: The cursor shape can be one of block, beam, underline. Note that
+#: when reloading the config this will be changed only if the cursor
+#: shape has not been set by the program running in the terminal. This
+#: sets the default cursor shape, applications running in the terminal
+#: can override it. In particular, shell integration
+#: in kitty sets
+#: the cursor shape to beam at shell prompts. You can avoid this by
+#: setting shell_integration to no-cursor.
+
+# cursor_shape_unfocused hollow
+
+#: Defines the text cursor shape when the OS window is not focused.
+#: The unfocused cursor shape can be one of block, beam, underline,
+#: hollow and unchanged (leave the cursor shape as it is).
+
+# cursor_beam_thickness 1.5
+
+#: The thickness of the beam cursor (in pts).
+
+# cursor_underline_thickness 2.0
+
+#: The thickness of the underline cursor (in pts).
+
+# cursor_blink_interval -1
+
+#: The interval to blink the cursor (in seconds). Set to zero to
+#: disable blinking. Negative values mean use system default. Note
+#: that the minimum interval will be limited to repaint_delay. You can
+#: also animate the cursor blink by specifying an easing function. For
+#: example, setting this to option to 0.5 ease-in-out will cause the
+#: cursor blink to be animated over a second, in the first half of the
+#: second it will go from opaque to transparent and then back again
+#: over the next half. You can specify different easing functions for
+#: the two halves, for example: -1 linear ease-out. kitty supports all
+#: the CSS easing functions . Note that turning on animations
+#: uses extra power as it means the screen is redrawn multiple times
+#: per blink interval. See also, cursor_stop_blinking_after.
+
+# cursor_stop_blinking_after 15.0
+
+#: Stop blinking cursor after the specified number of seconds of
+#: keyboard inactivity. Set to zero to never stop blinking.
+
+#: }}}
+
+#: Scrollback {{{
+
+# scrollback_lines 2000
+
+#: Number of lines of history to keep in memory for scrolling back.
+#: Memory is allocated on demand. Negative numbers are (effectively)
+#: infinite scrollback. Note that using very large scrollback is not
+#: recommended as it can slow down performance of the terminal and
+#: also use large amounts of RAM. Instead, consider using
+#: scrollback_pager_history_size. Note that on config reload if this
+#: is changed it will only affect newly created windows, not existing
+#: ones.
+
+# scrollback_indicator_opacity 1.0
+
+#: The opacity of the scrollback indicator which is a small colored
+#: rectangle that moves along the right hand side of the window as you
+#: scroll, indicating what fraction you have scrolled. The default is
+#: one which means fully opaque, aka visible. Set to a value between
+#: zero and one to make the indicator less visible.
+
+# scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER
+
+#: Program with which to view scrollback in a new window. The
+#: scrollback buffer is passed as STDIN to this program. If you change
+#: it, make sure the program you use can handle ANSI escape sequences
+#: for colors and text formatting. INPUT_LINE_NUMBER in the command
+#: line above will be replaced by an integer representing which line
+#: should be at the top of the screen. Similarly CURSOR_LINE and
+#: CURSOR_COLUMN will be replaced by the current cursor position or
+#: set to 0 if there is no cursor, for example, when showing the last
+#: command output.
+
+# scrollback_pager_history_size 0
+
+#: Separate scrollback history size (in MB), used only for browsing
+#: the scrollback buffer with pager. This separate buffer is not
+#: available for interactive scrolling but will be piped to the pager
+#: program when viewing scrollback buffer in a separate window. The
+#: current implementation stores the data in UTF-8, so approximately
+#: 10000 lines per megabyte at 100 chars per line, for pure ASCII,
+#: unformatted text. A value of zero or less disables this feature.
+#: The maximum allowed size is 4GB. Note that on config reload if this
+#: is changed it will only affect newly created windows, not existing
+#: ones.
+
+# scrollback_fill_enlarged_window no
+
+#: Fill new space with lines from the scrollback buffer after
+#: enlarging a window.
+
+# wheel_scroll_multiplier 5.0
+
+#: Multiplier for the number of lines scrolled by the mouse wheel.
+#: Note that this is only used for low precision scrolling devices,
+#: not for high precision scrolling devices on platforms such as macOS
+#: and Wayland. Use negative numbers to change scroll direction. See
+#: also wheel_scroll_min_lines.
+
+# wheel_scroll_min_lines 1
+
+#: The minimum number of lines scrolled by the mouse wheel. The scroll
+#: multiplier wheel_scroll_multiplier only takes effect after it
+#: reaches this number. Note that this is only used for low precision
+#: scrolling devices like wheel mice that scroll by very small amounts
+#: when using the wheel. With a negative number, the minimum number of
+#: lines will always be added.
+
+# touch_scroll_multiplier 1.0
+
+#: Multiplier for the number of lines scrolled by a touchpad. Note
+#: that this is only used for high precision scrolling devices on
+#: platforms such as macOS and Wayland. Use negative numbers to change
+#: scroll direction.
+
+#: }}}
+
+#: Mouse {{{
+
+# mouse_hide_wait 3.0
+
+#: Hide mouse cursor after the specified number of seconds of the
+#: mouse not being used. Set to zero to disable mouse cursor hiding.
+#: Set to a negative value to hide the mouse cursor immediately when
+#: typing text. Disabled by default on macOS as getting it to work
+#: robustly with the ever-changing sea of bugs that is Cocoa is too
+#: much effort.
+
+# url_color #0087bd
+# url_style curly
+
+#: The color and style for highlighting URLs on mouse-over. url_style
+#: can be one of: none, straight, double, curly, dotted, dashed.
+
+# open_url_with default
+
+#: The program to open clicked URLs. The special value default will
+#: first look for any URL handlers defined via the open_actions
+#: facility and if non
+#: are found, it will use the Operating System's default URL handler
+#: (open on macOS and xdg-open on Linux).
+
+# url_prefixes file ftp ftps gemini git gopher http https irc ircs kitty mailto news sftp ssh
+
+#: The set of URL prefixes to look for when detecting a URL under the
+#: mouse cursor.
+
+# detect_urls yes
+
+#: Detect URLs under the mouse. Detected URLs are highlighted with an
+#: underline and the mouse cursor becomes a hand over them. Even if
+#: this option is disabled, URLs are still clickable. See also the
+#: underline_hyperlinks option to control how hyperlinks (as opposed
+#: to plain text URLs) are displayed.
+
+# url_excluded_characters
+
+#: Additional characters to be disallowed from URLs, when detecting
+#: URLs under the mouse cursor. By default, all characters that are
+#: legal in URLs are allowed. Additionally, newlines are allowed (but
+#: stripped). This is to accommodate programs such as mutt that add
+#: hard line breaks even for continued lines. \n can be added to this
+#: option to disable this behavior. Special characters can be
+#: specified using backslash escapes, to specify a backslash use a
+#: double backslash.
+
+# show_hyperlink_targets no
+
+#: When the mouse hovers over a terminal hyperlink, show the actual
+#: URL that will be activated when the hyperlink is clicked.
+
+# underline_hyperlinks hover
+
+#: Control how hyperlinks are underlined. They can either be
+#: underlined on mouse hover, always (i.e. permanently underlined) or
+#: never which means that kitty will not apply any underline styling
+#: to hyperlinks. Uses the url_style and url_color settings for the
+#: underline style. Note that reloading the config and changing this
+#: value to/from always will only affect text subsequently received by
+#: kitty.
+
+# copy_on_select no
+
+#: Copy to clipboard or a private buffer on select. With this set to
+#: clipboard, selecting text with the mouse will cause the text to be
+#: copied to clipboard. Useful on platforms such as macOS that do not
+#: have the concept of primary selection. You can instead specify a
+#: name such as a1 to copy to a private kitty buffer. Map a shortcut
+#: with the paste_from_buffer action to paste from this private
+#: buffer. For example::
+
+#: copy_on_select a1
+#: map shift+cmd+v paste_from_buffer a1
+
+#: Note that copying to the clipboard is a security risk, as all
+#: programs, including websites open in your browser can read the
+#: contents of the system clipboard.
+
+# paste_actions quote-urls-at-prompt,confirm
+
+#: A comma separated list of actions to take when pasting text into
+#: the terminal. The supported paste actions are:
+
+#: quote-urls-at-prompt:
+#: If the text being pasted is a URL and the cursor is at a shell prompt,
+#: automatically quote the URL (needs shell_integration).
+#: replace-dangerous-control-codes
+#: Replace dangerous control codes from pasted text, without confirmation.
+#: replace-newline
+#: Replace the newline character from pasted text, without confirmation.
+#: confirm:
+#: Confirm the paste if the text to be pasted contains any terminal control codes
+#: as this can be dangerous, leading to code execution if the shell/program running
+#: in the terminal does not properly handle these.
+#: confirm-if-large
+#: Confirm the paste if it is very large (larger than 16KB) as pasting
+#: large amounts of text into shells can be very slow.
+#: filter:
+#: Run the filter_paste() function from the file paste-actions.py in
+#: the kitty config directory on the pasted text. The text returned by the
+#: function will be actually pasted.
+#: no-op:
+#: Has no effect.
+
+# strip_trailing_spaces never
+
+#: Remove spaces at the end of lines when copying to clipboard. A
+#: value of smart will do it when using normal selections, but not
+#: rectangle selections. A value of always will always do it.
+
+# select_by_word_characters @-./_~?&=%+#
+
+#: Characters considered part of a word when double clicking. In
+#: addition to these characters any character that is marked as an
+#: alphanumeric character in the Unicode database will be matched.
+
+# select_by_word_characters_forward
+
+#: Characters considered part of a word when extending the selection
+#: forward on double clicking. In addition to these characters any
+#: character that is marked as an alphanumeric character in the
+#: Unicode database will be matched.
+
+#: If empty (default) select_by_word_characters will be used for both
+#: directions.
+
+# click_interval -1.0
+
+#: The interval between successive clicks to detect double/triple
+#: clicks (in seconds). Negative numbers will use the system default
+#: instead, if available, or fallback to 0.5.
+
+# focus_follows_mouse no
+
+#: Set the active window to the window under the mouse when moving the
+#: mouse around. On macOS, this will also cause the OS Window under
+#: the mouse to be focused automatically when the mouse enters it.
+
+# pointer_shape_when_grabbed arrow
+
+#: The shape of the mouse pointer when the program running in the
+#: terminal grabs the mouse.
+
+# default_pointer_shape beam
+
+#: The default shape of the mouse pointer.
+
+# pointer_shape_when_dragging beam
+
+#: The default shape of the mouse pointer when dragging across text.
+
+#: Mouse actions {{{
+
+#: Mouse buttons can be mapped to perform arbitrary actions. The
+#: syntax is:
+
+#: .. code-block:: none
+
+#: mouse_map button-name event-type modes action
+
+#: Where button-name is one of left, middle, right, b1 ... b8 with
+#: added keyboard modifiers. For example: ctrl+shift+left refers to
+#: holding the Ctrl+Shift keys while clicking with the left mouse
+#: button. The value b1 ... b8 can be used to refer to up to eight
+#: buttons on a mouse.
+
+#: event-type is one of press, release, doublepress, triplepress,
+#: click, doubleclick. modes indicates whether the action is performed
+#: when the mouse is grabbed by the program running in the terminal,
+#: or not. The values are grabbed or ungrabbed or a comma separated
+#: combination of them. grabbed refers to when the program running in
+#: the terminal has requested mouse events. Note that the click and
+#: double click events have a delay of click_interval to disambiguate
+#: from double and triple presses.
+
+#: You can run kitty with the kitty --debug-input command line option
+#: to see mouse events. See the builtin actions below to get a sense
+#: of what is possible.
+
+#: If you want to unmap a button, map it to nothing. For example, to
+#: disable opening of URLs with a plain click::
+
+#: mouse_map left click ungrabbed
+
+#: See all the mappable actions including mouse actions here
+#: .
+
+#: .. note::
+#: Once a selection is started, releasing the button that started it will
+#: automatically end it and no release event will be dispatched.
+
+# clear_all_mouse_actions no
+
+#: Remove all mouse action definitions up to this point. Useful, for
+#: instance, to remove the default mouse actions.
+
+#: Click the link under the mouse or move the cursor
+
+# mouse_map left click ungrabbed mouse_handle_click selection link prompt
+
+#:: First check for a selection and if one exists do nothing. Then
+#:: check for a link under the mouse cursor and if one exists, click
+#:: it. Finally check if the click happened at the current shell
+#:: prompt and if so, move the cursor to the click location. Note
+#:: that this requires shell integration
+#:: to work.
+
+#: Click the link under the mouse or move the cursor even when grabbed
+
+# mouse_map shift+left click grabbed,ungrabbed mouse_handle_click selection link prompt
+
+#:: Same as above, except that the action is performed even when the
+#:: mouse is grabbed by the program running in the terminal.
+
+#: Click the link under the mouse cursor
+
+# mouse_map ctrl+shift+left release grabbed,ungrabbed mouse_handle_click link
+
+#:: Variant with Ctrl+Shift is present because the simple click based
+#:: version has an unavoidable delay of click_interval, to
+#:: disambiguate clicks from double clicks.
+
+#: Discard press event for link click
+
+# mouse_map ctrl+shift+left press grabbed discard_event
+
+#:: Prevent this press event from being sent to the program that has
+#:: grabbed the mouse, as the corresponding release event is used to
+#:: open a URL.
+
+#: Paste from the primary selection
+
+# mouse_map middle release ungrabbed paste_from_selection
+
+#: Start selecting text
+
+# mouse_map left press ungrabbed mouse_selection normal
+
+#: Start selecting text in a rectangle
+
+# mouse_map ctrl+alt+left press ungrabbed mouse_selection rectangle
+
+#: Select a word
+
+# mouse_map left doublepress ungrabbed mouse_selection word
+
+#: Select a line
+
+# mouse_map left triplepress ungrabbed mouse_selection line
+
+#: Select line from point
+
+# mouse_map ctrl+alt+left triplepress ungrabbed mouse_selection line_from_point
+
+#:: Select from the clicked point to the end of the line. If you
+#:: would like to select the word at the point and then extend to the
+#:: rest of the line, change `line_from_point` to
+#:: `word_and_line_from_point`.
+
+#: Extend the current selection
+
+# mouse_map right press ungrabbed mouse_selection extend
+
+#:: If you want only the end of the selection to be moved instead of
+#:: the nearest boundary, use move-end instead of extend.
+
+#: Paste from the primary selection even when grabbed
+
+# mouse_map shift+middle release ungrabbed,grabbed paste_selection
+# mouse_map shift+middle press grabbed discard_event
+
+#: Start selecting text even when grabbed
+
+# mouse_map shift+left press ungrabbed,grabbed mouse_selection normal
+
+#: Start selecting text in a rectangle even when grabbed
+
+# mouse_map ctrl+shift+alt+left press ungrabbed,grabbed mouse_selection rectangle
+
+#: Select a word even when grabbed
+
+# mouse_map shift+left doublepress ungrabbed,grabbed mouse_selection word
+
+#: Select a line even when grabbed
+
+# mouse_map shift+left triplepress ungrabbed,grabbed mouse_selection line
+
+#: Select line from point even when grabbed
+
+# mouse_map ctrl+shift+alt+left triplepress ungrabbed,grabbed mouse_selection line_from_point
+
+#:: Select from the clicked point to the end of the line even when
+#:: grabbed. If you would like to select the word at the point and
+#:: then extend to the rest of the line, change `line_from_point` to
+#:: `word_and_line_from_point`.
+
+#: Extend the current selection even when grabbed
+
+# mouse_map shift+right press ungrabbed,grabbed mouse_selection extend
+
+#: Show clicked command output in pager
+
+# mouse_map ctrl+shift+right press ungrabbed mouse_show_command_output
+
+#:: Requires shell integration
+#:: to work.
+
+#: }}}
+
+#: }}}
+
+#: Performance tuning {{{
+
+# repaint_delay 10
+
+#: Delay between screen updates (in milliseconds). Decreasing it,
+#: increases frames-per-second (FPS) at the cost of more CPU usage.
+#: The default value yields ~100 FPS which is more than sufficient for
+#: most uses. Note that to actually achieve 100 FPS, you have to
+#: either set sync_to_monitor to no or use a monitor with a high
+#: refresh rate. Also, to minimize latency when there is pending input
+#: to be processed, this option is ignored.
+
+# input_delay 3
+
+#: Delay before input from the program running in the terminal is
+#: processed (in milliseconds). Note that decreasing it will increase
+#: responsiveness, but also increase CPU usage and might cause flicker
+#: in full screen programs that redraw the entire screen on each loop,
+#: because kitty is so fast that partial screen updates will be drawn.
+#: This setting is ignored when the input buffer is almost full.
+
+# sync_to_monitor yes
+
+#: Sync screen updates to the refresh rate of the monitor. This
+#: prevents screen tearing
+#: when scrolling.
+#: However, it limits the rendering speed to the refresh rate of your
+#: monitor. With a very high speed mouse/high keyboard repeat rate,
+#: you may notice some slight input latency. If so, set this to no.
+
+#: }}}
+
+#: Terminal bell {{{
+
+enable_audio_bell no
+
+#: The audio bell. Useful to disable it in environments that require
+#: silence.
+
+# visual_bell_duration 0.0
+
+#: The visual bell duration (in seconds). Flash the screen when a bell
+#: occurs for the specified number of seconds. Set to zero to disable.
+#: The flash is animated, fading in and out over the specified
+#: duration. The easing function used for the fading can be
+#: controlled. For example, 2.0 linear will casuse the flash to fade
+#: in and out linearly. The default if unspecified is to use ease-in-
+#: out which fades slowly at the start, middle and end. You can
+#: specify different easing functions for the fade-in and fade-out
+#: parts, like this: 2.0 ease-in linear. kitty supports all the CSS
+#: easing functions .
+
+# visual_bell_color none
+
+#: The color used by visual bell. Set to none will fall back to
+#: selection background color. If you feel that the visual bell is too
+#: bright, you can set it to a darker color.
+
+# window_alert_on_bell yes
+
+#: Request window attention on bell. Makes the dock icon bounce on
+#: macOS or the taskbar flash on Linux.
+
+# bell_on_tab "🔔 "
+
+#: Some text or a Unicode symbol to show on the tab if a window in the
+#: tab that does not have focus has a bell. If you want to use leading
+#: or trailing spaces, surround the text with quotes. See
+#: tab_title_template for how this is rendered.
+
+#: For backwards compatibility, values of yes, y and true are
+#: converted to the default bell symbol and no, n, false and none are
+#: converted to the empty string.
+
+# command_on_bell none
+
+#: Program to run when a bell occurs. The environment variable
+#: KITTY_CHILD_CMDLINE can be used to get the program running in the
+#: window in which the bell occurred.
+
+# bell_path none
+
+#: Path to a sound file to play as the bell sound. If set to none, the
+#: system default bell sound is used. Must be in a format supported by
+#: the operating systems sound API, such as WAV or OGA on Linux
+#: (libcanberra) or AIFF, MP3 or WAV on macOS (NSSound).
+
+# linux_bell_theme __custom
+
+#: The XDG Sound Theme kitty will use to play the bell sound. Defaults
+#: to the custom theme name specified in the XDG Sound theme
+#: specification , falling back to the default
+#: freedesktop theme if it does not exist. To change your sound theme
+#: desktop wide, create
+#: :file:~/.local/share/sounds/__custom/index.theme` with the
+#: contents:
+
+#: [Sound Theme]
+
+#: Inherits=name-of-the-sound-theme-you-want-to-use
+
+#: Replace name-of-the-sound-theme-you-want-to-use with the actual
+#: theme name. Now all compliant applications should use sounds from
+#: this theme.
+
+#: }}}
+
+#: Window layout {{{
+
+# remember_window_size yes
+# initial_window_width 640
+# initial_window_height 400
+
+#: If enabled, the OS Window size will be remembered so that new
+#: instances of kitty will have the same size as the previous
+#: instance. If disabled, the OS Window will initially have size
+#: configured by initial_window_width/height, in pixels. You can use a
+#: suffix of "c" on the width/height values to have them interpreted
+#: as number of cells instead of pixels.
+
+# enabled_layouts *
+
+#: The enabled window layouts. A comma separated list of layout names.
+#: The special value all means all layouts. The first listed layout
+#: will be used as the startup layout. Default configuration is all
+#: layouts in alphabetical order. For a list of available layouts, see
+#: the layouts .
+
+# window_resize_step_cells 2
+# window_resize_step_lines 2
+
+#: The step size (in units of cell width/cell height) to use when
+#: resizing kitty windows in a layout with the shortcut
+#: start_resizing_window. The cells value is used for horizontal
+#: resizing, and the lines value is used for vertical resizing.
+
+# window_border_width 0.5pt
+
+#: The width of window borders. Can be either in pixels (px) or pts
+#: (pt). Values in pts will be rounded to the nearest number of pixels
+#: based on screen resolution. If not specified, the unit is assumed
+#: to be pts. Note that borders are displayed only when more than one
+#: window is visible. They are meant to separate multiple windows.
+
+# draw_minimal_borders yes
+
+#: Draw only the minimum borders needed. This means that only the
+#: borders that separate the window from a neighbor are drawn. Note
+#: that setting a non-zero window_margin_width overrides this and
+#: causes all borders to be drawn.
+
+# window_margin_width 0
+
+#: The window margin (in pts) (blank area outside the border). A
+#: single value sets all four sides. Two values set the vertical and
+#: horizontal sides. Three values set top, horizontal and bottom. Four
+#: values set top, right, bottom and left.
+
+# single_window_margin_width -1
+
+#: The window margin to use when only a single window is visible (in
+#: pts). Negative values will cause the value of window_margin_width
+#: to be used instead. A single value sets all four sides. Two values
+#: set the vertical and horizontal sides. Three values set top,
+#: horizontal and bottom. Four values set top, right, bottom and left.
+
+# window_padding_width 0
+
+#: The window padding (in pts) (blank area between the text and the
+#: window border). A single value sets all four sides. Two values set
+#: the vertical and horizontal sides. Three values set top, horizontal
+#: and bottom. Four values set top, right, bottom and left.
+
+# single_window_padding_width -1
+
+#: The window padding to use when only a single window is visible (in
+#: pts). Negative values will cause the value of window_padding_width
+#: to be used instead. A single value sets all four sides. Two values
+#: set the vertical and horizontal sides. Three values set top,
+#: horizontal and bottom. Four values set top, right, bottom and left.
+
+# placement_strategy center
+
+#: When the window size is not an exact multiple of the cell size, the
+#: cell area of the terminal window will have some extra padding on
+#: the sides. You can control how that padding is distributed with
+#: this option. Using a value of center means the cell area will be
+#: placed centrally. A value of top-left means the padding will be
+#: only at the bottom and right edges. The value can be one of: top-
+#: left, top, top-right, left, center, right, bottom-left, bottom,
+#: bottom-right.
+
+# active_border_color #00ff00
+
+#: The color for the border of the active window. Set this to none to
+#: not draw borders around the active window.
+
+# inactive_border_color #cccccc
+
+#: The color for the border of inactive windows.
+
+# bell_border_color #ff5a00
+
+#: The color for the border of inactive windows in which a bell has
+#: occurred.
+
+# inactive_text_alpha 1.0
+
+#: Fade the text in inactive windows by the specified amount (a number
+#: between zero and one, with zero being fully faded).
+
+# hide_window_decorations no
+
+#: Hide the window decorations (title-bar and window borders) with
+#: yes. On macOS, titlebar-only and titlebar-and-corners can be used
+#: to only hide the titlebar and the rounded corners. Whether this
+#: works and exactly what effect it has depends on the window
+#: manager/operating system. Note that the effects of changing this
+#: option when reloading config are undefined. When using titlebar-
+#: only, it is useful to also set window_margin_width and
+#: placement_strategy to prevent the rounded corners from clipping
+#: text. Or use titlebar-and-corners.
+
+# window_logo_path none
+
+#: Path to a logo image. Must be in PNG/JPEG/WEBP/GIF/TIFF/BMP format.
+#: Relative paths are interpreted relative to the kitty config
+#: directory. The logo is displayed in a corner of every kitty window.
+#: The position is controlled by window_logo_position. Individual
+#: windows can be configured to have different logos either using the
+#: launch action or the remote control
+#: facility.
+
+# window_logo_position bottom-right
+
+#: Where to position the window logo in the window. The value can be
+#: one of: top-left, top, top-right, left, center, right, bottom-left,
+#: bottom, bottom-right.
+
+# window_logo_alpha 0.5
+
+#: The amount the logo should be faded into the background. With zero
+#: being fully faded and one being fully opaque.
+
+# window_logo_scale 0
+
+#: The percentage (0-100] of the window size to which the logo should
+#: scale. Using a single number means the logo is scaled to that
+#: percentage of the shortest window dimension, while preseving aspect
+#: ratio of the logo image.
+
+#: Using two numbers means the width and height of the logo are scaled
+#: to the respective percentage of the window's width and height.
+
+#: Using zero as the percentage disables scaling in that dimension. A
+#: single zero (the default) disables all scaling of the window logo.
+
+# resize_debounce_time 0.1 0.5
+
+#: The time to wait (in seconds) before asking the program running in
+#: kitty to resize and redraw the screen during a live resize of the
+#: OS window, when no new resize events have been received, i.e. when
+#: resizing is either paused or finished. On platforms such as macOS,
+#: where the operating system sends events corresponding to the start
+#: and end of a live resize, the second number is used for redraw-
+#: after-pause since kitty can distinguish between a pause and end of
+#: resizing. On such systems the first number is ignored and redraw is
+#: immediate after end of resize. On other systems only the first
+#: number is used so that kitty is "ready" quickly after the end of
+#: resizing, while not also continuously redrawing, to save energy.
+
+# resize_in_steps no
+
+#: Resize the OS window in steps as large as the cells, instead of
+#: with the usual pixel accuracy. Combined with initial_window_width
+#: and initial_window_height in number of cells, this option can be
+#: used to keep the margins as small as possible when resizing the OS
+#: window. Note that this does not currently work on Wayland.
+
+# visual_window_select_characters 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
+
+#: The list of characters for visual window selection. For example,
+#: for selecting a window to focus on with focus_visible_window. The
+#: value should be a series of unique numbers or alphabets, case
+#: insensitive, from the set 0-9A-Z\-=[];',./\\`. Specify your
+#: preference as a string of characters.
+
+# confirm_os_window_close -1
+
+#: Ask for confirmation when closing an OS window or a tab with at
+#: least this number of kitty windows in it by window manager (e.g.
+#: clicking the window close button or pressing the operating system
+#: shortcut to close windows) or by the close_tab action. A value of
+#: zero disables confirmation. This confirmation also applies to
+#: requests to quit the entire application (all OS windows, via the
+#: quit action). Negative values are converted to positive ones,
+#: however, with shell_integration enabled, using negative values
+#: means windows sitting at a shell prompt are not counted, only
+#: windows where some command is currently running. Note that if you
+#: want confirmation when closing individual windows, you can map the
+#: close_window_with_confirmation action.
+
+#: }}}
+
+#: Tab bar {{{
+
+# tab_bar_edge bottom
+
+#: The edge to show the tab bar on, top or bottom.
+
+# tab_bar_margin_width 0.0
+
+#: The margin to the left and right of the tab bar (in pts).
+
+# tab_bar_margin_height 0.0 0.0
+
+#: The margin above and below the tab bar (in pts). The first number
+#: is the margin between the edge of the OS Window and the tab bar.
+#: The second number is the margin between the tab bar and the
+#: contents of the current tab.
+
+# tab_bar_style fade
+
+#: The tab bar style, can be one of:
+
+#: fade
+#: Each tab's edges fade into the background color. (See also tab_fade)
+#: slant
+#: Tabs look like the tabs in a physical file.
+#: separator
+#: Tabs are separated by a configurable separator. (See also
+#: tab_separator)
+#: powerline
+#: Tabs are shown as a continuous line with "fancy" separators.
+#: (See also tab_powerline_style)
+#: custom
+#: A user-supplied Python function called draw_tab is loaded from the file
+#: tab_bar.py in the kitty config directory. For examples of how to
+#: write such a function, see the functions named draw_tab_with_* in
+#: kitty's source code: kitty/tab_bar.py. See also
+#: this discussion
+#: for examples from kitty users.
+#: hidden
+#: The tab bar is hidden. If you use this, you might want to create
+#: a mapping for the select_tab action which presents you with a list of
+#: tabs and allows for easy switching to a tab.
+
+# tab_bar_align left
+
+#: The horizontal alignment of the tab bar, can be one of: left,
+#: center, right.
+
+# tab_bar_min_tabs 2
+
+#: The minimum number of tabs that must exist before the tab bar is
+#: shown.
+
+# tab_switch_strategy previous
+
+#: The algorithm to use when switching to a tab when the current tab
+#: is closed. The default of previous will switch to the last used
+#: tab. A value of left will switch to the tab to the left of the
+#: closed tab. A value of right will switch to the tab to the right of
+#: the closed tab. A value of last will switch to the right-most tab.
+
+# tab_fade 0.25 0.5 0.75 1
+
+#: Control how each tab fades into the background when using fade for
+#: the tab_bar_style. Each number is an alpha (between zero and one)
+#: that controls how much the corresponding cell fades into the
+#: background, with zero being no fade and one being full fade. You
+#: can change the number of cells used by adding/removing entries to
+#: this list.
+
+# tab_separator " ┇"
+
+#: The separator between tabs in the tab bar when using separator as
+#: the tab_bar_style.
+
+# tab_powerline_style angled
+
+#: The powerline separator style between tabs in the tab bar when
+#: using powerline as the tab_bar_style, can be one of: angled,
+#: slanted, round.
+
+# tab_activity_symbol none
+
+#: Some text or a Unicode symbol to show on the tab if a window in the
+#: tab that does not have focus has some activity. If you want to use
+#: leading or trailing spaces, surround the text with quotes. See
+#: tab_title_template for how this is rendered.
+
+# tab_title_max_length 0
+
+#: The maximum number of cells that can be used to render the text in
+#: a tab. A value of zero means that no limit is applied.
+
+# tab_title_template "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{title}"
+
+#: A template to render the tab title. The default just renders the
+#: title with optional symbols for bell and activity. If you wish to
+#: include the tab-index as well, use something like: {index}:{title}.
+#: Useful if you have shortcuts mapped for goto_tab N. If you prefer
+#: to see the index as a superscript, use {sup.index}. All data
+#: available is:
+
+#: title
+#: The current tab title.
+#: index
+#: The tab index usable with goto_tab N goto_tab shortcuts.
+#: layout_name
+#: The current layout name.
+#: num_windows
+#: The number of windows in the tab.
+#: num_window_groups
+#: The number of window groups (a window group is a window and all of its overlay windows) in the tab.
+#: tab.active_wd
+#: The working directory of the currently active window in the tab
+#: (expensive, requires syscall). Use active_oldest_wd to get
+#: the directory of the oldest foreground process rather than the newest.
+#: tab.active_exe
+#: The name of the executable running in the foreground of the currently
+#: active window in the tab (expensive, requires syscall). Use
+#: active_oldest_exe for the oldest foreground process.
+#: max_title_length
+#: The maximum title length available.
+#: keyboard_mode
+#: The name of the current keyboard mode or the empty string if no keyboard mode is active.
+
+#: Note that formatting is done by Python's string formatting
+#: machinery, so you can use, for instance, {layout_name[:2].upper()}
+#: to show only the first two letters of the layout name, upper-cased.
+#: If you want to style the text, you can use styling directives, for
+#: example:
+#: `{fmt.fg.red}red{fmt.fg.tab}normal{fmt.bg._00FF00}greenbg{fmt.bg.tab}`.
+#: Similarly, for bold and italic:
+#: `{fmt.bold}bold{fmt.nobold}normal{fmt.italic}italic{fmt.noitalic}`.
+#: Note that for backward compatibility, if {bell_symbol} or
+#: {activity_symbol} are not present in the template, they are
+#: prepended to it.
+
+# active_tab_title_template none
+
+#: Template to use for active tabs. If not specified falls back to
+#: tab_title_template.
+
+# active_tab_foreground #000
+# active_tab_background #eee
+# active_tab_font_style bold-italic
+# inactive_tab_foreground #444
+# inactive_tab_background #999
+# inactive_tab_font_style normal
+
+#: Tab bar colors and styles.
+
+# tab_bar_background none
+
+#: Background color for the tab bar. Defaults to using the terminal
+#: background color.
+
+# tab_bar_margin_color none
+
+#: Color for the tab bar margin area. Defaults to using the terminal
+#: background color for margins above and below the tab bar. For side
+#: margins the default color is chosen to match the background color
+#: of the neighboring tab.
+
+#: }}}
+
+#: Color scheme {{{
+
+# foreground #dddddd
+# background #000000
+
+#: The foreground and background colors.
+
+# background_opacity 1.0
+
+#: The opacity of the background. A number between zero and one, where
+#: one is opaque and zero is fully transparent. This will only work if
+#: supported by the OS (for instance, when using a compositor under
+#: X11). Note that it only sets the background color's opacity in
+#: cells that have the same background color as the default terminal
+#: background, so that things like the status bar in vim, powerline
+#: prompts, etc. still look good. But it means that if you use a color
+#: theme with a background color in your editor, it will not be
+#: rendered as transparent. Instead you should change the default
+#: background color in your kitty config and not use a background
+#: color in the editor color scheme. Or use the escape codes to set
+#: the terminals default colors in a shell script to launch your
+#: editor. See also second_transparent_bg. Be aware that using a value
+#: less than 1.0 is a (possibly significant) performance hit. When
+#: using a low value for this setting, it is desirable that you set
+#: the background color to a color the matches the general color of
+#: the desktop background, for best text rendering. If you want to
+#: dynamically change transparency of windows, set
+#: dynamic_background_opacity to yes (this is off by default as it has
+#: a performance cost). Changing this option when reloading the config
+#: will only work if dynamic_background_opacity was enabled in the
+#: original config.
+
+# background_blur 0
+
+#: Set to a positive value to enable background blur (blurring of the
+#: visuals behind a transparent window) on platforms that support it.
+#: Only takes effect when background_opacity is less than one. On
+#: macOS, this will also control the blur radius (amount of blurring).
+#: Setting it to too high a value will cause severe performance issues
+#: and/or rendering artifacts. Usually, values up to 64 work well.
+#: Note that this might cause performance issues, depending on how the
+#: platform implements it, so use with care. Currently supported on
+#: macOS and KDE.
+
+# background_image none
+
+#: Path to a background image. Must be in PNG/JPEG/WEBP/TIFF/GIF/BMP
+#: format.
+
+# background_image_layout tiled
+
+#: Whether to tile, scale or clamp the background image. The value can
+#: be one of tiled, mirror-tiled, scaled, clamped, centered or
+#: cscaled. The scaled and cscaled values scale the image to the
+#: window size, with cscaled preserving the image aspect ratio.
+
+# background_image_linear no
+
+#: When background image is scaled, whether linear interpolation
+#: should be used.
+
+# second_transparent_bg none
+
+#: When the background color matches this color, background_opacity is
+#: applied to it to render it as semi-transparent, just as for colors
+#: matching the main background color. Useful in more complex UIs like
+#: editors where you could want more than a single background color to
+#: be rendered as transparent, for instance, for a cursor highlight
+#: line background. Terminal applications can set this color using The
+#: kitty color control escape code.
+
+# dynamic_background_opacity no
+
+#: Allow changing of the background_opacity dynamically, using either
+#: keyboard shortcuts (increase_background_opacity and
+#: decrease_background_opacity) or the remote control facility.
+#: Changing this option by reloading the config is not supported.
+
+# background_tint 0.0
+
+#: How much to tint the background image by the background color. This
+#: option makes it easier to read the text. Tinting is done using the
+#: current background color for each window. This option applies only
+#: if background_opacity is set and transparent windows are supported
+#: or background_image is set.
+
+# background_tint_gaps 1.0
+
+#: How much to tint the background image at the window gaps by the
+#: background color, after applying background_tint. Since this is
+#: multiplicative with background_tint, it can be used to lighten the
+#: tint over the window gaps for a *separated* look.
+
+# dim_opacity 0.4
+
+#: How much to dim text that has the DIM/FAINT attribute set. One
+#: means no dimming and zero means fully dimmed (i.e. invisible).
+
+# selection_foreground #000000
+# selection_background #fffacd
+
+#: The foreground and background colors for text selected with the
+#: mouse. Setting both of these to none will cause a "reverse video"
+#: effect for selections, where the selection will be the cell text
+#: color and the text will become the cell background color. Setting
+#: only selection_foreground to none will cause the foreground color
+#: to be used unchanged. Note that these colors can be overridden by
+#: the program running in the terminal.
+
+#: The color table {{{
+
+#: The 256 terminal colors. There are 8 basic colors, each color has a
+#: dull and bright version, for the first 16 colors. You can set the
+#: remaining 240 colors as color16 to color255.
+
+# color0 #000000
+# color8 #767676
+
+#: black
+
+# color1 #cc0403
+# color9 #f2201f
+
+#: red
+
+# color2 #19cb00
+# color10 #23fd00
+
+#: green
+
+# color3 #cecb00
+# color11 #fffd00
+
+#: yellow
+
+# color4 #0d73cc
+# color12 #1a8fff
+
+#: blue
+
+# color5 #cb1ed1
+# color13 #fd28ff
+
+#: magenta
+
+# color6 #0dcdcd
+# color14 #14ffff
+
+#: cyan
+
+# color7 #dddddd
+# color15 #ffffff
+
+#: white
+
+# mark1_foreground black
+
+#: Color for marks of type 1
+
+# mark1_background #98d3cb
+
+#: Color for marks of type 1 (light steel blue)
+
+# mark2_foreground black
+
+#: Color for marks of type 2
+
+# mark2_background #f2dcd3
+
+#: Color for marks of type 1 (beige)
+
+# mark3_foreground black
+
+#: Color for marks of type 3
+
+# mark3_background #f274bc
+
+#: Color for marks of type 3 (violet)
+
+#: }}}
+
+#: }}}
+
+#: Advanced {{{
+
+shell /usr/bin/fish
+
+#: The shell program to execute. The default value of . means to use
+#: the value of of the SHELL environment variable or if unset,
+#: whatever shell is set as the default shell for the current user.
+#: Note that on macOS if you change this, you might need to add
+#: --login and --interactive to ensure that the shell starts in
+#: interactive mode and reads its startup rc files. Environment
+#: variables are expanded in this setting.
+
+# editor .
+
+#: The terminal based text editor (such as vim or nano) to use when
+#: editing the kitty config file or similar tasks.
+
+#: The default value of . means to use the environment variables
+#: VISUAL and EDITOR in that order. If these variables aren't set,
+#: kitty will run your shell ($SHELL -l -i -c env) to see if your
+#: shell startup rc files set VISUAL or EDITOR. If that doesn't work,
+#: kitty will cycle through various known editors (vim, emacs, etc.)
+#: and take the first one that exists on your system.
+
+# close_on_child_death no
+
+#: Close the window when the child process (usually the shell) exits.
+#: With the default value no, the terminal will remain open when the
+#: child exits as long as there are still other processes outputting
+#: to the terminal (for example disowned or backgrounded processes).
+#: When enabled with yes, the window will close as soon as the child
+#: process exits. Note that setting it to yes means that any
+#: background processes still using the terminal can fail silently
+#: because their stdout/stderr/stdin no longer work.
+
+# remote_control_password
+
+#: Allow other programs to control kitty using passwords. This option
+#: can be specified multiple times to add multiple passwords. If no
+#: passwords are present kitty will ask the user for permission if a
+#: program tries to use remote control with a password. A password can
+#: also *optionally* be associated with a set of allowed remote
+#: control actions. For example::
+
+#: remote_control_password "my passphrase" get-colors set-colors focus-window focus-tab
+
+#: Only the specified actions will be allowed when using this
+#: password. Glob patterns can be used too, for example::
+
+#: remote_control_password "my passphrase" set-tab-* resize-*
+
+#: To get a list of available actions, run::
+
+#: kitten @ --help
+
+#: A set of actions to be allowed when no password is sent can be
+#: specified by using an empty password. For example::
+
+#: remote_control_password "" *-colors
+
+#: Finally, the path to a python module can be specified that provides
+#: a function is_cmd_allowed that is used to check every remote
+#: control command. For example::
+
+#: remote_control_password "my passphrase" my_rc_command_checker.py
+
+#: Relative paths are resolved from the kitty configuration directory.
+#: See rc_custom_auth for details.
+
+# allow_remote_control no
+
+#: Allow other programs to control kitty. If you turn this on, other
+#: programs can control all aspects of kitty, including sending text
+#: to kitty windows, opening new windows, closing windows, reading the
+#: content of windows, etc. Note that this even works over SSH
+#: connections. The default setting of no prevents any form of remote
+#: control. The meaning of the various values are:
+
+#: password
+#: Remote control requests received over both the TTY device and the socket
+#: are confirmed based on passwords, see remote_control_password.
+
+#: socket-only
+#: Remote control requests received over a socket are accepted
+#: unconditionally. Requests received over the TTY are denied.
+#: See listen_on.
+
+#: socket
+#: Remote control requests received over a socket are accepted
+#: unconditionally. Requests received over the TTY are confirmed based on
+#: password.
+
+#: no
+#: Remote control is completely disabled.
+
+#: yes
+#: Remote control requests are always accepted.
+
+# listen_on none
+
+#: Listen to the specified socket for remote control connections. Note
+#: that this will apply to all kitty instances. It can be overridden
+#: by the kitty --listen-on command line option. For UNIX sockets,
+#: such as unix:${TEMP}/mykitty or unix:@mykitty (on Linux).
+#: Environment variables are expanded and relative paths are resolved
+#: with respect to the temporary directory. If {kitty_pid} is present,
+#: then it is replaced by the PID of the kitty process, otherwise the
+#: PID of the kitty process is appended to the value, with a hyphen.
+#: For TCP sockets such as tcp:localhost:0 a random port is always
+#: used even if a non-zero port number is specified. See the help for
+#: kitty --listen-on for more details. Note that this will be ignored
+#: unless allow_remote_control is set to either: yes, socket or
+#: socket-only. Changing this option by reloading the config is not
+#: supported.
+
+# env
+
+#: Specify the environment variables to be set in all child processes.
+#: Using the name with an equal sign (e.g. env VAR=) will set it to
+#: the empty string. Specifying only the name (e.g. env VAR) will
+#: remove the variable from the child process' environment. Note that
+#: environment variables are expanded recursively, for example::
+
+#: env VAR1=a
+#: env VAR2=${HOME}/${VAR1}/b
+
+#: The value of VAR2 will be /a/b.
+
+# filter_notification
+
+#: Specify rules to filter out notifications sent by applications
+#: running in kitty. Can be specified multiple times to create
+#: multiple filter rules. A rule specification is of the form
+#: field:regexp. A filter rule can match on any of the fields: title,
+#: body, app, type. The special value of all filters out all
+#: notifications. Rules can be combined using Boolean operators. Some
+#: examples::
+
+#: filter_notification title:hello or body:"abc.*def"
+#: # filter out notification from vim except for ones about updates, (?i)
+#: # makes matching case insesitive.
+#: filter_notification app:"[ng]?vim" and not body:"(?i)update"
+#: # filter out all notifications
+#: filter_notification all
+
+#: The field app is the name of the application sending the
+#: notification and type is the type of the notification. Not all
+#: applications will send these fields, so you can also match on the
+#: title and body of the notification text. More sophisticated
+#: programmatic filtering and custom actions on notifications can be
+#: done by creating a notifications.py file in the kitty config
+#: directory (~/.config/kitty). An annotated sample is available
+#: .
+
+# watcher
+
+#: Path to python file which will be loaded for watchers
+#: . Can be
+#: specified more than once to load multiple watchers. The watchers
+#: will be added to every kitty window. Relative paths are resolved
+#: relative to the kitty config directory. Note that reloading the
+#: config will only affect windows created after the reload.
+
+# exe_search_path
+
+#: Control where kitty finds the programs to run. The default search
+#: order is: First search the system wide PATH, then ~/.local/bin and
+#: ~/bin. If still not found, the PATH defined in the login shell
+#: after sourcing all its startup files is tried. Finally, if present,
+#: the PATH specified by the env option is tried.
+
+#: This option allows you to prepend, append, or remove paths from
+#: this search order. It can be specified multiple times for multiple
+#: paths. A simple path will be prepended to the search order. A path
+#: that starts with the + sign will be append to the search order,
+#: after ~/bin above. A path that starts with the - sign will be
+#: removed from the entire search order. For example::
+
+#: exe_search_path /some/prepended/path
+#: exe_search_path +/some/appended/path
+#: exe_search_path -/some/excluded/path
+
+# update_check_interval 24
+
+#: The interval to periodically check if an update to kitty is
+#: available (in hours). If an update is found, a system notification
+#: is displayed informing you of the available update. The default is
+#: to check every 24 hours, set to zero to disable. Update checking is
+#: only done by the official binary builds. Distro packages or source
+#: builds do not do update checking. Changing this option by reloading
+#: the config is not supported.
+
+# startup_session none
+
+#: Path to a session file to use for all kitty instances. Can be
+#: overridden by using the kitty --session =none command line option
+#: for individual instances. See sessions
+#: in the kitty
+#: documentation for details. Note that relative paths are interpreted
+#: with respect to the kitty config directory. Environment variables
+#: in the path are expanded. Changing this option by reloading the
+#: config is not supported. Note that if kitty is invoked with command
+#: line arguments specifying a command to run, this option is ignored.
+
+# clipboard_control write-clipboard write-primary read-clipboard-ask read-primary-ask
+
+#: Allow programs running in kitty to read and write from the
+#: clipboard. You can control exactly which actions are allowed. The
+#: possible actions are: write-clipboard, read-clipboard, write-
+#: primary, read-primary, read-clipboard-ask, read-primary-ask. The
+#: default is to allow writing to the clipboard and primary selection
+#: and to ask for permission when a program tries to read from the
+#: clipboard. Note that disabling the read confirmation is a security
+#: risk as it means that any program, even the ones running on a
+#: remote server via SSH can read your clipboard. See also
+#: clipboard_max_size.
+
+# clipboard_max_size 512
+
+#: The maximum size (in MB) of data from programs running in kitty
+#: that will be stored for writing to the system clipboard. A value of
+#: zero means no size limit is applied. See also clipboard_control.
+
+# file_transfer_confirmation_bypass
+
+#: The password that can be supplied to the file transfer kitten
+#: to skip the
+#: transfer confirmation prompt. This should only be used when
+#: initiating transfers from trusted computers, over trusted networks
+#: or encrypted transports, as it allows any programs running on the
+#: remote machine to read/write to the local filesystem, without
+#: permission.
+
+# allow_hyperlinks yes
+
+#: Process hyperlink escape sequences (OSC 8). If disabled OSC 8
+#: escape sequences are ignored. Otherwise they become clickable
+#: links, that you can click with the mouse or by using the hints
+#: kitten . The
+#: special value of ask means that kitty will ask before opening the
+#: link when clicked.
+
+# shell_integration enabled
+
+#: Enable shell integration on supported shells. This enables features
+#: such as jumping to previous prompts, browsing the output of the
+#: previous command in a pager, etc. on supported shells. Set to
+#: disabled to turn off shell integration, completely. It is also
+#: possible to disable individual features, set to a space separated
+#: list of these values: no-rc, no-cursor, no-title, no-cwd, no-
+#: prompt-mark, no-complete, no-sudo. See Shell integration
+#: for details.
+
+# allow_cloning ask
+
+#: Control whether programs running in the terminal can request new
+#: windows to be created. The canonical example is clone-in-kitty
+#: .
+#: By default, kitty will ask for permission for each clone request.
+#: Allowing cloning unconditionally gives programs running in the
+#: terminal (including over SSH) permission to execute arbitrary code,
+#: as the user who is running the terminal, on the computer that the
+#: terminal is running on.
+
+# clone_source_strategies venv,conda,env_var,path
+
+#: Control what shell code is sourced when running clone-in-kitty in
+#: the newly cloned window. The supported strategies are:
+
+#: venv
+#: Source the file $VIRTUAL_ENV/bin/activate. This is used by the
+#: Python stdlib venv module and allows cloning venvs automatically.
+#: conda
+#: Run conda activate $CONDA_DEFAULT_ENV. This supports the virtual
+#: environments created by conda.
+#: env_var
+#: Execute the contents of the environment variable
+#: KITTY_CLONE_SOURCE_CODE with eval.
+#: path
+#: Source the file pointed to by the environment variable
+#: KITTY_CLONE_SOURCE_PATH.
+
+#: This option must be a comma separated list of the above values.
+#: Only the first valid match, in the order specified, is sourced.
+
+# notify_on_cmd_finish never
+
+#: Show a desktop notification when a long-running command finishes
+#: (needs shell_integration). The possible values are:
+
+#: never
+#: Never send a notification.
+
+#: unfocused
+#: Only send a notification when the window does not have keyboard focus.
+
+#: invisible
+#: Only send a notification when the window both is unfocused and not visible
+#: to the user, for example, because it is in an inactive tab or its OS window
+#: is not currently active.
+
+#: always
+#: Always send a notification, regardless of window state.
+
+#: There are two optional arguments:
+
+#: First, the minimum duration for what is considered a long running
+#: command. The default is 5 seconds. Specify a second argument to set
+#: the duration. For example: invisible 15. Do not set the value too
+#: small, otherwise a command that launches a new OS Window and exits
+#: will spam a notification.
+
+#: Second, the action to perform. The default is notify. The possible
+#: values are:
+
+#: notify
+#: Send a desktop notification.
+
+#: bell
+#: Ring the terminal bell.
+
+#: command
+#: Run a custom command. All subsequent arguments are the cmdline to run.
+
+#: Some more examples::
+
+#: # Send a notification when a command takes more than 5 seconds in an unfocused window
+#: notify_on_cmd_finish unfocused
+#: # Send a notification when a command takes more than 10 seconds in a invisible window
+#: notify_on_cmd_finish invisible 10.0
+#: # Ring a bell when a command takes more than 10 seconds in a invisible window
+#: notify_on_cmd_finish invisible 10.0 bell
+#: # Run 'notify-send' when a command takes more than 10 seconds in a invisible window
+#: # Here %c is replaced by the current command line and %s by the job exit code
+#: notify_on_cmd_finish invisible 10.0 command notify-send "job finished with status: %s" %c
+
+# term xterm-kitty
+
+#: The value of the TERM environment variable to set. Changing this
+#: can break many terminal programs, only change it if you know what
+#: you are doing, not because you read some advice on "Stack Overflow"
+#: to change it. The TERM variable is used by various programs to get
+#: information about the capabilities and behavior of the terminal. If
+#: you change it, depending on what programs you run, and how
+#: different the terminal you are changing it to is, various things
+#: from key-presses, to colors, to various advanced features may not
+#: work. Changing this option by reloading the config will only affect
+#: newly created windows.
+
+# terminfo_type path
+
+#: The value of the TERMINFO environment variable to set. This
+#: variable is used by programs running in the terminal to search for
+#: terminfo databases. The default value of path causes kitty to set
+#: it to a filesystem location containing the kitty terminfo database.
+#: A value of direct means put the entire database into the env var
+#: directly. This can be useful when connecting to containers, for
+#: example. But, note that not all software supports this. A value of
+#: none means do not touch the variable.
+
+# forward_stdio no
+
+#: Forward STDOUT and STDERR of the kitty process to child processes
+#: as file descriptors 3 and 4. This is useful for debugging as it
+#: allows child processes to print to kitty's STDOUT directly. For
+#: example, echo hello world >&3 in a shell will print to the parent
+#: kitty's STDOUT. When enabled, this also sets the
+#: KITTY_STDIO_FORWARDED=3 environment variable so child processes
+#: know about the forwarding.
+
+# menu_map
+
+#: Specify entries for various menus in kitty. Currently only the
+#: global menubar on macOS is supported. For example::
+
+#: menu_map global "Actions::Launch something special" launch --hold --type=os-window sh -c "echo hello world"
+
+#: This will create a menu entry named "Launch something special" in
+#: an "Actions" menu in the macOS global menubar. Sub-menus can be
+#: created by adding more levels separated by the :: characters.
+
+#: }}}
+
+#: OS specific tweaks {{{
+
+# wayland_titlebar_color system
+
+#: The color of the kitty window's titlebar on Wayland systems with
+#: client side window decorations such as GNOME. A value of system
+#: means to use the default system colors, a value of background means
+#: to use the background color of the currently active kitty window
+#: and finally you can use an arbitrary color, such as #12af59 or red.
+
+# macos_titlebar_color system
+
+#: The color of the kitty window's titlebar on macOS. A value of
+#: system means to use the default system color, light or dark can
+#: also be used to set it explicitly. A value of background means to
+#: use the background color of the currently active window and finally
+#: you can use an arbitrary color, such as #12af59 or red. WARNING:
+#: This option works by using a hack when arbitrary color (or
+#: background) is configured, as there is no proper Cocoa API for it.
+#: It sets the background color of the entire window and makes the
+#: titlebar transparent. As such it is incompatible with
+#: background_opacity. If you want to use both, you are probably
+#: better off just hiding the titlebar with hide_window_decorations.
+
+# macos_option_as_alt no
+
+#: Use the Option key as an Alt key on macOS. With this set to no,
+#: kitty will use the macOS native Option+Key to enter Unicode
+#: character behavior. This will break any Alt+Key keyboard shortcuts
+#: in your terminal programs, but you can use the macOS Unicode input
+#: technique. You can use the values: left, right or both to use only
+#: the left, right or both Option keys as Alt, instead. Note that
+#: kitty itself always treats Option the same as Alt. This means you
+#: cannot use this option to configure different kitty shortcuts for
+#: Option+Key vs. Alt+Key. Also, any kitty shortcuts using
+#: Option/Alt+Key will take priority, so that any such key presses
+#: will not be passed to terminal programs running inside kitty.
+#: Changing this option by reloading the config is not supported.
+
+# macos_hide_from_tasks no
+
+#: Hide the kitty window from running tasks on macOS (⌘+Tab and the
+#: Dock). Changing this option by reloading the config is not
+#: supported.
+
+# macos_quit_when_last_window_closed no
+
+#: Have kitty quit when all the top-level windows are closed on macOS.
+#: By default, kitty will stay running, even with no open windows, as
+#: is the expected behavior on macOS.
+
+# macos_window_resizable yes
+
+#: Disable this if you want kitty top-level OS windows to not be
+#: resizable on macOS.
+
+# macos_thicken_font 0
+
+#: Draw an extra border around the font with the given width, to
+#: increase legibility at small font sizes on macOS. For example, a
+#: value of 0.75 will result in rendering that looks similar to sub-
+#: pixel antialiasing at common font sizes. Note that in modern kitty,
+#: this option is obsolete (although still supported). Consider using
+#: text_composition_strategy instead.
+
+# macos_traditional_fullscreen no
+
+#: Use the macOS traditional full-screen transition, that is faster,
+#: but less pretty.
+
+# macos_show_window_title_in all
+
+#: Control where the window title is displayed on macOS. A value of
+#: window will show the title of the currently active window at the
+#: top of the macOS window. A value of menubar will show the title of
+#: the currently active window in the macOS global menu bar, making
+#: use of otherwise wasted space. A value of all will show the title
+#: in both places, and none hides the title. See
+#: macos_menubar_title_max_length for how to control the length of the
+#: title in the menu bar.
+
+# macos_menubar_title_max_length 0
+
+#: The maximum number of characters from the window title to show in
+#: the macOS global menu bar. Values less than one means that there is
+#: no maximum limit.
+
+# macos_custom_beam_cursor no
+
+#: Use a custom mouse cursor for macOS that is easier to see on both
+#: light and dark backgrounds. Nowadays, the default macOS cursor
+#: already comes with a white border. WARNING: this might make your
+#: mouse cursor invisible on dual GPU machines. Changing this option
+#: by reloading the config is not supported.
+
+# macos_colorspace srgb
+
+#: The colorspace in which to interpret terminal colors. The default
+#: of srgb will cause colors to match those seen in web browsers. The
+#: value of default will use whatever the native colorspace of the
+#: display is. The value of displayp3 will use Apple's special
+#: snowflake display P3 color space, which will result in over
+#: saturated (brighter) colors with some color shift. Reloading
+#: configuration will change this value only for newly created OS
+#: windows.
+
+# linux_display_server auto
+
+#: Choose between Wayland and X11 backends. By default, an appropriate
+#: backend based on the system state is chosen automatically. Set it
+#: to x11 or wayland to force the choice. Changing this option by
+#: reloading the config is not supported.
+
+# wayland_enable_ime yes
+
+#: Enable Input Method Extension on Wayland. This is typically used
+#: for inputting text in East Asian languages. However, its
+#: implementation in Wayland is often buggy and introduces latency
+#: into the input loop, so disable this if you know you dont need it.
+#: Changing this option by reloading the config is not supported, it
+#: will not have any effect.
+
+#: }}}
+
+#: Keyboard shortcuts {{{
+
+#: Keys are identified simply by their lowercase Unicode characters.
+#: For example: a for the A key, [ for the left square bracket key,
+#: etc. For functional keys, such as Enter or Escape, the names are
+#: present at Functional key definitions
+#: .
+#: For modifier keys, the names are ctrl (control, ⌃), shift (⇧), alt
+#: (opt, option, ⌥), super (cmd, command, ⌘).
+
+#: Simple shortcut mapping is done with the map directive. For full
+#: details on advanced mapping including modal and per application
+#: maps, see mapping . Some
+#: quick examples to illustrate common tasks::
+
+#: # unmap a keyboard shortcut, passing it to the program running in kitty
+#: map kitty_mod+space
+#: # completely ignore a keyboard event
+#: map ctrl+alt+f1 discard_event
+#: # combine multiple actions
+#: map kitty_mod+e combine : new_window : next_layout
+#: # multi-key shortcuts
+#: map ctrl+x>ctrl+y>z action
+
+#: The full list of actions that can be mapped to key presses is
+#: available here .
+
+# kitty_mod ctrl+shift
+
+#: Special modifier key alias for default shortcuts. You can change
+#: the value of this option to alter all default shortcuts that use
+#: kitty_mod.
+
+# clear_all_shortcuts no
+
+#: Remove all shortcut definitions up to this point. Useful, for
+#: instance, to remove the default shortcuts.
+
+# action_alias
+
+#: E.g. action_alias launch_tab launch --type=tab --cwd=current
+
+#: Define action aliases to avoid repeating the same options in
+#: multiple mappings. Aliases can be defined for any action and will
+#: be expanded recursively. For example, the above alias allows you to
+#: create mappings to launch a new tab in the current working
+#: directory without duplication::
+
+#: map f1 launch_tab vim
+#: map f2 launch_tab emacs
+
+#: Similarly, to alias kitten invocation::
+
+#: action_alias hints kitten hints --hints-offset=0
+
+# kitten_alias
+
+#: E.g. kitten_alias hints hints --hints-offset=0
+
+#: Like action_alias above, but specifically for kittens. Generally,
+#: prefer to use action_alias. This option is a legacy version,
+#: present for backwards compatibility. It causes all invocations of
+#: the aliased kitten to be substituted. So the example above will
+#: cause all invocations of the hints kitten to have the --hints-
+#: offset=0 option applied.
+
+#: Clipboard {{{
+
+#: Copy to clipboard
+
+# map kitty_mod+c copy_to_clipboard
+# map cmd+c copy_to_clipboard
+
+#:: There is also a copy_or_interrupt action that can be optionally
+#:: mapped to Ctrl+C. It will copy only if there is a selection and
+#:: send an interrupt otherwise. Similarly,
+#:: copy_and_clear_or_interrupt will copy and clear the selection or
+#:: send an interrupt if there is no selection.
+
+#: Paste from clipboard
+
+# map kitty_mod+v paste_from_clipboard
+# map cmd+v paste_from_clipboard
+
+#: Paste from selection
+
+# map kitty_mod+s paste_from_selection
+# map shift+insert paste_from_selection
+
+#: Pass selection to program
+
+# map kitty_mod+o pass_selection_to_program
+
+#:: You can also pass the contents of the current selection to any
+#:: program with pass_selection_to_program. By default, the system's
+#:: open program is used, but you can specify your own, the selection
+#:: will be passed as a command line argument to the program. For
+#:: example::
+
+#:: map kitty_mod+o pass_selection_to_program firefox
+
+#:: You can pass the current selection to a terminal program running
+#:: in a new kitty window, by using the @selection placeholder::
+
+#:: map kitty_mod+y new_window less @selection
+
+#: }}}
+
+#: Scrolling {{{
+
+#: Scroll line up
+
+# map kitty_mod+up scroll_line_up
+# map kitty_mod+k scroll_line_up
+# map opt+cmd+page_up scroll_line_up
+# map cmd+up scroll_line_up
+
+#: Scroll line down
+
+# map kitty_mod+down scroll_line_down
+# map kitty_mod+j scroll_line_down
+# map opt+cmd+page_down scroll_line_down
+# map cmd+down scroll_line_down
+
+#: Scroll page up
+
+# map kitty_mod+page_up scroll_page_up
+# map cmd+page_up scroll_page_up
+
+#: Scroll page down
+
+# map kitty_mod+page_down scroll_page_down
+# map cmd+page_down scroll_page_down
+
+#: Scroll to top
+
+# map kitty_mod+home scroll_home
+# map cmd+home scroll_home
+
+#: Scroll to bottom
+
+# map kitty_mod+end scroll_end
+# map cmd+end scroll_end
+
+#: Scroll to previous shell prompt
+
+# map kitty_mod+z scroll_to_prompt -1
+
+#:: Use a parameter of 0 for scroll_to_prompt to scroll to the last
+#:: jumped to or the last clicked position. Requires shell
+#:: integration
+#:: to work.
+
+#: Scroll to next shell prompt
+
+# map kitty_mod+x scroll_to_prompt 1
+
+#: Browse scrollback buffer in pager
+
+# map kitty_mod+h show_scrollback
+
+#:: You can pipe the contents of the current screen and history
+#:: buffer as STDIN to an arbitrary program using launch --stdin-
+#:: source. For example, the following opens the scrollback buffer in
+#:: less in an overlay window::
+
+#:: map f1 launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay less +G -R
+
+#:: For more details on piping screen and buffer contents to external
+#:: programs, see launch .
+
+#: Browse output of the last shell command in pager
+
+# map kitty_mod+g show_last_command_output
+
+#:: You can also define additional shortcuts to get the command
+#:: output. For example, to get the first command output on screen::
+
+#:: map f1 show_first_command_output_on_screen
+
+#:: To get the command output that was last accessed by a keyboard
+#:: action or mouse action::
+
+#:: map f1 show_last_visited_command_output
+
+#:: You can pipe the output of the last command run in the shell
+#:: using the launch action. For example, the following opens the
+#:: output in less in an overlay window::
+
+#:: map f1 launch --stdin-source=@last_cmd_output --stdin-add-formatting --type=overlay less +G -R
+
+#:: To get the output of the first command on the screen, use
+#:: @first_cmd_output_on_screen. To get the output of the last jumped
+#:: to command, use @last_visited_cmd_output.
+
+#:: Requires shell integration
+#:: to work.
+
+#: }}}
+
+#: Window management {{{
+
+#: New window
+
+# map kitty_mod+enter new_window
+# map cmd+enter new_window
+
+#:: You can open a new kitty window running an arbitrary program, for
+#:: example::
+
+#:: map kitty_mod+y launch mutt
+
+#:: You can open a new window with the current working directory set
+#:: to the working directory of the current window using::
+
+#:: map ctrl+alt+enter launch --cwd=current
+
+#:: You can open a new window that is allowed to control kitty via
+#:: the kitty remote control facility with launch --allow-remote-
+#:: control. Any programs running in that window will be allowed to
+#:: control kitty. For example::
+
+#:: map ctrl+enter launch --allow-remote-control some_program
+
+#:: You can open a new window next to the currently active window or
+#:: as the first window, with::
+
+#:: map ctrl+n launch --location=neighbor
+#:: map ctrl+f launch --location=first
+
+#:: For more details, see launch
+#:: .
+
+#: New OS window
+
+# map kitty_mod+n new_os_window
+# map cmd+n new_os_window
+
+#:: Works like new_window above, except that it opens a top-level OS
+#:: window. In particular you can use new_os_window_with_cwd to open
+#:: a window with the current working directory.
+
+#: Close window
+
+# map kitty_mod+w close_window
+# map shift+cmd+d close_window
+
+#: Next window
+
+# map kitty_mod+] next_window
+
+#: Previous window
+
+# map kitty_mod+[ previous_window
+
+#: Move window forward
+
+# map kitty_mod+f move_window_forward
+
+#: Move window backward
+
+# map kitty_mod+b move_window_backward
+
+#: Move window to top
+
+# map kitty_mod+` move_window_to_top
+
+#: Start resizing window
+
+# map kitty_mod+r start_resizing_window
+# map cmd+r start_resizing_window
+
+#: First window
+
+# map kitty_mod+1 first_window
+# map cmd+1 first_window
+
+#: Second window
+
+# map kitty_mod+2 second_window
+# map cmd+2 second_window
+
+#: Third window
+
+# map kitty_mod+3 third_window
+# map cmd+3 third_window
+
+#: Fourth window
+
+# map kitty_mod+4 fourth_window
+# map cmd+4 fourth_window
+
+#: Fifth window
+
+# map kitty_mod+5 fifth_window
+# map cmd+5 fifth_window
+
+#: Sixth window
+
+# map kitty_mod+6 sixth_window
+# map cmd+6 sixth_window
+
+#: Seventh window
+
+# map kitty_mod+7 seventh_window
+# map cmd+7 seventh_window
+
+#: Eighth window
+
+# map kitty_mod+8 eighth_window
+# map cmd+8 eighth_window
+
+#: Ninth window
+
+# map kitty_mod+9 ninth_window
+# map cmd+9 ninth_window
+
+#: Tenth window
+
+# map kitty_mod+0 tenth_window
+
+#: Visually select and focus window
+
+# map kitty_mod+f7 focus_visible_window
+
+#:: Display overlay numbers and alphabets on the window, and switch
+#:: the focus to the window when you press the key. When there are
+#:: only two windows, the focus will be switched directly without
+#:: displaying the overlay. You can change the overlay characters and
+#:: their order with option visual_window_select_characters.
+
+#: Visually swap window with another
+
+# map kitty_mod+f8 swap_with_window
+
+#:: Works like focus_visible_window above, but swaps the window.
+
+#: }}}
+
+#: Tab management {{{
+
+#: Next tab
+
+# map kitty_mod+right next_tab
+# map shift+cmd+] next_tab
+# map ctrl+tab next_tab
+
+#: Previous tab
+
+# map kitty_mod+left previous_tab
+# map shift+cmd+[ previous_tab
+# map ctrl+shift+tab previous_tab
+
+#: New tab
+
+# map kitty_mod+t new_tab
+# map cmd+t new_tab
+
+#: Close tab
+
+# map kitty_mod+q close_tab
+# map cmd+w close_tab
+
+#: Close OS window
+
+# map shift+cmd+w close_os_window
+
+#: Move tab forward
+
+# map kitty_mod+. move_tab_forward
+
+#: Move tab backward
+
+# map kitty_mod+, move_tab_backward
+
+#: Set tab title
+
+# map kitty_mod+alt+t set_tab_title
+# map shift+cmd+i set_tab_title
+
+
+#: You can also create shortcuts to go to specific tabs, with 1 being
+#: the first tab, 2 the second tab and -1 being the previously active
+#: tab, -2 being the tab active before the previously active tab and
+#: so on. Any number larger than the number of tabs goes to the last
+#: tab and any number less than the number of previously used tabs in
+#: the history goes to the oldest previously used tab in the history::
+
+#: map ctrl+alt+1 goto_tab 1
+#: map ctrl+alt+2 goto_tab 2
+
+#: Just as with new_window above, you can also pass the name of
+#: arbitrary commands to run when using new_tab and new_tab_with_cwd.
+#: Finally, if you want the new tab to open next to the current tab
+#: rather than at the end of the tabs list, use::
+
+#: map ctrl+t new_tab !neighbor [optional cmd to run]
+#: }}}
+
+#: Layout management {{{
+
+#: Next layout
+
+# map kitty_mod+l next_layout
+
+
+#: You can also create shortcuts to switch to specific layouts::
+
+#: map ctrl+alt+t goto_layout tall
+#: map ctrl+alt+s goto_layout stack
+
+#: Similarly, to switch back to the previous layout::
+
+#: map ctrl+alt+p last_used_layout
+
+#: There is also a toggle_layout action that switches to the named
+#: layout or back to the previous layout if in the named layout.
+#: Useful to temporarily "zoom" the active window by switching to the
+#: stack layout::
+
+#: map ctrl+alt+z toggle_layout stack
+#: }}}
+
+#: Font sizes {{{
+
+#: You can change the font size for all top-level kitty OS windows at
+#: a time or only the current one.
+
+#: Increase font size
+
+# map kitty_mod+equal change_font_size all +2.0
+# map kitty_mod+plus change_font_size all +2.0
+# map kitty_mod+kp_add change_font_size all +2.0
+# map cmd+plus change_font_size all +2.0
+# map cmd+equal change_font_size all +2.0
+# map shift+cmd+equal change_font_size all +2.0
+
+#: Decrease font size
+
+# map kitty_mod+minus change_font_size all -2.0
+# map kitty_mod+kp_subtract change_font_size all -2.0
+# map cmd+minus change_font_size all -2.0
+# map shift+cmd+minus change_font_size all -2.0
+
+#: Reset font size
+
+# map kitty_mod+backspace change_font_size all 0
+# map cmd+0 change_font_size all 0
+
+
+#: To setup shortcuts for specific font sizes::
+
+#: map kitty_mod+f6 change_font_size all 10.0
+
+#: To setup shortcuts to change only the current OS window's font
+#: size::
+
+#: map kitty_mod+f6 change_font_size current 10.0
+#: }}}
+
+#: Select and act on visible text {{{
+
+#: Use the hints kitten to select text and either pass it to an
+#: external program or insert it into the terminal or copy it to the
+#: clipboard.
+
+#: Open URL
+
+# map kitty_mod+e open_url_with_hints
+
+#:: Open a currently visible URL using the keyboard. The program used
+#:: to open the URL is specified in open_url_with.
+
+#: Insert selected path
+
+# map kitty_mod+p>f kitten hints --type path --program -
+
+#:: Select a path/filename and insert it into the terminal. Useful,
+#:: for instance to run git commands on a filename output from a
+#:: previous git command.
+
+#: Open selected path
+
+# map kitty_mod+p>shift+f kitten hints --type path
+
+#:: Select a path/filename and open it with the default open program.
+
+#: Insert selected line
+
+# map kitty_mod+p>l kitten hints --type line --program -
+
+#:: Select a line of text and insert it into the terminal. Useful for
+#:: the output of things like: `ls -1`.
+
+#: Insert selected word
+
+# map kitty_mod+p>w kitten hints --type word --program -
+
+#:: Select words and insert into terminal.
+
+#: Insert selected hash
+
+# map kitty_mod+p>h kitten hints --type hash --program -
+
+#:: Select something that looks like a hash and insert it into the
+#:: terminal. Useful with git, which uses SHA1 hashes to identify
+#:: commits.
+
+#: Open the selected file at the selected line
+
+# map kitty_mod+p>n kitten hints --type linenum
+
+#:: Select something that looks like filename:linenum and open it in
+#:: your default editor at the specified line number.
+
+#: Open the selected hyperlink
+
+# map kitty_mod+p>y kitten hints --type hyperlink
+
+#:: Select a hyperlink (i.e. a URL that has been marked as such by
+#:: the terminal program, for example, by `ls --hyperlink=auto`).
+
+
+#: The hints kitten has many more modes of operation that you can map
+#: to different shortcuts. For a full description see hints kitten
+#: .
+#: }}}
+
+#: Miscellaneous {{{
+
+#: Show documentation
+
+# map kitty_mod+f1 show_kitty_doc overview
+
+#: Toggle fullscreen
+
+# map kitty_mod+f11 toggle_fullscreen
+# map ctrl+cmd+f toggle_fullscreen
+
+#: Toggle maximized
+
+# map kitty_mod+f10 toggle_maximized
+
+#: Toggle macOS secure keyboard entry
+
+# map opt+cmd+s toggle_macos_secure_keyboard_entry
+
+#: Unicode input
+
+# map kitty_mod+u kitten unicode_input
+# map ctrl+cmd+space kitten unicode_input
+
+#: Edit config file
+
+# map kitty_mod+f2 edit_config_file
+# map cmd+, edit_config_file
+
+#: Open the kitty command shell
+
+# map kitty_mod+escape kitty_shell window
+
+#:: Open the kitty shell in a new window / tab / overlay / os_window
+#:: to control kitty using commands.
+
+#: Increase background opacity
+
+# map kitty_mod+a>m set_background_opacity +0.1
+
+#: Decrease background opacity
+
+# map kitty_mod+a>l set_background_opacity -0.1
+
+#: Make background fully opaque
+
+# map kitty_mod+a>1 set_background_opacity 1
+
+#: Reset background opacity
+
+# map kitty_mod+a>d set_background_opacity default
+
+#: Reset the terminal
+
+# map kitty_mod+delete clear_terminal reset active
+# map opt+cmd+r clear_terminal reset active
+
+#:: You can create shortcuts to clear/reset the terminal. For
+#:: example::
+
+#:: # Reset the terminal
+#:: map f1 clear_terminal reset active
+#:: # Clear the terminal screen by erasing all contents
+#:: map f1 clear_terminal clear active
+#:: # Clear the terminal scrollback by erasing it
+#:: map f1 clear_terminal scrollback active
+#:: # Scroll the contents of the screen into the scrollback
+#:: map f1 clear_terminal scroll active
+#:: # Clear everything on screen up to the line with the cursor or the start of the current prompt (needs shell integration)
+#:: map f1 clear_terminal to_cursor active
+#:: # Same as above except cleared lines are moved into scrollback
+#:: map f1 clear_terminal to_cursor_scroll active
+
+#:: If you want to operate on all kitty windows instead of just the
+#:: current one, use all instead of active.
+
+#:: Some useful functions that can be defined in the shell rc files
+#:: to perform various kinds of clearing of the current window:
+
+#:: .. code-block:: sh
+
+#:: clear-only-screen() {
+#:: printf "\e[H\e[2J"
+#:: }
+
+#:: clear-screen-and-scrollback() {
+#:: printf "\e[H\e[3J"
+#:: }
+
+#:: clear-screen-saving-contents-in-scrollback() {
+#:: printf "\e[H\e[22J"
+#:: }
+
+#:: For instance, using these escape codes, it is possible to remap
+#:: Ctrl+L to both scroll the current screen contents into the
+#:: scrollback buffer and clear the screen, instead of just clearing
+#:: the screen. For ZSH, in ~/.zshrc, add:
+
+#:: .. code-block:: zsh
+
+#:: ctrl_l() {
+#:: builtin print -rn -- $'\r\e[0J\e[H\e[22J' >"$TTY"
+#:: builtin zle .reset-prompt
+#:: builtin zle -R
+#:: }
+#:: zle -N ctrl_l
+#:: bindkey '^l' ctrl_l
+
+#:: Alternatively, you can just add map ctrl+l clear_terminal
+#:: to_cursor_scroll active to kitty.conf which works with no changes
+#:: to the shell rc files, but only clears up to the prompt, it does
+#:: not clear anytext at the prompt itself.
+
+#: Clear up to cursor line
+
+# map cmd+k clear_terminal to_cursor active
+
+#: Reload kitty.conf
+
+# map kitty_mod+f5 load_config_file
+# map ctrl+cmd+, load_config_file
+
+#:: Reload kitty.conf, applying any changes since the last time it
+#:: was loaded. Note that a handful of options cannot be dynamically
+#:: changed and require a full restart of kitty. Particularly, when
+#:: changing shortcuts for actions located on the macOS global menu
+#:: bar, a full restart is needed. You can also map a keybinding to
+#:: load a different config file, for example::
+
+#:: map f5 load_config /path/to/alternative/kitty.conf
+
+#:: Note that all options from the original kitty.conf are discarded,
+#:: in other words the new configuration *replace* the old ones.
+
+#: Debug kitty configuration
+
+# map kitty_mod+f6 debug_config
+# map opt+cmd+, debug_config
+
+#:: Show details about exactly what configuration kitty is running
+#:: with and its host environment. Useful for debugging issues.
+
+#: Send arbitrary text on key presses
+
+#:: E.g. map ctrl+shift+alt+h send_text all Hello World
+
+#:: You can tell kitty to send arbitrary (UTF-8) encoded text to the
+#:: client program when pressing specified shortcut keys. For
+#:: example::
+
+#:: map ctrl+alt+a send_text all Special text
+
+#:: This will send "Special text" when you press the Ctrl+Alt+A key
+#:: combination. The text to be sent decodes ANSI C escapes
+#:: so you can use escapes like \e to send control
+#:: codes or \u21fb to send Unicode characters (or you can just input
+#:: the Unicode characters directly as UTF-8 text). You can use
+#:: `kitten show-key` to get the key escape codes you want to
+#:: emulate.
+
+#:: The first argument to send_text is the keyboard modes in which to
+#:: activate the shortcut. The possible values are normal,
+#:: application, kitty or a comma separated combination of them. The
+#:: modes normal and application refer to the DECCKM cursor key mode
+#:: for terminals, and kitty refers to the kitty extended keyboard
+#:: protocol. The special value all means all of them.
+
+#:: Some more examples::
+
+#:: # Output a word and move the cursor to the start of the line (like typing and pressing Home)
+#:: map ctrl+alt+a send_text normal Word\e[H
+#:: map ctrl+alt+a send_text application Word\eOH
+#:: # Run a command at a shell prompt (like typing the command and pressing Enter)
+#:: map ctrl+alt+a send_text normal,application some command with arguments\r
+
+#: Open kitty Website
+
+# map shift+cmd+/ open_url https://sw.kovidgoyal.net/kitty/
+
+#: Hide macOS kitty application
+
+# map cmd+h hide_macos_app
+
+#: Hide macOS other applications
+
+# map opt+cmd+h hide_macos_other_apps
+
+#: Minimize macOS window
+
+# map cmd+m minimize_macos_window
+
+#: Quit kitty
+
+# map cmd+q quit
+
+#: }}}
+
+#: }}}
diff --git a/roles/dotfiles/files/.config/kitty/theme.conf b/roles/dotfiles/files/.config/kitty/theme.conf
new file mode 120000
index 0000000..0cc6964
--- /dev/null
+++ b/roles/dotfiles/files/.config/kitty/theme.conf
@@ -0,0 +1 @@
+kitty-themes/themes/ayu.conf
\ No newline at end of file
diff --git a/roles/dotfiles/files/.gitconfig b/roles/dotfiles/files/.gitconfig
new file mode 100644
index 0000000..8a081f1
--- /dev/null
+++ b/roles/dotfiles/files/.gitconfig
@@ -0,0 +1,7 @@
+[user]
+ email = purpurebacterium@yandex.ru
+ name = ProgramSnail
+[init]
+ defaultBranch = main
+[core]
+ editor = hx
diff --git a/roles/dotfiles/files/.inputrc b/roles/dotfiles/files/.inputrc
new file mode 100644
index 0000000..e69de29
diff --git a/roles/dotfiles/files/.templates/xmake.lua b/roles/dotfiles/files/.templates/xmake.lua
new file mode 100644
index 0000000..e69de29
diff --git a/roles/dotfiles/files/.tmate.conf b/roles/dotfiles/files/.tmate.conf
new file mode 100644
index 0000000..1924040
--- /dev/null
+++ b/roles/dotfiles/files/.tmate.conf
@@ -0,0 +1,27 @@
+set -g tmate-server-host "terms.except.one"
+set -g tmate-server-port 2223
+set -g tmate-server-rsa-fingerprint SHA256:XXXXX
+set -g tmate-server-ed25519-fingerprint SHA256:XXXXX
+
+bind-key -n M-Left previous-window
+bind-key -n M-Right next-window
+
+#set -as terminal-features ",xterm-256color:RGB
+#set -sg terminal-overrides ",*:RGB"
+
+set -s escape-time 0
+
+set -g history-limit 50000
+
+set -g default-terminal "tmux-256color"
+
+set -g mouse off
+
+setw -q -g utf8 on
+
+set-option -g default-shell /usr/bin/fish
+
+set -g base-index 1 # start windows numbering at 1
+setw -g pane-base-index 1 # make pane numbering consistent with windows
+setw -g automatic-rename on # rename window to reflect current program
+set -g renumber-windows on # renumber windows when a window is closed
diff --git a/roles/dotfiles/files/.tmux.conf b/roles/dotfiles/files/.tmux.conf
new file mode 100644
index 0000000..0be38e7
--- /dev/null
+++ b/roles/dotfiles/files/.tmux.conf
@@ -0,0 +1,22 @@
+bind-key -n M-Left previous-window
+bind-key -n M-Right next-window
+
+#set -as terminal-features ",xterm-256color:RGB
+#set -sg terminal-overrides ",*:RGB"
+
+set -s escape-time 0
+
+set -g history-limit 50000
+
+set -g default-terminal "tmux-256color"
+
+set -g mouse off
+
+setw -q -g utf8 on
+
+set-option -g default-shell /usr/bin/fish
+
+set -g base-index 1 # start windows numbering at 1
+setw -g pane-base-index 1 # make pane numbering consistent with windows
+setw -g automatic-rename on # rename window to reflect current program
+set -g renumber-windows on # renumber windows when a window is closed
diff --git a/roles/dotfiles/tasks/cli.yml b/roles/dotfiles/tasks/cli.yml
index 4ebf2ec..258f356 100644
--- a/roles/dotfiles/tasks/cli.yml
+++ b/roles/dotfiles/tasks/cli.yml
@@ -2,6 +2,7 @@
# shell
- ansible.builtin.import_tasks: bash.yml
+# copy to modify during install ??
- name: Link fish configuration directory
ansible.builtin.file:
src: '{{ role_path }}/files/.config/fish'
@@ -32,3 +33,27 @@
state: link
force: true
+# additional files
+- name: Link scripts
+ ansible.builtin.file:
+ src: '{{ role_path }}/files/.bin'
+ dest: '{{ ansible_env.HOME }}/.bin'
+ state: link
+ force: true
+
+- name: Link templates
+ ansible.builtin.file:
+ src: '{{ role_path }}/files/.templates'
+ dest: '{{ ansible_env.HOME }}/.templates'
+ state: link
+ force: true
+
+# path update
+- name: Get programs list to check fish presence
+ ansible.builtin.package_facts:
+ manager: auto
+
+- name: Update fish path to include scripts folder
+ ansible.builtin.shell:
+ cmd: echo 'fish_add_path {{ ansible_env.HOME }}/.bin'
+ when: "'fish' in ansible_facts.packages"
diff --git a/roles/haskell/tasks/main.yml b/roles/haskell/tasks/main.yml
new file mode 100644
index 0000000..3c0991d
--- /dev/null
+++ b/roles/haskell/tasks/main.yml
@@ -0,0 +1,19 @@
+- name: Download ghcup bootstrap script
+ ansible.builtin.uri:
+ url:
+ return_content: yes
+ register: ghcup_bootstrap
+
+- name: Install ghcup, stack, lsp server
+ ansible.builtin.shell:
+ cmd: sh
+ stdin: {{ ghcup_bootstrap.content }}
+ environment:
+ SHELL: /usr/bin/fish # TODO: detect fish install ??
+ BOOTSTRAP_HASKELL_NONINTERACTIVE: 1
+ BOOTSTRAP_HASKELL_GHC_VERSION: latest
+ BOOTSTRAP_HASKELL_CABAL_VERSION: latest
+ BOOTSTRAP_HASKELL_INSTALL_STACK: 1
+ BOOTSTRAP_HASKELL_INSTALL_HLS: 1
+ BOOTSTRAP_HASKELL_ADJUST_BASHRC: P
+
diff --git a/roles/installs/tasks/main.yml b/roles/installs/tasks/main.yml
index dfca4fc..33454d5 100644
--- a/roles/installs/tasks/main.yml
+++ b/roles/installs/tasks/main.yml
@@ -18,3 +18,6 @@
- ansible.builtin.import_tasks: host.yml
when: "'host' in apps"
+
+- ansible.builtin.import_tasks: proxy.yml
+ when: "'proxy' in apps"
diff --git a/roles/installs/tasks/proxy.yml b/roles/installs/tasks/proxy.yml
new file mode 100644
index 0000000..738527d
--- /dev/null
+++ b/roles/installs/tasks/proxy.yml
@@ -0,0 +1,33 @@
+- name: Get latest hola-proxy version
+ community.general.github_release:
+ user: Snawoot
+ repo: hola-proxy
+ action: latest_release
+ register: hola_version
+
+- name: "Installing hola-proxy {{ hola_version.tag }}"
+ become: true
+ ansible.builtin.get_url:
+ remote_src: yes
+ # TODO: insert v before version ??
+ url: "https://github.com/Snawoot/hola-proxy/releases/download/{{ hola_version.tag }}/hola-proxy.linux-amd64"
+ dest: "/usr/bin/hola-proxy"
+ mode: a+x
+ force: true
+
+- name: Get latest opera-proxy version
+ community.general.github_release:
+ user: Snawoot
+ repo: opera-proxy
+ action: latest_release
+ register: opera_version
+
+- name: "Installing opera-proxy {{ opera_version.tag }}"
+ become: true
+ ansible.builtin.get_url:
+ remote_src: yes
+ # TODO: insert v before version ??
+ url: "https://github.com/Snawoot/opera-proxy/releases/download/{{ opera_version.tag }}/hola-proxy.linux-amd64"
+ dest: "/usr/bin/hola-proxy"
+ mode: a+x
+ force: true
diff --git a/roles/truffle/tasks/main.yml b/roles/truffle/tasks/main.yml
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/roles/truffle/tasks/main.yml
@@ -0,0 +1 @@
+
diff --git a/roles/writing/tasks/main.yml b/roles/writing/tasks/main.yml
new file mode 100644
index 0000000..caad1be
--- /dev/null
+++ b/roles/writing/tasks/main.yml
@@ -0,0 +1,41 @@
+- name: Get latest typst version
+ community.general.github_release:
+ user: typst
+ repo: typst
+ action: latest_release
+ register: typst_version
+
+- name: "Installing typst {{ typst_version.tag }}"
+ become: true
+ ansible.builtin.unarchive:
+ remote_src: yes
+ # TODO: insert v before version ??
+ src: "https://github.com/typst/typst/releases/download/{{ typst_version.tag }}/typst-x86_64-unknown-linux-musl.tar.xz"
+ dest: "/usr/bin/"
+ keep_newer: yes
+ mode: a+x
+ extra_opts:
+ - --strip=1
+ - --no-anchored
+ - typst
+
+- name: Get latest tinymist (typst lsp) version
+ community.general.github_release:
+ user: Myriad-Dreamin
+ repo: tinymist
+ action: latest_release
+ register: tinymist_version
+
+- name: "Installing tinymist (typst lsp) {{ tinymist_version.tag }}"
+ become: true
+ ansible.builtin.unarchive:
+ remote_src: yes
+ # TODO: insert v before version ??, rc ??
+ src: "https://github.com/Myriad-Dreamin/tinymist/releases/download/{{ tinymist_version.tag }}/tinymist-x86_64-unknown-linux-gnu.tar.gz"
+ dest: "/usr/bin/"
+ mode: a+x
+ keep_newer: yes
+ extra_opts:
+ - --strip=1
+ - --no-anchored
+ - tinymist