about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--modules/module-list.nix1
-rw-r--r--modules/user/aszlig/profiles/base.nix3
-rw-r--r--modules/user/aszlig/programs/vim/default.nix (renamed from pkgs/vim/default.nix)80
-rw-r--r--pkgs/default.nix1
4 files changed, 48 insertions, 37 deletions
diff --git a/modules/module-list.nix b/modules/module-list.nix
index 2cc3235f..a67365bc 100644
--- a/modules/module-list.nix
+++ b/modules/module-list.nix
@@ -3,6 +3,7 @@
   ./user/aszlig/profiles/workstation
   ./user/aszlig/programs/gajim
   ./user/aszlig/programs/git
+  ./user/aszlig/programs/vim
   ./user/aszlig/programs/zsh
   ./user/aszlig/services/i3
   ./user/aszlig/services/slim
diff --git a/modules/user/aszlig/profiles/base.nix b/modules/user/aszlig/profiles/base.nix
index aa984544..b264cdd3 100644
--- a/modules/user/aszlig/profiles/base.nix
+++ b/modules/user/aszlig/profiles/base.nix
@@ -39,6 +39,8 @@ in {
       ServerAliveInterval 60
     '';
 
+    vuizvui.user.aszlig.programs.vim.enable = true;
+
     services.nixosManual.showManual = false;
 
     environment.systemPackages = with pkgs; [
@@ -50,7 +52,6 @@ in {
       psmisc
       unrar
       unzip
-      vim
       vlock
       wget
       xz
diff --git a/pkgs/vim/default.nix b/modules/user/aszlig/programs/vim/default.nix
index f753b453..231e00ea 100644
--- a/pkgs/vim/default.nix
+++ b/modules/user/aszlig/programs/vim/default.nix
@@ -1,23 +1,23 @@
-{ stdenv, lib, writeTextFile, writeText, buildEnv
-, fetchurl, fetchFromGitHub, vim_configurable
-}:
+{ config, pkgs, lib, ... }:
 
 let
+  cfg = config.vuizvui.user.aszlig.programs.vim;
+
   fetchVimScript = { srcId, sha256, type, name }: let
     baseUrl = "http://www.vim.org/scripts/download_script.php";
-    src = fetchurl {
+    src = pkgs.fetchurl {
       name = "script${toString srcId}.vim";
       url = "${baseUrl}?src_id=${toString srcId}";
       inherit sha256;
     };
-  in stdenv.mkDerivation {
+  in pkgs.stdenv.mkDerivation {
     name = "vim-${type}-${toString srcId}";
     buildCommand = ''
       install -vD -m 0644 "${src}" "$out/${type}/${name}.vim"
     '';
   };
 
-  extractSubdir = subdir: src: stdenv.mkDerivation {
+  extractSubdir = subdir: src: pkgs.stdenv.mkDerivation {
     name = "${src.name}-subdir";
     phases = [ "unpackPhase" "installPhase" ];
     inherit src;
@@ -26,7 +26,7 @@ let
     '';
   };
 
-  mkVimPlugins = plugins: buildEnv {
+  mkVimPlugins = plugins: pkgs.buildEnv {
     name = "vim-plugins";
     paths = with lib; mapAttrsToList (const id) plugins;
     ignoreCollisions = true;
@@ -36,84 +36,84 @@ let
   };
 
   pluginDeps = {
-    vimAddonMwUtils = fetchFromGitHub {
+    vimAddonMwUtils = pkgs.fetchFromGitHub {
       owner = "MarcWeber";
       repo = "vim-addon-mw-utils";
       rev = "0c5612fa31ee434ba055e21c76f456244b3b5109";
       sha256 = "147s1k4n45d3x281vj35l26sv4waxjlpqdn83z3k9n51556h1d45";
     };
 
-    vimAddonCompletion = fetchFromGitHub {
+    vimAddonCompletion = pkgs.fetchFromGitHub {
       owner = "MarcWeber";
       repo = "vim-addon-completion";
       rev = "80f717d68df5b0d7b32228229ddfd29c3e86e435";
       sha256 = "08acffzy847w8b5j8pdw6qsidm2859ki5q351n4r7fkr969p80mi";
     };
 
-    vimAddonActions = fetchFromGitHub {
+    vimAddonActions = pkgs.fetchFromGitHub {
       owner = "MarcWeber";
       repo = "vim-addon-actions";
       rev = "a5d20500fb8812958540cf17862bd73e7af64936";
       sha256 = "1wfkwr89sn2w97i94d0dqylcg9mr6pirjadi0a4l492nfnsh99bc";
     };
 
-    vimAddonBackgroundCmd = fetchFromGitHub {
+    vimAddonBackgroundCmd = pkgs.fetchFromGitHub {
       owner = "MarcWeber";
       repo = "vim-addon-background-cmd";
       rev = "14df72660a95804a57c02b9ff0ae3198608e2491";
       sha256 = "09lh6hqbx05gm7njhpqvhqdwig3pianq9rddxmjsr6b1vylgdgg4";
     };
 
-    vimAddonErrorFormats = fetchFromGitHub {
+    vimAddonErrorFormats = pkgs.fetchFromGitHub {
       owner = "MarcWeber";
       repo = "vim-addon-errorformats";
       rev = "dcbb203ad5f56e47e75fdee35bc92e2ba69e1d28";
       sha256 = "159zqm69fxbxcv3b2y99g57bf20qrzsijcvb5rzy2njxah3049m1";
     };
 
-    vimAddonToggleBuffer = fetchFromGitHub {
+    vimAddonToggleBuffer = pkgs.fetchFromGitHub {
       owner = "MarcWeber";
       repo = "vim-addon-toggle-buffer";
       rev = "a1b38b9c5709cba666ed2d84ef06548f675c6b0b";
       sha256 = "1xq38kfdm36c34ln66znw841q797w5gm8bpq1x64bsf2h6n3ml03";
     };
 
-    vimAddonGotoThingAtCursor = fetchFromGitHub {
+    vimAddonGotoThingAtCursor = pkgs.fetchFromGitHub {
       owner = "MarcWeber";
       repo = "vim-addon-goto-thing-at-cursor";
       rev = "f052e094bdb351829bf72ae3435af9042e09a6e4";
       sha256 = "1ksm2b0j80zn8sz2y227bpcx4jsv76lwgr2gpgy2drlyqhn2vlv0";
     };
 
-    vimAddonViews = fetchFromGitHub {
+    vimAddonViews = pkgs.fetchFromGitHub {
       owner = "MarcWeber";
       repo = "vim-addon-views";
       rev = "d1383ad56d0a07d7350880adbadf9de501729fa8";
       sha256 = "09gqh7w5rk4lmra706schqaj8dnisf396lpsipm7xv6gy1qbslnv";
     };
 
-    vimAddonSwfMill = fetchFromGitHub {
+    vimAddonSwfMill = pkgs.fetchFromGitHub {
       owner = "MarcWeber";
       repo = "vim-addon-swfmill";
       rev = "726777e02cbe3ad8f82e37421fb37674f446a148";
       sha256 = "0ablzl5clgfzhzwvzzbaj0cda0b4cyrj3pbv02f26hx7rfnssaqm";
     };
 
-    vimHaxeSyntax = fetchFromGitHub {
+    vimHaxeSyntax = pkgs.fetchFromGitHub {
       owner = "MarcWeber";
       repo = "vim-haxe-syntax";
       rev = "500acc2f2ab92d77ff6cd04fdc7868800c033dfa";
       sha256 = "1ipm0igplplfmscm3bk95qpf9rw71h133l9shmw54mxr4h0ymnmj";
     };
 
-    tlib = fetchFromGitHub {
+    tlib = pkgs.fetchFromGitHub {
       owner = "tomtom";
       repo = "tlib_vim";
       rev = "bc4097bd38c4bc040fe1e74df68dec6c9adfcb6a";
       sha256 = "19v7bgmkk4k2g1z62bd0kky29xxfq96l7wfrl27wb2zijlhbrnpz";
     };
 
-    vamStub = writeTextFile {
+    vamStub = pkgs.writeTextFile {
       name = "vam-stub";
       destination = "/autoload/vam.vim";
       text = ''
@@ -127,42 +127,42 @@ let
   };
 
   plugins = mkVimPlugins (pluginDeps // {
-    vimErl = fetchFromGitHub {
+    vimErl = pkgs.fetchFromGitHub {
       owner = "jimenezrick";
       repo = "vimerl";
       rev = "823bf8cb515bb10396c705cdc017aa9121cc4d12";
       sha256 = "0sybkx8iy8qhr6nlwn52j7zd5v99rn0b8wbg43d112z2px4yq5x3";
     };
 
-    vimHaxe = fetchFromGitHub {
+    vimHaxe = pkgs.fetchFromGitHub {
       owner = "MarcWeber";
       repo = "vim-haxe";
       rev = "8efc705db41a01713d67d437f29866a1ff831e8a";
       sha256 = "15kv13gvpgf23p0566qrlw7gmpir2z7g5dnkfs1knmcwzw45am5d";
     };
 
-    factor = extractSubdir "misc/vim" (fetchFromGitHub {
+    factor = extractSubdir "misc/vim" (pkgs.fetchFromGitHub {
       owner = "slavapestov";
       repo = "factor";
       rev = "0d6f70cc7cf35cc627ee78886e2932091a651fe6";
       sha256 = "0lmqzvrmwgmxpcpwgn59y033sf4jybmw3lffbjwww5d7ch90333q";
     });
 
-    opaLang = extractSubdir "tools/editors/vim" (fetchFromGitHub {
+    opaLang = extractSubdir "tools/editors/vim" (pkgs.fetchFromGitHub {
       owner = "MLstate";
       repo = "opalang";
       rev = "94e4e6d9d8da9a72214f4f28dd1ffa1a987997eb";
       sha256 = "0d6b67868cfqakkz63y5ynpz549lbpfzc3c3x7kx3ffsv10xy3bb";
     });
 
-    lslvim = fetchFromGitHub {
+    lslvim = pkgs.fetchFromGitHub {
       owner = "sukima";
       repo = "LSLvim";
       rev = "f269de39a1c713a43470e90d0ec78208c0f05e0b";
       sha256 = "1plwx5id3jsj4y6yhshlf3rishxhf1b9k47g2cpzaczvqb5bl40w";
     };
 
-    vimSyntaxShakespeare = fetchFromGitHub {
+    vimSyntaxShakespeare = pkgs.fetchFromGitHub {
       owner = "pbrisbin";
       repo = "vim-syntax-shakespeare";
       rev = "29085ae94ee3dbd7f39f2a7705d86692ef5bc365";
@@ -190,14 +190,14 @@ let
       type = "indent";
     };
 
-    nixAddon = fetchFromGitHub {
+    nixAddon = pkgs.fetchFromGitHub {
       owner = "MarcWeber";
       repo = "vim-addon-nix";
       rev = "7b0a376bb1797fef8da2dc14e768f318bcb671e8";
       sha256 = "00dsba2a0az9bw1sni12km1vdga9x32dapxaj5gmq98hzqlhklyp";
     };
 
-    urwebAddon = fetchFromGitHub {
+    urwebAddon = pkgs.fetchFromGitHub {
       owner = "MarcWeber";
       repo = "vim-addon-urweb";
       rev = "49ea3960a9924a5dd7ff70956d1a7c0479a55773";
@@ -218,14 +218,14 @@ let
       type = "syntax";
     };
 
-    elmVim = fetchFromGitHub {
+    elmVim = pkgs.fetchFromGitHub {
       owner = "lambdatoast";
       repo = "elm.vim";
       rev = "ad556c97e26072b065825852ceead0fe6a1f7d7c";
       sha256 = "19k6b6m5ngm5qn2f3p13hzjyvha53fpdgq691z8n0lwfn8831b21";
     };
 
-    flake8 = fetchFromGitHub {
+    flake8 = pkgs.fetchFromGitHub {
       owner = "nvie";
       repo = "vim-flake8";
       rev = "293613dbe731a2875ce93739e7b64ee504d8bbab";
@@ -315,7 +315,7 @@ let
     autocmd BufWritePost * if &ft ==# 'python' | call Flake8() | endif
   '';
 
-  vimrc = writeText "vimrc" ''
+  vimrc = pkgs.writeText "vimrc" ''
     ${generic}
     ${plugin}
 
@@ -326,8 +326,18 @@ let
     ${misc}
   '';
 
-in lib.overrideDerivation vim_configurable (o: {
-  postInstall = (o.postInstall or "") + ''
-    ln -sf "${vimrc}" "$out/share/vim/vimrc"
-  '';
-})
+  patchedVim = lib.overrideDerivation pkgs.vim_configurable (o: {
+    postInstall = (o.postInstall or "") + ''
+      ln -sf "${vimrc}" "$out/share/vim/vimrc"
+    '';
+  });
+
+in {
+  options.vuizvui.user.aszlig.programs.vim = {
+    enable = lib.mkEnableOption "aszlig's Vim";
+  };
+
+  config = lib.mkIf cfg.enable {
+    environment.systemPackages = lib.singleton patchedVim;
+  };
+}
diff --git a/pkgs/default.nix b/pkgs/default.nix
index d156deff..2e6b3550 100644
--- a/pkgs/default.nix
+++ b/pkgs/default.nix
@@ -18,7 +18,6 @@ let
     tkabber_urgent_plugin = callPackage ./tkabber-urgent-plugin { };
     tomahawk = callPackage ./tomahawk { };
     twitchstream = callPackage ./twitchstream { };
-    vim = callPackage ./vim { };
 
     vuizvuiKernelPatches = {
       bfqsched = callPackage ./kpatches/bfqsched.nix { };