tvl-depot/users/wpcarro/common.nix
William Carroll 3d8849e68b fix(wpcarro/emacs): Support OSX build of Emacs
**TL;DR:**
Most of these changes predicate behavior on the platform:
- At buildtime this is `localSystem == $something`. (`localSystem` is from
  `readTree`)
- At runtime this is `(memq window-system '(ns))`.
- Add `coreutils` so `dired` listing with `--group-directories-first` works
  because that flag depends on the GNU version of `ls`.

**Background:**
I need to support a bunch of OSX users at $WORK. As such, I'm planning
on using my MBP for the next few weeks to build empathy for our
userbase and polish some currently rough edges.

If I'm going to get an serious work done, I need my Emacs setup. Step
one is making sure it can build and run.

Change-Id: I918efccfa5f149e218aeea476c2c7df1c7b64ae8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7309
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
2022-11-19 19:36:06 +00:00

82 lines
1.6 KiB
Nix

{ depot, pkgs, ... }:
let
inherit (depot.users) wpcarro;
in
{
programs = {
fish.enable = true;
gnupg.agent.enable = true;
ssh = {
startAgent = true;
extraConfig = ''
AddKeysToAgent yes
'';
};
git = {
enable = true;
config = {
user.name = "William Carroll";
user.email = "wpcarro@gmail.com";
};
};
};
services = {
# Remodel the system clipboard as a list instead of a point.
clipmenu.enable = true;
locate.enable = true;
depot.automatic-gc = {
enable = true;
interval = "1 hour";
diskThreshold = 16; # GiB
maxFreed = 10; # GiB
preserveGenerations = "14d";
};
};
# Command-line tools I commonly used and want available on most (or all) of my
# machines.
shell-utils = with pkgs; [
bat
coreutils
direnv
diskus
emacs
exa
fd
fzf
git
gnupg
htop
jq
nmap
pass
python3
rink
ripgrep
tldr
tokei
tree
vim
whois
# TODO(wpcarro): Debug this failing build.
# wpcarro.tools.simple_vim
xclip
zip
] ++
(if pkgs.stdenv.isLinux then [
mkpasswd
sysz
# This depends on compiler-rt-libc-10.0.1, which is marked as broken on
# aarch64-darwin, but depot sets `allowBroken = true`, which means any
# build that depends on dig will fail on OSX (e.g. emacs).
# https://cs.tvl.fyi/github.com/NixOS/nixpkgs@e9b195248c6cd7961a453b10294aea9ab58e01b4/-/blob/pkgs/development/compilers/llvm/10/compiler-rt/default.nix?L122
dig
] else [ ]);
}