msc-thesis/shell.nix

186 lines
5.3 KiB
Nix
Raw Normal View History

2016-08-17 20:18:33 +02:00
let
nixpkgs = import <nixpkgs> {};
pkgsSrc = nixpkgs.pkgs.fetchFromGitHub {
2016-09-03 12:46:15 +02:00
owner = "nixos";
repo = "nixpkgs-channels";
rev = "adfcc2d9531e78bf6a9e3b56e2f4fc873cb3d87b";
sha256 = "101mh6gb9wlx0lq5pw2m0n1fi3h2pag3ndg184rrqzvn9ynp28iw";
};
pkgs = import pkgsSrc {};
2016-09-03 12:46:15 +02:00
2017-04-05 11:45:01 +02:00
eqexam.pkgs = [
(pkgs.stdenv.mkDerivation rec {
version = "2012-05-17";
pname = "eqexam";
name = "${pname}-${version}";
tlType = "run";
src = pkgs.fetchurl {
url = "http://www.math.uakron.edu/~dpstory/eqexam/eqexam_pack.zip";
sha256 = "0g4w9ma6cr277li5b8dps9fm9jkjlwzwjc6ix01mw4kva4h5fdrj";
};
buildInputs = [ pkgs.unzip pkgs.texlive.combined.scheme-basic ];
buildPhase = "
latex eqexam.ins
";
installPhase = "
mkdir -p $out/tex/latex/eqexam
cp -va *.sty *.cfg *.def $out/tex/latex/eqexam
mkdir -p $out/doc/latex/eqexam
cp -va doc/* $out/doc/latex/eqexam
";
meta = {
branch = "3";
platforms = pkgs.stdenv.lib.platforms.unix;
};
})
];
mytexlive = (pkgs.texlive.combine {
inherit (pkgs.texlive) scheme-full;
inherit eqexam;
});
in pkgs.stdenv.mkDerivation {
2016-08-17 20:18:33 +02:00
name = "msc-thesis";
shellHook = ''
alias vim-thesis="vim -p --servername VIM -- \
$PWD/src/docs/thesis.tex \
$PWD/src/docs/glossary.tex \
$PWD/src/docs/parts/context/context.tex \
$PWD/src/docs/parts/research/research.tex \
"
'';
2016-08-17 20:18:33 +02:00
buildInputs = [
pkgs.xdotool
(pkgs.vim_configurable.customize {
name = "vim";
vimrcConfig = {
# add custom .vimrc lines like this:
customRC = ''
set nocompatible
" leader
let mapleader = ','
set hidden
syntax on
set hlsearch
set number
" mappings to stop insert mode
imap jjj <ESC>
imap kkk <ESC>
imap lll <ESC>
imap hhh <ESC>
set scroll=11
noremap <C-n> :tabn<CR>
noremap <C-p> :tabp<CR>
let g:ctrlp_map = '<tab>'
let g:ctrlp_custom_ignore = {
\ 'dir': '\v[\/]\.(git|hg|svn|)$$',
2016-09-03 12:48:19 +02:00
\ 'file': '\v\.(exe|so|dll|so|swp|zip|aux|log|fdb_latexmk|fdb|dvi|lof|lot|pdf|fls|toc|gz|latexmain)$$',
2016-08-17 20:18:33 +02:00
\ }
" allways show status line
set ls=2
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
"set textwidth=80
" sync default register to clipboard {
if has('unnamedplus')
set clipboard=unnamedplus
else
set clipboard=unnamed
endif
" }
" colored brackets {
let g:rbpt_colorpairs = [
\ ['brown', 'RoyalBlue3'],
\ ['Darkblue', 'SeaGreen3'],
\ ['darkgray', 'DarkOrchid3'],
\ ['darkgreen', 'firebrick3'],
\ ['darkcyan', 'RoyalBlue3'],
\ ['darkred', 'SeaGreen3'],
\ ['darkmagenta', 'DarkOrchid3'],
\ ['brown', 'firebrick3'],
\ ['gray', 'RoyalBlue3'],
\ ['black', 'SeaGreen3'],
\ ['darkmagenta', 'DarkOrchid3'],
\ ['Darkblue', 'firebrick3'],
\ ['darkgreen', 'RoyalBlue3'],
\ ['darkcyan', 'SeaGreen3'],
\ ['darkred', 'DarkOrchid3'],
\ ['red', 'firebrick3'],
\ ]
let g:rbpt_max = 16
let g:rbpt_loadcmd_toggle = 0
au VimEnter * RainbowParenthesesToggle
au Syntax * RainbowParenthesesLoadRound
au Syntax * RainbowParenthesesLoadSquare
au Syntax * RainbowParenthesesLoadBraces
" }
2016-09-03 12:48:19 +02:00
set backspace=indent,eol,start
colorscheme PaperColor
" Latex Related {{{
au BufRead,BufNewFile *.tex,*.md,*.markdown setlocal spell spelllang=en_us
2016-08-17 20:18:33 +02:00
let g:vimtex_view_method = 'zathura'
let g:vimtex_complete_enabled = 1
let g:vimtex_complete_close_braces = 1
let g:vimtex_complete_recursive_bib = 1
let g:vimtex_indent_enabled = 1
let g:vimtex_indent_bib_enabled = 1
if !exists('g:ycm_semantic_triggers')
let g:ycm_semantic_triggers = {}
endif
let g:ycm_semantic_triggers.tex = [
\ 're!\\[A-Za-z]*cite[A-Za-z]*(\[[^]]*\]){0,2}{[^}]*',
\ 're!\\[A-Za-z]*ref({[^}]*|range{([^,{}]*(}{)?))',
\ 're!\\hyperref\[[^]]*',
\ 're!\\includegraphics\*?(\[[^]]*\]){0,2}{[^}]*',
\ 're!\\(include(only)?|input){[^}]*',
\ 're!\\\a*(gls|Gls|GLS)(pl)?\a*(\s*\[[^]]*\]){0,2}\s*\{[^}]*',
\ 're!\\includepdf(\s*\[[^]]*\])?\s*\{[^}]*',
\ 're!\\includestandalone(\s*\[[^]]*\])?\s*\{[^}]*',
\ ]
2016-09-03 12:48:19 +02:00
function! ViewerCallback() dict
call self.forward_search(self.out)
endfunction
let g:vimtex_view_zathura_hook_callback = 'ViewerCallback'
" }}}
2016-08-17 20:18:33 +02:00
'';
vam.knownPlugins = pkgs.vimPlugins;
vam.pluginDictionaries = [
"youcompleteme"
"vim-airline"
"ctrlp"
"vim-css-color"
"rainbow_parentheses"
"vim-colorschemes"
"vim-signify"
"vimtex"
];
};
})
2017-04-05 11:45:01 +02:00
mytexlive
2016-08-17 20:18:33 +02:00
pkgs.zathura
];
}