loadout/default.nix

152 lines
2.8 KiB
Nix
Raw Normal View History

2017-10-18 00:12:57 +00:00
{
hostConfig,
2017-10-18 00:12:57 +00:00
pkgs ? (import ./pkgs.nix).stable {},
pkgs2305 ? (import ./pkgs.nix).stable2305 {},
2024-01-06 11:27:30 +00:00
pkgsEdge ? (import ./pkgs.nix).edge {},
2017-10-18 00:12:57 +00:00
}: let
2017-10-18 00:12:57 +00:00
2024-01-06 14:57:47 +00:00
recursiveMerge = with pkgs.lib; attrList:
let f = attrPath:
zipAttrsWith (n: values:
if tail values == []
then head values
else if all isList values
then unique (concatLists values)
else if all isAttrs values
then f (attrPath ++ [n]) values
else last values
);
in f [] attrList;
config = recursiveMerge [ (import ./config/default.nix) hostConfig ];
in rec {
gitConfig = pkgs.stdenv.mkDerivation {
name = "mediocregopher-git-config";
gitConfigBase = ./base/gitconfig;
gitConfigCustom = builtins.toFile "mediocregopher-git-config-custom"
(pkgs.lib.generators.toGitINI config.git);
builder = builtins.toFile "builder.sh" ''
source $stdenv/setup
dir="$out"/git
mkdir -p "$dir"
cp "$gitConfigBase" "$dir"/config
cp "$gitConfigCustom" "$dir"/custom
'';
};
2017-10-18 00:12:57 +00:00
git = pkgs.writeScriptBin "git" ''
#!${pkgs.bash}/bin/bash
export XDG_CONFIG_HOME=${gitConfig}
exec ${pkgs.git}/bin/git "$@"
'';
bin = pkgs.buildEnv {
name = "mediocregopher-bin";
paths = [
(pkgs.runCommand "mediocregopher-default-bin" {} ''
mkdir -p "$out"
cp -rL "${./bin}" "$out"/bin
'')
] ++ (
builtins.map (cFn: cFn pkgs) config.binExtra
);
};
2024-01-06 11:27:30 +00:00
zsh = ((import ./zsh) { inherit config; }).zsh;
2023-12-27 17:37:54 +00:00
awesome = ((import ./awesome) { inherit config; });
2017-10-18 00:12:57 +00:00
loadout = pkgs.buildEnv {
name = "loadout";
paths = [
pkgs2305.nix
2017-10-18 00:12:57 +00:00
pkgs.gnugrep
pkgs.ag
pkgs.gawk
pkgs.tree
2023-11-16 19:48:41 +00:00
pkgs.pv
pkgs.less
pkgs.tmux
2017-10-18 00:12:57 +00:00
2023-12-20 21:37:36 +00:00
pkgs.man
pkgs.man-pages
pkgs.man-pages-posix
2017-10-18 00:12:57 +00:00
git
pkgs.mercurial
pkgs.breezy # bzr
pkgs.gnumake
pkgs.cmake
pkgs.strace
pkgs.curl
pkgs.wget
pkgs.rsync
pkgs.hostname
pkgs.netcat
pkgs.nmap
pkgs.dnsutils
pkgs.openssh
pkgs.sshfs
pkgs.fuse3
2017-10-18 00:12:57 +00:00
pkgs.ncdu
pkgs.htop
pkgs.jnettop
2023-08-21 15:20:48 +00:00
pkgs.iotop
2017-10-18 00:12:57 +00:00
2023-12-29 15:15:10 +00:00
pkgs.zip
2017-10-18 00:12:57 +00:00
pkgs.unzip
pkgs.unrar
pkgs.gzip
pkgs.jq
pkgs.yq
2023-11-21 21:56:43 +00:00
pkgs2305.rsbkb
2017-10-18 00:12:57 +00:00
pkgs.tomb
pkgs.udiskie
2017-10-18 00:12:57 +00:00
pkgs.xterm # nice to have a backup
2024-01-06 11:27:30 +00:00
pkgs2305.libreoffice
pkgs.gimp
pkgs.inkscape
pkgs.vlc
pkgs.sylpheed
pkgs.calibre
pkgsEdge.lagrange
2024-01-06 11:30:23 +00:00
pkgs.pavucontrol
pkgs.xdg-utils
pkgs.arandr
pkgs.xsel
pkgs.xorg.xrandr
bin
((import ./nvim) {}).nvim
2017-10-18 00:12:57 +00:00
zsh
((import ./alacritty) { inherit config zsh; }).alacritty
2024-01-06 11:27:30 +00:00
awesome.env
2017-10-18 00:12:57 +00:00
];
};
fonts = pkgs.buildEnv {
name = "fonts";
paths = [
pkgs.nerdfonts
pkgs.source-code-pro
];
2017-10-18 00:12:57 +00:00
};
}