feat: major update to all configs

- move older config to archive

Signed-off-by: Avinal Kumar <avinal.xlvii@gmail.com>
This commit is contained in:
2026-03-26 12:07:53 +05:30
committed by Morumotto
parent 4555248b72
commit c2786c7f96
67 changed files with 881 additions and 772 deletions
+27 -82
View File
@@ -1,104 +1,49 @@
[window]
padding = { x = 7, y = 5 }
dynamic_padding = true
decorations = "Buttonless"
dynamic_title = false
[font]
normal = { family = "Monaspace Neon", style = "Regular" }
bold = { family = "Monaspace Neon", style = "Bold" }
italic = { family = "Monaspace Neon", style = "Italic" }
bold_italic = { family = "Monaspace Neon", style = "Bold Italic" }
size = 15
[terminal.shell]
program = "zellij"
args = ["-l", "welcome"]
# Nightfox Alacritty Colors
## name: carbonfox
## upstream: https://github.com/edeneast/nightfox.nvim/raw/main/extra/carbonfox/alacritty.toml
normal = { family = "Iosevka Term", style = "Regular" }
bold = { family = "Iosevka Term", style = "Bold" }
italic = { family = "Iosevka Term", style = "Italic" }
bold_italic = { family = "Iosevka Term", style = "Bold Italic" }
size = 14
[colors.primary]
background = "#161616"
foreground = "#f2f4f8"
dim_foreground = "#b6b8bb"
bright_foreground = "#f9fbff"
background = "#111111"
foreground = "#c1c9d2"
[colors.cursor]
text = "#f2f4f8"
cursor = "#b6b8bb"
[colors.vi_mode_cursor]
text = "#f2f4f8"
cursor = "#33b1ff"
[colors.search.matches]
foreground = "#f2f4f8"
background = "#525253"
[colors.search.focused_match]
foreground = "#f2f4f8"
background = "#3ddbd9"
[colors.footer_bar]
foreground = "#f2f4f8"
background = "#353535"
[colors.hints.start]
foreground = "#f2f4f8"
background = "#3ddbd9"
[colors.hints.end]
foreground = "#f2f4f8"
background = "#353535"
text = "#111111"
cursor = "#c1c9d2"
[colors.selection]
text = "#f2f4f8"
background = "#2a2a2a"
text = "#ffffff"
background = "#3e4043"
[colors.normal]
black = "#282828"
red = "#ee5396"
green = "#25be6a"
yellow = "#f8e17c"
blue = "#33b1ff"
magenta = "#be95ff"
cyan = "#3ddbd9"
white = "#dfdfe0"
black = "#000000"
red = "#ed5f74"
green = "#1ea672"
yellow = "#d97917"
blue = "#688ef1"
magenta = "#c96ed0"
cyan = "#3a97d4"
white = "#e3e8ee"
[colors.bright]
black = "#484848"
red = "#f16da6"
green = "#46c880"
yellow = "#f8e17c"
blue = "#52bdff"
magenta = "#c8a5ff"
cyan = "#2dc7c4"
white = "#e4e4e5"
[colors.dim]
black = "#222222"
red = "#ca4780"
green = "#1fa25a"
yellow = "#f8e17c"
blue = "#2b96d9"
magenta = "#a27fd9"
cyan = "#07a19e"
white = "#bebebe"
[[colors.indexed_colors]]
index = 16
color = "#3ddbd9"
[[colors.indexed_colors]]
index = 17
color = "#ff7eb6"
black = "#697386"
red = "#fbb5b2"
green = "#85d996"
yellow = "#efc078"
blue = "#9fcdff"
magenta = "#f0b4e4"
cyan = "#7fd3ed"
white = "#ffffff"
[cursor]
style = { shape = "Underline", blinking = "On" }
vi_mode_style = { shape = "Block", blinking = "Off" }
[selection]
save_to_clipboard = true
+33 -167
View File
@@ -1,200 +1,66 @@
## where to store your database, default is your system data directory
## linux/mac: ~/.local/share/atuin/history.db
## windows: %USERPROFILE%/.local/share/atuin/history.db
# db_path = "~/.history.db"
## Sync
sync_address = "http://pifive.neon-universe.ts.net:8392"
## where to store your encryption key, default is your system data directory
## linux/mac: ~/.local/share/atuin/key
## windows: %USERPROFILE%/.local/share/atuin/key
# key_path = "~/.key"
## Search
search_mode = "daemon-fuzzy"
## where to store your auth session token, default is your system data directory
## linux/mac: ~/.local/share/atuin/session
## windows: %USERPROFILE%/.local/share/atuin/session
# session_path = "~/.session"
## date format used, either "us" or "uk"
# dialect = "us"
## default timezone to use when displaying time
## either "l", "local" to use the system's current local timezone, or an offset
## from UTC in the format of "<+|->H[H][:M[M][:S[S]]]"
## for example: "+9", "-05", "+03:30", "-01:23:45", etc.
# timezone = "local"
## enable or disable automatic sync
# auto_sync = true
## enable or disable automatic update checks
# update_check = true
## address of the sync server
sync_address = "http://pifive.neon-universe.ts.net:8888"
## how often to sync history. note that this is only triggered when a command
## is ran, so sync intervals may well be longer
## set it to 0 to sync after every command
# sync_frequency = "10m"
## which search mode to use
## possible values: prefix, fulltext, fuzzy, skim
search_mode = "fulltext"
## which filter mode to use
## possible values: global, host, session, directory
filter_mode = "host"
## With workspace filtering enabled, Atuin will filter for commands executed
## in any directory within a git repository tree (default: false)
# Smart filter: workspace in git repos, falls to directory outside, then session
# Workspace mode is auto-skipped when not in a git repo
filter_mode = "workspace"
filter_mode_shell_up_key_binding = "session"
workspaces = true
## which filter mode to use when atuin is invoked from a shell up-key binding
## the accepted values are identical to those of "filter_mode"
## leave unspecified to use same mode set in "filter_mode"
filter_mode_shell_up_key_binding = "session"
## which search mode to use when atuin is invoked from a shell up-key binding
## the accepted values are identical to those of "search_mode"
## leave unspecified to use same mode set in "search_mode"
# search_mode_shell_up_key_binding = "fuzzy"
## which style to use
## possible values: auto, full, compact
## UI
style = "compact"
## the maximum number of lines the interface should take up
## set it to 0 to always go full screen
inline_height = 9
## Invert the UI - put the search bar at the top , Default to `false`
# invert = false
## enable or disable showing a preview of the selected command
## useful when the command is longer than the terminal width and is cut off
# show_preview = false
## what to do when the escape key is pressed when searching
## possible values: return-original, return-query
# exit_mode = "return-original"
## possible values: emacs, subl
# word_jump_mode = "emacs"
## characters that count as a part of a word
# word_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
## number of context lines to show when scrolling by pages
# scroll_context_lines = 1
## use ctrl instead of alt as the shortcut modifier key for numerical UI shortcuts
## alt-0 .. alt-9
# ctrl_n_shortcuts = false
## default history list format - can also be specified with the --format arg
# history_format = "{time}\t{command}\t{duration}"
## prevent commands matching any of these regexes from being written to history.
## Note that these regular expressions are unanchored, i.e. if they don't start
## with ^ or end with $, they'll match anywhere in the command.
## For details on the supported regular expression syntax, see
## https://docs.rs/regex/latest/regex/#syntax
# history_filter = [
# "^secret-cmd",
# "^innocuous-cmd .*--secret=.+",
# ]
## prevent commands run with cwd matching any of these regexes from being written
## to history. Note that these regular expressions are unanchored, i.e. if they don't
## start with ^ or end with $, they'll match anywhere in CWD.
## For details on the supported regular expression syntax, see
## https://docs.rs/regex/latest/regex/#syntax
# cwd_filter = [
# "^/very/secret/area",
# ]
## Configure the maximum height of the preview to show.
## Useful when you have long scripts in your history that you want to distinguish
## by more than the first few lines.
# max_preview_height = 4
## Configure whether or not to show the help row, which includes the current Atuin
## version (and whether an update is available), a keymap hint, and the total
## amount of commands in your history.
show_help = false
## Configure whether or not to show tabs for search and inspect
show_tabs = false
## Defaults to true. This matches history against a set of default regex, and will not save it if we get a match. Defaults include
## 1. AWS key id
## 2. Github pat (old and new)
## 3. Slack oauth tokens (bot, user)
## 4. Slack webhooks
## 5. Stripe live/test keys
# secrets_filter = true
## Defaults to true. If enabled, upon hitting enter Atuin will immediately execute the command. Press tab to return to the shell and edit.
# This applies for new installs. Old installs will keep the old behaviour unless configured otherwise.
show_preview = true
max_preview_height = 4
enter_accept = true
## Defaults to "emacs". This specifies the keymap on the startup of `atuin
## search`. If this is set to "auto", the startup keymap mode in the Atuin
## search is automatically selected based on the shell's keymap where the
## keybinding is defined. If this is set to "emacs", "vim-insert", or
## "vim-normal", the startup keymap mode in the Atuin search is forced to be
## the specified one.
# keymap_mode = "auto"
## Score tuning for daemon-fuzzy: favor recent commands slightly
[search]
filters = ["workspace", "directory", "session", "host", "global"]
recency_score_multiplier = 2.0
frequency_score_multiplier = 1.0
frecency_score_multiplier = 1.5
## Cursor style in each keymap mode. If specified, the cursor style is changed
## in entering the cursor shape. Available values are "default" and
## "{blink,steady}-{block,underline,bar}".
# keymap_cursor = { emacs = "blink-block", vim_insert = "blink-block", vim_normal = "steady-block" }
# network_connect_timeout = 5
# network_timeout = 5
## Timeout (in seconds) for acquiring a local database connection (sqlite)
# local_timeout = 5
## Set this to true and Atuin will minimize motion in the UI - timers will not update live, etc.
## Alternatively, set env NO_MOTION=true
# prefers_reduced_motion = false
## Filter secrets and noisy commands from history
history_filter = [
"^export .*(KEY|TOKEN|SECRET|PASSWORD|CREDENTIAL).*=",
"^set .*(KEY|TOKEN|SECRET|PASSWORD|CREDENTIAL).*=",
]
[stats]
## Set commands where we should consider the subcommand for statistics. Eg, kubectl get vs just kubectl
common_subcommands = [
"brew",
"cargo",
"dnf",
"docker",
"gh",
"git",
"go",
"ip",
"kubectl",
"npm",
"oc",
"podman",
"port",
"systemctl",
"tmux",
"zellij",
"yarn",
]
## Set commands that should be totally stripped and ignored from stats
# common_prefix = ["sudo"]
## Set commands that will be completely ignored from stats
# ignored_commands = [
# "cd",
# "ls",
# "vi"
# ]
[keys]
# Defaults to true. If disabled, using the up/down key won't exit the TUI when scrolled past the first/last entry.
# scroll_exits = false
scroll_exits = false
[sync]
# Enable sync v2 by default
# This ensures that sync v2 is enabled for new installs only
# In a later release it will become the default across the board
records = true
[daemon]
enabled = true
autostart = true
[preview]
strategy = "auto"
+2 -1
View File
@@ -3,7 +3,7 @@ version: 1
# What protocol to use when performing git operations. Supported values: ssh, https
git_protocol: ssh
# What editor gh should run when creating issues, pull requests, etc. If blank, will refer to environment.
editor: nvim
editor: hx
# When to interactively prompt. This is a global config that cannot be overridden by hostname. Supported values: enabled, disabled
prompt: enabled
# A pager program to send command output to, e.g. "less". Set the value to "cat" to disable the pager.
@@ -11,6 +11,7 @@ pager: less
# Aliases allow you to create nicknames for gh commands
aliases:
co: pr checkout
pc: pr create
# The path to a unix socket through which send HTTP connections. If blank, HTTP traffic will be handled by net/http.DefaultTransport.
http_unix_socket:
# What web browser gh should use when opening URLs. If blank, will refer to environment.
-5
View File
@@ -1,5 +0,0 @@
github.com:
git_protocol: ssh
users:
avinal:
user: avinal
+58 -21
View File
@@ -1,30 +1,67 @@
# Font related configs
font-family = "Monaspace Neon"
font-size = "14"
adjust-underline-position = "1"
adjust-underline-thickness = "1"
#adjust-cell-width = "5%"
#adjust-cell-height = "5%"
adjust-box-thickness = "1"
# Font
font-family = "Iosevka Term"
font-size = 14
font-feature = "calt"
font-feature = "liga"
adjust-underline-position = 1
adjust-underline-thickness = 1
adjust-box-thickness = 1
bold-is-bright = true
freetype-load-flags = hinting,autohint,light
# Appearance
# theme = "Oxocarbon"
theme = "Raycast_Dark"
# title = "Ghostty"
theme = "vim_dark_high_contrast"
window-decoration = true
window-padding-x = 4
window-padding-y = 2
window-padding-balance = true
mouse-hide-while-typing = true
unfocused-split-opacity = 0.85
resize-overlay = after-first
resize-overlay-position = bottom-right
# Cursor setting
cursor-style = "underline"
# Cursor
cursor-style = block_hollow
cursor-style-blink = false
cursor-click-to-move = true
cursor-color = "cyan"
cursor-text = "cyan"
# cursor-invert-fg-bg = true
# adjust-cursor-thickness = "2"
cursor-color = cyan
cursor-text = cyan
# Shell setting
shell-integration = "zsh"
# Shell
shell-integration = zsh
shell-integration-features = true
# Clipboard
clipboard-read = "allow"
clipboard-write = "allow"
clipboard-read = allow
clipboard-write = allow
copy-on-select = clipboard
# Scrollback (10MB per surface)
scrollback-limit = 10000000
# Links
link-url = true
# Notifications for long commands (KDE supports this natively)
notify-on-command-finish = unfocused
notify-on-command-finish-after = 10s
# Window behavior
confirm-close-surface = true
window-inherit-working-directory = true
window-save-state = always
# Quick terminal (toggle with a keybind)
quick-terminal-position = top
quick-terminal-size = 40%
quick-terminal-autohide = false
# GTK/Linux specific
gtk-titlebar = false
gtk-tabs-location = hidden
gtk-single-instance = true
# Keybinds
keybind = ctrl+grave_accent=toggle_quick_terminal
keybind = ctrl+shift+t=new_tab
keybind = ctrl+shift+n=new_window
@@ -0,0 +1,24 @@
palette = 0=#000000
palette = 1=#ed5f74
palette = 2=#1ea672
palette = 3=#d97917
palette = 4=#688ef1
palette = 5=#c96ed0
palette = 6=#3a97d4
palette = 7=#e3e8ee
palette = 8=#697386
palette = 9=#fbb5b2
palette = 10=#85d996
palette = 11=#efc078
palette = 12=#9fcdff
palette = 13=#f0b4e4
palette = 14=#7fd3ed
palette = 15=#ffffff
background = #000000
foreground = #c1c9d2
cursor-color = #c1c9d2
cursor-text = #111111
selection-background = #3e4043
selection-foreground = #ffffff
+26
View File
@@ -0,0 +1,26 @@
# Ghostty theme adapted from Helix palette
palette = 0=#000000
palette = 1=#ed5f74
palette = 2=#1ea672
palette = 3=#d97917
palette = 4=#688ef1
palette = 5=#c96ed0
palette = 6=#3a97d4
palette = 7=#e3e8ee
palette = 8=#697386
palette = 9=#fbb5b2
palette = 10=#85d996
palette = 11=#efc078
palette = 12=#9fcdff
palette = 13=#f0b4e4
palette = 14=#7fd3ed
palette = 15=#ffffff
background = #111111
foreground = #c1c9d2
cursor-color = #c1c9d2
cursor-text = #111111
selection-background = #3e4043
selection-foreground = #ffffff
+2 -1
View File
@@ -1,4 +1,4 @@
theme = "carbonfox"
theme = "vim_dark_high_contrast"
[editor]
rulers = [80, 100]
@@ -9,6 +9,7 @@ bufferline = "multiple"
color-modes = true
end-of-line-diagnostics = "hint"
popup-border = "popup"
scrolloff = 2
[editor.soft-wrap]
enable = true
+12 -2
View File
@@ -1,5 +1,15 @@
# Global ignore files
# For golang
# Dependencies
vendor/
node_modules/
# Build artifacts
target/
dist/
build/
_build/
__pycache__/
# Version control
.git/
+41 -9
View File
@@ -9,6 +9,14 @@ command = "wakatime-ls"
[language-server.yaml-language-server.config.yaml]
format = { enable = true }
validation = true
schemaStore = { enable = true }
[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}"
"https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1beta1_Task.json" = "tasks/*.{yml,yaml}"
"https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1_Pipeline.json" = "pipelines/*.{yml,yaml}"
"https://raw.githubusercontent.com/redhat-developer/vscode-tekton/refs/heads/main/scheme/tekton.dev/v1_PipelineRun.json" = ".tekton/*.{yml,yaml}"
[[language]]
name = "c"
@@ -46,21 +54,45 @@ name = "bash"
language-servers = ["bash-language-server", "wakatime"]
[[language]]
name = "html"
language-servers = ["wakatime"]
name = "python"
language-servers = ["pylsp", "wakatime"]
auto-format = true
[[language]]
name = "rust"
language-servers = ["rust-analyzer", "wakatime"]
auto-format = true
[[language]]
name = "typescript"
language-servers = ["typescript-language-server", "wakatime"]
auto-format = true
[[language]]
name = "javascript"
language-servers = ["typescript-language-server", "wakatime"]
auto-format = true
[[language]]
name = "html"
language-servers = ["vscode-html-language-server", "wakatime"]
[[language]]
name = "css"
language-servers = ["vscode-css-language-server", "wakatime"]
[[language]]
name = "lua"
language-servers = ["wakatime"]
# [[language]]
# name = "docker"
# language-servers = ["wakatime"]
language-servers = ["lua-language-server", "wakatime"]
[[language]]
name = "dockerfile"
language-servers = ["docker-langserver", "wakatime"]
[[language]]
name = "json"
language-servers = ["wakatime"]
language-servers = ["vscode-json-language-server", "wakatime"]
[[language]]
name = "toml"
language-servers = ["taplo", "wakatime"]
+50
View File
@@ -0,0 +1,50 @@
gui:
showBottomLine: false
showPanelJumps: true
showCommandLog: false
showRandomTip: false
nerdFontsVersion: ""
showFileIcons: false
border: rounded
filterMode: fuzzy
showDivergenceFromBaseBranch: arrowAndNumber
animateExplosion: false
theme:
activeBorderColor:
- "#3a97d4"
- bold
inactiveBorderColor:
- "#697386"
selectedLineBgColor:
- "#3e4043"
optionsTextColor:
- "#3a97d4"
unstagedChangesColor:
- "#ed5f74"
defaultFgColor:
- "#c1c9d2"
git:
autoFetch: true
autoRefresh: true
branchLogCmd: git log --graph --color=always --abbrev-commit --decorate --date=relative --pretty=medium {{branchName}} --
os:
editor: hx
editPreset: helix
customCommands:
- key: "C"
context: files
command: git commit -m '{{index .PromptResponses 0}}' -m '{{index .PromptResponses 1}}'
description: "Commit with body"
prompts:
- type: input
title: "Summary"
- type: input
title: "Description"
- key: "b"
context: files
command: git checkout -b {{index .PromptResponses 0}}
description: "New branch from here"
prompts:
- type: input
title: "Branch name"
+87 -265
View File
@@ -1,7 +1,3 @@
//
// THIS FILE WAS AUTOGENERATED BY ZELLIJ, THE PREVIOUS FILE AT THIS LOCATION WAS COPIED TO: /home/avinal/.config/zellij/config.kdl.bak
//
keybinds clear-defaults=true {
locked {
bind "Ctrl space" { SwitchToMode "normal"; }
@@ -101,6 +97,12 @@ keybinds clear-defaults=true {
bind "Alt ]" { NextSwapLayout; }
bind "Alt n" { NewPane; }
bind "Alt q" { Quit; }
bind "Alt f" {
LaunchPlugin "filepicker" {
floating true
close_on_selection true
};
}
}
shared_except "locked" "move" {
bind "Alt m" { SwitchToMode "move"; }
@@ -170,120 +172,121 @@ keybinds clear-defaults=true {
bind "|" { NewPane "right"; SwitchToMode "normal"; }
}
}
themes {
carbonfox {
vim_dark_high_contrast {
text_unselected {
base 255 255 255
background 53 53 53
emphasis_0 255 168 123
emphasis_1 61 219 217
emphasis_2 37 190 106
emphasis_3 190 149 255
base 193 201 210
background 62 64 67
emphasis_0 237 95 116
emphasis_1 58 151 212
emphasis_2 30 166 114
emphasis_3 201 110 208
}
text_selected {
base 255 255 255
background 42 42 42
emphasis_0 255 168 123
emphasis_1 61 219 217
emphasis_2 37 190 106
emphasis_3 190 149 255
background 62 64 67
emphasis_0 237 95 116
emphasis_1 58 151 212
emphasis_2 30 166 114
emphasis_3 201 110 208
}
ribbon_selected {
base 53 53 53
background 37 190 106
emphasis_0 238 83 150
emphasis_1 255 168 123
emphasis_2 190 149 255
emphasis_3 51 177 255
base 17 17 17
background 30 166 114
emphasis_0 237 95 116
emphasis_1 217 121 23
emphasis_2 201 110 208
emphasis_3 104 142 241
}
ribbon_unselected {
base 53 53 53
background 242 244 248
emphasis_0 238 83 150
emphasis_1 255 255 255
emphasis_2 51 177 255
emphasis_3 190 149 255
base 17 17 17
background 227 232 238
emphasis_0 237 95 116
emphasis_1 193 201 210
emphasis_2 104 142 241
emphasis_3 201 110 208
}
table_title {
base 37 190 106
base 30 166 114
background 0
emphasis_0 255 168 123
emphasis_1 61 219 217
emphasis_2 37 190 106
emphasis_3 190 149 255
emphasis_0 237 95 116
emphasis_1 58 151 212
emphasis_2 30 166 114
emphasis_3 201 110 208
}
table_cell_selected {
base 255 255 255
background 42 42 42
emphasis_0 255 168 123
emphasis_1 61 219 217
emphasis_2 37 190 106
emphasis_3 190 149 255
background 62 64 67
emphasis_0 237 95 116
emphasis_1 58 151 212
emphasis_2 30 166 114
emphasis_3 201 110 208
}
table_cell_unselected {
base 255 255 255
background 53 53 53
emphasis_0 255 168 123
emphasis_1 61 219 217
emphasis_2 37 190 106
emphasis_3 190 149 255
base 193 201 210
background 62 64 67
emphasis_0 237 95 116
emphasis_1 58 151 212
emphasis_2 30 166 114
emphasis_3 201 110 208
}
list_selected {
base 255 255 255
background 42 42 42
emphasis_0 255 168 123
emphasis_1 61 219 217
emphasis_2 37 190 106
emphasis_3 190 149 255
background 62 64 67
emphasis_0 237 95 116
emphasis_1 58 151 212
emphasis_2 30 166 114
emphasis_3 201 110 208
}
list_unselected {
base 255 255 255
background 53 53 53
emphasis_0 255 168 123
emphasis_1 61 219 217
emphasis_2 37 190 106
emphasis_3 190 149 255
base 193 201 210
background 62 64 67
emphasis_0 237 95 116
emphasis_1 58 151 212
emphasis_2 30 166 114
emphasis_3 201 110 208
}
frame_selected {
base 37 190 106
base 30 166 114
background 0
emphasis_0 255 168 123
emphasis_1 61 219 217
emphasis_2 190 149 255
emphasis_0 237 95 116
emphasis_1 58 151 212
emphasis_2 201 110 208
emphasis_3 0
}
frame_highlight {
base 255 168 123
base 217 121 23
background 0
emphasis_0 255 168 123
emphasis_1 255 168 123
emphasis_2 255 168 123
emphasis_3 255 168 123
emphasis_0 217 121 23
emphasis_1 217 121 23
emphasis_2 217 121 23
emphasis_3 217 121 23
}
exit_code_success {
base 37 190 106
base 30 166 114
background 0
emphasis_0 61 219 217
emphasis_1 53 53 53
emphasis_2 190 149 255
emphasis_3 51 177 255
emphasis_0 58 151 212
emphasis_1 62 64 67
emphasis_2 201 110 208
emphasis_3 104 142 241
}
exit_code_error {
base 238 83 150
base 237 95 116
background 0
emphasis_0 248 225 124
emphasis_0 217 121 23
emphasis_1 0
emphasis_2 0
emphasis_3 0
}
multiplayer_user_colors {
player_1 190 149 255
player_2 51 177 255
player_1 201 110 208
player_2 104 142 241
player_3 0
player_4 248 225 124
player_5 61 219 217
player_4 217 121 23
player_5 58 151 212
player_6 0
player_7 238 83 150
player_7 237 95 116
player_8 0
player_9 0
player_10 0
@@ -291,8 +294,6 @@ themes {
}
}
// Plugin aliases - can be used to change the implementation of Zellij
// changing these requires a restart to take effect
plugins {
about location="zellij:about"
compact-bar location="zellij:compact-bar"
@@ -310,200 +311,21 @@ plugins {
}
}
// Plugins to load in the background when a new session starts
// eg. "file:/path/to/my-plugin.wasm"
// eg. "https://example.com/my-plugin.wasm"
load_plugins {
}
// Use a simplified UI without special fonts (arrow glyphs)
// Options:
// - true
// - false (Default)
//
simplified_ui false
// Choose the theme that is specified in the themes section.
// Default: default
//
theme "carbonfox"
// Choose the base input mode of zellij.
// Default: normal
//
// default_mode "locked"
// Choose the path to the default shell that zellij will use for opening new panes
// Default: $SHELL
//
// default_shell "fish"
// Choose the path to override cwd that zellij will use for opening new panes
//
// default_cwd "/tmp"
// The name of the default layout to load on startup
// Default: "default"
//
theme "vim_dark_high_contrast"
default_layout "terminal"
// The folder in which Zellij will look for layouts
// (Requires restart)
//
// layout_dir "/tmp"
// The folder in which Zellij will look for themes
// (Requires restart)
//
// theme_dir "/tmp"
// Toggle enabling the mouse mode.
// On certain configurations, or terminals this could
// potentially interfere with copying text.
// Options:
// - true (default)
// - false
//
// mouse_mode false
// Toggle having pane frames around the panes
// Options:
// - true (default, enabled)
// - false
//
// pane_frames false
// When attaching to an existing session with other users,
// should the session be mirrored (true)
// or should each user have their own cursor (false)
// (Requires restart)
// Default: false
//
// mirror_session true
// Choose what to do when zellij receives SIGTERM, SIGINT, SIGQUIT or SIGHUP
// eg. when terminal window with an active zellij session is closed
// (Requires restart)
// Options:
// - detach (Default)
// - quit
//
// on_force_close "quit"
// Configure the scroll back buffer size
// This is the number of lines zellij stores for each pane in the scroll back
// buffer. Excess number of lines are discarded in a FIFO fashion.
// (Requires restart)
// Valid values: positive integers
// Default value: 10000
//
scroll_buffer_size 100000
// Provide a command to execute when copying text. The text will be piped to
// the stdin of the program to perform the copy. This can be used with
// terminal emulators which do not support the OSC 52 ANSI control sequence
// that will be used by default if this option is not set.
// Examples:
//
// copy_command "xclip -selection clipboard" // x11
// copy_command "wl-copy" // wayland
// copy_command "pbcopy" // osx
//
// copy_command "pbcopy"
// Choose the destination for copied text
// Allows using the primary selection buffer (on x11/wayland) instead of the system clipboard.
// Does not apply when using copy_command.
// Options:
// - system (default)
// - primary
//
// copy_clipboard "primary"
// Enable automatic copying (and clearing) of selection when releasing mouse
// Default: true
//
copy_on_select true
// Path to the default editor to use to edit pane scrollbuffer
// Default: $EDITOR or $VISUAL
scrollback_editor "/usr/local/bin/hx"
// A fixed name to always give the Zellij session.
// Consider also setting `attach_to_session true,`
// otherwise this will error if such a session exists.
// Default: <RANDOM>
//
// session_name "My singleton session"
// When `session_name` is provided, attaches to that session
// if it is already running or creates it otherwise.
// Default: false
//
// attach_to_session true
// Toggle between having Zellij lay out panes according to a predefined set of layouts whenever possible
// Options:
// - true (default)
// - false
//
// auto_layout false
// Whether sessions should be serialized to the cache folder (including their tabs/panes, cwds and running commands) so that they can later be resurrected
// Options:
// - true (default)
// - false
//
scrollback_editor "hx"
session_serialization true
// Whether pane viewports are serialized along with the session, default is false
// Options:
// - true
// - false (default)
//
serialize_pane_viewport true
// Scrollback lines to serialize along with the pane viewport when serializing sessions, 0
// defaults to the scrollback size. If this number is higher than the scrollback size, it will
// also default to the scrollback size. This does nothing if `serialize_pane_viewport` is not true.
//
scrollback_lines_to_serialize 100000
// Enable or disable the rendering of styled and colored underlines (undercurl).
// May need to be disabled for certain unsupported terminals
// (Requires restart)
// Default: true
//
// styled_underlines false
// How often in seconds sessions are serialized
//
// serialization_interval 10000
// Enable or disable writing of session metadata to disk (if disabled, other sessions might not know
// metadata info on this session)
// (Requires restart)
// Default: false
//
disable_session_metadata false
// Enable or disable support for the enhanced Kitty Keyboard Protocol (the host terminal must also support it)
// (Requires restart)
// Default: true (if the host terminal supports it)
//
// support_kitty_keyboard_protocol false
// Whether to stack panes when resizing beyond a certain size
// Default: true
//
// stacked_resize false
// Whether to show tips on startup
// Default: true
//
show_startup_tips false
// Whether to show release notes on first version run
// Default: true
//
// show_release_notes false
web_client {
cursor_blink false
cursor_style "block"
cursor_inactive_style "outline"
font "Iosevka Fixed"
}
+5 -5
View File
@@ -1,4 +1,9 @@
layout {
pane {
borderless true
size 1
plugin location="zellij:compact-bar"
}
pane split_direction="horizontal" {
pane {
command "hx"
@@ -11,9 +16,4 @@ layout {
size "25%"
}
}
pane {
borderless true
size 1
plugin location="zellij:compact-bar"
}
}
-18
View File
@@ -1,18 +0,0 @@
layout {
pane {
borderless true
size 1
plugin location="zellij:compact-bar"
}
pane split_direction="horizontal" {
pane {
edit "."
focus true
size "75%"
borderless true
}
pane {
size "25%"
}
}
}
+25
View File
@@ -0,0 +1,25 @@
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"
}
}
}
}
+5 -3
View File
@@ -1,4 +1,9 @@
layout {
pane {
borderless true
size 1
plugin location="zellij:compact-bar"
}
pane split_direction="vertical" {
pane {
edit "."
@@ -16,7 +21,4 @@ layout {
}
}
}
pane borderless=true size=1 {
plugin location="zellij:compact-bar"
}
}
-22
View File
@@ -1,22 +0,0 @@
layout {
tab_template name="ui" {
pane {
borderless true
size 1
plugin location="zellij:compact-bar"
}
children
}
default_tab_template {
pane {
borderless true
size 1
plugin location="zellij:compact-bar"
}
pane {
pane
pane
}
}
}
+5 -5
View File
@@ -1,12 +1,12 @@
layout {
pane split_direction="vertical" {
pane {
name "Terminal"
}
}
pane {
borderless true
size 1
plugin location="zellij:compact-bar"
}
pane split_direction="vertical" {
pane {
name "Terminal"
}
}
}
+14 -10
View File
@@ -1,5 +1,5 @@
[init]
templateDir = /home/avinal/.git-template
templateDir = ~/.git-template
[rh-pre-commit]
checkSecrets = true
enableLocalConfig = false
@@ -12,17 +12,21 @@
[gpg]
program = gpg
[credential]
helper = store
helper = /usr/libexec/git-core/git-credential-libsecret
[core]
editor = hx
[merge]
conflictstyle = zdiff3
[diff]
colorMoved = default
[rh-pre-commit "commit-msg"]
signOff = true
[sendemail]
smtpServer = smtp.gmail.com
smtpEncryption = tls
smtpServerPort = 587
confirm = always
suppresscc = self
smtpUser = avinal.xlvii@gmail.com
from = "Avinal Kumar <avinal.xlvii@gmail.com>"
cc = "Avinal Kumar <avinal.xlvii@gmail.com>"
smtpServer = smtp.gmail.com
smtpEncryption = tls
smtpServerPort = 587
confirm = always
suppresscc = self
smtpUser = avinal.xlvii@gmail.com
from = "Avinal Kumar <avinal.xlvii@gmail.com>"
cc = "Avinal Kumar <avinal.xlvii@gmail.com>"
+8
View File
@@ -0,0 +1,8 @@
*.bak
**/state.yml
**/*.log
# Secrets - never commit these
.wakatime.cfg
.config/gh/hosts.yml
pikvm/vnc
+26
View File
@@ -0,0 +1,26 @@
#!/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
+5 -1
View File
@@ -22,7 +22,11 @@ _darcs
^/LICENSE.*
^/COPYING
# Ignore secrets
# Ignore non-config items
archive
themes
.wakatime.cfg
logid
bootstrap
themetest.md
pikvm
+74 -154
View File
@@ -1,174 +1,94 @@
# If you come from bash you might have to change your $PATH.
export PATH=$HOME/bin:/usr/local/bin:$HOME/.local/bin:$PATH
export PATH=$PATH:/usr/local/go/bin
export PATH=$PATH:/home/avinal/go/bin
export PATH=$PATH:/home/linuxbrew/.linuxbrew/bin
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
# === Environment ===
export XDG_DATA_HOME="$HOME/.local/share"
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_STATE_HOME="$HOME/.local/state"
export XDG_CACHE_HOME="$HOME/.cache"
export TINYGOROOT="$HOME/tinygo"
export PATH="$HOME/bin:$HOME/.local/bin:/usr/local/bin:$PATH"
export PATH="$PATH:/usr/local/go/bin:$HOME/go/bin"
export PATH="$PATH:$HOME/tinygo/bin"
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
export EDITOR='hx'
export OC_EDITOR="hx"
# Generated for envman. Do not edit.
[ -s "$HOME/.config/envman/load.sh" ] && source "$HOME/.config/envman/load.sh"
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
#Path to your oh-my-zsh installation.
export ZSH="$HOME/.oh-my-zsh"
# Set name of the theme to load --- if set to "random", it will
# load a random theme each time oh-my-zsh is loaded, in which case,
# to know which specific one was loaded, run: echo $RANDOM_THEME
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
ZSH_THEME="robbyrussell"
# Set list of themes to pick from when loading at random
# Setting this variable when ZSH_THEME=random will cause zsh to load
# a theme from this variable instead of looking in $ZSH/themes/
# If set to an empty array, this variable will have no effect.
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
# Uncomment the following line to use case-sensitive completion.
CASE_SENSITIVE="true"
# Uncomment the following line to use hyphen-insensitive completion.
# Case-sensitive completion must be off. _ and - will be interchangeable.
# HYPHEN_INSENSITIVE="true"
# Uncomment one of the following lines to change the auto-update behavior
# zstyle ':omz:update' mode disabled # disable automatic updates
# zstyle ':omz:update' mode auto # update automatically without asking
# zstyle ':omz:update' mode reminder # just remind me to update when it's time
# Uncomment the following line to change how often to auto-update (in days).
# zstyle ':omz:update' frequency 13
# Uncomment the following line if pasting URLs and other text is messed up.
# DISABLE_MAGIC_FUNCTIONS="true"
#
# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"
# Uncomment the following line to disable auto-setting terminal title.
# DISABLE_AUTO_TITLE="true"
# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"
# Uncomment the following line to display red dots whilst waiting for completion.
# You can also set it to another string to have that shown instead of the default red dots.
# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f"
# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765)
# COMPLETION_WAITING_DOTS="true"
# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"
# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# You can set one of the optional three formats:
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# or set a custom format using the strftime function format specifications,
# see 'man strftime' for details.
# HIST_STAMPS="mm/dd/yyyy"
# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder
# Which plugins would you like to load?
# Standard plugins can be found in $ZSH/plugins/
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
#
plugins=(
git
zsh-autosuggestions
zsh-syntax-highlighting
dirhistory
history
kubectl
docker
wakatime
golang
fzf
fzf-tab
)
source $ZSH/oh-my-zsh.sh
# User configuration
export SSH_AUTH_SOCK="/run/user/$(id -u)/keyring/ssh"
export MANPATH="/usr/local/man:$MANPATH"
export FZF_DEFAULT_OPTS='--height 25% --layout=reverse --border'
# You may need to manually set your language environment
# Claude Code
export CLAUDE_CODE_USE_VERTEX=1
export CLOUD_ML_REGION=us-east5
export ANTHROPIC_VERTEX_PROJECT_ID=$GCP_PRODUCT_ID
## SSH auth
export SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
# === Zinit ===
ZINIT_HOME="${XDG_DATA_HOME:-$HOME/.local/share}/zinit/zinit.git"
if [ ! -d "$ZINIT_HOME" ]; then
mkdir -p "$(dirname "$ZINIT_HOME")"
git clone https://github.com/zdharma-continuum/zinit.git "$ZINIT_HOME"
fi
source "${ZINIT_HOME}/zinit.zsh"
# OMZ core libs
zinit snippet OMZL::async_prompt.zsh
zinit snippet OMZL::git.zsh
zinit snippet OMZL::prompt_info_functions.zsh
zinit snippet OMZL::theme-and-appearance.zsh
zinit snippet OMZL::key-bindings.zsh
zinit snippet OMZL::clipboard.zsh
zinit snippet OMZT::robbyrussell
# export LANG=en_US.UTF-8
# Plugins
zinit light zsh-users/zsh-autosuggestions
zinit light zsh-users/zsh-syntax-highlighting
zinit light Aloxaf/fzf-tab
# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
# export EDITOR='vim'
# else
# export EDITOR='mvim'
# fi
# OMZ plugin snippets for completions and aliases
zinit snippet OMZP::git
zinit snippet OMZP::kubectl
zinit snippet OMZP::golang
# Completion settings
# Docker completions (plugin has a subdirectory, needs ice)
zinit ice as"completion"
zinit snippet OMZP::docker/completions/_docker
# Wakatime (separate repo, not a standard OMZ plugin)
zinit light sobolevn/wakatime-zsh-plugin
# === Completions ===
autoload -Uz compinit && compinit
zinit cdreplay -q
CASE_SENSITIVE="true"
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"
zstyle ':completion:*' menu no
zstyle ':fzf-tab:complete:cd:*' fzf-preview 'ls --color $realpath'
zstyle ':fzf-tab:complete:__zoxide_z:*' fzf-preview 'ls --color $realpath'
# Compilation flags
# export ARCHFLAGS="-arch x86_64"
# Utilities for toolbox
#function _toolbox_code() {
#if [ -f /run/.containerenv ] && [ -f /run/.toolboxenv ]; then
#if cat /run/.containerenv | sed -n '2 p' | awk -F '"' 'NF>2{print $2}' | grep $1;
#alias toolbox-code='function _toolbox_code(){if [ -f /run/.containerenv ] && [ -f /run/.toolboxenv ]; then
# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
# For a full list of active aliases, run `alias`.
#
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
#
## Custom Functions
znew() {
local layout_name="$1"
local tab_name="$2"
local folder_name="$3"
zellij action new-tab --layout "$layout_name" --name "$tab_name" --cwd "$folder_name"
}
export FZF_DEFAULT_OPTS='--height 25% --layout=reverse --border'
alias work-git='git config user.email "avinal@redhat.com"'
# eval "$(starship init zsh)"
eval "$(zoxide init zsh)"
# eval "$(fzf --zsh)"
eval "$(atuin init zsh)"
# === Tool Initialization ===
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
. "$HOME/.atuin/bin/env"
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
# Atuin env (adds ~/.atuin/bin to PATH)
[ -f "$HOME/.atuin/bin/env" ] && . "$HOME/.atuin/bin/env"
eval "$(zoxide init zsh)"
unalias zi 2>/dev/null; alias zi='__zoxide_zi'
eval "$(atuin init zsh)"
# Atuin as autosuggestion strategy (must be after atuin init)
export ZSH_AUTOSUGGEST_STRATEGY=(atuin history completion)
# Accept autosuggestion word-by-word with Ctrl+Right
bindkey '^[[1;5C' forward-word
# === Functions ===
znew() {
zellij action new-tab --layout "$1" --name "$2" --cwd "$3"
}
# === Aliases ===
alias work-git='git config user.email "avinal@redhat.com"'
+301
View File
@@ -0,0 +1,301 @@
#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
DOTFILES_DIR="$(dirname "$SCRIPT_DIR")"
usage() {
echo "Usage: $0 <palette-name>"
echo ""
echo "Available palettes:"
for f in "$SCRIPT_DIR/palettes/"*.sh; do
basename "$f" .sh
done
exit 1
}
[[ $# -lt 1 ]] && usage
PALETTE="$SCRIPT_DIR/palettes/$1.sh"
[[ ! -f "$PALETTE" ]] && echo "Palette '$1' not found." && usage
source "$PALETTE"
strip() { echo "${1#\#}"; }
# RGB decimal from hex (for zellij)
rgb() {
local hex="${1#\#}"
printf "%d %d %d" "0x${hex:0:2}" "0x${hex:2:2}" "0x${hex:4:2}"
}
echo "Applying theme: $THEME_NAME"
echo "================================"
# --- Ghostty theme ---
GHOSTTY_THEME="$DOTFILES_DIR/.config/ghostty/themes/$THEME_NAME"
cat > "$GHOSTTY_THEME" << EOF
palette = 0=$BLACK
palette = 1=$RED
palette = 2=$GREEN
palette = 3=$YELLOW
palette = 4=$BLUE
palette = 5=$MAGENTA
palette = 6=$CYAN
palette = 7=$WHITE
palette = 8=$BRIGHT_BLACK
palette = 9=$BRIGHT_RED
palette = 10=$BRIGHT_GREEN
palette = 11=$BRIGHT_YELLOW
palette = 12=$BRIGHT_BLUE
palette = 13=$BRIGHT_MAGENTA
palette = 14=$BRIGHT_CYAN
palette = 15=$BRIGHT_WHITE
background = $BG
foreground = $FG
cursor-color = $CURSOR
cursor-text = $BG
selection-background = $SELECTION_BG
selection-foreground = $SELECTION_FG
EOF
# Update ghostty config to reference this theme
sed -i "s/^theme = .*/theme = \"$THEME_NAME\"/" "$DOTFILES_DIR/.config/ghostty/config"
echo "[ok] Ghostty theme: $GHOSTTY_THEME"
# --- Helix ---
sed -i "s/^theme = .*/theme = \"$HELIX_THEME\"/" "$DOTFILES_DIR/.config/helix/config.toml"
echo "[ok] Helix theme: $HELIX_THEME"
# --- Alacritty ---
ALACRITTY="$DOTFILES_DIR/.config/alacritty/alacritty.toml"
if [[ -f "$ALACRITTY" ]]; then
cat > "$ALACRITTY" << EOF
[window]
padding = { x = 7, y = 5 }
dynamic_padding = true
dynamic_title = false
[font]
normal = { family = "Iosevka Term", style = "Regular" }
bold = { family = "Iosevka Term", style = "Bold" }
italic = { family = "Iosevka Term", style = "Italic" }
bold_italic = { family = "Iosevka Term", style = "Bold Italic" }
size = 14
[colors.primary]
background = "$BG"
foreground = "$FG"
[colors.cursor]
text = "$BG"
cursor = "$CURSOR"
[colors.selection]
text = "$SELECTION_FG"
background = "$SELECTION_BG"
[colors.normal]
black = "$BLACK"
red = "$RED"
green = "$GREEN"
yellow = "$YELLOW"
blue = "$BLUE"
magenta = "$MAGENTA"
cyan = "$CYAN"
white = "$WHITE"
[colors.bright]
black = "$BRIGHT_BLACK"
red = "$BRIGHT_RED"
green = "$BRIGHT_GREEN"
yellow = "$BRIGHT_YELLOW"
blue = "$BRIGHT_BLUE"
magenta = "$BRIGHT_MAGENTA"
cyan = "$BRIGHT_CYAN"
white = "$BRIGHT_WHITE"
[cursor]
style = { shape = "Underline", blinking = "On" }
[selection]
save_to_clipboard = true
EOF
echo "[ok] Alacritty colors updated"
fi
# --- Lazygit ---
LAZYGIT="$DOTFILES_DIR/.config/lazygit/config.yml"
if [[ -f "$LAZYGIT" ]]; then
python3 -c "
import sys, re
config = open('$LAZYGIT').read()
new_theme = ''' theme:
activeBorderColor:
- \"$ACCENT\"
- bold
inactiveBorderColor:
- \"$MUTED\"
selectedLineBgColor:
- \"$SURFACE\"
optionsTextColor:
- \"$CYAN\"
unstagedChangesColor:
- \"$RED\"
defaultFgColor:
- \"$FG\"'''
config = re.sub(
r' theme:.*?(?=\n\w|\ngit:|\ncustomCommands:|\nos:)',
new_theme + '\n',
config,
flags=re.DOTALL
)
open('$LAZYGIT', 'w').write(config)
"
echo "[ok] Lazygit theme updated"
fi
# --- Zellij ---
ZELLIJ="$DOTFILES_DIR/.config/zellij/config.kdl"
if [[ -f "$ZELLIJ" ]]; then
python3 -c "
import re
config = open('$ZELLIJ').read()
new_theme = '''themes {
$THEME_NAME {
text_unselected {
base $(rgb "$FG")
background $(rgb "$SURFACE")
emphasis_0 $(rgb "$RED")
emphasis_1 $(rgb "$CYAN")
emphasis_2 $(rgb "$GREEN")
emphasis_3 $(rgb "$MAGENTA")
}
text_selected {
base $(rgb "$BRIGHT_WHITE")
background $(rgb "$SELECTION_BG")
emphasis_0 $(rgb "$RED")
emphasis_1 $(rgb "$CYAN")
emphasis_2 $(rgb "$GREEN")
emphasis_3 $(rgb "$MAGENTA")
}
ribbon_selected {
base $(rgb "$BG")
background $(rgb "$GREEN")
emphasis_0 $(rgb "$RED")
emphasis_1 $(rgb "$YELLOW")
emphasis_2 $(rgb "$MAGENTA")
emphasis_3 $(rgb "$BLUE")
}
ribbon_unselected {
base $(rgb "$BG")
background $(rgb "$WHITE")
emphasis_0 $(rgb "$RED")
emphasis_1 $(rgb "$FG")
emphasis_2 $(rgb "$BLUE")
emphasis_3 $(rgb "$MAGENTA")
}
table_title {
base $(rgb "$GREEN")
background 0
emphasis_0 $(rgb "$RED")
emphasis_1 $(rgb "$CYAN")
emphasis_2 $(rgb "$GREEN")
emphasis_3 $(rgb "$MAGENTA")
}
table_cell_selected {
base $(rgb "$BRIGHT_WHITE")
background $(rgb "$SELECTION_BG")
emphasis_0 $(rgb "$RED")
emphasis_1 $(rgb "$CYAN")
emphasis_2 $(rgb "$GREEN")
emphasis_3 $(rgb "$MAGENTA")
}
table_cell_unselected {
base $(rgb "$FG")
background $(rgb "$SURFACE")
emphasis_0 $(rgb "$RED")
emphasis_1 $(rgb "$CYAN")
emphasis_2 $(rgb "$GREEN")
emphasis_3 $(rgb "$MAGENTA")
}
list_selected {
base $(rgb "$BRIGHT_WHITE")
background $(rgb "$SELECTION_BG")
emphasis_0 $(rgb "$RED")
emphasis_1 $(rgb "$CYAN")
emphasis_2 $(rgb "$GREEN")
emphasis_3 $(rgb "$MAGENTA")
}
list_unselected {
base $(rgb "$FG")
background $(rgb "$SURFACE")
emphasis_0 $(rgb "$RED")
emphasis_1 $(rgb "$CYAN")
emphasis_2 $(rgb "$GREEN")
emphasis_3 $(rgb "$MAGENTA")
}
frame_selected {
base $(rgb "$GREEN")
background 0
emphasis_0 $(rgb "$RED")
emphasis_1 $(rgb "$CYAN")
emphasis_2 $(rgb "$MAGENTA")
emphasis_3 0
}
frame_highlight {
base $(rgb "$YELLOW")
background 0
emphasis_0 $(rgb "$YELLOW")
emphasis_1 $(rgb "$YELLOW")
emphasis_2 $(rgb "$YELLOW")
emphasis_3 $(rgb "$YELLOW")
}
exit_code_success {
base $(rgb "$GREEN")
background 0
emphasis_0 $(rgb "$CYAN")
emphasis_1 $(rgb "$SURFACE")
emphasis_2 $(rgb "$MAGENTA")
emphasis_3 $(rgb "$BLUE")
}
exit_code_error {
base $(rgb "$RED")
background 0
emphasis_0 $(rgb "$YELLOW")
emphasis_1 0
emphasis_2 0
emphasis_3 0
}
multiplayer_user_colors {
player_1 $(rgb "$MAGENTA")
player_2 $(rgb "$BLUE")
player_3 0
player_4 $(rgb "$YELLOW")
player_5 $(rgb "$CYAN")
player_6 0
player_7 $(rgb "$RED")
player_8 0
player_9 0
player_10 0
}
}
}'''
config = re.sub(r'themes \{.*?\n\}', new_theme, config, flags=re.DOTALL)
config = re.sub(r'theme \".*?\"', 'theme \"$THEME_NAME\"', config)
open('$ZELLIJ', 'w').write(config)
"
echo "[ok] Zellij theme: $THEME_NAME"
fi
echo "================================"
echo "Done! Restart your tools to see changes."
echo "Helix theme is set in config, no restart needed for new files."
+50
View File
@@ -0,0 +1,50 @@
# vim_dark_high_contrast - from Helix editor theme
# Source: /usr/lib64/helix/runtime/themes/vim_dark_high_contrast.toml
THEME_NAME="vim_dark_high_contrast"
HELIX_THEME="vim_dark_high_contrast"
# Base
BG="#000000"
FG="#c1c9d2"
CURSOR="#c1c9d2"
SELECTION_BG="#3e4043"
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="#742833"
DARK_GREEN="#00643c"
DARK_YELLOW="#6e3500"
DARK_BLUE="#2c4074"
DARK_MAGENTA="#602864"
DARK_CYAN="#144c71"
DARK_WHITE="#3e4043"
# Semantic
ACCENT="$CYAN"
SUCCESS="$GREEN"
WARNING="$YELLOW"
ERROR="$RED"
INFO="$BLUE"
MUTED="$BRIGHT_BLACK"
SURFACE="$DARK_WHITE"