git.fiddlerwoaroof.com
nix/home-personal.nix
525dfab1
 {
   config,
   pkgs,
   ...
 }: let
   libpng =
     pkgs.libpng.overrideAttrs (_: {meta.outputsToInstall = _.outputs;});
   username = "edwlan";
   homeDirectory = "/Users/${username}";
   dotfileDirectory = "${homeDirectory}/git_repos/dotfiles";
 
   alejandra =
     (import (builtins.fetchTarball {
ce8e04c0
       url = "https://github.com/kamadorueda/alejandra/tarball/3.0.0";
       sha256 = "18jm0d5xrxk38hw5sa470zgfz9xzdcyaskjhgjwhnmzd5fgacny4";
9eb35c38
     }) {inherit pkgs;})
     .outPath;
525dfab1
 
08f2e18a
   # zsh = pkgs.zsh.overrideAttrs ({postInstall}: {postInstall = ''
   #   make install.info install.html
   #   '' + postInstall})
 
525dfab1
   common_home =
     import "${dotfileDirectory}/nix/common.nix" {inherit homeDirectory pkgs;};
45dbd208
 
   zsh =
     pkgs.zsh
     // {
       meta =
         pkgs.zsh.meta
         // {
           outputsToInstall = pkgs.zsh.meta.outputsToInstall ++ ["info" "doc"];
         };
     };
525dfab1
 in {
ff733458
   home.file.".ssh/allowed_signers".text = "* ${builtins.readFile "${homeDirectory}/.ssh/id_ed25519.pub"}";
 
525dfab1
   nixpkgs.overlays = common_home.overlays;
 
   ## Doesn't work???
   #xdg.configFile."nixpkgs/overlays".source = ./elangley-overlay;
 
   home.packages =
     common_home.packages
     ++ [
3e747dbc
       alejandra
0ee0adc7
       pkgs.cargo
813cfe16
       pkgs.clojure
3e747dbc
       (pkgs.emacsGit.override {nativeComp = true;})
9eb35c38
       pkgs.graphviz
0ee0adc7
       pkgs.ispell
9eb35c38
       pkgs.libffi.dev
0ee0adc7
       pkgs.libheif.dev
3e747dbc
       libpng
525dfab1
       pkgs.libssh2
3e747dbc
       pkgs.mosh
0ee0adc7
       pkgs.nodejs
525dfab1
       pkgs.openssl
       pkgs.pandoc
3e747dbc
       pkgs.pkg-config
813cfe16
       pkgs.shellcheck
       pkgs.zeromq
45dbd208
       pkgs.zsh.doc
3e747dbc
       pkgs.zstd
       pkgs.zstd.dev
0ee0adc7
       zsh
525dfab1
     ];
 
   programs = {
43a52805
     git = {
       enable = true;
       userEmail = "el-github@elangley.org";
       userName = "Edward Langley";
       extraConfig = {
ff733458
         commit = {gpgsign = true;};
48f37626
         github = {user = "fiddlerwoaroof";};
ff733458
         gpg = {
           format = "ssh";
           allowedSignersFile = "${homeDirectory}/.ssh/allowed_signers";
         };
48f37626
         init = {defaultBranch = "main";};
         merge = {autoStash = true;};
         pull = {rebase = false;};
         rebase = {autoStash = true;};
ff733458
         user = {signingkey = "${homeDirectory}/.ssh/id_ed25519.pub";};
43a52805
       };
     };
525dfab1
     tmux = {
       enable = true;
       terminal = "screen-256color";
       escapeTime = 0;
       clock24 = true;
       newSession = true;
       keyMode = "vi";
       extraConfig = builtins.readFile (dotfileDirectory + "/tmux.conf");
     };
   };
 
   # Home Manager needs a bit of information about you and the
   # paths it should manage.
   home.username = username;
   home.homeDirectory = homeDirectory;
 
   # This value determines the Home Manager release that your
   # configuration is compatible with. This helps avoid breakage
   # when a new Home Manager release introduces backwards
   # incompatible changes.
   #
   # You can update Home Manager without changing this value. See
   # the Home Manager release notes for a list of state version
   # changes in each release.
   home.stateVersion = "22.05";
 
   # Let Home Manager install and manage itself.
   programs.home-manager.enable = true;
 }