Nix configurations for my personal machines (Linux & macOS)
1{
2 delib,
3 pkgs,
4 ...
5}:
6delib.module {
7 name = "programs.core-cli";
8
9 options = delib.singleEnableOption true;
10
11 nixos.always = {
12 environment.systemPackages = with pkgs; [
13 ffmpeg-full
14 fuzzel
15 git
16 nil
17 niri
18 openssh
19 p7zip
20 pciutils
21 sysstat
22 unar
23 wget
24 wineWowPackages.full
25 ];
26
27 programs.fish.enable = true;
28 };
29
30 darwin.always = {
31 environment.systemPackages = with pkgs; [
32 ffmpeg-full
33 git
34 imagemagick
35 nil
36 openssh
37 wget
38 # TODO: the Xcode packages makes us manually download and put it into the Nix store
39 # but it seems to contain no reference to our actual result so I don't think `systemPackages`
40 # picks it up properly. Need to see how `requireFile` works and how `systemPackages`
41 # works under the hood.
42 # darwin.xcode_14_1
43 ];
44
45 programs.bash.enable = true;
46 programs.zsh.enable = true;
47 programs.fish.enable = true;
48
49 # Fix problem in nix-darwin relating to $PATH order in fish.
50 # https://github.com/LnL7/nix-darwin/issues/122#issuecomment-1659465635
51 # programs.fish.loginShellInit = let
52 # dquote = str: "\"${str}\"";
53 # makeBinPathList = map (path: path + "/bin");
54 # in ''
55 # fish_add_path --move --prepend --path ${lib.concatMapStringsSep " " dquote (makeBinPathList config.environment.profiles)}
56 # set fish_user_paths $fish_user_paths
57 # fish_add_path /opt/homebrew/bin
58 # '';
59
60 programs.fish.loginShellInit = ''
61 alias tailscale /Applications/Tailscale.app/Contents/MacOS/Tailscale
62 '';
63 };
64
65 home.always = {
66 home.packages = with pkgs; [
67 curlie
68 dust
69 duf
70 fd
71 jq
72 nix-your-shell
73 ripgrep
74 ];
75
76 programs.aria2.enable = true;
77 programs.eza.enable = true;
78 programs.nix-index.enable = true;
79 };
80}