Files
dotfiles/nix-shared/system/essential.nix

109 lines
2.0 KiB
Nix

{
pkgs,
lib,
inputs,
...
}: let
system = pkgs.stdenv.hostPlatform.system;
inputPackageOrNull = inputName: packageName: let
input = inputs.${inputName} or null;
packages = if input == null then null else input.packages or null;
systemPackages = if packages == null then null else packages.${system} or null;
in
if systemPackages == null then null else systemPackages.${packageName} or null;
git-blame-rank = inputs.git-blame-rank.packages.${system}.default;
coquiTtsStreamer = inputPackageOrNull "coqui-tts-streamer" "default";
keepbook = inputs.keepbook.packages.${system}.keepbook.overrideAttrs (_: {
# Upstream checks currently depend on TS artifacts that are not built in Nix.
doCheck = false;
});
commonPkgs = lib.filter (pkg: lib.meta.availableOn pkgs.stdenv.hostPlatform pkg) ((with pkgs; [
automake
bazel
bento4
bind
binutils
cachix
bubblewrap
cmake
dex
direnv
fd
ffmpeg
file
gawk
gcc
gh
git-fame
git-blame-rank
git-lfs
git-sync
git
gnumake
home-manager
htop
ispell
jq
just
keepbook
lsof
magic-wormhole-rs
ncdu
fastfetch
neovim
nix-index
nix-search-cli
pass
patchelf
pstree
rclone
ripgrep
silver-searcher
skim
tmux
zellij
unzip
wget
xkcdpass
yubikey-manager
])
++ lib.optionals (coquiTtsStreamer != null) [coquiTtsStreamer]
++ lib.optionals (builtins.hasAttr "git-sync-rs" pkgs) [pkgs.git-sync-rs]);
linuxOnly = with pkgs; [
dex
dpkg
efibootmgr
emacs-auto
gparted
inotify-tools
iotop
lshw
mesa-demos
pciutils
pulseaudio
python-with-my-packages
runc
sshfs
sysz
gdb
gitFull
udiskie
usbutils
tzupdate
];
darwinOnly = with pkgs; [
emacs
];
in {
nixpkgs.config.allowBroken = true;
environment.systemPackages =
commonPkgs
++ lib.optionals pkgs.stdenv.isLinux linuxOnly
++ lib.optionals pkgs.stdenv.isDarwin darwinOnly;
}