blob: 950dee0d092c4878ed822e38a875d544efe0b219 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
{
pkgsSrc ? ./pkgs.nix
}: rec {
pkgs = (import pkgsSrc) {};
gitConfig = pkgs.writeTextDir "git/config"
(builtins.readFile ./base/gitconfig);
git = pkgs.writeScriptBin "git" ''
#!${pkgs.bash}/bin/bash
export XDG_CONFIG_HOME=${gitConfig}
exec ${pkgs.git}/bin/git "$@"
'';
zsh = ((import ./zsh) { inherit pkgs; }).zsh;
loadout = pkgs.buildEnv {
name = "loadout";
paths = [
pkgs.gnugrep
pkgs.ag
pkgs.gawk
git
pkgs.mercurial
pkgs.breezy # bzr
pkgs.gcc
pkgs.gnumake
pkgs.cmake
pkgs.strace
pkgs.curl
pkgs.wget
pkgs.rsync
pkgs.hostname
pkgs.netcat
pkgs.nmap
pkgs.dnsutils
pkgs.openssh
pkgs.tmux
pkgs.ncdu
pkgs.htop
pkgs.unzip
pkgs.unrar
pkgs.gzip
pkgs.jq
pkgs.yq
pkgs.go
pkgs.xsel
pkgs.pavucontrol
(pkgs.nerdfonts.override { fonts = [ "SourceCodePro" ]; })
((import ./nvim) { inherit pkgs; }).nvim
zsh
((import ./alacritty) { inherit pkgs zsh; }).alacritty
((import ./awesome) { inherit pkgs; }).awesome
];
};
appimageEntrypoint = pkgs.writeScriptBin "mediocre-loadout" ''
#!${pkgs.bash}/bin/bash
cmd="$1"; shift;
if [ "$cmd" = "editor" ]; then exec nvim "$@"; fi
if [ "$cmd" = "shell" ]; then exec zsh "$@"; fi
if [ "$cmd" = "gui" ]; then exec alacritty "$@"; fi
if [ "$cmd" = "wm" ]; then exec awesome "$@"; fi
echo "USAGE: $0 [editor|shell|gui|wm] [passthrough args...]"
exit 1
'';
appimageIcon = pkgs.stdenv.mkDerivation {
name = "mediocre-loadout-icon";
src = ./bonzi.png;
builder = builtins.toFile "builder.sh" ''
source $stdenv/setup
dir=share/icons/hicolor/256x256/apps
mkdir -p "$out"/$dir
cp $src "$out"/$dir/mediocre-loadout.png
'';
};
appimageDesktopFile = pkgs.writeTextDir "share/applications/mediocre-loadout.desktop" ''
[Desktop Entry]
Name=Mediocre Loadout
Exec=mediocre-loadout gui
Icon=mediocre-loadout
Type=Application
Categories=Utility;
'';
appimageTarget = pkgs.buildEnv {
name = "mediocre-loadout-target";
paths = [
loadout
appimageEntrypoint
appimageIcon
appimageDesktopFile
];
};
appimageTargetFlat = pkgs.stdenv.mkDerivation {
name = "mediocre-loadout-target-flat";
src = appimageTarget;
builder = builtins.toFile "builder.sh" ''
source $stdenv/setup
cp -rL "$src" "$out"
'';
};
appimage = ((import ./appimage.nix) { pkgsSrc = pkgsSrc; }) {
name = "mediocre-loadout";
target = appimageTargetFlat;
};
}
|