From 2b40e9ade739e320286857cadab7294d1aaf17ed Mon Sep 17 00:00:00 2001 From: seang96 Date: Fri, 1 Aug 2025 15:51:56 -0400 Subject: [PATCH] Add Config --- config/helix/config.toml | 148 ++++++++++++++++++++++++++++++++++ config/k9s/aliases.yaml | 9 +++ config/k9s/config.yaml | 42 ++++++++++ config/k9s/config.yml | 57 +++++++++++++ config/k9s/plugins.yaml | 106 ++++++++++++++++++++++++ config/k9s/skins/dracula.yaml | 115 ++++++++++++++++++++++++++ config/k9s/views.yaml | 20 +++++ 7 files changed, 497 insertions(+) create mode 100644 config/helix/config.toml create mode 100644 config/k9s/aliases.yaml create mode 100644 config/k9s/config.yaml create mode 100644 config/k9s/config.yml create mode 100644 config/k9s/plugins.yaml create mode 100644 config/k9s/skins/dracula.yaml create mode 100644 config/k9s/views.yaml diff --git a/config/helix/config.toml b/config/helix/config.toml new file mode 100644 index 0000000..3e55088 --- /dev/null +++ b/config/helix/config.toml @@ -0,0 +1,148 @@ +[editor] +# Show currently open buffers, only when more than one exists. +bufferline = "multiple" +# Highlight all lines with a cursor +cursorline = true +# Use relative line numbers +line-number = "relative" +# Show a ruler at column 120 +rulers = [120] +# Force the theme to show colors +true-color = true + +[keys.normal] +# Quick iteration on config changes +C-o = ":config-open" +C-r = ":config-reload" + +# Some nice Helix stuff +C-h = "select_prev_sibling" +C-j = "shrink_selection" +C-k = "expand_selection" +C-l = "select_next_sibling" + +# Personal preference +o = ["open_below", "normal_mode"] +O = ["open_above", "normal_mode"] + +# Muscle memory +"{" = ["goto_prev_paragraph", "collapse_selection"] +"}" = ["goto_next_paragraph", "collapse_selection"] +0 = "goto_line_start" +"$" = "goto_line_end" +"^" = "goto_first_nonwhitespace" +G = "goto_file_end" +"%" = "match_brackets" +V = ["select_mode", "extend_to_line_bounds"] +C = ["extend_to_line_end", "yank_main_selection_to_clipboard", "delete_selection", "insert_mode"] +D = ["extend_to_line_end", "yank_main_selection_to_clipboard", "delete_selection"] +S = "surround_add" # Would be nice to be able to do something after this but it isn't chainable + +# Clipboards over registers ye ye +x = "delete_selection" +p = ["paste_clipboard_after", "collapse_selection"] +P = ["paste_clipboard_before", "collapse_selection"] +# Would be nice to add ya and yi, but the surround commands can't be chained +Y = ["extend_to_line_end", "yank_main_selection_to_clipboard", "collapse_selection"] + +# Uncanny valley stuff, this makes w and b behave as they do Vim +w = ["move_next_word_start", "move_char_right", "collapse_selection"] +W = ["move_next_long_word_start", "move_char_right", "collapse_selection"] +e = ["move_next_word_end", "collapse_selection"] +E = ["move_next_long_word_end", "collapse_selection"] +b = ["move_prev_word_start", "collapse_selection"] +B = ["move_prev_long_word_start", "collapse_selection"] + +# If you want to keep the selection-while-moving behaviour of Helix, this two lines will help a lot, +# especially if you find having text remain selected while you have switched to insert or append mode +# +# There is no real difference if you have overridden the commands bound to 'w', 'e' and 'b' like above +# But if you really want to get familiar with the Helix way of selecting-while-moving, comment the +# bindings for 'w', 'e', and 'b' out and leave the bindings for 'i' and 'a' active below. A world of difference! +i = ["insert_mode", "collapse_selection"] +a = ["append_mode", "collapse_selection"] + +# Undoing the 'd' + motion commands restores the selection which is annoying +u = ["undo", "collapse_selection"] + +# Escape the madness! No more fighting with the cursor! Or with multiple cursors! +esc = ["collapse_selection", "keep_primary_selection"] + +# Search for word under cursor +"*" = ["move_char_right", "move_prev_word_start", "move_next_word_end", "search_selection", "search_next"] +"#" = ["move_char_right", "move_prev_word_start", "move_next_word_end", "search_selection", "search_prev"] + +# Make j and k behave as they do Vim when soft-wrap is enabled +j = "move_line_down" +k = "move_line_up" + +# Extend and select commands that expect a manual input can't be chained +# I've kept d[X] commands here because it's better to at least have the stuff you want to delete +# selected so that it's just a keystroke away to delete +[keys.normal.d] +d = ["extend_to_line_bounds", "yank_main_selection_to_clipboard", "delete_selection"] +t = ["extend_till_char"] +s = ["surround_delete"] +i = ["select_textobject_inner"] +a = ["select_textobject_around"] +j = ["select_mode", "extend_to_line_bounds", "extend_line_below", "yank_main_selection_to_clipboard", "delete_selection", "normal_mode"] +down = ["select_mode", "extend_to_line_bounds", "extend_line_below", "yank_main_selection_to_clipboard", "delete_selection", "normal_mode"] +k = ["select_mode", "extend_to_line_bounds", "extend_line_above", "yank_main_selection_to_clipboard", "delete_selection", "normal_mode"] +up = ["select_mode", "extend_to_line_bounds", "extend_line_above", "yank_main_selection_to_clipboard", "delete_selection", "normal_mode"] +G = ["select_mode", "extend_to_line_bounds", "goto_last_line", "extend_to_line_bounds", "yank_main_selection_to_clipboard", "delete_selection", "normal_mode"] +w = ["move_next_word_start", "yank_main_selection_to_clipboard", "delete_selection"] +W = ["move_next_long_word_start", "yank_main_selection_to_clipboard", "delete_selection"] +g = { g = ["select_mode", "extend_to_line_bounds", "goto_file_start", "extend_to_line_bounds", "yank_main_selection_to_clipboard", "delete_selection", "normal_mode"] } + +[keys.normal.y] +y = ["extend_to_line_bounds", "yank_main_selection_to_clipboard", "normal_mode", "collapse_selection"] +j = ["select_mode", "extend_to_line_bounds", "extend_line_below", "yank_main_selection_to_clipboard", "collapse_selection", "normal_mode"] +down = ["select_mode", "extend_to_line_bounds", "extend_line_below", "yank_main_selection_to_clipboard", "collapse_selection", "normal_mode"] +k = ["select_mode", "extend_to_line_bounds", "extend_line_above", "yank_main_selection_to_clipboard", "collapse_selection", "normal_mode"] +up = ["select_mode", "extend_to_line_bounds", "extend_line_above", "yank_main_selection_to_clipboard", "collapse_selection", "normal_mode"] +G = ["select_mode", "extend_to_line_bounds", "goto_last_line", "extend_to_line_bounds", "yank_main_selection_to_clipboard", "collapse_selection", "normal_mode"] +w = ["move_next_word_start", "yank_main_selection_to_clipboard", "collapse_selection", "normal_mode"] +W = ["move_next_long_word_start", "yank_main_selection_to_clipboard", "collapse_selection", "normal_mode"] +g = { g = ["select_mode", "extend_to_line_bounds", "goto_file_start", "extend_to_line_bounds", "yank_main_selection_to_clipboard", "collapse_selection", "normal_mode"] } + +[keys.insert] +# Escape the madness! No more fighting with the cursor! Or with multiple cursors! +esc = ["collapse_selection", "normal_mode"] + +[keys.select] +# Muscle memory +"{" = ["extend_to_line_bounds", "goto_prev_paragraph"] +"}" = ["extend_to_line_bounds", "goto_next_paragraph"] +0 = "goto_line_start" +"$" = "goto_line_end" +"^" = "goto_first_nonwhitespace" +G = "goto_file_end" +D = ["extend_to_line_bounds", "delete_selection", "normal_mode"] +C = ["goto_line_start", "extend_to_line_bounds", "change_selection"] +"%" = "match_brackets" +S = "surround_add" # Basically 99% of what I use vim-surround for +u = ["switch_to_lowercase", "collapse_selection", "normal_mode"] +U = ["switch_to_uppercase", "collapse_selection", "normal_mode"] + +# Visual-mode specific muscle memory +i = "select_textobject_inner" +a = "select_textobject_around" + +# Some extra binds to allow us to insert/append in select mode because it's nice with multiple cursors +tab = ["insert_mode", "collapse_selection"] # tab is read by most terminal editors as "C-i" +C-a = ["append_mode", "collapse_selection"] + +# Make selecting lines in visual mode behave sensibly +k = ["extend_line_up", "extend_to_line_bounds"] +j = ["extend_line_down", "extend_to_line_bounds"] + +# Clipboards over registers ye ye +d = ["yank_main_selection_to_clipboard", "delete_selection"] +x = ["yank_main_selection_to_clipboard", "delete_selection"] +y = ["yank_main_selection_to_clipboard", "normal_mode", "flip_selections", "collapse_selection"] +Y = ["extend_to_line_bounds", "yank_main_selection_to_clipboard", "goto_line_start", "collapse_selection", "normal_mode"] +p = "replace_selections_with_clipboard" # No life without this +P = "paste_clipboard_before" + +# Escape the madness! No more fighting with the cursor! Or with multiple cursors! +esc = ["collapse_selection", "keep_primary_selection", "normal_mode"] diff --git a/config/k9s/aliases.yaml b/config/k9s/aliases.yaml new file mode 100644 index 0000000..ee4d9ec --- /dev/null +++ b/config/k9s/aliases.yaml @@ -0,0 +1,9 @@ +aliases: + dp: deployments + sec: v1/secrets + jo: jobs + cr: clusterroles + crb: clusterrolebindings + ro: roles + rb: rolebindings + np: networkpolicies diff --git a/config/k9s/config.yaml b/config/k9s/config.yaml new file mode 100644 index 0000000..a4e1b79 --- /dev/null +++ b/config/k9s/config.yaml @@ -0,0 +1,42 @@ +k9s: + liveViewAutoRefresh: false + screenDumpDir: /data/data/com.termux.nix/files/home/.local/state/k9s/screen-dumps + refreshRate: 2 + maxConnRetry: 5 + readOnly: false + noExitOnCtrlC: false + ui: + enableMouse: false + headless: false + logoless: true + crumbsless: false + reactive: false + noIcons: false + defaultsToFullScreen: false + skin: dracula + skipLatestRevCheck: false + disablePodCounting: false + shellPod: + image: busybox:1.35.0 + namespace: default + limits: + cpu: 100m + memory: 100Mi + imageScans: + enable: false + exclusions: + namespaces: [] + labels: {} + logger: + tail: 100 + buffer: 5000 + sinceSeconds: -1 + textWrap: false + showTime: false + thresholds: + cpu: + critical: 90 + warn: 70 + memory: + critical: 90 + warn: 70 diff --git a/config/k9s/config.yml b/config/k9s/config.yml new file mode 100644 index 0000000..f60f3f8 --- /dev/null +++ b/config/k9s/config.yml @@ -0,0 +1,57 @@ +k9s: + liveViewAutoRefresh: false + refreshRate: 2 + maxConnRetry: 5 + enableMouse: false + headless: false + logoless: false + crumbsless: false + readOnly: false + noExitOnCtrlC: false + noIcons: false + skipLatestRevCheck: false + logger: + tail: 100 + buffer: 5000 + sinceSeconds: 300 + fullScreenLogs: false + textWrap: false + showTime: false + currentContext: default + currentCluster: default + clusters: + default: + namespace: + active: foo + lockFavorites: false + favorites: + - foo + - vpn-home + - matrix + - ingress-nginx + - invidious + - voyager + - kube-system + - lemmy + view: + active: pods + featureGates: + nodeShell: false + shellPod: + image: busybox:1.35.0 + command: [] + args: [] + namespace: default + limits: + cpu: 100m + memory: 100Mi + labels: {} + portForwardAddress: localhost + thresholds: + cpu: + critical: 90 + warn: 70 + memory: + critical: 90 + warn: 70 + screenDumpDir: /data/data/com.termux.nix/files/usr/tmp/k9s-screens-nix-on-droid diff --git a/config/k9s/plugins.yaml b/config/k9s/plugins.yaml new file mode 100644 index 0000000..24c60f1 --- /dev/null +++ b/config/k9s/plugins.yaml @@ -0,0 +1,106 @@ +plugins: + cnpg-backup: + shortCut: b + description: Backup + scopes: + - cluster + command: bash + confirm: true + background: false + args: + - -c + - 'kubectl-cnpg backup $NAME -n $NAMESPACE --context "$CONTEXT" |& less -R' + cnpg-hibernate-status: + shortCut: h + description: Hibernate status + scopes: + - cluster + command: bash + background: false + args: + - -c + - 'kubectl-cnpg hibernate status $NAME -n $NAMESPACE --context "$CONTEXT" |& less -R' + cnpg-hibernate: + shortCut: Shift-H + description: Hibernate + confirm: true + scopes: + - cluster + command: bash + background: false + args: + - -c + - 'kubectl-cnpg hibernate on $NAME -n $NAMESPACE --context "$CONTEXT" |& less -R' + cnpg-hibernate-off: + shortCut: Ctrl-H + description: Wake up hibernated cluster in this namespace + confirm: true + scopes: + - namespace + command: bash + background: false + args: + - -c + - 'kubectl-cnpg hibernate off $NAME -n $NAME --context "$CONTEXT" |& less -R' + cnpg-logs: + shortCut: l + description: Logs + scopes: + - cluster + command: bash + background: false + args: + - -c + - "kubectl-cnpg logs cluster $NAME -f -n $NAMESPACE --context $CONTEXT" + cnpg-psql: + shortCut: p + description: PSQL shell + scopes: + - cluster + command: bash + background: false + args: + - -c + - "kubectl-cnpg psql $NAME -n $NAMESPACE --context $CONTEXT" + cnpg-reload: + shortCut: r + description: Reload + confirm: true + scopes: + - cluster + command: bash + background: false + args: + - -c + - 'kubectl-cnpg reload $NAME -n $NAMESPACE --context "$CONTEXT" |& less -R' + cnpg-restart: + shortCut: Ctrl-R + description: Restart + confirm: true + scopes: + - cluster + command: bash + background: false + args: + - -c + - 'kubectl-cnpg restart $NAME -n $NAMESPACE --context "$CONTEXT" |& less -R' + cnpg-status: + shortCut: s + description: Status + scopes: + - cluster + command: bash + background: false + args: + - -c + - 'kubectl-cnpg status $NAME -n $NAMESPACE --context "$CONTEXT" |& less -R' + cnpg-status-verbose: + shortCut: Ctrl-S + description: Status (verbose) + scopes: + - cluster + command: bash + background: false + args: + - -c + - 'kubectl-cnpg status $NAME -n $NAMESPACE --context "$CONTEXT" --verbose |& less -R' diff --git a/config/k9s/skins/dracula.yaml b/config/k9s/skins/dracula.yaml new file mode 100644 index 0000000..6df70e8 --- /dev/null +++ b/config/k9s/skins/dracula.yaml @@ -0,0 +1,115 @@ +# ----------------------------------------------------------------------------- +# Dracula skin +# ----------------------------------------------------------------------------- + +# Styles... +foreground: &foreground "#f8f8f2" +background: &background "#282a36" +current_line: ¤t_line "#44475a" +selection: &selection "#44475a" +comment: &comment "#6272a4" +cyan: &cyan "#8be9fd" +green: &green "#50fa7b" +orange: &orange "#ffb86c" +pink: &pink "#ff79c6" +purple: &purple "#bd93f9" +red: &red "#ff5555" +yellow: &yellow "#f1fa8c" + +# Skin... +k9s: + # General K9s styles + body: + fgColor: *foreground + bgColor: *background + logoColor: *purple + # Command prompt styles + prompt: + fgColor: *foreground + bgColor: *background + suggestColor: *purple + # ClusterInfoView styles. + info: + fgColor: *pink + sectionColor: *foreground + # Dialog styles. + dialog: + fgColor: *foreground + bgColor: *background + buttonFgColor: *foreground + buttonBgColor: *purple + buttonFocusFgColor: *yellow + buttonFocusBgColor: *pink + labelFgColor: *orange + fieldFgColor: *foreground + frame: + # Borders styles. + border: + fgColor: *selection + focusColor: *current_line + menu: + fgColor: *foreground + keyColor: *pink + # Used for favorite namespaces + numKeyColor: *pink + # CrumbView attributes for history navigation. + crumbs: + fgColor: *foreground + bgColor: *current_line + activeColor: *current_line + # Resource status and update styles + status: + newColor: *cyan + modifyColor: *purple + addColor: *green + errorColor: *red + highlightColor: *orange + killColor: *comment + completedColor: *comment + # Border title styles. + title: + fgColor: *foreground + bgColor: *current_line + highlightColor: *orange + counterColor: *purple + filterColor: *pink + views: + # Charts skins... + charts: + bgColor: default + defaultDialColors: + - *purple + - *red + defaultChartColors: + - *purple + - *red + # TableView attributes. + table: + fgColor: *foreground + bgColor: *background + # Header row styles. + header: + fgColor: *foreground + bgColor: *background + sorterColor: *cyan + # Xray view attributes. + xray: + fgColor: *foreground + bgColor: *background + cursorColor: *current_line + graphicColor: *purple + showIcons: false + # YAML info styles. + yaml: + keyColor: *pink + colonColor: *purple + valueColor: *foreground + # Logs styles. + logs: + fgColor: *foreground + bgColor: *background + indicator: + fgColor: *foreground + bgColor: *purple + toggleOnColor: *green + toggleOffColor: *cyan \ No newline at end of file diff --git a/config/k9s/views.yaml b/config/k9s/views.yaml new file mode 100644 index 0000000..98504fc --- /dev/null +++ b/config/k9s/views.yaml @@ -0,0 +1,20 @@ +views: + v1/pods: + sortColumn: NAME:asc + columns: + - NAME + - NAMESPACE + - NODE + - STATUS + - READY + - CPU + - MEM + + # Alters the service view column layout + v1/services: + columns: + - NAMESPACE + - NAME + - TYPE + - AGE + - CLUSTER-IP