mirror of
https://github.com/avinal/dotfiles.git
synced 2026-07-03 23:20:07 +05:30
feat: add more configurations and a new theme
- a theme based on carbon and vim high contrast - modify layouts in zellij and add support for swaps - add snippets Signed-off-by: Avinal Kumar <avinal.xlvii@gmail.com>
This commit is contained in:
@@ -10,7 +10,7 @@ bold-is-bright = true
|
|||||||
freetype-load-flags = hinting,autohint,light
|
freetype-load-flags = hinting,autohint,light
|
||||||
|
|
||||||
# Appearance
|
# Appearance
|
||||||
theme = "vim_dark_high_contrast"
|
theme = "space_carbon"
|
||||||
window-decoration = true
|
window-decoration = true
|
||||||
window-padding-x = 4
|
window-padding-x = 4
|
||||||
window-padding-y = 2
|
window-padding-y = 2
|
||||||
|
|||||||
@@ -19,6 +19,6 @@ palette = 15=#ffffff
|
|||||||
background = #000000
|
background = #000000
|
||||||
foreground = #c1c9d2
|
foreground = #c1c9d2
|
||||||
cursor-color = #c1c9d2
|
cursor-color = #c1c9d2
|
||||||
cursor-text = #111111
|
cursor-text = #0c0c0c
|
||||||
selection-background = #3e4043
|
selection-background = #393939
|
||||||
selection-foreground = #ffffff
|
selection-foreground = #ffffff
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
theme = "vim_dark_high_contrast"
|
theme = "space_carbon"
|
||||||
|
|
||||||
[editor]
|
[editor]
|
||||||
rulers = [80, 100]
|
rulers = [80, 100]
|
||||||
|
|||||||
@@ -0,0 +1,291 @@
|
|||||||
|
# Space Carbon — high-contrast theme
|
||||||
|
# Inspired by vim_dark_high_contrast + IBM Carbon
|
||||||
|
# Pure black background, vibrant syntax, structured gray UI
|
||||||
|
|
||||||
|
# ── UI: Background & Window ──────────────────────────────────────────
|
||||||
|
|
||||||
|
"ui.background" = { bg = "black" }
|
||||||
|
"ui.background.separator" = { fg = "bg4" }
|
||||||
|
"ui.window" = { fg = "bg4" }
|
||||||
|
|
||||||
|
# ── UI: Cursor ────────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
"ui.cursor" = { fg = "black", bg = "fg3" }
|
||||||
|
"ui.cursor.normal" = { fg = "black", bg = "blue" }
|
||||||
|
"ui.cursor.insert" = { fg = "black", bg = "green" }
|
||||||
|
"ui.cursor.select" = { fg = "black", bg = "magenta" }
|
||||||
|
"ui.cursor.match" = { fg = "black", bg = "teal" }
|
||||||
|
|
||||||
|
"ui.cursor.primary" = { fg = "black", bg = "fg1" }
|
||||||
|
"ui.cursor.primary.normal" = { fg = "black", bg = "bright-blue" }
|
||||||
|
"ui.cursor.primary.insert" = { fg = "black", bg = "bright-green" }
|
||||||
|
"ui.cursor.primary.select" = { fg = "black", bg = "bright-magenta" }
|
||||||
|
|
||||||
|
# ── UI: Gutter & Line Numbers ────────────────────────────────────────
|
||||||
|
|
||||||
|
"ui.gutter" = { fg = "fg4" }
|
||||||
|
"ui.gutter.selected" = { fg = "fg2" }
|
||||||
|
"ui.linenr" = { fg = "fg4" }
|
||||||
|
"ui.linenr.selected" = { fg = "yellow", modifiers = ["bold"] }
|
||||||
|
|
||||||
|
# ── UI: Statusline ───────────────────────────────────────────────────
|
||||||
|
|
||||||
|
"ui.statusline" = { fg = "fg1", bg = "bg2" }
|
||||||
|
"ui.statusline.inactive" = { fg = "fg3", bg = "bg2" }
|
||||||
|
"ui.statusline.normal" = { fg = "black", bg = "blue", modifiers = ["bold"] }
|
||||||
|
"ui.statusline.insert" = { fg = "black", bg = "green", modifiers = ["bold"] }
|
||||||
|
"ui.statusline.select" = { fg = "black", bg = "magenta", modifiers = ["bold"] }
|
||||||
|
"ui.statusline.separator" = { fg = "bg4" }
|
||||||
|
|
||||||
|
# ── UI: Bufferline ───────────────────────────────────────────────────
|
||||||
|
|
||||||
|
"ui.bufferline" = { fg = "fg3", bg = "bg1" }
|
||||||
|
"ui.bufferline.active" = { fg = "fg0", bg = "bg3", modifiers = ["bold"] }
|
||||||
|
"ui.bufferline.background" = { bg = "bg1" }
|
||||||
|
|
||||||
|
# ── UI: Popup, Menu, Help ───────────────────────────────────────────
|
||||||
|
|
||||||
|
"ui.popup" = { fg = "fg1", bg = "bg2" }
|
||||||
|
"ui.popup.info" = { fg = "fg1", bg = "bg2" }
|
||||||
|
"ui.menu" = { fg = "fg1", bg = "bg2" }
|
||||||
|
"ui.menu.selected" = { fg = "fg0", bg = "bg4", modifiers = ["bold"] }
|
||||||
|
"ui.menu.scroll" = { fg = "cyan", bg = "bg3" }
|
||||||
|
"ui.help" = { fg = "fg1", bg = "bg2" }
|
||||||
|
|
||||||
|
# ── UI: Picker ───────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
"ui.picker.header" = { fg = "fg2", modifiers = ["bold"] }
|
||||||
|
"ui.picker.header.column" = { fg = "fg3" }
|
||||||
|
"ui.picker.header.column.active" = { fg = "cyan", modifiers = ["bold"] }
|
||||||
|
|
||||||
|
# ── UI: Text ─────────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
"ui.text" = { fg = "fg1" }
|
||||||
|
"ui.text.focus" = { fg = "fg0", bg = "bg3", modifiers = ["bold"] }
|
||||||
|
"ui.text.inactive" = { fg = "fg3" }
|
||||||
|
"ui.text.info" = { fg = "cyan" }
|
||||||
|
"ui.text.directory" = { fg = "blue" }
|
||||||
|
|
||||||
|
# ── UI: Virtual ──────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
"ui.virtual.ruler" = { bg = "bg2" }
|
||||||
|
"ui.virtual.whitespace" = { fg = "bg4" }
|
||||||
|
"ui.virtual.indent-guide" = { fg = "bg4" }
|
||||||
|
"ui.virtual.inlay-hint" = { fg = "fg4", bg = "bg1" }
|
||||||
|
"ui.virtual.inlay-hint.parameter" = { fg = "fg4", bg = "bg1", modifiers = ["italic"] }
|
||||||
|
"ui.virtual.inlay-hint.type" = { fg = "fg4", bg = "bg1" }
|
||||||
|
"ui.virtual.wrap" = { fg = "bg4" }
|
||||||
|
"ui.virtual.jump-label" = { fg = "yellow", bg = "bg2", modifiers = ["bold"] }
|
||||||
|
|
||||||
|
# ── UI: Selection & Cursorline ───────────────────────────────────────
|
||||||
|
|
||||||
|
"ui.selection" = { bg = "bg4" }
|
||||||
|
"ui.selection.primary" = { bg = "sel" }
|
||||||
|
"ui.cursorline.primary" = { bg = "bg3" }
|
||||||
|
"ui.cursorline.secondary" = { bg = "bg2" }
|
||||||
|
"ui.cursorcolumn.primary" = { bg = "bg3" }
|
||||||
|
"ui.cursorcolumn.secondary" = { bg = "bg2" }
|
||||||
|
|
||||||
|
# ── UI: Highlight & Debug ───────────────────────────────────────────
|
||||||
|
|
||||||
|
"ui.highlight" = { bg = "bg3", modifiers = ["bold"] }
|
||||||
|
"ui.highlight.frameline" = { bg = "dim-blue" }
|
||||||
|
"ui.debug.breakpoint" = { fg = "red" }
|
||||||
|
"ui.debug.active" = { fg = "yellow" }
|
||||||
|
|
||||||
|
# ── Diagnostics ──────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
"warning" = { fg = "yellow" }
|
||||||
|
"error" = { fg = "red" }
|
||||||
|
"info" = { fg = "blue" }
|
||||||
|
"hint" = { fg = "cyan" }
|
||||||
|
|
||||||
|
"diagnostic" = { fg = "fg2" }
|
||||||
|
"diagnostic.error" = { underline = { color = "red", style = "curl" } }
|
||||||
|
"diagnostic.warning" = { underline = { color = "yellow", style = "curl" } }
|
||||||
|
"diagnostic.info" = { underline = { color = "blue", style = "curl" } }
|
||||||
|
"diagnostic.hint" = { underline = { color = "cyan", style = "curl" } }
|
||||||
|
"diagnostic.unnecessary" = { modifiers = ["dim"] }
|
||||||
|
"diagnostic.deprecated" = { modifiers = ["crossed_out"] }
|
||||||
|
|
||||||
|
"tabstop" = { bg = "bg3" }
|
||||||
|
|
||||||
|
# ── Syntax: Attributes ───────────────────────────────────────────────
|
||||||
|
|
||||||
|
"attribute" = { fg = "yellow", modifiers = ["italic"] }
|
||||||
|
|
||||||
|
# ── Syntax: Types ────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
"type" = { fg = "cyan" }
|
||||||
|
"type.builtin" = { fg = "cyan", modifiers = ["bold"] }
|
||||||
|
"type.enum.variant" = { fg = "bright-magenta" }
|
||||||
|
|
||||||
|
# ── Syntax: Constructors ─────────────────────────────────────────────
|
||||||
|
|
||||||
|
"constructor" = { fg = "bright-cyan", modifiers = ["bold"] }
|
||||||
|
|
||||||
|
# ── Syntax: Constants ────────────────────────────────────────────────
|
||||||
|
|
||||||
|
"constant" = { fg = "orange" }
|
||||||
|
"constant.builtin" = { fg = "orange", modifiers = ["bold"] }
|
||||||
|
"constant.builtin.boolean" = { fg = "orange", modifiers = ["bold"] }
|
||||||
|
"constant.character" = { fg = "green" }
|
||||||
|
"constant.character.escape" = { fg = "magenta", modifiers = ["bold"] }
|
||||||
|
"constant.numeric" = { fg = "orange" }
|
||||||
|
"constant.numeric.integer" = { fg = "orange" }
|
||||||
|
"constant.numeric.float" = { fg = "orange" }
|
||||||
|
|
||||||
|
# ── Syntax: Strings ──────────────────────────────────────────────────
|
||||||
|
|
||||||
|
"string" = { fg = "green" }
|
||||||
|
"string.regexp" = { fg = "bright-yellow", modifiers = ["italic"] }
|
||||||
|
"string.special" = { fg = "bright-green" }
|
||||||
|
"string.special.path" = { fg = "bright-green" }
|
||||||
|
"string.special.url" = { fg = "cyan", modifiers = ["underlined"] }
|
||||||
|
"string.special.symbol" = { fg = "teal" }
|
||||||
|
|
||||||
|
# ── Syntax: Comments ─────────────────────────────────────────────────
|
||||||
|
|
||||||
|
"comment" = { fg = "fg3", modifiers = ["italic"] }
|
||||||
|
"comment.line" = { fg = "fg3", modifiers = ["italic"] }
|
||||||
|
"comment.line.documentation" = { fg = "fg2", modifiers = ["italic"] }
|
||||||
|
"comment.block" = { fg = "fg3", modifiers = ["italic"] }
|
||||||
|
"comment.block.documentation" = { fg = "fg2", modifiers = ["italic"] }
|
||||||
|
|
||||||
|
# ── Syntax: Variables ────────────────────────────────────────────────
|
||||||
|
|
||||||
|
"variable" = { fg = "fg1" }
|
||||||
|
"variable.builtin" = { fg = "red", modifiers = ["bold"] }
|
||||||
|
"variable.parameter" = { fg = "bright-cyan", modifiers = ["italic"] }
|
||||||
|
"variable.other.member" = { fg = "fg2" }
|
||||||
|
"variable.other.member.private" = { fg = "fg2", modifiers = ["italic"] }
|
||||||
|
|
||||||
|
# ── Syntax: Labels ───────────────────────────────────────────────────
|
||||||
|
|
||||||
|
"label" = { fg = "bright-magenta" }
|
||||||
|
|
||||||
|
# ── Syntax: Punctuation ──────────────────────────────────────────────
|
||||||
|
|
||||||
|
"punctuation" = { fg = "fg2" }
|
||||||
|
"punctuation.delimiter" = { fg = "fg2" }
|
||||||
|
"punctuation.bracket" = { fg = "fg2" }
|
||||||
|
"punctuation.special" = { fg = "cyan" }
|
||||||
|
|
||||||
|
# ── Syntax: Keywords ─────────────────────────────────────────────────
|
||||||
|
|
||||||
|
"keyword" = { fg = "yellow", modifiers = ["bold"] }
|
||||||
|
"keyword.control" = { fg = "yellow", modifiers = ["bold"] }
|
||||||
|
"keyword.control.conditional" = { fg = "yellow", modifiers = ["bold"] }
|
||||||
|
"keyword.control.repeat" = { fg = "yellow", modifiers = ["bold"] }
|
||||||
|
"keyword.control.import" = { fg = "magenta", modifiers = ["italic"] }
|
||||||
|
"keyword.control.return" = { fg = "red", modifiers = ["bold"] }
|
||||||
|
"keyword.control.exception" = { fg = "red", modifiers = ["bold"] }
|
||||||
|
"keyword.operator" = { fg = "fg2", modifiers = ["bold"] }
|
||||||
|
"keyword.directive" = { fg = "magenta", modifiers = ["italic"] }
|
||||||
|
"keyword.function" = { fg = "magenta" }
|
||||||
|
"keyword.storage" = { fg = "yellow" }
|
||||||
|
"keyword.storage.type" = { fg = "yellow" }
|
||||||
|
"keyword.storage.modifier" = { fg = "yellow", modifiers = ["italic"] }
|
||||||
|
|
||||||
|
# ── Syntax: Operators ────────────────────────────────────────────────
|
||||||
|
|
||||||
|
"operator" = { fg = "fg2" }
|
||||||
|
|
||||||
|
# ── Syntax: Functions ────────────────────────────────────────────────
|
||||||
|
|
||||||
|
"function" = { fg = "blue" }
|
||||||
|
"function.builtin" = { fg = "bright-blue", modifiers = ["bold"] }
|
||||||
|
"function.method" = { fg = "blue" }
|
||||||
|
"function.method.private" = { fg = "blue", modifiers = ["italic"] }
|
||||||
|
"function.macro" = { fg = "magenta", modifiers = ["bold"] }
|
||||||
|
|
||||||
|
# ── Syntax: Tags ─────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
"tag" = { fg = "blue" }
|
||||||
|
"tag.builtin" = { fg = "bright-blue", modifiers = ["bold"] }
|
||||||
|
|
||||||
|
# ── Syntax: Namespace ────────────────────────────────────────────────
|
||||||
|
|
||||||
|
"namespace" = { fg = "cyan", modifiers = ["italic"] }
|
||||||
|
|
||||||
|
# ── Syntax: Special ──────────────────────────────────────────────────
|
||||||
|
|
||||||
|
"special" = { fg = "magenta" }
|
||||||
|
|
||||||
|
# ── Markup ───────────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
"markup.heading" = { fg = "blue", modifiers = ["bold"] }
|
||||||
|
"markup.heading.marker" = { fg = "fg3", modifiers = ["bold"] }
|
||||||
|
"markup.heading.1" = { fg = "blue", modifiers = ["bold"] }
|
||||||
|
"markup.heading.2" = { fg = "cyan", modifiers = ["bold"] }
|
||||||
|
"markup.heading.3" = { fg = "teal", modifiers = ["bold"] }
|
||||||
|
"markup.heading.4" = { fg = "green", modifiers = ["bold"] }
|
||||||
|
"markup.heading.5" = { fg = "magenta", modifiers = ["bold"] }
|
||||||
|
"markup.heading.6" = { fg = "yellow", modifiers = ["bold"] }
|
||||||
|
|
||||||
|
"markup.list" = { fg = "blue" }
|
||||||
|
"markup.list.checked" = { fg = "green", modifiers = ["crossed_out"] }
|
||||||
|
"markup.list.unchecked" = { fg = "red" }
|
||||||
|
|
||||||
|
"markup.bold" = { fg = "fg0", modifiers = ["bold"] }
|
||||||
|
"markup.italic" = { fg = "fg0", modifiers = ["italic"] }
|
||||||
|
"markup.strikethrough" = { fg = "fg3", modifiers = ["crossed_out"] }
|
||||||
|
|
||||||
|
"markup.link" = { fg = "cyan", modifiers = ["italic"] }
|
||||||
|
"markup.link.url" = { fg = "cyan", modifiers = ["underlined"] }
|
||||||
|
"markup.link.text" = { fg = "bright-cyan" }
|
||||||
|
"markup.link.label" = { fg = "bright-cyan" }
|
||||||
|
|
||||||
|
"markup.quote" = { fg = "bright-cyan", modifiers = ["italic"] }
|
||||||
|
|
||||||
|
"markup.raw" = { fg = "orange" }
|
||||||
|
"markup.raw.block" = { fg = "fg1" }
|
||||||
|
"markup.raw.inline" = { fg = "orange" }
|
||||||
|
|
||||||
|
# ── Diff ─────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
"diff.plus" = { fg = "green" }
|
||||||
|
"diff.minus" = { fg = "red" }
|
||||||
|
"diff.delta" = { fg = "blue" }
|
||||||
|
"diff.delta.moved" = { fg = "magenta" }
|
||||||
|
"diff.delta.conflict" = { fg = "yellow" }
|
||||||
|
|
||||||
|
# ── Palette ──────────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
[palette]
|
||||||
|
black = "#000000"
|
||||||
|
bg1 = "#0c0c0c"
|
||||||
|
bg2 = "#161616"
|
||||||
|
bg3 = "#262626"
|
||||||
|
bg4 = "#393939"
|
||||||
|
sel = "#454545"
|
||||||
|
|
||||||
|
fg0 = "#ffffff"
|
||||||
|
fg1 = "#c1c9d2"
|
||||||
|
fg2 = "#8b95a0"
|
||||||
|
fg3 = "#697386"
|
||||||
|
fg4 = "#525252"
|
||||||
|
|
||||||
|
red = "#ed5f74"
|
||||||
|
green = "#1ea672"
|
||||||
|
yellow = "#d97917"
|
||||||
|
blue = "#688ef1"
|
||||||
|
magenta = "#c96ed0"
|
||||||
|
cyan = "#3a97d4"
|
||||||
|
|
||||||
|
orange = "#e87b35"
|
||||||
|
pink = "#ff7eb6"
|
||||||
|
teal = "#08bdba"
|
||||||
|
|
||||||
|
bright-red = "#fbb5b2"
|
||||||
|
bright-green = "#85d996"
|
||||||
|
bright-yellow = "#efc078"
|
||||||
|
bright-blue = "#9fcdff"
|
||||||
|
bright-magenta = "#f0b4e4"
|
||||||
|
bright-cyan = "#7fd3ed"
|
||||||
|
|
||||||
|
dim-red = "#3d1a22"
|
||||||
|
dim-green = "#0d3326"
|
||||||
|
dim-yellow = "#332200"
|
||||||
|
dim-blue = "#1a2744"
|
||||||
|
dim-cyan = "#0f2d44"
|
||||||
@@ -16,7 +16,7 @@ gui:
|
|||||||
inactiveBorderColor:
|
inactiveBorderColor:
|
||||||
- "#697386"
|
- "#697386"
|
||||||
selectedLineBgColor:
|
selectedLineBgColor:
|
||||||
- "#3e4043"
|
- "#393939"
|
||||||
optionsTextColor:
|
optionsTextColor:
|
||||||
- "#3a97d4"
|
- "#3a97d4"
|
||||||
unstagedChangesColor:
|
unstagedChangesColor:
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
[General]
|
||||||
|
# Verbose logging (logs debug messages - lotsa spam)
|
||||||
|
verbose_logging = False
|
||||||
|
|
||||||
|
|
||||||
|
[Startup]
|
||||||
|
# Set the sync effects flag to true so any assignment of effects will work across devices
|
||||||
|
sync_effects_enabled = True
|
||||||
|
|
||||||
|
# Turn off the devices when the systems screensaver kicks in
|
||||||
|
devices_off_on_screensaver = True
|
||||||
|
|
||||||
|
# Battery notifier
|
||||||
|
battery_notifier = True
|
||||||
|
|
||||||
|
# Battery notification frequency [s] (0 to disable)
|
||||||
|
battery_notifier_freq = 600
|
||||||
|
|
||||||
|
# Battery notifications appear when device reaches this percentage
|
||||||
|
battery_notifier_percent = 20
|
||||||
|
|
||||||
|
# Apply effects saved to disk when daemon starts
|
||||||
|
restore_persistence = False
|
||||||
|
|
||||||
|
# Enable this if you dual boot with Windows and the effect isn't restored. Requires restore_persistence = True
|
||||||
|
persistence_dual_boot_quirk = False
|
||||||
+127
-162
@@ -1,183 +1,147 @@
|
|||||||
|
// Tmux-style: Ctrl+a prefix, locked mode default
|
||||||
|
// Zero Alt-key captures — no clashes with helix
|
||||||
keybinds clear-defaults=true {
|
keybinds clear-defaults=true {
|
||||||
locked {
|
locked {
|
||||||
bind "Ctrl space" { SwitchToMode "normal"; }
|
bind "Ctrl a" { SwitchToMode "tmux"; }
|
||||||
|
bind "Alt 1" { GoToTab 1; }
|
||||||
|
bind "Alt 2" { GoToTab 2; }
|
||||||
|
bind "Alt 3" { GoToTab 3; }
|
||||||
|
bind "Alt 4" { GoToTab 4; }
|
||||||
|
bind "Alt 5" { GoToTab 5; }
|
||||||
|
bind "Alt 6" { GoToTab 6; }
|
||||||
|
bind "Alt 7" { GoToTab 7; }
|
||||||
|
bind "Alt 8" { GoToTab 8; }
|
||||||
|
bind "Alt 9" { GoToTab 9; }
|
||||||
}
|
}
|
||||||
pane {
|
|
||||||
bind "left" { NewPane "left"; SwitchToMode "normal"; }
|
tmux {
|
||||||
bind "down" { NewPane "down"; SwitchToMode "normal"; }
|
bind "Ctrl a" { Write 1; SwitchToMode "locked"; }
|
||||||
bind "up" { NewPane "up"; SwitchToMode "normal"; }
|
bind "esc" { SwitchToMode "locked"; }
|
||||||
bind "right" { NewPane "right"; SwitchToMode "normal"; }
|
|
||||||
bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "normal"; }
|
bind "h" "left" { MoveFocus "left"; }
|
||||||
bind "f" { ToggleFocusFullscreen; SwitchToMode "normal"; }
|
bind "j" "down" { MoveFocus "down"; }
|
||||||
bind "Alt p" { SwitchToMode "normal"; }
|
bind "k" "up" { MoveFocus "up"; }
|
||||||
bind "r" { SwitchToMode "renamepane"; PaneNameInput 0; }
|
bind "l" "right" { MoveFocus "right"; }
|
||||||
bind "w" { ToggleFloatingPanes; SwitchToMode "normal"; }
|
|
||||||
bind "z" { TogglePaneFrames; SwitchToMode "normal"; }
|
bind "n" { GoToNextTab; SwitchToMode "locked"; }
|
||||||
}
|
bind "p" { GoToPreviousTab; SwitchToMode "locked"; }
|
||||||
tab {
|
bind "Tab" { ToggleTab; SwitchToMode "locked"; }
|
||||||
bind "left" { GoToPreviousTab; }
|
bind "1" { GoToTab 1; SwitchToMode "locked"; }
|
||||||
bind "down" { GoToNextTab; }
|
bind "2" { GoToTab 2; SwitchToMode "locked"; }
|
||||||
bind "up" { GoToPreviousTab; }
|
bind "3" { GoToTab 3; SwitchToMode "locked"; }
|
||||||
bind "right" { GoToNextTab; }
|
bind "4" { GoToTab 4; SwitchToMode "locked"; }
|
||||||
bind "b" { BreakPane; SwitchToMode "normal"; }
|
bind "5" { GoToTab 5; SwitchToMode "locked"; }
|
||||||
bind "n" { NewTab; SwitchToMode "normal"; }
|
bind "6" { GoToTab 6; SwitchToMode "locked"; }
|
||||||
bind "r" { SwitchToMode "renametab"; TabNameInput 0; }
|
bind "7" { GoToTab 7; SwitchToMode "locked"; }
|
||||||
bind "s" { ToggleActiveSyncTab; SwitchToMode "normal"; }
|
bind "8" { GoToTab 8; SwitchToMode "locked"; }
|
||||||
bind "Alt t" { SwitchToMode "normal"; }
|
bind "9" { GoToTab 9; SwitchToMode "locked"; }
|
||||||
bind "x" { CloseTab; SwitchToMode "normal"; }
|
|
||||||
bind "tab" { ToggleTab; }
|
bind "|" { NewPane "right"; SwitchToMode "locked"; }
|
||||||
}
|
bind "-" { NewPane "down"; SwitchToMode "locked"; }
|
||||||
resize {
|
|
||||||
bind "left" { Resize "Increase left"; }
|
bind "x" { CloseFocus; SwitchToMode "locked"; }
|
||||||
bind "down" { Resize "Increase down"; }
|
bind "z" { ToggleFocusFullscreen; SwitchToMode "locked"; }
|
||||||
bind "up" { Resize "Increase up"; }
|
bind "f" { ToggleFloatingPanes; SwitchToMode "locked"; }
|
||||||
bind "right" { Resize "Increase right"; }
|
bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "locked"; }
|
||||||
bind "+" { Resize "Increase"; }
|
bind "b" { BreakPane; SwitchToMode "locked"; }
|
||||||
bind "-" { Resize "Decrease"; }
|
|
||||||
bind "=" { Resize "Increase"; }
|
bind "c" { NewTab; SwitchToMode "locked"; }
|
||||||
bind "Alt r" { SwitchToMode "normal"; }
|
bind "," { SwitchToMode "renametab"; TabNameInput 0; }
|
||||||
}
|
bind "X" { CloseTab; SwitchToMode "locked"; }
|
||||||
move {
|
|
||||||
bind "left" { MovePane "left"; }
|
bind "space" { NextSwapLayout; }
|
||||||
bind "down" { MovePane "down"; }
|
|
||||||
bind "up" { MovePane "up"; }
|
// Spotlight-style fuzzy tab/session picker
|
||||||
bind "right" { MovePane "right"; }
|
|
||||||
bind "Alt m" { SwitchToMode "normal"; }
|
|
||||||
}
|
|
||||||
scroll {
|
|
||||||
bind "e" { EditScrollback; SwitchToMode "normal"; }
|
|
||||||
bind "s" { SwitchToMode "entersearch"; SearchInput 0; }
|
|
||||||
}
|
|
||||||
search {
|
|
||||||
bind "left" { PageScrollUp; }
|
|
||||||
bind "right" { PageScrollDown; }
|
|
||||||
bind "c" { SearchToggleOption "CaseSensitivity"; }
|
|
||||||
bind "Alt c" { ScrollToBottom; SwitchToMode "normal"; }
|
|
||||||
bind "n" { Search "down"; }
|
|
||||||
bind "o" { SearchToggleOption "WholeWord"; }
|
|
||||||
bind "p" { Search "up"; }
|
|
||||||
bind "w" { SearchToggleOption "Wrap"; }
|
|
||||||
}
|
|
||||||
session {
|
|
||||||
bind "Alt o" { SwitchToMode "normal"; }
|
|
||||||
bind "w" {
|
bind "w" {
|
||||||
LaunchOrFocusPlugin "session-manager" {
|
LaunchOrFocusPlugin "session-manager" {
|
||||||
floating true
|
floating true
|
||||||
move_to_focused_tab true
|
move_to_focused_tab true
|
||||||
}
|
};
|
||||||
SwitchToMode "normal"
|
SwitchToMode "locked";
|
||||||
}
|
}
|
||||||
}
|
|
||||||
shared_except "locked" "tmux" {
|
bind "o" {
|
||||||
bind "Ctrl a" { SwitchToMode "tmux"; }
|
|
||||||
}
|
|
||||||
shared_except "locked" {
|
|
||||||
bind "Alt left" { MoveFocus "left"; }
|
|
||||||
bind "Alt down" { MoveFocus "down"; }
|
|
||||||
bind "Alt up" { MoveFocus "up"; }
|
|
||||||
bind "Alt right" { MoveFocus "right"; }
|
|
||||||
bind "Ctrl space" { SwitchToMode "locked"; }
|
|
||||||
bind "Alt +" { Resize "Increase"; }
|
|
||||||
bind "Alt ," { GoToPreviousTab; }
|
|
||||||
bind "Alt -" { Resize "Decrease"; }
|
|
||||||
bind "Alt ." { GoToNextTab; }
|
|
||||||
bind "Alt 1" { GoToTab 1; SwitchToMode "normal"; }
|
|
||||||
bind "Alt 2" { GoToTab 2; SwitchToMode "normal"; }
|
|
||||||
bind "Alt 3" { GoToTab 3; SwitchToMode "normal"; }
|
|
||||||
bind "Alt 4" { GoToTab 4; SwitchToMode "normal"; }
|
|
||||||
bind "Alt 5" { GoToTab 5; SwitchToMode "normal"; }
|
|
||||||
bind "Alt 6" { GoToTab 6; SwitchToMode "normal"; }
|
|
||||||
bind "Alt 7" { GoToTab 7; SwitchToMode "normal"; }
|
|
||||||
bind "Alt 8" { GoToTab 8; SwitchToMode "normal"; }
|
|
||||||
bind "Alt 9" { GoToTab 9; SwitchToMode "normal"; }
|
|
||||||
bind "Alt <" { GoToPreviousTab; }
|
|
||||||
bind "Alt =" { Resize "Increase"; }
|
|
||||||
bind "Alt >" { GoToNextTab; }
|
|
||||||
bind "Alt [" { PreviousSwapLayout; }
|
|
||||||
bind "Alt ]" { NextSwapLayout; }
|
|
||||||
bind "Alt n" { NewPane; }
|
|
||||||
bind "Alt q" { Quit; }
|
|
||||||
bind "Alt f" {
|
|
||||||
LaunchPlugin "filepicker" {
|
LaunchPlugin "filepicker" {
|
||||||
floating true
|
floating true
|
||||||
close_on_selection true
|
close_on_selection true
|
||||||
};
|
};
|
||||||
|
SwitchToMode "locked";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bind "s" { SwitchToMode "scroll"; }
|
||||||
|
bind "r" { SwitchToMode "resize"; }
|
||||||
|
bind "m" { SwitchToMode "move"; }
|
||||||
|
|
||||||
|
bind "d" { Detach; }
|
||||||
|
bind "q" { Quit; }
|
||||||
}
|
}
|
||||||
shared_except "locked" "move" {
|
|
||||||
bind "Alt m" { SwitchToMode "move"; }
|
resize {
|
||||||
|
bind "h" "left" { Resize "Increase left"; }
|
||||||
|
bind "j" "down" { Resize "Increase down"; }
|
||||||
|
bind "k" "up" { Resize "Increase up"; }
|
||||||
|
bind "l" "right" { Resize "Increase right"; }
|
||||||
|
bind "+" "=" { Resize "Increase"; }
|
||||||
|
bind "-" { Resize "Decrease"; }
|
||||||
|
bind "Ctrl a" { SwitchToMode "tmux"; }
|
||||||
|
bind "esc" "enter" { SwitchToMode "locked"; }
|
||||||
}
|
}
|
||||||
shared_except "locked" "session" {
|
|
||||||
bind "Alt o" { SwitchToMode "session"; }
|
move {
|
||||||
|
bind "h" "left" { MovePane "left"; }
|
||||||
|
bind "j" "down" { MovePane "down"; }
|
||||||
|
bind "k" "up" { MovePane "up"; }
|
||||||
|
bind "l" "right" { MovePane "right"; }
|
||||||
|
bind "Ctrl a" { SwitchToMode "tmux"; }
|
||||||
|
bind "esc" "enter" { SwitchToMode "locked"; }
|
||||||
}
|
}
|
||||||
shared_except "locked" "scroll" "search" {
|
|
||||||
bind "Alt s" { SwitchToMode "scroll"; }
|
scroll {
|
||||||
|
bind "j" "down" { ScrollDown; }
|
||||||
|
bind "k" "up" { ScrollUp; }
|
||||||
|
bind "d" "PageDown" { PageScrollDown; }
|
||||||
|
bind "u" "PageUp" { PageScrollUp; }
|
||||||
|
bind "e" { EditScrollback; SwitchToMode "locked"; }
|
||||||
|
bind "/" { SwitchToMode "entersearch"; SearchInput 0; }
|
||||||
|
bind "Ctrl a" { SwitchToMode "tmux"; }
|
||||||
|
bind "esc" { SwitchToMode "locked"; }
|
||||||
}
|
}
|
||||||
shared_except "locked" "tab" {
|
|
||||||
bind "Alt t" { SwitchToMode "tab"; }
|
search {
|
||||||
}
|
bind "j" "down" { ScrollDown; }
|
||||||
shared_except "locked" "pane" {
|
bind "k" "up" { ScrollUp; }
|
||||||
bind "Alt p" { SwitchToMode "pane"; }
|
bind "d" "PageDown" { PageScrollDown; }
|
||||||
}
|
bind "u" "PageUp" { PageScrollUp; }
|
||||||
shared_except "locked" "resize" {
|
bind "n" { Search "down"; }
|
||||||
bind "Alt r" { SwitchToMode "resize"; }
|
bind "N" { Search "up"; }
|
||||||
}
|
bind "c" { SearchToggleOption "CaseSensitivity"; }
|
||||||
shared_except "normal" "locked" "entersearch" {
|
bind "w" { SearchToggleOption "Wrap"; }
|
||||||
bind "enter" { SwitchToMode "normal"; }
|
bind "o" { SearchToggleOption "WholeWord"; }
|
||||||
}
|
bind "Ctrl a" { SwitchToMode "tmux"; }
|
||||||
shared_except "normal" "locked" "entersearch" "renametab" "renamepane" {
|
bind "esc" { ScrollToBottom; SwitchToMode "locked"; }
|
||||||
bind "esc" { SwitchToMode "normal"; }
|
|
||||||
}
|
|
||||||
shared_among "pane" "tmux" {
|
|
||||||
bind "x" { CloseFocus; SwitchToMode "normal"; }
|
|
||||||
}
|
|
||||||
shared_among "scroll" "search" {
|
|
||||||
bind "PageDown" { PageScrollDown; }
|
|
||||||
bind "PageUp" { PageScrollUp; }
|
|
||||||
bind "down" { ScrollDown; }
|
|
||||||
bind "up" { ScrollUp; }
|
|
||||||
bind "Alt s" { SwitchToMode "normal"; }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
entersearch {
|
entersearch {
|
||||||
bind "Alt c" { SwitchToMode "scroll"; }
|
|
||||||
bind "esc" { SwitchToMode "scroll"; }
|
bind "esc" { SwitchToMode "scroll"; }
|
||||||
bind "enter" { SwitchToMode "search"; }
|
bind "enter" { SwitchToMode "search"; }
|
||||||
}
|
}
|
||||||
|
|
||||||
renametab {
|
renametab {
|
||||||
bind "esc" { UndoRenameTab; SwitchToMode "tab"; }
|
bind "esc" { UndoRenameTab; SwitchToMode "locked"; }
|
||||||
}
|
bind "enter" { SwitchToMode "locked"; }
|
||||||
shared_among "renametab" "renamepane" {
|
|
||||||
bind "Alt c" { SwitchToMode "normal"; }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
renamepane {
|
renamepane {
|
||||||
bind "esc" { UndoRenamePane; SwitchToMode "pane"; }
|
bind "esc" { UndoRenamePane; SwitchToMode "locked"; }
|
||||||
}
|
bind "enter" { SwitchToMode "locked"; }
|
||||||
shared_among "session" "tmux" {
|
|
||||||
bind "d" { Detach; }
|
|
||||||
}
|
|
||||||
tmux {
|
|
||||||
bind "left" { MoveFocus "left"; SwitchToMode "normal"; }
|
|
||||||
bind "down" { MoveFocus "down"; SwitchToMode "normal"; }
|
|
||||||
bind "up" { MoveFocus "up"; SwitchToMode "normal"; }
|
|
||||||
bind "right" { MoveFocus "right"; SwitchToMode "normal"; }
|
|
||||||
bind "space" { NextSwapLayout; }
|
|
||||||
bind "," { SwitchToMode "renametab"; }
|
|
||||||
bind "-" { NewPane "down"; SwitchToMode "normal"; }
|
|
||||||
bind "[" { SwitchToMode "scroll"; }
|
|
||||||
bind "Ctrl a" { Write 2; SwitchToMode "normal"; }
|
|
||||||
bind "c" { NewTab; SwitchToMode "normal"; }
|
|
||||||
bind "n" { GoToNextTab; SwitchToMode "normal"; }
|
|
||||||
bind "p" { GoToPreviousTab; SwitchToMode "normal"; }
|
|
||||||
bind "z" { ToggleFocusFullscreen; SwitchToMode "normal"; }
|
|
||||||
bind "|" { NewPane "right"; SwitchToMode "normal"; }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
themes {
|
themes {
|
||||||
vim_dark_high_contrast {
|
space_carbon {
|
||||||
text_unselected {
|
text_unselected {
|
||||||
base 193 201 210
|
base 193 201 210
|
||||||
background 62 64 67
|
background 57 57 57
|
||||||
emphasis_0 237 95 116
|
emphasis_0 237 95 116
|
||||||
emphasis_1 58 151 212
|
emphasis_1 58 151 212
|
||||||
emphasis_2 30 166 114
|
emphasis_2 30 166 114
|
||||||
@@ -185,14 +149,14 @@ themes {
|
|||||||
}
|
}
|
||||||
text_selected {
|
text_selected {
|
||||||
base 255 255 255
|
base 255 255 255
|
||||||
background 62 64 67
|
background 57 57 57
|
||||||
emphasis_0 237 95 116
|
emphasis_0 237 95 116
|
||||||
emphasis_1 58 151 212
|
emphasis_1 58 151 212
|
||||||
emphasis_2 30 166 114
|
emphasis_2 30 166 114
|
||||||
emphasis_3 201 110 208
|
emphasis_3 201 110 208
|
||||||
}
|
}
|
||||||
ribbon_selected {
|
ribbon_selected {
|
||||||
base 17 17 17
|
base 12 12 12
|
||||||
background 30 166 114
|
background 30 166 114
|
||||||
emphasis_0 237 95 116
|
emphasis_0 237 95 116
|
||||||
emphasis_1 217 121 23
|
emphasis_1 217 121 23
|
||||||
@@ -200,7 +164,7 @@ themes {
|
|||||||
emphasis_3 104 142 241
|
emphasis_3 104 142 241
|
||||||
}
|
}
|
||||||
ribbon_unselected {
|
ribbon_unselected {
|
||||||
base 17 17 17
|
base 12 12 12
|
||||||
background 227 232 238
|
background 227 232 238
|
||||||
emphasis_0 237 95 116
|
emphasis_0 237 95 116
|
||||||
emphasis_1 193 201 210
|
emphasis_1 193 201 210
|
||||||
@@ -217,7 +181,7 @@ themes {
|
|||||||
}
|
}
|
||||||
table_cell_selected {
|
table_cell_selected {
|
||||||
base 255 255 255
|
base 255 255 255
|
||||||
background 62 64 67
|
background 57 57 57
|
||||||
emphasis_0 237 95 116
|
emphasis_0 237 95 116
|
||||||
emphasis_1 58 151 212
|
emphasis_1 58 151 212
|
||||||
emphasis_2 30 166 114
|
emphasis_2 30 166 114
|
||||||
@@ -225,7 +189,7 @@ themes {
|
|||||||
}
|
}
|
||||||
table_cell_unselected {
|
table_cell_unselected {
|
||||||
base 193 201 210
|
base 193 201 210
|
||||||
background 62 64 67
|
background 57 57 57
|
||||||
emphasis_0 237 95 116
|
emphasis_0 237 95 116
|
||||||
emphasis_1 58 151 212
|
emphasis_1 58 151 212
|
||||||
emphasis_2 30 166 114
|
emphasis_2 30 166 114
|
||||||
@@ -233,7 +197,7 @@ themes {
|
|||||||
}
|
}
|
||||||
list_selected {
|
list_selected {
|
||||||
base 255 255 255
|
base 255 255 255
|
||||||
background 62 64 67
|
background 57 57 57
|
||||||
emphasis_0 237 95 116
|
emphasis_0 237 95 116
|
||||||
emphasis_1 58 151 212
|
emphasis_1 58 151 212
|
||||||
emphasis_2 30 166 114
|
emphasis_2 30 166 114
|
||||||
@@ -241,7 +205,7 @@ themes {
|
|||||||
}
|
}
|
||||||
list_unselected {
|
list_unselected {
|
||||||
base 193 201 210
|
base 193 201 210
|
||||||
background 62 64 67
|
background 57 57 57
|
||||||
emphasis_0 237 95 116
|
emphasis_0 237 95 116
|
||||||
emphasis_1 58 151 212
|
emphasis_1 58 151 212
|
||||||
emphasis_2 30 166 114
|
emphasis_2 30 166 114
|
||||||
@@ -267,7 +231,7 @@ themes {
|
|||||||
base 30 166 114
|
base 30 166 114
|
||||||
background 0
|
background 0
|
||||||
emphasis_0 58 151 212
|
emphasis_0 58 151 212
|
||||||
emphasis_1 62 64 67
|
emphasis_1 57 57 57
|
||||||
emphasis_2 201 110 208
|
emphasis_2 201 110 208
|
||||||
emphasis_3 104 142 241
|
emphasis_3 104 142 241
|
||||||
}
|
}
|
||||||
@@ -298,9 +262,7 @@ plugins {
|
|||||||
about location="zellij:about"
|
about location="zellij:about"
|
||||||
compact-bar location="zellij:compact-bar"
|
compact-bar location="zellij:compact-bar"
|
||||||
configuration location="zellij:configuration"
|
configuration location="zellij:configuration"
|
||||||
filepicker location="zellij:strider" {
|
filepicker location="zellij:strider"
|
||||||
cwd "/"
|
|
||||||
}
|
|
||||||
plugin-manager location="zellij:plugin-manager"
|
plugin-manager location="zellij:plugin-manager"
|
||||||
session-manager location="zellij:session-manager"
|
session-manager location="zellij:session-manager"
|
||||||
status-bar location="zellij:status-bar"
|
status-bar location="zellij:status-bar"
|
||||||
@@ -311,8 +273,9 @@ plugins {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
simplified_ui false
|
default_mode "locked"
|
||||||
theme "vim_dark_high_contrast"
|
pane_frames false
|
||||||
|
theme "space_carbon"
|
||||||
default_layout "terminal"
|
default_layout "terminal"
|
||||||
scroll_buffer_size 100000
|
scroll_buffer_size 100000
|
||||||
copy_on_select true
|
copy_on_select true
|
||||||
@@ -323,6 +286,8 @@ scrollback_lines_to_serialize 100000
|
|||||||
disable_session_metadata false
|
disable_session_metadata false
|
||||||
show_startup_tips false
|
show_startup_tips false
|
||||||
|
|
||||||
|
web_server_port 8082
|
||||||
|
|
||||||
web_client {
|
web_client {
|
||||||
cursor_blink false
|
cursor_blink false
|
||||||
cursor_style "block"
|
cursor_style "block"
|
||||||
|
|||||||
@@ -1,19 +0,0 @@
|
|||||||
layout {
|
|
||||||
pane {
|
|
||||||
borderless true
|
|
||||||
size 1
|
|
||||||
plugin location="zellij:compact-bar"
|
|
||||||
}
|
|
||||||
pane split_direction="horizontal" {
|
|
||||||
pane {
|
|
||||||
command "hx"
|
|
||||||
args "."
|
|
||||||
focus true
|
|
||||||
size "75%"
|
|
||||||
borderless true
|
|
||||||
}
|
|
||||||
pane {
|
|
||||||
size "25%"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
layout {
|
|
||||||
pane {
|
|
||||||
borderless true
|
|
||||||
size 1
|
|
||||||
plugin location="zellij:compact-bar"
|
|
||||||
}
|
|
||||||
pane split_direction="vertical" {
|
|
||||||
pane {
|
|
||||||
command "hx-pick"
|
|
||||||
args "."
|
|
||||||
focus true
|
|
||||||
size "60%"
|
|
||||||
borderless true
|
|
||||||
}
|
|
||||||
pane stacked=true {
|
|
||||||
pane {
|
|
||||||
name "LazyGit"
|
|
||||||
command "lazygit"
|
|
||||||
}
|
|
||||||
pane {
|
|
||||||
name "Terminal"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
layout {
|
|
||||||
pane {
|
|
||||||
borderless true
|
|
||||||
size 1
|
|
||||||
plugin location="zellij:compact-bar"
|
|
||||||
}
|
|
||||||
pane split_direction="vertical" {
|
|
||||||
pane {
|
|
||||||
edit "."
|
|
||||||
focus true
|
|
||||||
size "60%"
|
|
||||||
borderless true
|
|
||||||
}
|
|
||||||
pane stacked=true {
|
|
||||||
pane {
|
|
||||||
name "LazyGit"
|
|
||||||
command "lazygit"
|
|
||||||
}
|
|
||||||
pane {
|
|
||||||
name "Terminal"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
layout {
|
||||||
|
pane split_direction="vertical" {
|
||||||
|
pane {
|
||||||
|
command "hx"
|
||||||
|
args "."
|
||||||
|
focus true
|
||||||
|
size "60%"
|
||||||
|
name "Editor"
|
||||||
|
}
|
||||||
|
pane stacked=true {
|
||||||
|
pane {
|
||||||
|
name "Terminal"
|
||||||
|
}
|
||||||
|
pane {
|
||||||
|
name "LazyGit"
|
||||||
|
command "lazygit"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pane size=1 borderless=true {
|
||||||
|
plugin location="zellij:compact-bar"
|
||||||
|
}
|
||||||
|
|
||||||
|
swap_tiled_layout name="stacked" {
|
||||||
|
tab {
|
||||||
|
pane stacked=true {
|
||||||
|
pane {
|
||||||
|
command "hx"
|
||||||
|
args "."
|
||||||
|
focus true
|
||||||
|
name "Editor"
|
||||||
|
}
|
||||||
|
pane {
|
||||||
|
name "Terminal"
|
||||||
|
}
|
||||||
|
pane {
|
||||||
|
name "LazyGit"
|
||||||
|
command "lazygit"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pane size=1 borderless=true {
|
||||||
|
plugin location="zellij:compact-bar"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,12 +1,8 @@
|
|||||||
layout {
|
layout {
|
||||||
pane {
|
|
||||||
borderless true
|
|
||||||
size 1
|
|
||||||
plugin location="zellij:compact-bar"
|
|
||||||
}
|
|
||||||
pane split_direction="vertical" {
|
|
||||||
pane {
|
pane {
|
||||||
name "Terminal"
|
name "Terminal"
|
||||||
|
}
|
||||||
|
pane size=1 borderless=true {
|
||||||
|
plugin location="zellij:compact-bar"
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,26 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
# hx-pick: loop between file picker and helix
|
|
||||||
# Select a file -> edit in helix -> back to picker on exit
|
|
||||||
# Press Esc/Ctrl-C in the picker to drop to a normal shell
|
|
||||||
|
|
||||||
dir="${1:-.}"
|
|
||||||
cd "$dir" || exit 1
|
|
||||||
|
|
||||||
while true; do
|
|
||||||
file=$(find . -type f \
|
|
||||||
-not -path './.git/*' \
|
|
||||||
-not -path '*/node_modules/*' \
|
|
||||||
-not -path '*/vendor/*' \
|
|
||||||
-not -path '*/__pycache__/*' \
|
|
||||||
-not -path '*/target/*' \
|
|
||||||
-not -path '*/.build/*' \
|
|
||||||
| sort \
|
|
||||||
| fzf --height=100% --layout=reverse --border=rounded \
|
|
||||||
--prompt="Edit > " \
|
|
||||||
--header="Esc to exit to shell" \
|
|
||||||
--preview='head -100 {}' \
|
|
||||||
--preview-window=right:50%:wrap)
|
|
||||||
|
|
||||||
[ -z "$file" ] && break
|
|
||||||
hx "$file"
|
|
||||||
done
|
|
||||||
Executable
+80
@@ -0,0 +1,80 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
# razer-setup: configure Razer mouse with Space Carbon theme colors
|
||||||
|
# Finds the first razermouse in sysfs and applies DPI, poll rate, and lighting
|
||||||
|
|
||||||
|
find_mouse() {
|
||||||
|
for dev in /sys/bus/hid/drivers/razermouse/0003:*; do
|
||||||
|
[ -f "$dev/device_type" ] && echo "$dev" && return
|
||||||
|
done
|
||||||
|
echo "No Razer mouse found" >&2; exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
DEV=$(find_mouse)
|
||||||
|
NAME=$(cat "$DEV/device_type")
|
||||||
|
echo "Found: $NAME"
|
||||||
|
|
||||||
|
# DPI stages: 400, 800, 1200, 1800 (active), 3200
|
||||||
|
# Format: active_stage(1-based) then (X_hi X_lo Y_hi Y_lo) per stage
|
||||||
|
set_dpi() {
|
||||||
|
local active=${1:-4}
|
||||||
|
printf '\x04' > "$DEV/dpi_stages" # stage count byte placeholder
|
||||||
|
# Actually the dpi_stages sysfs takes binary:
|
||||||
|
# byte 0 = active stage (1-indexed)
|
||||||
|
# then 4 bytes per stage: X_hi, X_lo, Y_hi, Y_lo
|
||||||
|
printf '\x04\x01\x90\x01\x90\x03\x20\x03\x20\x04\xb0\x04\xb0\x07\x08\x07\x08\x0c\x80\x0c\x80' > "$DEV/dpi_stages"
|
||||||
|
echo " DPI stages: 400, 800, 1200, 1800*, 3200"
|
||||||
|
}
|
||||||
|
|
||||||
|
set_poll_rate() {
|
||||||
|
echo "$1" > "$DEV/poll_rate"
|
||||||
|
echo " Poll rate: ${1}Hz"
|
||||||
|
}
|
||||||
|
|
||||||
|
set_color_static() {
|
||||||
|
# Space Carbon cyan: #3a97d4 = RGB(58, 151, 212)
|
||||||
|
printf '\x3a\x97\xd4' > "$DEV/matrix_effect_static"
|
||||||
|
echo " Lighting: static cyan (#3a97d4)"
|
||||||
|
}
|
||||||
|
|
||||||
|
set_brightness() {
|
||||||
|
printf "$(printf '\\x%02x' "$1")" > "$DEV/matrix_brightness"
|
||||||
|
echo " Brightness: $1/255"
|
||||||
|
}
|
||||||
|
|
||||||
|
case "${1:-apply}" in
|
||||||
|
apply)
|
||||||
|
set_dpi
|
||||||
|
set_poll_rate 500
|
||||||
|
set_color_static
|
||||||
|
set_brightness 128
|
||||||
|
echo "Done."
|
||||||
|
;;
|
||||||
|
spectrum)
|
||||||
|
printf '' > "$DEV/matrix_effect_spectrum"
|
||||||
|
echo " Lighting: spectrum"
|
||||||
|
;;
|
||||||
|
off)
|
||||||
|
printf '' > "$DEV/matrix_effect_none"
|
||||||
|
echo " Lighting: off"
|
||||||
|
;;
|
||||||
|
color)
|
||||||
|
# Usage: razer-setup color RRGGBB
|
||||||
|
hex="${2:?Usage: razer-setup color RRGGBB}"
|
||||||
|
r=$((16#${hex:0:2}))
|
||||||
|
g=$((16#${hex:2:2}))
|
||||||
|
b=$((16#${hex:4:2}))
|
||||||
|
printf "\\x$(printf '%02x' $r)\\x$(printf '%02x' $g)\\x$(printf '%02x' $b)" > "$DEV/matrix_effect_static"
|
||||||
|
echo " Lighting: static #$hex"
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
echo " Type: $(cat "$DEV/device_type")"
|
||||||
|
[ -f "$DEV/poll_rate" ] && echo " Poll rate: $(cat "$DEV/poll_rate")Hz"
|
||||||
|
[ -f "$DEV/charge_level" ] && echo " Battery: $(cat "$DEV/charge_level")%"
|
||||||
|
[ -f "$DEV/charge_status" ] && echo " Charging: $(cat "$DEV/charge_status")"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: razer-setup [apply|spectrum|off|color RRGGBB|status]"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
@@ -13,7 +13,18 @@ export EDITOR='hx'
|
|||||||
export OC_EDITOR="hx"
|
export OC_EDITOR="hx"
|
||||||
export SSH_AUTH_SOCK="/run/user/$(id -u)/keyring/ssh"
|
export SSH_AUTH_SOCK="/run/user/$(id -u)/keyring/ssh"
|
||||||
export MANPATH="/usr/local/man:$MANPATH"
|
export MANPATH="/usr/local/man:$MANPATH"
|
||||||
export FZF_DEFAULT_OPTS='--height 25% --layout=reverse --border'
|
# fzf: use fd for file/dir finding, bat for previews, theme-matched colors
|
||||||
|
export FZF_DEFAULT_COMMAND='fd --type f --hidden --follow --exclude .git'
|
||||||
|
export FZF_DEFAULT_OPTS=" \
|
||||||
|
--height=40% --layout=reverse --border=rounded --cycle --scroll-off=4 \
|
||||||
|
--color=bg+:#393939,fg+:#ffffff,hl:#3a97d4,hl+:#3a97d4 \
|
||||||
|
--color=info:#1ea672,prompt:#1ea672,pointer:#ed5f74,marker:#c96ed0 \
|
||||||
|
--color=spinner:#d97917,header:#3a97d4,border:#393939 \
|
||||||
|
--bind='ctrl-d:half-page-down,ctrl-u:half-page-up'"
|
||||||
|
export FZF_CTRL_T_COMMAND='fd --type f --hidden --follow --exclude .git'
|
||||||
|
export FZF_CTRL_T_OPTS="--preview 'bat --style=numbers --color=always --line-range :200 {}' --preview-window=right:50%:wrap"
|
||||||
|
export FZF_ALT_C_COMMAND='fd --type d --hidden --follow --exclude .git'
|
||||||
|
export FZF_ALT_C_OPTS="--preview 'ls --color=always {}'"
|
||||||
|
|
||||||
# Claude Code
|
# Claude Code
|
||||||
export CLAUDE_CODE_USE_VERTEX=1
|
export CLAUDE_CODE_USE_VERTEX=1
|
||||||
@@ -64,6 +75,10 @@ zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"
|
|||||||
zstyle ':completion:*' menu no
|
zstyle ':completion:*' menu no
|
||||||
zstyle ':fzf-tab:complete:cd:*' fzf-preview 'ls --color $realpath'
|
zstyle ':fzf-tab:complete:cd:*' fzf-preview 'ls --color $realpath'
|
||||||
zstyle ':fzf-tab:complete:__zoxide_z:*' fzf-preview 'ls --color $realpath'
|
zstyle ':fzf-tab:complete:__zoxide_z:*' fzf-preview 'ls --color $realpath'
|
||||||
|
zstyle ':fzf-tab:complete:(hx|cat|bat|less|head|tail):*' fzf-preview \
|
||||||
|
'bat --style=numbers --color=always --line-range :100 $realpath 2>/dev/null || ls --color $realpath'
|
||||||
|
zstyle ':fzf-tab:complete:ls:*' fzf-preview 'ls --color $realpath'
|
||||||
|
zstyle ':fzf-tab:*' switch-group '<' '>'
|
||||||
|
|
||||||
# === Tool Initialization ===
|
# === Tool Initialization ===
|
||||||
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
|
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
|
||||||
@@ -75,6 +90,7 @@ export NVM_DIR="$HOME/.nvm"
|
|||||||
# Atuin env (adds ~/.atuin/bin to PATH)
|
# Atuin env (adds ~/.atuin/bin to PATH)
|
||||||
[ -f "$HOME/.atuin/bin/env" ] && . "$HOME/.atuin/bin/env"
|
[ -f "$HOME/.atuin/bin/env" ] && . "$HOME/.atuin/bin/env"
|
||||||
|
|
||||||
|
eval "$(fzf --zsh)"
|
||||||
eval "$(zoxide init zsh)"
|
eval "$(zoxide init zsh)"
|
||||||
unalias zi 2>/dev/null; alias zi='__zoxide_zi'
|
unalias zi 2>/dev/null; alias zi='__zoxide_zi'
|
||||||
eval "$(atuin init zsh)"
|
eval "$(atuin init zsh)"
|
||||||
@@ -86,8 +102,26 @@ export ZSH_AUTOSUGGEST_STRATEGY=(atuin history completion)
|
|||||||
bindkey '^[[1;5C' forward-word
|
bindkey '^[[1;5C' forward-word
|
||||||
|
|
||||||
# === Functions ===
|
# === Functions ===
|
||||||
znew() {
|
|
||||||
zellij action new-tab --layout "$1" --name "$2" --cwd "$3"
|
znew() { zellij action new-tab --layout "$1" --name "$2" --cwd "$3"; }
|
||||||
|
|
||||||
|
zwork() {
|
||||||
|
local layout_dir="${XDG_CONFIG_HOME:-$HOME/.config}/zellij/layouts"
|
||||||
|
|
||||||
|
local project
|
||||||
|
project=$(fd --type d --max-depth 2 . 2>/dev/null \
|
||||||
|
| fzf --prompt="Folder > " --preview='ls --color=always {}')
|
||||||
|
[ -z "$project" ] && return 0
|
||||||
|
|
||||||
|
local layout
|
||||||
|
layout=$(fd --type f --extension kdl . "$layout_dir" 2>/dev/null \
|
||||||
|
| sed 's|.*/||; s/\.kdl$//' \
|
||||||
|
| fzf --prompt="Layout > ")
|
||||||
|
[ -z "$layout" ] && return 0
|
||||||
|
|
||||||
|
local tab_name
|
||||||
|
echo -n "Tab name [${project%/}]: "; read tab_name
|
||||||
|
zellij action new-tab --layout "$layout" --name "${tab_name:-${project%/}}" --cwd "$PWD/$project"
|
||||||
}
|
}
|
||||||
|
|
||||||
# === Aliases ===
|
# === Aliases ===
|
||||||
|
|||||||
+216
@@ -0,0 +1,216 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Zellij + Helix Cheatsheet</title>
|
||||||
|
<style>
|
||||||
|
@page { size: A4 landscape; margin: 12mm; }
|
||||||
|
* { box-sizing: border-box; margin: 0; padding: 0; }
|
||||||
|
body { font-family: "Iosevka", "JetBrains Mono", "Fira Code", monospace;
|
||||||
|
background: #000; color: #c1c9d2; font-size: 11px; line-height: 1.4; }
|
||||||
|
.page { display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
|
||||||
|
padding: 16px; max-width: 1100px; margin: auto; }
|
||||||
|
.col { display: flex; flex-direction: column; gap: 10px; }
|
||||||
|
h1 { grid-column: 1 / -1; text-align: center; font-size: 20px; color: #1ea672;
|
||||||
|
border-bottom: 2px solid #3e4043; padding-bottom: 6px; margin-bottom: 4px; }
|
||||||
|
h2 { font-size: 13px; color: #1ea672; border-bottom: 1px solid #3e4043;
|
||||||
|
padding-bottom: 3px; margin-bottom: 4px; }
|
||||||
|
h3 { font-size: 11px; color: #d97917; margin: 6px 0 2px; }
|
||||||
|
.section { background: #111; border: 1px solid #3e4043; border-radius: 6px; padding: 8px 10px; }
|
||||||
|
table { width: 100%; border-collapse: collapse; }
|
||||||
|
td { padding: 2px 4px; vertical-align: top; }
|
||||||
|
td:first-child { white-space: nowrap; color: #3a97d4; font-weight: bold; width: 40%; }
|
||||||
|
td:last-child { color: #c1c9d2; }
|
||||||
|
tr:nth-child(even) { background: rgba(62,64,67,0.2); }
|
||||||
|
kbd { background: #3e4043; color: #fff; padding: 1px 5px; border-radius: 3px;
|
||||||
|
font-size: 10px; border: 1px solid #555; font-family: inherit; }
|
||||||
|
.note { color: #c96ed0; font-size: 10px; font-style: italic; margin-top: 4px; }
|
||||||
|
.prefix { color: #ed5f74; }
|
||||||
|
@media print {
|
||||||
|
body { background: #000; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
|
||||||
|
.page { padding: 0; }
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="page">
|
||||||
|
<h1>Zellij + Helix Cheatsheet</h1>
|
||||||
|
|
||||||
|
<div class="col">
|
||||||
|
|
||||||
|
<div class="section">
|
||||||
|
<h2>Zellij — Prefix: <kbd>Ctrl+a</kbd></h2>
|
||||||
|
<p class="note">Default mode is locked. Only <kbd>Ctrl+a</kbd> and <kbd>Alt+1-9</kbd> are captured.</p>
|
||||||
|
|
||||||
|
<h3>Pane Navigation</h3>
|
||||||
|
<table>
|
||||||
|
<tr><td><kbd>Ctrl+a</kbd> <kbd>h/j/k/l</kbd> or <kbd>←↓↑→</kbd></td><td>Focus left / down / up / right</td></tr>
|
||||||
|
<tr><td><kbd>Ctrl+a</kbd> <kbd>|</kbd></td><td>Split right</td></tr>
|
||||||
|
<tr><td><kbd>Ctrl+a</kbd> <kbd>-</kbd></td><td>Split down</td></tr>
|
||||||
|
<tr><td><kbd>Ctrl+a</kbd> <kbd>x</kbd></td><td>Close pane</td></tr>
|
||||||
|
<tr><td><kbd>Ctrl+a</kbd> <kbd>z</kbd></td><td>Zoom (fullscreen toggle)</td></tr>
|
||||||
|
<tr><td><kbd>Ctrl+a</kbd> <kbd>f</kbd></td><td>Toggle floating panes</td></tr>
|
||||||
|
<tr><td><kbd>Ctrl+a</kbd> <kbd>e</kbd></td><td>Embed / float pane</td></tr>
|
||||||
|
<tr><td><kbd>Ctrl+a</kbd> <kbd>b</kbd></td><td>Break pane to new tab</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h3>Tab Navigation</h3>
|
||||||
|
<table>
|
||||||
|
<tr><td><kbd>Alt+1</kbd>–<kbd>9</kbd></td><td>Jump to tab (direct, no prefix)</td></tr>
|
||||||
|
<tr><td><kbd>Ctrl+a</kbd> <kbd>n / p</kbd></td><td>Next / previous tab</td></tr>
|
||||||
|
<tr><td><kbd>Ctrl+a</kbd> <kbd>Tab</kbd></td><td>Toggle last two tabs</td></tr>
|
||||||
|
<tr><td><kbd>Ctrl+a</kbd> <kbd>c</kbd></td><td>New tab</td></tr>
|
||||||
|
<tr><td><kbd>Ctrl+a</kbd> <kbd>,</kbd></td><td>Rename tab</td></tr>
|
||||||
|
<tr><td><kbd>Ctrl+a</kbd> <kbd>X</kbd></td><td>Close tab</td></tr>
|
||||||
|
<tr><td><kbd>Ctrl+a</kbd> <kbd>Space</kbd></td><td>Next swap layout</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h3>Session & Plugins</h3>
|
||||||
|
<table>
|
||||||
|
<tr><td><kbd>Ctrl+a</kbd> <kbd>w</kbd></td><td>Session manager (fuzzy picker)</td></tr>
|
||||||
|
<tr><td><kbd>Ctrl+a</kbd> <kbd>o</kbd></td><td>File picker (strider)</td></tr>
|
||||||
|
<tr><td><kbd>Ctrl+a</kbd> <kbd>d</kbd></td><td>Detach session</td></tr>
|
||||||
|
<tr><td><kbd>Ctrl+a</kbd> <kbd>q</kbd></td><td>Quit zellij</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h3>Sub-modes (from <kbd>Ctrl+a</kbd>)</h3>
|
||||||
|
<table>
|
||||||
|
<tr><td><kbd>s</kbd> → Scroll</td><td><kbd>j/k</kbd> or <kbd>↓↑</kbd> scroll, <kbd>d/u</kbd> page, <kbd>/</kbd> search, <kbd>e</kbd> edit</td></tr>
|
||||||
|
<tr><td><kbd>r</kbd> → Resize</td><td><kbd>h/j/k/l</kbd> or <kbd>←↓↑→</kbd> resize, <kbd>+/-</kbd> grow/shrink</td></tr>
|
||||||
|
<tr><td><kbd>m</kbd> → Move</td><td><kbd>h/j/k/l</kbd> or <kbd>←↓↑→</kbd> move pane</td></tr>
|
||||||
|
</table>
|
||||||
|
<p class="note"><kbd>Esc</kbd> exits any sub-mode. <kbd>Ctrl+a</kbd> from sub-mode → tmux mode.</p>
|
||||||
|
|
||||||
|
<h3>Passthrough</h3>
|
||||||
|
<table>
|
||||||
|
<tr><td><kbd>Ctrl+a</kbd> <kbd>Ctrl+a</kbd></td><td>Send literal Ctrl+a to app</td></tr>
|
||||||
|
<tr><td><kbd>Esc</kbd></td><td>Cancel / back to locked mode</td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="section">
|
||||||
|
<h2>Shell — zsh / fzf / zellij helpers</h2>
|
||||||
|
<table>
|
||||||
|
<tr><td><kbd>Ctrl+T</kbd></td><td>fzf file finder (with bat preview)</td></tr>
|
||||||
|
<tr><td><kbd>Alt+C</kbd></td><td>fzf cd into directory</td></tr>
|
||||||
|
<tr><td><kbd>Ctrl+R</kbd></td><td>Atuin history search</td></tr>
|
||||||
|
<tr><td><kbd>Ctrl+Right</kbd></td><td>Accept autosuggestion word-by-word</td></tr>
|
||||||
|
<tr><td><code>zwork</code></td><td>Pick folder → layout → new zellij tab</td></tr>
|
||||||
|
<tr><td><code>znew L N D</code></td><td>New tab: layout, name, directory</td></tr>
|
||||||
|
<tr><td><code>zi</code></td><td>Zoxide interactive cd</td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col">
|
||||||
|
|
||||||
|
<div class="section">
|
||||||
|
<h2>Helix — Normal Mode</h2>
|
||||||
|
|
||||||
|
<h3>Movement</h3>
|
||||||
|
<table>
|
||||||
|
<tr><td><kbd>h/j/k/l</kbd></td><td>Left / down / up / right</td></tr>
|
||||||
|
<tr><td><kbd>w / b / e</kbd></td><td>Word forward / back / end</td></tr>
|
||||||
|
<tr><td><kbd>W / B / E</kbd></td><td>WORD forward / back / end</td></tr>
|
||||||
|
<tr><td><kbd>f/t</kbd> <kbd>char</kbd></td><td>Find / till char forward</td></tr>
|
||||||
|
<tr><td><kbd>F/T</kbd> <kbd>char</kbd></td><td>Find / till char backward</td></tr>
|
||||||
|
<tr><td><kbd>gg / ge</kbd></td><td>Go to start / end of file</td></tr>
|
||||||
|
<tr><td><kbd>Ctrl+d / Ctrl+u</kbd></td><td>Half-page down / up</td></tr>
|
||||||
|
<tr><td><kbd>Ctrl+f / Ctrl+b</kbd></td><td>Page down / up</td></tr>
|
||||||
|
<tr><td><kbd>%</kbd></td><td>Jump to matching bracket</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h3>Selection & Editing</h3>
|
||||||
|
<table>
|
||||||
|
<tr><td><kbd>v</kbd></td><td>Enter select mode</td></tr>
|
||||||
|
<tr><td><kbd>x</kbd></td><td>Select entire line</td></tr>
|
||||||
|
<tr><td><kbd>s</kbd></td><td>Select regex matches in selection</td></tr>
|
||||||
|
<tr><td><kbd>d / c</kbd></td><td>Delete / change selection</td></tr>
|
||||||
|
<tr><td><kbd>y / p</kbd></td><td>Yank / paste after</td></tr>
|
||||||
|
<tr><td><kbd>P</kbd></td><td>Paste before</td></tr>
|
||||||
|
<tr><td><kbd>r</kbd> <kbd>char</kbd></td><td>Replace with char</td></tr>
|
||||||
|
<tr><td><kbd>~</kbd></td><td>Toggle case</td></tr>
|
||||||
|
<tr><td><kbd>u / U</kbd></td><td>Undo / redo</td></tr>
|
||||||
|
<tr><td><kbd>> / <</kbd></td><td>Indent / dedent</td></tr>
|
||||||
|
<tr><td><kbd>J</kbd></td><td>Join lines</td></tr>
|
||||||
|
<tr><td><kbd>C</kbd></td><td>Copy selection to next line</td></tr>
|
||||||
|
<tr><td><kbd>Alt+s</kbd></td><td>Split selection on regex</td></tr>
|
||||||
|
<tr><td><kbd>Alt+d</kbd></td><td>Select all similar matches</td></tr>
|
||||||
|
<tr><td><kbd>Alt+.</kbd></td><td>Repeat last motion</td></tr>
|
||||||
|
<tr><td><kbd>Alt+,</kbd></td><td>Remove latest selection</td></tr>
|
||||||
|
<tr><td><kbd>Alt+o</kbd></td><td>Expand selection (treesitter)</td></tr>
|
||||||
|
<tr><td><kbd>Ctrl+a / Ctrl+x</kbd></td><td>Increment / decrement number</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h3>Goto <kbd>g</kbd></h3>
|
||||||
|
<table>
|
||||||
|
<tr><td><kbd>gd</kbd></td><td>Go to definition</td></tr>
|
||||||
|
<tr><td><kbd>gr</kbd></td><td>Go to references</td></tr>
|
||||||
|
<tr><td><kbd>gi</kbd></td><td>Go to implementation</td></tr>
|
||||||
|
<tr><td><kbd>gy</kbd></td><td>Go to type definition</td></tr>
|
||||||
|
<tr><td><kbd>ga</kbd></td><td>Go to last accessed file</td></tr>
|
||||||
|
<tr><td><kbd>gh / gl</kbd></td><td>Go to line start / end</td></tr>
|
||||||
|
<tr><td><kbd>gs</kbd></td><td>Go to first non-blank</td></tr>
|
||||||
|
<tr><td><kbd>gn</kbd></td><td>Go to next buffer</td></tr>
|
||||||
|
<tr><td><kbd>gp</kbd></td><td>Go to previous buffer</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h3>Space Menu <kbd>Space</kbd></h3>
|
||||||
|
<table>
|
||||||
|
<tr><td><kbd>Space f</kbd></td><td>File picker</td></tr>
|
||||||
|
<tr><td><kbd>Space F</kbd></td><td>File picker (cwd)</td></tr>
|
||||||
|
<tr><td><kbd>Space b</kbd></td><td>Buffer picker</td></tr>
|
||||||
|
<tr><td><kbd>Space j</kbd></td><td>Jumplist picker</td></tr>
|
||||||
|
<tr><td><kbd>Space s</kbd></td><td>Symbol picker</td></tr>
|
||||||
|
<tr><td><kbd>Space S</kbd></td><td>Workspace symbol picker</td></tr>
|
||||||
|
<tr><td><kbd>Space /</kbd></td><td>Global search</td></tr>
|
||||||
|
<tr><td><kbd>Space d</kbd></td><td>Diagnostics picker</td></tr>
|
||||||
|
<tr><td><kbd>Space a</kbd></td><td>Code action</td></tr>
|
||||||
|
<tr><td><kbd>Space r</kbd></td><td>Rename symbol</td></tr>
|
||||||
|
<tr><td><kbd>Space k</kbd></td><td>Show docs (hover)</td></tr>
|
||||||
|
<tr><td><kbd>Space h</kbd></td><td>Select all references</td></tr>
|
||||||
|
<tr><td><kbd>Space y / p</kbd></td><td>Yank / paste system clipboard</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h3>Window <kbd>Ctrl+w</kbd></h3>
|
||||||
|
<table>
|
||||||
|
<tr><td><kbd>Ctrl+w v/s</kbd></td><td>Vertical / horizontal split</td></tr>
|
||||||
|
<tr><td><kbd>Ctrl+w h/j/k/l</kbd></td><td>Focus split</td></tr>
|
||||||
|
<tr><td><kbd>Ctrl+w q</kbd></td><td>Close split</td></tr>
|
||||||
|
<tr><td><kbd>Ctrl+w o</kbd></td><td>Only (close other splits)</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h3>Match <kbd>m</kbd></h3>
|
||||||
|
<table>
|
||||||
|
<tr><td><kbd>mm</kbd></td><td>Jump to matching bracket</td></tr>
|
||||||
|
<tr><td><kbd>ms</kbd> <kbd>char</kbd></td><td>Surround with char</td></tr>
|
||||||
|
<tr><td><kbd>mr</kbd> <kbd>old</kbd> <kbd>new</kbd></td><td>Replace surround</td></tr>
|
||||||
|
<tr><td><kbd>md</kbd> <kbd>char</kbd></td><td>Delete surround</td></tr>
|
||||||
|
<tr><td><kbd>ma</kbd> <kbd>char</kbd></td><td>Select around</td></tr>
|
||||||
|
<tr><td><kbd>mi</kbd> <kbd>char</kbd></td><td>Select inside</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h3>Insert Mode (from <kbd>i/a/o/I/A/O</kbd>)</h3>
|
||||||
|
<table>
|
||||||
|
<tr><td><kbd>Esc</kbd></td><td>Back to normal</td></tr>
|
||||||
|
<tr><td><kbd>Ctrl+s</kbd></td><td>Save</td></tr>
|
||||||
|
<tr><td><kbd>Ctrl+w</kbd></td><td>Delete word backward</td></tr>
|
||||||
|
<tr><td><kbd>Ctrl+space</kbd></td><td>Trigger completion</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h3>Commands <kbd>:</kbd></h3>
|
||||||
|
<table>
|
||||||
|
<tr><td><kbd>:w / :q / :wq</kbd></td><td>Save / quit / both</td></tr>
|
||||||
|
<tr><td><kbd>:o file</kbd></td><td>Open file</td></tr>
|
||||||
|
<tr><td><kbd>:bc</kbd></td><td>Close buffer</td></tr>
|
||||||
|
<tr><td><kbd>:sh cmd</kbd></td><td>Run shell command</td></tr>
|
||||||
|
<tr><td><kbd>:config-reload</kbd></td><td>Reload config</td></tr>
|
||||||
|
<tr><td><kbd>:theme name</kbd></td><td>Switch theme</td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
# space_carbon - high-contrast theme
|
||||||
|
# Inspired by vim_dark_high_contrast + IBM Carbon
|
||||||
|
|
||||||
|
THEME_NAME="space_carbon"
|
||||||
|
HELIX_THEME="space_carbon"
|
||||||
|
|
||||||
|
# Base
|
||||||
|
BG="#000000"
|
||||||
|
FG="#c1c9d2"
|
||||||
|
CURSOR="#c1c9d2"
|
||||||
|
SELECTION_BG="#393939"
|
||||||
|
SELECTION_FG="#ffffff"
|
||||||
|
|
||||||
|
# Normal colors
|
||||||
|
BLACK="#000000"
|
||||||
|
RED="#ed5f74"
|
||||||
|
GREEN="#1ea672"
|
||||||
|
YELLOW="#d97917"
|
||||||
|
BLUE="#688ef1"
|
||||||
|
MAGENTA="#c96ed0"
|
||||||
|
CYAN="#3a97d4"
|
||||||
|
WHITE="#e3e8ee"
|
||||||
|
|
||||||
|
# Bright colors
|
||||||
|
BRIGHT_BLACK="#697386"
|
||||||
|
BRIGHT_RED="#fbb5b2"
|
||||||
|
BRIGHT_GREEN="#85d996"
|
||||||
|
BRIGHT_YELLOW="#efc078"
|
||||||
|
BRIGHT_BLUE="#9fcdff"
|
||||||
|
BRIGHT_MAGENTA="#f0b4e4"
|
||||||
|
BRIGHT_CYAN="#7fd3ed"
|
||||||
|
BRIGHT_WHITE="#ffffff"
|
||||||
|
|
||||||
|
# Dark/muted variants (for backgrounds, subtle highlights)
|
||||||
|
DARK_RED="#3d1a22"
|
||||||
|
DARK_GREEN="#0d3326"
|
||||||
|
DARK_YELLOW="#332200"
|
||||||
|
DARK_BLUE="#1a2744"
|
||||||
|
DARK_MAGENTA="#602864"
|
||||||
|
DARK_CYAN="#0f2d44"
|
||||||
|
DARK_WHITE="#393939"
|
||||||
|
|
||||||
|
# Gray scale (Carbon-inspired layering)
|
||||||
|
BG1="#0c0c0c"
|
||||||
|
BG2="#161616"
|
||||||
|
BG3="#262626"
|
||||||
|
BG4="#393939"
|
||||||
|
|
||||||
|
# Additional accents
|
||||||
|
ORANGE="#e87b35"
|
||||||
|
PINK="#ff7eb6"
|
||||||
|
TEAL="#08bdba"
|
||||||
|
|
||||||
|
# Semantic
|
||||||
|
ACCENT="$CYAN"
|
||||||
|
SUCCESS="$GREEN"
|
||||||
|
WARNING="$YELLOW"
|
||||||
|
ERROR="$RED"
|
||||||
|
INFO="$BLUE"
|
||||||
|
MUTED="$BRIGHT_BLACK"
|
||||||
|
SURFACE="$DARK_WHITE"
|
||||||
Reference in New Issue
Block a user