/dotfiles

Current dotfiles and scripts

Primary LanguageShellMIT LicenseMIT

     _       _    __ _ _
  __| | ___ | |_ / _(_) | ___  ___
 / _` |/ _ \| __| |_| | |/ _ \/ __|
| (_| | (_) | |_|  _| | |  __/\__ \
 \__,_|\___/ \__|_| |_|_|\___||___/

   ____                        _ ____  _  _    __   _
  / __ \  ___ ___  _ __  _ __ (_)___ \| || |  / /_ / |
 / / _` |/ __/ _ \| '_ \| '_ \| | __) | || |_| '_ \| |
| | (_| | (_| (_) | | | | | | | |/ __/|__   _| (_) | |
 \ \__,_|\___\___/|_| |_|_| |_|_|_____|  |_|  \___/|_|
  \____/

license Codacy Badge Scc Code Badge

Introduction

The current dotfiles refer to a system with dwm and st. The remaining i3 configurations have been removed and are only accessible via the hash a597826.

Table of Contents

Install

# Move to your home folder
cd
# Create a alias to work with the git bare repository. Don't close the bash session or you have to run this command again.
alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME'
# Ignore the .cfg folder. This makes sure that you don't create weird recursion problems
echo ".cfg" >> .gitignore
# Close the repository
git clone --bare https://github.com/conni2461/dotfiles.git $HOME/.cfg
# Get the files
config checkout

Now files like .bashrc and .gitconfig are untracked. Either remove or move elsewhere.

config checkout
# Change git setup to only show tracked Files
config config --local status.showUntrackedFiles no

Use

# Show status of dotfile repository
config status
# Add a file
config add .file
# Create a commit
config commit -m "Message"
# Push to the remote repository
config push

Also you should change the email and name in the .gitconfig as well as the remote adresse.

Git bare article

Bash

Dotfiles provide clipmenu which requires dmenu, xsel and clipnotify. All credits goes to the creator of that scripts.

Most of the scripts are written for POSIX compliant shells. All scripts with /bin/sh are programmed and tested with dash and are not garanteed to run with bash. How to configure and use dash, can be found here.

Some scripts in the bin folder require dmenu, skim, ag, fd and ripgrep. Also twitch-notify and github-notify require python-notify2.

Zsh

Zsh is configured similar to bash and offers syntax-highlighting and autosuggestions when installed. If you ran into problems check the path of both extensions. It is possible that it has to be changed for your system.

Vim

When neovim is started for the first time, packer.nvim is downloaded. After that run :PackerSync To update plugins use :PackerUpdate. Some plugins need to be installed locally and will not be pulled!

A full list of used plugins:

Plugin Description
gruvbox gruvbox colorscheme
signature Plugin to toggle, display and navigate marks
git-messenger Show git messages with <leader>gm. Using nvim-floating-window
gitignore highlighting gitignore highlighting support
comment.nvim comment stuff out with gcc to comment out line and gc in visual mode
scriptease.vim Vim plugin for making Vim plugins. Loads :messages into quickfix list
tabular Helps with aligning text
devicons lua fork of vim-web-devicons for neovim
sql sqlite3 bindings written in lua
startify The fancy start screen for Vim with session support
plenary All the lua functions I don't want to write twice.
telescope Find, Filter, Preview, Pick. Fuzzyfinder written in Lua, with providers for treesitter and lsp
telescope-fzf-native Native fzf sorter for telescope
telescope-symbols symbol data for telescope
telescope-ui-select telescope ui select hook
telescope-frecency Smart MRU for telescope
telescope-smart-history Smart history replacement for the telescope builtin history
gitsigns Git signs written in pure lua
notify neovim notification system
treesitter Currently used for Syntax highlighting and incremental selection.
treesitter-refactor Adds Refactor module to Treesitter. Highlight definition, smart rename and more.
treesitter-textobjects Adds Textobjects based on treesitter
treesitter playground Treesitter playground integrated into Neovim. Interactive Debugging tool for Treesitter
treesitter-lua Treesitter lua grammar
nvim-lspconfig Providing config for built-in lsp
nvim-cmp Completion engine
nvim-cmp-buffer Buffer source for completion engine
nvim-cmp-path Path source for completion engine
nvim-cmp-lsp Lsp source for completion engine
LuaSnip Snippets plugin
cmp-luasnip Snippets source for completion plugin
lightbulb Show lightbulb when there is a code action at the current line
fidget Standalone UI for nvim-lsp progress
dap Debug Adapter Protocol client implementation for Neovim
dap virtual text Displayes virtual text coming from dap using treesitter
colorizer Adds color to hexcodes