That's me. Surprise!
These dotfiles can either be copied to the user's home directory or alternatively (and I reccommend doing this) managed using GNU Stow. To do this, stow
needs
to be installed and this repository must be in the users home directory. Let's say it is named dotfiles
. To do this, simply do the following:
$ cd ~/dotfiles
$ stow zsh
$ stow vim
This seems like unknown magic, I realize, so I'll make it simple. Its not. It basically does the following:
for filename in './package': # say, zsh
target = '../'+filename
if exists symlink named target:
delete target
symlink target to './package/'+filename
As such, If you wanted to experiment, you could have different dotfiles in different directories and just stow them according to need. Convenient? I think so.
NOTE: Due to the nature of things, some files contain the paths /home/kaarel
and /home/kaarel/dotfiles
. If your name does not happen to be the same as mine, or the username differs, you
might need to do some editting.
For some features that require plugins, some additional installation is required. This section will walk you through most of it.
These packages currently include zsh
and vim
.
First, you might need to udpdate your submodules:
$ git submodule init
$ git submodule update
The plasma
package needs the following dependencies:
ksshaskpass
i3-gaps
compton
(changed topicom
on arch)
The installation also needs a few systemd commands
stow plasma
sudo systemctl daemon-reload
systemctl enable --user ssh-agent.service
systemctl start --user ssh-agent.service
The zsh
package includes a Haskell-powered git prompt. The source code is included as a git submodule in the dotfiles project root directory.
The first thing you need to do, is install Haskell and stack.
$ sudo apt-get update && sudo apt-get install stack
$ cd ~/dotfiles/zsh-git-prompt
$ stack setup
$ stack build && stack install
Have no fear, my fellow traveller - the zsh-git-prompt executable will only be installed into the zsh-git-prompt directory.
The vim
package includes the following packages:
YouCompleteMe
- Code completion engineTaglist
- ??UltiSnips
- ??
YouCompleteMe is a fast, as-you-type, fuzzy-search code completion engine for [Vim][]. It has several completion engines:
- an identifier-based engine that works with every programming language,
- a [Clang][]-based engine that provides native semantic code completion for C/C++/Objective-C/Objective-C++ (from now on referred to as "the C-family languages"),
- a [Jedi][]-based completion engine for Python 2 and 3 (using the [JediHTTP][] wrapper),
- an [OmniSharp][]-based completion engine for C#,
- a combination of [Gocode][] and [Godef][] semantic engines for Go,
- a [TSServer][]-based completion engine for TypeScript,
- a [Tern][]-based completion engine for JavaScript,
- a [racer][]-based completion engine for Rust,
- and an omnifunc-based completer that uses data from Vim's omnicomplete system to provide semantic completions for many other languages (Ruby, PHP etc.).
Installation goes as follows:
$ sudo apt-get install build-essential cmake
$ sudo apt-get install python-dev python3-dev
$ cd ~/dotfiles/vim/.vim/bundle/YouCompleteMe
$ python3 install.py --clang-completer
Now, it has to be mentioned, that in order to get some completion features such as C#, Go, TypeScript, JavaScript or Rust, one must have some other packages intalled as well as supply the install script with some additional flags. More info in the YouCompleteMe Github repository.
The "Tag List" plugin is a source code browser for the Vim editor. It provides an overview of the structure of source code files and allows you to efficiently browse through source code files in different programming languages.
$ sudo apt-get install exuberant-ctags