{ config, pkgs, inputs, lib, ... }: { home.username = "till"; home.homeDirectory = "/home/till"; home.stateVersion = "22.11"; nixpkgs = { config = { allowUnfree = true; allowUnfreePredicate = (_: true); }; }; programs.home-manager.enable = true; home.packages = with pkgs; let R-packed = rWrapper.override { packages = with rPackages; [ jsonlite rlist rvest sf tidyverse tmap ]; }; in [ exa firefox fzf jq khal khard neomutt nodejs qutebrowser R-packed rstudio ruby silver-searcher tmux tree vdirsyncer ]; programs.neovim = { enable = true; defaultEditor = true; plugins = with pkgs.vimPlugins; [ # todo: pandoc, completion, lsp { plugin = fzf-vim; config = '' let maplocalleader="\\" let mapleader=" " nnoremap :Buffers imap (fzf-complete-path) nnoremap o :Files nnoremap O :Files ~/ nnoremap r :Read nnoremap a :Ag nnoremap b :Buffers nnoremap . :Files ~/.config/ command! -nargs=? -complete=dir Read call fzf#run( \fzf#wrap({'sink': 'read', 'dir': }) \) ''; } { plugin = goyo; config = '' nnoremap yog :Goyo nnoremap [og :Goyo 80 nnoremap ]og :Goyo! ''; } { plugin = limelight-vim; config = '' set termguicolors let g:limelight_conceal_ctermfg = 'darkgray' nnoremap yof :Limelight!! nnoremap [of :Limelight nnoremap ]of :Limelight! ''; } { plugin = nvim-colorizer-lua; config = "lua require 'colorizer'.setup()"; } { plugin = papercolor-theme; config = '' set background=light colorscheme PaperColor ''; } typescript-vim { plugin = ultisnips; config = "nnoremap se :UltiSnipsEdit!"; } vim-commentary { plugin = vim-easy-align; config = '' xmap ga (EasyAlign) nmap ga (EasyAlign) ''; } vim-fish vim-nix vim-repeat { plugin = vim-slime; config = '' let g:slime_target = "tmux" let g:slime_default_config = {"socket_name": get(split($TMUX, ","), 0), "target_pane": ":.1"} let g:slime_no_mappings = 1 let g:slime_dont_ask_default = 1 xmap s SlimeRegionSend nmap s SlimeMotionSend nmap ss SlimeLineSend nnoremap s: :SlimeSend1 " let g:slime_target = "neovim" " autocmd TermOpen * let g:slime_default_config = {"jobid": &channel} ''; } vim-snippets vim-speeddating vim-surround vim-unimpaired ]; extraConfig = '' let mapleader=" " let maplocalleader="\\" set colorcolumn=+1 set expandtab set ignorecase set iskeyword+=ä,Ä,ö,Ö,ü,Ü,ß set linebreak set list listchars=tab:»\ ,trail:·,nbsp:~ set number set relativenumber set scrolloff=7 set shell=/bin/sh set shiftwidth=2 set shortmess=FfmnxoTIc set signcolumn=no set smartcase set softtabstop=2 set spelllang=en_us,de_20 set splitbelow set splitright set tabstop=2 set updatetime=300 let g:netrw_liststyle = 3 let g:netrw_fastbrowse = 0 ''; }; home.shellAliases = { ls = "exa"; tree = "exa --tree"; v = "nvim"; }; programs.fish = { enable = true; }; programs.git = { enable = true; userName = "Till"; userEmail = "till@ktiu.net"; lfs = { enable = true; }; extraConfig = { init = { defaultBranch = "main"; }; }; }; }