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 solaar
22 sysstat
23 unar
24 wget
25 wineWowPackages.full
26 ];
27
28 programs.fish.enable = true;
29 };
30
31 darwin.always = {
32 environment.systemPackages = with pkgs; [
33 ffmpeg-full
34 git
35 imagemagick
36 nil
37 openssh
38 wget
39 # TODO: the Xcode packages makes us manually download and put it into the Nix store
40 # but it seems to contain no reference to our actual result so I don't think `systemPackages`
41 # picks it up properly. Need to see how `requireFile` works and how `systemPackages`
42 # works under the hood.
43 # darwin.xcode_14_1
44 ];
45
46 programs.bash.enable = true;
47 programs.zsh.enable = true;
48 programs.fish.enable = true;
49
50 # Fix problem in nix-darwin relating to $PATH order in fish.
51 # https://github.com/LnL7/nix-darwin/issues/122#issuecomment-1659465635
52 # programs.fish.loginShellInit = let
53 # dquote = str: "\"${str}\"";
54 # makeBinPathList = map (path: path + "/bin");
55 # in ''
56 # fish_add_path --move --prepend --path ${lib.concatMapStringsSep " " dquote (makeBinPathList config.environment.profiles)}
57 # set fish_user_paths $fish_user_paths
58 # fish_add_path /opt/homebrew/bin
59 # '';
60
61 programs.fish.loginShellInit = ''
62 alias tailscale /Applications/Tailscale.app/Contents/MacOS/Tailscale
63 '';
64 };
65
66 home.always = {
67 home.packages = with pkgs; [
68 curlie
69 du-dust
70 duf
71 fd
72 jq
73 nix-your-shell
74 ripgrep
75 ];
76
77 programs.aria2.enable = true;
78 programs.eza.enable = true;
79 programs.nix-index.enable = true;
80 };
81}