Quick Steps without all the crap
-
You need to git clone this repo to dotfiles:
# go to home dir cd git clone https://github.com/gbili/dotfiles.git
-
Create the symbolic links to the actual dot files (we also backup preexisting):
# go to home dir cd # if link-dotfiles.bash is not executable make it executable chmod +x ./dotfiles/scripts/link-dotfiles.bash # execute it: this is the important step ./dotfiles/scripts/link-dotfiles.bash
-
Install vundle
cd git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim vim # within vim do :PluginInstall :q
-
Create an ssh key pair and add the public to github. Accept the default location:
ssh-keygen -t rsa
more ~/.ssh/id_rsa.pub
# copy the output and add it to github
#1!!*nix
bash: Ctrl-S
When using bash there is a functionality that allows you to send a process to sleep with c-s
(Ctr+S). This will freeze the terminal when editing a file using vim and typing c-s
.
To overcome this problem, you need to disable this functionality you need to set stty -ixon
in your ~/.bash_profile
/ ~/.bashrc
/ ~/.profile
.
Troubleshootnig
I put it in .bashrc
which is included in non login shells, but in ubuntu it also gets included in login shells. In a login shell you cannot call stty
that is why you have to test whether .bashrc
is getting included in a login shell and avoid running the command above if it is the case. Have a look at .bashrc
to see how.
Where to store my bash script stuff? (.bashrc
, .profile
, .bash_profile
)
Read this if you are really interested in the matter, otherwise ~/.bashrc
is loaded for non-login shells. Which is what we want.
Ubuntu 18.04
Remap Caps Lock
to Ctrl
- Install gnome-tweaks
sudo apt-get install gnome-tweaks
- Go to Tweaks GUI App and in Keyboard & Mouse press the Additional Layout Options
- Done
Npm
Node package manager is used for everything related somehow to javascript
You need to install it with ubuntu and then use that to install the latest version as global. See steps below.
sudo apt install npm
npm install -g ERROR EACCES
If you get an error EACCES it means you are having permission troubles. This is because by default Ubuntu's npm is installed in /usr
and it needs sudo permission to write to the global modules dir under /usr
. You shoud NEVER run npm as sudo, instead you can change where npm thinks global is.
Give it a local global
Change npm's default directory to a hidden directory in your home folder
mkdir ~/.npm_modules_global
npm config set prefix '~/.npm_modules_global'
export PATH="$HOME/.npm_modules_global/bin:$PATH"
source ~/.bashrc
Once have told npm to consider your home directory as the global modules dir, you can start using it by installing non other than the latest version of npm itself!
npm install -g npm
npm --version
this has the merit of installing the latest version of npm globally. From now on, we can safely use npm to install global modules without giving npm any sudo rights. You can read more in here
To many errors, cut the chaos
If everything keeps failing try using npx <npm-module commands>
. For example you can run gatsby with : npx gatsby develop
this will fetch the right modules required to run gatsby.
Vim
Install vim-gnome
If you want to be able to copy from clipboard you will need +clipboard_xterm
which is what vim-gnome
has. Don't worry it's a terminal version, not a GUI one.
Install with:
sudo apt-get install vim-gnome
Thanks to this, you will be able to do "+y
to yank to clipboard, and "+p
to paste from clipboard.
Command-t you need to Install Vim-nox (has ruby support)
This is needed if you use command-t.
But command-t is a real pain to install, so maybe just use ctrlp.vim and normal vim install
Use CtrlP instead of Command-t
Works directly out of the box. You can then change CtrlP binding to <leader>t
(don't do it, use standard CtrlP)
map <leader>t :CtrlP .<cs>
Use a few plugins for Javascript and react
Download eslint and babel
npm install -g eslint
to install it globally, and make it accessible to ale vim
Install a few javascript plugins to allow ale to beautify your code
Using npm instead of yarn, do this in your project's dir
yarn add --dev eslint babel-eslint eslint-plugin-react
then do
eslint --init
Then install the following to prettify:
yarn add --dev prettier eslint-config-prettier eslint-plugin-prettier
Now if you run: eslint --fix src/App.js
, your src/App.js will be beautified
This can be used in conjuction with vim plugin, Plug 'skywind300/asyncrun.vim'
Installing drivers for graphics card
If you installed them manually, undo that with this answer.
sudo apt-add-repository -r ppa:graphics-drivers/ppa
sudo apt update
sudo apt remove nvidia*
sudo apt autoremove
Use Ubuntu's drivers repository and drivers manager to auto install the things for you.
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo ubuntu-dirvers autoinstall
Programming CUDA cores
Use use this answer to install the nvidia cuda compiler. After having followed the instructions above for installing graphics drivers, run these commands:
sudo apt install nvidia-cuda-toolkit gcc-6
nvcc --version
This should greet you with something different than : Command nvcc not found
Headphone Audio HeadSets Bluetooth
-
If you have paired your device and it does not show up as a sound device, you will first need to unpair it.
-
Once you are sure it is unpaired, you want to restart pulseaudio:
sudo pkill pulseaudio
This will make sure that once you connect your device via bluetooth, it will be listed as a sound device.
-
Now, to connect a bluetooth device, make sure it is discoverable, and then go to bluetooth and double click on the listed item to pair it. It should say: Connected.
-
Then you can go to Settings > Sound and select your headset from the list.
- If the headset is already selected and you have no sound, select another output and reselect it again.
- It can happen that the sound test works but no sound comes out from youtube videos, the step of unselecting and reselecting should fix this.
Configuring git to not ask you for user pass every time
There are plenty of wrong answers in stack overflow. The way to go is to use ssh keys. Follow the steps in github.
- Perform the steps outlined in the link above and
- Enter a passphrase which must be unrelated to any other password, just a plain new passphrase.
- Then you can use the
ssh-agent
to securely save the passphrase so that you don't need to reenter it again, use this link to see how. - Then you will need to save the ssh keys to your github account.
Possible Error
If you see this message when you try to push to origin
The authenticity of host 'github.com (IP ADDRESS)' can't be established.
> RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
> Are you sure you want to continue connecting (yes/no)?
To solve this,
- type:
yes
- and ubuntu will ask you for sudo password
- and the passphrase that you provided when creating the ssh key
- Provide both and try to push again
- You should be greeted with: Warning key was permanently added to your trusted hosts or something in those lines...