Configuracion personal de entorno de desarrollo — Windows + Linux.
Un comando por sistema operativo, paridad completa entre ambos:
| Linux | Windows | |
|---|---|---|
| Instalar | curl … install.sh | bash |
irm … install.ps1 | iex |
| Bootstrap | bootstrap.sh |
bootstrap.ps1 |
| Desinstalar | uninstall.sh |
uninstall.ps1 |
| Repo | Visibilidad | Contiene |
|---|---|---|
dotfiles (este) |
publico | scripts de setup + configs no sensibles (shell, terminal, git principal) |
dotfiles-vault |
privado | claves SSH (encriptadas), identidades git con emails, bookmarks |
Lo sensible vive en el repo privado para que este pueda ser publico sin exponer secretos.
Instalacion inicial (no requiere SSH; baja este repo publico via curl):
curl -fsSL https://raw.githubusercontent.com/kevincharp/dotfiles/main/install.sh | bashEl instalador es interactivo: clona lo publico y te pregunta como autenticarte para clonar el vault privado (gh / SSH / saltar).
Actualizacion (publico + vault):
bash ~/.dotfiles/install.shSolo actualizar repos sin ejecutar bootstrap:
bash ~/.dotfiles/install.sh --update-onlyInstalacion inicial (requiere Git for Windows ya instalado — ver Paso 1):
irm https://raw.githubusercontent.com/kevincharp/dotfiles/main/install.ps1 | iexIgual que en Linux, es interactivo: clona lo publico y te pregunta como autenticarte para clonar el vault privado (gh / SSH / saltar).
Si PowerShell bloquea el script por la Execution Policy, ejecutalo asi:
powershell -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/kevincharp/dotfiles/main/install.ps1 | iex"
Actualizacion (con el repo ya clonado):
pwsh -File ~/.dotfiles/install.ps1Ver detalles y flags en Setup en maquina nueva → Windows más abajo.
Un comando por sistema operativo. No hay deteccion automatica de SO: en Linux corres el
curl, en Windows elirm. Ambos hacen lo mismo (clonar repos + bootstrap + selector de herramientas), pero usan el gestor de paquetes nativo de cada sistema (dnf/apt/pacman vs winget).
.dotfiles/
├── .editorconfig # Formato: utf-8, LF, indent por lenguaje
├── .gitignore
├── install.sh # Instalador interactivo Linux (publico + vault)
├── install.ps1 # Instalador interactivo Windows (publico + vault)
├── uninstall.sh # Desinstalador Linux
├── uninstall.ps1 # Desinstalador Windows
├── update.sh # Atajo de actualizacion (delega en install.sh)
├── bootstrap.ps1 # Setup automatico (Windows)
├── bootstrap.sh # Setup automatico (Linux)
├── README.md
├── .claude/ # Claude Code configuration
│ └── settings.json # Global settings (hooks, plugins habilitados, model)
├── git/
│ ├── config # gitconfig principal (includeIf por remoto)
│ └── ignore # gitignore global
├── shell/
│ ├── profile.ps1 # Perfil PowerShell 7 (Windows)
│ ├── bashrc # Perfil Bash (Linux / Git Bash)
│ ├── bash_profile # Loader de bashrc
│ ├── zshrc # Perfil Zsh (Linux / macOS) — espejo de bashrc
│ ├── zprofile # Login shell zsh (carga ~/.profile)
│ └── themes/
│ └── claude-code.omp.json # Tema Oh My Posh custom
├── terminal/
│ ├── settings.json # Windows Terminal (symlink)
│ └── ptyxis.dconf # Ptyxis / Fedora (dump dconf)
├── apps/ # Apps de escritorio (Flatpak) — solo Linux
│ ├── flatpak-apps.txt # Receta Flatpak: apps de Flathub (id|nombre|app-id)
│ └── build-flatpak-app.sh # Instala una app de Flathub (p.ej. Teams)
├── gnome/ # Config del escritorio GNOME (dumps dconf)
│ ├── media-keys.dconf # Atajos custom (Super+E/W/B/Q/C, Ctrl+Alt+T, Ctrl+Space)
│ ├── wm-keybindings.dconf # Atajos de ventanas (Super+D)
│ ├── dash-to-dock.dconf # Config del dock
│ ├── blur-my-shell.dconf # Blur de ventanas (efecto glass de Ulauncher)
│ ├── gpaste.dconf # GPaste (Alt+Super+V, historial)
│ └── shell.dconf # Favoritos del dock + extensiones habilitadas
└── ulauncher/ # Lanzador de apps (Spotlight) — solo Linux
├── settings.json # Preferencias (symlink)
├── shortcuts.json # Atajos de busqueda web (symlink)
├── autostart.desktop # Arranque al inicio (copia → ~/.config/autostart)
└── user-themes/ # Temas custom (Liquid Glass dark/light, symlink)
Terminales y GNOME usan dconf, no symlinks. Windows Terminal y el shell se editan en el repo y se reflejan al instante (symlink). En cambio Ptyxis y GNOME guardan su config en la base de datos
dconf, que no es un archivo: se sincroniza a mano con los helpersptyxis-save/gnome-save(sistema → repo) yptyxis-load/gnome-load(repo → sistema). Ver "Flujo de actualizacion".
Las identidades git (
config-personal/work/cei_walle),ssh/ybookmarks/NO estan aca: viven en el repo privado dotfiles-vault.
Nota: Neovim se instala como binario (
dnf/winget) pero no se incluye configuracion en el repo. Cada vez se arranca pelado para configurarlo desde cero segun la maquina.
Para tener una app de escritorio nativa —el caso tipico es Teams, donde las
videollamadas requieren WebRTC + codecs que solo trae Chromium— se instala por
Flatpak desde Flathub: baja el binario ya armado, aislado
en su sandbox, y crea el .desktop (sin compilar). Webs simples (Gmail, Outlook)
se usan directamente desde el navegador, no se empaquetan.
Google Chrome (id chrome del catalogo) se instala aparte via el .rpm
oficial de Google, que ademas deja el repo configurado para que las updates lleguen
por dnf update. Solo Fedora/dnf.
Recetas versionadas. Las apps se declaran en apps/flatpak-apps.txt
(id|Nombre|app-id-de-flathub). Elegir la app en el selector del bootstrap la
instala desde Flathub — mismo set en todas tus PCs.
- Instalar via bootstrap: en el selector, categoria
apps(Teams). - Instalar a mano:
flatpak-app <id>(funcion de shell). Sin args lista las apps de la receta. - Agregar una app nueva: suma una linea a
apps/flatpak-apps.txtcon su app-id de Flathub, y correflatpak-app <id>.
Flathub completo a nivel usuario: Fedora trae Flathub
filtered(censurado) y no lista todas las apps (p.ej. teams-for-linux). El bootstrap/flatpak-appagregan el remote oficial completo con--user(sin sudo, sin tocar el sistema). Las apps Flatpak no son symlinks:uninstall.shlas quita conflatpak uninstallrecorriendo la receta.
Escenario: instalaste Fedora desde cero, no tenes claves SSH todavia.
- El repo publico se baja sin credenciales (curl / HTTPS). Trae los scripts.
- El vault privado necesita autenticacion — el instalador te ofrece:
- gh (recomendado):
gh auth loginpor navegador, sin copiar tokens. - SSH: si ya cargaste una clave manualmente.
- saltar: instala solo lo publico; aplicas el vault despues.
- gh (recomendado):
- El bootstrap desencripta las claves del vault con
age(pide la passphrase una vez) y las deja en~/.ssh/. - De ahi en mas usas SSH para todo:
cd ~/.dotfiles && git remote set-url origin git@github.com:kevincharp/dotfiles.git
El huevo-y-gallina (necesitas SSH para bajar las claves que dan SSH) se rompe aportando una credencial inicial: tu login de GitHub via
gh.
Usa el metodo de instalacion rapida descripto arriba. El script se encarga de todo.
Estos programas se instalan manualmente adrede:
| Programa | Link | Por que manual |
|---|---|---|
| VSCode System Installer x64 | Descargar | El System Installer agrega code al PATH global. El de winget usa el User Installer y puede no quedar en el PATH. |
| Python instalador oficial amd64 | Descargar | El instalador oficial tiene "Add Python to PATH". El de winget instala py.exe en su lugar. Marcar "Add Python to PATH" durante la instalacion. |
| Git for Windows | Descargar | El instalador permite configurar line endings, editor y SSH. Opciones recomendadas: editor Neovim, line endings "as-is", SSH incluido en Git. |
Opcion recomendada — via install.ps1 (clona repos + vault + bootstrap):
# Instalacion inicial (desde cualquier lado)
irm https://raw.githubusercontent.com/kevincharp/dotfiles/main/install.ps1 | iex
# Con el repo ya clonado
pwsh -File "$HOME\.dotfiles\install.ps1"
# Con AWS/Bedrock (maquina laboral)
pwsh -File "$HOME\.dotfiles\install.ps1" -WithAws
# Solo actualizar repos sin ejecutar bootstrap
pwsh -File "$HOME\.dotfiles\install.ps1" -UpdateOnlyOpcion manual — clonar y correr el bootstrap directo (si ya tenes el vault):
git clone git@github.com-kevincharp:kevincharp/dotfiles.git "$HOME\.dotfiles"
cd "$HOME\.dotfiles"
pwsh -ExecutionPolicy Bypass -File bootstrap.ps1 # setup completo
pwsh -ExecutionPolicy Bypass -File bootstrap.ps1 -WithAws # con AWS
pwsh -ExecutionPolicy Bypass -File bootstrap.ps1 -DryRun # preview| Flag | Descripcion |
|---|---|
-WithAws |
Pasa la config AWS al bootstrap |
-DryRun |
Preview sin ejecutar |
-SkipPackages |
Saltear paquetes (winget) |
-SkipVault |
No clonar/aplicar el vault privado |
-UpdateOnly |
Solo actualizar repos, no ejecutar bootstrap |
-VaultAuth gh|ssh|skip |
Metodo de auth no interactivo para el vault |
-Tools a,b,c |
Instalar solo esas herramientas (ver selector) |
-AllTools |
Instalar todo el catalogo sin preguntar |
| Flag | Descripcion |
|---|---|
-WithAws |
Certificados Netskope + AWS SSO |
-DryRun |
Preview sin ejecutar |
-SkipWinget |
Saltear paquetes |
-SkipModules |
Saltear modulos PowerShell |
-SkipDotfiles |
Saltear copia de dotfiles |
-Tools a,b,c |
Instalar solo esas herramientas (ver selector) |
-AllTools |
Instalar todo el catalogo sin preguntar |
git clone git@github.com-kevincharp:kevincharp/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
# Setup completo
bash bootstrap.sh
# Con AWS
bash bootstrap.sh --with-aws
# Solo ver que haria
bash bootstrap.sh --dry-run| Flag | Descripcion |
|---|---|
--with-aws |
Configuracion AWS SSO |
--dry-run |
Preview sin ejecutar |
--skip-packages |
Saltear instalacion de paquetes |
--all-tools |
Instalar todo el catalogo sin preguntar |
--tools=id1,id2 |
Instalar solo esas herramientas (ver selector) |
Al instalar, el bootstrap pregunta que herramientas instalar (util, por
ejemplo, para un Linux en pendrive donde solo queres neovim y poco mas). El
menu arranca con todo pre-marcado:
== Selector de herramientas ==
[core]
[x] 1) neovim Editor de terminal
[x] 2) ripgrep Busqueda rapida (Telescope)
...
[shell]
[x] 8) oh-my-posh Prompt con tema
...
Comandos: numeros (ej "1 3 5") | grupo (core/shell/dev/cloud/fonts) | todo | nada | ok
- Numeros (
1 3 5): alterna esas filas - Grupo (
core,shell,dev,cloud,fonts; en Windows tambienextras): alterna el grupo entero todo/nada: marca / desmarca todo- Enter vacio u
ok: confirma e instala lo marcado
Como evitar la pregunta (no interactivo):
| Quiero... | Linux | Windows |
|---|---|---|
| Todo, sin preguntar | --all-tools |
-AllTools |
| Solo algunas | --tools=neovim,glab |
-Tools neovim,glab |
| Nada de paquetes | --skip-packages |
-SkipPackages / -SkipWinget |
Prioridad:
--tools→--all-tools/--dry-run→ menu interactivo → si no hay terminal (ej.curl | bashno interactivo) instala todo como red de seguridad, para no dejar un setup a medias.
- Abrir terminal nueva para recargar el profile
- Configurar claves SSH en
~/.ssh/(elconfigya fue copiado) - Crear
~/.envcon tokens (ver seccion de tokens)
Los datos de la cuenta (account id, portal SSO, rol) son infra privada y no
se versionan: se leen de ~/.env. Defini estas variables antes de correr el
bootstrap con --with-aws / -WithAws:
AWS_SSO_START_URL=https://<tu-org>.awsapps.com/start/#
AWS_SSO_ACCOUNT_ID=<id-de-cuenta>
AWS_SSO_ROLE_NAME=<rol> # opcional (default: Bedrock_Access)
AWS_SSO_REGION=us-east-1 # opcional (default: us-east-1)El bootstrap escribe ~/.aws/config en formato sso-session (flujo PKCE: el
login abre el navegador y confirma solo, sin pedir codigo de 6 digitos).
Verificar: aws sts get-caller-identity --profile default
Renovar cuando expira: aws sso login --profile default
Los tokens se cargan desde ~/.env al iniciar la terminal. El archivo nunca se sube al repo.
GITLAB_TOKEN_KECHARPEN=glpat-xxxxxxxxxxxx
GITLAB_TOKEN_CEI_WALLE=glpat-xxxxxxxxxxxx
GITLAB_TOKEN_KEVINCHARP=glpat-xxxxxxxxxxxx
GITHUB_TOKEN_KEVINCHARP=ghp_xxxxxxxxxxxxEl bootstrap copia .claude/* a ~/.claude/ para sincronizar configuración entre máquinas.
settings.json: Configuración global (hooks, plugins habilitados víaenabledPlugins, modelo preferido, theme)settings.local.json: Permisos allow-list específicos de cada máquina (NO se versiona)
El .gitignore excluye automáticamente:
history.jsonl— Historial de conversacionessessions/— Sesiones activascache/— Caché de plugins y modelos.credentials.json— Credenciales APIplugins/installed_plugins.jsonyplugins/known_marketplaces.json— estado local con rutas absolutas por-SO (installPath/installLocation); se regeneran solos- Todos los archivos temporales y sensibles
Los plugins habilitados se declaran en settings.json (enabledPlugins), que sí se
versiona. Claude Code detecta e instala los faltantes al iniciar y mantiene su estado
local (installed_plugins.json, con la ruta del cache propia de cada SO) por fuera del
repo. Si un plugin no aparece, ejecutá /plugins para refrescar el cache.
Una vez instalado, podes actualizar los dotfiles de dos formas:
Opcion 1: Script local (mas rapido si ya tenes el repo):
bash ~/.dotfiles/install.shOpcion 2: Via curl (funciona desde cualquier lugar):
curl -fsSL https://raw.githubusercontent.com/kevincharp/dotfiles/main/install.sh | bashSolo actualizar repo sin ejecutar bootstrap:
bash ~/.dotfiles/install.sh --update-onlyEl script automaticamente:
- Detecta si el repo ya existe y hace
git pullo clona desde cero - Hace stash automatico si hay cambios sin commitear
- Ejecuta
bootstrap.shcon los mismos parametros (--with-aws,--skip-packages, etc.) - Usa HTTPS si no tenes SSH configurado (ideal para instalacion inicial)
Las configs de shell, oh-my-posh y Windows Terminal son symlinks: editas el
archivo y el cambio ya esta en el repo, solo falta git commit. Pero Ptyxis y
GNOME guardan su config en dconf (no en archivos), asi que el repo y el
sistema son dos copias separadas. Cuando cambias algo desde la GUI hay un paso
extra para capturarlo:
# 1. Cambiaste un atajo / el dock / un setting en la GUI de GNOME
gnome-save # vuelca dconf -> archivos del repo
# (ptyxis-save para la terminal)
# 2. Revisas y versionas el cambio
cd ~/.dotfiles
git diff gnome/ # ver que cambio realmente
git add gnome/ && git commit -m "feat(gnome): ..."
git pushSi te arrepentis de un cambio: el repo es tu "deshacer". Volves el archivo a
la version buena y lo re-aplicas al sistema con gnome-load:
# Cambio no guardado todavia: el repo aun tiene la version buena
gnome-load # pisa el cambio de la GUI con lo del repo
# Cambio ya commiteado: recuperas la version anterior y la re-aplicas
git checkout HEAD~1 -- gnome/media-keys.dconf
gnome-load
gnome-save/gnome-loadsincronizan todas las ramas versionadas de una sola vez. Para versionar una rama nueva, agregala a_GNOME_DCONF_MAPenshell/bashrc(y al mapa espejo enbootstrap.sh).
dconf loades aditivo: solo escribe las claves del archivo, no borra el resto. Por esoshell.dconftrae solofavorite-appsyenabled-extensions(se edita a mano) sin arrastrar el ruido del resto de/org/gnome/shell/.
En una maquina nueva, el curl ya aplica todo esto automaticamente: el
bootstrap instala las extensiones de GNOME y hace dconf load de cada rama.
Si necesitás desinstalar los dotfiles completamente (útil para testing o migración):
# Desinstalación completa (remueve symlinks, restaura backups, borra repos)
bash ~/.dotfiles/uninstall.sh
# Preview sin ejecutar
bash ~/.dotfiles/uninstall.sh --dry-run
# Desinstalar + remover paquetes instalados
bash ~/.dotfiles/uninstall.sh --remove-packages
# Sin confirmación (peligroso)
bash ~/.dotfiles/uninstall.sh --forceFlags disponibles:
--remove-packages— Desinstala paquetes instalados por el bootstrap (neovim, ripgrep, etc.)--keep-backups— No borra~/.local/backups/bootstrap/--dry-run— Muestra qué haría sin ejecutar--force— No pide confirmación (peligroso)
El script automáticamente:
- Remueve todos los symlinks creados por el bootstrap
- Restaura archivos desde el backup más reciente
- Opcionalmente desinstala paquetes (con
--remove-packages) - Borra
.dotfilesy.dotfiles-vault
Actualizar (igual que en Linux, via install.ps1):
# Desde cualquier lado
irm https://raw.githubusercontent.com/kevincharp/dotfiles/main/install.ps1 | iex
# Con el repo ya clonado
pwsh -File "$HOME\.dotfiles\install.ps1"
# Solo actualizar repos sin ejecutar bootstrap
pwsh -File "$HOME\.dotfiles\install.ps1" -UpdateOnlyEspejo de uninstall.sh:
# Desinstalacion completa (remueve symlinks, restaura backups, borra repos)
pwsh -File "$HOME\.dotfiles\uninstall.ps1"
# Preview sin ejecutar
pwsh -File "$HOME\.dotfiles\uninstall.ps1" -DryRun
# Desinstalar + remover paquetes winget instalados
pwsh -File "$HOME\.dotfiles\uninstall.ps1" -RemovePackages
# Sin confirmacion (peligroso)
pwsh -File "$HOME\.dotfiles\uninstall.ps1" -ForceFlags disponibles:
-RemovePackages— Desinstala paquetes winget instalados por el bootstrap-KeepBackups— No borra~/.local/backups/bootstrap/-DryRun— Muestra qué haría sin ejecutar-Force— No pide confirmación (peligroso)
| Herramienta | Para que | Windows | Linux (Fedora/dnf) | Otros (apt) |
|---|---|---|---|---|
| PowerShell 7 | Shell principal (Windows) | winget | - | - |
| Oh My Posh | Prompt con tema spaceship | winget | curl script | curl script |
| Neovim | Editor de terminal (sin config en este repo) | winget | dnf | apt |
| LazyGit | UI de Git en terminal | winget | dnf (COPR atim/lazygit) |
binario GitHub |
| Node.js | Runtime JS/TS + npm | winget | dnf (nodejs npm) |
NodeSource (LTS) |
| ripgrep | Busqueda rapida (Telescope) | winget | dnf | apt |
| fzf | Busqueda difusa (Ctrl+R) | winget | dnf | apt |
| zoxide | cd inteligente con memoria |
winget | curl script | curl script |
| eza | Reemplazo moderno de ls |
- | dnf | apt (repo gierens) |
| ble.sh | Syntax highlighting en la linea de input de bash (equivalente a PSReadLine) | - (PSReadLine nativo) | tarball release | tarball release |
| zsh | Shell alternativa a bash (opcional; el bootstrap ofrece elegir login shell) | - (PowerShell nativo) | dnf | apt |
| zsh-autosuggestions | Sugerencias inline en zsh (equivalente a PSReadLine prediction) | - | git clone | git clone |
| zsh-syntax-highlighting | Syntax highlighting en zsh (equivalente a ble.sh) | - | git clone | git clone |
| age | Encriptacion de claves SSH | winget | dnf | apt |
| glab | GitLab CLI | winget | dnf | binario GitLab |
| lazyssh | TUI para gestionar conexiones SSH (estilo lazygit) | binario GitHub → ~/.local/bin |
binario GitHub → ~/.local/bin |
binario GitHub → ~/.local/bin |
| FiraCode Nerd Font | Fuente con glifos (oh-my-posh) | descarga nerd-fonts | descarga nerd-fonts | descarga nerd-fonts |
| Launcher de apps (estilo Spotlight) | Flow Launcher (Win) / Ulauncher (Linux) | winget (Flow-Launcher) |
dnf | PPA agornostal/ulauncher |
| Windows Terminal | Terminal con paneles y tabs | winget | - | - |
| AWS CLI | Acceso a Bedrock (opcional) | winget | installer oficial | installer oficial |
| GitHub CLI | PRs e issues + clonado del vault (opcional) | winget | dnf | repo oficial GitHub |
| dash-to-dock | Extension GNOME del dock | - | dnf | - |
| GPaste | Gestor de portapapeles GNOME | - | dnf | - |
| Samba | Compartir el home por SMB (app Archivos de iPhone, etc.) (opcional) | - | dnf + servicio/firewall/SELinux | - |
| OpenLogi | Config de mouse Logitech MX por HID++ (alternativa a Options+) (opcional) | - | .rpm del release + servicio de usuario | - |
En Fedora todo lo que tiene paquete nativo se instala via
dnf(para que se actualice condnf upgrade). El método por binario/curl queda como fallback solo para distros sin el paquete en repos.
Las extensiones de GNOME (dash-to-dock, GPaste) solo se instalan en Fedora con GNOME, y su configuracion se aplica desde
gnome/*.dconf(ver seccion "Ptyxis y GNOME").
Samba comparte el home (share
[homes]delsmb.confpor defecto de Fedora) y deja listo el servicio, el firewall y el booleano SELinuxsamba_enable_home_dirs. La contrasena SMB no se versiona (es secreto): definila a mano consudo smbpasswd -a <usuario>. Desde el iPhone: app Archivos → "Conectar a un servidor" →smb://<ip-de-la-pc>.
| Herramienta | Para que |
|---|---|
| VSCode | Editor principal |
| Python | Scripts, herramientas |
| Git for Windows | Control de versiones + Git Bash |
Los repos se organizan por carpeta. La identidad se aplica automaticamente via includeIf basado en la URL del remoto. Las identidades concretas (nombre/email) viven en el repo privado dotfiles-vault (git/config-personal, config-work, config-cei_walle):
| Carpeta | Perfil | SSH Alias |
|---|---|---|
~/repositorios/personal/ |
personal | github.com-kevincharp, gitlab.com-kevincharp |
~/repositorios/work/ |
work | gitlab.com-<work> |
~/repositorios/cei_walle/ |
cei_walle | gitlab.com-cei_walle |
Clonar con perfil automatico:
# PowerShell
gclone -perfil work -remoteUrl git@gitlab.com-<work>:grupo/repo.git
# Bash
gclone -p work -u git@gitlab.com-<work>:grupo/repo.gitDisponibles en PowerShell (profile.ps1), Bash (bashrc) y Zsh (zshrc). Usar spf para listar todas.
Zsh (Linux/macOS).
shell/zshrces un espejo idiomatico debashrccon la misma paleta, prompt (oh-my-posh), funciones y aliases. El equivalente a ble.sh sonzsh-autosuggestions+zsh-syntax-highlighting(clonados en~/.local/share). El bootstrap de Linux ofrece elegir el login shell (bash o zsh) y aplicachsh. Diferencias no-1:1 con bash:HISTTIMEFORMAT→setopt EXTENDED_HISTORY(se ve conhistory -i);checkwinsizees automatico en zsh;cdspell≈setopt CORRECT; y~/.zprofileno sourcea~/.zshrc(zsh lo carga solo en shells interactivos).test-bootstrap.shverifica la paridad de funciones entre.bashrcy.zshrc.
| Comando | Equivalente |
|---|---|
cat, grep, find, head, tail, tailf |
Equivalentes directos |
lss / la / ll |
Variantes de ls |
touch, cd -, mkdirp |
Como en bash |
rmrf |
rm -rf (mata procesos primero) |
export VAR=valor, unset VAR |
Variables de entorno |
which, less, echolf |
Utilidades |
z |
Navegacion inteligente (zoxide) |
| Comando | Descripcion |
|---|---|
gs / gst |
git status / git status -sb |
glo / glg |
Log grafico corto / completo |
gcmm "msg" |
git commit -m |
gco rama / gnew rama |
Checkout / checkout -b |
gsw rama |
Switch inteligente (local/remota/nueva) |
gbr / gbra |
Branch -vv / branch -a -vv |
grls |
git remote -v |
gup / gpsu |
Set upstream / push -u origin |
gsync |
Fetch + pull rebase + autostash |
gclone |
Clone + identidad local automatica |
gset-profile |
Aplicar perfil a repo existente |
ginit |
git init + perfil |
gremote |
Agregar/actualizar remote SSH |
gbrowser |
Listar repos GitLab/GitHub (solo pwsh) |
| Comando | Descripcion |
|---|---|
spf |
Listar funciones del profile |
spf -Type GIT / spf git |
Filtrar por tipo/nombre |
claude-smg |
Claude Code con Bedrock de SMG |
edit archivo |
Abrir en VSCode si esta, si no nvim |
open path / openh |
Abrir en explorador/app |
ptyxis-save / ptyxis-load |
Volcar/restaurar config de Ptyxis (dconf) (Linux) |
gnome-save / gnome-load |
Volcar/restaurar config de GNOME: atajos, dock, GPaste (Linux) |
Configuracion en terminal/settings.json:
- Perfil default: PowerShell 7
- Font: FiraCode Nerd Font Mono SemiBold (size 7)
- Tema: Ubuntu 22.04 ColorScheme
- Opacidad: 90% con acrylic
- Perfiles: PowerShell, Git Bash, Linux (WSL), Ubuntu, CMD, Windows PowerShell, Azure Cloud Shell
- Atajos de paneles:
Alt+-split abajo,Alt+.split al lado,Alt+Wcerrar panel,Ctrl+F4cerrar pestaña,Ctrl+flechas mover panel (swapPane)
FiraCode Nerd Font la instala el bootstrap automaticamente (descarga de nerd-fonts y la registra para el usuario) en Windows y Linux. Si la necesitas a mano: https://www.nerdfonts.com/font-downloads
La terminal por defecto de Fedora es Ptyxis, y la config del escritorio
(atajos, dock, extensiones) vive en dconf. Como no son archivos, no se
symlinkean: se versionan como dumps y se sincronizan con helpers.
Ptyxis (terminal/ptyxis.dconf):
- Font: FiraCode Nerd Font Mono SemiBold (size 10) — alineada con Windows Terminal
- Tema oscuro, paleta
linux, perfilkevincharp
GNOME (gnome/*.dconf), aplicado por el bootstrap en una maquina nueva:
- Atajos custom:
Ctrl+Alt+T→ Ptyxis,Super+Ehome,Super+Wweb,Super+Bbuscar,Super+Qemail,Super+Cpanel de control,Super+Descritorio - Dock (dash-to-dock): posicion abajo, transparencia dinamica, icon-size 32
- GPaste:
Alt+Super+Vpara el historial del portapapeles - Favoritos del dock + extensiones habilitadas (dash-to-dock, GPaste, background-logo)
El peso de fuente (SemiBold) esta alineado entre Windows Terminal y Ptyxis. El tamaño difiere a proposito (Win 7 / Ptyxis 10) porque las unidades de tamaño no son equivalentes entre ambos sistemas.
Para guardar/restaurar estos cambios ver "Flujo de actualizacion → Guardar cambios de Ptyxis y GNOME (dconf)".
El bootstrap crea esta estructura inspirada en Linux:
~/
├── .config/
│ ├── powershell/profile.ps1 # (solo Windows)
│ ├── git/ignore
│ └── lazygit/
├── .local/
│ ├── bin/
│ └── logs/ # logs del bootstrap
├── .cache/
├── .ssh/
│ ├── config # aliases SSH (del vault)
│ └── *.pub / * # claves (desencriptadas del vault)
├── .bashrc # (Linux / Git Bash)
├── .bash_profile # (Linux / Git Bash)
├── .zshrc # (Linux / macOS, si elegis zsh)
├── .zprofile # (Linux / macOS, si elegis zsh)
├── .gitconfig # git config principal
├── .gitconfig-personal
├── .gitconfig-work
├── .gitconfig-cei_walle
├── .editorconfig
├── .env # tokens (NO en el repo)
└── repositorios/
├── personal/
├── work/
└── cei_walle/