Initial dotfiles: placeholders for Fish, Starship, Ghostty, Zellij
This commit is contained in:
commit
f56989c768
8
.chezmoi.toml.tmpl
Normal file
8
.chezmoi.toml.tmpl
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# Chezmoi config — prompted on first `chezmoi init`
|
||||||
|
# Values are stored in ~/.config/chezmoi/chezmoi.toml
|
||||||
|
|
||||||
|
[data]
|
||||||
|
name = "{{ promptString "Your name" }}"
|
||||||
|
email = "{{ promptString "Your email" }}"
|
||||||
|
# "workstation" for dev rig, "server" for proxmox/nas nodes
|
||||||
|
machine_type = "{{ promptChoice "Machine type" (list "workstation" "server") }}"
|
||||||
8
.chezmoiignore
Normal file
8
.chezmoiignore
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# Ignore workstation-only configs on servers
|
||||||
|
{{ if eq .machine_type "server" }}
|
||||||
|
dot_config/ghostty
|
||||||
|
dot_config/zellij
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
README.md
|
||||||
|
LICENSE
|
||||||
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
*~
|
||||||
|
.DS_Store
|
||||||
32
README.md
Normal file
32
README.md
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
# Dotfiles
|
||||||
|
|
||||||
|
Managed by [Chezmoi](https://www.chezmoi.io/). Deployed by the `cli_modern` Ansible role.
|
||||||
|
|
||||||
|
## What's managed
|
||||||
|
|
||||||
|
| Config | Path | Notes |
|
||||||
|
|--------|------|-------|
|
||||||
|
| Fish shell | `~/.config/fish/config.fish` | Aliases, env vars, plugin list |
|
||||||
|
| Starship | `~/.config/starship.toml` | Prompt theme |
|
||||||
|
| Ghostty | `~/.config/ghostty/config` | Workstations only |
|
||||||
|
| Zellij | `~/.config/zellij/config.kdl` | Workstations only |
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# First time on a new machine
|
||||||
|
chezmoi init git@your-gitea:herbygitea/dotfiles.git
|
||||||
|
chezmoi apply
|
||||||
|
|
||||||
|
# After editing a config locally
|
||||||
|
chezmoi re-add
|
||||||
|
|
||||||
|
# Pull latest from repo
|
||||||
|
chezmoi update
|
||||||
|
```
|
||||||
|
|
||||||
|
## Machine types
|
||||||
|
|
||||||
|
Chezmoi prompts for `machine_type` on init:
|
||||||
|
- **workstation** — gets everything (Fish, Starship, Ghostty, Zellij)
|
||||||
|
- **server** — skips Ghostty and Zellij (no GUI needed)
|
||||||
51
dot_config/fish/config.fish
Normal file
51
dot_config/fish/config.fish
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# ┌──────────────────────────────────────────────────────────┐
|
||||||
|
# │ PLACEHOLDER — replace with your actual Fish config │
|
||||||
|
# │ This file is managed by Chezmoi. │
|
||||||
|
# │ Edit the source: chezmoi edit ~/.config/fish/config.fish│
|
||||||
|
# └──────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
|
if status is-interactive
|
||||||
|
|
||||||
|
# ── Prompt ──────────────────────────────────────────────
|
||||||
|
starship init fish | source
|
||||||
|
|
||||||
|
# ── Navigation ──────────────────────────────────────────
|
||||||
|
zoxide init fish | source
|
||||||
|
|
||||||
|
# ── fzf ─────────────────────────────────────────────────
|
||||||
|
set -gx FZF_DEFAULT_OPTS "--height 40% --layout=reverse --border --info=inline"
|
||||||
|
|
||||||
|
# ── Aliases ─────────────────────────────────────────────
|
||||||
|
alias ls "eza --icons --group-directories-first"
|
||||||
|
alias ll "eza -la --icons --group-directories-first --git"
|
||||||
|
alias lt "eza --tree --level=2 --icons"
|
||||||
|
alias cat "bat --paging=never"
|
||||||
|
alias catp "bat"
|
||||||
|
|
||||||
|
# Git
|
||||||
|
alias gs "git status"
|
||||||
|
alias gd "git diff"
|
||||||
|
alias gl "git log --oneline -20"
|
||||||
|
alias gp "git pull"
|
||||||
|
|
||||||
|
# Docker
|
||||||
|
alias dc "docker compose"
|
||||||
|
alias dps "docker ps --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}'"
|
||||||
|
alias dlogs "docker compose logs -f"
|
||||||
|
|
||||||
|
# Safety nets
|
||||||
|
alias rm "rm -i"
|
||||||
|
alias mv "mv -i"
|
||||||
|
alias cp "cp -i"
|
||||||
|
|
||||||
|
# ── Environment ─────────────────────────────────────────
|
||||||
|
set -gx EDITOR vim
|
||||||
|
set -gx VISUAL vim
|
||||||
|
set -g fish_greeting
|
||||||
|
|
||||||
|
# ── System Info (login shells only) ─────────────────────
|
||||||
|
if status is-login
|
||||||
|
fastfetch
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
5
dot_config/fish/fish_plugins
Normal file
5
dot_config/fish/fish_plugins
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
jorgebucaran/fisher
|
||||||
|
PatrickF1/fzf.fish
|
||||||
|
jethrokuan/z
|
||||||
|
meaningful-ooo/sponge
|
||||||
|
jorgebucaran/autopair.fish
|
||||||
33
dot_config/ghostty/config
Normal file
33
dot_config/ghostty/config
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
# ┌──────────────────────────────────────────────────────────┐
|
||||||
|
# │ PLACEHOLDER — replace with your actual Ghostty config │
|
||||||
|
# │ This file is managed by Chezmoi. │
|
||||||
|
# │ Edit the source: chezmoi edit ~/.config/ghostty/config │
|
||||||
|
# └──────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
|
# Font
|
||||||
|
font-family = JetBrainsMono Nerd Font
|
||||||
|
font-size = 14
|
||||||
|
|
||||||
|
# Theme — pick one and uncomment, or paste your custom palette below
|
||||||
|
# theme = catppuccin-mocha
|
||||||
|
# theme = tokyo-night
|
||||||
|
# theme = dracula
|
||||||
|
# theme = gruvbox-dark
|
||||||
|
|
||||||
|
# Window
|
||||||
|
window-padding-x = 8
|
||||||
|
window-padding-y = 4
|
||||||
|
window-decoration = auto
|
||||||
|
|
||||||
|
# Cursor
|
||||||
|
cursor-style = block
|
||||||
|
cursor-style-blink = true
|
||||||
|
|
||||||
|
# Shell — Fish is set as login shell by Ansible, Ghostty inherits it
|
||||||
|
# shell-integration = fish
|
||||||
|
|
||||||
|
# Scrollback
|
||||||
|
scrollback-limit = 10000
|
||||||
|
|
||||||
|
# Clipboard
|
||||||
|
copy-on-select = clipboard
|
||||||
74
dot_config/starship.toml
Normal file
74
dot_config/starship.toml
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
# ┌──────────────────────────────────────────────────────────┐
|
||||||
|
# │ PLACEHOLDER — replace with your p10k-style config │
|
||||||
|
# │ This file is managed by Chezmoi. │
|
||||||
|
# │ Edit the source: chezmoi edit ~/.config/starship.toml │
|
||||||
|
# │ │
|
||||||
|
# │ NOTE: Starship reads from ~/.config/starship.toml │
|
||||||
|
# │ Chezmoi maps this file there via the directory layout. │
|
||||||
|
# └──────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
|
command_timeout = 1000
|
||||||
|
add_newline = true
|
||||||
|
|
||||||
|
format = """
|
||||||
|
$username\
|
||||||
|
$hostname\
|
||||||
|
$directory\
|
||||||
|
$git_branch\
|
||||||
|
$git_status\
|
||||||
|
$python\
|
||||||
|
$golang\
|
||||||
|
$nodejs\
|
||||||
|
$docker_context\
|
||||||
|
$cmd_duration\
|
||||||
|
$line_break\
|
||||||
|
$character"""
|
||||||
|
|
||||||
|
[character]
|
||||||
|
success_symbol = "[❯](bold green)"
|
||||||
|
error_symbol = "[❯](bold red)"
|
||||||
|
|
||||||
|
[directory]
|
||||||
|
truncation_length = 4
|
||||||
|
truncation_symbol = "…/"
|
||||||
|
truncate_to_repo = true
|
||||||
|
style = "bold cyan"
|
||||||
|
|
||||||
|
[git_branch]
|
||||||
|
format = "[$symbol$branch(:$remote_branch)]($style) "
|
||||||
|
symbol = " "
|
||||||
|
style = "bold purple"
|
||||||
|
|
||||||
|
[git_status]
|
||||||
|
format = '([\[$all_status$ahead_behind\]]($style) )'
|
||||||
|
style = "bold red"
|
||||||
|
|
||||||
|
[python]
|
||||||
|
format = '[${symbol}(${version} )(\($virtualenv\) )]($style)'
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[golang]
|
||||||
|
format = "[$symbol($version )]($style)"
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[nodejs]
|
||||||
|
format = "[$symbol($version )]($style)"
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
[docker_context]
|
||||||
|
format = "[$symbol$context]($style) "
|
||||||
|
symbol = " "
|
||||||
|
only_with_files = true
|
||||||
|
|
||||||
|
[cmd_duration]
|
||||||
|
min_time = 2_000
|
||||||
|
format = "[$duration]($style) "
|
||||||
|
|
||||||
|
[username]
|
||||||
|
show_always = false
|
||||||
|
format = "[$user]($style)@"
|
||||||
|
|
||||||
|
[hostname]
|
||||||
|
ssh_only = true
|
||||||
|
format = "[$ssh_symbol$hostname]($style) "
|
||||||
|
ssh_symbol = "🌐 "
|
||||||
26
dot_config/zellij/config.kdl
Normal file
26
dot_config/zellij/config.kdl
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
// ┌──────────────────────────────────────────────────────────┐
|
||||||
|
// │ PLACEHOLDER — replace with your actual Zellij config │
|
||||||
|
// │ This file is managed by Chezmoi. │
|
||||||
|
// │ Edit the source: chezmoi edit ~/.config/zellij/config.kdl │
|
||||||
|
// └──────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
|
// Theme — uncomment one or define custom below
|
||||||
|
// theme "catppuccin-mocha"
|
||||||
|
// theme "dracula"
|
||||||
|
// theme "tokyo-night"
|
||||||
|
|
||||||
|
// Default shell
|
||||||
|
default_shell "fish"
|
||||||
|
|
||||||
|
// UI
|
||||||
|
pane_frames true
|
||||||
|
default_layout "compact"
|
||||||
|
|
||||||
|
// Mouse
|
||||||
|
mouse_mode true
|
||||||
|
|
||||||
|
// Copy
|
||||||
|
copy_on_select true
|
||||||
|
|
||||||
|
// Scrollback
|
||||||
|
scroll_buffer_size 10000
|
||||||
Loading…
Reference in New Issue
Block a user