Dotfiles
My dotfiles, crafted with
The following dependencies are needed to use all features from this dotfile
repository:
-
Desktop:
-
alacritty:
A cross-platform, GPU-accelerated terminal emulator
-
arc:
The GTK theme
-
bibata:
Beatiful cursor theme
-
picom:
A compositor for X11
-
dunst:
Lightweight and customizable notification daemon
-
feh:
A fast and light image viewer
-
hexchat:
IRC client
-
i3:
A tiling window manager
-
i3lock-fancy:
A fancy lock screen for i3
-
i3status-rust:
A replacement for i3status
-
ibus:
Intelligent Input Bus
-
j4-dmenu:
The desktop menu
-
nerd-fonts:
Iconic fonts
-
networkManager:
For managing network connections
-
papirus:
The icon theme
-
spotify:
Listening to music
-
thunderbird:
Reading and writing mails
-
unclutter:
Hides the mouse cursor after a dedicated timeout
-
x11:
Windowing system
-
xautolock:
Automatically locks the screen after a certain amount of time
-
Vim:
-
alex:
Needed for ALE Markdown/asciidoc linting and fixing
-
cscope:
Tool for source code indexing and querying
-
ctags:
Generates tags file for source code discovery
-
floskell:
Needed for ALE Haskell linting and fixing
-
node:
Needed for YouCompleteMe typescript/javascript support
-
npm:
Needed for YouCompleteMe typescript/javascript support
-
autopep8:
Needed for ALE python linting and fixing
-
clang-format:
Needed for ALE C/C++ linting and fixing
-
golangci-lint:
Needed for ALE golang linting and fixing
-
hdevtools:
Needed for ALE haskell linting and fixing
-
hfmt:
Needed for ALE haskelllinting and fixing
-
hlint:
Needed for ALE haskelllinting and fixing
-
isort:
Needed for ALE python linting and fixing
-
prettier:
Needed for general ALE linting and fixing
-
proselint:
Needed for ALE Markdown/asciidoc linting and fixing
-
rls:
Needed for ALE rust linting and fixing
-
rustfmt:
Needed for ALE rust code formatting
-
shellcheck:
Needed for ALE bash/sh linting and fixing
-
shfmt:
Needed for ALE bash/sh linting and fixing
-
textlint:
Needed for ALE Markdown/asciidoc linting and fixing
-
tflint:
Needed for ALE terraform linting and fixing
-
write-good:
Needed for ALE Markdown/asciidoc linting and fixing
-
yapf:
Needed for ALE python linting and fixing
-
yamllint:
Needed for ALE yaml linting and fixing
-
Development:
-
autojump:
A cd command that learns
-
bat:
Like cat
with wings
-
ccache:
Compiler cache for gcc and clang
-
cht.sh:
Command line stackoverflow queries
-
clang:
The LLVM compiler frontend
-
cmake:
Cross platform make tool
-
cppcheck:
Linter for C/C++ projects
-
cpplint:
Linter for C/C++ projects
-
eza:
Modern version of ls
-
fd:
A fast alternative to find
-
fish:
The interactive shell
-
fzf:
Command line fuzzy finder
-
gdb:
The debugger for various kind of projects
-
ghc:
The glasgow haskell compiler
-
git:
Revision control system
-
golang:
The go programminng language
-
htop:
Process manager for the terminal
-
nix:
A powerful functional package manager
-
osc:
Command Line Interface to work with an Open Build Service
-
python:
The python scripting language
-
rainbarf:
CPU/RAM/battery stats chart bar for tmux
-
ranger:
VIM-inspired filemanager for the console
-
ripgrep:
Recursively searches directories for a regex pattern
-
rust:
The rust programming language
-
rustup:
Rust toolchain and component management
-
stack:
The haskell tool stack
-
tig:
Command line git explorer
-
tmux:
Terminal multiplexer
-
tokei:
Count lines of code quickly
-
typos:
Source code spell checker
-
vim:
The editor
Vim plugins
The following vim plugins are available via these dotfiles:
-
abolish:
Easily search for, substitute, and abbreviate multiple variants of a word
-
airline:
Statusline enhancements
-
ale:
Asynchronous linter and fixer
-
auto-pairs:
Insert or delete brackets, parens, quotes in pair
-
characterize:
Unicode character metadata
-
commentary:
Easy commenting
-
ctrlp:
Fuzzy file, buffer, mru, tag, etc finder.
-
devicons:
Unicode characters for nerds
-
dispatch:
Asynchronous build and test dispatcher
-
dracula:
Modified variant of the dracula color scheme
-
easymotion:
Efficient movements
-
endwise:
Wisely add endings
-
eunuch:
Helpers for unix
-
exchange:
Easy text exchange operator
-
fish:
Fish shell syntax
-
fugitive:
Git on steroids
-
git:
Git syntax and definitions
-
gitgutter:
Git diff in sign column
-
go:
Enhancements for golang
-
haskell:
Haskell syntax and definitions
-
incsearch:
Improved incremental searching
-
javascript:
JavaScript syntax and definitions
-
markdown:
Markdown syntax and definitions
-
operator-user:
Define your own operator easily
-
repeat:
Enable repeating supported plugin maps
-
ripgrep:
Ripgrep search helper
-
rust:
Rust syntax and definitions
-
schlepp:
Easily moving text selections around
-
scriptease:
A Vim plugin for Vim plugins
-
snippets:
Snippets for ultisnips
-
speeddating:
Use CTRL-A/CTRL-X to increment dates, times, and more
-
surround:
Quoting/parenthesizing made simple
-
tabular:
Text filtering and alignment
-
tagbar:
Sidebar for tags
-
targets:
Additional text objects
-
textobj-comment:
Textobject enhancement for comments
-
textobj-lastpat:
Textobject enhancement for last searched patterns
-
textobj-user:
Enables custom textobjects
-
textobj-variable-segment:
Textobject enhancement for variables
-
tmux-navigator:
Seamlessly switch between tmux panes and vim
-
tmuxline:
Tmux status line modding
-
typescript:
Typescript syntax and definitions
-
ultisnips:
Snipped engine
-
undotree:
Graphica undo list representation
-
unimpaired:
Pairs of handy bracket mappings
-
youcompleteme:
Autocompletion for multiple languages
Installation
To install all files into your home directory, simply execute:
> git clone https://github.com/saschagrunert/dotfiles ~/.dotfiles
> cd ~/.dotfiles
> make install USER="John Doe" EMAIL="[email protected]" SIGNKEY="123"
The variables USER
, EMAIL
and SIGNKEY
specify additionally created git
user data.
Vim
To install all necessary vim plugins you need to run :PlugInstall
on initial
startup of vim.
Updating
To update to the latest version of these dotfiles:
> make update
Alternatively you can run make crontab
which installs a local cron job for
updating the repository every hour.
Vim
To update all necessary vim plugins you can run :PlugUpdate
or :PlugUpdate!
.
Uninstall
To uninstall all created symlinks and data from your home directory, run:
> make uninstall
Screenshots
Contributing
You want to contribute to this project? Wow, thanks! So please just fork it and
submit a pull request.