├── .gitignore ├── HOME ├── .bashrc ├── .config │ ├── alacritty │ │ ├── alacritty.toml │ │ └── catppuccin │ │ │ ├── .editorconfig │ │ │ ├── catppuccin-frappe.toml │ │ │ ├── catppuccin-latte.toml │ │ │ ├── catppuccin-macchiato.toml │ │ │ └── catppuccin-mocha.toml │ ├── bat │ │ ├── config │ │ └── themes │ │ │ ├── Catppuccin Frappe.tmTheme │ │ │ ├── Catppuccin Latte.tmTheme │ │ │ ├── Catppuccin Macchiato.tmTheme │ │ │ └── Catppuccin Mocha.tmTheme │ ├── ghostty │ │ └── config │ ├── gitui │ │ ├── key_bindings.ron │ │ └── theme.ron │ ├── kitty │ │ └── kitty.conf │ ├── lazygit │ │ └── config.yml │ ├── nvim │ │ ├── init.lua │ │ ├── lazy-lock.json │ │ └── lua │ │ │ ├── plugins.lua │ │ │ ├── plugins │ │ │ ├── ai.lua │ │ │ ├── bufferline.lua │ │ │ ├── cmp.lua │ │ │ ├── lsp.lua │ │ │ ├── lualine.lua │ │ │ ├── snacks.lua │ │ │ ├── telescope.lua │ │ │ ├── tree.lua │ │ │ └── treesitter.lua │ │ │ └── settings.lua │ └── starship.toml ├── .gitconfig ├── .proto │ └── .prototools ├── .stow-local-ignore ├── .tmux.conf ├── .wezterm.lua ├── .zshrc ├── Fonts │ ├── Fira Code │ │ ├── FiraCodeNerdFont-Bold.ttf │ │ ├── FiraCodeNerdFont-Light.ttf │ │ ├── FiraCodeNerdFont-Medium.ttf │ │ ├── FiraCodeNerdFont-Regular.ttf │ │ ├── FiraCodeNerdFont-Retina.ttf │ │ ├── FiraCodeNerdFont-SemiBold.ttf │ │ └── LICENSE.txt │ ├── Geist Mono │ │ ├── GeistMonoNerdFont-Black.otf │ │ ├── GeistMonoNerdFont-Bold.otf │ │ ├── GeistMonoNerdFont-Light.otf │ │ ├── GeistMonoNerdFont-Medium.otf │ │ ├── GeistMonoNerdFont-Regular.otf │ │ ├── GeistMonoNerdFont-SemiBold.otf │ │ ├── GeistMonoNerdFont-Thin.otf │ │ ├── GeistMonoNerdFont-UltraBlack.otf │ │ ├── GeistMonoNerdFont-UltraLight.otf │ │ └── LICENSE.txt │ └── JetBrains Mono │ │ ├── JetBrainsMonoNerdFont-Bold.ttf │ │ ├── JetBrainsMonoNerdFont-BoldItalic.ttf │ │ ├── JetBrainsMonoNerdFont-ExtraBold.ttf │ │ ├── JetBrainsMonoNerdFont-ExtraBoldItalic.ttf │ │ ├── JetBrainsMonoNerdFont-ExtraLight.ttf │ │ ├── JetBrainsMonoNerdFont-ExtraLightItalic.ttf │ │ ├── JetBrainsMonoNerdFont-Italic.ttf │ │ ├── JetBrainsMonoNerdFont-Light.ttf │ │ ├── JetBrainsMonoNerdFont-LightItalic.ttf │ │ ├── JetBrainsMonoNerdFont-Medium.ttf │ │ ├── JetBrainsMonoNerdFont-MediumItalic.ttf │ │ ├── JetBrainsMonoNerdFont-Regular.ttf │ │ ├── JetBrainsMonoNerdFont-SemiBold.ttf │ │ ├── JetBrainsMonoNerdFont-SemiBoldItalic.ttf │ │ ├── JetBrainsMonoNerdFont-Thin.ttf │ │ ├── JetBrainsMonoNerdFont-ThinItalic.ttf │ │ └── LICENSE.txt └── Pictures │ ├── Glass Dimension for Macs.png │ ├── MBP14_BlackRainbow.png │ ├── MBP14_Teal.png │ ├── Pro6KWallpaper.heic │ ├── Your-Name-beautiful-sky-meteor-anime_2880x1800.jpeg │ ├── background.jpg │ ├── meliodas.gif │ ├── pro-display-xdr.png │ ├── wallpaper-your-name.png │ └── wallpaper.png ├── README.md ├── git └── hooks │ └── post-commit ├── setup.sh ├── sponsors.png ├── sponsors.svg └── update.sh /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | HOME/.config/nvim/plugin/packer_compiled.lua 3 | HOME/.proto/bin/ 4 | HOME/.proto/temp/ 5 | HOME/.proto/tools/ 6 | HOME/.proto/shims/ 7 | HOME/.proto/plugins/ 8 | HOME/.proto/id 9 | HOME/.proto/cache 10 | -------------------------------------------------------------------------------- /HOME/.bashrc: -------------------------------------------------------------------------------- 1 | alias vim="nvim" 2 | alias ls="eza" 3 | alias ll="eza -lh" 4 | alias l="eza -lah" 5 | alias cat="bat" 6 | 7 | GREEN="\[\033[1;36m\]" 8 | CYAN="\[\033[32m\]" 9 | PURPLE="\[\033[35m\]" 10 | RESET="\[\033[00m\]" 11 | 12 | parse_git_branch() { 13 | git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/  \1/' 14 | } 15 | 16 | export PS1="$GREEN\w$PURPLE\$(parse_git_branch)\n\r${CYAN}❯ $RESET" 17 | -------------------------------------------------------------------------------- /HOME/.config/alacritty/alacritty.toml: -------------------------------------------------------------------------------- 1 | import = ["/Users/tom/.config/alacritty/catppuccin/catppuccin-macchiato.toml"] 2 | 3 | [font] 4 | size = 15.5 5 | 6 | [font.normal] 7 | family = "JetbrainsMono Nerd Font" 8 | 9 | [selection] 10 | save_to_clipboard = true 11 | 12 | [window] 13 | decorations = "buttonless" 14 | 15 | [window.padding] 16 | x = 6 17 | y = 6 18 | 19 | [keyboard] 20 | bindings = [ 21 | { key = "Tab", mods = "Control", chars = "\u001b[27;5;9~" }, 22 | { key = "Tab", mods = "Control|Shift", chars = "\u001b[27;6;9~" }, 23 | ] 24 | -------------------------------------------------------------------------------- /HOME/.config/alacritty/catppuccin/.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent 2 | # coding styles between different editors and IDEs 3 | # EditorConfig is awesome: https://EditorConfig.org 4 | 5 | root = true 6 | 7 | [*] 8 | charset = utf-8 9 | indent_size = 2 10 | indent_style = space 11 | end_of_line = lf 12 | insert_final_newline = true 13 | trim_trailing_whitespace = true 14 | 15 | # go 16 | [*.go] 17 | indent_style = tab 18 | indent_size = 4 19 | 20 | # python 21 | [*.{ini,py,py.tpl,rst}] 22 | indent_size = 4 23 | 24 | # rust 25 | [*.rs] 26 | indent_size = 4 27 | 28 | # documentation, utils 29 | [*.{md,mdx,diff}] 30 | trim_trailing_whitespace = false 31 | 32 | # windows shell scripts 33 | [*.{cmd,bat,ps1}] 34 | end_of_line = crlf 35 | -------------------------------------------------------------------------------- /HOME/.config/alacritty/catppuccin/catppuccin-frappe.toml: -------------------------------------------------------------------------------- 1 | :[colors.primary] 2 | background = "#303446" 3 | foreground = "#C6D0F5" 4 | dim_foreground = "#C6D0F5" 5 | bright_foreground = "#C6D0F5" 6 | 7 | [colors.cursor] 8 | text = "#303446" 9 | cursor = "#F2D5CF" 10 | 11 | [colors.vi_mode_cursor] 12 | text = "#303446" 13 | cursor = "#BABBF1" 14 | 15 | [colors.search.matches] 16 | foreground = "#303446" 17 | background = "#A5ADCE" 18 | 19 | [colors.search.focused_match] 20 | foreground = "#303446" 21 | background = "#A6D189" 22 | 23 | [colors.footer_bar] 24 | foreground = "#303446" 25 | background = "#A5ADCE" 26 | 27 | [colors.hints.start] 28 | foreground = "#303446" 29 | background = "#E5C890" 30 | 31 | [colors.hints.end] 32 | foreground = "#303446" 33 | background = "#A5ADCE" 34 | 35 | [colors.selection] 36 | text = "#303446" 37 | background = "#F2D5CF" 38 | 39 | [colors.normal] 40 | black = "#51576D" 41 | red = "#E78284" 42 | green = "#A6D189" 43 | yellow = "#E5C890" 44 | blue = "#8CAAEE" 45 | magenta = "#F4B8E4" 46 | cyan = "#81C8BE" 47 | white = "#B5BFE2" 48 | 49 | [colors.bright] 50 | black = "#626880" 51 | red = "#E78284" 52 | green = "#A6D189" 53 | yellow = "#E5C890" 54 | blue = "#8CAAEE" 55 | magenta = "#F4B8E4" 56 | cyan = "#81C8BE" 57 | white = "#A5ADCE" 58 | 59 | [colors.dim] 60 | black = "#51576D" 61 | red = "#E78284" 62 | green = "#A6D189" 63 | yellow = "#E5C890" 64 | blue = "#8CAAEE" 65 | magenta = "#F4B8E4" 66 | cyan = "#81C8BE" 67 | white = "#B5BFE2" 68 | 69 | [[colors.indexed_colors]] 70 | index = 16 71 | color = "#EF9F76" 72 | 73 | [[colors.indexed_colors]] 74 | index = 17 75 | color = "#F2D5CF" 76 | -------------------------------------------------------------------------------- /HOME/.config/alacritty/catppuccin/catppuccin-latte.toml: -------------------------------------------------------------------------------- 1 | [colors.primary] 2 | background = "#EFF1F5" 3 | foreground = "#4C4F69" 4 | dim_foreground = "#4C4F69" 5 | bright_foreground = "#4C4F69" 6 | 7 | [colors.cursor] 8 | text = "#EFF1F5" 9 | cursor = "#DC8A78" 10 | 11 | [colors.vi_mode_cursor] 12 | text = "#EFF1F5" 13 | cursor = "#7287FD" 14 | 15 | [colors.search.matches] 16 | foreground = "#EFF1F5" 17 | background = "#6C6F85" 18 | 19 | [colors.search.focused_match] 20 | foreground = "#EFF1F5" 21 | background = "#40A02B" 22 | 23 | [colors.footer_bar] 24 | foreground = "#EFF1F5" 25 | background = "#6C6F85" 26 | 27 | [colors.hints.start] 28 | foreground = "#EFF1F5" 29 | background = "#DF8E1D" 30 | 31 | [colors.hints.end] 32 | foreground = "#EFF1F5" 33 | background = "#6C6F85" 34 | 35 | [colors.selection] 36 | text = "#EFF1F5" 37 | background = "#DC8A78" 38 | 39 | [colors.normal] 40 | black = "#5C5F77" 41 | red = "#D20F39" 42 | green = "#40A02B" 43 | yellow = "#DF8E1D" 44 | blue = "#1E66F5" 45 | magenta = "#EA76CB" 46 | cyan = "#179299" 47 | white = "#ACB0BE" 48 | 49 | [colors.bright] 50 | black = "#6C6F85" 51 | red = "#D20F39" 52 | green = "#40A02B" 53 | yellow = "#DF8E1D" 54 | blue = "#1E66F5" 55 | magenta = "#EA76CB" 56 | cyan = "#179299" 57 | white = "#BCC0CC" 58 | 59 | [colors.dim] 60 | black = "#5C5F77" 61 | red = "#D20F39" 62 | green = "#40A02B" 63 | yellow = "#DF8E1D" 64 | blue = "#1E66F5" 65 | magenta = "#EA76CB" 66 | cyan = "#179299" 67 | white = "#ACB0BE" 68 | 69 | [[colors.indexed_colors]] 70 | index = 16 71 | color = "#FE640B" 72 | 73 | [[colors.indexed_colors]] 74 | index = 17 75 | color = "#DC8A78" 76 | -------------------------------------------------------------------------------- /HOME/.config/alacritty/catppuccin/catppuccin-macchiato.toml: -------------------------------------------------------------------------------- 1 | [colors.primary] 2 | background = "#24273A" 3 | foreground = "#CAD3F5" 4 | dim_foreground = "#CAD3F5" 5 | bright_foreground = "#CAD3F5" 6 | 7 | [colors.cursor] 8 | text = "#24273A" 9 | cursor = "#F4DBD6" 10 | 11 | [colors.vi_mode_cursor] 12 | text = "#24273A" 13 | cursor = "#B7BDF8" 14 | 15 | [colors.search.matches] 16 | foreground = "#24273A" 17 | background = "#A5ADCB" 18 | 19 | [colors.search.focused_match] 20 | foreground = "#24273A" 21 | background = "#A6DA95" 22 | 23 | [colors.footer_bar] 24 | foreground = "#24273A" 25 | background = "#A5ADCB" 26 | 27 | [colors.hints.start] 28 | foreground = "#24273A" 29 | background = "#EED49F" 30 | 31 | [colors.hints.end] 32 | foreground = "#24273A" 33 | background = "#A5ADCB" 34 | 35 | [colors.selection] 36 | text = "#24273A" 37 | background = "#F4DBD6" 38 | 39 | [colors.normal] 40 | black = "#494D64" 41 | red = "#ED8796" 42 | green = "#A6DA95" 43 | yellow = "#EED49F" 44 | blue = "#8AADF4" 45 | magenta = "#F5BDE6" 46 | cyan = "#8BD5CA" 47 | white = "#B8C0E0" 48 | 49 | [colors.bright] 50 | black = "#5B6078" 51 | red = "#ED8796" 52 | green = "#A6DA95" 53 | yellow = "#EED49F" 54 | blue = "#8AADF4" 55 | magenta = "#F5BDE6" 56 | cyan = "#8BD5CA" 57 | white = "#A5ADCB" 58 | 59 | [colors.dim] 60 | black = "#494D64" 61 | red = "#ED8796" 62 | green = "#A6DA95" 63 | yellow = "#EED49F" 64 | blue = "#8AADF4" 65 | magenta = "#F5BDE6" 66 | cyan = "#8BD5CA" 67 | white = "#B8C0E0" 68 | 69 | [[colors.indexed_colors]] 70 | index = 16 71 | color = "#F5A97F" 72 | 73 | [[colors.indexed_colors]] 74 | index = 17 75 | color = "#F4DBD6" 76 | -------------------------------------------------------------------------------- /HOME/.config/alacritty/catppuccin/catppuccin-mocha.toml: -------------------------------------------------------------------------------- 1 | [colors.primary] 2 | background = "#1E1E2E" 3 | foreground = "#CDD6F4" 4 | dim_foreground = "#CDD6F4" 5 | bright_foreground = "#CDD6F4" 6 | 7 | [colors.cursor] 8 | text = "#1E1E2E" 9 | cursor = "#F5E0DC" 10 | 11 | [colors.vi_mode_cursor] 12 | text = "#1E1E2E" 13 | cursor = "#B4BEFE" 14 | 15 | [colors.search.matches] 16 | foreground = "#1E1E2E" 17 | background = "#A6ADC8" 18 | 19 | [colors.search.focused_match] 20 | foreground = "#1E1E2E" 21 | background = "#A6E3A1" 22 | 23 | [colors.footer_bar] 24 | foreground = "#1E1E2E" 25 | background = "#A6ADC8" 26 | 27 | [colors.hints.start] 28 | foreground = "#1E1E2E" 29 | background = "#F9E2AF" 30 | 31 | [colors.hints.end] 32 | foreground = "#1E1E2E" 33 | background = "#A6ADC8" 34 | 35 | [colors.selection] 36 | text = "#1E1E2E" 37 | background = "#F5E0DC" 38 | 39 | [colors.normal] 40 | black = "#45475A" 41 | red = "#F38BA8" 42 | green = "#A6E3A1" 43 | yellow = "#F9E2AF" 44 | blue = "#89B4FA" 45 | magenta = "#F5C2E7" 46 | cyan = "#94E2D5" 47 | white = "#BAC2DE" 48 | 49 | [colors.bright] 50 | black = "#585B70" 51 | red = "#F38BA8" 52 | green = "#A6E3A1" 53 | yellow = "#F9E2AF" 54 | blue = "#89B4FA" 55 | magenta = "#F5C2E7" 56 | cyan = "#94E2D5" 57 | white = "#A6ADC8" 58 | 59 | [colors.dim] 60 | black = "#45475A" 61 | red = "#F38BA8" 62 | green = "#A6E3A1" 63 | yellow = "#F9E2AF" 64 | blue = "#89B4FA" 65 | magenta = "#F5C2E7" 66 | cyan = "#94E2D5" 67 | white = "#BAC2DE" 68 | 69 | [[colors.indexed_colors]] 70 | index = 16 71 | color = "#FAB387" 72 | 73 | [[colors.indexed_colors]] 74 | index = 17 75 | color = "#F5E0DC" 76 | -------------------------------------------------------------------------------- /HOME/.config/bat/config: -------------------------------------------------------------------------------- 1 | --theme="Catppuccin Macchiato" 2 | -------------------------------------------------------------------------------- /HOME/.config/ghostty/config: -------------------------------------------------------------------------------- 1 | theme = catppuccin-macchiato 2 | font-family = JetbrainsMono Nerd Font 3 | font-size = 15 4 | cursor-style-blink = false 5 | macos-titlebar-style = hidden 6 | window-padding-x = 8,8 7 | window-padding-y = 6,6 8 | confirm-close-surface = false 9 | shell-integration-features = no-cursor 10 | -------------------------------------------------------------------------------- /HOME/.config/gitui/key_bindings.ron: -------------------------------------------------------------------------------- 1 | // Note: 2 | // If the default key layout is lower case, 3 | // and you want to use `Shift + q` to trigger the exit event, 4 | // the setting should like this `exit: Some(( code: Char('Q'), modifiers: "SHIFT")),` 5 | // The Char should be upper case, and the modifier should be set to "SHIFT". 6 | // 7 | // Note: 8 | // find `KeysList` type in src/keys/key_list.rs for all possible keys. 9 | // every key not overwritten via the config file will use the default specified there 10 | ( 11 | open_help: Some(( code: F(1), modifiers: "")), 12 | 13 | move_left: Some(( code: Char('h'), modifiers: "")), 14 | move_right: Some(( code: Char('l'), modifiers: "")), 15 | move_up: Some(( code: Char('k'), modifiers: "")), 16 | move_down: Some(( code: Char('j'), modifiers: "")), 17 | 18 | popup_up: Some(( code: Char('p'), modifiers: "CONTROL")), 19 | popup_down: Some(( code: Char('n'), modifiers: "CONTROL")), 20 | page_up: Some(( code: Char('b'), modifiers: "CONTROL")), 21 | page_down: Some(( code: Char('f'), modifiers: "CONTROL")), 22 | home: Some(( code: Char('g'), modifiers: "")), 23 | end: Some(( code: Char('G'), modifiers: "SHIFT")), 24 | shift_up: Some(( code: Char('K'), modifiers: "SHIFT")), 25 | shift_down: Some(( code: Char('J'), modifiers: "SHIFT")), 26 | 27 | edit_file: Some(( code: Char('I'), modifiers: "SHIFT")), 28 | 29 | status_reset_item: Some(( code: Char('U'), modifiers: "SHIFT")), 30 | 31 | diff_reset_lines: Some(( code: Char('u'), modifiers: "")), 32 | diff_stage_lines: Some(( code: Char('s'), modifiers: "")), 33 | 34 | stashing_save: Some(( code: Char('w'), modifiers: "")), 35 | stashing_toggle_index: Some(( code: Char('m'), modifiers: "")), 36 | 37 | stash_open: Some(( code: Char('l'), modifiers: "")), 38 | 39 | abort_merge: Some(( code: Char('M'), modifiers: "SHIFT")), 40 | ) 41 | -------------------------------------------------------------------------------- /HOME/.config/gitui/theme.ron: -------------------------------------------------------------------------------- 1 | ( 2 | selected_tab: Some("Reset"), 3 | command_fg: Some("#cad3f5"), 4 | selection_bg: Some("#5b6078"), 5 | selection_fg: Some("#cad3f5"), 6 | cmdbar_bg: Some("#1e2030"), 7 | cmdbar_extra_lines_bg: Some("#1e2030"), 8 | disabled_fg: Some("#8087a2"), 9 | diff_line_add: Some("#a6da95"), 10 | diff_line_delete: Some("#ed8796"), 11 | diff_file_added: Some("#a6da95"), 12 | diff_file_removed: Some("#ee99a0"), 13 | diff_file_moved: Some("#c6a0f6"), 14 | diff_file_modified: Some("#f5a97f"), 15 | commit_hash: Some("#b7bdf8"), 16 | commit_time: Some("#b8c0e0"), 17 | commit_author: Some("#7dc4e4"), 18 | danger_fg: Some("#ed8796"), 19 | push_gauge_bg: Some("#8aadf4"), 20 | push_gauge_fg: Some("#24273a"), 21 | tag_fg: Some("#f4dbd6"), 22 | branch_fg: Some("#8bd5ca") 23 | ) 24 | -------------------------------------------------------------------------------- /HOME/.config/kitty/kitty.conf: -------------------------------------------------------------------------------- 1 | # vim:fileencoding=utf-8:ft=conf:foldmethod=marker 2 | 3 | #: Fonts {{{ 4 | 5 | #: kitty has very powerful font management. You can configure 6 | #: individual font faces and even specify special fonts for particular 7 | #: characters. 8 | 9 | font_family Jetbrains Mono 10 | bold_font Jetbrains Mono Bold 11 | italic_font auto 12 | bold_italic_font auto 13 | 14 | #: You can specify different fonts for the bold/italic/bold-italic 15 | #: variants. To get a full list of supported fonts use the `kitty 16 | #: list-fonts` command. By default they are derived automatically, by 17 | #: the OSes font system. Setting them manually is useful for font 18 | #: families that have many weight variants like Book, Medium, Thick, 19 | #: etc. For example:: 20 | 21 | #: font_family Operator Mono Book 22 | #: bold_font Operator Mono Medium 23 | #: italic_font Operator Mono Book Italic 24 | #: bold_italic_font Operator Mono Medium Italic 25 | 26 | font_size 14.0 27 | 28 | #: Font size (in pts) 29 | 30 | # force_ltr no 31 | 32 | #: kitty does not support BIDI (bidirectional text), however, for RTL 33 | #: scripts, words are automatically displayed in RTL. That is to say, 34 | #: in an RTL script, the words "HELLO WORLD" display in kitty as 35 | #: "WORLD HELLO", and if you try to select a substring of an RTL- 36 | #: shaped string, you will get the character that would be there had 37 | #: the the string been LTR. For example, assuming the Hebrew word 38 | #: ירושלים, selecting the character that on the screen appears to be ם 39 | #: actually writes into the selection buffer the character י. 40 | 41 | #: kitty's default behavior is useful in conjunction with a filter to 42 | #: reverse the word order, however, if you wish to manipulate RTL 43 | #: glyphs, it can be very challenging to work with, so this option is 44 | #: provided to turn it off. Furthermore, this option can be used with 45 | #: the command line program GNU FriBidi 46 | #: to get BIDI 47 | #: support, because it will force kitty to always treat the text as 48 | #: LTR, which FriBidi expects for terminals. 49 | 50 | # adjust_line_height 0 51 | # adjust_column_width 0 52 | 53 | #: Change the size of each character cell kitty renders. You can use 54 | #: either numbers, which are interpreted as pixels or percentages 55 | #: (number followed by %), which are interpreted as percentages of the 56 | #: unmodified values. You can use negative pixels or percentages less 57 | #: than 100% to reduce sizes (but this might cause rendering 58 | #: artifacts). 59 | 60 | # symbol_map U+E0A0-U+E0A3,U+E0C0-U+E0C7 PowerlineSymbols 61 | 62 | #: Map the specified unicode codepoints to a particular font. Useful 63 | #: if you need special rendering for some symbols, such as for 64 | #: Powerline. Avoids the need for patched fonts. Each unicode code 65 | #: point is specified in the form U+. You 66 | #: can specify multiple code points, separated by commas and ranges 67 | #: separated by hyphens. symbol_map itself can be specified multiple 68 | #: times. Syntax is:: 69 | 70 | #: symbol_map codepoints Font Family Name 71 | 72 | # disable_ligatures never 73 | 74 | #: Choose how you want to handle multi-character ligatures. The 75 | #: default is to always render them. You can tell kitty to not render 76 | #: them when the cursor is over them by using cursor to make editing 77 | #: easier, or have kitty never render them at all by using always, if 78 | #: you don't like them. The ligature strategy can be set per-window 79 | #: either using the kitty remote control facility or by defining 80 | #: shortcuts for it in kitty.conf, for example:: 81 | 82 | #: map alt+1 disable_ligatures_in active always 83 | #: map alt+2 disable_ligatures_in all never 84 | #: map alt+3 disable_ligatures_in tab cursor 85 | 86 | #: Note that this refers to programming ligatures, typically 87 | #: implemented using the calt OpenType feature. For disabling general 88 | #: ligatures, use the font_features setting. 89 | 90 | # font_features none 91 | 92 | #: Choose exactly which OpenType features to enable or disable. This 93 | #: is useful as some fonts might have features worthwhile in a 94 | #: terminal. For example, Fira Code Retina includes a discretionary 95 | #: feature, zero, which in that font changes the appearance of the 96 | #: zero (0), to make it more easily distinguishable from Ø. Fira Code 97 | #: Retina also includes other discretionary features known as 98 | #: Stylistic Sets which have the tags ss01 through ss20. 99 | 100 | #: Note that this code is indexed by PostScript name, and not the font 101 | #: family. This allows you to define very precise feature settings; 102 | #: e.g. you can disable a feature in the italic font but not in the 103 | #: regular font. 104 | 105 | #: On Linux, these are read from the FontConfig database first and 106 | #: then this, setting is applied, so they can be configured in a 107 | #: single, central place. 108 | 109 | #: To get the PostScript name for a font, use kitty + list-fonts 110 | #: --psnames: 111 | 112 | #: .. code-block:: sh 113 | 114 | #: $ kitty + list-fonts --psnames | grep Fira 115 | #: Fira Code 116 | #: Fira Code Bold (FiraCode-Bold) 117 | #: Fira Code Light (FiraCode-Light) 118 | #: Fira Code Medium (FiraCode-Medium) 119 | #: Fira Code Regular (FiraCode-Regular) 120 | #: Fira Code Retina (FiraCode-Retina) 121 | 122 | #: The part in brackets is the PostScript name. 123 | 124 | #: Enable alternate zero and oldstyle numerals:: 125 | 126 | #: font_features FiraCode-Retina +zero +onum 127 | 128 | #: Enable only alternate zero:: 129 | 130 | #: font_features FiraCode-Retina +zero 131 | 132 | #: Disable the normal ligatures, but keep the calt feature which (in 133 | #: this font) breaks up monotony:: 134 | 135 | #: font_features TT2020StyleB-Regular -liga +calt 136 | 137 | #: In conjunction with force_ltr, you may want to disable Arabic 138 | #: shaping entirely, and only look at their isolated forms if they 139 | #: show up in a document. You can do this with e.g.:: 140 | 141 | #: font_features UnifontMedium +isol -medi -fina -init 142 | 143 | # box_drawing_scale 0.001, 1, 1.5, 2 144 | 145 | #: Change the sizes of the lines used for the box drawing unicode 146 | #: characters These values are in pts. They will be scaled by the 147 | #: monitor DPI to arrive at a pixel value. There must be four values 148 | #: corresponding to thin, normal, thick, and very thick lines. 149 | 150 | #: }}} 151 | 152 | #: Cursor customization {{{ 153 | 154 | # cursor #cccccc 155 | 156 | #: Default cursor color 157 | 158 | # cursor_text_color #111111 159 | 160 | #: Choose the color of text under the cursor. If you want it rendered 161 | #: with the background color of the cell underneath instead, use the 162 | #: special keyword: background 163 | 164 | # cursor_shape block 165 | 166 | #: The cursor shape can be one of (block, beam, underline) 167 | 168 | # cursor_beam_thickness 1.5 169 | 170 | #: Defines the thickness of the beam cursor (in pts) 171 | 172 | # cursor_underline_thickness 2.0 173 | 174 | #: Defines the thickness of the underline cursor (in pts) 175 | 176 | # cursor_blink_interval -1 177 | 178 | #: The interval (in seconds) at which to blink the cursor. Set to zero 179 | #: to disable blinking. Negative values mean use system default. Note 180 | #: that numbers smaller than repaint_delay will be limited to 181 | #: repaint_delay. 182 | 183 | # cursor_stop_blinking_after 15.0 184 | 185 | #: Stop blinking cursor after the specified number of seconds of 186 | #: keyboard inactivity. Set to zero to never stop blinking. 187 | 188 | #: }}} 189 | 190 | #: Scrollback {{{ 191 | 192 | # scrollback_lines 2000 193 | 194 | #: Number of lines of history to keep in memory for scrolling back. 195 | #: Memory is allocated on demand. Negative numbers are (effectively) 196 | #: infinite scrollback. Note that using very large scrollback is not 197 | #: recommended as it can slow down performance of the terminal and 198 | #: also use large amounts of RAM. Instead, consider using 199 | #: scrollback_pager_history_size. 200 | 201 | # scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER 202 | 203 | #: Program with which to view scrollback in a new window. The 204 | #: scrollback buffer is passed as STDIN to this program. If you change 205 | #: it, make sure the program you use can handle ANSI escape sequences 206 | #: for colors and text formatting. INPUT_LINE_NUMBER in the command 207 | #: line above will be replaced by an integer representing which line 208 | #: should be at the top of the screen. Similarly CURSOR_LINE and 209 | #: CURSOR_COLUMN will be replaced by the current cursor position. 210 | 211 | # scrollback_pager_history_size 0 212 | 213 | #: Separate scrollback history size, used only for browsing the 214 | #: scrollback buffer (in MB). This separate buffer is not available 215 | #: for interactive scrolling but will be piped to the pager program 216 | #: when viewing scrollback buffer in a separate window. The current 217 | #: implementation stores the data in UTF-8, so approximatively 10000 218 | #: lines per megabyte at 100 chars per line, for pure ASCII text, 219 | #: unformatted text. A value of zero or less disables this feature. 220 | #: The maximum allowed size is 4GB. 221 | 222 | # scrollback_fill_enlarged_window no 223 | 224 | #: Fill new space with lines from the scrollback buffer after 225 | #: enlarging a window. 226 | 227 | # wheel_scroll_multiplier 5.0 228 | 229 | #: Modify the amount scrolled by the mouse wheel. Note this is only 230 | #: used for low precision scrolling devices, not for high precision 231 | #: scrolling on platforms such as macOS and Wayland. Use negative 232 | #: numbers to change scroll direction. 233 | 234 | # touch_scroll_multiplier 1.0 235 | 236 | #: Modify the amount scrolled by a touchpad. Note this is only used 237 | #: for high precision scrolling devices on platforms such as macOS and 238 | #: Wayland. Use negative numbers to change scroll direction. 239 | 240 | #: }}} 241 | 242 | #: Mouse {{{ 243 | 244 | # mouse_hide_wait 0.0 245 | 246 | #: Hide mouse cursor after the specified number of seconds of the 247 | #: mouse not being used. Set to zero to disable mouse cursor hiding. 248 | #: Set to a negative value to hide the mouse cursor immediately when 249 | #: typing text. Disabled by default on macOS as getting it to work 250 | #: robustly with the ever-changing sea of bugs that is Cocoa is too 251 | #: much effort. 252 | 253 | # url_color #0087bd 254 | # url_style curly 255 | 256 | #: The color and style for highlighting URLs on mouse-over. url_style 257 | #: can be one of: none, single, double, curly 258 | 259 | # open_url_modifiers kitty_mod 260 | 261 | #: The modifier keys to press when clicking with the mouse on URLs to 262 | #: open the URL 263 | 264 | # open_url_with default 265 | 266 | #: The program with which to open URLs that are clicked on. The 267 | #: special value default means to use the operating system's default 268 | #: URL handler. 269 | 270 | # url_prefixes http https file ftp gemini irc gopher mailto news git 271 | 272 | #: The set of URL prefixes to look for when detecting a URL under the 273 | #: mouse cursor. 274 | 275 | # detect_urls yes 276 | 277 | #: Detect URLs under the mouse. Detected URLs are highlighted with an 278 | #: underline and the mouse cursor becomes a hand over them. Even if 279 | #: this option is disabled, URLs are still clickable. 280 | 281 | # copy_on_select no 282 | 283 | #: Copy to clipboard or a private buffer on select. With this set to 284 | #: clipboard, simply selecting text with the mouse will cause the text 285 | #: to be copied to clipboard. Useful on platforms such as macOS that 286 | #: do not have the concept of primary selections. You can instead 287 | #: specify a name such as a1 to copy to a private kitty buffer 288 | #: instead. Map a shortcut with the paste_from_buffer action to paste 289 | #: from this private buffer. For example:: 290 | 291 | #: map cmd+shift+v paste_from_buffer a1 292 | 293 | #: Note that copying to the clipboard is a security risk, as all 294 | #: programs, including websites open in your browser can read the 295 | #: contents of the system clipboard. 296 | 297 | # strip_trailing_spaces never 298 | 299 | #: Remove spaces at the end of lines when copying to clipboard. A 300 | #: value of smart will do it when using normal selections, but not 301 | #: rectangle selections. always will always do it. 302 | 303 | # rectangle_select_modifiers ctrl+alt 304 | 305 | #: The modifiers to use rectangular selection (i.e. to select text in 306 | #: a rectangular block with the mouse) 307 | 308 | # terminal_select_modifiers shift 309 | 310 | #: The modifiers to override mouse selection even when a terminal 311 | #: application has grabbed the mouse 312 | 313 | # select_by_word_characters @-./_~?&=%+# 314 | 315 | #: Characters considered part of a word when double clicking. In 316 | #: addition to these characters any character that is marked as an 317 | #: alphanumeric character in the unicode database will be matched. 318 | 319 | # click_interval -1.0 320 | 321 | #: The interval between successive clicks to detect double/triple 322 | #: clicks (in seconds). Negative numbers will use the system default 323 | #: instead, if available, or fallback to 0.5. 324 | 325 | # focus_follows_mouse no 326 | 327 | #: Set the active window to the window under the mouse when moving the 328 | #: mouse around 329 | 330 | # pointer_shape_when_grabbed arrow 331 | 332 | #: The shape of the mouse pointer when the program running in the 333 | #: terminal grabs the mouse. Valid values are: arrow, beam and hand 334 | 335 | # default_pointer_shape beam 336 | 337 | #: The default shape of the mouse pointer. Valid values are: arrow, 338 | #: beam and hand 339 | 340 | # pointer_shape_when_dragging beam 341 | 342 | #: The default shape of the mouse pointer when dragging across text. 343 | #: Valid values are: arrow, beam and hand 344 | 345 | #: }}} 346 | 347 | #: Performance tuning {{{ 348 | 349 | # repaint_delay 10 350 | 351 | #: Delay (in milliseconds) between screen updates. Decreasing it, 352 | #: increases frames-per-second (FPS) at the cost of more CPU usage. 353 | #: The default value yields ~100 FPS which is more than sufficient for 354 | #: most uses. Note that to actually achieve 100 FPS you have to either 355 | #: set sync_to_monitor to no or use a monitor with a high refresh 356 | #: rate. Also, to minimize latency when there is pending input to be 357 | #: processed, repaint_delay is ignored. 358 | 359 | # input_delay 3 360 | 361 | #: Delay (in milliseconds) before input from the program running in 362 | #: the terminal is processed. Note that decreasing it will increase 363 | #: responsiveness, but also increase CPU usage and might cause flicker 364 | #: in full screen programs that redraw the entire screen on each loop, 365 | #: because kitty is so fast that partial screen updates will be drawn. 366 | 367 | # sync_to_monitor yes 368 | 369 | #: Sync screen updates to the refresh rate of the monitor. This 370 | #: prevents tearing (https://en.wikipedia.org/wiki/Screen_tearing) 371 | #: when scrolling. However, it limits the rendering speed to the 372 | #: refresh rate of your monitor. With a very high speed mouse/high 373 | #: keyboard repeat rate, you may notice some slight input latency. If 374 | #: so, set this to no. 375 | 376 | #: }}} 377 | 378 | #: Terminal bell {{{ 379 | 380 | enable_audio_bell no 381 | 382 | #: Enable/disable the audio bell. Useful in environments that require 383 | #: silence. 384 | 385 | # visual_bell_duration 0.0 386 | 387 | #: Visual bell duration. Flash the screen when a bell occurs for the 388 | #: specified number of seconds. Set to zero to disable. 389 | 390 | # window_alert_on_bell yes 391 | 392 | #: Request window attention on bell. Makes the dock icon bounce on 393 | #: macOS or the taskbar flash on linux. 394 | 395 | # bell_on_tab yes 396 | 397 | #: Show a bell symbol on the tab if a bell occurs in one of the 398 | #: windows in the tab and the window is not the currently focused 399 | #: window 400 | 401 | # command_on_bell none 402 | 403 | #: Program to run when a bell occurs. 404 | 405 | #: }}} 406 | 407 | #: Window layout {{{ 408 | 409 | remember_window_size yes 410 | # initial_window_width 640 411 | # initial_window_height 400 412 | 413 | #: If enabled, the window size will be remembered so that new 414 | #: instances of kitty will have the same size as the previous 415 | #: instance. If disabled, the window will initially have size 416 | #: configured by initial_window_width/height, in pixels. You can use a 417 | #: suffix of "c" on the width/height values to have them interpreted 418 | #: as number of cells instead of pixels. 419 | 420 | # enabled_layouts * 421 | 422 | #: The enabled window layouts. A comma separated list of layout names. 423 | #: The special value all means all layouts. The first listed layout 424 | #: will be used as the startup layout. Default configuration is all 425 | #: layouts in alphabetical order. For a list of available layouts, see 426 | #: the https://sw.kovidgoyal.net/kitty/index.html#layouts. 427 | 428 | window_resize_step_cells 2 429 | window_resize_step_lines 2 430 | 431 | #: The step size (in units of cell width/cell height) to use when 432 | #: resizing windows. The cells value is used for horizontal resizing 433 | #: and the lines value for vertical resizing. 434 | 435 | # window_border_width 0.5pt 436 | 437 | #: The width of window borders. Can be either in pixels (px) or pts 438 | #: (pt). Values in pts will be rounded to the nearest number of pixels 439 | #: based on screen resolution. If not specified the unit is assumed to 440 | #: be pts. Note that borders are displayed only when more than one 441 | #: window is visible. They are meant to separate multiple windows. 442 | 443 | # draw_minimal_borders yes 444 | 445 | #: Draw only the minimum borders needed. This means that only the 446 | #: minimum needed borders for inactive windows are drawn. That is only 447 | #: the borders that separate the inactive window from a neighbor. Note 448 | #: that setting a non-zero window margin overrides this and causes all 449 | #: borders to be drawn. 450 | 451 | # window_margin_width 0 452 | 453 | #: The window margin (in pts) (blank area outside the border). A 454 | #: single value sets all four sides. Two values set the vertical and 455 | #: horizontal sides. Three values set top, horizontal and bottom. Four 456 | #: values set top, right, bottom and left. 457 | 458 | # single_window_margin_width -1 459 | 460 | #: The window margin (in pts) to use when only a single window is 461 | #: visible. Negative values will cause the value of 462 | #: window_margin_width to be used instead. A single value sets all 463 | #: four sides. Two values set the vertical and horizontal sides. Three 464 | #: values set top, horizontal and bottom. Four values set top, right, 465 | #: bottom and left. 466 | 467 | # window_padding_width 0 468 | 469 | #: The window padding (in pts) (blank area between the text and the 470 | #: window border). A single value sets all four sides. Two values set 471 | #: the vertical and horizontal sides. Three values set top, horizontal 472 | #: and bottom. Four values set top, right, bottom and left. 473 | 474 | # placement_strategy center 475 | 476 | #: When the window size is not an exact multiple of the cell size, the 477 | #: cell area of the terminal window will have some extra padding on 478 | #: the sides. You can control how that padding is distributed with 479 | #: this option. Using a value of center means the cell area will be 480 | #: placed centrally. A value of top-left means the padding will be on 481 | #: only the bottom and right edges. 482 | 483 | # active_border_color #00ff00 484 | 485 | #: The color for the border of the active window. Set this to none to 486 | #: not draw borders around the active window. 487 | 488 | # inactive_border_color #cccccc 489 | 490 | #: The color for the border of inactive windows 491 | 492 | # bell_border_color #ff5a00 493 | 494 | #: The color for the border of inactive windows in which a bell has 495 | #: occurred 496 | 497 | # inactive_text_alpha 1.0 498 | 499 | #: Fade the text in inactive windows by the specified amount (a number 500 | #: between zero and one, with zero being fully faded). 501 | 502 | # hide_window_decorations no 503 | 504 | #: Hide the window decorations (title-bar and window borders) with 505 | #: yes. On macOS, titlebar-only can be used to only hide the titlebar. 506 | #: Whether this works and exactly what effect it has depends on the 507 | #: window manager/operating system. 508 | 509 | # resize_debounce_time 0.1 510 | 511 | #: The time (in seconds) to wait before redrawing the screen when a 512 | #: resize event is received. On platforms such as macOS, where the 513 | #: operating system sends events corresponding to the start and end of 514 | #: a resize, this number is ignored. 515 | 516 | # resize_draw_strategy static 517 | 518 | #: Choose how kitty draws a window while a resize is in progress. A 519 | #: value of static means draw the current window contents, mostly 520 | #: unchanged. A value of scale means draw the current window contents 521 | #: scaled. A value of blank means draw a blank window. A value of size 522 | #: means show the window size in cells. 523 | 524 | # resize_in_steps no 525 | 526 | #: Resize the OS window in steps as large as the cells, instead of 527 | #: with the usual pixel accuracy. Combined with an 528 | #: initial_window_width and initial_window_height in number of cells, 529 | #: this option can be used to keep the margins as small as possible 530 | #: when resizing the OS window. Note that this does not currently work 531 | #: on Wayland. 532 | 533 | confirm_os_window_close 0 534 | 535 | #: Ask for confirmation when closing an OS window or a tab that has at 536 | #: least this number of kitty windows in it. A value of zero disables 537 | #: confirmation. This confirmation also applies to requests to quit 538 | #: the entire application (all OS windows, via the quit action). 539 | 540 | #: }}} 541 | 542 | #: Tab bar {{{ 543 | 544 | # tab_bar_edge bottom 545 | 546 | #: Which edge to show the tab bar on, top or bottom 547 | 548 | # tab_bar_margin_width 0.0 549 | 550 | #: The margin to the left and right of the tab bar (in pts) 551 | 552 | # tab_bar_style fade 553 | 554 | #: The tab bar style, can be one of: fade, separator, powerline, or 555 | #: hidden. In the fade style, each tab's edges fade into the 556 | #: background color, in the separator style, tabs are separated by a 557 | #: configurable separator, and the powerline shows the tabs as a 558 | #: continuous line. If you use the hidden style, you might want to 559 | #: create a mapping for the select_tab action which presents you with 560 | #: a list of tabs and allows for easy switching to a tab. 561 | 562 | # tab_bar_min_tabs 2 563 | 564 | #: The minimum number of tabs that must exist before the tab bar is 565 | #: shown 566 | 567 | # tab_switch_strategy previous 568 | 569 | #: The algorithm to use when switching to a tab when the current tab 570 | #: is closed. The default of previous will switch to the last used 571 | #: tab. A value of left will switch to the tab to the left of the 572 | #: closed tab. A value of right will switch to the tab to the right of 573 | #: the closed tab. A value of last will switch to the right-most tab. 574 | 575 | # tab_fade 0.25 0.5 0.75 1 576 | 577 | #: Control how each tab fades into the background when using fade for 578 | #: the tab_bar_style. Each number is an alpha (between zero and one) 579 | #: that controls how much the corresponding cell fades into the 580 | #: background, with zero being no fade and one being full fade. You 581 | #: can change the number of cells used by adding/removing entries to 582 | #: this list. 583 | 584 | # tab_separator " ┇" 585 | 586 | #: The separator between tabs in the tab bar when using separator as 587 | #: the tab_bar_style. 588 | 589 | # tab_powerline_style angled 590 | 591 | #: The powerline separator style between tabs in the tab bar when 592 | #: using powerline as the tab_bar_style, can be one of: angled, 593 | #: slanted, or round. 594 | 595 | # tab_activity_symbol none 596 | 597 | #: Some text or a unicode symbol to show on the tab if a window in the 598 | #: tab that does not have focus has some activity. 599 | 600 | # tab_title_template "{title}" 601 | 602 | #: A template to render the tab title. The default just renders the 603 | #: title. If you wish to include the tab-index as well, use something 604 | #: like: {index}: {title}. Useful if you have shortcuts mapped for 605 | #: goto_tab N. In addition you can use {layout_name} for the current 606 | #: layout name and {num_windows} for the number of windows in the tab. 607 | #: Note that formatting is done by Python's string formatting 608 | #: machinery, so you can use, for instance, {layout_name[:2].upper()} 609 | #: to show only the first two letters of the layout name, upper-cased. 610 | #: If you want to style the text, you can use styling directives, for 611 | #: example: {fmt.fg.red}red{fmt.fg.default}normal{fmt.bg._00FF00}green 612 | #: bg{fmt.bg.normal}. Similarly, for bold and italic: 613 | #: {fmt.bold}bold{fmt.nobold}normal{fmt.italic}italic{fmt.noitalic}. 614 | 615 | # active_tab_title_template none 616 | 617 | #: Template to use for active tabs, if not specified falls back to 618 | #: tab_title_template. 619 | 620 | # active_tab_foreground #000 621 | # active_tab_background #eee 622 | # active_tab_font_style bold-italic 623 | # inactive_tab_foreground #444 624 | # inactive_tab_background #999 625 | # inactive_tab_font_style normal 626 | 627 | #: Tab bar colors and styles 628 | 629 | # tab_bar_background none 630 | 631 | #: Background color for the tab bar. Defaults to using the terminal 632 | #: background color. 633 | 634 | #: }}} 635 | 636 | #: Color scheme {{{ 637 | 638 | # The basic colors 639 | foreground #CAD3F5 640 | background #24273A 641 | selection_foreground #24273A 642 | selection_background #F4DBD6 643 | 644 | # Cursor colors 645 | cursor #F4DBD6 646 | cursor_text_color #24273A 647 | 648 | # URL underline color when hovering with mouse 649 | url_color #F4DBD6 650 | 651 | # Kitty window border colors 652 | active_border_color #B7BDF8 653 | inactive_border_color #6E738D 654 | bell_border_color #EED49F 655 | 656 | # OS Window titlebar colors 657 | wayland_titlebar_color system 658 | macos_titlebar_color system 659 | 660 | # Tab bar colors 661 | active_tab_foreground #181926 662 | active_tab_background #C6A0F6 663 | inactive_tab_foreground #CAD3F5 664 | inactive_tab_background #1E2030 665 | tab_bar_background #181926 666 | 667 | # Colors for marks (marked text in the terminal) 668 | mark1_foreground #24273A 669 | mark1_background #B7BDF8 670 | mark2_foreground #24273A 671 | mark2_background #C6A0F6 672 | mark3_foreground #24273A 673 | mark3_background #7DC4E4 674 | 675 | # The 16 terminal colors 676 | 677 | # black 678 | color0 #494D64 679 | color8 #5B6078 680 | 681 | # red 682 | color1 #ED8796 683 | color9 #ED8796 684 | 685 | # green 686 | color2 #A6DA95 687 | color10 #A6DA95 688 | 689 | # yellow 690 | color3 #EED49F 691 | color11 #EED49F 692 | 693 | # blue 694 | color4 #8AADF4 695 | color12 #8AADF4 696 | 697 | # magenta 698 | color5 #F5BDE6 699 | color13 #F5BDE6 700 | 701 | # cyan 702 | color6 #8BD5CA 703 | color14 #8BD5CA 704 | 705 | # white 706 | color7 #B8C0E0 707 | color15 #A5ADCB 708 | 709 | # background_opacity .8 710 | 711 | #: The opacity of the background. A number between 0 and 1, where 1 is 712 | #: opaque and 0 is fully transparent. This will only work if 713 | #: supported by the OS (for instance, when using a compositor under 714 | #: X11). Note that it only sets the background color's opacity in 715 | #: cells that have the same background color as the default terminal 716 | #: background. This is so that things like the status bar in vim, 717 | #: powerline prompts, etc. still look good. But it means that if you 718 | #: use a color theme with a background color in your editor, it will 719 | #: not be rendered as transparent. Instead you should change the 720 | #: default background color in your kitty config and not use a 721 | #: background color in the editor color scheme. Or use the escape 722 | #: codes to set the terminals default colors in a shell script to 723 | #: launch your editor. Be aware that using a value less than 1.0 is a 724 | #: (possibly significant) performance hit. If you want to dynamically 725 | #: change transparency of windows set dynamic_background_opacity to 726 | #: yes (this is off by default as it has a performance cost) 727 | 728 | # background_image /Users/tom/Pictures/wallpaper-your-name.png 729 | 730 | #: Path to a background image. Must be in PNG format. 731 | 732 | background_image_layout scaled 733 | 734 | #: Whether to tile or scale the background image. 735 | 736 | # background_image_linear no 737 | 738 | #: When background image is scaled, whether linear interpolation 739 | #: should be used. 740 | 741 | dynamic_background_opacity yes 742 | 743 | #: Allow changing of the background_opacity dynamically, using either 744 | #: keyboard shortcuts (increase_background_opacity and 745 | #: decrease_background_opacity) or the remote control facility. 746 | 747 | background_tint 0.9 748 | 749 | #: How much to tint the background image by the background color. The 750 | #: tint is applied only under the text area, not margin/borders. Makes 751 | #: it easier to read the text. Tinting is done using the current 752 | #: background color for each window. This setting applies only if 753 | #: background_opacity is set and transparent windows are supported or 754 | #: background_image is set. 755 | 756 | # dim_opacity 0.75 757 | 758 | #: How much to dim text that has the DIM/FAINT attribute set. One 759 | #: means no dimming and zero means fully dimmed (i.e. invisible). 760 | 761 | # mark1_foreground black 762 | 763 | #: Color for marks of type 1 764 | 765 | # mark1_background #98d3cb 766 | 767 | #: Color for marks of type 1 (light steel blue) 768 | 769 | # mark2_foreground black 770 | 771 | #: Color for marks of type 2 772 | 773 | # mark2_background #f2dcd3 774 | 775 | #: Color for marks of type 1 (beige) 776 | 777 | # mark3_foreground black 778 | 779 | #: Color for marks of type 3 780 | 781 | # mark3_background #f274bc 782 | 783 | #: Color for marks of type 1 (violet) 784 | 785 | #: }}} 786 | 787 | #: Advanced {{{ 788 | 789 | # shell . 790 | 791 | #: The shell program to execute. The default value of . means to use 792 | #: whatever shell is set as the default shell for the current user. 793 | #: Note that on macOS if you change this, you might need to add 794 | #: --login to ensure that the shell starts in interactive mode and 795 | #: reads its startup rc files. 796 | 797 | # editor . 798 | 799 | #: The console editor to use when editing the kitty config file or 800 | #: similar tasks. A value of . means to use the environment variables 801 | #: VISUAL and EDITOR in that order. Note that this environment 802 | #: variable has to be set not just in your shell startup scripts but 803 | #: system-wide, otherwise kitty will not see it. 804 | 805 | # close_on_child_death no 806 | 807 | #: Close the window when the child process (shell) exits. If no (the 808 | #: default), the terminal will remain open when the child exits as 809 | #: long as there are still processes outputting to the terminal (for 810 | #: example disowned or backgrounded processes). If yes, the window 811 | #: will close as soon as the child process exits. Note that setting it 812 | #: to yes means that any background processes still using the terminal 813 | #: can fail silently because their stdout/stderr/stdin no longer work. 814 | 815 | # allow_remote_control no 816 | 817 | #: Allow other programs to control kitty. If you turn this on other 818 | #: programs can control all aspects of kitty, including sending text 819 | #: to kitty windows, opening new windows, closing windows, reading the 820 | #: content of windows, etc. Note that this even works over ssh 821 | #: connections. You can chose to either allow any program running 822 | #: within kitty to control it, with yes or only programs that connect 823 | #: to the socket specified with the kitty --listen-on command line 824 | #: option, if you use the value socket-only. The latter is useful if 825 | #: you want to prevent programs running on a remote computer over ssh 826 | #: from controlling kitty. 827 | 828 | # listen_on none 829 | 830 | #: Tell kitty to listen to the specified unix/tcp socket for remote 831 | #: control connections. Note that this will apply to all kitty 832 | #: instances. It can be overridden by the kitty --listen-on command 833 | #: line flag. This option accepts only UNIX sockets, such as 834 | #: unix:${TEMP}/mykitty or (on Linux) unix:@mykitty. Environment 835 | #: variables are expanded. If {kitty_pid} is present then it is 836 | #: replaced by the PID of the kitty process, otherwise the PID of the 837 | #: kitty process is appended to the value, with a hyphen. This option 838 | #: is ignored unless you also set allow_remote_control to enable 839 | #: remote control. See the help for kitty --listen-on for more 840 | #: details. 841 | 842 | # env 843 | 844 | #: Specify environment variables to set in all child processes. Note 845 | #: that environment variables are expanded recursively, so if you 846 | #: use:: 847 | 848 | #: env MYVAR1=a 849 | #: env MYVAR2=${MYVAR1}/${HOME}/b 850 | 851 | #: The value of MYVAR2 will be a//b. 852 | 853 | # update_check_interval 24 854 | 855 | #: Periodically check if an update to kitty is available. If an update 856 | #: is found a system notification is displayed informing you of the 857 | #: available update. The default is to check every 24 hrs, set to zero 858 | #: to disable. 859 | 860 | # startup_session none 861 | 862 | #: Path to a session file to use for all kitty instances. Can be 863 | #: overridden by using the kitty --session command line option for 864 | #: individual instances. See 865 | #: https://sw.kovidgoyal.net/kitty/index.html#sessions in the kitty 866 | #: documentation for details. Note that relative paths are interpreted 867 | #: with respect to the kitty config directory. Environment variables 868 | #: in the path are expanded. 869 | 870 | # clipboard_control write-clipboard write-primary 871 | 872 | #: Allow programs running in kitty to read and write from the 873 | #: clipboard. You can control exactly which actions are allowed. The 874 | #: set of possible actions is: write-clipboard read-clipboard write- 875 | #: primary read-primary. You can additionally specify no-append to 876 | #: disable kitty's protocol extension for clipboard concatenation. The 877 | #: default is to allow writing to the clipboard and primary selection 878 | #: with concatenation enabled. Note that enabling the read 879 | #: functionality is a security risk as it means that any program, even 880 | #: one running on a remote server via SSH can read your clipboard. 881 | 882 | # allow_hyperlinks yes 883 | 884 | #: Process hyperlink (OSC 8) escape sequences. If disabled OSC 8 885 | #: escape sequences are ignored. Otherwise they become clickable 886 | #: links, that you can click by holding down ctrl+shift and clicking 887 | #: with the mouse. The special value of ``ask`` means that kitty will 888 | #: ask before opening the link. 889 | 890 | # term xterm-kitty 891 | 892 | #: The value of the TERM environment variable to set. Changing this 893 | #: can break many terminal programs, only change it if you know what 894 | #: you are doing, not because you read some advice on Stack Overflow 895 | #: to change it. The TERM variable is used by various programs to get 896 | #: information about the capabilities and behavior of the terminal. If 897 | #: you change it, depending on what programs you run, and how 898 | #: different the terminal you are changing it to is, various things 899 | #: from key-presses, to colors, to various advanced features may not 900 | #: work. 901 | 902 | #: }}} 903 | 904 | #: OS specific tweaks {{{ 905 | 906 | # wayland_titlebar_color system 907 | 908 | #: Change the color of the kitty window's titlebar on Wayland systems 909 | #: with client side window decorations such as GNOME. A value of 910 | #: system means to use the default system color, a value of background 911 | #: means to use the background color of the currently active window 912 | #: and finally you can use an arbitrary color, such as #12af59 or red. 913 | 914 | # macos_titlebar_color system 915 | 916 | #: Change the color of the kitty window's titlebar on macOS. A value 917 | #: of system means to use the default system color, a value of 918 | #: background means to use the background color of the currently 919 | #: active window and finally you can use an arbitrary color, such as 920 | #: #12af59 or red. WARNING: This option works by using a hack, as 921 | #: there is no proper Cocoa API for it. It sets the background color 922 | #: of the entire window and makes the titlebar transparent. As such it 923 | #: is incompatible with background_opacity. If you want to use both, 924 | #: you are probably better off just hiding the titlebar with 925 | #: hide_window_decorations. 926 | 927 | # macos_option_as_alt both 928 | 929 | #: Use the option key as an alt key. With this set to no, kitty will 930 | #: use the macOS native Option+Key = unicode character behavior. This 931 | #: will break any Alt+key keyboard shortcuts in your terminal 932 | #: programs, but you can use the macOS unicode input technique. You 933 | #: can use the values: left, right, or both to use only the left, 934 | #: right or both Option keys as Alt, instead. 935 | 936 | # macos_hide_from_tasks no 937 | 938 | #: Hide the kitty window from running tasks (⌘+Tab) on macOS. 939 | 940 | # macos_quit_when_last_window_closed no 941 | 942 | #: Have kitty quit when all the top-level windows are closed. By 943 | #: default, kitty will stay running, even with no open windows, as is 944 | #: the expected behavior on macOS. 945 | 946 | # macos_window_resizable yes 947 | 948 | #: Disable this if you want kitty top-level (OS) windows to not be 949 | #: resizable on macOS. 950 | 951 | # macos_thicken_font 0 952 | 953 | #: Draw an extra border around the font with the given width, to 954 | #: increase legibility at small font sizes. For example, a value of 955 | #: 0.75 will result in rendering that looks similar to sub-pixel 956 | #: antialiasing at common font sizes. 957 | 958 | # macos_traditional_fullscreen no 959 | 960 | #: Use the traditional full-screen transition, that is faster, but 961 | #: less pretty. 962 | 963 | # macos_show_window_title_in all 964 | 965 | #: Show or hide the window title in the macOS window or menu-bar. A 966 | #: value of window will show the title of the currently active window 967 | #: at the top of the macOS window. A value of menubar will show the 968 | #: title of the currently active window in the macOS menu-bar, making 969 | #: use of otherwise wasted space. all will show the title everywhere 970 | #: and none hides the title in the window and the menu-bar. 971 | 972 | # macos_custom_beam_cursor no 973 | 974 | #: Enable/disable custom mouse cursor for macOS that is easier to see 975 | #: on both light and dark backgrounds. WARNING: this might make your 976 | #: mouse cursor invisible on dual GPU machines. 977 | 978 | # linux_display_server auto 979 | 980 | #: Choose between Wayland and X11 backends. By default, an appropriate 981 | #: backend based on the system state is chosen automatically. Set it 982 | #: to x11 or wayland to force the choice. 983 | 984 | #: }}} 985 | 986 | #: Keyboard shortcuts {{{ 987 | 988 | #: Keys are identified simply by their lowercase unicode characters. 989 | #: For example: ``a`` for the A key, ``[`` for the left square bracket 990 | #: key, etc. For functional keys, such as ``Enter or Escape`` the 991 | #: names are present at https://sw.kovidgoyal.net/kitty/keyboard- 992 | #: protocol.html#functional-key-definitions. For a list of modifier 993 | #: names, see: GLFW mods 994 | #: 995 | 996 | #: On Linux you can also use XKB key names to bind keys that are not 997 | #: supported by GLFW. See XKB keys 998 | #: for a list of key names. The name to use is the part 1000 | #: after the XKB_KEY_ prefix. Note that you can only use an XKB key 1001 | #: name for keys that are not known as GLFW keys. 1002 | 1003 | #: Finally, you can use raw system key codes to map keys, again only 1004 | #: for keys that are not known as GLFW keys. To see the system key 1005 | #: code for a key, start kitty with the kitty --debug-keyboard option. 1006 | #: Then kitty will output some debug text for every key event. In that 1007 | #: text look for ``native_code`` the value of that becomes the key 1008 | #: name in the shortcut. For example: 1009 | 1010 | #: .. code-block:: none 1011 | 1012 | #: on_key_input: glfw key: 65 native_code: 0x61 action: PRESS mods: 0x0 text: 'a' 1013 | 1014 | #: Here, the key name for the A key is 0x61 and you can use it with:: 1015 | 1016 | #: map ctrl+0x61 something 1017 | 1018 | #: to map ctrl+a to something. 1019 | 1020 | #: You can use the special action no_op to unmap a keyboard shortcut 1021 | #: that is assigned in the default configuration:: 1022 | 1023 | #: map kitty_mod+space no_op 1024 | 1025 | #: You can combine multiple actions to be triggered by a single 1026 | #: shortcut, using the syntax below:: 1027 | 1028 | #: map key combine action1 action2 action3 ... 1029 | 1030 | #: For example:: 1031 | 1032 | #: map kitty_mod+e combine : new_window : next_layout 1033 | 1034 | #: this will create a new window and switch to the next available 1035 | #: layout 1036 | 1037 | #: You can use multi-key shortcuts using the syntax shown below:: 1038 | 1039 | #: map key1>key2>key3 action 1040 | 1041 | #: For example:: 1042 | 1043 | #: map ctrl+f>2 set_font_size 20 1044 | 1045 | # kitty_mod ctrl+shift 1046 | 1047 | #: The value of kitty_mod is used as the modifier for all default 1048 | #: shortcuts, you can change it in your kitty.conf to change the 1049 | #: modifiers for all the default shortcuts. 1050 | 1051 | # clear_all_shortcuts no 1052 | 1053 | #: You can have kitty remove all shortcut definition seen up to this 1054 | #: point. Useful, for instance, to remove the default shortcuts. 1055 | 1056 | # kitten_alias hints hints --hints-offset=0 1057 | 1058 | #: You can create aliases for kitten names, this allows overriding the 1059 | #: defaults for kitten options and can also be used to shorten 1060 | #: repeated mappings of the same kitten with a specific group of 1061 | #: options. For example, the above alias changes the default value of 1062 | #: kitty +kitten hints --hints-offset to zero for all mappings, 1063 | #: including the builtin ones. 1064 | 1065 | #: Clipboard {{{ 1066 | 1067 | # map kitty_mod+c copy_to_clipboard 1068 | 1069 | #: There is also a copy_or_interrupt action that can be optionally 1070 | #: mapped to Ctrl+c. It will copy only if there is a selection and 1071 | #: send an interrupt otherwise. Similarly, copy_and_clear_or_interrupt 1072 | #: will copy and clear the selection or send an interrupt if there is 1073 | #: no selection. 1074 | 1075 | # map cmd+c copy_to_clipboard 1076 | # map kitty_mod+v paste_from_clipboard 1077 | # map cmd+v paste_from_clipboard 1078 | # map kitty_mod+s paste_from_selection 1079 | # map shift+insert paste_from_selection 1080 | # map kitty_mod+o pass_selection_to_program 1081 | 1082 | #: You can also pass the contents of the current selection to any 1083 | #: program using pass_selection_to_program. By default, the system's 1084 | #: open program is used, but you can specify your own, the selection 1085 | #: will be passed as a command line argument to the program, for 1086 | #: example:: 1087 | 1088 | #: map kitty_mod+o pass_selection_to_program firefox 1089 | 1090 | #: You can pass the current selection to a terminal program running in 1091 | #: a new kitty window, by using the @selection placeholder:: 1092 | 1093 | #: map kitty_mod+y new_window less @selection 1094 | 1095 | #: }}} 1096 | 1097 | #: Scrolling {{{ 1098 | 1099 | # map kitty_mod+up scroll_line_up 1100 | # map alt+cmd+page_up scroll_line_up 1101 | # map cmd+up scroll_line_up 1102 | # map kitty_mod+k scroll_line_up 1103 | # map kitty_mod+down scroll_line_down 1104 | # map kitty_mod+j scroll_line_down 1105 | # map alt+cmd+page_down scroll_line_down 1106 | # map cmd+down scroll_line_down 1107 | # map kitty_mod+page_up scroll_page_up 1108 | # map cmd+page_up scroll_page_up 1109 | # map kitty_mod+page_down scroll_page_down 1110 | # map cmd+page_down scroll_page_down 1111 | # map kitty_mod+home scroll_home 1112 | # map cmd+home scroll_home 1113 | # map kitty_mod+end scroll_end 1114 | # map cmd+end scroll_end 1115 | # map kitty_mod+h show_scrollback 1116 | 1117 | #: You can pipe the contents of the current screen + history buffer as 1118 | #: STDIN to an arbitrary program using the ``launch`` function. For 1119 | #: example, the following opens the scrollback buffer in less in an 1120 | #: overlay window:: 1121 | 1122 | #: map f1 launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay less +G -R 1123 | 1124 | #: For more details on piping screen and buffer contents to external 1125 | #: programs, see launch. 1126 | 1127 | #: }}} 1128 | 1129 | #: Window management {{{ 1130 | 1131 | # map kitty_mod+enter new_window 1132 | 1133 | #: You can open a new window running an arbitrary program, for 1134 | #: example:: 1135 | 1136 | #: map kitty_mod+y launch mutt 1137 | 1138 | #: You can open a new window with the current working directory set to 1139 | #: the working directory of the current window using:: 1140 | 1141 | #: map ctrl+alt+enter launch --cwd=current 1142 | 1143 | #: You can open a new window that is allowed to control kitty via the 1144 | #: kitty remote control facility by prefixing the command line with @. 1145 | #: Any programs running in that window will be allowed to control 1146 | #: kitty. For example:: 1147 | 1148 | #: map ctrl+enter launch --allow-remote-control some_program 1149 | 1150 | #: You can open a new window next to the currently active window or as 1151 | #: the first window, with:: 1152 | 1153 | #: map ctrl+n launch --location=neighbor some_program 1154 | #: map ctrl+f launch --location=first some_program 1155 | 1156 | #: For more details, see launch. 1157 | 1158 | # map cmd+enter new_window 1159 | # map kitty_mod+n new_os_window 1160 | 1161 | #: Works like new_window above, except that it opens a top level OS 1162 | #: kitty window. In particular you can use new_os_window_with_cwd to 1163 | #: open a window with the current working directory. 1164 | 1165 | # map cmd+n new_os_window 1166 | # map kitty_mod+w close_window 1167 | # map shift+cmd+d close_window 1168 | # map kitty_mod+] next_window 1169 | # map kitty_mod+[ previous_window 1170 | # map kitty_mod+f move_window_forward 1171 | # map kitty_mod+b move_window_backward 1172 | # map kitty_mod+` move_window_to_top 1173 | # map kitty_mod+r start_resizing_window 1174 | # map cmd+r start_resizing_window 1175 | # map kitty_mod+1 first_window 1176 | # map cmd+1 first_window 1177 | # map kitty_mod+2 second_window 1178 | # map cmd+2 second_window 1179 | # map kitty_mod+3 third_window 1180 | # map cmd+3 third_window 1181 | # map kitty_mod+4 fourth_window 1182 | # map cmd+4 fourth_window 1183 | # map kitty_mod+5 fifth_window 1184 | # map cmd+5 fifth_window 1185 | # map kitty_mod+6 sixth_window 1186 | # map cmd+6 sixth_window 1187 | # map kitty_mod+7 seventh_window 1188 | # map cmd+7 seventh_window 1189 | # map kitty_mod+8 eighth_window 1190 | # map cmd+8 eighth_window 1191 | # map kitty_mod+9 ninth_window 1192 | # map cmd+9 ninth_window 1193 | # map kitty_mod+0 tenth_window 1194 | #: }}} 1195 | 1196 | #: Tab management {{{ 1197 | 1198 | # map kitty_mod+right next_tab 1199 | # map shift+cmd+] next_tab 1200 | # map ctrl+tab next_tab 1201 | # map kitty_mod+left previous_tab 1202 | # map shift+cmd+[ previous_tab 1203 | # map shift+ctrl+tab previous_tab 1204 | # map kitty_mod+t new_tab 1205 | # map cmd+t new_tab 1206 | # map kitty_mod+q close_tab 1207 | # map cmd+w close_tab 1208 | # map shift+cmd+w close_os_window 1209 | # map kitty_mod+. move_tab_forward 1210 | # map kitty_mod+, move_tab_backward 1211 | # map kitty_mod+alt+t set_tab_title 1212 | # map shift+cmd+i set_tab_title 1213 | 1214 | #: You can also create shortcuts to go to specific tabs, with 1 being 1215 | #: the first tab, 2 the second tab and -1 being the previously active 1216 | #: tab, and any number larger than the last tab being the last tab:: 1217 | 1218 | #: map ctrl+alt+1 goto_tab 1 1219 | #: map ctrl+alt+2 goto_tab 2 1220 | 1221 | #: Just as with new_window above, you can also pass the name of 1222 | #: arbitrary commands to run when using new_tab and use 1223 | #: new_tab_with_cwd. Finally, if you want the new tab to open next to 1224 | #: the current tab rather than at the end of the tabs list, use:: 1225 | 1226 | #: map ctrl+t new_tab !neighbor [optional cmd to run] 1227 | #: }}} 1228 | 1229 | #: Layout management {{{ 1230 | 1231 | # map kitty_mod+l next_layout 1232 | 1233 | #: You can also create shortcuts to switch to specific layouts:: 1234 | 1235 | #: map ctrl+alt+t goto_layout tall 1236 | #: map ctrl+alt+s goto_layout stack 1237 | 1238 | #: Similarly, to switch back to the previous layout:: 1239 | 1240 | #: map ctrl+alt+p last_used_layout 1241 | #: }}} 1242 | 1243 | #: Font sizes {{{ 1244 | 1245 | #: You can change the font size for all top-level kitty OS windows at 1246 | #: a time or only the current one. 1247 | 1248 | # map kitty_mod+equal change_font_size all +2.0 1249 | # map kitty_mod+plus change_font_size all +2.0 1250 | # map kitty_mod+kp_add change_font_size all +2.0 1251 | # map cmd+plus change_font_size all +2.0 1252 | # map cmd+equal change_font_size all +2.0 1253 | # map cmd+shift+equal change_font_size all +2.0 1254 | # map kitty_mod+minus change_font_size all -2.0 1255 | # map kitty_mod+kp_subtract change_font_size all -2.0 1256 | # map cmd+minus change_font_size all -2.0 1257 | # map cmd+shift+minus change_font_size all -2.0 1258 | # map kitty_mod+backspace change_font_size all 0 1259 | # map cmd+0 change_font_size all 0 1260 | 1261 | #: To setup shortcuts for specific font sizes:: 1262 | 1263 | #: map kitty_mod+f6 change_font_size all 10.0 1264 | 1265 | #: To setup shortcuts to change only the current OS window's font 1266 | #: size:: 1267 | 1268 | #: map kitty_mod+f6 change_font_size current 10.0 1269 | #: }}} 1270 | 1271 | #: Select and act on visible text {{{ 1272 | 1273 | #: Use the hints kitten to select text and either pass it to an 1274 | #: external program or insert it into the terminal or copy it to the 1275 | #: clipboard. 1276 | 1277 | # map kitty_mod+e kitten hints 1278 | 1279 | #: Open a currently visible URL using the keyboard. The program used 1280 | #: to open the URL is specified in open_url_with. 1281 | 1282 | # map kitty_mod+p>f kitten hints --type path --program - 1283 | 1284 | #: Select a path/filename and insert it into the terminal. Useful, for 1285 | #: instance to run git commands on a filename output from a previous 1286 | #: git command. 1287 | 1288 | # map kitty_mod+p>shift+f kitten hints --type path 1289 | 1290 | #: Select a path/filename and open it with the default open program. 1291 | 1292 | # map kitty_mod+p>l kitten hints --type line --program - 1293 | 1294 | #: Select a line of text and insert it into the terminal. Use for the 1295 | #: output of things like: ls -1 1296 | 1297 | # map kitty_mod+p>w kitten hints --type word --program - 1298 | 1299 | #: Select words and insert into terminal. 1300 | 1301 | # map kitty_mod+p>h kitten hints --type hash --program - 1302 | 1303 | #: Select something that looks like a hash and insert it into the 1304 | #: terminal. Useful with git, which uses sha1 hashes to identify 1305 | #: commits 1306 | 1307 | # map kitty_mod+p>n kitten hints --type linenum 1308 | 1309 | #: Select something that looks like filename:linenum and open it in 1310 | #: vim at the specified line number. 1311 | 1312 | # map kitty_mod+p>y kitten hints --type hyperlink 1313 | 1314 | #: Select a hyperlink (i.e. a URL that has been marked as such by the 1315 | #: terminal program, for example, by ls --hyperlink=auto). 1316 | 1317 | 1318 | #: The hints kitten has many more modes of operation that you can map 1319 | #: to different shortcuts. For a full description see kittens/hints. 1320 | #: }}} 1321 | 1322 | #: Miscellaneous {{{ 1323 | 1324 | # map kitty_mod+f11 toggle_fullscreen 1325 | # map kitty_mod+f10 toggle_maximized 1326 | # map kitty_mod+u kitten unicode_input 1327 | # map cmd+ctrl+space kitten unicode_input 1328 | # map kitty_mod+f2 edit_config_file 1329 | # map cmd+, edit_config_file 1330 | # map kitty_mod+escape kitty_shell window 1331 | 1332 | #: Open the kitty shell in a new window/tab/overlay/os_window to 1333 | #: control kitty using commands. 1334 | 1335 | # map kitty_mod+a>m set_background_opacity +0.1 1336 | # map kitty_mod+a>l set_background_opacity -0.1 1337 | # map kitty_mod+a>1 set_background_opacity 1 1338 | # map kitty_mod+a>d set_background_opacity default 1339 | # map kitty_mod+delete clear_terminal reset active 1340 | 1341 | #: You can create shortcuts to clear/reset the terminal. For example:: 1342 | 1343 | #: # Reset the terminal 1344 | #: map kitty_mod+f9 clear_terminal reset active 1345 | #: # Clear the terminal screen by erasing all contents 1346 | #: map kitty_mod+f10 clear_terminal clear active 1347 | #: # Clear the terminal scrollback by erasing it 1348 | #: map kitty_mod+f11 clear_terminal scrollback active 1349 | #: # Scroll the contents of the screen into the scrollback 1350 | #: map kitty_mod+f12 clear_terminal scroll active 1351 | 1352 | #: If you want to operate on all windows instead of just the current 1353 | #: one, use all instead of active. 1354 | 1355 | #: It is also possible to remap Ctrl+L to both scroll the current 1356 | #: screen contents into the scrollback buffer and clear the screen, 1357 | #: instead of just clearing the screen:: 1358 | 1359 | #: map ctrl+l combine : clear_terminal scroll active : send_text normal,application \x0c 1360 | 1361 | 1362 | #: You can tell kitty to send arbitrary (UTF-8) encoded text to the 1363 | #: client program when pressing specified shortcut keys. For example:: 1364 | 1365 | #: map ctrl+alt+a send_text all Special text 1366 | 1367 | #: This will send "Special text" when you press the ctrl+alt+a key 1368 | #: combination. The text to be sent is a python string literal so you 1369 | #: can use escapes like \x1b to send control codes or \u21fb to send 1370 | #: unicode characters (or you can just input the unicode characters 1371 | #: directly as UTF-8 text). The first argument to send_text is the 1372 | #: keyboard modes in which to activate the shortcut. The possible 1373 | #: values are normal or application or kitty or a comma separated 1374 | #: combination of them. The special keyword all means all modes. The 1375 | #: modes normal and application refer to the DECCKM cursor key mode 1376 | #: for terminals, and kitty refers to the special kitty extended 1377 | #: keyboard protocol. 1378 | 1379 | #: Another example, that outputs a word and then moves the cursor to 1380 | #: the start of the line (same as pressing the Home key):: 1381 | 1382 | #: map ctrl+alt+a send_text normal Word\x1b[H 1383 | #: map ctrl+alt+a send_text application Word\x1bOH 1384 | 1385 | #: }}} 1386 | 1387 | # }}} 1388 | 1389 | # Fig Kitty Integration: Enabled 1390 | watcher ${HOME}/.fig/tools/kitty-integration.py 1391 | # End of Fig Kitty Integration 1392 | -------------------------------------------------------------------------------- /HOME/.config/lazygit/config.yml: -------------------------------------------------------------------------------- 1 | gui: 2 | theme: 3 | activeBorderColor: 4 | - '#f5bde6' 5 | - bold 6 | inactiveBorderColor: 7 | - '#a5adcb' 8 | optionsTextColor: 9 | - '#8aadf4' 10 | selectedLineBgColor: 11 | - '#363a4f' 12 | cherryPickedCommitBgColor: 13 | - '#494d64' 14 | cherryPickedCommitFgColor: 15 | - '#f5bde6' 16 | unstagedChangesColor: 17 | - '#ed8796' 18 | defaultFgColor: 19 | - '#cad3f5' 20 | searchingActiveBorderColor: 21 | - '#eed49f' 22 | authorColors: 23 | '*': '#b7bdf8' 24 | -------------------------------------------------------------------------------- /HOME/.config/nvim/init.lua: -------------------------------------------------------------------------------- 1 | -- Lazy requires mapleader to be set before it is loaded 2 | vim.g.mapleader = ' ' 3 | 4 | local lazypath = vim.fn.stdpath('data') .. '/lazy/lazy.nvim' 5 | if not vim.loop.fs_stat(lazypath) then 6 | vim.fn.system({ 7 | 'git', 8 | 'clone', 9 | '--filter=blob:none', 10 | 'https://github.com/folke/lazy.nvim.git', 11 | '--branch=stable', -- latest stable release 12 | lazypath, 13 | }) 14 | end 15 | vim.opt.rtp:prepend(lazypath) 16 | 17 | require('lazy').setup('plugins', { 18 | ui = { 19 | border = 'rounded', 20 | }, 21 | change_detection = { 22 | enabled = false, 23 | }, 24 | }) 25 | 26 | require('settings') 27 | -------------------------------------------------------------------------------- /HOME/.config/nvim/lazy-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions-preview.nvim": { "branch": "master", "commit": "36513ad213855d497b7dd3391a24d1d75d58e36f" }, 3 | "avante.nvim": { "branch": "main", "commit": "868c13657442b799a5c161940602f99623a08197" }, 4 | "blink.cmp": { "branch": "main", "commit": "022521a8910a5543b0251b21c9e1a1e989745796" }, 5 | "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, 6 | "cloak.nvim": { "branch": "main", "commit": "648aca6d33ec011dc3166e7af3b38820d01a71e4" }, 7 | "copilot.lua": { "branch": "master", "commit": "5f726c8e6bbcd7461ee0b870d4e6c8a973b55b64" }, 8 | "dressing.nvim": { "branch": "master", "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639" }, 9 | "fidget.nvim": { "branch": "main", "commit": "b61e8af9b8b68ee0ec7da5fb7a8c203aae854f2e" }, 10 | "gitsigns.nvim": { "branch": "main", "commit": "8bdaccdb897945a3c99c1ad8df94db0ddf5c8790" }, 11 | "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, 12 | "lualine.nvim": { "branch": "master", "commit": "0c6cca9f2c63dadeb9225c45bc92bb95a151d4af" }, 13 | "mason-lspconfig.nvim": { "branch": "main", "commit": "60eaff7a470b8e78ddff09d847d17a011f560759" }, 14 | "mason.nvim": { "branch": "main", "commit": "8024d64e1330b86044fed4c8494ef3dcd483a67c" }, 15 | "mini.files": { "branch": "main", "commit": "49c855977e9f4821d1ed8179ed44fe098b93ea2a" }, 16 | "nui.nvim": { "branch": "main", "commit": "7cd18e73cfbd70e1546931b7268b3eebaeff9391" }, 17 | "nvim": { "branch": "main", "commit": "a0c769bc7cd04bbbf258b3d5f01e2bdce744108d" }, 18 | "nvim-autopairs": { "branch": "master", "commit": "4d74e75913832866aa7de35e4202463ddf6efd1b" }, 19 | "nvim-lspconfig": { "branch": "master", "commit": "03bc581e05e81d33808b42b2d7e76d70adb3b595" }, 20 | "nvim-spectre": { "branch": "master", "commit": "72f56f7585903cd7bf92c665351aa585e150af0f" }, 21 | "nvim-tree.lua": { "branch": "master", "commit": "ebcaccda1c575fa19a8087445276e6671e2b9b37" }, 22 | "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, 23 | "nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" }, 24 | "nvim-web-devicons": { "branch": "master", "commit": "1fb58cca9aebbc4fd32b086cb413548ce132c127" }, 25 | "persistence.nvim": { "branch": "main", "commit": "166a79a55bfa7a4db3e26fc031b4d92af71d0b51" }, 26 | "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, 27 | "registers.nvim": { "branch": "main", "commit": "c217f8f369e0886776cda6c94eab839b30a8940d" }, 28 | "render-markdown.nvim": { "branch": "main", "commit": "8debb17aab2fbbf3b341e46ac032d0a6f937d8c3" }, 29 | "satellite.nvim": { "branch": "main", "commit": "8f3a12bc64fbb3df738bf82f8295219f50c5b59d" }, 30 | "snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" }, 31 | "telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" }, 32 | "telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" }, 33 | "ts-comments.nvim": { "branch": "main", "commit": "1bd9d0ba1d8b336c3db50692ffd0955fe1bb9f0c" } 34 | } 35 | -------------------------------------------------------------------------------- /HOME/.config/nvim/lua/plugins.lua: -------------------------------------------------------------------------------- 1 | return { 2 | -- Themes 3 | { 4 | 'catppuccin/nvim', 5 | config = function() 6 | require('catppuccin').setup({ 7 | flavour = 'macchiato', -- latte, frappe, macchiato, mocha 8 | integrations = { 9 | cmp = true, 10 | gitsigns = true, 11 | nvimtree = true, 12 | treesitter = true, 13 | fidget = true, 14 | mason = true, 15 | render_markdown = true, 16 | telescope = { 17 | enabled = true, 18 | }, 19 | snacks = { 20 | enabled = true, 21 | }, 22 | } 23 | }) 24 | vim.cmd.colorscheme 'catppuccin' 25 | end 26 | }, 27 | -- Others 28 | { 29 | 'windwp/nvim-ts-autotag', 30 | event = 'InsertEnter', 31 | config = function() 32 | require('nvim-ts-autotag').setup() 33 | end 34 | }, 35 | { 36 | 'windwp/nvim-autopairs', 37 | event = 'InsertEnter', 38 | config = function() 39 | require('nvim-autopairs').setup() 40 | end 41 | }, 42 | { 43 | 'j-hui/fidget.nvim', 44 | tag = 'v1.6.1', 45 | event = 'LspAttach', 46 | config = function() 47 | require('fidget').setup() 48 | end 49 | }, 50 | { 51 | 'lewis6991/gitsigns.nvim', 52 | event = { 'BufReadPre', 'BufNewFile' }, 53 | config = function() 54 | require('gitsigns').setup({ 55 | preview_config = { 56 | border = 'rounded', 57 | } 58 | }) 59 | end 60 | }, 61 | { 62 | 'folke/persistence.nvim', 63 | event = { 'BufReadPre', 'BufNewFile' }, 64 | config = function() 65 | require('persistence').setup() 66 | end, 67 | }, 68 | { 69 | 'nvim-pack/nvim-spectre', 70 | keys = { 71 | { 'S', 'lua require("spectre").toggle()' } 72 | }, 73 | dependencies = { 'nvim-lua/plenary.nvim' } 74 | }, 75 | { 76 | 'tversteeg/registers.nvim', 77 | keys = { 78 | { '\"', mode = { 'n', 'v' } }, 79 | { '', mode = 'i' } 80 | }, 81 | config = function() 82 | require('registers').setup({ 83 | window = { 84 | border = 'rounded', 85 | }, 86 | }) 87 | end 88 | }, 89 | { 90 | 'aznhe21/actions-preview.nvim', 91 | keys = { 92 | { 'ga', 'lua require("actions-preview").code_actions()' } 93 | }, 94 | config = function() 95 | require('actions-preview').setup({ 96 | telescope = { 97 | sorting_strategy = "ascending", 98 | layout_strategy = "vertical", 99 | layout_config = { 100 | width = 0.4, 101 | height = 0.4, 102 | prompt_position = "top", 103 | }, 104 | }, 105 | }) 106 | end 107 | }, 108 | { 109 | 'laytan/cloak.nvim', 110 | event = { 'BufReadPre *.env' }, 111 | config = function() 112 | require('cloak').setup() 113 | end 114 | }, 115 | { 116 | 'folke/ts-comments.nvim', 117 | event = { 'BufReadPre', 'BufNewFile' }, 118 | }, 119 | { 120 | 'lewis6991/satellite.nvim', 121 | event = { 'BufReadPre', 'BufNewFile' }, 122 | config = function() 123 | require('satellite').setup({ 124 | current_only = true, 125 | winblend = 100, 126 | width = 1, 127 | }) 128 | end 129 | }, 130 | { 131 | 'MeanderingProgrammer/render-markdown.nvim', 132 | opts = { 133 | file_types = { 'markdown', 'Avante' }, 134 | preset = 'lazy', 135 | code = { 136 | language_icon = false, 137 | language_name = false, 138 | disable_background = true, 139 | }, 140 | }, 141 | ft = { 'markdown', 'Avante' }, 142 | }, 143 | } 144 | -------------------------------------------------------------------------------- /HOME/.config/nvim/lua/plugins/ai.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | 'zbirenbaum/copilot.lua', 4 | cmd = 'Copilot', 5 | event = 'InsertEnter', 6 | config = function() 7 | require('copilot').setup({ 8 | suggestion = { 9 | auto_trigger = true, 10 | keymap = { 11 | accept = '', 12 | } 13 | }, 14 | filetypes = { 15 | yaml = true, 16 | markdown = true, 17 | }, 18 | server = { 19 | type = 'binary', 20 | }, 21 | server_opts_overrides = { 22 | offset_encoding = 'utf-16', 23 | }, 24 | }) 25 | end 26 | }, 27 | { 28 | 'yetone/avante.nvim', 29 | cmd = 'AvanteChat', 30 | keys = { 31 | { 'aa', 'AvanteChat' } 32 | }, 33 | version = 'v0.0.23', 34 | opts = { 35 | provider = 'copilot', 36 | copilot = { 37 | model = 'gpt-4.1', 38 | max_tokens = 120000, -- max tokens for GPT-4.1 is 128k, so add some buffer 39 | }, 40 | auto_suggestions_provider = nil, 41 | behaviour = { 42 | auto_suggestions = false, 43 | }, 44 | hints = { 45 | enabled = false, 46 | }, 47 | }, 48 | build = 'make', 49 | dependencies = { 50 | 'nvim-treesitter/nvim-treesitter', 51 | 'stevearc/dressing.nvim', 52 | 'nvim-lua/plenary.nvim', 53 | 'MunifTanjim/nui.nvim', 54 | 'zbirenbaum/copilot.lua', 55 | 'MeanderingProgrammer/render-markdown.nvim', 56 | }, 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /HOME/.config/nvim/lua/plugins/bufferline.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | 'akinsho/bufferline.nvim', 4 | event = { 'BufReadPre', 'BufNewFile' }, 5 | after = 'catppuccin', 6 | config = function() 7 | local C = require('catppuccin.palettes').get_palette() 8 | 9 | require('bufferline').setup({ 10 | highlights = require('catppuccin.groups.integrations.bufferline').get({ 11 | custom = { 12 | all = { 13 | -- Overwrite the background colors to be the same as all backgrounds 14 | fill = { bg = C.base }, 15 | background = { bg = C.base }, 16 | tab = { bg = C.base }, 17 | tab_selected = { bg = C.base }, 18 | tab_separator = { bg = C.base }, 19 | tab_separator_selected = { bg = C.base }, 20 | tab_close = { bg = C.base }, 21 | close_button = { bg = C.base }, 22 | close_button_visible = { bg = C.base }, 23 | close_button_selected = { bg = C.base }, 24 | buffer_visible = { bg = C.base }, 25 | buffer_selected = { bg = C.base }, 26 | numbers = { bg = C.base }, 27 | numbers_visible = { bg = C.base }, 28 | numbers_selected = { bg = C.base }, 29 | diagnostic = { bg = C.base }, 30 | diagnostic_visible = { bg = C.base }, 31 | diagnostic_selected = { bg = C.base }, 32 | hint = { bg = C.base }, 33 | hint_visible = { bg = C.base }, 34 | hint_selected = { bg = C.base }, 35 | hint_diagnostic = { bg = C.base }, 36 | hint_diagnostic_visible = { bg = C.base }, 37 | hint_diagnostic_selected = { bg = C.base }, 38 | info = { bg = C.base }, 39 | info_visible = { bg = C.base }, 40 | info_selected = { bg = C.base }, 41 | info_diagnostic = { bg = C.base }, 42 | info_diagnostic_visible = { bg = C.base }, 43 | info_diagnostic_selected = { bg = C.base }, 44 | warning = { bg = C.base }, 45 | warning_visible = { bg = C.base }, 46 | warning_selected = { bg = C.base }, 47 | warning_diagnostic = { bg = C.base }, 48 | warning_diagnostic_visible = { bg = C.base }, 49 | warning_diagnostic_selected = { bg = C.base }, 50 | error = { bg = C.base }, 51 | error_visible = { bg = C.base }, 52 | error_selected = { bg = C.base }, 53 | error_diagnostic = { bg = C.base }, 54 | error_diagnostic_visible = { bg = C.base }, 55 | error_diagnostic_selected = { bg = C.base }, 56 | modified = { bg = C.base }, 57 | modified_visible = { bg = C.base }, 58 | modified_selected = { bg = C.base }, 59 | duplicate_selected = { bg = C.base }, 60 | duplicate_visible = { bg = C.base }, 61 | duplicate = { bg = C.base }, 62 | separator_selected = { bg = C.base }, 63 | separator_visible = { bg = C.base }, 64 | separator = { bg = C.base }, 65 | indicator_visible = { bg = C.base }, 66 | indicator_selected = { bg = C.base }, 67 | pick_selected = { bg = C.base }, 68 | pick_visible = { bg = C.base }, 69 | pick = { bg = C.base }, 70 | offset_separator = { bg = C.base }, 71 | trunc_marker = { bg = C.base } 72 | } 73 | } 74 | }), 75 | options = { 76 | indicator = { 77 | style = 'none', 78 | }, 79 | show_buffer_close_icons = false, 80 | show_tab_indicators = false, 81 | show_close_icon = false, 82 | separator_style = { '', '' }, 83 | diagnostics = 'nvim_lsp', 84 | sort_by = 'insert_after_current', 85 | }, 86 | }) 87 | end 88 | } 89 | } 90 | -------------------------------------------------------------------------------- /HOME/.config/nvim/lua/plugins/cmp.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | 'saghen/blink.cmp', 4 | event = 'InsertEnter', 5 | version = '*', 6 | opts = { 7 | keymap = { 8 | preset = 'none', 9 | [''] = { 'select_prev', 'fallback' }, 10 | [''] = { 'select_next', 'fallback' }, 11 | [''] = { 'accept', 'fallback' }, 12 | }, 13 | appearance = { 14 | use_nvim_cmp_as_default = true, 15 | nerd_font_variant = 'mono' 16 | }, 17 | sources = { 18 | default = { 'lsp', 'buffer', 'path' }, 19 | }, 20 | completion = { 21 | menu = { 22 | winhighlight = 'Normal:BlinkCmpDoc,FloatBorder:BlinkCmpDocBorder,CursorLine:BlinkCmpMenuSelection,Search:None', 23 | border = 'rounded', 24 | draw = { 25 | columns = { 26 | { "kind_icon" }, 27 | { "label", "label_description", gap = 1 }, 28 | }, 29 | }, 30 | }, 31 | documentation = { 32 | auto_show = true, 33 | auto_show_delay_ms = 0, 34 | window = { border = 'rounded' }, 35 | }, 36 | }, 37 | signature = { window = { border = 'rounded' } }, 38 | }, 39 | opts_extend = { 'sources.default' } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /HOME/.config/nvim/lua/plugins/lsp.lua: -------------------------------------------------------------------------------- 1 | local servers = { 2 | -- Languages 3 | 'lua_ls', 4 | 'rust_analyzer', 5 | 'vtsls', 6 | 'cssls', 7 | 'html', 8 | 'jsonls', 9 | 'gopls', 10 | 'clangd', 11 | 'basedpyright', 12 | -- 'vue_ls', 13 | -- Web 14 | 'prismals', 15 | 'astro', 16 | 'tailwindcss', 17 | 'eslint', 18 | -- Other 19 | 'dockerls', 20 | 'terraformls', 21 | } 22 | 23 | return { 24 | { 25 | 'neovim/nvim-lspconfig', 26 | dependencies = { 27 | 'saghen/blink.cmp', 28 | 'williamboman/mason-lspconfig.nvim', 29 | }, 30 | event = { 'BufReadPre', 'BufNewFile' }, 31 | config = function() 32 | require('mason-lspconfig').setup({ 33 | ensure_installed = servers, 34 | automatic_enable = false, 35 | }) 36 | 37 | local lsp = require('lspconfig') 38 | local augroup = vim.api.nvim_create_augroup('LspFormatting', { clear = true }) 39 | 40 | local on_attach = function(client, bufnr) 41 | -- Enable completion triggered by 42 | vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') 43 | 44 | if client.name == 'eslint' then 45 | client.server_capabilities.documentFormattingProvider = true 46 | end 47 | 48 | if client.supports_method('textDocument/formatting') then 49 | vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr }) 50 | vim.api.nvim_create_autocmd('BufWritePre', { 51 | group = augroup, 52 | buffer = bufnr, 53 | callback = function() 54 | vim.lsp.buf.format({ bufnr = bufnr }) 55 | end, 56 | }) 57 | end 58 | 59 | -- Mappings 60 | local bufopts = { noremap = true, silent = true, buffer = bufnr } 61 | vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts) 62 | vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts) 63 | vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts) 64 | vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts) 65 | vim.keymap.set('n', '', vim.lsp.buf.signature_help, bufopts) 66 | -- vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, bufopts) 67 | -- vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, bufopts) 68 | -- vim.keymap.set('n', 'wl', function() 69 | -- print(vim.inspect(vim.lsp.buf.list_workspace_folders())) 70 | -- end, bufopts) 71 | vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, bufopts) 72 | vim.keymap.set('n', 'r', vim.lsp.buf.rename, bufopts) 73 | -- Handled by :CodeActionMenu 74 | -- vim.keymap.set('n', 'ga', vim.lsp.buf.code_action, bufopts) 75 | vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts) 76 | vim.keymap.set('n', 'f', function() vim.lsp.buf.format { async = true } end, bufopts) 77 | end 78 | 79 | local capabilities = require('blink.cmp').get_lsp_capabilities() 80 | capabilities.general = { positionEncodings = { 'utf-16' } } -- Make sure we always use UTF-16 for all LSPs 81 | 82 | -- Attach LSP servers 83 | for _, server in pairs(servers) do 84 | local config = { 85 | on_attach = on_attach, 86 | capabilities = capabilities, 87 | } 88 | 89 | -- Only run the TailwindCSS LSP when a config is present 90 | if server == 'tailwindcss' then 91 | config.filetypes = { 'html', 'css', 'scss', 'javascript', 'typescript', 'javascriptreact', 'typescriptreact', 92 | 'vue', 'astro' } 93 | end 94 | 95 | lsp[server].setup(config) 96 | end 97 | 98 | -- Disable LSP logs from ~/.local/state/nvim/lsp.log 99 | vim.lsp.set_log_level('off') 100 | 101 | vim.diagnostic.config({ 102 | -- Show inline diagnostics 103 | virtual_text = true, 104 | -- Rounded borders for diagnostics float 105 | float = { border = 'rounded' }, 106 | }) 107 | 108 | -- Fix floating windows color 109 | vim.api.nvim_set_hl(0, 'NormalFloat', { 110 | link = 'Normal', 111 | }) 112 | 113 | vim.api.nvim_set_hl(0, 'FloatBorder', { 114 | bg = 'none', 115 | }) 116 | end 117 | }, 118 | { 119 | 'williamboman/mason.nvim', 120 | cmd = 'Mason', 121 | build = ':MasonUpdate', 122 | config = function() 123 | require('mason').setup({ 124 | ui = { 125 | border = 'rounded', 126 | width = 0.8, 127 | height = 0.8, 128 | } 129 | }) 130 | end 131 | }, 132 | } 133 | -------------------------------------------------------------------------------- /HOME/.config/nvim/lua/plugins/lualine.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | 'nvim-lualine/lualine.nvim', 4 | dependencies = { 'nvim-tree/nvim-web-devicons' }, 5 | config = function() 6 | local C = require('catppuccin.palettes').get_palette() 7 | local theme = require('catppuccin.utils.lualine')() 8 | -- Overwrite the background color to be the same as all backgrounds 9 | theme.normal.c.bg = C.base 10 | 11 | require('lualine').setup({ 12 | options = { 13 | component_separators = '', 14 | section_separators = { left = '', right = '' }, 15 | globalstatus = true, 16 | theme = theme, 17 | }, 18 | sections = { 19 | lualine_a = { 'mode' }, 20 | lualine_b = {}, 21 | lualine_c = { 22 | { 23 | 'filename', 24 | path = 1, 25 | }, 26 | 'diff', 27 | }, 28 | lualine_x = { 'searchcount' }, 29 | lualine_y = { 'filetype' }, 30 | lualine_z = {} 31 | }, 32 | inactive_sections = {}, 33 | tabline = {}, 34 | winbar = {}, 35 | inactive_winbar = {}, 36 | extensions = {} 37 | }) 38 | end, 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /HOME/.config/nvim/lua/plugins/snacks.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | 'folke/snacks.nvim', 4 | priority = 1000, 5 | lazy = false, 6 | opts = { 7 | lazygit = { 8 | enabled = true, 9 | configure = false, 10 | }, 11 | bigfile = { 12 | enabled = true, 13 | size = 1024 * 300, -- 300kB 14 | }, 15 | dashboard = { 16 | enabled = true, 17 | preset = { 18 | keys = { 19 | { key = 's', icon = ' ', desc = 'Load session (directory)', action = ':lua require("persistence").load()' }, 20 | { key = 'l', icon = ' ', desc = 'Load last session', action = ':lua require("persistence").load({ last = true })' }, 21 | { key = 'f', icon = ' ', desc = 'Find files', action = ':lua require("telescope.builtin").git_files({ silent = true })' }, 22 | { key = 'r', icon = ' ', desc = 'Search in files', action = ':lua require("telescope.builtin").live_grep({ silent = true })' }, 23 | }, 24 | header = '', 25 | }, 26 | sections = { 27 | { section = 'keys', gap = 1, padding = 3 }, 28 | { section = 'startup' }, 29 | }, 30 | }, 31 | }, 32 | }, 33 | } 34 | -------------------------------------------------------------------------------- /HOME/.config/nvim/lua/plugins/telescope.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | 'nvim-telescope/telescope.nvim', 4 | branch = '0.1.x', 5 | dependencies = { 6 | 'nvim-lua/plenary.nvim', 7 | { 8 | 'nvim-telescope/telescope-fzf-native.nvim', 9 | build = 10 | 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build' 11 | } 12 | }, 13 | keys = { '', '' }, 14 | config = function() 15 | local telescope = require('telescope') 16 | local actions = require('telescope.actions') 17 | local builtin = require('telescope.builtin') 18 | 19 | vim.keymap.set('n', '', builtin.git_files, { silent = true }) 20 | vim.keymap.set('n', '', builtin.live_grep, { silent = true }) 21 | 22 | telescope.setup { 23 | defaults = { 24 | mappings = { 25 | i = { 26 | [''] = actions.close 27 | }, 28 | }, 29 | border = false, 30 | }, 31 | extensions = { 32 | fzf = { 33 | fuzzy = true, 34 | override_generic_sorter = true, 35 | override_file_sorter = true, 36 | case_mode = 'smart_case', 37 | } 38 | } 39 | } 40 | 41 | telescope.load_extension('fzf') 42 | end 43 | }, 44 | } 45 | -------------------------------------------------------------------------------- /HOME/.config/nvim/lua/plugins/tree.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | 'nvim-tree/nvim-tree.lua', 4 | dependencies = { 'nvim-tree/nvim-web-devicons' }, 5 | keys = { 6 | { '', 'NvimTreeToggle' } 7 | }, 8 | config = function() 9 | require('nvim-tree').setup({ 10 | view = { 11 | width = 36, 12 | }, 13 | renderer = { 14 | icons = { 15 | git_placement = 'after', 16 | show = { 17 | folder_arrow = false, 18 | } 19 | } 20 | }, 21 | update_focused_file = { 22 | enable = true, 23 | }, 24 | diagnostics = { 25 | enable = true, 26 | }, 27 | filters = { 28 | dotfiles = true, 29 | }, 30 | filesystem_watchers = { 31 | enable = true, 32 | debounce_delay = 50, 33 | ignore_dirs = { 34 | "node_modules" 35 | }, 36 | }, 37 | }) 38 | end 39 | }, 40 | { 41 | 'echasnovski/mini.files', 42 | version = '*', 43 | dependencies = { 'nvim-tree/nvim-web-devicons' }, 44 | keys = { 45 | { '', 'lua if not MiniFiles.close() then MiniFiles.open() end' } 46 | }, 47 | config = function() 48 | local show_dotfiles = false 49 | local filter_show = function() 50 | return true 51 | end 52 | local filter_hide = function(fs_entry) 53 | return not vim.startswith(fs_entry.name, '.') 54 | end 55 | local toggle_dotfiles = function() 56 | show_dotfiles = not show_dotfiles 57 | local new_filter = show_dotfiles and filter_show or filter_hide 58 | MiniFiles.refresh({ content = { filter = new_filter } }) 59 | end 60 | 61 | require('mini.files').setup({ 62 | mappings = { 63 | go_in = '', 64 | go_in_plus = '', 65 | go_out = '', 66 | }, 67 | options = { 68 | permanent_delete = false, 69 | }, 70 | windows = { 71 | preview = true, 72 | width_focus = 25, 73 | width_preview = 50, 74 | }, 75 | }) 76 | 77 | --- Use '.' to toggle dotfiles visibility (off by default) 78 | vim.api.nvim_create_autocmd('User', { 79 | pattern = 'MiniFilesBufferCreate', 80 | callback = function(args) 81 | local buf_id = args.data.buf_id 82 | vim.keymap.set('n', '.', toggle_dotfiles, { buffer = buf_id }) 83 | end, 84 | }) 85 | 86 | -- Remember if we wanted to hide/show dotfiles after re-opening 87 | vim.api.nvim_create_autocmd('User', { 88 | pattern = 'MiniFilesExplorerOpen', 89 | callback = function() 90 | local new_filter = show_dotfiles and filter_show or filter_hide 91 | MiniFiles.refresh({ content = { filter = new_filter } }) 92 | end, 93 | }) 94 | 95 | --- Rounded borders 96 | vim.api.nvim_create_autocmd('User', { 97 | pattern = 'MiniFilesWindowOpen', 98 | callback = function(args) 99 | local win_id = args.data.win_id 100 | local config = vim.api.nvim_win_get_config(win_id) 101 | config.border = 'rounded' 102 | vim.api.nvim_win_set_config(win_id, config) 103 | end, 104 | }) 105 | end 106 | }, 107 | } 108 | -------------------------------------------------------------------------------- /HOME/.config/nvim/lua/plugins/treesitter.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | 'nvim-treesitter/nvim-treesitter', 4 | version = false, 5 | build = ':TSUpdate', 6 | event = { 'BufReadPost', 'BufNewFile' }, 7 | cmd = { 'TSUpdateSync' }, 8 | init = function() 9 | local configs = require('nvim-treesitter.configs') 10 | 11 | configs.setup({ 12 | auto_install = true, 13 | highlight = { 14 | enable = true, 15 | }, 16 | -- Indent based on treesitter for = 17 | indent = { 18 | enable = true, 19 | }, 20 | }) 21 | end 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /HOME/.config/nvim/lua/settings.lua: -------------------------------------------------------------------------------- 1 | -- disable netrw at the very start of your init.lua (nvim-tree) 2 | vim.g.loaded_netrw = 1 3 | vim.g.loaded_netrwPlugin = 1 4 | 5 | vim.opt.termguicolors = true 6 | -- Line numbers 7 | vim.opt.number = true 8 | -- Show extra column https://www.reddit.com/r/neovim/comments/neaeej/only_just_discovered_set_signcolumnnumber_i_like/ 9 | vim.opt.signcolumn = 'yes' 10 | -- Hide status bar 11 | -- vim.o.ls = 0 12 | -- Hide command height 13 | vim.o.ch = 0 14 | -- Spelling in comments 15 | -- vim.opt.spell = true 16 | -- Set rounded borders 17 | vim.o.winborder = 'rounded' 18 | -- Indentation 19 | vim.opt.tabstop = 2 20 | vim.opt.shiftwidth = 2 21 | vim.opt.softtabstop = 2 22 | vim.opt.expandtab = true 23 | vim.opt.smartindent = true 24 | -- Show cursor line 25 | vim.opt.cursorline = true 26 | -- Overscroll by 10 lines 27 | vim.opt.scrolloff = 10 28 | -- Ignore case in search 29 | vim.opt.ignorecase = true 30 | -- Do not ignore case in search if there is a capital letter 31 | vim.opt.smartcase = true 32 | vim.opt.undofile = true 33 | vim.opt.swapfile = false 34 | -- Just makes sense when spliting windows 35 | vim.opt.splitright = true 36 | vim.opt.splitbelow = true 37 | 38 | -- Diagnostic icons 39 | vim.fn.sign_define('DiagnosticSignError', 40 | { text = ' ', texthl = 'DiagnosticSignError' }) 41 | vim.fn.sign_define('DiagnosticSignWarn', 42 | { text = ' ', texthl = 'DiagnosticSignWarn' }) 43 | vim.fn.sign_define('DiagnosticSignInfo', 44 | { text = ' ', texthl = 'DiagnosticSignInfo' }) 45 | vim.fn.sign_define('DiagnosticSignHint', 46 | { text = '', texthl = 'DiagnosticSignHint' }) 47 | 48 | -- Keybinds 49 | -- Git 50 | vim.cmd('nnoremap gp :Gitsigns preview_hunk') 51 | vim.cmd('nnoremap gr :Gitsigns reset_hunk') 52 | vim.cmd('nnoremap gg :lua Snacks.lazygit()') 53 | -- Resize 54 | vim.cmd('nnoremap :resize -2') 55 | vim.cmd('nnoremap :resize +2') 56 | vim.cmd('nnoremap :vertical resize -2') 57 | vim.cmd('nnoremap :vertical resize +2') 58 | -- Bufferline 59 | vim.cmd('nnoremap :BufferLineCyclePrev') 60 | vim.cmd('nnoremap :BufferLineCycleNext') 61 | vim.cmd('nnoremap :BufferLineCyclePrev') 62 | vim.cmd('nnoremap :BufferLineCycleNext') 63 | vim.cmd('nnoremap b :BufferLineCyclePrev') 64 | vim.cmd('nnoremap f :BufferLineCycleNext') 65 | vim.cmd('nnoremap < :BufferLineMovePrev') 66 | vim.cmd('nnoremap > :BufferLineMoveNext') 67 | vim.cmd('nnoremap c :bpspbnbd') 68 | vim.cmd('nnoremap :BufferLinePick') 69 | 70 | vim.cmd('nnoremap d :lua vim.diagnostic.open_float()') 71 | 72 | vim.cmd('nnoremap n :cnext') 73 | vim.cmd('nnoremap p :cprev') 74 | 75 | -- Highlight yanked text 76 | vim.api.nvim_create_autocmd('TextYankPost', { 77 | group = vim.api.nvim_create_augroup('highlight-yank', { clear = true }), 78 | callback = function() 79 | vim.highlight.on_yank({ higroup = 'Visual' }) 80 | end 81 | }) 82 | 83 | -- LSP-integrated file renaming 84 | vim.api.nvim_create_autocmd('User', { 85 | pattern = 'MiniFilesActionRename', 86 | callback = function(event) 87 | Snacks.rename.on_rename_file(event.data.from, event.data.to) 88 | end, 89 | }) 90 | -------------------------------------------------------------------------------- /HOME/.config/starship.toml: -------------------------------------------------------------------------------- 1 | [aws] 2 | disabled = true 3 | 4 | [python] 5 | disabled = true 6 | 7 | [gcloud] 8 | disabled = true 9 | 10 | [nodejs] 11 | disabled = true 12 | 13 | [golang] 14 | disabled = true 15 | 16 | [c] 17 | disabled = true 18 | 19 | [cmake] 20 | disabled = true 21 | -------------------------------------------------------------------------------- /HOME/.gitconfig: -------------------------------------------------------------------------------- 1 | [user] 2 | name = Tom Lienard 3 | email = tom.lienrd@gmail.com 4 | [init] 5 | defaultBranch = main 6 | [core] 7 | editor = vim 8 | [alias] 9 | parent = "!git show-branch | grep '*' | grep -v \"$(git rev-parse --abbrev-ref HEAD)\" | head -n1 | sed 's/.*\\[\\(.*\\)\\].*/\\1/' | sed 's/[\\^~].*//' #" 10 | [filter "lfs"] 11 | clean = git-lfs clean -- %f 12 | smudge = git-lfs smudge -- %f 13 | process = git-lfs filter-process 14 | required = true 15 | [url "ssh://git@github.com/"] 16 | insteadOf = https://github.com/ 17 | -------------------------------------------------------------------------------- /HOME/.proto/.prototools: -------------------------------------------------------------------------------- 1 | bun = "1.1.34" 2 | deno = "2.0.6" 3 | go = "1.21.6" 4 | node = "20.18.0" 5 | npm = "10.2.4" 6 | pnpm = "8.14.1" 7 | proto = "0.41.3" 8 | python = "3.13.1" 9 | rust = "1.75.0" 10 | yarn = "1.22.21" 11 | 12 | [settings] 13 | auto-install = true 14 | -------------------------------------------------------------------------------- /HOME/.stow-local-ignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /HOME/.tmux.conf: -------------------------------------------------------------------------------- 1 | # Start window and pane numbering from 1 for easier switching 2 | set -g base-index 1 3 | setw -g pane-base-index 1 4 | 5 | # Set pane name to current working directory 6 | set-option -g status-interval 1 7 | set-option -g automatic-rename on 8 | set-option -g automatic-rename-format '#{b:pane_current_command}' 9 | 10 | # Address vim mode switching delay (http://superuser.com/a/252717/65504) 11 | set -s escape-time 0 12 | 13 | # Renumber windows when one is removed. 14 | set -g renumber-windows on 15 | 16 | # Improve colors 17 | set -g default-terminal "${TERM}" 18 | set -as terminal-features ",*:RGB" 19 | set -ag terminal-overrides ",xterm-256color:RGB" 20 | 21 | # Allow the mouse to resize windows and select tabs 22 | set -g mouse on 23 | 24 | # Use Ctrl+A for prefix instead of Ctrl+B 25 | set -g prefix C-a 26 | 27 | # 'PREFIX r' to reload of the config file 28 | unbind r 29 | bind r source-file ~/.tmux.conf\; display-message '~/.tmux.conf reloaded' 30 | 31 | # Fix very annoying issue when scrolling a buffer and trying to select some text: by default it will scroll back down 32 | bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe "reattach-to-user-namespace pbcopy" \; send -X clear-selection 33 | bind-key -T copy-mode MouseDragEnd1Pane send-keys -X copy-pipe "reattach-to-user-namespace pbcopy" \; send -X clear-selection 34 | 35 | # Status line customisation 36 | set-option -g status-left-length 100 37 | set-option -g status-left " ▲ #{session_name} " 38 | set-option -g status-right "" 39 | set-option -g status-style "fg=#696F8A bg=default" 40 | set-option -g window-status-format "#{window_flags}#{window_name} (#{window_index}) " 41 | set-option -g window-status-current-format "#{window_flags}#{window_name} (#{window_index}) " 42 | set-option -g window-status-current-style "fg=#C6A0F6 bg=default" 43 | set-option -g window-status-activity-style none 44 | set-option -g pane-border-style "fg=#696F8A bg=default" 45 | set-option -g pane-active-border-style "fg=#C6A0F6 bg=default" 46 | set-option -g default-shell /bin/zsh 47 | 48 | # Quickly go to the previous window 49 | bind -r tab last-window 50 | 51 | # Move between panes using vim movement keys 52 | bind h select-pane -L 53 | bind j select-pane -D 54 | bind k select-pane -U 55 | bind l select-pane -R 56 | 57 | bind-key a send-keys C-a 58 | bind-key e send-keys C-e 59 | 60 | # Automatically restore tmux environment after a system restart 61 | set -g @continuum-restore 'on' 62 | set -g @resurrect-dir '~/.tmux/resurrect' 63 | 64 | run-shell ~/.tmux/plugins/resurrect/resurrect.tmux 65 | run-shell ~/.tmux/plugins/continuum/continuum.tmux 66 | 67 | -------------------------------------------------------------------------------- /HOME/.wezterm.lua: -------------------------------------------------------------------------------- 1 | -- Pull in the wezterm API 2 | local wezterm = require 'wezterm' 3 | 4 | -- This table will hold the configuration. 5 | local config = {} 6 | 7 | -- In newer versions of wezterm, use the config_builder which will 8 | -- help provide clearer error messages 9 | if wezterm.config_builder then 10 | config = wezterm.config_builder() 11 | end 12 | 13 | -- This is where you actually apply your config choices 14 | 15 | -- For example, changing the color scheme: 16 | config.color_scheme = 'AdventureTime' 17 | config.font = wezterm.font 'JetBrains Mono' 18 | config.font_size = 12.0 19 | config.color_scheme = 'Catppuccin Macchiato' 20 | 21 | -- and finally, return the configuration to wezterm 22 | return config 23 | 24 | -------------------------------------------------------------------------------- /HOME/.zshrc: -------------------------------------------------------------------------------- 1 | # Enable profiling 2 | # zmodload zsh/zprof 3 | 4 | # Aliases 5 | alias vim="nvim" 6 | alias ls="eza" 7 | alias ll="eza -lh" 8 | alias l="eza -lah" 9 | alias cat="bat" 10 | alias luamake=/Users/tom/dev/lua-language-server/3rd/luamake/luamake 11 | alias flushdns="sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder" 12 | alias pnpx="pnpm dlx" 13 | alias lg="lazygit" 14 | alias k="kubectl" 15 | alias kk6='kubectl -n k6-operator-system' 16 | alias tf="terraform" 17 | 18 | # Paths 19 | export PATH="/Users/tom/Library/Python/3.10/bin:$PATH" 20 | export PROTO_HOME="$HOME/.proto" 21 | export PATH="$PROTO_HOME/shims:$PROTO_HOME/bin:$PATH" 22 | export GOBIN="$HOME/go/bin" 23 | export PATH="$GOBIN:$PATH" 24 | export PATH="$HOME/.turso:$PATH" 25 | export WASMTIME_HOME="$HOME/.wasmtime" 26 | export PATH="$WASMTIME_HOME/bin:$PATH" 27 | export PATH=/Users/tom/.sst/bin:$PATH 28 | 29 | # Configurations 30 | export RUSTC_WRAPPER="/opt/homebrew/bin/sccache" 31 | export FORCE_COLOR=1 # Enable Turborepo colors 32 | export LC_ALL=en_US.UTF-8 33 | export FZF_DEFAULT_OPTS=" \ 34 | --color=bg+:#363a4f,bg:#24273a,spinner:#f4dbd6,hl:#ed8796 \ 35 | --color=fg:#cad3f5,header:#ed8796,info:#c6a0f6,pointer:#f4dbd6 \ 36 | --color=marker:#f4dbd6,fg+:#cad3f5,prompt:#c6a0f6,hl+:#ed8796" 37 | export TERM=xterm-256color 38 | export XDG_CONFIG_HOME="$HOME/.config" 39 | export HOMEBREW_NO_AUTO_UPDATE=1 40 | 41 | # PNPM 42 | export PNPM_HOME="/Users/tom/Library/pnpm" 43 | case ":$PATH:" in 44 | *":$PNPM_HOME:"*) ;; 45 | *) export PATH="$PNPM_HOME:$PATH" ;; 46 | esac 47 | 48 | # Check if 'kubectl' is a command in $PATH 49 | if [ $commands[kubectl] ]; then 50 | # Placeholder 'kubectl' shell function: 51 | # Will only be executed on the first call to 'kubectl' 52 | kubectl() { 53 | # Remove this function, subsequent calls will execute 'kubectl' directly 54 | unfunction "$0" 55 | # Load auto-completion 56 | source <(kubectl completion zsh) 57 | # Execute 'kubectl' binary 58 | $0 "$@" 59 | } 60 | fi 61 | 62 | eval "$(fzf --zsh)" 63 | eval "$(starship init zsh)" 64 | 65 | # ZSH settings 66 | bindkey "\e[1;3D" backward-word 67 | bindkey "\e[1;3C" forward-word 68 | bindkey "\e[1;2D" backward-word 69 | bindkey "\e[1;2C" forward-word 70 | WORDCHARS='' 71 | setopt menu_complete 72 | setopt auto_menu 73 | setopt complete_in_word 74 | setopt always_to_end 75 | zstyle ':completion:*:*:*:*:*' menu select 76 | zmodload zsh/complist 77 | zstyle ':completion:*' special-dirs true 78 | zstyle ':completion:*' list-colors '' 79 | zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;34=0=01' 80 | zstyle ':completion:*:cd:*' tag-order local-directories directory-stack path-directories 81 | zstyle ':completion:*' use-cache yes 82 | zstyle ':completion:*' cache-path $ZSH_CACHE_DIR 83 | bindkey -M menuselect '^[[Z' reverse-menu-complete 84 | autoload -Uz compinit 85 | for dump in ~/.zcompdump(N.mh+24); do 86 | compinit 87 | done 88 | compinit -C 89 | 90 | # Plugins 91 | source /opt/homebrew/share/zsh-autosuggestions/zsh-autosuggestions.zsh 92 | source /opt/homebrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh 93 | 94 | # Enable profiling 95 | # zprof 96 | -------------------------------------------------------------------------------- /HOME/Fonts/Fira Code/FiraCodeNerdFont-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/Fira Code/FiraCodeNerdFont-Bold.ttf -------------------------------------------------------------------------------- /HOME/Fonts/Fira Code/FiraCodeNerdFont-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/Fira Code/FiraCodeNerdFont-Light.ttf -------------------------------------------------------------------------------- /HOME/Fonts/Fira Code/FiraCodeNerdFont-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/Fira Code/FiraCodeNerdFont-Medium.ttf -------------------------------------------------------------------------------- /HOME/Fonts/Fira Code/FiraCodeNerdFont-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/Fira Code/FiraCodeNerdFont-Regular.ttf -------------------------------------------------------------------------------- /HOME/Fonts/Fira Code/FiraCodeNerdFont-Retina.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/Fira Code/FiraCodeNerdFont-Retina.ttf -------------------------------------------------------------------------------- /HOME/Fonts/Fira Code/FiraCodeNerdFont-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/Fira Code/FiraCodeNerdFont-SemiBold.ttf -------------------------------------------------------------------------------- /HOME/Fonts/Fira Code/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014, The Fira Code Project Authors (https://github.com/tonsky/FiraCode) 2 | 3 | This Font Software is licensed under the SIL Open Font License, Version 1.1. 4 | This license is copied below, and is also available with a FAQ at: 5 | http://scripts.sil.org/OFL 6 | 7 | 8 | ----------------------------------------------------------- 9 | SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 10 | ----------------------------------------------------------- 11 | 12 | PREAMBLE 13 | The goals of the Open Font License (OFL) are to stimulate worldwide 14 | development of collaborative font projects, to support the font creation 15 | efforts of academic and linguistic communities, and to provide a free and 16 | open framework in which fonts may be shared and improved in partnership 17 | with others. 18 | 19 | The OFL allows the licensed fonts to be used, studied, modified and 20 | redistributed freely as long as they are not sold by themselves. The 21 | fonts, including any derivative works, can be bundled, embedded, 22 | redistributed and/or sold with any software provided that any reserved 23 | names are not used by derivative works. The fonts and derivatives, 24 | however, cannot be released under any other type of license. The 25 | requirement for fonts to remain under this license does not apply 26 | to any document created using the fonts or their derivatives. 27 | 28 | DEFINITIONS 29 | "Font Software" refers to the set of files released by the Copyright 30 | Holder(s) under this license and clearly marked as such. This may 31 | include source files, build scripts and documentation. 32 | 33 | "Reserved Font Name" refers to any names specified as such after the 34 | copyright statement(s). 35 | 36 | "Original Version" refers to the collection of Font Software components as 37 | distributed by the Copyright Holder(s). 38 | 39 | "Modified Version" refers to any derivative made by adding to, deleting, 40 | or substituting -- in part or in whole -- any of the components of the 41 | Original Version, by changing formats or by porting the Font Software to a 42 | new environment. 43 | 44 | "Author" refers to any designer, engineer, programmer, technical 45 | writer or other person who contributed to the Font Software. 46 | 47 | PERMISSION & CONDITIONS 48 | Permission is hereby granted, free of charge, to any person obtaining 49 | a copy of the Font Software, to use, study, copy, merge, embed, modify, 50 | redistribute, and sell modified and unmodified copies of the Font 51 | Software, subject to the following conditions: 52 | 53 | 1) Neither the Font Software nor any of its individual components, 54 | in Original or Modified Versions, may be sold by itself. 55 | 56 | 2) Original or Modified Versions of the Font Software may be bundled, 57 | redistributed and/or sold with any software, provided that each copy 58 | contains the above copyright notice and this license. These can be 59 | included either as stand-alone text files, human-readable headers or 60 | in the appropriate machine-readable metadata fields within text or 61 | binary files as long as those fields can be easily viewed by the user. 62 | 63 | 3) No Modified Version of the Font Software may use the Reserved Font 64 | Name(s) unless explicit written permission is granted by the corresponding 65 | Copyright Holder. This restriction only applies to the primary font name as 66 | presented to the users. 67 | 68 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font 69 | Software shall not be used to promote, endorse or advertise any 70 | Modified Version, except to acknowledge the contribution(s) of the 71 | Copyright Holder(s) and the Author(s) or with their explicit written 72 | permission. 73 | 74 | 5) The Font Software, modified or unmodified, in part or in whole, 75 | must be distributed entirely under this license, and must not be 76 | distributed under any other license. The requirement for fonts to 77 | remain under this license does not apply to any document created 78 | using the Font Software. 79 | 80 | TERMINATION 81 | This license becomes null and void if any of the above conditions are 82 | not met. 83 | 84 | DISCLAIMER 85 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 86 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 87 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 88 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE 89 | COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 90 | INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 91 | DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 92 | FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM 93 | OTHER DEALINGS IN THE FONT SOFTWARE. 94 | -------------------------------------------------------------------------------- /HOME/Fonts/Geist Mono/GeistMonoNerdFont-Black.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/Geist Mono/GeistMonoNerdFont-Black.otf -------------------------------------------------------------------------------- /HOME/Fonts/Geist Mono/GeistMonoNerdFont-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/Geist Mono/GeistMonoNerdFont-Bold.otf -------------------------------------------------------------------------------- /HOME/Fonts/Geist Mono/GeistMonoNerdFont-Light.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/Geist Mono/GeistMonoNerdFont-Light.otf -------------------------------------------------------------------------------- /HOME/Fonts/Geist Mono/GeistMonoNerdFont-Medium.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/Geist Mono/GeistMonoNerdFont-Medium.otf -------------------------------------------------------------------------------- /HOME/Fonts/Geist Mono/GeistMonoNerdFont-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/Geist Mono/GeistMonoNerdFont-Regular.otf -------------------------------------------------------------------------------- /HOME/Fonts/Geist Mono/GeistMonoNerdFont-SemiBold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/Geist Mono/GeistMonoNerdFont-SemiBold.otf -------------------------------------------------------------------------------- /HOME/Fonts/Geist Mono/GeistMonoNerdFont-Thin.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/Geist Mono/GeistMonoNerdFont-Thin.otf -------------------------------------------------------------------------------- /HOME/Fonts/Geist Mono/GeistMonoNerdFont-UltraBlack.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/Geist Mono/GeistMonoNerdFont-UltraBlack.otf -------------------------------------------------------------------------------- /HOME/Fonts/Geist Mono/GeistMonoNerdFont-UltraLight.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/Geist Mono/GeistMonoNerdFont-UltraLight.otf -------------------------------------------------------------------------------- /HOME/Fonts/Geist Mono/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Geist Sans and Geist Mono Font 2 | (C) 2023 Vercel, made in collaboration with basement.studio 3 | 4 | This Font Software is licensed under the SIL Open Font License, Version 1.1. 5 | This license is available with a FAQ at: http://scripts.sil.org/OFL and copied below 6 | 7 | ----------------------------------------------------------- 8 | SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 9 | ----------------------------------------------------------- 10 | 11 | PREAMBLE 12 | The goals of the Open Font License (OFL) are to stimulate worldwide 13 | development of collaborative font projects, to support the font creation 14 | efforts of academic and linguistic communities, and to provide a free and 15 | open framework in which fonts may be shared and improved in partnership 16 | with others. 17 | 18 | The OFL allows the licensed fonts to be used, studied, modified and 19 | redistributed freely as long as they are not sold by themselves. The 20 | fonts, including any derivative works, can be bundled, embedded, 21 | redistributed and/or sold with any software provided that any reserved 22 | names are not used by derivative works. The fonts and derivatives, 23 | however, cannot be released under any other type of license. The 24 | requirement for fonts to remain under this license does not apply 25 | to any document created using the fonts or their derivatives. 26 | 27 | DEFINITIONS 28 | "Font Software" refers to the set of files released by the Copyright 29 | Holder(s) under this license and clearly marked as such. This may 30 | include source files, build scripts and documentation. 31 | 32 | "Reserved Font Name" refers to any names specified as such after the 33 | copyright statement(s). 34 | 35 | "Original Version" refers to the collection of Font Software components as 36 | distributed by the Copyright Holder(s). 37 | 38 | "Modified Version" refers to any derivative made by adding to, deleting, 39 | or substituting -- in part or in whole -- any of the components of the 40 | Original Version, by changing formats or by porting the Font Software to a 41 | new environment. 42 | 43 | "Author" refers to any designer, engineer, programmer, technical 44 | writer or other person who contributed to the Font Software. 45 | 46 | PERMISSION AND CONDITIONS 47 | Permission is hereby granted, free of charge, to any person obtaining 48 | a copy of the Font Software, to use, study, copy, merge, embed, modify, 49 | redistribute, and sell modified and unmodified copies of the Font 50 | Software, subject to the following conditions: 51 | 52 | 1) Neither the Font Software nor any of its individual components, 53 | in Original or Modified Versions, may be sold by itself. 54 | 55 | 2) Original or Modified Versions of the Font Software may be bundled, 56 | redistributed and/or sold with any software, provided that each copy 57 | contains the above copyright notice and this license. These can be 58 | included either as stand-alone text files, human-readable headers or 59 | in the appropriate machine-readable metadata fields within text or 60 | binary files as long as those fields can be easily viewed by the user. 61 | 62 | 3) No Modified Version of the Font Software may use the Reserved Font 63 | Name(s) unless explicit written permission is granted by the corresponding 64 | Copyright Holder. This restriction only applies to the primary font name as 65 | presented to the users. 66 | 67 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font 68 | Software shall not be used to promote, endorse or advertise any 69 | Modified Version, except to acknowledge the contribution(s) of the 70 | Copyright Holder(s) and the Author(s) or with their explicit written 71 | permission. 72 | 73 | 5) The Font Software, modified or unmodified, in part or in whole, 74 | must be distributed entirely under this license, and must not be 75 | distributed under any other license. The requirement for fonts to 76 | remain under this license does not apply to any document created 77 | using the Font Software. 78 | 79 | TERMINATION 80 | This license becomes null and void if any of the above conditions are 81 | not met. 82 | 83 | DISCLAIMER 84 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 85 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 86 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 87 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE 88 | COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 89 | INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 90 | DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 91 | FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM 92 | OTHER DEALINGS IN THE FONT SOFTWA -------------------------------------------------------------------------------- /HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-Bold.ttf -------------------------------------------------------------------------------- /HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-BoldItalic.ttf -------------------------------------------------------------------------------- /HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-ExtraBold.ttf -------------------------------------------------------------------------------- /HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-ExtraBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-ExtraBoldItalic.ttf -------------------------------------------------------------------------------- /HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-ExtraLight.ttf -------------------------------------------------------------------------------- /HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-ExtraLightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-ExtraLightItalic.ttf -------------------------------------------------------------------------------- /HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-Italic.ttf -------------------------------------------------------------------------------- /HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-Light.ttf -------------------------------------------------------------------------------- /HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-LightItalic.ttf -------------------------------------------------------------------------------- /HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-Medium.ttf -------------------------------------------------------------------------------- /HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-MediumItalic.ttf -------------------------------------------------------------------------------- /HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-Regular.ttf -------------------------------------------------------------------------------- /HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-SemiBold.ttf -------------------------------------------------------------------------------- /HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-Thin.ttf -------------------------------------------------------------------------------- /HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Fonts/JetBrains Mono/JetBrainsMonoNerdFont-ThinItalic.ttf -------------------------------------------------------------------------------- /HOME/Fonts/JetBrains Mono/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright 2020 The JetBrains Mono Project Authors (https://github.com/JetBrains/JetBrainsMono) 2 | 3 | This Font Software is licensed under the SIL Open Font License, Version 1.1. 4 | This license is copied below, and is also available with a FAQ at: 5 | https://scripts.sil.org/OFL 6 | 7 | 8 | ----------------------------------------------------------- 9 | SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 10 | ----------------------------------------------------------- 11 | 12 | PREAMBLE 13 | The goals of the Open Font License (OFL) are to stimulate worldwide 14 | development of collaborative font projects, to support the font creation 15 | efforts of academic and linguistic communities, and to provide a free and 16 | open framework in which fonts may be shared and improved in partnership 17 | with others. 18 | 19 | The OFL allows the licensed fonts to be used, studied, modified and 20 | redistributed freely as long as they are not sold by themselves. The 21 | fonts, including any derivative works, can be bundled, embedded, 22 | redistributed and/or sold with any software provided that any reserved 23 | names are not used by derivative works. The fonts and derivatives, 24 | however, cannot be released under any other type of license. The 25 | requirement for fonts to remain under this license does not apply 26 | to any document created using the fonts or their derivatives. 27 | 28 | DEFINITIONS 29 | "Font Software" refers to the set of files released by the Copyright 30 | Holder(s) under this license and clearly marked as such. This may 31 | include source files, build scripts and documentation. 32 | 33 | "Reserved Font Name" refers to any names specified as such after the 34 | copyright statement(s). 35 | 36 | "Original Version" refers to the collection of Font Software components as 37 | distributed by the Copyright Holder(s). 38 | 39 | "Modified Version" refers to any derivative made by adding to, deleting, 40 | or substituting -- in part or in whole -- any of the components of the 41 | Original Version, by changing formats or by porting the Font Software to a 42 | new environment. 43 | 44 | "Author" refers to any designer, engineer, programmer, technical 45 | writer or other person who contributed to the Font Software. 46 | 47 | PERMISSION & CONDITIONS 48 | Permission is hereby granted, free of charge, to any person obtaining 49 | a copy of the Font Software, to use, study, copy, merge, embed, modify, 50 | redistribute, and sell modified and unmodified copies of the Font 51 | Software, subject to the following conditions: 52 | 53 | 1) Neither the Font Software nor any of its individual components, 54 | in Original or Modified Versions, may be sold by itself. 55 | 56 | 2) Original or Modified Versions of the Font Software may be bundled, 57 | redistributed and/or sold with any software, provided that each copy 58 | contains the above copyright notice and this license. These can be 59 | included either as stand-alone text files, human-readable headers or 60 | in the appropriate machine-readable metadata fields within text or 61 | binary files as long as those fields can be easily viewed by the user. 62 | 63 | 3) No Modified Version of the Font Software may use the Reserved Font 64 | Name(s) unless explicit written permission is granted by the corresponding 65 | Copyright Holder. This restriction only applies to the primary font name as 66 | presented to the users. 67 | 68 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font 69 | Software shall not be used to promote, endorse or advertise any 70 | Modified Version, except to acknowledge the contribution(s) of the 71 | Copyright Holder(s) and the Author(s) or with their explicit written 72 | permission. 73 | 74 | 5) The Font Software, modified or unmodified, in part or in whole, 75 | must be distributed entirely under this license, and must not be 76 | distributed under any other license. The requirement for fonts to 77 | remain under this license does not apply to any document created 78 | using the Font Software. 79 | 80 | TERMINATION 81 | This license becomes null and void if any of the above conditions are 82 | not met. 83 | 84 | DISCLAIMER 85 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 86 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 87 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 88 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE 89 | COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 90 | INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 91 | DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 92 | FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM 93 | OTHER DEALINGS IN THE FONT SOFTWARE. 94 | -------------------------------------------------------------------------------- /HOME/Pictures/Glass Dimension for Macs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Pictures/Glass Dimension for Macs.png -------------------------------------------------------------------------------- /HOME/Pictures/MBP14_BlackRainbow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Pictures/MBP14_BlackRainbow.png -------------------------------------------------------------------------------- /HOME/Pictures/MBP14_Teal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Pictures/MBP14_Teal.png -------------------------------------------------------------------------------- /HOME/Pictures/Pro6KWallpaper.heic: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Pictures/Pro6KWallpaper.heic -------------------------------------------------------------------------------- /HOME/Pictures/Your-Name-beautiful-sky-meteor-anime_2880x1800.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Pictures/Your-Name-beautiful-sky-meteor-anime_2880x1800.jpeg -------------------------------------------------------------------------------- /HOME/Pictures/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Pictures/background.jpg -------------------------------------------------------------------------------- /HOME/Pictures/meliodas.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Pictures/meliodas.gif -------------------------------------------------------------------------------- /HOME/Pictures/pro-display-xdr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Pictures/pro-display-xdr.png -------------------------------------------------------------------------------- /HOME/Pictures/wallpaper-your-name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Pictures/wallpaper-your-name.png -------------------------------------------------------------------------------- /HOME/Pictures/wallpaper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/HOME/Pictures/wallpaper.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # dotfiles 2 | 3 | Repository to save my dotfiles, located in [HOME](https://github.com/QuiiBz/dotfiles/tree/main/HOME). 4 | 5 | I use [home](https://github.com/cdwilson/home) to manage them using [GNU Stow](https://www.gnu.org/software/stow/): 6 | - [Setup](https://github.com/cdwilson/home#setup) 7 | - [Usage](https://github.com/cdwilson/home#usage) 8 | 9 | -------------------------------------------------------------------------------- /git/hooks/post-commit: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | export GIT_DIR=${GIT_DIR-`git rev-parse --git-dir`} 4 | 5 | # --- Safety check 6 | if [ -z "$GIT_DIR" ]; then 7 | echo "Don't run this script from the command line." >&2 8 | echo " (if you want, you could supply GIT_DIR then run" >&2 9 | echo " $0 )" >&2 10 | exit 1 11 | fi 12 | 13 | # Split into two steps for the case where HOME contains a copy of an existing 14 | # file in $HOME and stow will not --restow because of conflicts 15 | 16 | # First, adopt any real files that match the files in HOME 17 | # since we've already committed our changes, if the adopted file differs git 18 | # status will show that it's been modified 19 | echo "Stowing HOME with --adopt option" 20 | stow --adopt HOME 21 | 22 | # Second, restow to prune any stale symlinks 23 | echo "Stowing HOME with --restow option (to prune any stale symlinks)" 24 | stow --restow HOME 25 | -------------------------------------------------------------------------------- /setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # make sure everything is executable 4 | chmod +x git/hooks/post-commit 5 | chmod +x setup.sh 6 | chmod +x update.sh 7 | 8 | echo "Installing post-commit hook..." 9 | pushd .git/hooks/ > /dev/null 10 | if [ -h post-commit ]; then 11 | while true; do 12 | read -p "Do you wish overwrite the existing post-commit symlink? " yn 13 | case $yn in 14 | [Yy]* ) 15 | ln -s -f ../../git/hooks/post-commit post-commit 16 | break 17 | ;; 18 | [Nn]* ) 19 | break 20 | ;; 21 | * ) 22 | echo "Please answer yes or no." 23 | ;; 24 | esac 25 | done 26 | elif [ -e post-commit ]; then 27 | while true; do 28 | echo "WARNING: post-commit hook is an actual file (not symlink)!" 29 | read -p "Do you wish overwrite the existing post-commit file with a \ 30 | symlink? " yn 31 | case $yn in 32 | [Yy]* ) 33 | ln -s -f ../../git/hooks/post-commit post-commit 34 | break 35 | ;; 36 | [Nn]* ) 37 | break 38 | ;; 39 | * ) 40 | echo "Please answer yes or no." 41 | ;; 42 | esac 43 | done 44 | else 45 | ln -s ../../git/hooks/post-commit post-commit 46 | fi 47 | popd > /dev/null 48 | 49 | ./update.sh 50 | -------------------------------------------------------------------------------- /sponsors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiiBz/dotfiles/dc208cc149ada2438d654ffcd5e03de89de9f410/sponsors.png -------------------------------------------------------------------------------- /sponsors.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | Sponsors 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | Backers 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | Past Sponsors 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /update.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Split into two steps for the case where HOME contains a copy of an existing 4 | # file in $HOME and stow will not --restow because of conflicts 5 | 6 | # First, adopt any real files that match the files in HOME 7 | # since we've already committed our changes, if the adopted file differs git 8 | # status will show that it's been modified 9 | while true; do 10 | read -p \ 11 | "Do you wish to move (adopt) any files in \$HOME matching those in \ 12 | HOME/* (recommended)? " yn 13 | case $yn in 14 | [Yy]* ) 15 | echo "Stowing HOME with --adopt option" 16 | stow "$@" --adopt HOME 17 | break 18 | ;; 19 | [Nn]* ) 20 | break 21 | ;; 22 | * ) 23 | echo "Please answer yes or no." 24 | ;; 25 | esac 26 | done 27 | 28 | # Second, restow to prune any stale symlinks 29 | echo "Stowing HOME with --restow option (to prune any stale symlinks)" 30 | stow "$@" --restow HOME 31 | --------------------------------------------------------------------------------