Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,8 @@ El preflight es de solo lectura y sin red: usa `--offline` y `--no-write-lock-fi
| Zsh y Ghostty | Configuración actual, sin cambios |
| `~/.config/fish/conf.d/99-local.fish` | Host; reservado para secretos/estado privado futuro, no creado ni gestionado por Nix |
| `flake.nix` y `nix/home.nix` | Base inactiva de Home Manager |
| Linux | La configuración pura para Linux es `homeConfigurations.jbarbat-linux`: usa `x86_64-linux`, `/home/jbarbat` y declara solo `fish` y `starship` como runtime mínimo. |
| Fish compartido | Home Manager mapea cada archivo declarado de forma explícita; no gestiona el directorio completo, historial ni variables Fish. |

El bootstrap queda explícitamente diferido a un work unit revisado. Después de instalar Nix por fuera de este repositorio, ese trabajo podrá generar el lock con:

Expand Down
54 changes: 54 additions & 0 deletions fish/functions/gbarbatdev.fish
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Open an isolated Ghostty instance with the Barbatdev profile. Usage: gbarbatdev [ghostty args...]
function gbarbatdev --description 'Open Ghostty with the Barbatdev profile'
if not command -q open
printf 'gbarbatdev: macOS open command is not available\n' >&2
return 127
end

set -l ghostty /Applications/Ghostty.app/Contents/MacOS/ghostty
if not test -x "$ghostty"
printf 'gbarbatdev: Ghostty.app is not installed in /Applications\n' >&2
return 1
end

set -l base "$HOME/.config/ghostty/config"
set -l profile "$HOME/.config/ghostty/profiles/barbatdev.conf"
if not test -r "$base"
printf 'gbarbatdev: missing readable config: %s\n' "$base" >&2
return 1
end
if not test -r "$profile"
printf 'gbarbatdev: missing readable config: %s\n' "$profile" >&2
return 1
end

set -l tmp_dir (command mktemp -d)
set -l mktemp_status $status
if test $mktemp_status -ne 0
return $mktemp_status
end
if test -z "$tmp_dir"
return 1
end

set -l config "$tmp_dir/config.ghostty"
printf 'config-file = "%s"\nconfig-file = "%s"\n' "$base" "$profile" > "$config"
set -l compose_status $status
if test $compose_status -ne 0
command rm -rf -- "$tmp_dir"
return $compose_status
end

"$ghostty" +validate-config --config-file="$config"
set -l validate_status $status
if test $validate_status -ne 0
printf 'gbarbatdev: composed Ghostty config is invalid\n' >&2
command rm -rf -- "$tmp_dir"
return $validate_status
end

open -W -na Ghostty --args --config-default-files=false --config-file="$config" --working-directory="$PWD" $argv
set -l ghostty_status $status
command rm -rf -- "$tmp_dir"
return $ghostty_status
end
54 changes: 54 additions & 0 deletions fish/functions/grefactoria.fish
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Open an isolated Ghostty instance with the RefactorIA profile. Usage: grefactoria [ghostty args...]
function grefactoria --description 'Open Ghostty with the RefactorIA profile'
if not command -q open
printf 'grefactoria: macOS open command is not available\n' >&2
return 127
end

set -l ghostty /Applications/Ghostty.app/Contents/MacOS/ghostty
if not test -x "$ghostty"
printf 'grefactoria: Ghostty.app is not installed in /Applications\n' >&2
return 1
end

set -l base "$HOME/.config/ghostty/config"
set -l profile "$HOME/.config/ghostty/profiles/refactoria.conf"
if not test -r "$base"
printf 'grefactoria: missing readable config: %s\n' "$base" >&2
return 1
end
if not test -r "$profile"
printf 'grefactoria: missing readable config: %s\n' "$profile" >&2
return 1
end

set -l tmp_dir (command mktemp -d)
set -l mktemp_status $status
if test $mktemp_status -ne 0
return $mktemp_status
end
if test -z "$tmp_dir"
return 1
end

set -l config "$tmp_dir/config.ghostty"
printf 'config-file = "%s"\nconfig-file = "%s"\n' "$base" "$profile" > "$config"
set -l compose_status $status
if test $compose_status -ne 0
command rm -rf -- "$tmp_dir"
return $compose_status
end

"$ghostty" +validate-config --config-file="$config"
set -l validate_status $status
if test $validate_status -ne 0
printf 'grefactoria: composed Ghostty config is invalid\n' >&2
command rm -rf -- "$tmp_dir"
return $validate_status
end

open -W -na Ghostty --args --config-default-files=false --config-file="$config" --working-directory="$PWD" $argv
set -l ghostty_status $status
command rm -rf -- "$tmp_dir"
return $ghostty_status
end
48 changes: 48 additions & 0 deletions fish/functions/hbarbatdev.fish
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Run Herdr with the Barbatdev profile. Usage: hbarbatdev [herdr args...]
function hbarbatdev --description 'Run Herdr with the Barbatdev profile'
if set -q HERDR_ENV
printf 'hbarbatdev: launch this preview from an external Fish shell or window, not from within Herdr\n' >&2
return 1
end

if not command -q herdr
printf 'hbarbatdev: herdr is not available\n' >&2
return 127
end

set -l base "$HOME/.config/herdr/config-base.toml"
set -l profile "$HOME/.config/herdr/profiles/barbatdev.toml"
if not test -r "$base"
printf 'hbarbatdev: missing readable config: %s\n' "$base" >&2
return 1
end
if not test -r "$profile"
printf 'hbarbatdev: missing readable config: %s\n' "$profile" >&2
return 1
end

set -l tmp_dir (command mktemp -d)
set -l mktemp_status $status
if test $mktemp_status -ne 0
return $mktemp_status
end
if test -z "$tmp_dir"
return 1
end

set -l config "$tmp_dir/config.toml"
set -l server_socket "$tmp_dir/herdr.sock"
set -l client_socket "$tmp_dir/herdr-client.sock"

command cat -- "$base" "$profile" > "$config"
set -l cat_status $status
if test $cat_status -ne 0
command rm -rf -- "$tmp_dir"
return $cat_status
end

env HERDR_CONFIG_PATH="$config" HERDR_SOCKET_PATH="$server_socket" HERDR_CLIENT_SOCKET_PATH="$client_socket" herdr --no-session $argv
set -l herdr_status $status
command rm -rf -- "$tmp_dir"
return $herdr_status
end
48 changes: 48 additions & 0 deletions fish/functions/hrefactoria.fish
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Run Herdr with the RefactorIA profile. Usage: hrefactoria [herdr args...]
function hrefactoria --description 'Run Herdr with the RefactorIA profile'
if set -q HERDR_ENV
printf 'hrefactoria: launch this preview from an external Fish shell or window, not from within Herdr\n' >&2
return 1
end

if not command -q herdr
printf 'hrefactoria: herdr is not available\n' >&2
return 127
end

set -l base "$HOME/.config/herdr/config-base.toml"
set -l profile "$HOME/.config/herdr/profiles/refactoria.toml"
if not test -r "$base"
printf 'hrefactoria: missing readable config: %s\n' "$base" >&2
return 1
end
if not test -r "$profile"
printf 'hrefactoria: missing readable config: %s\n' "$profile" >&2
return 1
end

set -l tmp_dir (command mktemp -d)
set -l mktemp_status $status
if test $mktemp_status -ne 0
return $mktemp_status
end
if test -z "$tmp_dir"
return 1
end

set -l config "$tmp_dir/config.toml"
set -l server_socket "$tmp_dir/herdr.sock"
set -l client_socket "$tmp_dir/herdr-client.sock"

command cat -- "$base" "$profile" > "$config"
set -l cat_status $status
if test $cat_status -ne 0
command rm -rf -- "$tmp_dir"
return $cat_status
end

env HERDR_CONFIG_PATH="$config" HERDR_SOCKET_PATH="$server_socket" HERDR_CLIENT_SOCKET_PATH="$client_socket" herdr --no-session $argv
set -l herdr_status $status
command rm -rf -- "$tmp_dir"
return $herdr_status
end
41 changes: 41 additions & 0 deletions fish/themes/barbatdev.fish
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Barbatdev Fish colors.

set -l base "#0B0B0A"
set -l panel "#171512"
set -l text "#F8F1E7"
set -l selection_text "#FFF7ED"
set -l accent "#F97316"
set -l active_orange "#FB923C"
set -l gold "#FBBF24"
set -l soft_orange "#FDBA74"
set -l bright_blue "#BAE6FD"
set -l error "#EF4444"
set -l muted "#B9AD9C"
set -l dim "#8C8173"
set -l selection "#7A3500"
set -l search_background "#3A1D0C"

# Syntax highlighting colors.
set -g fish_color_normal $text
set -g fish_color_command --bold $accent
set -g fish_color_keyword --bold $active_orange
set -g fish_color_quote $gold
set -g fish_color_redirection $bright_blue
set -g fish_color_end $soft_orange
set -g fish_color_error --bold $error
set -g fish_color_param $soft_orange
set -g fish_color_comment $dim
set -g fish_color_selection --background=$selection $selection_text
set -g fish_color_search_match --background=$search_background $selection_text
set -g fish_color_operator $bright_blue
set -g fish_color_escape $active_orange
set -g fish_color_autosuggestion $muted
set -g fish_color_option $soft_orange

# Completion pager colors.
set -g fish_pager_color_progress $dim
set -g fish_pager_color_prefix --bold $accent
set -g fish_pager_color_completion $text
set -g fish_pager_color_description $muted
set -g fish_pager_color_selected_background --background=$selection $selection_text
set -g fish_pager_color_secondary_background --background=$panel
25 changes: 25 additions & 0 deletions ghostty/profiles/barbatdev.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Barbatdev terminal palette. Loaded after the shared Ghostty config.
background = #0B0B0A
foreground = #F8F1E7
cursor-color = #F97316
cursor-text = #0B0B0A
selection-background = #7C2D12
selection-foreground = #F8F1E7

# Accessible ANSI colors for the graphite background.
palette = 0=#8B8378
palette = 1=#F87171
palette = 2=#34D399
palette = 3=#FBBF24
palette = 4=#60A5FA
palette = 5=#C084FC
palette = 6=#2DD4BF
palette = 7=#F8F1E7
palette = 8=#B8AEA0
palette = 9=#FCA5A5
palette = 10=#6EE7B7
palette = 11=#FCD34D
palette = 12=#93C5FD
palette = 13=#D8B4FE
palette = 14=#5EEAD4
palette = 15=#FFFFFF
27 changes: 27 additions & 0 deletions ghostty/profiles/refactoria.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# RefactorIA terminal palette. Loaded after the shared Ghostty config.
background = #0B0714
foreground = #FFFFFF
cursor-color = #7127FF
cursor-text = #0B0714
selection-background = #FFFFFF
selection-foreground = #0B0714

# ANSI semantic colors are adapted for contrast; they are not RefactorIA brand tokens.
palette = 0=#0B0714
palette = 1=#FF6B8A
palette = 2=#58E6A8
palette = 3=#FFC857
palette = 4=#8CC8FF
palette = 5=#C7A6FF
palette = 6=#66E6E6
palette = 7=#FFFFFF

# Bright ANSI variants retain the same semantic roles.
palette = 8=#8F839D
palette = 9=#FF9CB0
palette = 10=#8FF0C3
palette = 11=#FFD98A
palette = 12=#B8DDFF
palette = 13=#E1CFFF
palette = 14=#A8F2F2
palette = 15=#FFFFFF
15 changes: 15 additions & 0 deletions herdr/config-base.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Shared Herdr settings managed by Gentleman.Dots.

[keys]
# Match tmux/Zellij-style prefix muscle memory.
prefix = "ctrl+a"

# Move between agents in the sidebar.
# Avoid Herdr's built-in prefix+shift+j/k pane-swap bindings.
previous_agent = "prefix+alt+k"
next_agent = "prefix+alt+j"

# Jump straight to agent N (1..9) as listed in the sidebar.
# Use Ctrl after the prefix: Alt+number is owned by skhd/yabai spaces,
# and Shift+number did not reach Herdr reliably in the current terminal setup.
focus_agent = "prefix+ctrl+1..9"
31 changes: 31 additions & 0 deletions herdr/profiles/barbatdev.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Barbatdev/Cortex orange Herdr profile.

[theme]
# One Dark supplies stable structural defaults outside Herdr's custom palette.
name = "one-dark"
auto_switch = false

[theme.custom]
panel_bg = "#27231D"
surface0 = "#17130F"
surface1 = "#27231D"
surface_dim = "#11100E"
overlay0 = "#8E8375"
overlay1 = "#B9AD9C"
text = "#F8F1E7"
subtext0 = "#B9AD9C"
accent = "#F97316"
blue = "#60A5FA"
red = "#F87171"
green = "#34D399"
yellow = "#FBBF24"
mauve = "#A78BFA"
teal = "#2DD4BF"
peach = "#FB923C"

[ui]
accent = "#F97316"
show_agent_labels_on_pane_borders = true

[ui.toast]
delivery = "herdr"
Loading
Loading