2017-10-18 00:12:57 +00:00
|
|
|
{
|
|
|
|
|
2023-08-13 19:34:14 +00:00
|
|
|
hostConfig,
|
2017-10-18 00:12:57 +00:00
|
|
|
|
2023-08-13 19:34:14 +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
|
|
|
|
2023-08-13 19:34:14 +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 ];
|
2023-08-13 19:34:14 +00:00
|
|
|
|
|
|
|
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 "$@"
|
|
|
|
'';
|
|
|
|
|
2024-01-06 10:59:31 +00:00
|
|
|
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 = [
|
2023-08-13 19:34:14 +00:00
|
|
|
pkgs2305.nix
|
2017-10-18 00:12:57 +00:00
|
|
|
|
|
|
|
pkgs.gnugrep
|
|
|
|
pkgs.ag
|
|
|
|
pkgs.gawk
|
2023-08-13 19:34:14 +00:00
|
|
|
pkgs.tree
|
2023-11-16 19:48:41 +00:00
|
|
|
pkgs.pv
|
2023-12-16 14:51:15 +00:00
|
|
|
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
|
2023-08-13 19:34:14 +00:00
|
|
|
pkgs.sshfs
|
|
|
|
pkgs.fuse3
|
2017-10-18 00:12:57 +00:00
|
|
|
|
|
|
|
pkgs.ncdu
|
|
|
|
pkgs.htop
|
2023-08-13 19:34:14 +00:00
|
|
|
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
|
|
|
|
2023-08-13 19:34:14 +00:00
|
|
|
pkgs.tomb
|
|
|
|
pkgs.udiskie
|
2017-10-18 00:12:57 +00:00
|
|
|
|
2023-12-17 17:04:43 +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
|
2024-01-06 12:06:41 +00:00
|
|
|
pkgs.xsel
|
|
|
|
pkgs.xorg.xrandr
|
2023-12-17 17:04:43 +00:00
|
|
|
|
2024-01-06 10:59:31 +00:00
|
|
|
bin
|
2023-08-13 19:34:14 +00:00
|
|
|
((import ./nvim) {}).nvim
|
2017-10-18 00:12:57 +00:00
|
|
|
zsh
|
2023-08-13 19:34:14 +00:00
|
|
|
((import ./alacritty) { inherit config zsh; }).alacritty
|
2024-01-06 11:27:30 +00:00
|
|
|
awesome.env
|
2017-10-18 00:12:57 +00:00
|
|
|
];
|
|
|
|
};
|
|
|
|
|
2023-08-13 19:34:14 +00:00
|
|
|
fonts = pkgs.buildEnv {
|
|
|
|
name = "fonts";
|
|
|
|
paths = [
|
|
|
|
pkgs.nerdfonts
|
|
|
|
pkgs.source-code-pro
|
|
|
|
];
|
2017-10-18 00:12:57 +00:00
|
|
|
};
|
|
|
|
}
|