From 0c9e597c63f05f6f3bd9a4273f2769f21031a4f2 Mon Sep 17 00:00:00 2001 From: Bart Riemens Date: Tue, 16 May 2023 22:50:07 +0200 Subject: [PATCH] Add basic packages and configured zsh and nvim --- bash/bash.nix | 10 +++++++ bash/bash_profile | 0 bash/bashrc | 0 git/git.nix | 9 ++++++ git/gitconfig | 3 ++ home.nix | 20 ++++++++++++- nvim/base.vim | 76 +++++++++++++++++++++++++++++++++++++++++++++++ nvim/nvim.nix | 12 ++++++++ zsh/zsh.nix | 28 +++++++++++++++++ zsh/zshrc | 12 ++++++++ 10 files changed, 169 insertions(+), 1 deletion(-) create mode 100644 bash/bash.nix create mode 100644 bash/bash_profile create mode 100644 bash/bashrc create mode 100644 git/git.nix create mode 100644 git/gitconfig create mode 100644 nvim/base.vim create mode 100644 nvim/nvim.nix create mode 100644 zsh/zsh.nix create mode 100644 zsh/zshrc diff --git a/bash/bash.nix b/bash/bash.nix new file mode 100644 index 0000000..dc80462 --- /dev/null +++ b/bash/bash.nix @@ -0,0 +1,10 @@ +{ pkgs, ... }: { + + programs.bash = { + enable = true; + profileExtra = builtins.readFile ./bash_profile; + initExtra = builtins.readFile ./bashrc; + }; + +} + diff --git a/bash/bash_profile b/bash/bash_profile new file mode 100644 index 0000000..e69de29 diff --git a/bash/bashrc b/bash/bashrc new file mode 100644 index 0000000..e69de29 diff --git a/git/git.nix b/git/git.nix new file mode 100644 index 0000000..9e99a2e --- /dev/null +++ b/git/git.nix @@ -0,0 +1,9 @@ +{ pkgs, ... }: { + + programs.git = { + enable = true; + includes = [{ path = "~/.config/home-manager/gitconfig"; }]; + }; + +} + diff --git a/git/gitconfig b/git/gitconfig new file mode 100644 index 0000000..19dd20d --- /dev/null +++ b/git/gitconfig @@ -0,0 +1,3 @@ +[user] + name = Bart Riemens + email = briemens@crafity.com diff --git a/home.nix b/home.nix index 7acabff..5686ae9 100644 --- a/home.nix +++ b/home.nix @@ -1,6 +1,24 @@ -{ pkgs, ... }: { +{ pkgs, lib, ... }: { home.username = "briemens"; home.homeDirectory = "/Users/briemens"; home.stateVersion = "22.11"; programs.home-manager.enable = true; + + imports = [ + ./bash/bash.nix + ./git/git.nix + ./nvim/nvim.nix + ./zsh/zsh.nix + ]; + + home.packages = with pkgs; [ + bashInteractive # don't ask me why + vifm + ]; + + programs.htop.enable = true; + + programs.fzf = { + enable = true; + }; } diff --git a/nvim/base.vim b/nvim/base.vim new file mode 100644 index 0000000..c326813 --- /dev/null +++ b/nvim/base.vim @@ -0,0 +1,76 @@ + +filetype off +filetype plugin indent on +set nocompatible +scriptencoding utf-8 +set encoding=utf-8 +set autoindent +set backspace=2 +set bs=indent,eol,start +set completeopt-=preview +set nocursorcolumn +set cursorline +set guioptions= +" set colorcolumn=120 +set diffopt+=vertical +set expandtab +set formatoptions=qr +set hidden +set history=5000 +set laststatus=2 +set signcolumn=yes +" set list listchars=tab:»·,trail:·,nbsp:·,eol:¬,extends:❯,precedes:❮ +" set list listchars=tab:»·,trail:·,extends:❯,precedes:❮ +" set list listchars=tab:»·,trail:·,extends:❯,precedes:❮ +set list listchars=tab:\ \ ,trail:·,extends:❯,precedes:❮ +set mouse=a +set noautochdir +set noswapfile +set novisualbell +set nowrap +set number +set numberwidth=5 +set relativenumber +set ruler +set scrolloff=5 "Start scrolling when we're 8 lines away from margins +syntax sync minlines=256 +set synmaxcol=100000 +set shiftround +set shiftwidth=2 +set shortmess=filnxtToOcI +set softtabstop=2 +set splitbelow +set splitright +set switchbuf=usetab +set tabstop=2 +set textwidth=120 +set lbr +set timeoutlen=1000 +set updatetime=10 +set notimeout +set ttimeoutlen=0 +set ttyfast +set matchtime=3 +set wildmenu +set wildmode=list:longest +set virtualedit=block +set fileformat=unix +set clipboard=unnamedplus +set foldmarker={{{,}}} +set t_ZH= +set t_ZR= +set background=dark + +syntax enable + +if v:lang =~ "utf8$" || v:lang =~ "UTF-8$" + set fileencodings=ucs-bom,utf-8,latin1 +endif + +if v:version > 703 || v:version == 703 && has('patch541') + set formatoptions+=j +endif + +autocmd StdinReadPre * let s:std_in=1 + +colorscheme quiet diff --git a/nvim/nvim.nix b/nvim/nvim.nix new file mode 100644 index 0000000..363be7d --- /dev/null +++ b/nvim/nvim.nix @@ -0,0 +1,12 @@ +{ pkgs, lib, ... }: { + + programs.neovim = { + enable = true; + defaultEditor = true; + extraConfig = builtins.concatStringsSep "\n" [ + (lib.strings.fileContents ./base.vim) + ]; + }; + +} + diff --git a/zsh/zsh.nix b/zsh/zsh.nix new file mode 100644 index 0000000..3750b52 --- /dev/null +++ b/zsh/zsh.nix @@ -0,0 +1,28 @@ +{ pkgs, ... }: { + + programs.zsh = { + enable = true; + enableCompletion = true; + enableAutosuggestions = true; + defaultKeymap = "viins"; + history.extended = true; + initExtra = '' + ${builtins.readFile ./zshrc} + ''; + sessionVariables = rec { + EDITOR = "nvim"; + }; + plugins = [ + { + name = "zsh-autosuggestions"; + src = pkgs.fetchFromGitHub { + owner = "zsh-users"; + repo = "zsh-autosuggestions"; + rev = "v0.6.3"; + sha256 = "1h8h2mz9wpjpymgl2p7pc146c1jgb3dggpvzwm9ln3in336wl95c"; + }; + } + ]; + }; + +} diff --git a/zsh/zshrc b/zsh/zshrc new file mode 100644 index 0000000..6206aa4 --- /dev/null +++ b/zsh/zshrc @@ -0,0 +1,12 @@ +echo Welcome to ZSH + +eval "$(ssh-agent -s)" +ssh-add $HOME/.ssh/id_rsa + +alias vim='nvim' +alias f='vifm' +alias l='ls -al' +alias gs='git status' +alias ga='git add' +alias ga.='git add .' +alias homerc='vim ~/.config/home-manager/home.nix'