Welcome to my dotfiles. These are a little different than most, I'm trying to get an enviroment up and running to support a 60% keyboard without arrow keys. So trying to map as much as possible to vi keys. This is a second run at it, tried to do the same with a HHKB in the early 00's, but I never liked the keys on the HHKB, but now good mechanical keyboards are available everywhere for little money. Just have to live with the RGB leds everywhere.
Needed packages: vim (preferably full) bash (still stuck here because of work) curl (need to fetch som files) tmux git
I'm a network engineer by day, but slowly trying to migrate my knowledge and workload over to more interesting topics. Please note that my primary focus is usability and overview, so no blinken lichten here, it's about as basic as I can make/want it.
The layout and most of the scripts are lifted from: https://github.com/nicknisi/dotfiles.git I've kept his license and mentions from where he lifted his parts in the relevant files.
First, you may want to backup any existing files that exist so this doesn't overwrite your work.
Run install/backup.sh
to backup all symlinked files to a ~/dotfiles-backup
directory.
This will not delete any of these files, and the install scripts will not overwrite any existing. After the backup is complete, you can delete the files from your home directory to continue installation.
If on OSX, you will need to install the XCode CLI tools before continuing. To do so, open a terminal and type
➜ xcode-select --install
Then, clone the dotfiles repository to your home directory as ~/.dotfiles
.
➜ git clone https://github.com/bjornconnolly/dotfiles.git ~/.dotfiles
➜ cd ~/.dotfiles
➜ ./install.sh
➜ git clone git@github.com:bjornconnolly/dotfiles.git ~/.dotfiles
install.sh
will start by initializing the submodules used by this repository (if any). Read through this file and
comment out anything you don't want installed. Then, it will install all symbolic links into your home directory.
Every file with a .symlink
extension will be symlinked to the home directory with a .
in front of it. As an example,
vimrc.symlink
will be symlinked in the home directory as ~/.vimrc
. Then, this script will create a ~/tmp
directory
in your home directory, as this is where vim is configured to place its temporary files.
Additionally, all files in the $DOTFILES/config
directory will be symlinked to the ~/.config/
directory for applications
that follow the XDG base directory specification.
It will also symlink any scripts in $DOTFILES/bin
to ~/bin
BASH is configured in the bashrc.symlink
and bash_profile.symlink
files, which will be symlinked to the home directory.
The following occurs in this files:
- set the
EDITOR
to vim - Set the
CODE_DIR
variable, pointing to the location where the code projects exist for exclusive autocompletion with thec
command - Recursively search the
~/.bash/
directory for files ending in .sh and source them use this for per host bash settings - source a
~/.localrc
if it exists so that additional configurations can be made that won't be kept track of in this dotfiles repo. This is good for things like API keys, etc. - Add the
~/bin
directory to the path - And more...
The prompt is meant to be simple while still providing a lot of information to the user, particularly about the status of the git project, if the PWD is a git project. The git bash prompt from the git project is used: https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh
The vim setup is pretty basic, the vimrc.symlink
is symlinked to .vimrc. There is also a vimrc.color that provides a
very basic color setup for vim.
During installation the directory .vim
is created with two subdirectories autoload
and plugged
. The install
script downloads plug.vim and installs it into ~/.vim/autoload
directory.
After this you can install the plugins defined in .vimrc with the command: ➜ vim +PlugInstall and update them with: ➜ vim +PlugUpdate
Tmux is a terminal multiplexor which lets you create windows and splits in the terminal that you can attach and detach from. I use it to keep multiple projects open in separate windows. Tmux is configured in ~/.tmux.conf.
When tmux starts up, login-shell will be run and if it determines you are running this on macOS, it will call reattach-to-user-namespace, to fix the system clipboard for use inside of tmux.