File: index.html

package info (click to toggle)
flatseal 2.4.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,796 kB
  • sloc: javascript: 5,161; xml: 85; makefile: 2
file content (564 lines) | stat: -rw-r--r-- 31,983 bytes parent folder | download
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta charset="utf-8" />
  <meta name="generator" content="pandoc" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
  <title>-</title>
  <style>
    code{white-space: pre-wrap;}
    span.smallcaps{font-variant: small-caps;}
    span.underline{text-decoration: underline;}
    div.column{display: inline-block; vertical-align: top; width: 50%;}
    div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
    ul.task-list{list-style: none;}
  </style>
  <link rel="stylesheet" href="data:text/css,%3Aroot%20%7B%0A%2D%2Dtext%2Dcolor%3A%20%2324292e%3B%0A%2D%2Dbackground%2Dcolor%3A%20%23ffffff%3B%0A%2D%2Dalt%2Dbackground%2Dcolor%3A%20%23f6f8fa%3B%0A%2D%2Dlink%2Dcolor%3A%20%230366d6%3B%0A%2D%2Dblockquote%2Dtext%2Dcolor%3A%20%236a737d%3B%0A%2D%2Dblockquote%2Dborder%2Dcolor%3A%20%23dfe2e5%3B%0A%2D%2Dheader%2Dborder%2Dcolor%3A%20%23eaecef%3B%0A%2D%2Dhr%2Dbackground%2Dcolor%3A%20%23e1e4e8%3B%0A%2D%2Dtable%2Dtr%2Dborder%2Dcolor%3A%20%23c6cbd1%3B%0A%2D%2Dtable%2Dtd%2Dborder%2Dcolor%3A%20%23dfe2e5%3B%0A%2D%2Dkbd%2Dtext%2Dcolor%3A%20%23444d56%3B%0A%2D%2Dkbd%2Dbackground%2Dcolor%3A%20%23fafbfc%3B%0A%2D%2Dkbd%2Dborder%2Dcolor%3A%20%23c6cbd1%3B%0A%2D%2Dkbd%2Dshadow%2Dcolor%3A%20%23959da5%3B%0A%7D%0A%2A%20%7B%0Abox%2Dsizing%3A%20border%2Dbox%3B%0A%7D%0Ahtml%20%7B%0Afont%2Dsize%3A%2016px%3B%0A%7D%0Abody%20%7B%0Acolor%3A%20var%28%2D%2Dtext%2Dcolor%29%3B%0Abackground%2Dcolor%3A%20var%28%2D%2Dbackground%2Dcolor%29%3B%0Afont%2Dfamily%3A%20%22Fira%20Sans%22%2C%20fira%2Dsans%2C%20sans%2Dserif%2C%20color%2Demoji%3B%0Aline%2Dheight%3A%201%2E5%3B%0Aword%2Dwrap%3A%20break%2Dword%3B%0Amax%2Dwidth%3A%20980px%3B%0Amargin%3A%20auto%3B%0Apadding%3A%204em%3B%0A%7D%0A%40media%20screen%20and%20%28max%2Dwidth%3A%20799px%29%20%7B%0Ahtml%20%7B%0Afont%2Dsize%3A%2014px%3B%0A%7D%0Abody%20%7B%0Apadding%3A%201em%3B%0A%7D%0A%7D%0A%40media%20screen%20and%20%28min%2Dwidth%3A%201280px%29%20%7B%0Ahtml%20%7B%0Afont%2Dsize%3A%2018px%3B%0A%7D%0A%7D%0Aa%20%7B%0Abackground%2Dcolor%3A%20transparent%3B%0Acolor%3A%20var%28%2D%2Dlink%2Dcolor%29%3B%0Atext%2Ddecoration%3A%20none%3B%0A%7D%0Aa%3Aactive%2C%0Aa%3Ahover%20%7B%0Aoutline%2Dwidth%3A%200%3B%0A%7D%0Aa%3Ahover%20%7B%0Atext%2Ddecoration%3A%20underline%3B%0A%7D%0Astrong%20%7B%0Afont%2Dweight%3A%20600%3B%0A%7D%0Aimg%20%7B%0Aborder%2Dstyle%3A%20none%3B%0A%7D%0Ahr%20%7B%0Abox%2Dsizing%3A%20content%2Dbox%3B%0Aheight%3A%200%2E25em%3B%0Apadding%3A%200%3B%0Amargin%3A%201%2E5em%200%3B%0Aoverflow%3A%20hidden%3B%0Abackground%2Dcolor%3A%20var%28%2D%2Dhr%2Dbackground%2Dcolor%29%3B%0Aborder%3A%200%3B%0A%7D%0Ahr%3A%3Abefore%20%7B%0Adisplay%3A%20table%3B%0Acontent%3A%20%22%22%3B%0A%7D%0Ahr%3A%3Aafter%20%7B%0Adisplay%3A%20table%3B%0Aclear%3A%20both%3B%0Acontent%3A%20%22%22%3B%0A%7D%0Ainput%20%7B%0Afont%2Dfamily%3A%20inherit%3B%0Afont%2Dsize%3A%20inherit%3B%0Aline%2Dheight%3A%20inherit%3B%0Amargin%3A%200%3B%0Aoverflow%3A%20visible%3B%0A%7D%0A%5Btype%3D%22checkbox%22%5D%20%7B%0Abox%2Dsizing%3A%20border%2Dbox%3B%0Apadding%3A%200%3B%0A%7D%0Atable%20%7B%0Aborder%2Dspacing%3A%200%3B%0Aborder%2Dcollapse%3A%20collapse%3B%0A%7D%0Atd%2C%0Ath%20%7B%0Apadding%3A%200%3B%0A%7D%0Ah1%2C%0Ah2%2C%0Ah3%2C%0Ah4%2C%0Ah5%2C%0Ah6%20%7B%0Afont%2Dweight%3A%20600%3B%0Amargin%3A%200%3B%0A%7D%0Ah1%20%7B%0Afont%2Dsize%3A%202em%3B%0A%7D%0Ah2%20%7B%0Afont%2Dsize%3A%201%2E5em%3B%0A%7D%0Ah3%20%7B%0Afont%2Dsize%3A%201%2E25em%3B%0A%7D%0Ah4%20%7B%0Afont%2Dsize%3A%201em%3B%0A%7D%0Ah5%20%7B%0Afont%2Dsize%3A%200%2E875em%3B%0A%7D%0Ah6%20%7B%0Afont%2Dsize%3A%200%2E85em%3B%0A%7D%0Ap%20%7B%0Amargin%2Dtop%3A%200%3B%0Amargin%2Dbottom%3A%200%2E625em%3B%0A%7D%0Ablockquote%20%7B%0Amargin%3A%200%3B%0A%7D%0Aul%2C%0Aol%20%7B%0Apadding%2Dleft%3A%200%3B%0Amargin%2Dtop%3A%200%3B%0Amargin%2Dbottom%3A%200%3B%0A%7D%0Aol%20ol%2C%0Aul%20ol%20%7B%0Alist%2Dstyle%2Dtype%3A%20lower%2Droman%3B%0A%7D%0Aul%20ul%20ol%2C%0Aul%20ol%20ol%2C%0Aol%20ul%20ol%2C%0Aol%20ol%20ol%20%7B%0Alist%2Dstyle%2Dtype%3A%20lower%2Dalpha%3B%0A%7D%0Add%20%7B%0Amargin%2Dleft%3A%200%3B%0A%7D%0Acode%2C%0Akbd%2C%0Apre%20%7B%0Afont%2Dfamily%3A%20%22Fira%20Mono%22%2C%20fira%2Dmono%2C%20monospace%2C%20color%2Demoji%3B%0Afont%2Dsize%3A%201em%3B%0Aword%2Dwrap%3A%20normal%3B%0A%7D%0Acode%20%7B%0Aborder%2Dradius%3A%200%2E1875em%3B%0Afont%2Dsize%3A%200%2E85em%3B%0Apadding%3A%200%2E2em%200%2E4em%3B%0Amargin%3A%200%3B%0A%7D%0Apre%20%7B%0Amargin%2Dtop%3A%200%3B%0Amargin%2Dbottom%3A%200%3B%0Afont%2Dsize%3A%200%2E75em%3B%0A%7D%0Apre%3Ecode%20%7B%0Apadding%3A%200%3B%0Amargin%3A%200%3B%0Afont%2Dsize%3A%201em%3B%0Aword%2Dbreak%3A%20normal%3B%0Awhite%2Dspace%3A%20pre%3B%0Abackground%3A%20transparent%3B%0Aborder%3A%200%3B%0A%7D%0A%2Ehighlight%20%7B%0Amargin%2Dbottom%3A%201em%3B%0A%7D%0A%2Ehighlight%20pre%20%7B%0Amargin%2Dbottom%3A%200%3B%0Aword%2Dbreak%3A%20normal%3B%0A%7D%0A%2Ehighlight%20pre%2C%0Apre%20%7B%0Apadding%3A%201em%3B%0Aoverflow%3A%20auto%3B%0Afont%2Dsize%3A%200%2E85em%3B%0Aline%2Dheight%3A%201%2E5%3B%0Abackground%2Dcolor%3A%20var%28%2D%2Dalt%2Dbackground%2Dcolor%29%3B%0Aborder%2Dradius%3A%200%2E1875em%3B%0A%7D%0Apre%20code%20%7B%0Abackground%2Dcolor%3A%20transparent%3B%0Aborder%3A%200%3B%0Adisplay%3A%20inline%3B%0Apadding%3A%200%3B%0Amargin%3A%200%3B%0Aoverflow%3A%20visible%3B%0Aline%2Dheight%3A%20inherit%3B%0Aword%2Dwrap%3A%20normal%3B%0A%7D%0A%2Epl%2D0%20%7B%0Apadding%2Dleft%3A%200%20%21important%3B%0A%7D%0A%2Epl%2D1%20%7B%0Apadding%2Dleft%3A%200%2E25em%20%21important%3B%0A%7D%0A%2Epl%2D2%20%7B%0Apadding%2Dleft%3A%200%2E5em%20%21important%3B%0A%7D%0A%2Epl%2D3%20%7B%0Apadding%2Dleft%3A%201em%20%21important%3B%0A%7D%0A%2Epl%2D4%20%7B%0Apadding%2Dleft%3A%201%2E5em%20%21important%3B%0A%7D%0A%2Epl%2D5%20%7B%0Apadding%2Dleft%3A%202em%20%21important%3B%0A%7D%0A%2Epl%2D6%20%7B%0Apadding%2Dleft%3A%202%2E5em%20%21important%3B%0A%7D%0A%2Emarkdown%2Dbody%3A%3Abefore%20%7B%0Adisplay%3A%20table%3B%0Acontent%3A%20%22%22%3B%0A%7D%0A%2Emarkdown%2Dbody%3A%3Aafter%20%7B%0Adisplay%3A%20table%3B%0Aclear%3A%20both%3B%0Acontent%3A%20%22%22%3B%0A%7D%0A%2Emarkdown%2Dbody%3E%2A%3Afirst%2Dchild%20%7B%0Amargin%2Dtop%3A%200%20%21important%3B%0A%7D%0A%2Emarkdown%2Dbody%3E%2A%3Alast%2Dchild%20%7B%0Amargin%2Dbottom%3A%200%20%21important%3B%0A%7D%0Aa%3Anot%28%5Bhref%5D%29%20%7B%0Acolor%3A%20inherit%3B%0Atext%2Ddecoration%3A%20none%3B%0A%7D%0A%2Eanchor%20%7B%0Afloat%3A%20left%3B%0Apadding%2Dright%3A%200%2E25em%3B%0Amargin%2Dleft%3A%20%2D1%2E25em%3B%0Aline%2Dheight%3A%201%3B%0A%7D%0A%2Eanchor%3Afocus%20%7B%0Aoutline%3A%20none%3B%0A%7D%0Ap%2C%0Ablockquote%2C%0Aul%2C%0Aol%2C%0Adl%2C%0Atable%2C%0Apre%20%7B%0Amargin%2Dtop%3A%200%3B%0Amargin%2Dbottom%3A%201em%3B%0A%7D%0Ablockquote%20%7B%0Apadding%3A%200%201em%3B%0Acolor%3A%20var%28%2D%2Dblockquote%2Dtext%2Dcolor%29%3B%0Aborder%2Dleft%3A%200%2E25em%20solid%20var%28%2D%2Dblockquote%2Dborder%2Dcolor%29%3B%0A%7D%0Ablockquote%3E%3Afirst%2Dchild%20%7B%0Amargin%2Dtop%3A%200%3B%0A%7D%0Ablockquote%3E%3Alast%2Dchild%20%7B%0Amargin%2Dbottom%3A%200%3B%0A%7D%0Akbd%20%7B%0Adisplay%3A%20inline%2Dblock%3B%0Apadding%3A%200%2E1875em%200%2E3125em%3B%0Afont%2Dsize%3A%200%2E6875em%3B%0Aline%2Dheight%3A%201%3B%0Acolor%3A%20var%28%2D%2Dkbd%2Dtext%2Dcolor%29%3B%0Avertical%2Dalign%3A%20middle%3B%0Abackground%2Dcolor%3A%20var%28%2D%2Dkbd%2Dbackground%2Dcolor%29%3B%0Aborder%3A%20solid%201px%20var%28%2D%2Dkbd%2Dborder%2Dcolor%29%3B%0Aborder%2Dbottom%2Dcolor%3A%20var%28%2D%2Dkbd%2Dshadow%2Dcolor%29%3B%0Aborder%2Dradius%3A%203px%3B%0Abox%2Dshadow%3A%20inset%200%20%2D1px%200%20var%28%2D%2Dkbd%2Dshadow%2Dcolor%29%3B%3B%0A%7D%0Ah1%2C%0Ah2%2C%0Ah3%2C%0Ah4%2C%0Ah5%2C%0Ah6%20%7B%0Amargin%2Dtop%3A%201%2E5em%3B%0Amargin%2Dbottom%3A%201em%3B%0Afont%2Dweight%3A%20600%3B%0Aline%2Dheight%3A%201%2E25%3B%0A%7D%0Ah1%3Ahover%20%2Eanchor%2C%0Ah2%3Ahover%20%2Eanchor%2C%0Ah3%3Ahover%20%2Eanchor%2C%0Ah4%3Ahover%20%2Eanchor%2C%0Ah5%3Ahover%20%2Eanchor%2C%0Ah6%3Ahover%20%2Eanchor%20%7B%0Atext%2Ddecoration%3A%20none%3B%0A%7D%0Ah1%20%7B%0Apadding%2Dbottom%3A%200%2E3em%3B%0Afont%2Dsize%3A%202em%3B%0Aborder%2Dbottom%3A%201px%20solid%20var%28%2D%2Dheader%2Dborder%2Dcolor%29%3B%0A%7D%0Ah2%20%7B%0Apadding%2Dbottom%3A%200%2E3em%3B%0Afont%2Dsize%3A%201%2E5em%3B%0Aborder%2Dbottom%3A%201px%20solid%20var%28%2D%2Dheader%2Dborder%2Dcolor%29%3B%0A%7D%0Ah3%20%7B%0Afont%2Dsize%3A%201%2E25em%3B%0A%7D%0Ah4%20%7B%0Afont%2Dsize%3A%201em%3B%0A%7D%0Ah5%20%7B%0Afont%2Dsize%3A%200%2E875em%3B%0A%7D%0Ah6%20%7B%0Afont%2Dsize%3A%200%2E85em%3B%0Aopacity%3A%200%2E67%3B%0A%7D%0Aul%2C%0Aol%20%7B%0Apadding%2Dleft%3A%202em%3B%0A%7D%0Aul%20ul%2C%0Aul%20ol%2C%0Aol%20ol%2C%0Aol%20ul%20%7B%0Amargin%2Dtop%3A%200%3B%0Amargin%2Dbottom%3A%200%3B%0A%7D%0Ali%20%7B%0Aoverflow%2Dwrap%3A%20break%2Dword%3B%0A%7D%0Ali%3Ep%20%7B%0Amargin%2Dtop%3A%201em%3B%0A%7D%0Ali%2Bli%20%7B%0Amargin%2Dtop%3A%200%2E25em%3B%0A%7D%0Adl%20%7B%0Apadding%3A%200%3B%0A%7D%0Adl%20dt%20%7B%0Apadding%3A%200%3B%0Amargin%2Dtop%3A%201em%3B%0Afont%2Dsize%3A%201em%3B%0Afont%2Dstyle%3A%20italic%3B%0Afont%2Dweight%3A%20600%3B%0A%7D%0Adl%20dd%20%7B%0Apadding%3A%200%201em%3B%0Amargin%2Dbottom%3A%201em%3B%0A%7D%0Atable%20%7B%0Adisplay%3A%20block%3B%0Awidth%3A%20100%25%3B%0Aoverflow%3A%20auto%3B%0A%7D%0Atable%20th%20%7B%0Afont%2Dweight%3A%20600%3B%0A%7D%0Atable%20th%2C%0Atable%20td%20%7B%0Apadding%3A%200%2E375em%200%2E8125em%3B%0Aborder%3A%201px%20solid%20var%28%2D%2Dtable%2Dtd%2Dborder%2Dcolor%29%3B%0A%7D%0Atable%20tr%20%7B%0Abackground%2Dcolor%3A%20var%28%2D%2Dbackground%2Dcolor%29%3B%0Aborder%2Dtop%3A%201px%20solid%20var%28%2D%2Dtable%2Dtr%2Dborder%2Dcolor%29%3B%0A%7D%0Atable%20tr%3Anth%2Dchild%282n%29%20%7B%0Abackground%2Dcolor%3A%20var%28%2D%2Dalt%2Dbackground%2Dcolor%29%3B%0A%7D%0Aimg%20%7B%0Amax%2Dwidth%3A%20100%25%3B%0Abox%2Dsizing%3A%20content%2Dbox%3B%0A%7D%0Aimg%5Balign%3Dright%5D%20%7B%0Apadding%2Dleft%3A%201%2E25em%3B%0A%7D%0Aimg%5Balign%3Dleft%5D%20%7B%0Apadding%2Dright%3A%201%2E25em%3B%0A%7D%0A%2Etask%2Dlist%2Ditem%20%7B%0Alist%2Dstyle%2Dtype%3A%20none%3B%0A%7D%0A%2Etask%2Dlist%2Ditem%2B%2Etask%2Dlist%2Ditem%20%7B%0Amargin%2Dtop%3A%200%2E1875em%3B%0A%7D%0A%2Etask%2Dlist%2Ditem%20input%20%7B%0Amargin%3A%200%200%2E2em%200%2E25em%20%2D1%2E6em%3B%0Avertical%2Dalign%3A%20middle%3B%0A%7D%0A%3Aroot%20%7B%0A%2D%2Dtext%2Dcolor%3A%20%232e3436%3B%0A%2D%2Dbackground%2Dcolor%3A%20%23f6f5f4%3B%0A%2D%2Dalt%2Dbackground%2Dcolor%3A%20%23edeeef%3B%0A%2D%2Dlink%2Dcolor%3A%20%230d71de%3B%0A%2D%2Dblockquote%2Dtext%2Dcolor%3A%20%23747e85%3B%0A%2D%2Dblockquote%2Dborder%2Dcolor%3A%20%23d6d8da%3B%0A%2D%2Dheader%2Dborder%2Dcolor%3A%20%23e1e2e4%3B%0A%2D%2Dhr%2Dbackground%2Dcolor%3A%20%23d8dadd%3B%0A%2D%2Dtable%2Dtr%2Dborder%2Dcolor%3A%20%23bdc1c6%3B%0A%2D%2Dtable%2Dtd%2Dborder%2Dcolor%3A%20%23d6d8da%3B%0A%2D%2Dkbd%2Dtext%2Dcolor%3A%20%234e585e%3B%0A%2D%2Dkbd%2Dbackground%2Dcolor%3A%20%23f1f1f1%3B%0A%2D%2Dkbd%2Dborder%2Dcolor%3A%20%23bdc1c6%3B%0A%2D%2Dkbd%2Dshadow%2Dcolor%3A%20%238c939a%3B%0A%7D%0A%40media%20%28prefers%2Dcolor%2Dscheme%3A%20dark%29%20%7B%0A%3Aroot%20%7B%0A%2D%2Dtext%2Dcolor%3A%20%23eeeeec%3B%0A%2D%2Dbackground%2Dcolor%3A%20%23353535%3B%0A%2D%2Dalt%2Dbackground%2Dcolor%3A%20%233a3a3a%3B%0A%2D%2Dlink%2Dcolor%3A%20%23b5daff%3B%0A%2D%2Dblockquote%2Dtext%2Dcolor%3A%20%23a8a8a6%3B%0A%2D%2Dblockquote%2Dborder%2Dcolor%3A%20%23525252%3B%0A%2D%2Dheader%2Dborder%2Dcolor%3A%20%23474747%3B%0A%2D%2Dhr%2Dbackground%2Dcolor%3A%20%23505050%3B%0A%2D%2Dtable%2Dtr%2Dborder%2Dcolor%3A%20%23696969%3B%0A%2D%2Dtable%2Dtd%2Dborder%2Dcolor%3A%20%23525252%3B%0A%2D%2Dkbd%2Dtext%2Dcolor%3A%20%23cececc%3B%0A%2D%2Dkbd%2Dbackground%2Dcolor%3A%20%233c3c3c%3B%0A%2D%2Dkbd%2Dborder%2Dcolor%3A%20%23696969%3B%0A%2D%2Dkbd%2Dshadow%2Dcolor%3A%20%23979797%3B%0A%7D%0A%7D%0A" />
  <style>
    .task-list-item {
      list-style-type: none;
    }
    .task-list-item-checkbox {
      margin-left: -1.6em;
    }
  </style>
</head>
<body>
<h1 id="documentation">Documentation</h1>
<h2 id="table-of-contents">Table of contents</h2>
<ul>
<li>
<a href="#permissions">Permissions</a>
<ul>
<li>
<a href="#share">Share</a>
</li>
<li>
<a href="#socket">Socket</a>
</li>
<li>
<a href="#device">Device</a>
</li>
<li>
<a href="#allow">Allow</a>
</li>
<li>
<a href="#filesystem">Filesystem</a>
</li>
<li>
<a href="#persistent">Persistent</a>
</li>
<li>
<a href="#environment">Environment</a>
</li>
<li>
<a href="#system-bus">System Bus</a>
</li>
<li>
<a href="#system-bus">Session Bus</a>
</li>
<li>
<a href="#portals">Portals</a>
</li>
</ul>
</li>
<li>
<a href="#tips-and-tricks">Tips and Tricks</a>
<ul>
<li>
<a href="#manually-reset-flatseal-permissions">Manually reset Flatseal permissions</a>
</li>
<li>
<a href="#add-new-translations">Add new translations</a>
</li>
<li>
<a href="#enable-custom-installations">Enable custom installations</a>
</li>
<li>
<a href="#use-custom-flatpak_user_dir">Use custom FLATPAK_USER_DIR</a>
</li>
</ul>
</li>
</ul>
<h2 id="permissions">Permissions</h2>
<p>This is the list of permissions supported by Flatseal. These descriptions are based on Flatpak’s <a href="https://docs.flatpak.org/en/latest/sandbox-permissions.html">official documentation</a> and extended with examples and references to make it easier for newcomers to understand.</p>
<p>To summarize it, Flatpak provides two different permissions models: static and dynamic</p>
<p>Static refers to the permissions set by the developers when applications are built. Static permissions are holes in the sandbox, e.g. an application built with <code>--filesystem=home</code> can access <em>all</em> user personal files. The benefit of this model is that developers can support Flatpak without any change in their applications code.</p>
<p>Both Flatseal and <code>flatpak override</code> command-line tool, use the overrides backend to manage static permissions.</p>
<p>Dynamic refers to the permissions granted by the users when applications run. Dynamic permissions rely on resource providers called <a href="https://github.com/flatpak/flatpak/wiki/Portals">Portals</a> and can require user confirmation, e.g. users can grant access to <em>one</em> specific file thanks to the <code>org.freedesktop.portal.FileChooser</code> portal. The benefit of this model is that users don’t need to trust applications with more resources than is strictly needed.</p>
<p>Both Flatseal and <code>flatpak permissions</code> command-line tool, use the <code>org.freedesktop.impl.portal.PermissionStore</code> service to manage dynamic permissions.</p>
<h3 id="share">Share</h3>
<table>
<colgroup>
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Type</th>
<th>Description</th>
<th><code>flatpak override</code> equivalent</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Network</td>
<td>Toggle</td>
<td>Allow the application to have access to the network. <br /> <br /> For example, if it’s disabled for Firefox, it will no longer be possible to browse the internet with this application.</td>
<td><code>--share=network</code> and <code>--unshare=network</code></td>
</tr>
<tr class="even">
<td><a href="https://en.wikipedia.org/wiki/Inter-process_communication">Inter-process communications</a></td>
<td>Toggle</td>
<td>Share IPC namespace with the host. <br /> <br /> This is required by X11 due to it depending on IPC.</td>
<td><code>--share=ipc</code> and <code>--unshare=ipc</code></td>
</tr>
</tbody>
</table>
<h3 id="socket">Socket</h3>
<table>
<colgroup>
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Type</th>
<th>Description</th>
<th><code>flatpak override</code> equivalent</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>X11 windowing system</td>
<td>Toggle</td>
<td>Allow the application to open in an X11 window. <br /> <br /> Most applications use X11 for historical reasons, but is considered less secure.</td>
<td><code>--socket=x11</code> and <code>--nosocket=x11</code></td>
</tr>
<tr class="even">
<td>Wayland windowing system</td>
<td>Toggle</td>
<td>Allow the application to open in a Wayland window. <br /> <br /> Many applications do not use Wayland as it is a newer display protocol unlike X11, and is considered more secure, but either some applications require extra steps to use it (see <a href="#environment">environment variables</a> example for Firefox), or do not support Wayland at all.</td>
<td><code>--socket=wayland</code> and <code>--nosocket=wayland</code></td>
</tr>
<tr class="odd">
<td>Fallback to X11 windowing system</td>
<td>Toggle</td>
<td>Allow the application to open in an X11 window when Wayland is not available. This overrides the X11 windowing system option when enabled.</td>
<td><code>--socket=fallback-x11</code> and <code>--nosocket=fallback-x11</code></td>
</tr>
<tr class="even">
<td>PulseAudio sound server</td>
<td>Toggle</td>
<td>Allow the application to play sounds or get access to the microphone when using PulseAudio. <br /> <br /> For example, if it’s disabled for Rhythmbox, it will no longer be possible to listen to the music with this application.</td>
<td><code>--socket=pulseaudio</code> and <code>--nosocket=pulseaudio</code></td>
</tr>
<tr class="odd">
<td>D-Bus session bus</td>
<td>Toggle</td>
<td>Allow the application to have access to the entire session bus.</td>
<td><code>--socket=session-dbus</code> and <code>--nosocket=session-dbus</code></td>
</tr>
<tr class="even">
<td>D-Bus system bus</td>
<td>Toggle</td>
<td>Allow the application to have access to the entire system bus.</td>
<td><code>--socket=system-dbus</code> and <code>--nosocket=system-dbus</code></td>
</tr>
<tr class="odd">
<td>Secure Shell agent</td>
<td>Toggle</td>
<td>Allow the application to use SSH authentications.</td>
<td><code>--socket=ssh-auth</code> and <code>--nosocket=ssh-auth</code></td>
</tr>
<tr class="even">
<td><a href="https://wiki.debian.org/Smartcards">Smart cards</a></td>
<td>Toggle</td>
<td>Allow the application to use smart cards.</td>
<td><code>--socket=pcsc</code> and <code>--nosocket=pcsc</code></td>
</tr>
<tr class="odd">
<td>Printing system</td>
<td>Toggle</td>
<td>Allow the application to use printing systems. <br /> <br /> For example, if it’s disabled for LibreOffice, it will no longer be possible to print documents with this application.</td>
<td><code>--socket=cups</code> and <code>--nosocket=cups</code></td>
</tr>
<tr class="even">
<td>GPG-Agent directories</td>
<td>Toggle</td>
<td>Allow the application to access GPG-Agent directories.</td>
<td><code>--socket=gpg-agent</code> and <code>--nosocket=gpg-agent</code></td>
</tr>
<tr class="odd">
<td>Inherit Wayland socket</td>
<td>Toggle</td>
<td>Allow passing WAYLAND_SOCKET environment variable to the sandbox. <br /> <br /> For example, if it's disabled for Fcitx5, it won't be able to connect to Wayland and display its autocompletion dialogs.</td>
<td><code>--socket=inherit-wayland-socket</code> and <code>--nosocket=inherit-wayland-socket</code></td>
</tr>
</tbody>
</table>
<h3 id="device">Device</h3>
<table>
<colgroup>
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Type</th>
<th>Description</th>
<th><code>flatpak override</code> equivalent</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>GPU acceleration</td>
<td>Toggle</td>
<td>Allow the application to access the graphics direct rendering to take advantage of GPU acceleration.</td>
<td><code>--device=dri</code> and <code>--nodevice=dri</code></td>
</tr>
<tr class="even">
<td>Input devices</td>
<td>Toggle</td>
<td>Allow input device access. <br /> <br /> Note that raw and virtual input devices could still require <a href="#device">All devices</a></td>
<td><code>--device=input</code> and <code>--nodevice=input</code></td>
</tr>
<tr class="odd">
<td>Virtualization</td>
<td>Toggle</td>
<td>Allow the application to support virtualization.</td>
<td><code>--device=kvm</code> and <code>--nodevice=kvm</code></td>
</tr>
<tr class="even">
<td>Shared memory</td>
<td>Toggle</td>
<td>Allow the application to access shared memory.</td>
<td><code>--device=shm</code> and <code>--nodevice=shm</code></td>
</tr>
<tr class="odd">
<td>USB devices</td>
<td>Toggle</td>
<td>Allow raw USB device access.</td>
<td><code>--device=usb</code> and <code>--nodevice=usb</code></td>
</tr>
<tr class="even">
<td>All devices</td>
<td>Toggle</td>
<td>Allow the application to access all devices, such as webcam and external devices. <br /> <br /> For example, if it’s disabled for Element, it will no longer be possible to do video calls with this application.</td>
<td><code>--device=all</code> and <code>--nodevice=all</code></td>
</tr>
</tbody>
</table>
<h3 id="allow">Allow</h3>
<table>
<colgroup>
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Type</th>
<th>Description</th>
<th><code>flatpak override</code> equivalent</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Development syscalls</td>
<td>Toggle</td>
<td>Allow the application to access to certain syscalls, such as <a href="https://en.wikipedia.org/wiki/Ptrace"><code>ptrace()</code></a> and <a href="https://en.wikipedia.org/wiki/Perf_(Linux)"><code>perf_event_open()</code></a>.</td>
<td><code>--allow=devel</code> and <code>--disallow=devel</code></td>
</tr>
<tr class="even">
<td>Programs from other architectures</td>
<td>Toggle</td>
<td>Allow the application to execute programs for an <a href="https://en.wikipedia.org/wiki/Application_binary_interface">ABI</a> other than the one supported natively by the system.</td>
<td><code>--allow=multiarch</code> and <code>--disallow=multiarch</code></td>
</tr>
<tr class="odd">
<td>Bluetooth</td>
<td>Toggle</td>
<td>Allow the application to use Bluetooth.</td>
<td><code>--allow=bluetooth</code> and <code>--disallow=bluetooth</code></td>
</tr>
<tr class="even">
<td>Controller Area Network bus</td>
<td>Toggle</td>
<td>Allow the application to use canbus sockets. You must also have <a href="#share">network access</a> for this to work.</td>
<td><code>--allow=canbus</code> and <code>--disallow=canbus</code></td>
</tr>
<tr class="odd">
<td>Application Shared Memory</td>
<td>Toggle</td> 
<td>Allow the application to share its /dev/shm between instances of the same $FLATPAK_APP_ID. Introduced specifically for the Steam flatpak, to share its /dev/shm with sub-sandboxed games.</td>
<td><code>--allow=per-app-dev-shm</code> and <code>--disallow=per-app-dev-shm</code></td>
</tr>
</tbody>
</table>
<h3 id="filesystem">Filesystem</h3>
<table>
<colgroup>
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Type</th>
<th>Description</th>
<th><code>flatpak override</code> equivalent</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>All filesystem files</td>
<td>Toggle</td>
<td>Allow read-write access to the whole filesystem. Everything that isn’t writeable by the user will be read-only</td>
<td><code>--filesystem=host</code> and <code>--nofilesystem=host</code></td>
</tr>
<tr class="even">
<td>All system libraries, executables and static data</td>
<td>Toggle</td>
<td>Allow read-write access to system libraries located in <code>/usr</code>. Since this directory requires root access to write, the permission will be read-only.</td>
<td><code>--filesystem=host-os</code> and <code>--nofilesystem=host-os</code></td>
</tr>
<tr class="odd">
<td>All system configurations</td>
<td>Toggle</td>
<td>Allow read-write access to system configurations located in <code>/etc</code>. Since this directory requires root access to write, the permission will be read-only.</td>
<td><code>--filesystem=host-etc</code> and <code>--nofilesystem=host-etc</code></td>
</tr>
<tr class="even">
<td>All user files</td>
<td>Toggle</td>
<td>Allow read-write access to the user directory (<code>$HOME</code> or <code>~/</code>).</td>
<td><code>--filesystem=home</code> and <code>--nofilesystem=home</code></td>
</tr>
<tr class="odd">
<td>Other files</td>
<td>Input</td>
<td>Allow read-write access to the directory you desire. <br /> <br /> For example, you would put <code>~/games</code> if you want read-write access to <code>~/games</code>. If you want read-only access to <code>~/games</code>, then you would put <code>~/games:ro</code>.</td>
<td><code>--filesystem=[PATH]</code>, <code>--filesystem=[PATH]:ro</code> and <code>--nofilesystem=[PATH]</code></td>
</tr>
</tbody>
</table>
<h3 id="persistent">Persistent</h3>
<table>
<colgroup>
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Type</th>
<th>Description</th>
<th><code>flatpak-override</code> equivalent</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Files</td>
<td>Input</td>
<td>Allow the application to access the targeted directory while restricting other applications from accessing it. <br /> <br /> Starting from the user directory (<code>$HOME</code> or <code>~/</code>), the targeted directory will be remapped to the application’s directory (<code>~/.var/app/$FLATPAK_APP_ID/[PATH]</code>) if it has no write access to the targeted directory. <br /> <br /> For example, persisting <code>.mozilla</code> will map <code>~/.mozilla</code> to <code>~/.var/app/org.mozilla.Firefox/.mozilla</code>. <br /> <br /> This is also a technique used to declutter the user directory, as it prevents the application from writing to <code>~/</code>.</td>
<td><code>--persist=[PATH]</code></td>
</tr>
</tbody>
</table>
<h3 id="environment">Environment</h3>
<table>
<colgroup>
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Type</th>
<th>Description</th>
<th><code>flatpak override</code> equivalent</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Variables</td>
<td>Input</td>
<td>Set an environment variable in the application to make the variable available to application when it runs. <br /> <br /> For example, adding <code>MOZ_ENABLE_WAYLAND=1</code> for Firefox to enable the Wayland back-end.</td>
<td><code>--env=[VAR]=[VALUE]</code></td>
</tr>
</tbody>
</table>
<h3 id="system-bus">System Bus</h3>
<table>
<colgroup>
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Type</th>
<th>Description</th>
<th><code>flatpak override</code> equivalent</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Talks</td>
<td>Input</td>
<td>Allow the application to talk to system services. <br /> <br /> For example, adding <code>org.freedesktop.Accounts</code> will allow the application to access users login history.</td>
<td><code>--system-talk-name=[NAME]</code></td>
</tr>
<tr class="even">
<td>Owns</td>
<td>Input</td>
<td>Allow the application to own system services under the given name.</td>
<td><code>--system-own-name=[NAME]</code></td>
</tr>
</tbody>
</table>
<h3 id="session-bus">Session Bus</h3>
<table>
<colgroup>
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Type</th>
<th>Description</th>
<th><code>flatpak override</code> equivalent</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Talks</td>
<td>Input</td>
<td>Allow the application to talk to session services. <br /> <br /> For example, adding <code>org.freedesktop.Notifications</code> will allow the application to send notifications.</td>
<td><code>--talk-name=[NAME]</code></td>
</tr>
<tr class="even">
<td>Owns</td>
<td>Input</td>
<td>Allow the application to own session services under the given name.</td>
<td><code>--own-name=[NAME]</code></td>
</tr>
</tbody>
</table>
<h3 id="portals">Portals</h3>
<table>
<colgroup>
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
<col style="width: 25%" />
</colgroup>
<thead>
<tr class="header">
<th>Name</th>
<th>Type</th>
<th>Description</th>
<th>Portal</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Background</td>
<td>Toggle</td>
<td>Allow the application to run in the background.</td>
<td><code>org.freedesktop.portal.Background</code></td>
</tr>
<tr class="even">
<td>Notifications</td>
<td>Toggle</td>
<td>Allow the application to send notifications.</td>
<td><code>org.freedesktop.portal.Notification</code></td>
</tr>
<tr class="odd">
<td>Microphone</td>
<td>Toggle</td>
<td>Allow the application to listen to your microphone.</td>
<td><code>org.freedesktop.portal.Device</code></td>
</tr>
<tr class="even">
<td>Speakers</td>
<td>Toggle</td>
<td>Allow the application to play sounds to your speakers.</td>
<td><code>org.freedesktop.portal.Device</code></td>
</tr>
<tr class="odd">
<td>Camera</td>
<td>Toggle</td>
<td>Allow the application to record videos with your camera.</td>
<td><code>org.freedesktop.portal.Device</code></td>
</tr>
<tr class="even">
<td>Location</td>
<td>Toggle</td>
<td>Allow the application to access your location data.</td>
<td><code>org.freedesktop.portal.Location</code></td>
</tr>
</tbody>
</table>
<h2 id="tips-and-tricks">Tips and Tricks</h2>
<h3 id="manually-reset-flatseal-permissions">Manually reset Flatseal permissions</h3>
<p>If permissions are removed and is no longer possible to reset, run the following command from the terminal and re-start Flatseal:</p>
<pre><code>$ rm ~/.local/share/flatpak/overrides/com.github.tchx84.Flatseal</code></pre>
<h3 id="add-new-translations">Add new translations</h3>
<p>Add a new language and update translations:</p>
<pre><code>$ git clone https://github.com/tchx84/Flatseal.git
$ cd Flatseal
$ echo &quot;es&quot; &gt;&gt; po/LINGUAS # es for Spanish
$ meson _translate &amp;&amp; cd _translate
$ ninja flatseal-pot
$ ninja flatseal-update-po
$ gedit ../po/es.po # translate the strings to Spanish</code></pre>
<p>To test the translation language:</p>
<pre><code>$ flatpak config --set languages es
$ flatpak update org.gnome.Platform
$ LC_ALL=es_PY.UTF-8 flatpak run com.github.tchx84.Flatseal</code></pre>
<h3 id="enable-custom-installations">Enable custom installations</h3>
<p>To enable a custom installation, e.g, <code>/xusr/custom/flatpak</code>.</p>
<h4 id="flatpak-1.7.1-or-newer">Flatpak 1.7.1 or newer</h4>
<ol type="1">
<li>Launch Flatseal and select it to edit its own permissions.</li>
<li>Enable <code>host-etc</code>, or type in <code>host-etc:ro</code> in the other option.</li>
<li>Type in the custom installation path, e.g, <code>/xusr/custom/flatpak:ro</code>.</li>
<li>Restart Flatseal.</li>
</ol>
<h4 id="all-versions">All versions</h4>
<ol type="1">
<li>Launch Flatseal and select it to edit its own permissions.</li>
<li>Enable <code>host</code>, or type in <code>host:ro</code> in the other option.</li>
<li>Restart Flatseal.</li>
</ol>
<p><strong>NOTE</strong>: To find these installations, Flatseal needs access to <code>/etc/flatpak/installations.d</code>. Before Flatpak 1.7.1, accessing the host <code>/etc</code> required the <code>host</code> permission, which was an all-or-nothing situation. By default, Flatseal will have minimal permissions, so it’s up to the user to decide to enable this feature.</p>
<h3 id="use-custom-flatpak_user_dir">Use custom FLATPAK_USER_DIR</h3>
<p>To use a custom <code>FLATPAK_USER_DIR</code>, e.g. <code>/var/home/user/.flatpak</code>.</p>
<pre><code>flatpak --user override --filesystem=/var/home/user/.flatpak --env=FLATPAK_USER_DIR=/var/home/user/.flatpak com.github.tchx84.Flatseal</code></pre>
<p><strong>NOTE</strong>: By default, <code>FLATPAK_USER_DIR</code> is not accessible from within the Flatpak sandbox, and Flatseal has no access to custom directories. Therefore, these overrides are needed.</p>
</body>
</html>