about summary refs log tree commit diff
path: root/users/multi
diff options
context:
space:
mode:
authormulti <depot@in-addr.xyz>2020-11-22T16·58+0000
committermulti <depot@in-addr.xyz>2020-11-22T19·48+0000
commit69244064da9b60258607fccae4e9c75f0249880f (patch)
treee1bdc7801630278d5009c07cb6ee4b5a69833a22 /users/multi
parent9d6d945f524c06836c1292b3f9ab862521e32b1a (diff)
refactor(users/multi): make my user directory CI-compatible. r/1898
My home-manager config is not currently readTree compatible, which means
that it's not built by CI. This constructs a house of cards around
home-manager to make this buildable in CI.

Change-Id: I80480f24ff47347f46d708edbbf34d59fa76adac
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2123
Tested-by: BuildkiteCI
Reviewed-by: multi <depot@in-addr.xyz>
Diffstat (limited to 'users/multi')
-rw-r--r--users/multi/home/.skip-subtree0
-rw-r--r--users/multi/home/configs/whitby.nix66
-rw-r--r--users/multi/home/default.nix27
3 files changed, 93 insertions, 0 deletions
diff --git a/users/multi/home/.skip-subtree b/users/multi/home/.skip-subtree
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/users/multi/home/.skip-subtree
diff --git a/users/multi/home/configs/whitby.nix b/users/multi/home/configs/whitby.nix
new file mode 100644
index 0000000000..665c11bb87
--- /dev/null
+++ b/users/multi/home/configs/whitby.nix
@@ -0,0 +1,66 @@
+{ depot, pkgs, ... }:
+
+let
+  nixpkgs = import pkgs.nixpkgsSrc {};
+in
+
+{
+  programs = {
+    home-manager = {
+      enable = true;
+      path = toString nixpkgs.home-manager.src;
+    };
+
+    bash = {
+      enable = true;
+      initExtra = ''
+        bind '"\e[5~":history-search-backward'
+        bind '"\e[6~":history-search-forward'
+
+        PS1="[\\u@\\h:\\w]\\\$ "
+
+        _Z_CMD=d
+        source ~/.z.sh
+      '';
+    };
+
+    tmux = {
+      enable = true;
+      terminal = "tmux-256color";
+      escapeTime = 50;
+      extraConfig = ''
+        bind-key -n C-S-Left swap-window -t -1
+        bind-key -n C-S-Right swap-window -t +1
+      '';
+    };
+
+    vim = {
+      enable = true;
+      extraConfig = "set mouse=";
+    };
+  };
+
+  home.sessionVariables = {
+    NIX_PATH =
+      "nixpkgs=${pkgs.nixpkgsSrc}:" +
+      "depot=${depot.depotPath}";
+    HOME_MANAGER_CONFIG = "${depot.depotPath}/users/multi/whitby/home-manager.nix";
+    EDITOR = "vim";
+  };
+
+  home.packages = [
+    nixpkgs.lsof
+    nixpkgs.strace
+    nixpkgs.file
+    nixpkgs.pciutils
+  ];
+
+  home.file = {
+    z = {
+      source = builtins.fetchurl "https://raw.githubusercontent.com/rupa/z/9f76454b32c0007f20b0eae46d55d7a1488c9df9/z.sh";
+      target = ".z.sh";
+    };
+  };
+
+  home.stateVersion = "20.03";
+}
diff --git a/users/multi/home/default.nix b/users/multi/home/default.nix
new file mode 100644
index 0000000000..b5befe6bb6
--- /dev/null
+++ b/users/multi/home/default.nix
@@ -0,0 +1,27 @@
+{ depot, pkgs, lib, ... }:
+
+let
+  nixpkgs = import pkgs.nixpkgsSrc {};
+  home-modules = import "${nixpkgs.home-manager.src}/modules";
+  outerLib = lib;
+
+  home = path:
+    let 
+      configSet = import path { inherit depot pkgs; };
+    in
+      home-modules {
+        pkgs = nixpkgs;
+        configuration = { config, lib, ... }: (
+          {
+            _module.args.pkgs = outerLib.mkForce (import pkgs.nixpkgsSrc {});
+          } // configSet
+        );
+      };
+
+in
+  rec {
+    whitby = home ./configs/whitby.nix;
+    whitbyHome = whitby.activationPackage;
+
+    meta.targets = [ "whitbyHome" ];
+  }