diff options
Diffstat (limited to 'host')
| -rw-r--r-- | host/asterix.nix | 2 | ||||
| -rw-r--r-- | host/automatix.nix | 40 | ||||
| -rw-r--r-- | host/obelix.nix | 2 | ||||
| -rw-r--r-- | host/role/conf/vpn/kit.ovpn.nix | 19 | ||||
| -rw-r--r-- | host/software/asset/T-TeleSec_GlobalRoot_Class_2.pem (renamed from host/role/conf/vpn/T-TeleSec_GlobalRoot_Class_2.pem) | 0 | ||||
| -rw-r--r-- | host/software/asset/dir_colors | 218 | ||||
| -rw-r--r-- | host/software/code.kummerlaender.eu.nix | 42 | ||||
| -rw-r--r-- | host/software/desktop.nix (renamed from host/role/desktop.nix) | 11 | ||||
| -rw-r--r-- | host/software/fish.nix | 76 | ||||
| -rw-r--r-- | host/software/kit.vpn.nix | 27 | ||||
| -rw-r--r-- | host/software/pkgs/vim/asset/rc.vim | 128 | ||||
| -rw-r--r-- | host/software/pkgs/vim/asset/vim-color-akr/autoload/airline/themes/akr.vim | 86 | ||||
| -rw-r--r-- | host/software/pkgs/vim/asset/vim-color-akr/colors/akr.vim | 93 | ||||
| -rw-r--r-- | host/software/pkgs/vim/custom.nix | 42 | ||||
| -rw-r--r-- | host/software/pkgs/vim/default.nix | 11 | ||||
| -rw-r--r-- | host/software/pkgs/vim/plugins.nix | 84 | ||||
| -rw-r--r-- | host/software/vim.nix | 9 | 
17 files changed, 826 insertions, 64 deletions
diff --git a/host/asterix.nix b/host/asterix.nix index d925259..0d078e9 100644 --- a/host/asterix.nix +++ b/host/asterix.nix @@ -1,7 +1,7 @@  {    imports = [      ./hardware/asterix.nix -    ./role/desktop.nix +    ./software/desktop.nix    ];    boot = { diff --git a/host/automatix.nix b/host/automatix.nix index 9724b95..cbd0aeb 100644 --- a/host/automatix.nix +++ b/host/automatix.nix @@ -1,7 +1,10 @@  { pkgs, ... }:  { -  imports = [ ./hardware/automatix.nix ]; +  imports = [ +    ./hardware/automatix.nix +    ./software/code.kummerlaender.eu.nix +  ];    boot.loader.grub = {      enable  = true; @@ -18,31 +21,6 @@    };    services = { -    gitea = { -      enable = true; -      database.type = "sqlite3"; - -      appName = "~/projects"; -      domain  = "code.kummerlaender.eu"; -      rootUrl = "https://code.kummerlaender.eu/"; -      httpPort = 3000; - -      extraConfig = '' -        [server] -        LANDING_PAGE = "explore" -        [service] -        DISABLE_REGISTRATION = true -        SHOW_REGISTRATION_BUTTON = false -        [api] -        ENABLE_SWAGGER_ENDPOINT = false -        [picture] -        DISABLE_GRAVATAR = true -        [other] -        SHOW_FOOTER_VERSION = false -        SHOW_FOOTER_TEMPLATE_LOAD_TIME = false -      ''; -    }; -      nginx = {        enable = true; @@ -50,16 +28,6 @@        recommendedOptimisation  = true;        recommendedProxySettings = true;        recommendedTlsSettings   = true; - -      virtualHosts."code.kummerlaender.eu" = { -        addSSL = true; -        enableACME = true; -        locations = { -          "/" = { -            proxyPass = "http://localhost:3000/"; -          }; -        }; -      };      };    };  } diff --git a/host/obelix.nix b/host/obelix.nix index f876a61..8eea35e 100644 --- a/host/obelix.nix +++ b/host/obelix.nix @@ -3,7 +3,7 @@  {    imports = [      ./hardware/obelix.nix -    ./role/desktop.nix +    ./software/desktop.nix    ];    boot = { diff --git a/host/role/conf/vpn/kit.ovpn.nix b/host/role/conf/vpn/kit.ovpn.nix deleted file mode 100644 index 82a21ee..0000000 --- a/host/role/conf/vpn/kit.ovpn.nix +++ /dev/null @@ -1,19 +0,0 @@ -# adapted from https://www.scc.kit.edu/scc/net/openvpn/os/debian/kit.ovpn - -'' -client -remote 141.52.8.20 -port 1194 -dev tun -proto udp -auth-user-pass -nobind -comp-lzo no -tls-version-min 1.2 -ca ${./T-TeleSec_GlobalRoot_Class_2.pem} -verify-x509-name "C=DE, ST=Baden-Wuerttemberg, L=Karlsruhe, O=Karlsruhe Institute of Technology, OU=Steinbuch Centre for Computing, CN=ovpn.scc.kit.edu" subject -cipher AES-256-CBC -auth SHA384 -verb 3 -script-security 2 -'' diff --git a/host/role/conf/vpn/T-TeleSec_GlobalRoot_Class_2.pem b/host/software/asset/T-TeleSec_GlobalRoot_Class_2.pem index 374b050..374b050 100644 --- a/host/role/conf/vpn/T-TeleSec_GlobalRoot_Class_2.pem +++ b/host/software/asset/T-TeleSec_GlobalRoot_Class_2.pem diff --git a/host/software/asset/dir_colors b/host/software/asset/dir_colors new file mode 100644 index 0000000..bbe79d9 --- /dev/null +++ b/host/software/asset/dir_colors @@ -0,0 +1,218 @@ +# Configuration file for dircolors, a utility to help you set the +# LS_COLORS environment variable used by GNU ls with the --color option. +# Copyright (C) 1996-2015 Free Software Foundation, Inc. +# Copying and distribution of this file, with or without modification, +# are permitted provided the copyright notice and this notice are preserved. +# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the +# slackware version of dircolors) are recognized but ignored. +# Below, there should be one TERM entry for each termtype that is colorizable +TERM Eterm +TERM ansi +TERM color-xterm +TERM con132x25 +TERM con132x30 +TERM con132x43 +TERM con132x60 +TERM con80x25 +TERM con80x28 +TERM con80x30 +TERM con80x43 +TERM con80x50 +TERM con80x60 +TERM cons25 +TERM console +TERM cygwin +TERM dtterm +TERM eterm-color +TERM gnome +TERM gnome-256color +TERM hurd +TERM jfbterm +TERM konsole +TERM kterm +TERM linux +TERM linux-c +TERM mach-color +TERM mach-gnu-color +TERM mlterm +TERM putty +TERM putty-256color +TERM rxvt +TERM rxvt-256color +TERM rxvt-cygwin +TERM rxvt-cygwin-native +TERM rxvt-unicode +TERM rxvt-unicode-256color +TERM rxvt-unicode256 +TERM screen +TERM screen-256color +TERM screen-256color-bce +TERM screen-bce +TERM screen-w +TERM screen.Eterm +TERM screen.rxvt +TERM screen.linux +TERM st +TERM st-256color +TERM terminator +TERM vt100 +TERM xterm +TERM xterm-16color +TERM xterm-256color +TERM xterm-88color +TERM xterm-color +TERM xterm-debian +TERM xterm-termite +TERM xterm-kitty +# Below are the color init strings for the basic file types. A color init +# string consists of one or more of the following numeric codes: +# Attribute codes: +# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed +# Text color codes: +# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white +# Background color codes: +# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white +#NORMAL 00 # no color code at all +#FILE 00 # regular file: use no color at all +RESET 0 # reset to "normal" color +DIR 00;32 # directory +LINK 01;36 # symbolic link. (If you set this to 'target' instead of a + # numerical value, the color is as for the file pointed to.) +MULTIHARDLINK 00 # regular file with more than one link +FIFO 40;33 # pipe +SOCK 01;35 # socket +DOOR 01;35 # door +BLK 40;33;01 # block device driver +CHR 40;33;01 # character device driver +ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file ... +MISSING 00 # ... and the files they point to +SETUID 37;41 # file that is setuid (u+s) +SETGID 30;43 # file that is setgid (g+s) +CAPABILITY 30;41 # file with capability +STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w) +OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky +STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable +# This is for files with execute permission: +EXEC 01;32 +# List any file extensions like '.gz' or '.tar' that you would like ls +# to colorize below. Put the extension, a space, and the color init string. +# (and any comments you want to add after a '#') +# If you use DOS-style suffixes, you may want to uncomment the following: +#.cmd 01;32 # executables (bright green) +#.exe 01;32 +#.com 01;32 +#.btm 01;32 +#.bat 01;32 +# Or if you want to colorize scripts even if they do not have the +# executable bit actually set. +#.sh 01;32 +#.csh 01;32 + # archives or compressed (bright red) +.tar 01;31 +.tgz 01;31 +.arc 01;31 +.arj 01;31 +.taz 01;31 +.lha 01;31 +.lz4 01;31 +.lzh 01;31 +.lzma 01;31 +.tlz 01;31 +.txz 01;31 +.tzo 01;31 +.t7z 01;31 +.zip 01;31 +.z 01;31 +.Z 01;31 +.dz 01;31 +.gz 01;31 +.lrz 01;31 +.lz 01;31 +.lzo 01;31 +.xz 01;31 +.bz2 01;31 +.bz 01;31 +.tbz 01;31 +.tbz2 01;31 +.tz 01;31 +.deb 01;31 +.rpm 01;31 +.jar 01;31 +.war 01;31 +.ear 01;31 +.sar 01;31 +.rar 01;31 +.alz 01;31 +.ace 01;31 +.zoo 01;31 +.cpio 01;31 +.7z 01;31 +.rz 01;31 +.cab 01;31 +# image formats +.jpg 01;35 +.jpeg 01;35 +.gif 01;35 +.bmp 01;35 +.pbm 01;35 +.pgm 01;35 +.ppm 01;35 +.tga 01;35 +.xbm 01;35 +.xpm 01;35 +.tif 01;35 +.tiff 01;35 +.png 01;35 +.svg 01;35 +.svgz 01;35 +.mng 01;35 +.pcx 01;35 +.mov 01;35 +.mpg 01;35 +.mpeg 01;35 +.m2v 01;35 +.mkv 01;35 +.webm 01;35 +.ogm 01;35 +.mp4 01;35 +.m4v 01;35 +.mp4v 01;35 +.vob 01;35 +.qt 01;35 +.nuv 01;35 +.wmv 01;35 +.asf 01;35 +.rm 01;35 +.rmvb 01;35 +.flc 01;35 +.avi 01;35 +.fli 01;35 +.flv 01;35 +.gl 01;35 +.dl 01;35 +.xcf 01;35 +.xwd 01;35 +.yuv 01;35 +.cgm 01;35 +.emf 01;35 +# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions +.ogv 01;35 +.ogx 01;35 +# audio formats +.aac 00;36 +.au 00;36 +.flac 00;36 +.m4a 00;36 +.mid 00;36 +.midi 00;36 +.mka 00;36 +.mp3 00;36 +.mpc 00;36 +.ogg 00;36 +.ra 00;36 +.wav 00;36 +# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions +.oga 00;36 +.opus 00;36 +.spx 00;36 +.xspf 00;36 diff --git a/host/software/code.kummerlaender.eu.nix b/host/software/code.kummerlaender.eu.nix new file mode 100644 index 0000000..b2507e4 --- /dev/null +++ b/host/software/code.kummerlaender.eu.nix @@ -0,0 +1,42 @@ +{ pkgs, ... }: + +{ +  services = { +    gitea = { +      enable = true; +      database.type = "sqlite3"; + +      appName = "~/projects"; +      domain  = "code.kummerlaender.eu"; +      rootUrl = "https://code.kummerlaender.eu/"; +      httpPort = 3000; + +      extraConfig = '' +        [server] +        LANDING_PAGE = "explore" +        [service] +        DISABLE_REGISTRATION = true +        SHOW_REGISTRATION_BUTTON = false +        [other] +        SHOW_FOOTER_VERSION = false +        SHOW_FOOTER_TEMPLATE_LOAD_TIME = false +        [api] +        ENABLE_SWAGGER_ENDPOINT = false +        [picture] +        DISABLE_GRAVATAR = true +        [indexer] +        REPO_INDEXER_ENABLED = true +      ''; +    }; + +    nginx.virtualHosts."code.kummerlaender.eu" = { +      addSSL = true; +      enableACME = true; +      locations = { +        "/" = { +          proxyPass = "http://localhost:3000/"; +        }; +      }; +    }; +  }; +} diff --git a/host/role/desktop.nix b/host/software/desktop.nix index cf20500..501a561 100644 --- a/host/role/desktop.nix +++ b/host/software/desktop.nix @@ -1,6 +1,10 @@  { pkgs, ... }:  { +  imports = [ +    ./kit.vpn.nix +  ]; +    fileSystems."/".options = [ "noatime" "nodiratime" "discard" ];    sound.enable = true; @@ -17,13 +21,6 @@        extraConfig = ''Storage=volatile'';      }; -    openvpn.servers = { -      KIT = { -        config = import ./conf/vpn/kit.ovpn.nix; -        autoStart = false; -      }; -    }; -      xserver = {        enable = true;        layout = "de"; diff --git a/host/software/fish.nix b/host/software/fish.nix new file mode 100644 index 0000000..d1e46c9 --- /dev/null +++ b/host/software/fish.nix @@ -0,0 +1,76 @@ +{ pkgs, ... }: + +{ +  programs.fish = { +    enable = true; + +    shellInit = '' +      set fish_greeting "" +    ''; + +    interactiveShellInit = '' +      eval (dircolors -c ${./asset/dir_colors}) + +      set fish_color_normal         white +      set fish_color_command        magenta --bold +      set fish_color_param          green +      set fish_color_error          brred +      set fish_color_operator       cyan +      set fish_color_comment        white +      set fish_color_cwd            green +      set fish_color_quote          brown +      set fish_color_autosuggestion 555 +      set fish_color_redirection    white +    ''; + +    promptInit = '' +      function fish_prompt +        set last_status $status + +        if not set -q __fish_prompt_normal +          set -g __fish_prompt_normal (set_color normal) +        end + +        switch $USER +          case root +            if not set -q __fish_prompt_cwd +              if set -q fish_color_cwd_root +                set -g __fish_prompt_cwd (set_color $fish_color_cwd_root) +              else +                set -g __fish_prompt_cwd (set_color $fish_color_cwd) +              end +            end + +          case '*' +            if not set -q __fish_prompt_cwd +              set -g __fish_prompt_cwd (set_color $fish_color_cwd) +            end +        end + +        echo -n -s 'λ ' "$__fish_prompt_cwd" (prompt_pwd) "$__fish_prompt_normal" + +        if test $IN_NIX_SHELL +          if test $NIX_SHELL_NAME +            echo -n -s ' (' $NIX_SHELL_NAME ')' +          else +            echo -n -s ' (nix-shell)' +          end +        end + +        if test $last_status -gt 0 +          set_color $fish_color_cwd_root +          echo -n -s ' ● ' +          set_color normal +        else +          echo -n -s ' ● ' +        end +      end + +      function fish_right_prompt +        set_color $fish_color_autosuggestion +        date '+%H:%M:%S' +        set_color normal +      end +    ''; +  }; +} diff --git a/host/software/kit.vpn.nix b/host/software/kit.vpn.nix new file mode 100644 index 0000000..726356d --- /dev/null +++ b/host/software/kit.vpn.nix @@ -0,0 +1,27 @@ +{ pkgs, ... }: + +{ +  services.openvpn.servers = { +    KIT = { +      # adapted from https://www.scc.kit.edu/scc/net/openvpn/os/debian/kit.ovpn +      config = '' +        client +        remote 141.52.8.20 +        port 1194 +        dev tun +        proto udp +        auth-user-pass +        nobind +        comp-lzo no +        tls-version-min 1.2 +        ca ${./asset/T-TeleSec_GlobalRoot_Class_2.pem} +        verify-x509-name "C=DE, ST=Baden-Wuerttemberg, L=Karlsruhe, O=Karlsruhe Institute of Technology, OU=Steinbuch Centre for Computing, CN=ovpn.scc.kit.edu" subject +        cipher AES-256-CBC +        auth SHA384 +        verb 3 +        script-security 2 +      ''; +      autoStart = false; +    }; +  }; +} diff --git a/host/software/pkgs/vim/asset/rc.vim b/host/software/pkgs/vim/asset/rc.vim new file mode 100644 index 0000000..81f48e0 --- /dev/null +++ b/host/software/pkgs/vim/asset/rc.vim @@ -0,0 +1,128 @@ +syntax enable +filetype plugin indent on + +colorscheme akr + +set encoding=utf-8 +set showcmd +set nocompatible +set nocursorline +set number +set lazyredraw +set ttyfast +set mouse=a +set t_Co=256 +set shell=/bin/sh +set sessionoptions-=options + +set directory=~/.vim/swap//,. + +set undofile +set undodir=~/.vim/undo + +set wrap +set tabstop=4 shiftwidth=4 +set backspace=indent,eol,start +set linebreak + +set hlsearch +set incsearch +set ignorecase +set smartcase + +set wildchar=<Tab> wildmenu wildmode=full + +let mapleader="," + +map <leader>s  :let @/=""<CR> +map <leader>c  zz +map <leader>d  <c-]> + +nmap <backspace> :e#<CR> +nmap f           za +nmap F           zA + +" disable to override default on neovim +set noautoread + +autocmd InsertEnter *   :setlocal nohlsearch +autocmd InsertLeave *   :setlocal hlsearch + +autocmd FileType scheme  setlocal shiftwidth=2 tabstop=2 expandtab +autocmd FileType lisp    setlocal shiftwidth=2 tabstop=2 expandtab +autocmd FileType racket  setlocal shiftwidth=2 tabstop=2 expandtab +autocmd FileType haskell setlocal shiftwidth=2 tabstop=4 softtabstop=2 shiftround expandtab +autocmd FileType pandoc  setlocal nonumber autoread +autocmd FileType pandoc  let      g:airline#extensions#whitespace#checks=['indent', 'trailing', 'long'] +autocmd FileType tex     set      conceallevel=2 + +nnoremap <C-Tab>   :bnext<CR> +nnoremap <C-S-Tab> :bprev<CR> + +" select previous line on file reload, useful when cycling file extensions +autocmd BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | execute "normal! g`\" zz" | endif +nnoremap <Tab> :CounterpointNext<CR> +nnoremap <S-Tab> :CounterpointPrevious<CR> + +nnoremap <C-left>  gT +nnoremap <C-right> gt +nnoremap <space> @q +nnoremap J } +nnoremap K { + +nmap <Left>  << +nmap <Right> >> +vmap <Left>  <gv +vmap <Right> >gv + +nmap <Up>   [e +nmap <Down> ]e +vmap <Up>   [egv +vmap <Down> ]egv + +nnoremap <A-left>  <C-W>h +nnoremap <A-right> <C-W>l +nnoremap <A-up>    <C-W>k +nnoremap <A-down>  <C-W>j + +set laststatus=2 +let g:airline_theme                                   = 'akr' +let g:airline#extensions#tabline#enabled              = 1 +let g:airline#extensions#tabline#show_buffers         = 1 +let g:airline#extensions#tabline#show_tab_type        = 1 +let g:airline#extensions#tabline#fnamemod             = ':t' +let g:airline#extensions#tabline#formatter            = 'unique_tail_improved' +let g:airline#extensions#tabline#buffer_idx_mode      = 0 +let g:airline#extensions#tabline#show_close_button    = 0 +let g:airline#extensions#tabline#show_splits          = 0 +let g:airline#extensions#tabline#show_tab_nr          = 0 +let g:airline#extensions#whitespace#mixed_indent_algo = 2 + +let g:gitgutter_enabled         = 0 +let g:gitgutter_highlight_lines = 1 + +let g:goyo_width                = 90 +let g:goyo_margin_top           = 1 +let g:goyo_margin_bottom        = 0 + +nnoremap <F5> :MundoToggle<CR> +nnoremap <F6> :GitGutterToggle<CR> +nnoremap <F7> :SignatureToggleSigns<CR> +nnoremap <F8> :Goyo<CR> + +nnoremap <c-b> :CtrlPBuffer<CR> +nnoremap <c-m> :CtrlPMixed<CR> +nnoremap <c-t> :CtrlPTag<CR> +nnoremap <a-t> :CtrlPBufTag<CR> + +let g:ctrlp_custom_ignore = { +\ 'dir':  '\.git$', +\ 'file': '\.o$\|\.d$' +\ } + +let g:undotree_SetFocusWhenToggle = 1 + +let g:localvimrc_sandbox    = 0 +let g:localvimrc_persistent = 2 + +let g:wordmotion_prefix = '<Leader>' diff --git a/host/software/pkgs/vim/asset/vim-color-akr/autoload/airline/themes/akr.vim b/host/software/pkgs/vim/asset/vim-color-akr/autoload/airline/themes/akr.vim new file mode 100644 index 0000000..1b847c4 --- /dev/null +++ b/host/software/pkgs/vim/asset/vim-color-akr/autoload/airline/themes/akr.vim @@ -0,0 +1,86 @@ +" Normal mode +"          [ guifg     , guibg     , ctermfg , ctermbg ] +let s:N1 = [ '#161616' , '#909636' , 0       , 10 ] " mode +let s:N2 = [ '#161616' , '#909636' , 0       , 10 ] " info +let s:N3 = [ '#909636' , '#161616' , 10      , 0  ] " statusline +let s:N4 = [ '#352F6A' , 4                        ] " mode modified + +" Insert mode +let s:I1 = [ '#E4E093' , '#352F6A' , 3       , 4 ] +let s:I2 = [ '#E4E093' , '#352F6A' , 3       , 4 ] +let s:I3 = [ '#909636' , '#161616' , 10      , 0 ] +let s:I4 = [ '#352F6A' , 4                       ] + +" Visual mode +let s:V1 = [ '#E4E093' , '#8C3346' , 3       , 1 ] +let s:V2 = [ '#E4E093' , '#8C3346' , 3       , 1 ] +let s:V3 = [ '#909636' , '#161616' , 10      , 0 ] +let s:V4 = [ '#352F6A' , 4                       ] + +" Replace mode +let s:R1 = [ '#E4E093' , '#352F6A' , 3       , 4 ] +let s:R2 = [ '#E4E093' , '#352F6A' , 3       , 4 ] +let s:R3 = [ '#909636' , '#161616' , 10      , 0 ] +let s:R4 = [ '#352F6A' , 4                       ] + +" Paste mode +let s:PA = [ '#352F6A' , 4 ] + +" Info modified +let s:IM = [ '#909636' , 10 ] + +" Inactive mode +let s:IA = [ '#767676' , s:N3[1] , 243 , s:N3[3] , '' ] + +let g:airline#themes#akr#palette = {} + +let g:airline#themes#akr#palette.accents = { +      \ 'red': [ '#8C3346' , '' , 1 , '' , '' ], +      \ } + +let g:airline#themes#akr#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#akr#palette.normal_modified = { +    \ 'airline_a': [ s:N1[0] , s:N4[0] , s:N1[2] , s:N4[1] , ''     ] , +    \ 'airline_b': [ s:N4[0] , s:IM[0] , s:N4[1] , s:IM[1] , ''     ] , +    \ 'airline_c': [ s:N4[0] , s:N3[1] , s:N4[1] , s:N3[3] , ''     ] } + + +let g:airline#themes#akr#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#akr#palette.insert_modified = { +    \ 'airline_a': [ s:I1[0] , s:I4[0] , s:I1[2] , s:I4[1] , ''     ] , +    \ 'airline_b': [ s:I4[0] , s:IM[0] , s:I4[1] , s:IM[1] , ''     ] , +    \ 'airline_c': [ s:I4[0] , s:N3[1] , s:I4[1] , s:N3[3] , ''     ] } + + +let g:airline#themes#akr#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#akr#palette.visual_modified = { +    \ 'airline_a': [ s:V1[0] , s:V4[0] , s:V1[2] , s:V4[1] , ''     ] , +    \ 'airline_b': [ s:V4[0] , s:IM[0] , s:V4[1] , s:IM[1] , ''     ] , +    \ 'airline_c': [ s:V4[0] , s:N3[1] , s:V4[1] , s:N3[3] , ''     ] } + + +let g:airline#themes#akr#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) +let g:airline#themes#akr#palette.replace_modified = { +    \ 'airline_a': [ s:R1[0] , s:R4[0] , s:R1[2] , s:R4[1] , ''     ] , +    \ 'airline_b': [ s:R4[0] , s:IM[0] , s:R4[1] , s:IM[1] , ''     ] , +    \ 'airline_c': [ s:R4[0] , s:N3[1] , s:R4[1] , s:N3[3] , ''     ] } + + +let g:airline#themes#akr#palette.insert_paste = { +    \ 'airline_a': [ s:I1[0] , s:PA[0] , s:I1[2] , s:PA[1] , ''     ] , +    \ 'airline_b': [ s:PA[0] , s:IM[0] , s:PA[1] , s:IM[1] , ''     ] , +    \ 'airline_c': [ s:PA[0] , s:N3[1] , s:PA[1] , s:N3[3] , ''     ] } + + +let g:airline#themes#akr#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#akr#palette.inactive_modified = { +    \ 'airline_c': [ s:N4[0] , ''      , s:N4[1] , ''      , ''     ] } + + +if !get(g:, 'loaded_ctrlp', 0) +  finish +endif +let g:airline#themes#akr#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( +      \ [ '#909636' , '#161616' , 10 , 0  , ''     ] , +      \ [ '#909636' , '#161616' , 10 , 0  , ''     ] , +      \ [ '#161616' , '#909636' , 0  , 10 , 'bold' ] ) diff --git a/host/software/pkgs/vim/asset/vim-color-akr/colors/akr.vim b/host/software/pkgs/vim/asset/vim-color-akr/colors/akr.vim new file mode 100644 index 0000000..4ffd2ca --- /dev/null +++ b/host/software/pkgs/vim/asset/vim-color-akr/colors/akr.vim @@ -0,0 +1,93 @@ +hi      clear +syntax  reset +let     background    = "dark" +let     g:colors_name = "akr" + +hi      Normal            cterm=NONE     gui=NONE     ctermfg=7     guifg=#F2F2F2  ctermbg=0      guibg=#161616 +hi      NonText           cterm=NONE     gui=NONE     ctermfg=0     guifg=#161616  ctermbg=0      guibg=#161616 +hi      LineNr            cterm=NONE     gui=NONE     ctermfg=241   guifg=#606060  ctermbg=NONE   guibg=NONE + +hi      Cursor            cterm=reverse  gui=reverse  ctermfg=NONE  guifg=NONE     ctermbg=NONE   guibg=NONE +hi      CursorLine        cterm=NONE     gui=NONE     ctermfg=NONE  guifg=NONE     ctermbg=235    guibg=#262626 +hi      CursorLineNr      cterm=NONE     gui=NONE     ctermfg=2     guifg=#AADB0F  ctermbg=235    guibg=#262626 +hi      CursorColumn      cterm=NONE     gui=NONE     ctermfg=NONE  guifg=NONE     ctermbg=8      guibg=#F2F2F2 +hi      ColorColumn       cterm=NONE     gui=NONE     ctermfg=NONE  guifg=NONE     ctermbg=2      guibg=#AADB0F +hi      SignColumn        cterm=NONE     gui=NONE     ctermfg=NONE  guifg=NONE     ctermbg=2      guibg=#AADB0F + +hi      TabLine           cterm=NONE     gui=NONE     ctermfg=10    guifg=#909636  ctermbg=0      guibg=#161616 +hi      TabLineFill       cterm=NONE     gui=NONE     ctermfg=NONE  guifg=NONE     ctermbg=7      guibg=#F2F2F2 +hi      TabLineSel        cterm=NONE     gui=NONE     ctermfg=0     guifg=#161616  ctermbg=10     guibg=#909636 +hi      StatusLine        cterm=NONE     gui=NONE     ctermfg=10    guifg=#909636  ctermbg=235    guibg=#262626 +hi      StatusLineNC      cterm=NONE     gui=NONE     ctermfg=10    guifg=#909636  ctermbg=0      guibg=#161616 +hi      VertSplit         cterm=NONE     gui=NONE     ctermfg=235   guifg=#262626  ctermbg=235    guibg=#262626 +hi      Visual            cterm=NONE     gui=NONE     ctermfg=3     guifg=#E4E093  ctermbg=1      guibg=#8C3346 +hi      VisualNOS         cterm=NONE     gui=NONE     ctermfg=NONE  guifg=NONE     ctermbg=NONE   guibg=NONE + +hi      Pmenu             cterm=NONE     gui=NONE     ctermfg=NONE  guifg=NONE     ctermbg=232    guibg=#080808 +hi      PmenuSbar         cterm=NONE     gui=NONE     ctermfg=NONE  guifg=NONE     ctermbg=235    guibg=#262626 +hi      PmenuSel          cterm=NONE     gui=NONE     ctermfg=2     guifg=#AADB0F  ctermbg=241    guibg=#606060 +hi      PmenuThumb        cterm=NONE     gui=NONE     ctermfg=NONE  guifg=NONE     ctermbg=247    guibg=#9e9e9e + +hi      DiffAdd           cterm=NONE     gui=NONE     ctermfg=0     guifg=#161616  ctermbg=10     guibg=#909636 +hi      DiffChange        cterm=NONE     gui=NONE     ctermfg=0     guifg=#161616  ctermbg=3      guibg=#E4E093 +hi      DiffDelete        cterm=NONE     gui=NONE     ctermfg=0     guifg=#161616  ctermbg=1      guibg=#8C3346 +hi      DiffText          cterm=NONE     gui=NONE     ctermfg=NONE  guifg=NONE     ctermbg=4      guibg=#352F6A + +hi      Search            cterm=NONE     gui=NONE     ctermfg=0     guifg=#161616  ctermbg=10     guibg=#909636 +hi      IncSearch         cterm=NONE     gui=NONE     ctermfg=0     guifg=#161616  ctermbg=2      guibg=#AADB0F + +hi      Comment           cterm=NONE     gui=italic   ctermfg=7     guifg=#F2F2F2  ctermbg=NONE   guibg=NONE +hi      Type              cterm=NONE     gui=NONE     ctermfg=2     guifg=#AADB0F  ctermbg=NONE   guibg=NONE +hi      Boolean           cterm=NONE     gui=NONE     ctermfg=2     guifg=#AADB0F  ctermbg=NONE   guibg=NONE +hi      String            cterm=NONE     gui=NONE     ctermfg=2     guifg=#AADB0F  ctermbg=NONE   guibg=NONE +hi      Number            cterm=NONE     gui=NONE     ctermfg=2     guifg=#AADB0F  ctermbg=NONE   guibg=NONE +hi      Title             cterm=bold     gui=bold     ctermfg=2     guifg=#AADB0F  ctermbg=NONE   guibg=NONE +hi      Constant          cterm=bold     gui=italic   ctermfg=7     guifg=#F2F2F2  ctermbg=NONE   guibg=NONE +hi      Identifier        cterm=bold     gui=bold     ctermfg=7     guifg=#F2F2F2  ctermbg=0      guibg=#161616 +hi      Statement         cterm=bold     gui=bold     ctermfg=2     guifg=#AADB0F  ctermbg=NONE   guibg=NONE +hi      StorageClass      cterm=bold     gui=bold     ctermfg=2     guifg=#AADB0F  ctermbg=NONE   guibg=NONE +hi      Conditional       cterm=bold     gui=bold     ctermfg=2     guifg=#AADB0F  ctermbg=NONE   guibg=NONE + +hi      MatchParen        cterm=bold     gui=bold     ctermfg=0     guifg=#161616  ctermbg=2      guibg=#AADB0F +hi      Special           cterm=NONE     gui=NONE     ctermfg=7     guifg=#F2F2F2  ctermbg=NONE   guibg=NONE +hi      Tabs              cterm=NONE     gui=NONE     ctermfg=NONE  guifg=NONE     ctermbg=235    guibg=#262626 +hi      ColorColumn       cterm=NONE     gui=NONE     ctermfg=NONE  guifg=NONE     ctermbg=7      guibg=#F2F2F2 +hi      Conceal           cterm=NONE     gui=NONE     ctermfg=7     guifg=#F2F2F2  ctermbg=NONE   guibg=NONE +hi      Directory         cterm=NONE     gui=NONE     ctermfg=7     guifg=#F2F2F2  ctermbg=NONE   guibg=NONE +hi      Error             cterm=NONE     gui=NONE     ctermfg=NONE  guifg=NONE     ctermbg=1      guibg=#8C3346 +hi      ErrorMsg          cterm=NONE     gui=NONE     ctermfg=NONE  guifg=NONE     ctermbg=1      guibg=#8C3346 +hi      FoldColumn        cterm=NONE     gui=NONE     ctermfg=7     guifg=#F2F2F2  ctermbg=NONE   guibg=NONE +hi      Folded            cterm=NONE     gui=NONE     ctermfg=7     guifg=#F2F2F2  ctermbg=NONE   guibg=NONE +hi      Ignore            cterm=NONE     gui=NONE     ctermfg=NONE  guifg=NONE     ctermbg=NONE   guibg=NONE +hi      ModeMsg           cterm=NONE     gui=NONE     ctermfg=NONE  guifg=NONE     ctermbg=NONE   guibg=NONE +hi      MoreMsg           cterm=NONE     gui=NONE     ctermfg=NONE  guifg=NONE     ctermbg=NONE   guibg=NONE +hi      Question          cterm=NONE     gui=NONE     ctermfg=NONE  guifg=NONE     ctermbg=NONE   guibg=NONE +hi      SignColumn        cterm=NONE     gui=NONE     ctermfg=7     guifg=#F2F2F2  ctermbg=NONE   guibg=NONE +hi      Underlined        cterm=NONE     gui=NONE     ctermfg=NONE  guifg=NONE     ctermbg=NONE   guibg=NONE +hi      WarningMsg        cterm=NONE     gui=NONE     ctermfg=NONE  guifg=NONE     ctermbg=9      guibg=#FF0000 +hi      WildMenu          cterm=NONE     gui=NONE     ctermfg=0     guifg=#161616  ctermbg=10     guibg=#909636 +hi      PreProc           cterm=NONE     gui=NONE     ctermfg=NONE  guifg=NONE     ctermbg=NONE   guibg=NONE + +hi      xmlTagName        cterm=NONE     gui=NONE     ctermfg=7     guifg=#F2F2F2  ctermbg=NONE   guibg=NONE +hi      xmlEndTag         cterm=NONE     gui=NONE     ctermfg=7     guifg=#F2F2F2  ctermbg=NONE   guibg=NONE +hi      xmlNamespace      cterm=bold     gui=bold     ctermfg=7     guifg=#F2F2F2  ctermbg=NONE   guibg=NONE +hi      xmlAttrib         cterm=NONE     gui=NONE     ctermfg=7     guifg=#F2F2F2  ctermbg=NONE   guibg=NONE + +hi      texSection        cterm=bold     gui=bold     ctermfg=2     guifg=#AADB0F  ctermbg=NONE   guibg=NONE +hi      texMathZoneX      cterm=NONE     gui=NONE     ctermfg=NONE  guifg=NONE     ctermbg=8      guibg=#000000 +hi      texMathText       cterm=NONE     gui=NONE     ctermfg=NONE  guifg=NONE     ctermbg=8      guibg=#000000 +hi      texMathSymbol     cterm=bold     gui=bold     ctermfg=NONE  guifg=NONE     ctermbg=8      guibg=#000000 +hi      texMathOper       cterm=bold     gui=bold     ctermfg=2     guifg=#AADB0F  ctermbg=8      guibg=#000000 +hi      texMathMatcher    cterm=NONE     gui=NONE     ctermfg=NONE  guifg=NONE     ctermbg=8      guibg=#000000 +hi      texTypeStyle      cterm=bold     gui=bold     ctermfg=NONE  guifg=NONE     ctermbg=8      guibg=#000000 +hi      texStatement      cterm=bold     gui=bold     ctermfg=NONE  guifg=NONE     ctermbg=NONE   guibg=NONE +hi      texGreek          cterm=NONE     gui=NONE     ctermfg=NONE  guifg=NONE     ctermbg=8      guibg=#000000 +hi      texBeginEnd       cterm=NONE     gui=NONE     ctermfg=2     guifg=#AADB0F  ctermbg=NONE   guibg=NONE +hi      texSubscript      cterm=NONE     gui=NONE     ctermfg=NONE  guifg=NONE     ctermbg=8      guibg=#000000 +hi      texSuperscript    cterm=NONE     gui=NONE     ctermfg=NONE  guifg=NONE     ctermbg=8      guibg=#000000 +hi      texBeginEndName   cterm=NONE     gui=NONE     ctermfg=NONE  guifg=NONE     ctermbg=NONE   guibg=NONE +hi      Conceal           cterm=NONE     gui=NONE     ctermfg=NONE  guifg=NONE     ctermbg=8      guibg=#000000 + +hi      prologClauseHead  cterm=NONE     gui=NONE     ctermfg=2     guifg=#AADB0F  ctermbg=NONE   guibg=NONE + +match  Tabs /[\t]\+/ diff --git a/host/software/pkgs/vim/custom.nix b/host/software/pkgs/vim/custom.nix new file mode 100644 index 0000000..4719b72 --- /dev/null +++ b/host/software/pkgs/vim/custom.nix @@ -0,0 +1,42 @@ +{ pkgs }: + +let +  vimrc   = builtins.readFile ./asset/rc.vim; +  plugins = pkgs.callPackage ./plugins.nix {}; +in +{ +  vam = { +    knownPlugins = pkgs.vimPlugins // plugins; +    pluginDictionaries = [ +      { names = [ +      # UI enhancements +        "vim-airline" +        "goyo" +        "vim-toggle-ui-elements" +      # load project specific config +        "vim-localvimrc" +      # colors, syntax highlighting +        "vim-color-akr" +        "vim-polyglot" +        "vim-addon-nix" +      # file, buffer management +        "ctrlp" +        "vim-counterpoint" +        "vim-signature" +      # undo history tree +        "vim-mundo" +      # editing enhancements +        "vim-wordmotion" +        "vim-autoformat" +        "surround" +        "vim-unimpaired" +        "vim-far" +      # git integration +        "fugitive" +        "vim-gitgutter" +        "vim-gina" +      ];} +    ]; +  }; +  customRC = vimrc; +} diff --git a/host/software/pkgs/vim/default.nix b/host/software/pkgs/vim/default.nix new file mode 100644 index 0000000..0b0001d --- /dev/null +++ b/host/software/pkgs/vim/default.nix @@ -0,0 +1,11 @@ +{ pkgs, ... }: + +let +  custom_vim = pkgs.vim_configurable.customize { +    name        = "vim"; +    vimrcConfig = (import ./custom.nix { pkgs = pkgs; }); +  }; +in pkgs.lib.overrideDerivation custom_vim ( o: { +    gui              = false; +    multibyteSupport = true; +} ) diff --git a/host/software/pkgs/vim/plugins.nix b/host/software/pkgs/vim/plugins.nix new file mode 100644 index 0000000..87abea4 --- /dev/null +++ b/host/software/pkgs/vim/plugins.nix @@ -0,0 +1,84 @@ +{ pkgs, fetchgit }: + +let +  buildVimPlugin = pkgs.vimUtils.buildVimPluginFrom2Nix; +in { + +  "vim-unimpaired" = buildVimPlugin { +    name = "vim-unimpaired"; +    src  = fetchgit { +      url    = "https://github.com/tpope/vim-unimpaired"; +      rev    = "bacf1543cc957d47aa70c1dc0bcf99392925b008"; +      sha256 = "0jx9xybjswnaa6v7hhfqm2nyd5v54xjd02ikw56wm7h6sfgchllx"; +    }; +  }; + +  "vim-counterpoin  | 
