about summary refs log tree commit diff
diff options
context:
space:
mode:
authorWilliam Carroll <wpcarro@gmail.com>2020-09-07T22·01+0100
committerWilliam Carroll <wpcarro@gmail.com>2020-09-07T22·01+0100
commit1ece8c083b43142a375baa7d137fcba8bde717b6 (patch)
tree8880182ac6f7f42491257b2c484ea71e28b9fc47
parent11c46b9ad57ce9b1977d43fe2f520f7483805c46 (diff)
Drop support for Nix home-manager
On my work machines, I'm finding home-manager to be more bothersome than
helpful. I'm preferring a simpler workflow for the time being.
-rw-r--r--README.md4
-rw-r--r--configs/.config/nixpkgs/home.nix228
-rw-r--r--emacs/.emacs.d/wpc/wpc-nix.el10
-rw-r--r--emacs/default.nix10
4 files changed, 11 insertions, 241 deletions
diff --git a/README.md b/README.md
index 8bf96a4c021d..db31a200bbf8 100644
--- a/README.md
+++ b/README.md
@@ -63,8 +63,7 @@ using `//` to indicate the root of my monorepo, the directory in which this
 
 - `//boilerplate`: scaffolding for projects. Boilerplate's goal is to
   reduce the startup costs of a project.
-- `//configs`: my dotfiles (e.g. `config.fish`, `init.vim`). Eventually Nix
-  `home-manager` should replace this.
+- `//configs`: my dotfiles (e.g. `config.fish`, `init.vim`).
 - `//emacs`: Emacs is both my preferred text editor and my window manager; with
   tens of thousands of lines of Emacs Lisp, you can safely assume that this
   directory hosts a lot of libraries and packages.
@@ -80,7 +79,6 @@ using `//` to indicate the root of my monorepo, the directory in which this
 
 Here are a few reminders when setting up a new machine:
 
-- Use Nix `home-manager` to configure the new machine.
 - Ensure `~/.password-store` exists.
 - Run `export_gpg` from a computer with my gpg credentials. Run `import_gpg`
   from the new machine.
diff --git a/configs/.config/nixpkgs/home.nix b/configs/.config/nixpkgs/home.nix
deleted file mode 100644
index 82c4ade0a002..000000000000
--- a/configs/.config/nixpkgs/home.nix
+++ /dev/null
@@ -1,228 +0,0 @@
-{ config, pkgs, ... }:
-
-# I know of two ways to install my home environment using home-manager:
-#
-# $ home-manager switch
-# $ nix-shell ~/home-manager -A install
-#
-# I believe these calls depend on nixpkgs being set in NIX_PATH, which is a
-# dependency that I'm trying to prune...
-let
-  briefcase = import <briefcase> {};
-  inherit (briefcase.utils) builder;
-  inherit (builtins) toPath readFile;
-in {
-  home = {
-    packages = with pkgs; [
-      bat
-      exa
-      ripgrep
-      fd
-      pass
-      tokei
-      nmap
-      tldr
-      diskus
-      jq
-      pup
-    ];
-    keyboard = {
-      options = [
-        # Swap Caps-Lock and Escape
-        "remove Lock = Caps_Lock"
-        "keysym Caps_Lock = Escape"
-      ];
-    };
-    sessionVariables = {
-      BROWSER = "google-chrome";
-      EDITOR = "emacsclient";
-      ALTERNATE_EDITOR = "vim";
-    };
-    stateVersion = "19.09";
-  };
-
-  ##############################################################################
-  # Programs
-  ##############################################################################
-
-  programs.home-manager = {
-    enable = true;
-    path = toPath ~/home-manager;
-  };
-
-  programs.git = {
-    enable = true;
-    package = builder.wrapNonNixProgram {
-      path = "/usr/bin/git";
-      as = "git";
-    };
-    userName = "William Carroll";
-    userEmail = "wpcarro@gmail.com";
-    aliases = {
-      today = "! git log --date=relative --since=00:00:00 --all --no-merges --oneline --author=\"$(git config --get user.email)\"";
-      yday = "! git log --since=yesterday.midnight --until=today.midnight --oneline --author=\"$(git config --get user.email)\"";
-      changed-files = "! git --no-pager diff --name-only $(current_branch) $(git merge-base $(current_branch) master)";
-      conflicts = "! git --no-pager diff --name-only --diff-filter=U";
-      unstage = "reset HEAD --";
-    };
-    extraConfig = {
-      push.default = "current";
-      rebase = {
-        autosquash = true;
-        autostash = true;
-      };
-      rerere.enabled = true;
-    };
-  };
-
-  programs.gpg = {
-    enable = true;
-    settings = {
-      keyserver = "hkp://pgp.mit.edu";
-    };
-  };
-
-  programs.ssh = {
-    enable = true;
-    matchBlocks = {
-      desktop = {
-        user = "wpcarro";
-        hostname = "zeno.lon.corp.google.com";
-      };
-      socrates = {
-        user = "wpcarro";
-        hostname = "84.92.33.141";
-      };
-    };
-  };
-
-  programs.fish = {
-    enable = true;
-    shellAliases = {
-      c = "xclip -selection clipboard -i";
-      p = "xclip -selection clipboard -o";
-      cat = "bat --theme='Monokai Extended Light'";
-      rgh = "rg --hidden";
-      fdh = "fd --hidden";
-      tpr = "tput reset";
-      ls = "exa --sort=type";
-      ll = "exa --long --sort=type";
-      la = "exa --long --all --sort=type";
-      gst = "git status";
-      gsh = "git show HEAD";
-      gpf = "git push --force-with-lease";
-      gd = "git diff";
-      b = "cd ~/briefcase";
-    };
-    shellAbbrs = {
-      sys = "systemctl";
-      sysst = "systemctl status";
-      sysu = "systemctl --user";
-      sysust = "systemctl --user status";
-    };
-    promptInit = readFile ../fish/prompt.fish;
-    functions = {
-      ptree = {
-        body = ''
-          for pid in (pgrep $argv[1])
-            pstree -s -p $pid
-          end
-        '';
-      };
-    };
-  };
-
-  programs.fzf = let
-    defaultCommand = "fd --hidden --follow --exclude '.git'";
-  in {
-    enable = true;
-    defaultCommand = defaultCommand;
-    fileWidgetCommand = defaultCommand;
-    enableFishIntegration = true;
-  };
-
-  programs.direnv = {
-    enable = true;
-    enableFishIntegration = true;
-  };
-
-  programs.autorandr = {
-    enable = true;
-    profiles = let
-      # To get these values, I ran `xrandr --props` and searched for
-      # 'EDID:'. While these are long and a bit unsightly, I cannot think of a
-      # desirable workaround, so I'm going to leave them for now.
-      laptop = "00ffffffffffff000daed71400000000151b0104a51f117802ee95a3544c99260f505400000001010101010101010101010101010101363680a0703820402e1e240035ad10000018000000fe004e3134304843452d474e320a20000000fe00434d4e0a202020202020202020000000fe004e3134304843452d474e320a2000e2";
-      hdmi4k = "00ffffffffffff001e6d085b6d4a0400061c0103803c2278ea3035a7554ea3260f50542108007140818081c0a9c0d1c081000101010108e80030f2705a80b0588a0058542100001e04740030f2705a80b0588a0058542100001a000000fd00383d1e873c000a202020202020000000fc004c4720556c7472612048440a200150020330714d902220050403020161605d5e5f230907076d030c001000b83c20006001020367d85dc401788003e30f0003023a801871382d40582c450058542100001a565e00a0a0a029503020350058542100001a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000ad";
-    in {
-      mobile = {
-        fingerprint = {
-          eDP1 = laptop;
-          HDMI1 = hdmi4k;
-        };
-        config = {
-          eDP1 = {
-            enable = true;
-            primary = true;
-            mode = "1920x1080";
-            rate = "59.93";
-          };
-          HDMI1 = {
-            enable = false;
-          };
-        };
-      };
-      docked = {
-        fingerprint = {
-          eDP1 = laptop;
-          HDMI1 = hdmi4k;
-        };
-        config = {
-          eDP1 = {
-            enable = false;
-          };
-          HDMI1 = {
-            enable = true;
-            primary = true;
-            mode = "3840x2160";
-            rate = "30.00";
-          };
-        };
-      };
-    };
-  };
-
-  ##############################################################################
-  # Services
-  ##############################################################################
-
-  xsession = {
-    enable = true;
-    windowManager.command = "dbus-launch --exit-with-session wpcarros-emacs";
-  };
-
-  # Filter blue light from screen after sunset.
-  services.redshift = {
-    enable = true;
-    latitude = "51.49";
-    longitude = "-0.18";
-    package = builder.wrapNonNixProgram {
-      path = "/usr/bin/redshift";
-      as = "redshift";
-    };
-    # Disable the fading animation.
-    extraOptions = [ "-r" ];
-  };
-
-  # Hide the cursor during X sessions after 1 second.
-  services.unclutter.enable = true;
-
-  # Support mouseless workflows.
-  services.keynav.enable = true;
-
-  services.gpg-agent = {
-    enable = true;
-    defaultCacheTtl = 8 * 60 * 60; # 8 hours
-    maxCacheTtl = 8 * 60 * 60;
-  };
-}
diff --git a/emacs/.emacs.d/wpc/wpc-nix.el b/emacs/.emacs.d/wpc/wpc-nix.el
index 0f2a1a63615b..a555e4621a1f 100644
--- a/emacs/.emacs.d/wpc/wpc-nix.el
+++ b/emacs/.emacs.d/wpc/wpc-nix.el
@@ -36,16 +36,6 @@
                    "-f" "<briefcase>" "-iA" "emacs.nixos")
     (display-buffer bname)))
 
-(defun wpc-nix-home-manager-switch ()
-  "Use Nix to reconfigure the user environment."
-  (interactive)
-  (start-process "wpc-nix-home-manager-switch" "*wpc-nix-home-manager-switch*"
-                 "home-manager"
-                 "-I" (format "nixpkgs=%s" (f-expand "~/nixpkgs-channels"))
-                 "-I" (format "home-manager=%s" (f-expand "~/home-manager"))
-                 "switch")
-  (display-buffer "*wpc-nix-home-manager-switch*"))
-
 (defun wpc-nix-sly-from-briefcase (attr)
   "Start a Sly REPL configured using the derivation pointed at by ATTR.
 
diff --git a/emacs/default.nix b/emacs/default.nix
index 394bd6452c31..5e2c32188f69 100644
--- a/emacs/default.nix
+++ b/emacs/default.nix
@@ -9,6 +9,16 @@ let
   emacsBinPath = makeBinPath (with pkgs; [
     tdesktop
     ripgrep
+    bat
+    fd
+    pass
+    tokei
+    nmap
+    tldr
+    diskus
+    jq
+    pup
+    exa
     gitAndTools.hub
     kubectl
     google-cloud-sdk