From 2d14723733873b91b2b37f153277b162f2d68d0e Mon Sep 17 00:00:00 2001 From: Antun Krasic Date: Wed, 15 Jan 2025 13:49:50 +0000 Subject: [PATCH] Update helix --- config.toml | 40 +++++-- languages.toml | 34 ++++++ themes/catppuccin_mocha.toml | 157 ++++++++++++++++++++++++++++ themes/gruvbox_mix_dark.toml | 122 ++++++++++++++++++++++ themes/rose_pine.toml | 195 +++++++++++++++++++++++++++++++++++ yazi-picker.sh | 13 +++ 6 files changed, 555 insertions(+), 6 deletions(-) create mode 100644 themes/catppuccin_mocha.toml create mode 100644 themes/gruvbox_mix_dark.toml create mode 100644 themes/rose_pine.toml create mode 100755 yazi-picker.sh diff --git a/config.toml b/config.toml index 9c4fd92..c7083b3 100644 --- a/config.toml +++ b/config.toml @@ -1,11 +1,11 @@ -theme = "monokai_pro" +theme = "tokyonight_moon" [editor] -bufferline = "always" +bufferline = "multiple" true-color = true [editor.statusline] -left = ["mode", "spinner"] +left = ["mode", "spinner", "file-name", "file-modification-indicator"] center = ["file-name"] # right = ["diagnostics", "selections", "position", "file-encoding", "file-line-ending", "file-type"] right = ["version-control", "diagnostics", "selections", "position", "file-encoding", "file-line-ending", "file-type"] @@ -17,9 +17,31 @@ mode.select = "SELECT" [editor.gutters] layout = ["line-numbers", "diff", "diagnostics", "spacer"] +[editor.cursor-shape] +insert = "bar" +normal = "block" +select = "underline" + +[editor.inline-diagnostics] +# cursor-line = "hint" +other-lines = "error" + +[editor.whitespace.characters] +space = "·" +nbsp = "⍽" +tab = "→" +newline = "⏎" +tabpad = "·" # Tabs will look like "→···" (depending on tab width) + +[editor.soft-wrap] +enable = true +max-wrap = 25 # increase value to reduce forced mid-word wrapping +max-indent-retain = 0 +wrap-indicator = "" # set wrap-indicator to "" to hide it + [editor.lsp] display-messages = true -display-inlay-hints = true +display-inlay-hints = false [editor.indent-guides] render = true @@ -27,8 +49,14 @@ character = "╎" # Some characters that work well: "▏", "┆", "┊", "⸽" skip-levels = 1 [keys.normal] -C-g = ":sh tmux popup -d \"#{pane_current_path}\" -xC -yC -w80% -h80% -E lazygit" +C-c = "normal_mode" +C-g = ":sh zellij run -f -x 10% -y 10% --width 80% --height 80% -- gitui" +C-y = ":sh zellij run -f -x 10% -y 10% --width 80% --height 80% -- bash ~/.config/helix/yazi-picker.sh" [keys.insert] -C-c = "normal_mode" +C = "normal_mode" A-c = "toggle_comments" +j = { k = "normal_mode" } + +[keys.normal.space] +l = ":toggle lsp.display-inlay-hints" diff --git a/languages.toml b/languages.toml index 1c4d5a3..c04604f 100644 --- a/languages.toml +++ b/languages.toml @@ -4,3 +4,37 @@ file-types = ["yaml", "yml"] language-servers = [ "yaml-language-server" ] auto-format = true formatter = { command = "prettier", args = ["--parser", "yaml"] } + +[language-server.yaml-language-server.config.yaml.schemas] +"https://json.schemastore.org/github-workflow.json" = ".github/workflows/*.{yml,yaml}" +"https://raw.githubusercontent.com/ansible-community/schemas/main/f/ansible-tasks.json" = "roles/{tasks,handlers}/*.{yml,yaml}" + +[[language]] +name = "rust" +language-servers = ["rust-analyzer" ] +auto-format = true +indent = { tab-width = 4, unit = "t" } +[language-server.rust-analyzer] +command = "rust-analyzer" +[language-server.rust-analyzer.config] +check.command = "clippy" + +[[language]] +name = "markdown" +# https://github.com/executablebooks/mdformat +formatter = { command = "mdformat", args = ["-"] } + +[language-server.solargraph] +command = "/home/akrasic/.asdf/shims/solargraph" +args = ["stdio"] +config = { diagnostics = false, formatting = false } + +[language-server.rubocop] +command = "/home/akrasic/.asdf/shims/rubocop" +args = ["--lsp", "--stderr", "--fail-level", "fatal"] +timeout = 3 + +[[language]] +name = "ruby" +language-servers = ["rubocop", { name = "solargraph", except-features = [ "format", "diagnostics" ] }] +auto-format = true diff --git a/themes/catppuccin_mocha.toml b/themes/catppuccin_mocha.toml new file mode 100644 index 0000000..bea4b2a --- /dev/null +++ b/themes/catppuccin_mocha.toml @@ -0,0 +1,157 @@ + +# Syntax highlighting +# ------------------- +"attribute" = "yellow" + +"type" = "yellow" +"type.enum.variant" = "teal" + +"constructor" = "sapphire" + +"constant" = "peach" +"constant.character" = "teal" +"constant.character.escape" = "pink" + +"string" = "green" +"string.regexp" = "pink" +"string.special" = "blue" +"string.special.symbol" = "red" + +"comment" = { fg = "overlay2", modifiers = ["italic"] } + +"variable" = "text" +"variable.parameter" = { fg = "maroon", modifiers = ["italic"] } +"variable.builtin" = "red" +"variable.other.member" = "blue" + +"label" = "sapphire" # used for lifetimes + +"punctuation" = "overlay2" +"punctuation.special" = "sky" + +"keyword" = "mauve" +"keyword.control.conditional" = { fg = "mauve", modifiers = ["italic"] } + +"operator" = "sky" + +"function" = "blue" +"function.macro" = "mauve" + +"tag" = "blue" + +"namespace" = { fg = "yellow", modifiers = ["italic"] } + +"special" = "blue" # fuzzy highlight + +"markup.heading.marker" = { fg = "peach", modifiers = ["bold"] } +"markup.heading.1" = "lavender" +"markup.heading.2" = "mauve" +"markup.heading.3" = "green" +"markup.heading.4" = "yellow" +"markup.heading.5" = "pink" +"markup.heading.6" = "teal" +"markup.list" = "mauve" +"markup.bold" = { modifiers = ["bold"] } +"markup.italic" = { modifiers = ["italic"] } +"markup.link.url" = { fg = "blue", modifiers = ["italic", "underlined"] } +"markup.link.text" = "blue" +"markup.raw" = "flamingo" + +"diff.plus" = "green" +"diff.minus" = "red" +"diff.delta" = "blue" + +# User Interface +# -------------- +"ui.background" = { fg = "text", bg = "base" } + +"ui.linenr" = { fg = "surface1" } +"ui.linenr.selected" = { fg = "lavender" } + +"ui.statusline" = { fg = "subtext1", bg = "mantle" } +"ui.statusline.inactive" = { fg = "surface2", bg = "mantle" } +"ui.statusline.normal" = { fg = "base", bg = "lavender", modifiers = ["bold"] } +"ui.statusline.insert" = { fg = "base", bg = "green", modifiers = ["bold"] } +"ui.statusline.select" = { fg = "base", bg = "flamingo", modifiers = ["bold"] } + +"ui.popup" = { fg = "text", bg = "surface0" } +"ui.window" = { fg = "crust" } +"ui.help" = { fg = "overlay2", bg = "surface0" } + +"ui.bufferline" = { fg = "subtext0", bg = "mantle" } +"ui.bufferline.active" = { fg = "mauve", bg = "base", underline = { color = "mauve", style = "line" } } +"ui.bufferline.background" = { bg = "crust" } + +"ui.text" = "text" +"ui.text.focus" = { fg = "text", bg = "surface0", modifiers = ["bold"] } +"ui.text.inactive" = { fg = "overlay1" } + +"ui.virtual" = "overlay0" +"ui.virtual.ruler" = { bg = "surface0" } +"ui.virtual.indent-guide" = "surface0" +"ui.virtual.inlay-hint" = { fg = "surface1", bg = "mantle" } +"ui.virtual.jump-label" = { fg = "rosewater", modifiers = ["bold"] } + +"ui.selection" = { bg = "surface1" } + +"ui.cursor" = { fg = "base", bg = "secondary_cursor" } +"ui.cursor.primary" = { fg = "base", bg = "rosewater" } +"ui.cursor.match" = { fg = "peach", modifiers = ["bold"] } + +"ui.cursor.primary.normal" = { fg = "base", bg = "lavender" } +"ui.cursor.primary.insert" = { fg = "base", bg = "green" } +"ui.cursor.primary.select" = { fg = "base", bg = "flamingo" } + +"ui.cursor.normal" = { fg = "base", bg = "secondary_cursor_normal" } +"ui.cursor.insert" = { fg = "base", bg = "secondary_cursor_insert" } +"ui.cursor.select" = { fg = "base", bg = "secondary_cursor" } + +"ui.cursorline.primary" = { bg = "cursorline" } + +"ui.highlight" = { bg = "surface1", modifiers = ["bold"] } + +"ui.menu" = { fg = "overlay2", bg = "surface0" } +"ui.menu.selected" = { fg = "text", bg = "surface1", modifiers = ["bold"] } + +"diagnostic.error" = { underline = { color = "red", style = "curl" } } +"diagnostic.warning" = { underline = { color = "yellow", style = "curl" } } +"diagnostic.info" = { underline = { color = "sky", style = "curl" } } +"diagnostic.hint" = { underline = { color = "teal", style = "curl" } } + +error = "red" +warning = "yellow" +info = "sky" +hint = "teal" + +[palette] +rosewater = "#f5e0dc" +flamingo = "#f2cdcd" +pink = "#f5c2e7" +mauve = "#cba6f7" +red = "#f38ba8" +maroon = "#eba0ac" +peach = "#fab387" +yellow = "#f9e2af" +green = "#a6e3a1" +teal = "#94e2d5" +sky = "#89dceb" +sapphire = "#74c7ec" +blue = "#89b4fa" +lavender = "#b4befe" +text = "#cdd6f4" +subtext1 = "#bac2de" +subtext0 = "#a6adc8" +overlay2 = "#9399b2" +overlay1 = "#7f849c" +overlay0 = "#6c7086" +surface2 = "#585b70" +surface1 = "#45475a" +surface0 = "#313244" +base = "#1e1e2e" +mantle = "#181825" +crust = "#11111b" + +cursorline = "#2a2b3c" +secondary_cursor = "#b5a6a8" +secondary_cursor_normal = "#878ec0" +secondary_cursor_insert = "#7ea87f" diff --git a/themes/gruvbox_mix_dark.toml b/themes/gruvbox_mix_dark.toml new file mode 100644 index 0000000..3c6b9e2 --- /dev/null +++ b/themes/gruvbox_mix_dark.toml @@ -0,0 +1,122 @@ + +## Original Author +# URL: https://github.com/sainnhe/gruvbox-material +# Author: sainnhe +# License: MIT License + +"type" = "yellow" +"constant" = "purple" +"constant.numeric" = "purple" +"constant.character.escape" = "orange" +"string" = "green" +"string.regexp" = "blue" +"comment" = "grey0" +"variable" = "fg0" +"variable.builtin" = "blue" +"variable.parameter" = "fg0" +"variable.other.member" = "fg0" +"label" = "aqua" +"punctuation" = "grey2" +"punctuation.delimiter" = "grey2" +"punctuation.bracket" = "fg0" +"keyword" = "red" +"keyword.directive" = "aqua" +"operator" = "orange" +"function" = "green" +"function.builtin" = "blue" +"function.macro" = "aqua" +"tag" = "yellow" +"namespace" = "aqua" +"attribute" = "aqua" +"constructor" = "yellow" +"module" = "blue" +"special" = "orange" + +"markup.heading.marker" = "grey2" +"markup.heading.1" = { fg = "red", modifiers = ["bold"] } +"markup.heading.2" = { fg = "orange", modifiers = ["bold"] } +"markup.heading.3" = { fg = "yellow", modifiers = ["bold"] } +"markup.heading.4" = { fg = "green", modifiers = ["bold"] } +"markup.heading.5" = { fg = "blue", modifiers = ["bold"] } +"markup.heading.6" = { fg = "fg", modifiers = ["bold"] } +"markup.list" = "red" +"markup.bold" = { modifiers = ["bold"] } +"markup.italic" = { modifiers = ["italic"] } +"markup.link.url" = { fg = "blue", modifiers = ["underlined"] } +"markup.link.text" = "purple" +"markup.quote" = "grey2" +"markup.raw" = "green" + +"diff.plus" = "green" +"diff.delta" = "orange" +"diff.minus" = "red" + +"ui.background" = { bg = "bg0" } +"ui.background.separator" = "grey0" +"ui.cursor" = { fg = "bg0", bg = "fg0" } +"ui.cursor.match" = { fg = "orange", bg = "bg_visual_yellow" } +"ui.cursor.insert" = { fg = "bg0", bg = "grey2" } +"ui.cursor.select" = { fg = "bg0", bg = "blue" } +"ui.cursorline.primary" = { bg = "bg1" } +"ui.cursorline.secondary" = { bg = "bg1" } +"ui.selection" = { bg = "bg3" } +"ui.linenr" = "grey0" +"ui.linenr.selected" = "fg0" +"ui.statusline" = { fg = "fg0", bg = "bg3" } +"ui.statusline.inactive" = { fg = "grey0", bg = "bg1" } +"ui.statusline.normal" = { fg = "bg0", bg = "fg0", modifiers = ["bold"] } +"ui.statusline.insert" = { fg = "bg0", bg = "yellow", modifiers = ["bold"] } +"ui.statusline.select" = { fg = "bg0", bg = "blue", modifiers = ["bold"] } +"ui.popup" = { fg = "grey2", bg = "bg2" } +"ui.window" = { fg = "grey0", bg = "bg0" } +"ui.help" = { fg = "fg0", bg = "bg1" } +"ui.text" = "fg0" +"ui.text.focus" = "fg0" +"ui.menu" = { fg = "fg0", bg = "bg2" } +"ui.menu.selected" = { fg = "bg0", bg = "blue", modifiers = ["bold"] } +"ui.virtual.whitespace" = { fg = "bg4" } +"ui.virtual.indent-guide" = { fg = "bg4" } +"ui.virtual.ruler" = { bg = "bg3" } + +"hint" = "blue" +"info" = "aqua" +"warning" = "yellow" +"error" = "red" +"diagnostic" = { modifiers = ["underlined"] } + +[palette] + +bg0 = "#1d2021" +bg1 = "#282828" +bg2 = "#282828" +bg3 = "#3c3836" +bg4 = "#3c3836" +bg5 = "#504945" +bg_statusline1 = "#282828" +bg_statusline2 = "#32302f" +bg_statusline3 = "#504945" +bg_diff_green = "#32361a" +bg_visual_green = "#333e34" +bg_diff_red = "#3c1f1e" +bg_visual_red = "#442e2d" +bg_diff_blue = "#0d3138" +bg_visual_blue = "#2e3b3b" +bg_visual_yellow = "#473c29" +bg_current_word = "#32302f" + +fg0 = "#e2cca9" +fg1 = "#e2cca9" +red = "#f2594b" +orange = "#f28534" +yellow = "#e9b143" +green = "#b0b846" +aqua = "#8bba7f" +blue = "#80aa9e" +purple = "#d3869b" +bg_red = "#db4740" +bg_green = "#b0b846" +bg_yellow = "#e9b143" + +grey0 = "#7c6f64" +grey1 = "#928374" +grey2 = "#a89984" diff --git a/themes/rose_pine.toml b/themes/rose_pine.toml new file mode 100644 index 0000000..78856fa --- /dev/null +++ b/themes/rose_pine.toml @@ -0,0 +1,195 @@ +# Author: Rosé Pine +# Upstream: https://github.com/rose-pine/helix +# Contributing: +# Please submit changes to https://github.com/rose-pine/helix. +# The Rosé Pine team will update Helix, including you as a co-author. + +"ui.background" = { bg = "base" } +"ui.background.separator" = { bg = "base" } + +"ui.cursor" = { fg = "text", bg = "highlight_high" } +# "ui.cursor.select" = {} +"ui.cursor.match" = { fg = "text", bg = "highlight_med" } +"ui.cursor.primary" = { fg = "text", bg = "muted" } + +# "ui.gutter" = {} +# "ui.gutter.selected" = {} + +"ui.linenr" = { fg = "muted" } +"ui.linenr.selected" = { fg = "text" } + +"ui.bufferline" = { fg = "muted", bg = "base" } +"ui.bufferline.active" = { fg = "text", bg = "overlay" } +"ui.statusline" = { fg = "subtle", bg = "surface" } +"ui.statusline.inactive" = { fg = "muted", bg = "surface" } +"ui.statusline.normal" = { fg = "rose", bg = "rose_10" } +"ui.statusline.insert" = { fg = "foam", bg = "foam_10" } +"ui.statusline.select" = { fg = "iris", bg = "iris_10" } +# "ui.statusline.separator" = {} + +"ui.popup" = { bg = "surface" } +"ui.popup.info" = { bg = "surface" } + +"ui.picker.header" = { fg = "iris", modifiers = ["bold"] } + +"ui.window" = { fg = "overlay", bg = "base" } +"ui.help" = { fg = "subtle", bg = "overlay" } + +"ui.text" = { fg = "text" } +"ui.text.focus" = { bg = "overlay" } +"ui.text.info" = { fg = "subtle" } + +"ui.virtual.jump-label" = { fg = "love", modifiers = ["bold"] } +"ui.virtual.ruler" = { bg = "overlay" } +"ui.virtual.whitespace" = { fg = "highlight_high" } +"ui.virtual.indent-guide" = { fg = "muted" } +"ui.virtual.inlay-hint" = { fg = "subtle" } + +"ui.menu" = { fg = "subtle", bg = "surface" } +"ui.menu.selected" = { fg = "text" } +"ui.menu.scroll" = { fg = "muted", bg = "highlight_med" } + +"ui.selection" = { bg = "overlay" } +"ui.selection.primary" = { bg = "highlight_med" } + +"ui.cursorline.primary" = { bg = "highlight_low" } +"ui.cursorline.secondary" = { bg = "surface" } + +"warning" = "gold" +"error" = "love" +"info" = "foam" +"hint" = "iris" +"debug" = "rose" + +"diagnostic" = { underline = { color = "subtle", style = "curl" } } +"diagnostic.hint" = { underline = { color = "iris", style = "curl" } } +"diagnostic.info" = { underline = { color = "foam", style = "curl" } } +"diagnostic.warning" = { underline = { color = "gold", style = "curl" } } +"diagnostic.error" = { underline = { color = "love", style = "curl" } } +"special" = "rose" + +"attribute" = "iris" + +"type" = "foam" +# "type.builtin" = "" + +"constructor" = "foam" + +"constant" = "foam" +"constant.builtin" = "love" +"constant.builtin.boolean" = "rose" +"constant.character" = "gold" +"constant.character.escape" = "pine" +"constant.numeric" = "gold" +# "constant.numeric.integer" = "" +# "constant.numeric.float" = "" + +"string" = "gold" +# "string.regexp" = "" +# "string.special" = "" +# "string.special.path" = "" +# "string.special.url" = "" +# "string.special.symbol" = "" + +"comment" = { fg = "muted", modifiers = ["italic"] } +# "comment.line" = "" +# "comment.block" = "" +# "comment.block.documentation" = "" + +"variable" = "text" +"variable.builtin" = "love" +"variable.parameter" = "iris" +# "variable.other" = "" +"variable.other.member" = "foam" + +"label" = "foam" + +"punctuation" = "subtle" +# "punctuation.delimiter" = "" +# "punctuation.bracket" = "" +# "punctuation.special" = "" + +"keyword" = "pine" +# "keyword.control" = "" +# "keyword.control.conditional" = "" +# "keyword.control.repeat" = "" +# "keyword.control.import" = "" +# "keyword.control.return" = "" +# "keyword.control.exception" = "" +"keyword.operator" = "subtle" +# "keyword.directive" = "" +# "keyword.function" = "" +# "keyword.storage" = "" +# "keyword.storage.type" = "" +# "keyword.storage.modifier" = "" + +"operator" = "subtle" + +"function" = "rose" # maybe pine +"function.builtin" = "love" +# "function.method" = "" +# "function.macro" = "" +# "function.special" = "" + +"tag" = "foam" + +"namespace" = "text" + +"markup.heading.marker" = "muted" +"markup.heading" = { fg = "iris", modifiers = ["bold"] } +"markup.heading.1" = { fg = "iris", modifiers = ["bold"] } +"markup.heading.2" = { fg = "foam", modifiers = ["bold"] } +"markup.heading.3" = { fg = "rose", modifiers = ["bold"] } +"markup.heading.4" = { fg = "gold", modifiers = ["bold"] } +"markup.heading.5" = { fg = "pine", modifiers = ["bold"] } +"markup.heading.6" = { fg = "foam", modifiers = ["bold"] } +# "markup.heading.completion" = "" +# "markup.heading.hover" = "" +"markup.list" = "muted" +# "markup.list.unnumbered" = "" +# "markup.list.numbered" = "" +"markup.bold" = { modifiers = ["bold"] } +"markup.italic" = { modifiers = ["italic"] } +"markup.strikethrough" = { modifiers = ["crossed_out"] } +"markup.link" = "iris" +"markup.link.url" = { fg = "iris", underline = { color = "iris", style = "line" } } +"markup.link.label" = "subtle" +"markup.link.text" = "foam" +"markup.quote" = "subtle" +"markup.raw" = "subtle" +"markup.raw.inline" = "gold" +# "markup.raw.inline.completion" = {} +# "markup.raw.inline.hover" = {} +"markup.raw.block" = "gold" +# "markup.normal" = "" +# "markup.normal.completion" = "" +# "markup.normal.hover" = "" + +"diff" = "overlay" +"diff.plus" = "foam" +"diff.minus" = "love" +"diff.delta" = "highlight_high" +# "diff.delta.moved" = "" + +[palette] +base = "#191724" +surface = "#1f1d2e" +overlay = "#26233a" +muted = "#6e6a86" +subtle = "#908caa" +text = "#e0def4" +love = "#eb6f92" +love_10 = "#311f30" +gold = "#f6c177" +gold_10 = "#30282c" +rose = "#ebbcba" +rose_10 = "#2f2834" +pine = "#31748f" +pine_10 = "#1a2030" +foam = "#9ccfd8" +foam_10 = "#252937" +iris = "#c4a7e7" +iris_10 = "#2b2539" +highlight_low = "#21202e" +highlight_med = "#403d52" +highlight_high = "#524f67" diff --git a/yazi-picker.sh b/yazi-picker.sh new file mode 100755 index 0000000..142b0bc --- /dev/null +++ b/yazi-picker.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +paths=$(yazi --chooser-file=/dev/stdout | while read -r; do printf "%q " "$REPLY"; done) + +if [[ -n "$paths" ]]; then + zellij action toggle-floating-panes + zellij action write 27 # send key + zellij action write-chars ":open $paths" + zellij action write 13 # send key + zellij action toggle-floating-panes +fi + +zellij action close-pane