diff --git a/bash_aliases b/bash_aliases index a5f96e4..01ea0a4 100644 --- a/bash_aliases +++ b/bash_aliases @@ -64,3 +64,4 @@ if type "$docker" > /dev/null; then alias docker-rm-untagged='docker rmi -f $(docker images | grep "^" | awk "{print $3}")' fi +alias tmux='tmux attach || tmux' diff --git a/bashrc b/bashrc index 606f3e8..ab5cff8 100644 --- a/bashrc +++ b/bashrc @@ -132,3 +132,8 @@ then source /usr/local/bin/virtualenvwrapper.sh fi export PATH=$PATH:/opt/mssql-tools/bin + + +if [ -x /usr/games/cowsay -a -x /usr/games/fortune ]; then + fortune | cowsay +fi diff --git a/install.sh b/install.sh index 1279ca4..8053143 100755 --- a/install.sh +++ b/install.sh @@ -5,7 +5,7 @@ dir=~/dotfiles # dotfiles directory olddir=~/dotfiles_old # old dotfiles backup directory -files="zshrc bash_aliases bash_functions sqliterc" # list of files/folders to symlink in homedir +files="tmux.conf zshrc bash_aliases bash_functions sqliterc" # list of files/folders to symlink in homedir ########## @@ -51,10 +51,13 @@ sudo locale-gen "en_IE.UTF-8" curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - sudo add-apt-repository ppa:neovim-ppa/stable -y sudo apt update -sudo apt install -y exuberant-ctags build-essential cmake python-dev python3-dev libssl-dev vim-youcompleteme autojump nodejs htop ncdu python-pip python3-pip byobu zsh vim-gtk python-setuptools neovim tree git-extras winbind +sudo apt-get install -y exuberant-ctags build-essential cmake python-dev python3-dev libssl-dev vim-youcompleteme autojump nodejs htop ncdu python-pip python3-pip byobu zsh vim-gtk python-setuptools neovim tree git-extras cowsay fortune winbind sudo pip install --upgrade pip sudo pip install --upgrade neovim sudo pip3 install --upgrade neovim +ln -s ~/.vim ~/.config/nvim +ln -s ~/.vimrc ~/.config/nvim/init.vim + sudo update-alternatives --install /usr/bin/vi vi /usr/bin/nvim 60 sudo update-alternatives --config vi sudo update-alternatives --install /usr/bin/vim vim /usr/bin/nvim 60 @@ -77,5 +80,3 @@ vim +BundleInstall +qall git config --global user.email "fergal.moran@gmail.com" git config --global user.name "Fergal Moran" - - diff --git a/tmux.conf b/tmux.conf new file mode 100644 index 0000000..805967e --- /dev/null +++ b/tmux.conf @@ -0,0 +1,127 @@ +# remap prefix to Control + a +set -g prefix C-a +# bind 'C-a C-a' to type 'C-a' +# bind C-a send-prefix +unbind C-b + +setw -g mode-keys vi + + +###################### +### DESIGN CHANGES ### +###################### + +## Status bar design +# status line +set -g status-utf8 on +set -g status-justify left +set -g status-bg default +set -g status-fg colour12 +set -g status-interval 2 + +# messaging +set -g message-fg black +set -g message-bg yellow +set -g message-command-fg blue +set -g message-command-bg black + +#window mode +setw -g mode-bg colour6 +setw -g mode-fg colour0 + +# window status +setw -g window-status-format " #F#I:#W#F " +setw -g window-status-current-format " #F#I:#W#F " +setw -g window-status-format "#[fg=magenta]#[bg=black] #I #[bg=cyan]#[fg=colour8] #W " +setw -g window-status-current-format "#[bg=brightmagenta]#[fg=colour8] #I #[fg=colour8]#[bg=colour14] #W " +setw -g window-status-current-bg colour0 +setw -g window-status-current-fg colour11 +setw -g window-status-current-attr dim +setw -g window-status-bg green +setw -g window-status-fg black +setw -g window-status-attr reverse + +# Info on left (I don't have a session display for now) +set -g status-left '' + +# loud or quiet? +set-option -g visual-activity off +set-option -g visual-bell off +set-option -g visual-silence off +set-window-option -g monitor-activity off +set-option -g bell-action none + +set -g default-terminal "screen-256color" + +# The modes { +setw -g clock-mode-colour colour135 +setw -g mode-attr bold +setw -g mode-fg colour196 +setw -g mode-bg colour238 + +# } +# The panes { + +# split panes using | and - +bind | split-window -h +bind _ split-window -v +unbind '"' +unbind % +bind k confirm kill-window +bind K confirm kill-server +bind < resize-pane -L 1 +bind > resize-pane -R 1 +bind - resize-pane -D 1 +bind + resize-pane -U 1 +bind r source-file ~/.tmux.conf + +# switch panes using Alt-arrow without prefix +bind -n M-Left select-pane -L +bind -n M-Right select-pane -R +bind -n M-Up select-pane -U +bind -n M-Down select-pane -D + +set -g pane-border-bg colour235 +set -g pane-border-fg colour238 +set -g pane-active-border-bg colour236 +set -g pane-active-border-fg colour51 + +# Enable mouse control (clickable windows, panes, resizable panes) +set -g mouse on +set -g default-terminal "screen-256color" + + +# } +# The statusbar { + +set -g status-position bottom +set -g status-bg colour234 +set -g status-fg colour137 +set -g status-attr dim +set -g status-left '' +set -g status-right '#[fg=colour233,bg=colour241,bold] %d/%m #[fg=colour233,bg=colour245,bold] %H:%M:%S ' +set -g status-right-length 50 +set -g status-left-length 20 + +setw -g window-status-current-fg colour81 +setw -g window-status-current-bg colour238 +setw -g window-status-current-attr bold +setw -g window-status-current-format ' #I#[fg=colour250]:#[fg=colour255]#W#[fg=colour50]#F ' + +setw -g window-status-fg colour138 +setw -g window-status-bg colour235 +setw -g window-status-attr none +setw -g window-status-format ' #I#[fg=colour237]:#[fg=colour250]#W#[fg=colour244]#F ' + +setw -g window-status-bell-attr bold +setw -g window-status-bell-fg colour255 +setw -g window-status-bell-bg colour1 + +# } +# The messages { + +set -g message-attr bold +set -g message-fg colour232 +set -g message-bg colour166 + +# } diff --git a/zshrc b/zshrc index 23b6133..409c0a3 100644 --- a/zshrc +++ b/zshrc @@ -84,3 +84,7 @@ export PATH=$PATH:/home/fergalm/dotfiles/bin source '/home/fergalm/lib/azure-cli/az.completion' source '/home/fergalm/dotfiles/.private.env' + +# If not running interactively, do not do anything +#[[ $- != *i* ]] && return +#[[ -z "$TMUX" ]] && exec tmux