5.6 KiB
brethil's dotfiles
A set of zsh dotfiles based on antibody and oh-my-zsh
Description
├── README.md
├──────── Main files ────────
│ ├── aliases.sh
│ │ └── aliases definitions (sources ~/.dotfiles_aliases
)
│ ├── colors.sh
│ │ └── ANSI color escapes
│ ├── functions.sh
│ │ └── contains function definitions (sources ~/.dotfiles_functions
)
│ ├── install.sh
│ │ └── main install script
│ └── brethil_dotfile.sh:
│ └── This file should be sourced by your .zshrc
├──────── antibody plugins ────────
│ ├── antibody_plugins_arch.txt
│ └── antibody_plugins.txt
├──────── oh-my-zsh themes ────────
│ ├── brethil.zsh-theme
│ └── brethil-minimal.zsh-theme
├──────── Misc rc files────────
│ ├── gitconfig
│ │ └── git configuration
│ ├── ackrc
│ │ └── ack
's rc: a grep-like text finder
│ ├── ipython
│ │ ├── profile_default
│ │ ├── ipython_config.py
│ │ ├── startup
│ │ ├── 11-autoreload.py
│ │ └── README
│ ├── vim
│ │ ├── vimrc
│ │ │ └── main vim rc
│ │ ├── plugs.vim
│ │ │ └── plugins to be installed with vim-plug
│ │ ├── plugins_config.vim
│ │ │ └── plugins configuration
│ │ ├── shortcuts.vim
│ │ │ └── vim shortcuts definitions
│ │ ├── functions.vim
│ │ │ └── miscellaneous vim function
│ │ └── twilight256.vim
│ │ └── an old colorscheme
│ └── pdbrc.py
│ └── pdb++'s rc (a drop-in replacement for pdb)
├──────── Other ─────────────
├── check_for_update.sh
│ └── selfupdate script
└── useful_commands
Installation
git clone https://git.decapod.one/brethil/dotfiles ~/.dotfiles
cd .dotfiles && bash install.sh
A self-update mechanism is included. It asks for confirmation to pull the latest changes from the git repo every two weeks. This also updates the git-sourced repositories installed by the install script. The self-update routine can be called manually by calling
dotfiles_selfupdate
If you do not want to run the installer script, you can just add source brethil_dotfile.sh
in your .zshrc
. This requires antibody installed.
Available Functions
-
cheat
: show cheat sheet for commands using cheat.sh (cheat <commandname>
) -
Quickly edit/reload profile (
esource
/resource
) -
dockertags
list all tags for a given docker image -
color
to print colored text (see 3. in the Misc section):color $Red "This will be printed in red" color $Yellow "This will be printed in red"
-
mecp
to copy files back to the machine from wich you are ssh-ing. For this to work an ssh tunnel withRemoteforward
is needed:ssh -R 22:localhost:2222 YOURHOSTNAMEHERE
or specify this in
~/.ssh/config
for a persistent configuration:Host YOURHOSTNAMEHERE Remoteforward 2222 localhost:22
This can be enabled in
~/.ssh/config
globally for all hosts by uncommenting the relevantHost * Remoteforward
. You might have to manually edit the username in themecp
definition infunctions.sh
if this is different between the two machines.mecp
copies by default on the local machine on~/Desktop/
-
Many more. Use
list_functions
to list defined functions and a small description
Files/Folders
~/bin
,~/git
,~/projects
folders- ssh config (
~/.ssh/config
):- Create ssh keys if not defined already
- Keep connections alive by increasing timeout time
- Include multiplexer to allow quick multiple connections to the same host
- (Optional: Compression, this should allow more responsive shells with slow connections,
but will slow things down when copying large files. My suggestion is to have compression enabled
on a by-host basis in
~/.ssh/config
)
brethil.zsh-theme
,brethil-minimal.zsh-themes
, themes for oh-my-zsh, symlinked in$ZSH/custom/themes
($ZSH=~/.oh-my-zsh
)~/.dotfiles_functions
,~/.dotfiles_aliases
are sourced by this dotfiles, allowing for custom functions/aliases- useful_commands contains a list of useful commands (the first rule of the tautology club...)
Misc
-
Colored output (via
grc
) for several commands. -
Easy names for ANSI color escapes (Black, Red, Green, Yellow, Blue, Cyan, Purple, White, CLEAR), for example:
echo -e "${Green}This text will be green${CLEAR}"
will result in green text. Use
$CLEAR
to clear previous escape sequences add B before the variable (checkcolors.sh
) name to use bold and U to underline (examples:$BRed
,$UBlack
for bold red and underlined black) -
Autoupdate script running every two weeks, autoupdate function:
dotfiles_selfupdate
(orgit pull
from$DOTFILES
folder) -
Automatic fix of the
SSH_AUTH_SOCK
environment variable:~/.ssh/rc
is installed run on every ssh login, and updates a symlink pointing (~/.ssh/ssh_auth_sock
).SSH_AUTH_SOCK
points to this (set inbrethil_dotfile.sh
). The idea is that if the user is logging in usingssh -A
, and using tmux, it will be possible to use the remote socket over different sessions by always using the symlink.