16 Commits
v0.1.0 ... main

Author SHA1 Message Date
e546cff2b2 Update files 2023-12-18 00:35:43 +01:00
9bef22a8c1 Actualizar 'files/p10k.zsh' 2023-05-30 15:13:34 +00:00
07497cb3da Añadir 'files/p10k.zsh' 2023-05-29 15:47:32 +00:00
253448067f Update zshrc
Signed-off-by: Manuel Vergara <manuel@vergaracarmona.es>
2023-03-20 22:59:04 +01:00
5cc07d7b3d Actualización plugins omz 2022-11-25 13:19:00 +01:00
e3586294be Actualización de fichero zshrc 2022-11-25 13:18:22 +01:00
abf455a349 Actualización de fichero zshrc
Signed-off-by: Manuel Vergara <manuel@vergaracarmona.es>
2022-11-24 19:19:08 +01:00
70b44df5f2 Actualización de fichero zshrc
Signed-off-by: Manuel Vergara <manuel@vergaracarmona.es>
2022-11-22 10:03:12 +01:00
c78e150020 Actualización de fichero zshrc
Signed-off-by: Manuel Vergara <manuel@vergaracarmona.es>
2022-11-18 19:04:32 +01:00
7c28885894 Incluyo el emulador Tilix
Signed-off-by: Manuel Vergara <manuel@vergaracarmona.es>
2022-11-17 17:21:15 +01:00
10f393197e Actualización de fichero zshrc
Signed-off-by: Manuel Vergara <manuel@vergaracarmona.es>
2022-11-17 12:58:27 +01:00
6d2e437da9 Añado tutorial 2022-11-04 19:11:01 +01:00
1d4bcf1317 Enlazo plugins 2022-11-04 19:01:59 +01:00
5f52697490 Corrección 2022-11-04 18:59:04 +01:00
4b505476c4 Añado más plugins 2022-11-04 01:26:19 +01:00
efef1b72ff Pequeños cambios 2022-10-25 17:45:00 +02:00
3 changed files with 1800 additions and 17 deletions

120
README.md
View File

@@ -4,7 +4,9 @@ Configuración personal de la shell
**Índice de contenidos:** **Índice de contenidos:**
- [Configuración personal de la shell](#configuración-personal-de-la-shell) - [Configuración personal de la shell](#configuración-personal-de-la-shell)
- [Descripción](#descripción) - [Descripción](#descripción)
- [Terminator](#terminator) - [Terminal](#terminal)
- [Terminator](#terminator)
- [Tilix](#tilix)
- [zsh](#zsh) - [zsh](#zsh)
- [Oh my zsh!](#oh-my-zsh) - [Oh my zsh!](#oh-my-zsh)
- [Theme](#theme) - [Theme](#theme)
@@ -27,8 +29,31 @@ Las opciones barajadas han sido:
- fish - fish
- bash - bash
También puedes ojear el tutorial "[Zsh: Configuración, personalización y algo más](https://vergaracarmona.es/zsh/)".
# Terminator # Terminal
Podemos instalar la que más nos guste, hay varias opciones como:
- [Terminator](https://gnome-terminator.org/)
- [gnome terminal](https://help.gnome.org/users/gnome-terminal/stable/)
- [Yakuake](https://apps.kde.org/yakuake/)
- [Tilda](https://github.com/lanoxx/tilda)
- [Terminus](https://github.com/inteI-cloud/terminus)
- [Tilix](https://gnunn1.github.io/tilix-web/)
He estado años con gnome terminal y realmente es muy estable. Pase a Terminator por lo altamente configurable que es. Ahora estoy un poco más minimalista con Tilix. Mañana la shell dirá.
<div id="predeterminar">
Si tienes varias terminales instaladas, puedes escoger la que quieres tener por defecto en Debian/Ubuntu con el siguiente comando:
```shell
sudo update-alternatives --config x-terminal-emulator
```
Esto nos muestrará un listado con las aplicaciones de terminal que existen en nuestro sistema. La terminal que tengamos por defecto estará marcada con un asterisco. Ahora, para cambiar a la terminal que queremos debemos introducir el número del listado que corresponde con esa terminal y pulsar la intro.
</div>
## Terminator
[`Terminator`](https://github.com/gnome-terminator/terminator) es un emulador de terminal, proyecto de gnome, que proporciona funcionalidades como dividir horizontalmente o verticalmente, se puede dar un título personalizado a cada terminal, estructura multigrid, ahorro de diseños, etc. [`Terminator`](https://github.com/gnome-terminator/terminator) es un emulador de terminal, proyecto de gnome, que proporciona funcionalidades como dividir horizontalmente o verticalmente, se puede dar un título personalizado a cada terminal, estructura multigrid, ahorro de diseños, etc.
En la barra de título hay un botón que abre el menú de agrupación desde donde se puede controlar múltiples terminales simultáneamente. Esto significa que se escribirán al mismo tiempo. Es útil si quieres mandar un comando de actualización de la ventana, un `clear` o simplemente cerrarlas. Con la agrupación se activará el *broadcast group*, se puede desactivar (Broadcast off) o agrupar a todos los terminal aunque no sean del mismo grupo(Broadcast all). En la barra de título hay un botón que abre el menú de agrupación desde donde se puede controlar múltiples terminales simultáneamente. Esto significa que se escribirán al mismo tiempo. Es útil si quieres mandar un comando de actualización de la ventana, un `clear` o simplemente cerrarlas. Con la agrupación se activará el *broadcast group*, se puede desactivar (Broadcast off) o agrupar a todos los terminal aunque no sean del mismo grupo(Broadcast all).
@@ -40,6 +65,8 @@ sudo apt install terminator
``` ```
Archivo de configuración en `${HOME}/.config/terminator/config`. Archivo de configuración en `${HOME}/.config/terminator/config`.
Si quieres hacer predeterminado este terminal usa este [comando](#predeterminar).
**Shortcuts que me resultan interesantes:** **Shortcuts que me resultan interesantes:**
Descripción | Atajo Descripción | Atajo
@@ -67,18 +94,73 @@ Editar título tab | Ctrl+Alt+A
Editar título terminal | Ctrl+Alt+X Editar título terminal | Ctrl+Alt+X
Editar título ventana | Ctrl+Alt+W Editar título ventana | Ctrl+Alt+W
## Tilix
[Tilix](https://github.com/gnunn1/tilix) es un emulador de terminal Linux avanzado de código abierto que utiliza GTK+ 3 y ofrece muchas funciones que no forman parte del terminal predeterminado que se incluye con las distribuciones de Linux.
Algunas de las características populares de tilix incluyen:
- Pantalla dividida horizontal y vertical.
- Sincronización de entrada entre múltiples terminales.
- Admite marcadores.
- Exportar sesión de terminal a un archivo.
- Barra de título personalizable.
- Buscar a través de la terminal.
Su instalación en Ubuntu a través de apt es tan simple como esto:
```shell
sudo apt install tilix
```
Si quieres hacer predeterminado este terminal usa este [comando](#predeterminar).
**Shortcuts que me resultan interesantes:**
Descripción | Atajo
---|:---:
Abrir nueva ventana | Ctrl+mayús+N
Abrir nueva sesión | Ctrl+mayús+T
Agregar una terminal automática | Ctrl+Alt+A
Agregar una terminal abajo | Ctrl+Alt+D
Agregar una terminal a la derecha | Ctrl+Alt+R
Cerrar sesión actual | Ctrl+Alt+Q
Pantalla completa | F11
Mostrar barra lateral de la sesión | F12
Cambiar a la sesión siguiente | Ctrl+Av Pag
Cambiar a la sesión anterior | Ctrl+Re Pag
Reordenar a la sesión siguiente | Maj+Ctrl+Av Pag
Reordenar a la sesión anterior | Maj+Ctrl+Re Pag
Cambiar a la sesión 1 | Ctrl+Alt+1
Cambiar a la sesión 2 | Ctrl+Alt+2
Cambiar a la sesión 3 | Ctrl+Alt+3
Cambiar a la sesión 4 | Ctrl+Alt+4
Cambiar a la sesión 5 | Ctrl+Alt+5
Cambiar a la sesión 6 | Ctrl+Alt+6
Cambiar a la sesión 7 | Ctrl+Alt+7
Cambiar a la sesión 8 | Ctrl+Alt+8
Cambiar a la sesión 9 | Ctrl+Alt+9
Cambiar a la sesión 10 | Ctrl+Alt+0
Ampliar fuente | Ctrl++
Disminuir fuente | Ctrl+-
Ampliar fuente | Ctrl++
Medida normal | Ctrl+0
# zsh # zsh
[`ZSH`](https://www.zsh.org/) son las siglas de Z Shell, que es un programa de shell para sistemas operativos similares a Unix. ZSH es una versión extendida de Bourne Shell que incorpora algunas características de BASH, KSH, TSH, etc. [`ZSH`](https://www.zsh.org/) son las siglas de Z Shell, que es un programa de shell para sistemas operativos similares a Unix. ZSH es una versión extendida de Bourne Shell que incorpora algunas características de BASH, KSH, TSH, etc.
Alguna de su funciones son: Alguna de sus funciones son:
- Finalización de la línea de comandos. - **Completar la línea de comandos programable** que puede ayudar al usuario a escribir tanto las opciones como los argumentos de la mayoría de los comandos utilizados, con soporte inmediato para varios cientos de comandos.
- La historia se puede compartir entre todas las conchas. - **Compartir el historial** entre todos los shells en funcionamiento.
- Globbing extendido de archivos. - El **globbing de archivos extendido** permite la especificación de archivos sin necesidad de ejecutar un programa externo como `find`.
- Mejor manejo de variables y matrices. - **Mejora del manejo de variables y arrays**
- Compatibilidad con conchas como bourne shell. - **Edición de comandos multilínea** en una sola memoria intermedia
- Corrección ortográfica y autocompletado de nombres de comandos. - **Corrección ortográfica y relleno automático** de los nombres de los comandos (y opcionalmente de los argumentos, que se asumen como nombres de archivo)
- Directorios con nombre. - **Varios modos de compatibilidad**, por ejemplo Zsh puede fingir ser una Bourne Shell cuando se ejecuta como `/bin/sh`
- Los **avisos temáticos**, incluyendo la capacidad de poner la información del aviso en el lado derecho de la pantalla y hacer que se oculte automáticamente cuando se teclea un comando largo
- **Módulos cargables**, que proporcionan entre otras cosas:
- Controles completos TCP y sockets de dominio Unix
- Un cliente FTP
- Funciones matemáticas ampliadas.
- El **comando `where` incorporado**. Funciona como el comando `which` pero muestra todas las ubicaciones en los directorios especificados en `$PATH` en lugar de sólo el que se utilizará.
- **Directorios nombrados.** Esto permite al usuario establecer atajos como `~mydir`, que luego se comportan de la manera `~` y `~user`.
Su instalación en Ubuntu es muy sencilla, ya está incluído en los repositorios oficiales: Su instalación en Ubuntu es muy sencilla, ya está incluído en los repositorios oficiales:
@@ -204,11 +286,16 @@ Cualquier duda sobre la instalación y configuración del tema, la [documentaci
## Plugins ## Plugins
Los plugins que utilizo son los siguientes: Los plugins que utilizo son los siguientes:
- [ansible](https://github.com/ohmyzsh/ohmyzsh/blob/master/plugins/ansible)
- [aws](https://github.com/ohmyzsh/ohmyzsh/blob/master/plugins/aws)
- [dirhistory](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/dirhistory) - [dirhistory](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/dirhistory)
- [docker](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/docker) - [docker](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/docker)
- [docker-compose](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/docker-compose) - [docker-compose](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/docker-compose)
- [emoji](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/emoji)
- [encode64](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/encode64) - [encode64](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/encode64)
- [git](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/git) - [git](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/git)
- [golang](https://github.com/ohmyzsh/ohmyzsh/blob/master/plugins/golang)
- [helm](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/helm)
- [history](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/history) - [history](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/history)
- [history-substring-search](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/history-substring-search) - [history-substring-search](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/history-substring-search)
- [jsontools](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/jsontools) - [jsontools](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/jsontools)
@@ -216,7 +303,10 @@ Los plugins que utilizo son los siguientes:
- [kubectl](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/kubectl) - [kubectl](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/kubectl)
- [nmap](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/nmap) - [nmap](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/nmap)
- [sudo](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/sudo) - [sudo](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/sudo)
- [terraform](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/terraform)
- [zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions) - [zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions)
- [zsh-syntax-highlighting](https://github.com/zsh-users/zsh-syntax-highlighting)
- [z](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/z)
La mayoría son de `Oh my zsh` y la instalación es simple: Después de instalar Omz tan solo hay que incluirlos en los plugins del documento `.zshrc`. La mayoría son de `Oh my zsh` y la instalación es simple: Después de instalar Omz tan solo hay que incluirlos en los plugins del documento `.zshrc`.
@@ -225,13 +315,13 @@ De todas formas, para sacar el máximo jugo, es interesante leer el README de ca
# Conclusiones # Conclusiones
He empezado con este nuevo ambiente de trabajo a finales de octubre de 2022, el tiempo dirá si tengo los componentes más adecuados, pero desde luego tengo que destacar varios aspectos: He empezado con este nuevo ambiente de trabajo a finales de octubre de 2022, el tiempo dirá si tengo los componentes más adecuados, pero desde luego tengo que destacar varios aspectos:
- La comunidades que respaldan cada unos de los elementos mencionados. - La comunidades que respaldan cada unos de los elementos mencionados.
- Las posibilidades de gestión de terminales de terminator. - El minimalismo, la elegancia y las posibilidades de gestión de terminales del emulador Tilix.
- La customización con los themes. De los colores, de las fuentes, de los tamaños, de las ubicaciones, etc - Las posibilidades de gestión del shell con el documento de configuración.
- El amplio abaníco de shortcuts personalizados de la terminal y de los plugins omz. - La amplia personalización con los themes de Oh my zsh!. De los colores, de las fuentes, de los tamaños, de las ubicaciones, etc
- El amplio abanico de shortcuts personalizados de la terminal y de los plugins omz.
# Agradecimientos 🎁 # Agradecimientos 🎁
A todos los que me habéis comentado como tenéis vuestra configuración: Miki, Sergio, Ruben, Javier, Alex, Victor, etc A todos los que me habéis comentado como tenéis vuestra configuración: Miki, Sergio, Ruben, Javi, Alex, Victor, etc
[Manu](https://vergaracarmona.es) [Manu](https://vergaracarmona.es)

1640
files/p10k.zsh Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,10 +1,16 @@
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc. # Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
# Initialization code that may require console input (password prompts, [y/n] # Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below. # confirmations, etc.) must go above this block; everything else may go below.
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi fi
# starship
eval "$(starship init zsh)"
# If you come from bash you might have to change your $PATH. # If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH # export PATH=$HOME/bin:/usr/local/bin:$PATH
@@ -78,19 +84,32 @@ ZSH_THEME="powerlevel10k/powerlevel10k"
# Example format: plugins=(rails git textmate ruby lighthouse) # Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup. # Add wisely, as too many plugins slow down shell startup.
plugins=( plugins=(
ansible
asdf
aws
dirhistory dirhistory
docker docker
docker-compose docker-compose
emoji
encode64 encode64
gcloud
git git
golang
helm
history history
history-substring-search history-substring-search
jsontools jsontools
jump jump
kubectl kubectl
nmap nmap
python
sudo sudo
terraform
vagrant
vagrant-prompt
zsh-autosuggestions zsh-autosuggestions
zsh-syntax-highlighting
z
) )
source $ZSH/oh-my-zsh.sh source $ZSH/oh-my-zsh.sh
@@ -122,9 +141,8 @@ source $ZSH/oh-my-zsh.sh
# alias ohmyzsh="mate ~/.oh-my-zsh" # alias ohmyzsh="mate ~/.oh-my-zsh"
# Introduzco mis alias # Introduzco mis alias
## git
alias g="git" alias g="git"
alias d="docker"
alias kubectl="kubecolor"
function ggpush { function ggpush {
git push origin HEAD $@ git push origin HEAD $@
@@ -138,7 +156,42 @@ function gglog {
git log --graph --pretty=format:"%C(yellow)%h%Cred%d%Creset - %C(cyan)%an%Creset: '%s' %Cgreen(%cr)%Creset" git log --graph --pretty=format:"%C(yellow)%h%Cred%d%Creset - %C(cyan)%an%Creset: '%s' %Cgreen(%cr)%Creset"
} }
## docker
alias d="docker"
### Añadir color con tuberia
alias dcolor="docker-color-output"
## kubectl
### Añadir color a todo CLI
alias kubectl="kubecolor"
## Copiar y pegar desde la terminal
alias pbcopy='xsel -b'
alias pbpaste='xsel -b -o'
## ver info externa de la ip
function verip {
curl -s https://ipinfo.io | jq
}
# Añado mis exportaciones
## Go
export GOPATH=$HOME/Documents/projectes/go
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh. # To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
autoload -U +X bashcompinit && bashcompinit
complete -o nospace -C /usr/bin/terraform terraform
complete -o default -F __start_kubectl k
[[ $commands[kubectl] ]] && source <(kubectl completion zsh)
# The next line updates PATH for the Google Cloud SDK.
if [ -f '/home/v/google-cloud-sdk/path.zsh.inc' ]; then . '/home/v/google-cloud-sdk/path.zsh.inc'; fi
# The next line enables shell command completion for gcloud.
if [ -f '/home/v/google-cloud-sdk/completion.zsh.inc' ]; then . '/home/v/google-cloud-sdk/completion.zsh.inc'; fi