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