Bläddra i källkod

Notes on emacs

Bob Mottram 8 år sedan
förälder
incheckning
af80ae257a
4 ändrade filer med 493 tillägg och 68 borttagningar
  1. 45
    0
      doc/EN/app_emacs.org
  2. 1
    0
      doc/EN/apps.org
  3. 376
    0
      website/EN/app_emacs.html
  4. 71
    68
      website/EN/apps.html

+ 45
- 0
doc/EN/app_emacs.org Visa fil

@@ -0,0 +1,45 @@
1
+#+TITLE:
2
+#+AUTHOR: Bob Mottram
3
+#+EMAIL: bob@freedombone.net
4
+#+KEYWORDS: freedombone, emacs
5
+#+DESCRIPTION: How to use Emacs
6
+#+OPTIONS: ^:nil toc:nil
7
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="freedombone.css" />
8
+
9
+#+BEGIN_CENTER
10
+[[file:images/logo.png]]
11
+#+END_CENTER
12
+
13
+#+BEGIN_EXPORT html
14
+<center>
15
+<h1>Emacs</h1>
16
+</center>
17
+#+END_EXPORT
18
+
19
+Emacs is a text editor popular with software developers or anyone who needs to take notes at high speed or be able to customise their editing environment to a high degree. When installed on Freedombone it can be used together the Mutt email client to edit new emails or if you need to manually edit configuration files.
20
+
21
+* Installation
22
+Log into your system with:
23
+
24
+#+begin_src bash
25
+ssh myusername@mydomain -p 2222
26
+#+end_src
27
+
28
+Using cursor keys, space bar and Enter key select *Administrator controls* and type in your password.
29
+
30
+Select *Add/Remove Apps*. If Vim is selected then you might want to unselect and uninstall it first, then select *emacs*.
31
+
32
+* Common key combinations
33
+For anyone new to Emacs some common keys are:
34
+
35
+| CTRL-x CTRL-s | Save                      |
36
+| CTRL-x CTRL-c | Exit                      |
37
+| CTRL-l        | Go to a line number       |
38
+| CTRL-x CTRL-f | Open a file               |
39
+| SHIFT-ALT-<   | Go to the top of the file |
40
+| SHIFT-ALT->   | Go to the end of the file |
41
+| SHIFT cursors | Select text               |
42
+| CTRL-x CTRL-h | Highlight all text        |
43
+| ALT-w         | Copy selected text        |
44
+| CTRL-y        | Paste selected text       |
45
+| ESC-ESC-ESC   | Undo current selection    |

+ 1
- 0
doc/EN/apps.org Visa fil

@@ -31,6 +31,7 @@ A databaseless wiki system.
31 31
 * Emacs
32 32
 If you use the Mutt client to read your email then this will set it up to use emacs for composing new mail.
33 33
 
34
+[[./app_emacs.html][How to use it]]
34 35
 * Etherpad
35 36
 Collaborate on creating documents in real time. Maybe you're planning a holiday with other family members or creating documentation for a Free Software project along with other volunteers. Etherpad is hard to beat for simplicity and speed. Only users of the system will be able to access it.
36 37
 

+ 376
- 0
website/EN/app_emacs.html Visa fil

@@ -0,0 +1,376 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
5
+<head>
6
+<!-- 2016-11-14 Mon 15:14 -->
7
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8
+<meta name="viewport" content="width=device-width, initial-scale=1" />
9
+<title></title>
10
+<meta name="generator" content="Org mode" />
11
+<meta name="author" content="Bob Mottram" />
12
+<meta name="description" content="How to use Emacs"
13
+ />
14
+<meta name="keywords" content="freedombone, emacs" />
15
+<style type="text/css">
16
+ <!--/*--><![CDATA[/*><!--*/
17
+  .title  { text-align: center;
18
+             margin-bottom: .2em; }
19
+  .subtitle { text-align: center;
20
+              font-size: medium;
21
+              font-weight: bold;
22
+              margin-top:0; }
23
+  .todo   { font-family: monospace; color: red; }
24
+  .done   { font-family: monospace; color: green; }
25
+  .priority { font-family: monospace; color: orange; }
26
+  .tag    { background-color: #eee; font-family: monospace;
27
+            padding: 2px; font-size: 80%; font-weight: normal; }
28
+  .timestamp { color: #bebebe; }
29
+  .timestamp-kwd { color: #5f9ea0; }
30
+  .org-right  { margin-left: auto; margin-right: 0px;  text-align: right; }
31
+  .org-left   { margin-left: 0px;  margin-right: auto; text-align: left; }
32
+  .org-center { margin-left: auto; margin-right: auto; text-align: center; }
33
+  .underline { text-decoration: underline; }
34
+  #postamble p, #preamble p { font-size: 90%; margin: .2em; }
35
+  p.verse { margin-left: 3%; }
36
+  pre {
37
+    border: 1px solid #ccc;
38
+    box-shadow: 3px 3px 3px #eee;
39
+    padding: 8pt;
40
+    font-family: monospace;
41
+    overflow: auto;
42
+    margin: 1.2em;
43
+  }
44
+  pre.src {
45
+    position: relative;
46
+    overflow: visible;
47
+    padding-top: 1.2em;
48
+  }
49
+  pre.src:before {
50
+    display: none;
51
+    position: absolute;
52
+    background-color: white;
53
+    top: -10px;
54
+    right: 10px;
55
+    padding: 3px;
56
+    border: 1px solid black;
57
+  }
58
+  pre.src:hover:before { display: inline;}
59
+  /* Languages per Org manual */
60
+  pre.src-asymptote:before { content: 'Asymptote'; }
61
+  pre.src-awk:before { content: 'Awk'; }
62
+  pre.src-C:before { content: 'C'; }
63
+  /* pre.src-C++ doesn't work in CSS */
64
+  pre.src-clojure:before { content: 'Clojure'; }
65
+  pre.src-css:before { content: 'CSS'; }
66
+  pre.src-D:before { content: 'D'; }
67
+  pre.src-ditaa:before { content: 'ditaa'; }
68
+  pre.src-dot:before { content: 'Graphviz'; }
69
+  pre.src-calc:before { content: 'Emacs Calc'; }
70
+  pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
71
+  pre.src-fortran:before { content: 'Fortran'; }
72
+  pre.src-gnuplot:before { content: 'gnuplot'; }
73
+  pre.src-haskell:before { content: 'Haskell'; }
74
+  pre.src-java:before { content: 'Java'; }
75
+  pre.src-js:before { content: 'Javascript'; }
76
+  pre.src-latex:before { content: 'LaTeX'; }
77
+  pre.src-ledger:before { content: 'Ledger'; }
78
+  pre.src-lisp:before { content: 'Lisp'; }
79
+  pre.src-lilypond:before { content: 'Lilypond'; }
80
+  pre.src-lua:before { content: 'Lua'; }
81
+  pre.src-matlab:before { content: 'MATLAB'; }
82
+  pre.src-mscgen:before { content: 'Mscgen'; }
83
+  pre.src-ocaml:before { content: 'Objective Caml'; }
84
+  pre.src-octave:before { content: 'Octave'; }
85
+  pre.src-org:before { content: 'Org mode'; }
86
+  pre.src-oz:before { content: 'OZ'; }
87
+  pre.src-plantuml:before { content: 'Plantuml'; }
88
+  pre.src-processing:before { content: 'Processing.js'; }
89
+  pre.src-python:before { content: 'Python'; }
90
+  pre.src-R:before { content: 'R'; }
91
+  pre.src-ruby:before { content: 'Ruby'; }
92
+  pre.src-sass:before { content: 'Sass'; }
93
+  pre.src-scheme:before { content: 'Scheme'; }
94
+  pre.src-screen:before { content: 'Gnu Screen'; }
95
+  pre.src-sed:before { content: 'Sed'; }
96
+  pre.src-sh:before { content: 'shell'; }
97
+  pre.src-sql:before { content: 'SQL'; }
98
+  pre.src-sqlite:before { content: 'SQLite'; }
99
+  /* additional languages in org.el's org-babel-load-languages alist */
100
+  pre.src-forth:before { content: 'Forth'; }
101
+  pre.src-io:before { content: 'IO'; }
102
+  pre.src-J:before { content: 'J'; }
103
+  pre.src-makefile:before { content: 'Makefile'; }
104
+  pre.src-maxima:before { content: 'Maxima'; }
105
+  pre.src-perl:before { content: 'Perl'; }
106
+  pre.src-picolisp:before { content: 'Pico Lisp'; }
107
+  pre.src-scala:before { content: 'Scala'; }
108
+  pre.src-shell:before { content: 'Shell Script'; }
109
+  pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
110
+  /* additional language identifiers per "defun org-babel-execute"
111
+       in ob-*.el */
112
+  pre.src-cpp:before  { content: 'C++'; }
113
+  pre.src-abc:before  { content: 'ABC'; }
114
+  pre.src-coq:before  { content: 'Coq'; }
115
+  pre.src-groovy:before  { content: 'Groovy'; }
116
+  /* additional language identifiers from org-babel-shell-names in
117
+     ob-shell.el: ob-shell is the only babel language using a lambda to put
118
+     the execution function name together. */
119
+  pre.src-bash:before  { content: 'bash'; }
120
+  pre.src-csh:before  { content: 'csh'; }
121
+  pre.src-ash:before  { content: 'ash'; }
122
+  pre.src-dash:before  { content: 'dash'; }
123
+  pre.src-ksh:before  { content: 'ksh'; }
124
+  pre.src-mksh:before  { content: 'mksh'; }
125
+  pre.src-posh:before  { content: 'posh'; }
126
+  /* Additional Emacs modes also supported by the LaTeX listings package */
127
+  pre.src-ada:before { content: 'Ada'; }
128
+  pre.src-asm:before { content: 'Assembler'; }
129
+  pre.src-caml:before { content: 'Caml'; }
130
+  pre.src-delphi:before { content: 'Delphi'; }
131
+  pre.src-html:before { content: 'HTML'; }
132
+  pre.src-idl:before { content: 'IDL'; }
133
+  pre.src-mercury:before { content: 'Mercury'; }
134
+  pre.src-metapost:before { content: 'MetaPost'; }
135
+  pre.src-modula-2:before { content: 'Modula-2'; }
136
+  pre.src-pascal:before { content: 'Pascal'; }
137
+  pre.src-ps:before { content: 'PostScript'; }
138
+  pre.src-prolog:before { content: 'Prolog'; }
139
+  pre.src-simula:before { content: 'Simula'; }
140
+  pre.src-tcl:before { content: 'tcl'; }
141
+  pre.src-tex:before { content: 'TeX'; }
142
+  pre.src-plain-tex:before { content: 'Plain TeX'; }
143
+  pre.src-verilog:before { content: 'Verilog'; }
144
+  pre.src-vhdl:before { content: 'VHDL'; }
145
+  pre.src-xml:before { content: 'XML'; }
146
+  pre.src-nxml:before { content: 'XML'; }
147
+  /* add a generic configuration mode; LaTeX export needs an additional
148
+     (add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
149
+  pre.src-conf:before { content: 'Configuration File'; }
150
+
151
+  table { border-collapse:collapse; }
152
+  caption.t-above { caption-side: top; }
153
+  caption.t-bottom { caption-side: bottom; }
154
+  td, th { vertical-align:top;  }
155
+  th.org-right  { text-align: center;  }
156
+  th.org-left   { text-align: center;   }
157
+  th.org-center { text-align: center; }
158
+  td.org-right  { text-align: right;  }
159
+  td.org-left   { text-align: left;   }
160
+  td.org-center { text-align: center; }
161
+  dt { font-weight: bold; }
162
+  .footpara { display: inline; }
163
+  .footdef  { margin-bottom: 1em; }
164
+  .figure { padding: 1em; }
165
+  .figure p { text-align: center; }
166
+  .inlinetask {
167
+    padding: 10px;
168
+    border: 2px solid gray;
169
+    margin: 10px;
170
+    background: #ffffcc;
171
+  }
172
+  #org-div-home-and-up
173
+   { text-align: right; font-size: 70%; white-space: nowrap; }
174
+  textarea { overflow-x: auto; }
175
+  .linenr { font-size: smaller }
176
+  .code-highlighted { background-color: #ffff00; }
177
+  .org-info-js_info-navigation { border-style: none; }
178
+  #org-info-js_console-label
179
+    { font-size: 10px; font-weight: bold; white-space: nowrap; }
180
+  .org-info-js_search-highlight
181
+    { background-color: #ffff00; color: #000000; font-weight: bold; }
182
+  .org-svg { width: 90%; }
183
+  /*]]>*/-->
184
+</style>
185
+<link rel="stylesheet" type="text/css" href="freedombone.css" />
186
+<script type="text/javascript">
187
+/*
188
+@licstart  The following is the entire license notice for the
189
+JavaScript code in this tag.
190
+
191
+Copyright (C) 2012-2013 Free Software Foundation, Inc.
192
+
193
+The JavaScript code in this tag is free software: you can
194
+redistribute it and/or modify it under the terms of the GNU
195
+General Public License (GNU GPL) as published by the Free Software
196
+Foundation, either version 3 of the License, or (at your option)
197
+any later version.  The code is distributed WITHOUT ANY WARRANTY;
198
+without even the implied warranty of MERCHANTABILITY or FITNESS
199
+FOR A PARTICULAR PURPOSE.  See the GNU GPL for more details.
200
+
201
+As additional permission under GNU GPL version 3 section 7, you
202
+may distribute non-source (e.g., minimized or compacted) forms of
203
+that code without the copy of the GNU GPL normally required by
204
+section 4, provided you include this license notice and a URL
205
+through which recipients can access the Corresponding Source.
206
+
207
+
208
+@licend  The above is the entire license notice
209
+for the JavaScript code in this tag.
210
+*/
211
+<!--/*--><![CDATA[/*><!--*/
212
+ function CodeHighlightOn(elem, id)
213
+ {
214
+   var target = document.getElementById(id);
215
+   if(null != target) {
216
+     elem.cacheClassElem = elem.className;
217
+     elem.cacheClassTarget = target.className;
218
+     target.className = "code-highlighted";
219
+     elem.className   = "code-highlighted";
220
+   }
221
+ }
222
+ function CodeHighlightOff(elem, id)
223
+ {
224
+   var target = document.getElementById(id);
225
+   if(elem.cacheClassElem)
226
+     elem.className = elem.cacheClassElem;
227
+   if(elem.cacheClassTarget)
228
+     target.className = elem.cacheClassTarget;
229
+ }
230
+/*]]>*///-->
231
+</script>
232
+</head>
233
+<body>
234
+<div id="preamble" class="status">
235
+<a name="top" id="top"></a>
236
+</div>
237
+<div id="content">
238
+<div class="org-center">
239
+
240
+<div class="figure">
241
+<p><img src="images/logo.png" alt="logo.png" />
242
+</p>
243
+</div>
244
+</div>
245
+
246
+<center>
247
+<h1>Emacs</h1>
248
+</center>
249
+
250
+<p>
251
+Emacs is a text editor popular with software developers or anyone who needs to take notes at high speed or be able to customise their editing environment to a high degree. When installed on Freedombone it can be used together the Mutt email client to edit new emails or if you need to manually edit configuration files.
252
+</p>
253
+
254
+<div id="outline-container-org034d8d7" class="outline-2">
255
+<h2 id="org034d8d7">Installation</h2>
256
+<div class="outline-text-2" id="text-org034d8d7">
257
+<p>
258
+Log into your system with:
259
+</p>
260
+
261
+<div class="org-src-container">
262
+<pre class="src src-bash">ssh myusername@mydomain -p 2222
263
+</pre>
264
+</div>
265
+
266
+<p>
267
+Using cursor keys, space bar and Enter key select <b>Administrator controls</b> and type in your password.
268
+</p>
269
+
270
+<p>
271
+Select <b>Add/Remove Apps</b>. If Vim is selected then you might want to unselect and uninstall it first, then select <b>emacs</b>.
272
+</p>
273
+</div>
274
+</div>
275
+
276
+<div id="outline-container-org21c7511" class="outline-2">
277
+<h2 id="org21c7511">Common key combinations</h2>
278
+<div class="outline-text-2" id="text-org21c7511">
279
+<p>
280
+For anyone new to Emacs some common keys are:
281
+</p>
282
+
283
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
284
+
285
+
286
+<colgroup>
287
+<col  class="org-left" />
288
+
289
+<col  class="org-left" />
290
+</colgroup>
291
+<tbody>
292
+<tr>
293
+<td class="org-left">CTRL-x CTRL-s</td>
294
+<td class="org-left">Save</td>
295
+</tr>
296
+
297
+<tr>
298
+<td class="org-left">CTRL-x CTRL-c</td>
299
+<td class="org-left">Exit</td>
300
+</tr>
301
+
302
+<tr>
303
+<td class="org-left">CTRL-l</td>
304
+<td class="org-left">Go to a line number</td>
305
+</tr>
306
+
307
+<tr>
308
+<td class="org-left">CTRL-x CTRL-f</td>
309
+<td class="org-left">Open a file</td>
310
+</tr>
311
+
312
+<tr>
313
+<td class="org-left">SHIFT-ALT-&lt;</td>
314
+<td class="org-left">Go to the top of the file</td>
315
+</tr>
316
+
317
+<tr>
318
+<td class="org-left">SHIFT-ALT-&gt;</td>
319
+<td class="org-left">Go to the end of the file</td>
320
+</tr>
321
+
322
+<tr>
323
+<td class="org-left">SHIFT cursors</td>
324
+<td class="org-left">Select text</td>
325
+</tr>
326
+
327
+<tr>
328
+<td class="org-left">CTRL-x CTRL-h</td>
329
+<td class="org-left">Highlight all text</td>
330
+</tr>
331
+
332
+<tr>
333
+<td class="org-left">ALT-w</td>
334
+<td class="org-left">Copy selected text</td>
335
+</tr>
336
+
337
+<tr>
338
+<td class="org-left">CTRL-y</td>
339
+<td class="org-left">Paste selected text</td>
340
+</tr>
341
+
342
+<tr>
343
+<td class="org-left">ESC-ESC-ESC</td>
344
+<td class="org-left">Undo current selection</td>
345
+</tr>
346
+</tbody>
347
+</table>
348
+</div>
349
+</div>
350
+</div>
351
+<div id="postamble" class="status">
352
+
353
+<style type="text/css">
354
+.back-to-top {
355
+    position: fixed;
356
+    bottom: 2em;
357
+    right: 0px;
358
+    text-decoration: none;
359
+    color: #000000;
360
+    background-color: rgba(235, 235, 235, 0.80);
361
+    font-size: 12px;
362
+    padding: 1em;
363
+    display: none;
364
+}
365
+
366
+.back-to-top:hover {
367
+    background-color: rgba(135, 135, 135, 0.50);
368
+}
369
+</style>
370
+
371
+<div class="back-to-top">
372
+<a href="#top">Back to top</a> | <a href="mailto:bob@freedombone.net">E-mail me</a>
373
+</div>
374
+</div>
375
+</body>
376
+</html>

+ 71
- 68
website/EN/apps.html Visa fil

@@ -3,7 +3,7 @@
3 3
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 4
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
5 5
 <head>
6
-<!-- 2016-11-14 Mon 14:44 -->
6
+<!-- 2016-11-14 Mon 15:15 -->
7 7
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
8 8
 <meta name="viewport" content="width=device-width, initial-scale=1" />
9 9
 <title></title>
@@ -257,9 +257,9 @@ The base install of the system just contains an email server and Mutt client, bu
257 257
 </div>
258 258
 </div>
259 259
 
260
-<div id="outline-container-orgd0aa565" class="outline-2">
261
-<h2 id="orgd0aa565">DLNA</h2>
262
-<div class="outline-text-2" id="text-orgd0aa565">
260
+<div id="outline-container-org152b3b3" class="outline-2">
261
+<h2 id="org152b3b3">DLNA</h2>
262
+<div class="outline-text-2" id="text-org152b3b3">
263 263
 <p>
264 264
 Enables you to use the system as a music server which any DLNA compatible devices can connect to within your home network.
265 265
 </p>
@@ -269,9 +269,9 @@ Enables you to use the system as a music server which any DLNA compatible device
269 269
 </p>
270 270
 </div>
271 271
 </div>
272
-<div id="outline-container-orgecf832a" class="outline-2">
273
-<h2 id="orgecf832a">Dokuwiki</h2>
274
-<div class="outline-text-2" id="text-orgecf832a">
272
+<div id="outline-container-orgde8be05" class="outline-2">
273
+<h2 id="orgde8be05">Dokuwiki</h2>
274
+<div class="outline-text-2" id="text-orgde8be05">
275 275
 <p>
276 276
 A databaseless wiki system.
277 277
 </p>
@@ -281,18 +281,21 @@ A databaseless wiki system.
281 281
 </p>
282 282
 </div>
283 283
 </div>
284
-<div id="outline-container-orgfab0d83" class="outline-2">
285
-<h2 id="orgfab0d83">Emacs</h2>
286
-<div class="outline-text-2" id="text-orgfab0d83">
284
+<div id="outline-container-org78b7040" class="outline-2">
285
+<h2 id="org78b7040">Emacs</h2>
286
+<div class="outline-text-2" id="text-org78b7040">
287 287
 <p>
288 288
 If you use the Mutt client to read your email then this will set it up to use emacs for composing new mail.
289 289
 </p>
290
+
291
+<p>
292
+<a href="./app_emacs.html">How to use it</a>
293
+</p>
290 294
 </div>
291 295
 </div>
292
-
293
-<div id="outline-container-orgb55d364" class="outline-2">
294
-<h2 id="orgb55d364">Etherpad</h2>
295
-<div class="outline-text-2" id="text-orgb55d364">
296
+<div id="outline-container-orgdab6a1a" class="outline-2">
297
+<h2 id="orgdab6a1a">Etherpad</h2>
298
+<div class="outline-text-2" id="text-orgdab6a1a">
296 299
 <p>
297 300
 Collaborate on creating documents in real time. Maybe you're planning a holiday with other family members or creating documentation for a Free Software project along with other volunteers. Etherpad is hard to beat for simplicity and speed. Only users of the system will be able to access it.
298 301
 </p>
@@ -302,18 +305,18 @@ Collaborate on creating documents in real time. Maybe you're planning a holiday
302 305
 </p>
303 306
 </div>
304 307
 </div>
305
-<div id="outline-container-org63c3d65" class="outline-2">
306
-<h2 id="org63c3d65">Ghost</h2>
307
-<div class="outline-text-2" id="text-org63c3d65">
308
+<div id="outline-container-org8de1d90" class="outline-2">
309
+<h2 id="org8de1d90">Ghost</h2>
310
+<div class="outline-text-2" id="text-org8de1d90">
308 311
 <p>
309 312
 Modern looking blogging system.
310 313
 </p>
311 314
 </div>
312 315
 </div>
313 316
 
314
-<div id="outline-container-org61aebd3" class="outline-2">
315
-<h2 id="org61aebd3">GNU Social</h2>
316
-<div class="outline-text-2" id="text-org61aebd3">
317
+<div id="outline-container-org19d6b08" class="outline-2">
318
+<h2 id="org19d6b08">GNU Social</h2>
319
+<div class="outline-text-2" id="text-org19d6b08">
317 320
 <p>
318 321
 Federated social network. You can "<i>remote follow</i>" other users within the GNU Social federation.
319 322
 </p>
@@ -323,9 +326,9 @@ Federated social network. You can "<i>remote follow</i>" other users within the
323 326
 </p>
324 327
 </div>
325 328
 </div>
326
-<div id="outline-container-orgc4ad28e" class="outline-2">
327
-<h2 id="orgc4ad28e">Gogs</h2>
328
-<div class="outline-text-2" id="text-orgc4ad28e">
329
+<div id="outline-container-orgf167e82" class="outline-2">
330
+<h2 id="orgf167e82">Gogs</h2>
331
+<div class="outline-text-2" id="text-orgf167e82">
329 332
 <p>
330 333
 Lightweight git project hosting system. You can mirror projects from Github, or if Github turns evil then just host your own projects while retaining the familiar <i>fork-and-pull</i> workflow. If you can use Github then you can also use Gogs.
331 334
 </p>
@@ -335,18 +338,18 @@ Lightweight git project hosting system. You can mirror projects from Github, or
335 338
 </p>
336 339
 </div>
337 340
 </div>
338
-<div id="outline-container-org3d69c4e" class="outline-2">
339
-<h2 id="org3d69c4e">HTMLy</h2>
340
-<div class="outline-text-2" id="text-org3d69c4e">
341
+<div id="outline-container-org534222b" class="outline-2">
342
+<h2 id="org534222b">HTMLy</h2>
343
+<div class="outline-text-2" id="text-org534222b">
341 344
 <p>
342 345
 Databaseless blogging system. Quite simple and with a markdown-like format.
343 346
 </p>
344 347
 </div>
345 348
 </div>
346 349
 
347
-<div id="outline-container-orgf16ecb5" class="outline-2">
348
-<h2 id="orgf16ecb5">Hubzilla</h2>
349
-<div class="outline-text-2" id="text-orgf16ecb5">
350
+<div id="outline-container-org174b091" class="outline-2">
351
+<h2 id="org174b091">Hubzilla</h2>
352
+<div class="outline-text-2" id="text-org174b091">
350 353
 <p>
351 354
 Web publishing platform with social network like features and good privacy controls so that it's possible to specify who can see which content. Includes photo albums, calendar, wiki and file storage.
352 355
 </p>
@@ -356,9 +359,9 @@ Web publishing platform with social network like features and good privacy contr
356 359
 </p>
357 360
 </div>
358 361
 </div>
359
-<div id="outline-container-org4d2ee61" class="outline-2">
360
-<h2 id="org4d2ee61">IRC Server (ngirc)</h2>
361
-<div class="outline-text-2" id="text-org4d2ee61">
362
+<div id="outline-container-orgb92a0d7" class="outline-2">
363
+<h2 id="orgb92a0d7">IRC Server (ngirc)</h2>
364
+<div class="outline-text-2" id="text-orgb92a0d7">
362 365
 <p>
363 366
 Run your own IRC chat channel which can be secured with a password and accessible via an onion address. A bouncer is included so that you can receive messages sent while you were offline. Works with Hexchat and other popular clients.
364 367
 </p>
@@ -368,27 +371,27 @@ Run your own IRC chat channel which can be secured with a password and accessibl
368 371
 </p>
369 372
 </div>
370 373
 </div>
371
-<div id="outline-container-org432e8cb" class="outline-2">
372
-<h2 id="org432e8cb">Jitsi Meet</h2>
373
-<div class="outline-text-2" id="text-org432e8cb">
374
+<div id="outline-container-org9c4c9ac" class="outline-2">
375
+<h2 id="org9c4c9ac">Jitsi Meet</h2>
376
+<div class="outline-text-2" id="text-org9c4c9ac">
374 377
 <p>
375 378
 Experimental WebRTC video conferencing system, similar to Google Hangouts. This may not be fully functional, but is hoped to be in the near future.
376 379
 </p>
377 380
 </div>
378 381
 </div>
379 382
 
380
-<div id="outline-container-org1047b5f" class="outline-2">
381
-<h2 id="org1047b5f">Lychee</h2>
382
-<div class="outline-text-2" id="text-org1047b5f">
383
+<div id="outline-container-orge5266cb" class="outline-2">
384
+<h2 id="orge5266cb">Lychee</h2>
385
+<div class="outline-text-2" id="text-orge5266cb">
383 386
 <p>
384 387
 Make your photo albums available on the web.
385 388
 </p>
386 389
 </div>
387 390
 </div>
388 391
 
389
-<div id="outline-container-org5c41d4c" class="outline-2">
390
-<h2 id="org5c41d4c">Mailpile</h2>
391
-<div class="outline-text-2" id="text-org5c41d4c">
392
+<div id="outline-container-orge666f5d" class="outline-2">
393
+<h2 id="orge666f5d">Mailpile</h2>
394
+<div class="outline-text-2" id="text-orge666f5d">
392 395
 <p>
393 396
 Modern email client which supports GPG encryption.
394 397
 </p>
@@ -398,9 +401,9 @@ Modern email client which supports GPG encryption.
398 401
 </p>
399 402
 </div>
400 403
 </div>
401
-<div id="outline-container-org221969e" class="outline-2">
402
-<h2 id="org221969e">Mumble</h2>
403
-<div class="outline-text-2" id="text-org221969e">
404
+<div id="outline-container-orgcee8b19" class="outline-2">
405
+<h2 id="orgcee8b19">Mumble</h2>
406
+<div class="outline-text-2" id="text-orgcee8b19">
404 407
 <p>
405 408
 The popular VoIP and text chat system. Say goodbye to old-fashioned telephony conferences with silly dial codes. Also works well on mobile.
406 409
 </p>
@@ -410,9 +413,9 @@ The popular VoIP and text chat system. Say goodbye to old-fashioned telephony co
410 413
 </p>
411 414
 </div>
412 415
 </div>
413
-<div id="outline-container-org1b69edd" class="outline-2">
414
-<h2 id="org1b69edd">PI-Hole</h2>
415
-<div class="outline-text-2" id="text-org1b69edd">
416
+<div id="outline-container-orgcc106ce" class="outline-2">
417
+<h2 id="orgcc106ce">PI-Hole</h2>
418
+<div class="outline-text-2" id="text-orgcc106ce">
416 419
 <p>
417 420
 The black hole for web adverts. Block adverts at the domain name level within your local network. It can significantly reduce bandwidth, speed up page load times and protect your systems from being tracked by spyware.
418 421
 </p>
@@ -422,27 +425,27 @@ The black hole for web adverts. Block adverts at the domain name level within yo
422 425
 </p>
423 426
 </div>
424 427
 </div>
425
-<div id="outline-container-orgd048719" class="outline-2">
426
-<h2 id="orgd048719">PostActiv</h2>
427
-<div class="outline-text-2" id="text-orgd048719">
428
+<div id="outline-container-orge73b054" class="outline-2">
429
+<h2 id="orge73b054">PostActiv</h2>
430
+<div class="outline-text-2" id="text-orge73b054">
428 431
 <p>
429 432
 An alternative federated social networking system compatible with GNU Social. It includes some optimisations and fixes currently not available within the main GNU Social project.
430 433
 </p>
431 434
 </div>
432 435
 </div>
433 436
 
434
-<div id="outline-container-orgae34b71" class="outline-2">
435
-<h2 id="orgae34b71">Radicale</h2>
436
-<div class="outline-text-2" id="text-orgae34b71">
437
+<div id="outline-container-orgfe63e5e" class="outline-2">
438
+<h2 id="orgfe63e5e">Radicale</h2>
439
+<div class="outline-text-2" id="text-orgfe63e5e">
437 440
 <p>
438 441
 Calendar system compatible with CalDAV and CardDAV. Manage your calendar events easily across all your devices.
439 442
 </p>
440 443
 </div>
441 444
 </div>
442 445
 
443
-<div id="outline-container-org1b3357d" class="outline-2">
444
-<h2 id="org1b3357d">tt-rss</h2>
445
-<div class="outline-text-2" id="text-org1b3357d">
446
+<div id="outline-container-org7fdbdf3" class="outline-2">
447
+<h2 id="org7fdbdf3">tt-rss</h2>
448
+<div class="outline-text-2" id="text-org7fdbdf3">
446 449
 <p>
447 450
 Private RSS reader. Pulls in RSS/Atom feeds via Tor and is only accessible via an onion address. Have "<i>the right to read</i>" without the Surveillance State knowing what you're reading. Also available with a user interface suitable for viewing on mobile devices via a browser such as OrFox.
448 451
 </p>
@@ -452,9 +455,9 @@ Private RSS reader. Pulls in RSS/Atom feeds via Tor and is only accessible via a
452 455
 </p>
453 456
 </div>
454 457
 </div>
455
-<div id="outline-container-org4d37ad9" class="outline-2">
456
-<h2 id="org4d37ad9">Syncthing</h2>
457
-<div class="outline-text-2" id="text-org4d37ad9">
458
+<div id="outline-container-orgb0c4606" class="outline-2">
459
+<h2 id="orgb0c4606">Syncthing</h2>
460
+<div class="outline-text-2" id="text-orgb0c4606">
458 461
 <p>
459 462
 Possibly the best way to synchronise files across all of your devices. Once it has been set up it "just works" with no user intervention needed.
460 463
 </p>
@@ -464,9 +467,9 @@ Possibly the best way to synchronise files across all of your devices. Once it h
464 467
 </p>
465 468
 </div>
466 469
 </div>
467
-<div id="outline-container-orgc8c5f1a" class="outline-2">
468
-<h2 id="orgc8c5f1a">Tox</h2>
469
-<div class="outline-text-2" id="text-orgc8c5f1a">
470
+<div id="outline-container-orgb4cbf9f" class="outline-2">
471
+<h2 id="orgb4cbf9f">Tox</h2>
472
+<div class="outline-text-2" id="text-orgb4cbf9f">
470 473
 <p>
471 474
 Client and bootstrap node for the Tox chat/VoIP system.
472 475
 </p>
@@ -476,18 +479,18 @@ Client and bootstrap node for the Tox chat/VoIP system.
476 479
 </p>
477 480
 </div>
478 481
 </div>
479
-<div id="outline-container-org339ace5" class="outline-2">
480
-<h2 id="org339ace5">Vim</h2>
481
-<div class="outline-text-2" id="text-org339ace5">
482
+<div id="outline-container-org8a14122" class="outline-2">
483
+<h2 id="org8a14122">Vim</h2>
484
+<div class="outline-text-2" id="text-org8a14122">
482 485
 <p>
483 486
 If you use the Mutt client to read your email then this will set it up to use vim for composing new mail.
484 487
 </p>
485 488
 </div>
486 489
 </div>
487 490
 
488
-<div id="outline-container-org4587b35" class="outline-2">
489
-<h2 id="org4587b35">XMPP</h2>
490
-<div class="outline-text-2" id="text-org4587b35">
491
+<div id="outline-container-org3d5d32d" class="outline-2">
492
+<h2 id="org3d5d32d">XMPP</h2>
493
+<div class="outline-text-2" id="text-org3d5d32d">
491 494
 <p>
492 495
 Chat server which can be used together with client such as Gajim or Conversations to provide end-to-end content security and also onion routed metadata security. Includes advanced features such as <i>client state notification</i> to save battery power on your mobile devices, support for seamless roaming between networks and <i>message carbons</i> so that you can receive the same messages while being simultaneously logged in to your account on more than one device.
493 496
 </p>