This repository has no description
5.6 kB
344 lines
1{ config, pkgs, ... }:
2
3let
4 mcExt = pkgs.writeText "mc.ext" ''
5 # gitfs changeset
6 regex/^\[git\]
7 Open=%cd %p/changesetfs://
8 View=%cd %p/patchsetfs://
9
10 ### Archives ###
11
12 # .tgz, .tpz, .tar.gz, .tar.z, .tar.Z, .ipk, .gem
13 regex/\.t([gp]?z|ar\.g?[zZ])$|\.ipk$|\.gem$
14 Open=%cd %p/utar://
15
16 shell/.tar.bz
17 # Open=%cd %p/utar://
18
19 regex/\.t(ar\.bz2|bz2?|b2)$
20 Open=%cd %p/utar://
21
22 # .tar.lzma, .tlz
23 regex/\.t(ar\.lzma|lz)$
24 Open=%cd %p/utar://
25
26 # .tar.xz, .txz
27 regex/\.t(ar\.xz|xz)$
28 Open=%cd %p/utar://
29
30 # .tar.F - used in QNX
31 shell/.tar.F
32 # Open=%cd %p/utar://
33
34 # .qpr/.qpk - QNX Neutrino package installer files
35 regex/\.qp[rk]$
36 Open=%cd %p/utar://
37
38 # tar
39 shell/i/.tar
40 Open=%cd %p/utar://
41
42 # lha
43 type/^LHa\ .*archive
44 Open=%cd %p/ulha://
45
46 # arj
47 regex/i/\.a(rj|[0-9][0-9])$
48 Open=%cd %p/uarj://
49
50 # cab
51 shell/i/.cab
52 Open=%cd %p/ucab://
53
54 # ha
55 shell/i/.ha
56 Open=%cd %p/uha://
57
58 # rar
59 regex/i/\.r(ar|[0-9][0-9])$
60 Open=%cd %p/urar://
61
62 # ALZip
63 shell/i/.alz
64 Open=%cd %p/ualz://
65
66 # cpio
67 shell/.cpio.Z
68 Open=%cd %p/ucpio://
69
70 shell/.cpio.xz
71 Open=%cd %p/ucpio://
72
73 shell/.cpio.gz
74 Open=%cd %p/ucpio://
75
76 shell/i/.cpio
77 Open=%cd %p/ucpio://
78
79 # 7zip archives (they are not man pages)
80 shell/i/.7z
81 Open=%cd %p/u7z://
82
83 # patch
84 regex/\.(diff|patch)(\.bz2)$
85 Open=%cd %p/patchfs://
86
87 regex/\.(diff|patch)(\.(gz|Z))$
88 Open=%cd %p/patchfs://
89
90 # ls-lR
91 regex/(^|\.)ls-?lR(\.gz|Z|bz2)$
92 Open=%cd %p/lslR://
93
94 # trpm
95 shell/.trpm
96 Open=%cd %p/trpm://
97
98 # RPM packages (SuSE uses *.spm for source packages)
99 regex/\.(src\.rpm|spm)$
100 Open=%cd %p/rpm://
101
102 shell/.rpm
103 Open=%cd %p/rpm://
104
105 # deb
106 regex/\.u?deb$
107 Open=%cd %p/deb://
108
109 # dpkg
110 shell/.debd
111 Open=%cd %p/debd://
112
113 # apt
114 shell/.deba
115 Open=%cd %p/deba://
116
117 # ISO9660
118 shell/i/.iso
119 Open=%cd %p/iso9660://
120
121
122 regex/\.(diff|patch)$
123 Open=%cd %p/patchfs://
124
125 # ar library
126 regex/\.s?a$
127 Open=%cd %p/uar://
128
129 # gplib
130 shell/i/.lib
131 Open=%cd %p/ulib://
132
133
134 # Mailboxes
135 type/^ASCII\ mail\ text
136 Open=%cd %p/mailfs://
137
138
139 ### Sources ###
140
141 # C/C++
142 regex/i/\.(c|cc|cpp)$
143 Include=editor
144
145 # C/C++ header
146 regex/i/\.(h|hh|hpp)$
147 Include=editor
148
149 # Fortran
150 shell/i/.f
151 Include=editor
152
153 # Assembler
154 regex/i/\.(s|asm)$
155 Include=editor
156
157 include/editor
158 Open=%var{EDITOR:vim} %f
159
160 ### Images ###
161
162 shell/i/.gif
163 Include=image
164
165 regex/i/\.jpe?g$
166 Include=image
167
168 shell/i/.bmp
169 Include=image
170
171 shell/i/.png
172 Include=image
173
174 shell/i/.jng
175 Include=image
176
177 shell/i/.mng
178 Include=image
179
180 shell/i/.tiff
181 Include=image
182
183 shell/.ico
184 Include=image
185
186 include/image
187 Open=sxiv %f
188 View=sxiv %f
189
190 ### Sound files ###
191
192 regex/i/\.(wav|snd|voc|au|smp|aiff|snd|m4a|ape|aac|wv)$
193 Include=audio
194
195 regex/i/\.(mod|s3m|xm|it|mtm|669|stm|ult|far)$
196 Include=audio
197
198 shell/i/.waw22
199 Include=audio
200
201 shell/i/.mp3
202 Include=audio
203
204 regex/i/\.og[gax]$
205 Include=audio
206
207 regex/i/\.(spx|flac)$
208 Include=audio
209
210 regex/i/\.(midi?|rmid?)$
211 Include=audio
212
213 shell/i/.wma
214 Include=audio
215
216 include/audio
217 Open=mpv %f
218 View=mpv %f
219
220 ### Video ###
221
222 shell/i/.avi
223 Include=video
224
225 regex/i/\.as[fx]$
226 Include=video
227
228 shell/i/.divx
229 Include=video
230
231 shell/i/.rmvb
232 Include=video
233
234 shell/i/.mkv
235 Include=video
236
237 regex/i/\.(mov|qt)$
238 Include=video
239
240 regex/i/\.(mp4|m4v|mpe?g)$
241 Include=video
242
243 # MPEG-2 TS container + H.264 codec
244 shell/i/.mts
245 Include=video
246
247 shell/i/.ts
248 Include=video
249
250 shell/i/.vob
251 Include=video
252
253 shell/i/.wmv
254 Include=video
255
256 regex/i/\.fl[icv]$
257 Include=video
258
259 shell/i/.ogv
260 Include=video
261
262 # WebM
263 shell/i/.webm
264 Include=video
265
266 type/WebM
267 Include=video
268
269 include/video
270 Open=mpv %f
271 View=mpv %f
272
273
274 ### Documents ###
275
276 # PDF
277 shell/i/.pdf
278 Open=zathura %f
279 View=zathura %f
280
281 ### Miscellaneous ###
282
283 # Makefile
284 regex/[Mm]akefile$
285 Open=make -f %f %{Enter parameters}
286
287
288 ### Plain compressed files ###
289
290 # ace
291 shell/i/.ace
292 Open=%cd %p/uace://
293 Extract=unace x %f
294
295 # arc
296 shell/i/.arc
297 Open=%cd %p/uarc://
298 Extract=arc x %f '*'
299 Extract (with flags)=I=%{Enter any Arc flags:}; if test -n "$I"; then arc x $I %f; fi
300
301 # zip
302 shell/i/.zip
303 Open=%cd %p/uzip://
304
305 # zip
306 type/i/^zip\ archive
307 Open=%cd %p/uzip://
308
309 # jar(zip)
310 type/i/^Java\ Jar\ file\ data\ \(zip\)
311 Open=%cd %p/uzip://
312
313 # zoo
314 shell/i/.zoo
315 Open=%cd %p/uzoo://
316
317 ### Default ###
318
319 # Default target for anything not described above
320 default/*
321 Open=vim %f
322 View=vim %f
323
324 '';
325
326in {
327 environment.systemPackages = [
328 (pkgs.symlinkJoin {
329 name = "mc";
330 paths = [
331 (pkgs.writeDashBin "mc" ''
332 export MC_DATADIR=${pkgs.write "mc-ext" {
333 "/mc.ext.ini".link = mcExt;
334 "/sfs.ini".text = "";
335 }};
336 export TERM=xterm-256color
337 exec ${pkgs.mc}/bin/mc -S yadt256 "$@"
338 '')
339 pkgs.mc
340 ];
341 })
342 ];
343}
344