2d4d0fa481
This reverts commit
|
||
---|---|---|
ansible | ||
dev | ||
ipython/profile_default | ||
themes | ||
vim | ||
.gitignore | ||
ackrc | ||
aliases.sh | ||
antibody_plugins_arch.txt | ||
antibody_plugins.txt | ||
brethil_dotfile.sh | ||
check_for_update.sh | ||
colors.sh | ||
functions.sh | ||
gitconfig | ||
gitignore | ||
pdbrc.py | ||
README.md | ||
useful_commands |
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`)
│ ├── ansible
│ │ └── ansible playboooks/config
│ └── 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 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++ rc (a drop-in replacement for pdb)
├──────── Other ─────────────
├── check_for_update.sh
│ └── selfupdate script
└── useful_commands
Installation
-
With ansible:
bash dev/add_community.general.sh # only if community.general is not installed ansible-playbook -v -i <hosts file> ansible/playbooks/setup.yml
This playbook can be tested with a docker container
Use
-e fix_annoyances=true
to fix some small annoyances (only run once) -
Manually (this only installs the zsh configuration):
git clone https://git.decapod.one/brethil/dotfiles ~/.dotfiles echo 'DOTFILES=~/.dotfiles' >> ~/.zshrc echo 'source $DOTFILES/brethil_dotfile.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.~/.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.