Skip to content

sawaiz/.dotfiles

Repository files navigation

Dotfiles

Dotfiles are files, houesed in the users home directory, that are used by programsto configure themselves.

wget -qO- https://raw.githubusercontent.com/Sawaiz/.dotfiles/master/.install.sh | sudo bash

Setup

This uses a bare git repository. This allows no symlinks and easier configuration and updates. But it comes at a cost, therefore special precaustions must be taken to initailise and manage it.

Temporarily assign the dotfiles alias

alias dotfiles='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'

Clone the bare repository

git clone --bare <git-repo-url> $HOME/.dotfiles

And then checkout the files, any errors might be duplicates of files in therepo, they will need to be removed, and then rerun.

dotfiles checkout

And pull any submouldes you have

dotfiles submodule update --init --recursive

Cygwin Tips

Changing the home directory to the windows profile directory

mkpasswd -l -d -p "$(cygpath -H)" > /etc/passwd
mkgroup -l -d > /etc/group

Change shell (chsh) command doesnt exist, bit this sed script will work to change your defulat shell to zsh

sed -i "s/$USER\:\/bin\/bash/$USER\:\/bin\/zsh/g" /etc/passwd

Windows Subsystem for Linux (WSL)

If you are running in a windows enviroment, WSL is an option for your linux shell.

Installation

Install windows subsytem for linux (WSL). and wsltty. Then in a bash session, run

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install -y build-essential checkinstall git zsh

Now we have the prerequsites, begin importing this as a bare repository

alias dotfiles='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'
git clone --bare https://github.com/Sawaiz/.dotfiles.git $HOME/.dotfiles
dotfiles checkout
dotfiles submodule update --init --recursive
dotfiles remote set-url origin git@github.com:Sawaiz/.dotfiles.git

Change presmission on ssh folder... after adding your own id_rsa file.

nano ~/.ssh/id_rsa
chmod 600 ~/.ssh/*

In the shortcuts, change the config directory command, to point to the correct config file -c "\\wsl$\ubuntu-20.04\home\sawaiz\.minttyrc" and change the default shell from /bin/bash to /bin/zsh.

%localappdata%\wsltty\bin\mintty.exe -B frame -B void --WSL= --configdir="%appdata%\wsltty"  -c "\\wsl$\Ubuntu\home\sawaiz\.minttyrc" /bin/zsh

Install VCXRV as the X-Windows server and copy its configured shortcut to the shell:startup folder. WSL2 requires -ac flags

Applications

Command for installing all the applicaitons below. sudo apt-get install -y git zsh nano tmux

Source Control

I dont think this requres an explation, seeing as we this is.

Text Editor

Nano, nice, quick, and simple. This has a submodule with pretty good syntax highlighting, and a lot of languages.

Shell

ZSH,

tmux

Terminal multiplexer, I use chrome shortcuts as well as alt arrowkeys, those are included in the .tmux.config file. It requires a version 2.1+, here are instruction for compiling 2.5 form source.

sudo apt-get install -y libevent-dev ncurses-dev autoconf
wget https://github.com/tmux/tmux/releases/download/2.5/tmux-2.5.tar.gz
tar -xf tmux-2.5.tar.gz
cd tmux-2.5
./configure
make -j8
make install

Cern ROOT

Software for nuclear physics data processing. Its built to work with large data sets, and to be fast. Installation is somewhat complex due to some dependencies and no actual instalation, just havinga compiled toolset.

Perp work

sudo apt-get update
sudo apt-get -y upgrade
sudo apt-get install -y build-essential checkinstall
sudo apt-get install -y dpkg-dev g++ gcc binutils libx11-dev libxpm-dev libxft-dev libxext-dev
sudo apt-get install -y xorg
sudo apt-get install -y git

Install CMAKE

wget http://www.cmake.org/files/v3.9/cmake-3.9.0.tar.gz
tar xf cmake-3.9.0.tar.gz
cd cmake-3.9.0
./configure
make -j8
make install
cd ..
rm -r cmake-3.9.0.tar.gz cmake-3.9.0

Create install location

mkdir /usr/local/root
cd /usr/local/root

Clone source

git clone http://root.cern.ch/git/root.git
cmake ./root
cmake --build . -- -j8

macOS Changes

Install brew brew install wget brew install coreutils

About

With these configuration files, it makes my life on the terminal 10x easier, but 100x harder for anyone else.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages