From 69244064da9b60258607fccae4e9c75f0249880f Mon Sep 17 00:00:00 2001 From: multi Date: Sun, 22 Nov 2020 16:58:19 +0000 Subject: [PATCH] refactor(users/multi): make my user directory CI-compatible. 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 --- users/multi/home/.skip-subtree | 0 users/multi/home/configs/whitby.nix | 66 +++++++++++++++++++++++++++++ users/multi/home/default.nix | 27 ++++++++++++ 3 files changed, 93 insertions(+) create mode 100644 users/multi/home/.skip-subtree create mode 100644 users/multi/home/configs/whitby.nix create mode 100644 users/multi/home/default.nix diff --git a/users/multi/home/.skip-subtree b/users/multi/home/.skip-subtree new file mode 100644 index 000000000..e69de29bb diff --git a/users/multi/home/configs/whitby.nix b/users/multi/home/configs/whitby.nix new file mode 100644 index 000000000..665c11bb8 --- /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 000000000..b5befe6bb --- /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" ]; + }