Compare commits

..

No commits in common. "81f3589eca40ee575f09eb42713c83a5a01eb08d" and "4189523bb5d36195573796a38c4a1071c71b7ef4" have entirely different histories.

12 changed files with 345 additions and 2433 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,125 +0,0 @@
set nocompatible " disable compatibility to old-time vi
set showmatch " show matching
set hlsearch " highlight search
set incsearch " incremental search
set tabstop=4 " number of columns occupied by a tab
set softtabstop=4 " see multiple spaces as tabstops so <BS> does the right thing
set expandtab " converts tabs to white space
set shiftwidth=4 " width for autoindents
set autoindent " indent a new line the same amount as the line just typed
set number " add line numbers
set wildmode=longest,list " get bash-like tab completions
filetype plugin indent on "allow auto-indenting depending on file type
syntax on " syntax highlighting
set mouse=a " enable mouse click
set clipboard=unnamedplus " using system clipboard
filetype plugin on
set cursorline " highlight current cursorline
set ttyfast " Speed up scrolling in Vim
:imap jk <Esc>
" Set up colors
colorscheme murphy
highlight clear SignColumn
" Open and close terminal with shortcut
nnoremap <F4> :call vimterm#toggle() <CR>
tnoremap <F4> <C-\><C-n>:call vimterm#toggle() <CR>
" Find files using Telescope command-line sugar.
nnoremap <leader>ff <cmd>Telescope find_files<cr>
nnoremap <leader>fg <cmd>Telescope live_grep<cr>
nnoremap <leader>fb <cmd>Telescope buffers<cr>
nnoremap <leader>fh <cmd>Telescope help_tags<cr>
" Configure how we Git blame people
nnoremap <leader>gb <cmd>GitBlameToggle<cr>
let g:gitblame_enabled = 0
let g:gitblame_date_format = '%x'
let g:gitblame_highlight_group = "SignColumn"
call plug#begin()
" Fuzzy finder
Plug 'nvim-lua/plenary.nvim'
Plug 'nvim-telescope/telescope.nvim'
" Git blame
Plug 'f-person/git-blame.nvim'
" Marks plugin
Plug 'chentoast/marks.nvim'
" File Explorer for Nvim
Plug 'kyazdani42/nvim-web-devicons' " optional, for file icons
Plug 'kyazdani42/nvim-tree.lua'
" rust
Plug 'rust-lang/rust.vim'
call plug#end()
" Set up Marks plugin
lua << EOF
require'marks'.setup {
-- whether to map keybinds or not. default true
default_mappings = true,
-- which builtin marks to show. default {}
builtin_marks = { ".", "<", ">", "^" },
-- whether movements cycle back to the beginning/end of buffer. default true
cyclic = true,
-- whether the shada file is updated after modifying uppercase marks. default false
force_write_shada = false,
-- how often (in ms) to redraw signs/recompute mark positions.
-- higher values will have better performance but may cause visual lag,
-- while lower values may cause performance penalties. default 150.
refresh_interval = 250,
-- sign priorities for each type of mark - builtin marks, uppercase marks, lowercase
-- marks, and bookmarks.
-- can be either a table with all/none of the keys, or a single number, in which case
-- the priority applies to all marks.
-- default 10.
sign_priority = { lower=10, upper=15, builtin=8, bookmark=20 },
-- disables mark tracking for specific filetypes. default {}
excluded_filetypes = {},
-- marks.nvim allows you to configure up to 10 bookmark groups, each with its own
-- sign/virttext. Bookmarks can be used to group together positions and quickly move
-- across multiple buffers. default sign is '!@#$%^&*()' (from 0 to 9), and
-- default virt_text is "".
bookmark_0 = {
sign = "⚑",
virt_text = "hello world"
},
mappings = {}
}
EOF
" Set syntax highlighting
au BufNewFile,BufRead *.f set syntax=verilog
" Configure nvim-tree
nmap <leader>n :NvimTreeToggle <CR>
lua << EOF
-- disable netrw at the very start of your init.lua (strongly advised)
vim.g.loaded = 1
vim.g.loaded_netrwPlugin = 1
-- OR setup with some options
require'nvim-tree'.setup {
sort_by = "case_sensitive",
view = {
adaptive_size = true,
mappings = {
list = {
{ key = "u", action = "dir_up" },
},
},
},
renderer = {
group_empty = true,
},
filters = {
dotfiles = true,
},
}
EOF

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
dotdrop.sh

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "dotdrop"]
path = dotdrop
url = https://github.com/deadc0de6/dotdrop.git

View File

@ -1,33 +0,0 @@
set-option -g default-shell /bin/zsh
# remap prefix to Control + a
set -g prefix C-a
unbind C-b
bind C-a send-prefix
# VIM mode
set-window-option -g mode-keys vi
bind-key -T copy-mode-vi 'v' send -X begin-selection
bind-key -T copy-mode-vi 'y' send -X copy-selection-and-cancel
# split panes using | and -
bind | split-window -h
bind - split-window -v
unbind '"'
unbind %
# quick pane cycling
unbind ^A
bind ^A select-pane -t :.+
# tabs
setw -g window-status-format "#[fg=white]#[bg=blue] [#I]#[bg=blue]#[fg=white] #W "
setw -g window-status-current-format "#[bg=white]#[fg=black] [#I]#[fg=black]#[bg=white] #W "
# status bar
set-option -g status-position top
set -g status-fg white
set -g status-bg blue
set -g status-left ''
set -g status-right-length 63
set -g status-right 'Battery:#(acpi | cut -d ',' -f 2) | %a %Y-%m-%d %H:%M'

31
README.md Normal file
View File

@ -0,0 +1,31 @@
This repository contains my personal dotfiles. All dotfiles are managed by [dotdrop](https://github.com/deadc0de6/dotdrop).
## Installation
In order to install all dotfiles, run:
```bash
git clone https://git.dennispotter.eu/Dennis/dotfiles
cd dotfiles
git submodule init
git submodule update
sudo pip3 install -r dotdrop/requirements.txt
./dotdrop/bootstrap.sh
./dotdrop.sh --cfg=config.yaml install
```
## Prerequisites
Below, a list of applications that are managed and of their prerequisites to make full use of all configuration.
```
- ZSH
oh-my-zsh (automatically fetched by dotdrop)
ripgrep
- tmux
acpi
- neovim
plug (automatically fetched by dotdrop)
fonts-powerline
exuberant-ctags
cmake
clang
rust
jupyter
```

50
config.yaml Normal file
View File

@ -0,0 +1,50 @@
actions:
nvim-plug: nvim +PlugInstall +qall
oh-my-zsh: test -e ~/.oh-my-zsh || (git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh)
pre:
nvim-plug-install: test -e ~/.local/share/nvim/site/autoload/plug.vim || (mkdir -p ~/.local/share/nvim/site/autoload/; curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim)
config:
backup: true
banner: true
create: true
dotpath: dotfiles
ignoreempty: false
keepdot: false
link_by_default: false
longkey: false
showdiff: false
workdir: ~/.config/dotdrop
dotfiles:
f_nvim:
actions:
- nvim-plug-install
- nvim-plug
dst: ~/.config/nvim/init.vim
src: nvim/init.vim
f_tmux.conf:
dst: ~/.tmux.conf
src: tmux.conf
f_zshrc:
actions:
- oh-my-zsh
dst: ~/.zshrc
src: zsh/zshrc
f_zsh_private_aliases:
dst: ~/.zsh_private_aliases
src: zsh/zsh_private_aliases.asc
trans: gpg
trans:
gpg: gpg --no-tty -d {0} > {1}
profiles:
Dennis-MacBook-Pro:
dotfiles:
- f_tmux.conf
- f_nvim
- f_zshrc
- f_zsh_private_aliases
dennis-ThinkPad:
dotfiles:
- f_tmux.conf
- f_nvim
- f_zshrc
- f_zsh_private_aliases

1
dotdrop Submodule

@ -0,0 +1 @@
Subproject commit 8559aeb8713d44cc13a7fe22a524300360239571

156
dotfiles/nvim/init.vim Normal file
View File

@ -0,0 +1,156 @@
syntax on
filetype plugin indent on
au BufNewFile,BufRead *.tpp set filetype=cpp
au BufNewFile,BufRead *.f set filetype=verilog
syntax enable
set number showmatch
set shiftwidth=4 tabstop=4 softtabstop=4 expandtab autoindent
let python_highlight_all = 1
:imap jk <Esc>
set hidden
" set options for folding
set foldmethod=syntax
set foldlevelstart=20
" put leader to space
map <space> <leader>
map <space><space> <leader><leader>
" airline settings
let g:airline_theme='badwolf'
let g:airline_powerline_fonts = 1
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#formatter = 'unique_tail'
let g:airline#extensions#whitespace#enabled = 0
" NERDTree
let NERDTreeChDirMode = 2
let NERDTreeQuitOnOpen = 1
" Custom key bindings general
nmap <leader>n :NERDTreeToggle <CR>
map <leader>t :TagbarToggle <CR>
map <leader>u :MundoToggle <CR>
nnoremap <leader>l <C-w>l
tnoremap <Esc> <C-\><C-n>
noremap <Esc> <Esc>:noh <CR>
nnoremap <F4> :call vimterm#toggle() <CR>
tnoremap <F4> <C-\><C-n>:call vimterm#toggle() <CR>
" YouCompleteMe settings
let g:ycm_confirm_extra_conf = 0 "Stop asking me every time to confirm
nnoremap <leader>gl :YcmCompleter GoToDeclaration<CR>
nnoremap <leader>gf :YcmCompleter GoToDefinition<CR>
nnoremap <leader>gg :YcmCompleter GoToDefinitionElseDeclaration<CR>
nnoremap <leader>gd :YcmCompleter GetDoc<CR>
" Fix colors of YCM
highlight YcmWarningLine guibg=Cyan ctermbg=Cyan
highlight YcmWarningSign guibg=Cyan ctermbg=Cyan
highlight YcmWarningSection guibg=Cyan ctermbg=Cyan
highlight YcmErrorSection guibg=Red ctermbg=Red
highlight YcmErrorLine guibg=Red ctermbg=Red
highlight YcmErrorSign guibg=Red ctermbg=Red
" make YCM compatible with UltiSnips (using supertab)
let g:ycm_key_list_select_completion = ['<C-n>', '<Down>']
let g:ycm_key_list_previous_completion = ['<C-p>', '<Up>']
let g:SuperTabDefaultCompletionType = '<C-n>'
" better key bindings for UltiSnipsExpandTrigger
let g:UltiSnipsExpandTrigger = "<tab>"
let g:UltiSnipsJumpForwardTrigger = "<tab>"
let g:UltiSnipsJumpBackwardTrigger = "<s-tab>"
" Other colors
hi Search ctermfg=232 ctermbg=154 guifg=#141413 guibg=#aeee00
" Custom function to Toggle Tagbar and NERDTree
let s:hidden_all = 0
function! ToggleHiddenAll()
NERDTreeToggle
wincmd l
TagbarToggle
endfunction
nnoremap <silent> <leader>; :call ToggleHiddenAll()<CR>
" Rust debugging
let g:ycm_rust_src_path = '/home/dennis/code/rust/src'
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0
let g:syntastic_rust_checkers = ['cargo']
" Indent settings
let g:indentLine_char = '┆'
let g:indentLine_color_term = 239
call plug#begin()
Plug 'SirVer/ultisnips'
Plug 'honza/vim-snippets'
Plug 'ervandew/supertab'
" general
Plug 'majutsushi/tagbar'
Plug 'bling/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'bling/vim-bufferline'
Plug 'scrooloose/nerdtree', {'on': 'NERDTreeToggle'}
Plug 'simnalamburt/vim-mundo', {'on': 'MundoToggle'}
Plug 'wvffle/vimterm'
Plug 'Valloric/YouCompleteMe', { 'do': './install.py --clang-completer --rust-completer' }
Plug 'rdnetto/YCM-generator', { 'branch': 'stable'}
Plug 'chrisbra/Recover.vim'
Plug 'Yggdroot/indentLine'
Plug 'tpope/vim-surround'
Plug 'Shougo/denite.nvim'
Plug 'editorconfig/editorconfig-vim'
Plug 'iamcco/markdown-preview.nvim', { 'do': { -> mkdp#util#install() }}
" versioning
Plug 'tpope/vim-fugitive'
" python
Plug 'bfredl/nvim-ipy'
" rust
Plug 'rust-lang/rust.vim'
Plug 'vim-syntastic/syntastic'
" debugging
Plug 'sakhnik/nvim-gdb'
Plug 'vhda/verilog_systemverilog.vim'
call plug#end()
" Denite settings
nnoremap <space>e :Denite file_rec <cr>
call denite#custom#map(
\ 'insert',
\ '<C-j>',
\ '<denite:move_to_next_line>',
\ 'noremap'
\)
call denite#custom#map(
\ 'insert',
\ '<C-k>',
\ '<denite:move_to_previous_line>',
\ 'noremap'
\)
call denite#custom#filter('matcher_ignore_globs', 'ignore_globs', [ '.git/', '.gradle/', 'build/', '.idea/', 'app/', '*.png', '*.so', '*.a', '*.jar', 'target/' ])
call denite#custom#source('file_rec', 'matchers', ['matcher_ignore_globs', 'matcher/fuzzy'])

47
dotfiles/tmux.conf Normal file
View File

@ -0,0 +1,47 @@
# remap prefix to Control + a
set -g prefix C-a
unbind C-b
bind C-a send-prefix
# VIM mode
set-window-option -g mode-keys vi
bind-key -T copy-mode-vi 'v' send -X begin-selection
bind-key -T copy-mode-vi 'y' send -X copy-selection-and-cancel
# force a reload of the config file
unbind r
bind r source-file ~/.tmux.conf
# quick pane cycling
unbind ^A
bind ^A select-pane -t :.+
# prevent issues with (n)vi(m)
set -s escape-time 0
# don't rename windows automatically
set-option -g allow-rename off
# split panes using | and -
bind | split-window -h
bind - split-window -v
unbind '"'
unbind %
# switch panes using Alt-arrow without prefix
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
# tabs
setw -g window-status-format "#[fg=white]#[bg=blue] #I #[bg=blue]#[fg=white] #W "
setw -g window-status-current-format "#[bg=white]#[fg=black] *#I #[fg=black,bold]#[bg=white] [#W] "
# status bar
set-option -g status-position top
set -g status-fg white
set -g status-bg blue
set -g status-left ''
set -g status-right-length 60
set -g status-right '♥ #(acpi | cut -d ',' -f 2) | %a %m-%d %H:%M'

View File

@ -0,0 +1,10 @@
-----BEGIN PGP MESSAGE-----
jA0EBwMC9xvul9zwQYfv0sBFAZ5pm/87z6iugTHUSdyy0YglHk7oNvh8CHGpjrB3
9mUc90VlJFcvC+udXm9LNGqDhyMGAGboT7WU1hT+CtxKgonQ749SB4zJrqyYDXWE
w2i5argA+Pylrj3WLVIOWJZJfhanotbLoQLHNnYZuCIV3VM3p5ru6lZX92UwV6gf
o3MVHW1Rx2hIzI3hGtZ0T+JOo9spbsM7q+Q2GV9+KpLRis2bq3aBAF9yDV9/GspV
X8f0FJa2r7Mw3pP7eS9r4UHJmQ2q5AO3JUrGp+fgvIQZsTPRnbR1QlMxEKkFn106
/x8SpurCMvMiHr9FdoF/U2iVDPQDMxevNtkkdkZUuuYa+E974Fxj
=ccf+
-----END PGP MESSAGE-----

View File

@ -5,38 +5,39 @@ fi
# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH
export LC_ALL="en_US.UTF-8"
export LANGUAGE="en_US.UTF-8"
export LANG="en_US.UTF-8"
export GPG_TTY=$(tty)
# Path to your oh-my-zsh installation.
export ZSH="$HOME/.oh-my-zsh"
# Set name of the theme to load --- if set to "random", it will
# load a random theme each time oh-my-zsh is loaded, in which case,
# to know which specific one was loaded, run: echo $RANDOM_THEME
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
ZSH_THEME="eastwood"
# Set name of the theme to load. Optionally, if you set this to "random"
# it'll load a random theme each time that oh-my-zsh is loaded.
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
ZSH_THEME="gnzh"
# Set list of themes to pick from when loading at random
# Setting this variable when ZSH_THEME=random will cause zsh to load
# a theme from this variable instead of looking in $ZSH/themes/
# If set to an empty array, this variable will have no effect.
# Set list of themes to load
# Setting this variable when ZSH_THEME=random
# cause zsh load theme from this variable instead of
# looking in ~/.oh-my-zsh/themes/
# An empty array have no effect
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
# Uncomment the following line to use case-sensitive completion.
# CASE_SENSITIVE="true"
# Uncomment the following line to use hyphen-insensitive completion.
# Case-sensitive completion must be off. _ and - will be interchangeable.
# Uncomment the following line to use hyphen-insensitive completion. Case
# sensitive completion must be off. _ and - will be interchangeable.
# HYPHEN_INSENSITIVE="true"
# Uncomment one of the following lines to change the auto-update behavior
# zstyle ':omz:update' mode disabled # disable automatic updates
# zstyle ':omz:update' mode auto # update automatically without asking
# zstyle ':omz:update' mode reminder # just remind me to update when it's time
# Uncomment the following line to disable bi-weekly auto-update checks.
# DISABLE_AUTO_UPDATE="true"
# Uncomment the following line to change how often to auto-update (in days).
# zstyle ':omz:update' frequency 13
# Uncomment the following line if pasting URLs and other text is messed up.
# DISABLE_MAGIC_FUNCTIONS="true"
# export UPDATE_ZSH_DAYS=13
# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"
@ -48,9 +49,6 @@ ZSH_THEME="eastwood"
# ENABLE_CORRECTION="true"
# Uncomment the following line to display red dots whilst waiting for completion.
# You can also set it to another string to have that shown instead of the default red dots.
# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f"
# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765)
# COMPLETION_WAITING_DOTS="true"
# Uncomment the following line if you want to disable marking untracked files
@ -60,21 +58,19 @@ ZSH_THEME="eastwood"
# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# You can set one of the optional three formats:
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# or set a custom format using the strftime function format specifications,
# see 'man strftime' for details.
# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# HIST_STAMPS="mm/dd/yyyy"
# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder
# Which plugins would you like to load?
# Standard plugins can be found in $ZSH/plugins/
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(git)
plugins=(
git
)
source $ZSH/oh-my-zsh.sh
@ -86,15 +82,18 @@ source $ZSH/oh-my-zsh.sh
# export LANG=en_US.UTF-8
# Preferred editor for local and remote sessions
if [[ -n $SSH_CONNECTION ]]; then
export EDITOR='vim'
else
export EDITOR='nvim'
fi
# if [[ -n $SSH_CONNECTION ]]; then
# export EDITOR='vim'
# else
# export EDITOR='mvim'
# fi
# Compilation flags
# export ARCHFLAGS="-arch x86_64"
# ssh
# export SSH_KEY_PATH="~/.ssh/rsa_id"
# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
@ -103,7 +102,19 @@ fi
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
#
# Alias grep top ripgrep
alias grep="rg"
alias vi="nvim"
alias vim="nvim"
alias pst="pbincli"
alias dotdrop=~/dotfiles/dotdrop.sh --cfg=~/dotfiles/config.yaml
source ~/.zsh_private_aliases
export PATH=$PATH:~/code/PBinCLI/venv/bin:~/.local/bin
{%@@ if profile == "dennis-ThinkPad" @@%}
export GTK_MODULES=appmenu-gtk-module
{%@@ endif @@%}