infra/modules/shared/community-builder.nix

81 lines
1.9 KiB
Nix

{
config,
inputs,
lib,
pkgs,
...
}:
{
options.nixCommunity.motd = lib.mkOption {
type = lib.types.str;
description = "message of the day";
};
config = {
nixCommunity.motd = ''
Welcome to Nix Community!
Please join our matrix room:
https://matrix.to/#/#nix-community:nixos.org
For a faster Nixpkgs clone use:
git clone --reference /var/lib/nixpkgs.git https://github.com/NixOS/nixpkgs.git
'';
sops.secrets.community-builder-nix-access-tokens = {
sopsFile = "${inputs.self}/modules/secrets/community-builder.yaml";
mode = "444";
};
# fine-grained, no permissions github token, expires 2025-10-29
# from `nix-community-buildbot` (user account, not the github app)
nix.extraOptions = ''
!include ${config.sops.secrets.community-builder-nix-access-tokens.path}
'';
# useful for people that want to test stuff
environment.systemPackages =
[
pkgs.btop
pkgs.emacs
pkgs.fd
pkgs.git
pkgs.nano
pkgs.nix-output-monitor
pkgs.nix-tree
pkgs.nixpkgs-review
pkgs.ripgrep
pkgs.tig
]
++ builtins.filter (lib.meta.availableOn pkgs.stdenv.hostPlatform) [
pkgs.foot.terminfo
(lib.mkIf pkgs.stdenv.hostPlatform.isLinux pkgs.kitty.terminfo)
pkgs.termite.terminfo
pkgs.wezterm.terminfo
];
srvos.server.docs.enable = true;
programs.nix-index-database.comma.enable = true;
programs.fish = {
enable = true;
# puts /run/current-system/sw/bin in PATH for remote builds on darwin
useBabelfish = true;
};
programs.zsh = {
enable = true;
# https://grml.org/zsh/grmlzshrc.html
# https://grml.org/zsh/grml-zsh-refcard.pdf
interactiveShellInit = ''
source ${pkgs.grml-zsh-config}/etc/zsh/zshrc
'';
promptInit = ""; # otherwise it'll override the grml prompt
};
};
}