Go to file
bretello 6680bb4828 improve selfupdate, add documentation 2020-02-14 16:37:44 +01:00
.gitignore New repo initial commit 2017-06-12 16:22:05 +02:00
README.md improve selfupdate, add documentation 2020-02-14 16:37:44 +01:00
aliases.sh alias: add git_sort_branches_by_date 2020-02-14 16:37:43 +01:00
brethil-minimal.zsh-theme Fix brethil-mininimal prompt 2019-11-26 17:40:43 +01:00
brethil.zsh-theme New repo initial commit 2017-06-12 16:22:05 +02:00
brethil_dotfile.sh dotfile: add environment variables 2020-02-14 16:37:43 +01:00
check_for_update.sh improve selfupdate, add documentation 2020-02-14 16:37:44 +01:00
colors.sh version 2.0 2017-07-14 21:20:20 +02:00
functions.sh improve selfupdate, add documentation 2020-02-14 16:37:44 +01:00
install.sh prevent install from nuking the ssh config 2020-02-14 16:37:44 +01:00
useful_commands New repo initial commit 2017-06-12 16:22:05 +02:00

README.md

brethil's dotfiles

A set of zsh dotfiles

Description

  1. brethil_dotfile.sh: main file sourced by ~/.bash_profile
  2. aliases.sh: contains alias definitions (sources ~/.dotfiles_aliases)
  3. functions.sh: contains function definitions (sources ~/.dotfiles_functions)
  4. colors.sh: contains color definitions
  5. install.sh: run to install brethil's dotfiles

Installation

Copy the dotfiles folder to the location where you want to keep it and then run install:

$ cd dotfiles && bash install.sh

Installs oh-my-zsh and sources aliases.sh, functions.sh and colors.sh, as well as installing a a few utilities (see 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 (defined in functions.sh).

Installed

  1. oh-my-zsh (zsh config framework, lots of plugins available at https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins) Two zsh themes: brethil and brethil-minimal.
  2. byobu (wrapper/config for tmux, a screen multiplexer)
  3. grc/ccze (output colorizers, color output of any command). Usage: $ grc programname $ programname | ccze
  4. bmon (bandwidth monitor, shows graphs for bandwith usage)
  5. rmate remote for Textmate (can be called with mate/rmate)
  6. mtr (my traceroute, traceroute+ping network utility)

Available Functions

  1. cheat, show cheat sheet for commands using cheat.sh (cheat commandname)
  2. Quickly edit/reload profile (esource/resource)
  3. ramdisk (only on OSX) create a RAM disk. Default size: 1GB
    ramdisk 4 creates a 4GB RAM disk
  4. 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"
  5. mecp to copy files back to the machine from wich you are ssh-ing. For this to work an ssh tunnel with Remoteforward is needed: ssh -R 22:localhost:2222 YOURHOSTNAMEHERE or specify this in ~/.ssh/config: Host YOURHOSTNAMEHERE Remoteforward 2222 localhost:22 This can be enabled in ~/.ssh/config globally for all hosts by uncommenting the relevant Host * Remoteforward. You might have to manually edit the username in the mecp definition in functions.sh if this is different between the two machines. mecp copies by default on the local machine on ~/Desktop/
  6. Many more. Type "list_functions" to list defined functions and a small description

Files/Folders

  1. ~/bin, ~/git, ~/projects folders
  2. 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)
  3. brethil.zsh-theme, brethil-minimal.zsh-themes, themes for oh-my-zsh, symlinked in $ZSH/custom/themes ($ZSH=~/.oh-my-zsh)
  4. ~/.dotfiles_functions, ~/.dotfiles_aliases are sourced by this dotfiles, allowing for custom functions/aliases
  5. useful_commands contains a list of useful commands (the first rule of the tautology club...)

Misc

  1. Colored output (via grc) for: diff, configure, make, gcc, g, as, gas, ld, netstat, ping, traceroute, head, tail, dig, mount, ps, mtr
  2. 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 (check colors.sh) name to use bold and U to underline (examples: $BRed, $UBlack for bold red and underlined black)
  3. Type esc twice to add sudo before the current command
  4. Autoupdate script running every two weeks, autoupdate function: dotfiles_selfupdate (or git pull from $DOTFILES folder)