summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/custom.css599
-rw-r--r--src/en/articles/gnu+linux-and-emacs-introduction/index.org832
-rw-r--r--src/en/articles/index.org3
-rw-r--r--src/en/index.org20
-rw-r--r--src/en/mailing-lists/index.org5
-rw-r--r--src/en/projects/index.org5
-rw-r--r--src/en/web-log/2024-08-31-test/index.org16
-rw-r--r--src/en/web-log/index.org3
-rw-r--r--src/es/articles/gnu+linux-and-emacs-introduction/index.org.po1382
-rw-r--r--src/es/articles/index.org.po30
-rw-r--r--src/es/index.org.po66
-rw-r--r--src/es/mailing-lists/index.org.po36
-rw-r--r--src/es/projects/index.org.po36
-rw-r--r--src/es/web-log/2024-08-31-test/index.org.po45
-rw-r--r--src/es/web-log/index.org.po30
-rw-r--r--src/fonts/aporetic-sans-mono-normalbolditalic.woff2bin0 -> 1286164 bytes
-rw-r--r--src/fonts/aporetic-sans-mono-normalboldupright.woff2bin0 -> 1171256 bytes
-rw-r--r--src/fonts/aporetic-sans-mono-normalregularitalic.woff2bin0 -> 1269932 bytes
-rw-r--r--src/fonts/aporetic-sans-mono-normalregularupright.woff2bin0 -> 1157512 bytes
-rw-r--r--src/fonts/aporetic-sans-normalbolditalic.woff2bin0 -> 1572580 bytes
-rw-r--r--src/fonts/aporetic-sans-normalboldupright.woff2bin0 -> 1433904 bytes
-rw-r--r--src/fonts/aporetic-sans-normalregularitalic.woff2bin0 -> 1547708 bytes
-rw-r--r--src/fonts/aporetic-sans-normalregularupright.woff2bin0 -> 1418916 bytes
-rw-r--r--src/fonts/aporetic-serif-mono-normalbolditalic.woff2bin0 -> 1330512 bytes
-rw-r--r--src/fonts/aporetic-serif-mono-normalboldupright.woff2bin0 -> 1218728 bytes
-rw-r--r--src/fonts/aporetic-serif-mono-normalregularitalic.woff2bin0 -> 1319120 bytes
-rw-r--r--src/fonts/aporetic-serif-mono-normalregularupright.woff2bin0 -> 1203304 bytes
-rw-r--r--src/fonts/aporetic-serif-normalbolditalic.woff2bin0 -> 1621252 bytes
-rw-r--r--src/fonts/aporetic-serif-normalboldupright.woff2bin0 -> 1483580 bytes
-rw-r--r--src/fonts/aporetic-serif-normalregularitalic.woff2bin0 -> 1597956 bytes
-rw-r--r--src/fonts/aporetic-serif-normalregularupright.woff2bin0 -> 1468780 bytes
-rw-r--r--src/ru/articles/gnu+linux-and-emacs-introduction/index.org.po1382
-rw-r--r--src/ru/articles/index.org.po31
-rw-r--r--src/ru/index.org.po67
-rw-r--r--src/ru/mailing-lists/index.org.po37
-rw-r--r--src/ru/projects/index.org.po37
-rw-r--r--src/ru/web-log/2024-08-31-test/index.org.po46
-rw-r--r--src/ru/web-log/index.org.po31
-rw-r--r--src/sk/articles/gnu+linux-and-emacs-introduction/index.org.po1381
-rw-r--r--src/sk/articles/index.org.po30
-rw-r--r--src/sk/index.org.bak22
-rw-r--r--src/sk/index.org.po66
-rw-r--r--src/sk/mailing-lists/index.org.po36
-rw-r--r--src/sk/projects/index.org.po36
-rw-r--r--src/sk/web-log/2024-08-31-test/index.org.po45
-rw-r--r--src/sk/web-log/index.org.po30
46 files changed, 6385 insertions, 0 deletions
diff --git a/src/custom.css b/src/custom.css
new file mode 100644
index 0000000..45d33e5
--- /dev/null
+++ b/src/custom.css
@@ -0,0 +1,599 @@
1@charset "utf-8";
2
3
4/* Fonts */
5
6@font-face {
7 font-family: "Aporetic Serif Mono";
8 font-display: swap;
9 font-weight: 700;
10 font-stretch: normal;
11 font-style: normal;
12 src: url('/fonts/aporetic-serif-mono-normalbolditalic.woff2') format('woff2');
13}
14
15@font-face {
16 font-family: "Aporetic Serif Mono";
17 font-display: swap;
18 font-weight: 700;
19 font-stretch: normal;
20 font-style: normal;
21 src: url('/fonts/aporetic-serif-mono-normalboldupright.woff2') format('woff2');
22}
23
24@font-face {
25 font-family: "Aporetic Serif Mono";
26 font-display: swap;
27 font-weight: 400;
28 font-stretch: normal;
29 font-style: normal;
30 src: url('/fonts/aporetic-serif-mono-normalregularitalic.woff2') format('woff2');
31}
32
33@font-face {
34 font-family: "Aporetic Serif Mono";
35 font-display: swap;
36 font-weight: 400;
37 font-stretch: normal;
38 font-style: normal;
39 src: url('/fonts/aporetic-serif-mono-normalregularupright.woff2') format('woff2');
40}
41
42@font-face {
43 font-family: "Aporetic Serif";
44 font-display: swap;
45 font-weight: 700;
46 font-stretch: normal;
47 font-style: normal;
48 src: url('/fonts/aporetic-serif-normalbolditalic.woff2') format('woff2');
49}
50
51@font-face {
52 font-family: "Aporetic Serif";
53 font-display: swap;
54 font-weight: 700;
55 font-stretch: normal;
56 font-style: normal;
57 src: url('/fonts/aporetic-serif-normalboldupright.woff2') format('woff2');
58}
59
60@font-face {
61 font-family: "Aporetic Serif";
62 font-display: swap;
63 font-weight: 400;
64 font-stretch: normal;
65 font-style: normal;
66 src: url('/fonts/aporetic-serif-normalregularitalic.woff2') format('woff2');
67}
68
69@font-face {
70 font-family: "Aporetic Serif";
71 font-display: swap;
72 font-weight: 400;
73 font-stretch: normal;
74 font-style: normal;
75 src: url('/fonts/aporetic-serif-normalregularupright.woff2') format('woff2');
76}
77
78
79/* Variables */
80
81:root {
82 --font-serif-regular: "Aporetic Serif", serif;
83 --font-serif-mono: "Aporetic Serif Mono", monospace;
84 --font-sans-regular: "Aporetic Sans", sans-serif;
85 --font-sans-mono: "Aporetic Sans Mono", monospace;
86
87 --default-fg: black;
88 --default-bg: white;
89 --default-family: var(--font-sans-regular);
90 --default-size: 14pt;
91
92 --header-family: var(--font-serif-regular);
93
94 --link-fg: #3548cf;
95
96 --body-margin: 0px;
97
98 --divider-color: #9f9f9f; /* window-divider */
99
100 --content-border: 2px solid var(--divider-color);
101 --content-padding: 10px;
102
103 --nav-height: 125px;
104 --toc-nav-vspacing: 20px;
105 --toc-base-padding: 5px;
106 --toc-ul-padding-left: 20px;
107 --toc-local-padding: 5px;
108 --toc-extra-padding-x: 4px;
109
110 --tbl-border-color: #193668; /* org-table */
111 --tbl-border-size: 1px;
112
113 --code-fg: #005f5f;
114 --code-family: var(--font-serif-mono);
115 --code-size: var(--default-size);
116
117 --example-family: var(--default-serif-mono);
118 --example-size: var(--default-size);
119
120 --src-bg: #fbf9e7;
121 --src-border-color: #7f7f7f;
122 --src-border: 1px solid var(--src-border-color);
123 --src-family: var(--default-serif-mono);
124
125 --src-label-fg: var(--src-border-color);
126
127 --src-builtin-fg: #8f0075;
128 --src-builtin-weight: bold;
129
130 --src-keyword-fg: #531ab6;
131 --src-keyword-weight: bold;
132
133 --src-variable-name-fg: #005e8b;
134
135 --src-string-fg: #3548cf;
136
137 --src-constant-fg: #0000b0;
138
139 --src-function-name-fg: #721045;
140
141 --src-comment-fg: #595959;
142 --src-comment-style: italic;
143
144 --src-comment-delimiter-fg: var(--src-comment-fg);
145 --src-comment-delimiter-style: italic;
146
147 --src-regexp-grouping-backslash-fg: var(--src-function-name-fg);
148 --src-regexp-grouping-backslash-weight: bold;
149
150 --src-regexp-grouping-construct-fg: #00663f;
151 --src-regexp-grouping-construct-weight: bold;
152
153 --src-doc-fg: #2a5045;
154 --src-doc-style: italic;
155
156 --src-type-fg: #005f5f;
157 --src-type-weight: bold;
158}
159
160
161/* Dark overrides */
162
163@media (prefers-color-scheme: dark) {
164 :root {
165 color-scheme: dark;
166
167 --scrollbar-track-color: #303030;
168 --scrollbar-thumb-color: #808080;
169 --scrollbar-thumb-hover-color: #505050;
170 --scrollbar-corner-color: #404040;
171
172 --default-fg: white;
173 --default-bg: black;
174
175 --link-fg: #79a8ff;
176
177 --divider-color: #646464;
178
179 --tbl-border-color: #c6daff;
180
181 --src-bg: #1e1e1e;
182
183 --src-builtin-fg: #f78fe7;
184 --src-keyword-fg: #b6a0ff;
185 --src-variable-name-fg: #00d3d0;
186 --src-string-fg: #79a8ff;
187 --src-constant-fg: #00bcff;
188 --src-function-name-fg: #feacd0;
189
190 --src-comment-fg: #989898;
191
192 --src-regexp-grouping-construct-fg: #00c06f;
193
194 --src-doc-fg: #9ac8e0;
195 --src-type-fg: #6ae4b9;
196
197 --code-fg: #6ae4b9;
198 }
199}
200
201
202/* Responsive variables */
203
204/* Large screens */
205@media (min-width: 1024px) {
206 :root {
207 --side-width: 250px;
208 --content-width: calc(92% - var(--side-width));
209 --nav-base-font-size: 80%;
210 --nav-padding: 14px 16px;
211 --toc-base-font-size: 70%;
212 --toc-ul-font-size: 150%;
213 --toc-ul-local-font-size: 130%;
214 --toc-ul-2-font-size: 80%;
215 --toc-ul-3-font-size: 80%;
216 --src-size: 14pt;
217 --rss-padding: 0 0 0 25px;
218 --rss-size: 25px 25px;
219 --rss-pos: 50%;
220 }
221}
222
223/* Medium screens */
224@media (min-width: 600px) and (max-width: 1024px) {
225 :root {
226 --side-width: 175px;
227 --content-width: calc(92% - var(--side-width));
228 --nav-base-font-size: 70%;
229 --nav-padding: 5px 6px;
230 --toc-base-font-size: 70%;
231 --toc-ul-font-size: 130%;
232 --toc-ul-local-font-size: 130%;
233 --toc-ul-2-font-size: 80%;
234 --src-size: 14pt;
235 --rss-padding: 0 0 19px 9px;
236 --rss-size: 10px 10px;
237 --rss-pos: 25%;
238 }
239}
240
241/* Small screens */
242@media (max-width: 600px) {
243 :root {
244 --content-width: 100%;
245 --nav-base-font-size: 80%;
246 --nav-padding: 5px 6px;
247 --toc-base-font-size: 80%;
248 --toc-ul-font-size: 120%;
249 --toc-ul-local-font-size: 130%;
250 --toc-ul-2-font-size: 80%;
251 --src-size: 14pt;
252 }
253}
254
255
256/* Immutable */
257
258/* Body */
259body {
260 color: var(--default-fg);
261 background-color: var(--default-bg);
262 font-family: var(--default-family);
263 font-size: var(--default-size);
264
265 margin: 0;
266}
267
268/* Headers */
269h1, h2, h3, h4, h5, h6 {
270 font-family: var(--header-family);
271}
272
273/* Scroll bars */
274/* ::-webkit-scrollbar { */
275/* width: 12px; */
276/* height: 12px; */
277/* } */
278
279/* ::-webkit-scrollbar-track { */
280/* background: var(--scrollbar-track-color); */
281/* border-radius: 10px; */
282/* } */
283
284/* ::-webkit-scrollbar-thumb { */
285/* background: var(--scrollbar-thumb-color); */
286/* border-radius: 10px; */
287/* } */
288
289/* ::-webkit-scrollbar-thumb:hover { */
290/* background: var(--scrollbar-thumb-hover-color); */
291/* } */
292
293/* ::-webkit-scrollbar-corner { */
294/* background: var(--scrollbar-corner-color); */
295/* } */
296
297/* Links */
298a {
299 color: var(--link-fg);
300}
301
302/* Content */
303#content {
304 width: var(--content-width);
305 padding: 0 var(--content-padding);
306}
307
308@media (min-width: 600px) {
309 #content {
310 margin-left: calc(var(--side-width) + var(--body-margin) + 2*var(--content-padding));
311 margin-right: var(--body-margin);
312 border-left: var(--content-border);
313 }
314}
315
316@media (max-width: 600px) {
317 #content {
318 margin-left: 0;
319 margin-right: 0;
320 }
321}
322
323@media (min-width: 600px) {
324 nav {
325 left: var(--content-padding);
326 position: fixed;
327 width: var(--side-width);
328 }
329
330 nav > ul {
331 padding: 0;
332 margin: 0;
333 list-style-type: none;
334 display: block;
335 }
336
337 nav > ul > li {
338 padding: var(--toc-base-padding) 0;
339 }
340
341 nav > ul > li:not(:last-of-type) {
342 border-bottom: 1px solid var(--divider-color);
343 }
344
345 nav > ul > li > ul {
346 padding: 0;
347 text-align: center;
348 overflow-x: auto;
349 white-space: nowrap;
350 -ms-overflow-style: none; /* Internet Explorer 10+ */
351 scrollbar-width: none; /* Firefox */
352 }
353 nav > ul > li > ul::-webkit-scrollbar {
354 display: none; /* Safari and Chrome */
355 }
356
357 nav > ul > li > ul > li {
358 display: inline-block;
359 }
360}
361
362html {
363}
364
365@media (max-width: 600px) {
366 nav {
367 border-bottom: 2px solid var(--divider-color);
368 }
369
370 nav > ul {
371 padding: 0;
372 margin: 0 8px;
373 list-style-type: none;
374 display: block;
375 }
376
377 nav > ul > li {
378 padding: var(--toc-base-padding) 0;
379 }
380
381 nav > ul > li:not(:last-of-type) {
382 border-bottom: 1px solid var(--divider-color);
383 }
384
385 nav > ul > li > ul {
386 padding: 0;
387 text-align: center;
388 overflow-x: auto;
389 }
390
391 nav > ul > li > ul > li {
392 display: inline-block;
393 }
394}
395
396nav > ul > li > span {
397 display: none;
398}
399
400code {
401 color: var(--code-fg);
402 font-family: var(--code-family);
403 font-size: var(--code-size);
404}
405
406pre.example {
407 font-family: var(--example-family);
408 font-size: var(--example-size);
409}
410
411hr {
412 border: 1px solid var(--divider-color);
413 /* border-bottom: 1px solid var(--divider-color); */
414}
415
416.org-src-container {
417 border: var(--src-border);
418 background-color: var(--src-bg);
419 font-family: var(--src-family);
420 font-size: var(--src-size);
421 margin: 10px;
422}
423
424.src-label {
425 top: 0;
426 left: 0;
427 color: var(--src-label-fg);
428 border-bottom: var(--src-border);
429 padding: 2px;
430 padding-left: 4px;
431 display: flex;
432 justify-content: space-between
433}
434
435pre.src {
436 max-height: 50ex;
437 overflow-x: auto;
438 overflow-y: auto;
439 line-height: 2.5ex;
440 margin: 0px;
441 padding: 4px;
442}
443
444.org-builtin {
445 color: var(--src-builtin-fg);
446 weight: var(--src-builtin-weight);
447}
448
449.org-keyword {
450 color: var(--src-keyword-fg);
451 weight: var(--src-keyword-weight);
452}
453
454.org-variable-name {
455 color: var(--src-variable-name-fg);
456}
457
458.org-string {
459 color: var(--src-string-fg);
460}
461
462.org-constant {
463 color: var(--src-constant-fg);
464}
465
466.org-comment {
467 color: var(--src-comment-fg);
468 font-style: var(--src-comment-style);
469}
470
471.org-comment-delimiter {
472 color: var(--src-comment-delimiter-fg);
473 font-style: var(--src-comment-delimiter-style);
474}
475
476.org-function-name {
477 color: var(--src-function-name-fg);
478}
479
480.org-regexp-grouping-backslash {
481 color: var(--src-regexp-grouping-backslash-fg);
482 font-style: var(--src-regexp-grouping-backslash-style);
483}
484
485.org-regexp-grouping-construct {
486 color: var(--src-regexp-grouping-construct-fg);
487 font-style: var(--src-regexp-grouping-construct-style);
488}
489
490.org-doc {
491 color: var(--src-doc-fg);
492 font-style: var(--src-doc-style);
493}
494
495.org-type {
496 color: var(--src-type-fg);
497 weight: var(--src-type-weight);
498}
499
500/* Basic styling (color, font, shadow) common to global and local TOC */
501#table-of-contents, .org-info-js_local-toc {
502 font-size: var(--toc-base-font-size);
503}
504
505#org-div-home-and-up {
506 width: var(--side-width);
507 border-right: var(--toc-border-right);
508 justify-content: center;
509}
510
511/* Size (global TOC only) */
512#table-of-contents {
513 width: calc(var(--side-width) - 2*var(--toc-base-padding));
514}
515
516/* Fixed vertical table of content */
517@media screen and (min-width: 600px) {
518 #org-div-home-and-up {
519 position: fixed;
520 left: var(--content-padding);
521 overflow: auto;
522 padding: var(--toc-base-padding);
523 }
524 #table-of-contents {
525 position: fixed;
526 left: var(--content-padding);
527 top: var(--nav-height);
528 bottom: 0;
529 padding: 0 var(--toc-base-padding);
530 overflow: auto;
531 border-top: 2px solid var(--divider-color);
532 -ms-overflow-style: none; /* Internet Explorer 10+ */
533 scrollbar-width: none; /* Firefox */
534 }
535 #table-of-contents::-webkit-scrollbar {
536 display: none; /* Safari and Chrome */
537 }
538}
539
540@media screen and (min-width: 600px) and (max-width: 1024px) {
541 #table-of-contents > div > ul > li > ul > li > ul {
542 display: none;
543 }
544}
545
546@media screen and (max-width: 600px) {
547 #table-of-contents {
548 position: relative;
549 width: 90%;
550 margin: auto;
551 }
552}
553
554#table-of-contents ul, .org-info-js_local-toc ul {
555 list-style-type: none;
556 margin: 0;
557 padding-left: var(--toc-ul-padding-left);
558}
559
560#table-of-contents ul {
561 font-size: var(--toc-ul-font-size);
562}
563
564.org-info-js_local-toc ul {
565 font-size: var(--toc-ul-local-font-size);
566}
567
568#table-of-contents > div > ul, .org-info-js_local-toc > div > ul {
569 list-style-type: none;
570 margin: 0;
571 padding-left: var(--toc-extra-padding-x);
572}
573
574#table-of-contents > div > ul > li > ul {
575 font-size: var(--toc-ul-2-font-size);
576 vertical-align: middle;
577}
578
579#table-of-contents > div > ul > li > ul > li > ul {
580 font-size: var(--toc-ul-3-font-size);
581 vertical-align: middle;
582}
583
584ul {
585 list-style-type: '- ';
586}
587
588table, td, th {
589 text-align: left;
590}
591
592table {
593 border-collapse: collapse;
594 width: 100%;
595}
596
597th, td {
598 padding: 3px;
599}
diff --git a/src/en/articles/gnu+linux-and-emacs-introduction/index.org b/src/en/articles/gnu+linux-and-emacs-introduction/index.org
new file mode 100644
index 0000000..38ebc8a
--- /dev/null
+++ b/src/en/articles/gnu+linux-and-emacs-introduction/index.org
@@ -0,0 +1,832 @@
1#+title: GNU/Linux and GNU Emacs Introduction
2#+keywords: beginner gnu linux emacs
3
4* Installing Debian
5** Preparations
6*** Getting debian
7Download Debian [[https://www.debian.org/][installer image]]
8
9*** Creating installation medium
10On =M$= Windows, use a tool like [[https://rufus.ie/en/][Rufus]] to create a bootable USB flash
11drive with the downloaded =.iso= file
12
13*** Allocating disk space
14Either get an empty disk or shrink on of your data partitions (toms) to get a continuous region of free space which is at least around 100GB.
15
16** Installation process
17If installing on a laptop, make sure that it's fully charged and keep
18the charger plugged in.
19
20*** Booting from the installation medium
21NOTE: You might have to enable booting from USB in BIOS.
22
23Select the USB from boot menu or change boot order.
24
25*** The Debian installer
26Select the =install= option (not the =Graphical install=) in the GRUB bootloader.
27
28To navigate the menus, use arrow keys and TAB, to toggle check boxes use spacebar and to press button use the enter key.
29
30Simple guide:
311. Select region
322. Select localization (US)
333. Select keyboard layout (most likely US/ISO)
344. Select connected if you have Ethernet connection or wireless if you
35 want to connect to wifi.
365. Choose hostname.
376. Skip domain name.
387. Skip proxy.
398. Select mirror in your region.
409. Set root password.
4110. Set user's full name, username and password.
4211. Deselect all software packages except base.
4312. To dual boot with Windows select guided partitioning (free space).
4413. Select =/home= folder on a separate partition.
4514. Start the installation.
4615. Reboot and check that you can boot everything.
47
48* Setting up GNU/Linux
49** User setup
501. Login as root
511. Edit =/etc/apt/sources= and add =non-free contrib testing unstable=
522. ~apt udpate~
533. ~apt upgrade~
544. ~apt install sudo~
555. ~visudo~ (%wheel ALL=(ALL) NOPASSWD: ALL)
566. ~groupadd wheel~
577. ~usermod -aG wheel YOUR_USERNAME~
588. ~exit~
59
60** Environment setup
61*** Folder setup
62#+begin_src sh
63cd
64rmdir Downloads Desktop ...
65mkdir downloads documents multimedia
66cd multimedia
67mkdir screenshots
68mkdir screencasts
69#+end_src
70
71*** Emacs setup
72~sudo apt install emacs git vterm-module libtd~
73
74Delete =~/.emacs.d=
75
76Edit =~/.config/emacs/init.el=
77
78#+name: emacs-server
79#+header: :tangle emacs/init.el
80#+begin_src emacs-lisp
81(server-start)
82#+end_src
83
84#+name: emacs-straight
85#+header: :tangle emacs/init.el
86#+begin_src emacs-lisp
87(defvar bootstrap-version)
88(let ((bootstrap-file
89 (expand-file-name
90 "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
91 (bootstrap-version 6))
92 (unless (file-exists-p bootstrap-file)
93 (with-current-buffer
94 (url-retrieve-synchronously
95 "https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el"
96 'silent 'inhibit-cookies)
97 (goto-char (point-max))
98 (eval-print-last-sexp)))
99 (load bootstrap-file nil 'nomessage))
100
101(straight-use-package 'use-package)
102(setq straight-use-package-by-default t
103 use-package-always-ensure t)
104#+end_src
105
106#+name: emacs-coding
107#+header: :tangle emacs/init.el
108#+begin_src emacs-lisp
109(prefer-coding-system 'utf-8)
110(set-language-environment "UTF-8")
111(set-default-coding-systems 'utf-8)
112(set-terminal-coding-system 'utf-8)
113(setq-default buffer-file-coding-system 'utf-8)
114#+end_src
115
116#+name: emacs-clean-look
117#+header: :tangle emacs/init.el
118#+begin_src emacs-lisp
119(menu-bar-mode -1)
120(tool-bar-mode -1)
121(scroll-bar-mode -1)
122#+end_src
123
124#+name: emacs-misc
125#+header: :tangle emacs/init.el
126#+begin_src emacs-lisp
127(setq kill-ring-max 10000)
128(repeat-mode 1)
129(auto-insert-mode 1)
130(global-hl-line-mode 1)
131(setq display-time-24hr-format t)
132(setq default-input-method "russian-computer")
133(load-theme 'modus-vivendi t)
134(fset 'yes-or-no-p 'y-or-n-p)
135(set-face-attribute 'default nil :font "Iosevka" :height 180)
136(global-subword-mode)
137#+end_src
138
139#+name: emacs-compilation
140#+header: :tangle emacs/init.el
141#+begin_src emacs-lisp
142(require 'ansi-color)
143(add-hook 'compilation-filter-hook 'ansi-color-compilation-filter)
144(add-hook 'compilation-mode-hook 'toggle-truncate-lines)
145(define-key global-map (kbd "C-<f5>") 'compile)
146(define-key global-map (kbd "<f5>") 'recompile)
147#+end_src
148
149#+name: emacs-trash
150#+header: :tangle emacs/init.el
151#+begin_src emacs-lisp
152(use-package trashed)
153(setq delete-by-moving-to-trash t)
154#+end_src
155
156#+name: emacs-undo-tree
157#+header: :tangle emacs/init.el
158#+begin_src emacs-lisp
159(use-package undo-tree
160 :config
161 (global-undo-tree-mode))
162#+end_src
163
164#+name: emacs-page-break-lines
165#+header: :tangle emacs/init.el
166#+begin_src emacs-lisp
167(use-package page-break-lines
168 :config
169 (global-page-break-lines-mode))
170#+end_src
171
172#+name: emacs-pdf-tools
173#+header: :tangle emacs/init.el
174#+begin_src emacs-lisp
175(use-package pdf-tools
176 :demand t
177 :hook (pdf-view-mode . pdf-view-themed-minor-mode)
178 :config
179 ;; Initialize the package
180 (pdf-tools-install)
181 ;; Associate pdf-view-mode with PDF files
182 (add-to-list 'auto-mode-alist '("\\.pdf\\'" . pdf-view-mode))
183 ;; Enable seamless scrolling between pages
184 (setq pdf-view-continuous-scroll-mode t)
185 ;; Use normal Emacs keybindings for scrolling
186 (setq pdf-view-continuous-scroll-keystrokes nil))
187#+end_src
188
189#+name: emacs-eglot
190#+header: :tangle emacs/init.el
191#+begin_src emacs-lisp
192(use-package eglot)
193#+end_src
194
195#+name: emacs-project
196#+header: :tangle emacs/init.el
197#+begin_src emacs-lisp
198(use-package project)
199#+end_src
200
201#+name: emacs-terminals
202#+header: :tangle emacs/init.el
203#+begin_src emacs-lisp
204(use-package vterm)
205(use-package eat)
206#+end_src
207
208#+name: emacs-telega
209#+header: :tangle emacs/init.el
210#+begin_src emacs-lisp
211(use-package telega
212 :custom
213 (telega-server-libs-prefix "/usr"))
214#+end_src
215
216#+name: emacs-emms
217#+header: :tangle emacs/init.el
218#+begin_src emacs-lisp
219(use-package emms)
220#+end_src
221
222#+name: emacs-multitran
223#+header: :tangle emacs/init.el
224#+begin_src emacs-lisp
225(use-package multitran
226 :bind
227 (("s-t" . multitran-at-pos)))
228#+end_src
229
230#+name: emacs-savehist
231#+header: :tangle emacs/init.el
232#+begin_src emacs-lisp
233(use-package savehist
234 :config
235 (savehist-mode))
236#+end_src
237
238#+name: emacs-lorem-ipsum
239#+header: :tangle emacs/init.el
240#+begin_src emacs-lisp
241(use-package lorem-ipsum)
242#+end_src
243
244#+name: emacs-smartparens
245#+header: :tangle emacs/init.el
246#+begin_src emacs-lisp
247(use-package smartparens
248 :init
249 (smartparens-global-mode t))
250#+end_src
251
252#+name: emacs-completion
253#+header: :tangle emacs/init.el
254#+begin_src emacs-lisp
255(use-package vertico
256 :init
257 (vertico-mode)
258 ;; (setq vertico-scroll-margin 0)
259 ;; (setq vertico-count 20)
260 ;; (setq vertico-resize t)
261 (setq vertico-cycle t))
262
263(use-package orderless
264 :init
265 ;; (setq orderless-style-dispatchers '(+orderless-consult-dispatch
266 ;; orderless-affix-dispatch)
267 orderless-component-separator #'orderless-escapable-split-on-space)
268(setq completion-styles '(orderless basic)
269 completion-category-defaults nil
270 completion-category-overrides '((file (styles partial-completion)))))
271
272(use-package consult
273 :bind (;; C-c bindings in `mode-specific-map'
274 ("C-c M-x" . consult-mode-command)
275 ("C-c h" . consult-history)
276 ("C-c k" . consult-kmacro)
277 ("C-c m" . consult-man)
278 ("C-c i" . consult-info)
279 ([remap Info-search] . consult-info)
280 ;; C-x bindings in `ctl-x-map'
281 ("C-x M-:" . consult-complex-command) ;; orig. repeat-complex-command
282 ("C-x b" . consult-buffer) ;; orig. switch-to-buffer
283 ("C-x 4 b" . consult-buffer-other-window) ;; orig. switch-to-buffer-other-window
284 ("C-x 5 b" . consult-buffer-other-frame) ;; orig. switch-to-buffer-other-frame
285 ("C-x r b" . consult-bookmark) ;; orig. bookmark-jump
286 ("C-x p b" . consult-project-buffer) ;; orig. project-switch-to-buffer
287 ;; Custom M-# bindings for fast register access
288 ("M-#" . consult-register-load)
289 ("M-'" . consult-register-store) ;; orig. abbrev-prefix-mark (unrelated)
290 ("C-M-#" . consult-register)
291 ;; Other custom bindings
292 ("M-y" . consult-yank-pop) ;; orig. yank-pop
293 ;; M-g bindings in `goto-map'
294 ("M-g e" . consult-compile-error)
295 ("M-g f" . consult-flymake) ;; Alternative: consult-flycheck
296 ("M-g g" . consult-goto-line) ;; orig. goto-line
297 ("M-g M-g" . consult-goto-line) ;; orig. goto-line
298 ("M-g o" . consult-outline) ;; Alternative: consult-org-heading
299 ("M-g m" . consult-mark)
300 ("M-g k" . consult-global-mark)
301 ("M-g i" . consult-imenu)
302 ("M-g I" . consult-imenu-multi)
303 ;; M-s bindings in `search-map'
304 ("M-s d" . consult-find) ;; Alternative: consult-fd
305 ("M-s D" . consult-locate)
306 ("M-s g" . consult-grep)
307 ("M-s G" . consult-git-grep)
308 ("M-s r" . consult-ripgrep)
309 ("M-s l" . consult-line)
310 ("M-s L" . consult-line-multi)
311 ("M-s k" . consult-keep-lines)
312 ("M-s u" . consult-focus-lines)
313 ;; Isearch integration
314 ("M-s e" . consult-isearch-history)
315 :map isearch-mode-map
316 ("M-e" . consult-isearch-history) ;; orig. isearch-edit-string
317 ("M-s e" . consult-isearch-history) ;; orig. isearch-edit-string
318 ("M-s l" . consult-line) ;; needed by consult-line to detect isearch
319 ("M-s L" . consult-line-multi) ;; needed by consult-line to detect isearch
320 ;; Minibuffer history
321 :map minibuffer-local-map
322 ("M-s" . consult-history) ;; orig. next-matching-history-element
323 ("M-r" . consult-history)) ;; orig. previous-matching-history-element
324
325 ;; Enable automatic preview at point in the *Completions* buffer. This is
326 ;; relevant when you use the default completion UI.
327 :hook (completion-list-mode . consult-preview-at-point-mode)
328 :init
329 ;; Optionally configure the register formatting. This improves the register
330 ;; preview for `consult-register', `consult-register-load',
331 ;; `consult-register-store' and the Emacs built-ins.
332 (setq register-preview-delay 0.5
333 register-preview-function #'consult-register-format)
334
335 ;; Optionally tweak the register preview window.
336 ;; This adds thin lines, sorting and hides the mode line of the window.
337 (advice-add #'register-preview :override #'consult-register-window)
338
339 ;; Use Consult to select xref locations with preview
340 (setq xref-show-xrefs-function #'consult-xref
341 xref-show-definitions-function #'consult-xref)
342
343 ;; Configure other variables and modes in the :config section,
344 ;; after lazily loading the package.
345 :config
346
347 ;; Optionally configure preview. The default value
348 ;; is 'any, such that any key triggers the preview.
349 ;; (setq consult-preview-key 'any)
350 ;; (setq consult-preview-key "M-.")
351 ;; (setq consult-preview-key '("S-<down>" "S-<up>"))
352 ;; For some commands and buffer sources it is useful to configure the
353 ;; :preview-key on a per-command basis using the `consult-customize' macro.
354 (consult-customize
355 consult-theme :preview-key '(:debounce 0.2 any)
356 consult-ripgrep consult-git-grep consult-grep
357 consult-bookmark consult-recent-file consult-xref
358 consult--source-bookmark consult--source-file-register
359 consult--source-recent-file consult--source-project-recent-file
360 ;; :preview-key "M-."
361 :preview-key '(:debounce 0.4 any))
362
363 ;; Optionally configure the narrowing key.
364 ;; Both < and C-+ work reasonably well.
365 (setq consult-narrow-key "<") ;; "C-+"
366
367 ;; Optionally make narrowing help available in the minibuffer.
368 ;; You may want to use `embark-prefix-help-command' or which-key instead.
369 ;; (define-key consult-narrow-map (vconcat consult-narrow-key "?") #'consult-narrow-help)
370 )
371
372(use-package corfu
373 :custom
374 (corfu-cycle t) ;; Enable cycling for `corfu-next/previous'
375 (corfu-auto t) ;; Enable auto completion
376 (corfu-separator ?\s) ;; Orderless field separator
377 (corfu-quit-at-boundary nil) ;; Never quit at completion boundary
378 (corfu-quit-no-match nil) ;; Never quit, even if there is no match
379 (corfu-preview-current nil) ;; Disable current candidate preview
380 (corfu-preselect 'prompt) ;; Preselect the prompt
381 (corfu-on-exact-match nil) ;; Configure handling of exact matches
382 (corfu-scroll-margin 5) ;; Use scroll margin
383 :init
384 (global-corfu-mode))
385#+end_src
386
387#+name: emacs-dired
388#+header: :tangle emacs/init.el
389#+begin_src emacs-lisp
390(setq dired-listing-switches "-alh"
391 dired-dwim-target t
392 dired-recursive-copies 'always
393 dired-recursive-deletes 'always)
394(use-package dired-single)
395#+end_src
396
397#+name: emacs-emacs
398#+header: :tangle emacs/init.el
399#+begin_src emacs-lisp
400(use-package emacs
401 :init
402 ;; Add prompt indicator to `completing-read-multiple'.
403 ;; We display [CRM<separator>], e.g., [CRM,] if the separator is a comma.
404 (defun crm-indicator (args)
405 (cons (format "[CRM%s] %s"
406 (replace-regexp-in-string
407 "\\`\\[.*?]\\*\\|\\[.*?]\\*\\'" ""
408 crm-separator)
409 (car args))
410 (cdr args)))
411 (advice-add #'completing-read-multiple :filter-args #'crm-indicator)
412
413 ;; Do not allow the cursor in the minibuffer prompt
414 (setq minibuffer-prompt-properties
415 '(read-only t cursor-intangible t face minibuffer-prompt))
416 (add-hook 'minibuffer-setup-hook #'cursor-intangible-mode)
417
418 ;; Enable recursive minibuffers
419 (setq enable-recursive-minibuffers t))
420
421;; Save all tempfiles in $TMPDIR/emacs$UID/
422(defconst emacs-tmp-dir (expand-file-name (format "emacs%d" (user-uid)) temporary-file-directory))
423(setq backup-directory-alist
424 `((".*" . ,emacs-tmp-dir)))
425(setq auto-save-file-name-transforms
426 `((".*" ,emacs-tmp-dir t)))
427(setq auto-save-list-file-prefix
428 emacs-tmp-dir)
429#+end_src
430
431#+name: emacs-multiple-cursors
432#+header: :tangle emacs/init.el
433#+begin_src emacs-lisp
434(use-package multiple-cursors
435 :bind
436 (("C-S-c" . mc/edit-lines)
437 ("C->" . mc/mark-next-like-this)
438 ("C-<" . mc/mark-previous-like-this)
439 ("C-c C-S-c" . mc/mark-all-like-this)
440 ("C-\"" . mc/skip-to-next-like-this)
441 ("C-:" . mc/skip-to-previous-like-this)))
442#+end_src
443
444#+name: emacs-expand-region
445#+header: :tangle emacs/init.el
446#+begin_src emacs-lisp
447(use-package expand-region
448 :bind
449 (("C-M-=" . er/expand-region)))
450#+end_src
451
452#+name: emacs-move-text
453#+header: :tangle emacs/init.el
454#+begin_src emacs-lisp
455(use-package move-text
456 :bind
457 (("M-P" . move-text-up)
458 ("M-N" . move-text-down)))
459#+end_src
460
461#+name: emacs-duplicate
462#+header: :tangle emacs/init.el
463#+begin_src emacs-lisp
464(keymap-global-set "C-'" 'duplicate-dwim)
465(setq duplicate-line-final-position 1)
466#+end_src
467
468#+name: emacs-hl-todo
469#+header: :tangle emacs/init.el
470#+begin_src emacs-lisp
471(use-package hl-todo
472 :config
473 (global-hl-todo-mode 1))
474#+end_src
475
476#+name: emacs-ligature
477#+header: :tangle emacs/init.el
478#+begin_src emacs-lisp
479(use-package ligature
480 :config
481 (ligature-set-ligatures
482 't '("-<<" "-<" "-<-" "<--" "<---" "<<-" "<-" "->" "->>" "-->" "--->" "->-" ">-" ">>-"
483 "=<<" "=<" "=<=" "<==" "<===" "<<=" "<=" "=>" "=>>" "==>" "===>" "=>=" ">=" ">>="
484 "<->" "<-->" "<--->" "<---->" "<=>" "<==>" "<===>" "<====>" "::" ":::" "__"
485 "<~~" "</" "</>" "/>" "~~>" "==" "!=" "/=" "~=" "<>" "===" "!==" "!===" "=/=" "=!="
486 "<:" ":=" "*=" "*+" "<*" "<*>" "*>" "<|" "<|>" "|>" "<." "<.>" ".>" "+*" "=*" "=:" ":>"
487 "(*" "*)" "/*" "*/" "[|" "|]" "{|" "|}" "++" "+++" "\\/" "/\\" "|-" "-|" "<!--" "<!---"))
488 (global-ligature-mode -1))
489#+end_src
490
491#+name: emacs-magit
492#+header: :tangle emacs/init.el
493#+begin_src emacs-lisp
494(use-package magit)
495#+end_src
496
497#+name: emacs-restart-emacs
498#+header: :tangle emacs/init.el
499#+begin_src emacs-lisp
500(use-package restart-emacs)
501#+end_src
502
503#+name: emacs-bluetooth
504#+header: :tangle emacs/init.el
505#+begin_src emacs-lisp
506(use-package bluetooth)
507#+end_src
508
509*** Installing fonts
5101. Wget latest =PkgTTC-Iosevka-X.X.X.zip= asset from [[https://github.com/be5invis/Iosevka/releases][iosevka releases]]
5112. ~unzip DOWNLOADED_FILE~
5123. ~mv contents ~/.local/share/fonts~
5134. ~fc-cache -fv~
514
515*** i3 setup
516~sudo apt install xorg i3 dbus-launch maim udiskie~
517Edit =~/.xinitrc=
518
519Disable access control for the current user.
520#+name: xinitrc-xhost
521#+header: :tangle .xinitrc
522#+begin_src sh
523xhost +SI:localuser:$USER
524#+end_src
525
526#+name: xinitrc-xset
527#+header: :tangle .xinitrc
528#+begin_src sh
529xset r rate 250 30
530#+end_src
531
532#+name: xinitrc-dbus-launch
533#+header: :tangle .xinitrc
534#+begin_src sh
535exec dbus-launch --exit-with-session i3
536#+end_src
537
538Edit =~/.config/i3/config=
539
540#+header: :tangle i3/config :exports none
541#+begin_src conf-space
542# Please see https://i3wm.org/docs/userguide.html for a complete reference!
543#+end_src
544#+name: i3-config-mod
545#+header: :tangle i3/config
546#+begin_src conf-space
547set $mod Mod4
548#+end_src
549
550Font for window titles. Will also be used by the bar unless a
551different font is used in the bar ={}= block below.
552#+header: :tangle i3/config :exports none
553#+begin_src conf-space
554# Font for window titles. Will also be used by the bar unless a different font
555# is used in the bar {} block below.
556#+end_src
557#+name: i3-config-font
558#+header: :tangle i3/config
559#+begin_src conf-space
560font pango:monospace 12
561#+end_src
562
563Start XDG autostart =.desktop= files using =dex=. See also [[https://wiki.archlinux.org/index.php/XDG_Autostart][XDG Autostart -
564ArchWiki]]
565#+header: :tangle i3/config :exports none
566#+begin_src conf-space
567# Start XDG autostart .desktop files using dex. See also
568# https://wiki.archlinux.org/index.php/XDG_Autostart
569#+end_src
570#+name: i3-config-dex
571#+header: :tangle i3/config
572#+begin_src conf-space
573exec --no-startup-id dex --autostart --environment i3
574#+end_src
575
576The combination of ~xss-lock~, ~nm-applet~ and ~pactl~ is a popular choice,
577so they are included here as an example. Modify as you see fit.
578
579~xss-lock~ grabs a =logind suspend inhibit lock= and will use ~i3lock~ to
580lock the screen before suspend. Use ~loginctl lock-session~ to lock your
581screen.
582
583#+header: :tangle i3/config :exports none
584#+begin_src conf-space
585# The combination of xss-lock, nm-applet and pactl is a popular choice, so
586# they are included here as an example. Modify as you see fit.
587
588# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
589# screen before suspend. Use loginctl lock-session to lock your screen.
590#+end_src
591#+name: i3-config-xss-lock
592#+header: :tangle i3/config
593#+begin_src conf-space
594exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
595#+end_src
596
597#+name: i3-config-setxkbmap
598#+header: :tangle i3/config
599#+begin_src conf-space
600exec --no-startup-id setxkbmap -layout "us,ru" -option 'grp:shifts_toggle' -option "ctrl:nocaps"
601#+end_src
602
603#+name: i3-config-udiskie
604#+header: :tangle i3/config
605#+begin_src conf-space
606exec --no-startup-id udiskie --automount
607#+end_src
608
609NetworkManager is the most popular way to manage wireless networks on
610Linux, and ~nm-applet~ is a desktop environment-independent system tray
611GUI for it.
612#+header: :tangle i3/config :exports none
613#+begin_src conf-space
614# NetworkManager is the most popular way to manage wireless networks on Linux,
615# and nm-applet is a desktop environment-independent system tray GUI for it.
616#+end_src
617#+name: i3-config-nm-applet
618#+header: :tangle i3/config
619#+begin_src conf-space
620exec --no-startup-id nm-applet
621#+end_src
622
623#+name: i3-config-emacs
624#+header: :tangle i3/config
625#+begin_src conf-space
626exec emacs --background black
627#+end_src
628
629Use ~pactl~ to adjust volume in PulseAudio.
630#+header: :tangle i3/config :exports none
631#+begin_src conf-space
632# Use pactl to adjust volume in PulseAudio.
633#+end_src
634#+name: i3-config-pulseaudio
635#+header: :tangle i3/config
636#+begin_src conf-space
637set $refresh_i3status killall -SIGUSR1 i3status
638bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
639bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
640bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
641bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
642#+end_src
643
644Change brightness.
645#+header: :tangle i3/config :exports none
646#+begin_src conf-space
647# Change brightness
648#+end_src
649#+name: i3-config-brightnessctl
650#+header: :tangle i3/config
651#+begin_src conf-space
652bindsym XF86MonBrightnessUp exec --no-startup-id brightnessctl set +5%
653bindsym XF86MonBrightnessDown exec --no-startup-id brightnessctl set 5%-
654#+end_src
655
656Use =Mouse+$mod= to drag floating windows to their wanted position.
657#+header: :tangle i3/config :exports none
658#+begin_src conf-space
659# Use Mouse+$mod to drag floating windows to their wanted position.
660#+end_src
661#+name: i3-config-floating_modifier
662#+header: :tangle i3/config
663#+begin_src conf-space
664floating_modifier $mod
665#+end_src
666
667Move tiling windows via drag & drop by left-clicking into the title
668bar, or left-clicking anywhere into the window while holding the
669floating modifier.
670#+header: :tangle i3/config :exports none
671#+begin_src conf-space
672# Move tiling windows via drag & drop by left-clicking into the title bar,
673# or left-clicking anywhere into the window while holding the floating modifier.
674#+end_src
675#+name: i3-config-tiling_drag-modifier
676#+header: :tangle i3/config
677#+begin_src conf-space
678tiling_drag modifier titlebar
679#+end_src
680
681#+name: i3-config-bindsym
682#+header: :tangle i3/config
683#+begin_src conf-space
684# start a terminal
685bindsym $mod+Return exec emacsclient -c
686
687# kill focused window
688bindsym $mod+Shift+q kill
689
690# start dmenu (a program launcher)
691bindsym $mod+d exec --no-startup-id i3-dmenu-desktop --dmenu='dmenu -i -fn 12'
692
693# change focus
694bindsym $mod+j focus left
695bindsym $mod+k focus down
696bindsym $mod+l focus up
697bindsym $mod+semicolon focus right
698
699# alternatively, you can use the cursor keys:
700bindsym $mod+Left focus left
701bindsym $mod+Down focus down
702bindsym $mod+Up focus up
703bindsym $mod+Right focus right
704
705# move focused window
706bindsym $mod+Shift+j move left
707bindsym $mod+Shift+k move down
708bindsym $mod+Shift+l move up
709bindsym $mod+Shift+semicolon move right
710
711# alternatively, you can use the cursor keys:
712bindsym $mod+Shift+Left move left
713bindsym $mod+Shift+Down move down
714bindsym $mod+Shift+Up move up
715bindsym $mod+Shift+Right move right
716
717# split in horizontal orientation
718bindsym $mod+h split h
719
720# split in vertical orientation
721bindsym $mod+v split v
722
723# enter fullscreen mode for the focused container
724bindsym $mod+f fullscreen toggle
725
726# change container layout (stacked, tabbed, toggle split)
727bindsym $mod+s layout stacking
728bindsym $mod+w layout tabbed
729bindsym $mod+e layout toggle split
730
731# toggle tiling / floating
732bindsym $mod+Shift+space floating toggle
733
734# change focus between tiling / floating windows
735bindsym $mod+space focus mode_toggle
736
737# focus the parent container
738bindsym $mod+a focus parent
739
740# focus the child container
741#bindsym $mod+d focus child
742
743# Define names for default workspaces for which we configure key bindings later on.
744# We use variables to avoid repeating the names in multiple places.
745set $ws1 "1"
746set $ws2 "2"
747set $ws3 "3"
748set $ws4 "4"
749set $ws5 "5"
750set $ws6 "6"
751set $ws7 "7"
752set $ws8 "8"
753set $ws9 "9"
754set $ws10 "10"
755
756# switch to workspace
757bindsym $mod+1 workspace number $ws1
758bindsym $mod+2 workspace number $ws2
759bindsym $mod+3 workspace number $ws3
760bindsym $mod+4 workspace number $ws4
761bindsym $mod+5 workspace number $ws5
762bindsym $mod+6 workspace number $ws6
763bindsym $mod+7 workspace number $ws7
764bindsym $mod+8 workspace number $ws8
765bindsym $mod+9 workspace number $ws9
766bindsym $mod+0 workspace number $ws10
767
768# move focused container to workspace
769bindsym $mod+Shift+1 move container to workspace number $ws1
770bindsym $mod+Shift+2 move container to workspace number $ws2
771bindsym $mod+Shift+3 move container to workspace number $ws3
772bindsym $mod+Shift+4 move container to workspace number $ws4
773bindsym $mod+Shift+5 move container to workspace number $ws5
774bindsym $mod+Shift+6 move container to workspace number $ws6
775bindsym $mod+Shift+7 move container to workspace number $ws7
776bindsym $mod+Shift+8 move container to workspace number $ws8
777bindsym $mod+Shift+9 move container to workspace number $ws9
778bindsym $mod+Shift+0 move container to workspace number $ws10
779
780# reload the configuration file
781bindsym $mod+Shift+c reload
782# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
783bindsym $mod+Shift+r restart
784# exit i3 (logs you out of your X session)
785bindsym $mod+Shift+e exec i3-nagbar -t warning -m \
786'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' \
787-B 'Yes, exit i3' 'i3-msg exit'
788
789# resize window (you can also use the mouse for that)
790mode "resize" {
791# These bindings trigger as soon as you enter the resize mode
792
793# Pressing left will shrink the window’s width.
794# Pressing right will grow the window’s width.
795# Pressing up will shrink the window’s height.
796# Pressing down will grow the window’s height.
797bindsym Left resize shrink width 10 px or 10 ppt
798bindsym Down resize grow height 10 px or 10 ppt
799bindsym Up resize shrink height 10 px or 10 ppt
800bindsym Right resize grow width 10 px or 10 ppt
801
802# back to normal: Enter or Escape or $mod+r
803bindsym Return mode "default"
804bindsym Escape mode "default"
805bindsym $mod+r mode "default"
806}
807
808bindsym $mod+r mode "resize"
809#+end_src
810
811#+name: i3-config-bar
812#+header: :tangle i3/config
813#+begin_src conf-space
814# Start i3bar to display a workspace bar (plus the system information i3status
815# finds out, if available)
816bar {
817status_command i3status
818}
819#+end_src
820
821#+name: i3-config-print-screen
822#+header: :tangle i3/config
823#+begin_src conf-space
824# Print screen
825bindsym --release Print exec "maim $HOME/multimedia/screenshots/$(date '+%y%m%d-%H%M-%S').png"
826bindsym --release Shift+Print exec "maim --hidecursor --select $HOME/multimedia/screenshots/$(date '+%y%m%d-%H%M-%S').png"
827bindsym --release Ctrl+Print exec "maim | xclip -sel clip -t image/png"
828bindsym --release Shift+Ctrl+Print exec "maim --hidecursor --select | xclip -sel clip -t image/png"
829#+end_src
830
831- ~startx~
832- =s-RET=
diff --git a/src/en/articles/index.org b/src/en/articles/index.org
new file mode 100644
index 0000000..57dd1cb
--- /dev/null
+++ b/src/en/articles/index.org
@@ -0,0 +1,3 @@
1#+title: Articles
2
3#+include: "sitemap.org" :lines "4-"
diff --git a/src/en/index.org b/src/en/index.org
new file mode 100644
index 0000000..970ac40
--- /dev/null
+++ b/src/en/index.org
@@ -0,0 +1,20 @@
1#+title: Martin Michalec
2
3- [[file:articles/][Articles]]
4- [[file:projects/][Projects]]
5- [[file:mailing-lists/][Mailing Lists]]
6- [[file:web-log/][Web Log]]
7- [[file:sitemap.org][Sitemap]]
8- [[file:./../files/][Files]]
9
10Contacts:
11- Email: [[mailto:martin@michalec.dev][martin@michalec.dev]]
12- IRC: cmmm ([[irc:irc.libera.chat:6697/cmmm][libera.chat]])
13- Telegram: [[https:t.me/c_martin_m_m][@c_martin_m_m]]
14
15#+html: <hr/>
16
17Copyright © 2024 Martin Michalec
18
19Verbatim copying and redistribution of this entire page are permitted
20provided this notice is preserved.
diff --git a/src/en/mailing-lists/index.org b/src/en/mailing-lists/index.org
new file mode 100644
index 0000000..a31b521
--- /dev/null
+++ b/src/en/mailing-lists/index.org
@@ -0,0 +1,5 @@
1#+title: Mailing List
2
3[[[https://lists.michalec.dev][www]]] | [[[http://lists.ygg.michalec.dev][ygg]]] | [[[http://lists.michalec.i2p][i2p]]] | [[[http://some.onion][tor]]]
4
5* TODO add texts...
diff --git a/src/en/projects/index.org b/src/en/projects/index.org
new file mode 100644
index 0000000..518adc8
--- /dev/null
+++ b/src/en/projects/index.org
@@ -0,0 +1,5 @@
1#+title: Projects
2
3[[[https://git.michalec.dev][www]]] | [[[http://git.ygg.michalec.dev][ygg]]] | [[[http://git.michalec.i2p][i2p]]] | [[[http://some.onion][tor]]]
4
5* TODO add texts...
diff --git a/src/en/web-log/2024-08-31-test/index.org b/src/en/web-log/2024-08-31-test/index.org
new file mode 100644
index 0000000..2ce7c4e
--- /dev/null
+++ b/src/en/web-log/2024-08-31-test/index.org
@@ -0,0 +1,16 @@
1#+title: test
2#+date: <2024-08-31>
3
4* Fusce sagittis, libero non molestie mollis
5Pellentesque dapibus suscipit ligula. Donec posuere augue in quam.
6Etiam vel tortor sodales tellus ultricies commodo. Suspendisse
7potenti. Aenean in sem ac leo mollis blandit. Donec neque quam,
8dignissim in, mollis nec, sagittis eu, wisi. Phasellus lacus. Etiam
9laoreet quam sed arcu. Phasellus at dui in ligula mollis ultricies.
10Integer placerat tristique nisl. Praesent augue. Fusce commodo.
11Vestibulum convallis, lorem a tempus semper, dui dui euismod elit,
12vitae placerat urna tortor vitae lacus. Nullam libero mauris,
13consequat quis, varius et, dictum id, arcu. Mauris mollis tincidunt
14felis. Aliquam feugiat tellus ut neque. Nulla facilisis, risus a
15rhoncus fermentum, tellus tellus lacinia purus, et dictum nunc justo
16sit amet elit.
diff --git a/src/en/web-log/index.org b/src/en/web-log/index.org
new file mode 100644
index 0000000..031ce89
--- /dev/null
+++ b/src/en/web-log/index.org
@@ -0,0 +1,3 @@
1#+TITLE: Web Log
2
3#+include: "sitemap.org" :lines "4-"
diff --git a/src/es/articles/gnu+linux-and-emacs-introduction/index.org.po b/src/es/articles/gnu+linux-and-emacs-introduction/index.org.po
new file mode 100644
index 0000000..e0c6227
--- /dev/null
+++ b/src/es/articles/gnu+linux-and-emacs-introduction/index.org.po
@@ -0,0 +1,1382 @@
1# Spanish translations for Martin\'s personal website package
2# Copyright (C) 2024 Martin
3# This file is distributed under the same license as the Martin\'s personal website package.
4# Automatically generated, 2024.
5#
6msgid ""
7msgstr ""
8"Project-Id-Version: Martin\\'s personal website master\n"
9"Report-Msgid-Bugs-To: martin@michalec.dev\n"
10"POT-Creation-Date: 2024-10-30 20:02+0300\n"
11"PO-Revision-Date: 2024-10-24 21:08+0300\n"
12"Last-Translator: Automatically generated\n"
13"Language-Team: none\n"
14"Language: es\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
18"Plural-Forms: nplurals=2; plural=(n != 1);\n"
19
20#. type: Plain text
21#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:3
22#, fuzzy, no-wrap
23#| msgid "#+title: GNU/Linux and GNU Emacs Introduction\n"
24msgid ""
25"#+title: GNU/Linux and GNU Emacs Introduction\n"
26"#+keywords: beginner gnu linux emacs\n"
27msgstr "#+title: Introducción a GNU/Linux y GNU Emacs\n"
28
29#. type: Plain text
30#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:8
31#, no-wrap
32msgid ""
33"* Installing Debian\n"
34"** Preparations\n"
35"*** Getting debian\n"
36"Download Debian [[https://www.debian.org/][installer image]]\n"
37msgstr ""
38
39#. type: Plain text
40#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:12
41#, no-wrap
42msgid ""
43"*** Creating installation medium\n"
44"On =M$= Windows, use a tool like [[https://rufus.ie/en/][Rufus]] to create a bootable USB flash\n"
45"drive with the downloaded =.iso= file\n"
46msgstr ""
47
48#. type: Plain text
49#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:15
50#, no-wrap
51msgid ""
52"*** Allocating disk space\n"
53"Either get an empty disk or shrink on of your data partitions (toms) to get a continuous region of free space which is at least around 100GB.\n"
54msgstr ""
55
56#. type: Plain text
57#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:19
58#, no-wrap
59msgid ""
60"** Installation process\n"
61"If installing on a laptop, make sure that it's fully charged and keep\n"
62"the charger plugged in.\n"
63msgstr ""
64
65#. type: Plain text
66#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:22
67#, no-wrap
68msgid ""
69"*** Booting from the installation medium\n"
70"NOTE: You might have to enable booting from USB in BIOS.\n"
71msgstr ""
72
73#. type: Plain text
74#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:24
75#, no-wrap
76msgid "Select the USB from boot menu or change boot order.\n"
77msgstr ""
78
79#. type: Plain text
80#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:27
81#, no-wrap
82msgid ""
83"*** The Debian installer\n"
84"Select the =install= option (not the =Graphical install=) in the GRUB bootloader.\n"
85msgstr ""
86
87#. type: Plain text
88#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:29
89#, no-wrap
90msgid "To navigate the menus, use arrow keys and TAB, to toggle check boxes use spacebar and to press button use the enter key.\n"
91msgstr ""
92
93#. type: Plain text
94#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:47
95#, no-wrap
96msgid ""
97"Simple guide:\n"
98"1. Select region\n"
99"2. Select localization (US)\n"
100"3. Select keyboard layout (most likely US/ISO)\n"
101"4. Select connected if you have Ethernet connection or wireless if you\n"
102" want to connect to wifi.\n"
103"5. Choose hostname.\n"
104"6. Skip domain name.\n"
105"7. Skip proxy.\n"
106"8. Select mirror in your region.\n"
107"9. Set root password.\n"
108"10. Set user's full name, username and password.\n"
109"11. Deselect all software packages except base.\n"
110"12. To dual boot with Windows select guided partitioning (free space).\n"
111"13. Select =/home= folder on a separate partition.\n"
112"14. Start the installation.\n"
113"15. Reboot and check that you can boot everything.\n"
114msgstr ""
115
116#. type: Plain text
117#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:59
118#, no-wrap
119msgid ""
120"* Setting up GNU/Linux\n"
121"** User setup\n"
122"1. Login as root\n"
123"1. Edit =/etc/apt/sources= and add =non-free contrib testing unstable=\n"
124"2. ~apt udpate~\n"
125"3. ~apt upgrade~\n"
126"4. ~apt install sudo~\n"
127"5. ~visudo~ (%wheel ALL=(ALL) NOPASSWD: ALL)\n"
128"6. ~groupadd wheel~\n"
129"7. ~usermod -aG wheel YOUR_USERNAME~\n"
130"8. ~exit~\n"
131msgstr ""
132
133#. type: Plain text
134#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:70
135#, no-wrap
136msgid ""
137"** Environment setup\n"
138"*** Folder setup\n"
139"#+begin_src sh\n"
140"cd\n"
141"rmdir Downloads Desktop ...\n"
142"mkdir downloads documents multimedia\n"
143"cd multimedia\n"
144"mkdir screenshots\n"
145"mkdir screencasts\n"
146"#+end_src\n"
147msgstr ""
148
149#. type: Plain text
150#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:73
151#, no-wrap
152msgid ""
153"*** Emacs setup\n"
154"~sudo apt install emacs git vterm-module libtd~\n"
155msgstr ""
156
157#. type: Plain text
158#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:75
159#, no-wrap
160msgid "Delete =~/.emacs.d=\n"
161msgstr ""
162
163#. type: Plain text
164#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:77
165#, no-wrap
166msgid "Edit =~/.config/emacs/init.el=\n"
167msgstr ""
168
169#. type: Plain text
170#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:83
171#, no-wrap
172msgid ""
173"#+name: emacs-server\n"
174"#+header: :tangle emacs/init.el\n"
175"#+begin_src emacs-lisp\n"
176"(server-start)\n"
177"#+end_src\n"
178msgstr ""
179
180#. type: Plain text
181#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:100
182#, no-wrap
183msgid ""
184"#+name: emacs-straight\n"
185"#+header: :tangle emacs/init.el\n"
186"#+begin_src emacs-lisp\n"
187"(defvar bootstrap-version)\n"
188"(let ((bootstrap-file\n"
189" (expand-file-name\n"
190" \"straight/repos/straight.el/bootstrap.el\" user-emacs-directory))\n"
191" (bootstrap-version 6))\n"
192" (unless (file-exists-p bootstrap-file)\n"
193" (with-current-buffer\n"
194" (url-retrieve-synchronously\n"
195" \"https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el\"\n"
196" 'silent 'inhibit-cookies)\n"
197" (goto-char (point-max))\n"
198" (eval-print-last-sexp)))\n"
199" (load bootstrap-file nil 'nomessage))\n"
200msgstr ""
201
202#. type: Plain text
203#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:105
204#, no-wrap
205msgid ""
206"(straight-use-package 'use-package)\n"
207"(setq straight-use-package-by-default t\n"
208" use-package-always-ensure t)\n"
209"#+end_src\n"
210msgstr ""
211
212#. type: Plain text
213#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:115
214#, no-wrap
215msgid ""
216"#+name: emacs-coding\n"
217"#+header: :tangle emacs/init.el\n"
218"#+begin_src emacs-lisp\n"
219"(prefer-coding-system 'utf-8)\n"
220"(set-language-environment \"UTF-8\")\n"
221"(set-default-coding-systems 'utf-8)\n"
222"(set-terminal-coding-system 'utf-8)\n"
223"(setq-default buffer-file-coding-system 'utf-8)\n"
224"#+end_src\n"
225msgstr ""
226
227#. type: Plain text
228#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:123
229#, no-wrap
230msgid ""
231"#+name: emacs-clean-look\n"
232"#+header: :tangle emacs/init.el\n"
233"#+begin_src emacs-lisp\n"
234"(menu-bar-mode -1)\n"
235"(tool-bar-mode -1)\n"
236"(scroll-bar-mode -1)\n"
237"#+end_src\n"
238msgstr ""
239
240#. type: Plain text
241#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:138
242#, no-wrap
243msgid ""
244"#+name: emacs-misc\n"
245"#+header: :tangle emacs/init.el\n"
246"#+begin_src emacs-lisp\n"
247"(setq kill-ring-max 10000)\n"
248"(repeat-mode 1)\n"
249"(auto-insert-mode 1)\n"
250"(global-hl-line-mode 1)\n"
251"(setq display-time-24hr-format t)\n"
252"(setq default-input-method \"russian-computer\")\n"
253"(load-theme 'modus-vivendi t)\n"
254"(fset 'yes-or-no-p 'y-or-n-p)\n"
255"(set-face-attribute 'default nil :font \"Iosevka\" :height 180)\n"
256"(global-subword-mode)\n"
257"#+end_src\n"
258msgstr ""
259
260#. type: Plain text
261#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:148
262#, no-wrap
263msgid ""
264"#+name: emacs-compilation\n"
265"#+header: :tangle emacs/init.el\n"
266"#+begin_src emacs-lisp\n"
267"(require 'ansi-color)\n"
268"(add-hook 'compilation-filter-hook 'ansi-color-compilation-filter)\n"
269"(add-hook 'compilation-mode-hook 'toggle-truncate-lines)\n"
270"(define-key global-map (kbd \"C-<f5>\") 'compile)\n"
271"(define-key global-map (kbd \"<f5>\") 'recompile)\n"
272"#+end_src\n"
273msgstr ""
274
275#. type: Plain text
276#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:155
277#, no-wrap
278msgid ""
279"#+name: emacs-trash\n"
280"#+header: :tangle emacs/init.el\n"
281"#+begin_src emacs-lisp\n"
282"(use-package trashed)\n"
283"(setq delete-by-moving-to-trash t)\n"
284"#+end_src\n"
285msgstr ""
286
287#. type: Plain text
288#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:163
289#, no-wrap
290msgid ""
291"#+name: emacs-undo-tree\n"
292"#+header: :tangle emacs/init.el\n"
293"#+begin_src emacs-lisp\n"
294"(use-package undo-tree\n"
295" :config\n"
296" (global-undo-tree-mode))\n"
297"#+end_src\n"
298msgstr ""
299
300#. type: Plain text
301#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:171
302#, no-wrap
303msgid ""
304"#+name: emacs-page-break-lines\n"
305"#+header: :tangle emacs/init.el\n"
306"#+begin_src emacs-lisp\n"
307"(use-package page-break-lines\n"
308" :config\n"
309" (global-page-break-lines-mode))\n"
310"#+end_src\n"
311msgstr ""
312
313#. type: Plain text
314#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:188
315#, no-wrap
316msgid ""
317"#+name: emacs-pdf-tools\n"
318"#+header: :tangle emacs/init.el\n"
319"#+begin_src emacs-lisp\n"
320"(use-package pdf-tools\n"
321" :demand t\n"
322" :hook (pdf-view-mode . pdf-view-themed-minor-mode)\n"
323" :config\n"
324" ;; Initialize the package\n"
325" (pdf-tools-install)\n"
326" ;; Associate pdf-view-mode with PDF files\n"
327" (add-to-list 'auto-mode-alist '(\"\\\\.pdf\\\\'\" . pdf-view-mode))\n"
328" ;; Enable seamless scrolling between pages\n"
329" (setq pdf-view-continuous-scroll-mode t)\n"
330" ;; Use normal Emacs keybindings for scrolling\n"
331" (setq pdf-view-continuous-scroll-keystrokes nil))\n"
332"#+end_src\n"
333msgstr ""
334
335#. type: Plain text
336#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:194
337#, no-wrap
338msgid ""
339"#+name: emacs-eglot\n"
340"#+header: :tangle emacs/init.el\n"
341"#+begin_src emacs-lisp\n"
342"(use-package eglot)\n"
343"#+end_src\n"
344msgstr ""
345
346#. type: Plain text
347#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:200
348#, no-wrap
349msgid ""
350"#+name: emacs-project\n"
351"#+header: :tangle emacs/init.el\n"
352"#+begin_src emacs-lisp\n"
353"(use-package project)\n"
354"#+end_src\n"
355msgstr ""
356
357#. type: Plain text
358#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:207
359#, no-wrap
360msgid ""
361"#+name: emacs-terminals\n"
362"#+header: :tangle emacs/init.el\n"
363"#+begin_src emacs-lisp\n"
364"(use-package vterm)\n"
365"(use-package eat)\n"
366"#+end_src\n"
367msgstr ""
368
369#. type: Plain text
370#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:215
371#, no-wrap
372msgid ""
373"#+name: emacs-telega\n"
374"#+header: :tangle emacs/init.el\n"
375"#+begin_src emacs-lisp\n"
376"(use-package telega\n"
377" :custom\n"
378" (telega-server-libs-prefix \"/usr\"))\n"
379"#+end_src\n"
380msgstr ""
381
382#. type: Plain text
383#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:221
384#, no-wrap
385msgid ""
386"#+name: emacs-emms\n"
387"#+header: :tangle emacs/init.el\n"
388"#+begin_src emacs-lisp\n"
389"(use-package emms)\n"
390"#+end_src\n"
391msgstr ""
392
393#. type: Plain text
394#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:229
395#, no-wrap
396msgid ""
397"#+name: emacs-multitran\n"
398"#+header: :tangle emacs/init.el\n"
399"#+begin_src emacs-lisp\n"
400"(use-package multitran\n"
401" :bind\n"
402" ((\"s-t\" . multitran-at-pos)))\n"
403"#+end_src\n"
404msgstr ""
405
406#. type: Plain text
407#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:237
408#, no-wrap
409msgid ""
410"#+name: emacs-savehist\n"
411"#+header: :tangle emacs/init.el\n"
412"#+begin_src emacs-lisp\n"
413"(use-package savehist\n"
414" :config\n"
415" (savehist-mode))\n"
416"#+end_src\n"
417msgstr ""
418
419#. type: Plain text
420#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:243
421#, no-wrap
422msgid ""
423"#+name: emacs-lorem-ipsum\n"
424"#+header: :tangle emacs/init.el\n"
425"#+begin_src emacs-lisp\n"
426"(use-package lorem-ipsum)\n"
427"#+end_src\n"
428msgstr ""
429
430#. type: Plain text
431#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:251
432#, no-wrap
433msgid ""
434"#+name: emacs-smartparens\n"
435"#+header: :tangle emacs/init.el\n"
436"#+begin_src emacs-lisp\n"
437"(use-package smartparens\n"
438" :init\n"
439" (smartparens-global-mode t))\n"
440"#+end_src\n"
441msgstr ""
442
443#. type: Plain text
444#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:262
445#, no-wrap
446msgid ""
447"#+name: emacs-completion\n"
448"#+header: :tangle emacs/init.el\n"
449"#+begin_src emacs-lisp\n"
450"(use-package vertico\n"
451" :init\n"
452" (vertico-mode)\n"
453" ;; (setq vertico-scroll-margin 0)\n"
454" ;; (setq vertico-count 20)\n"
455" ;; (setq vertico-resize t)\n"
456" (setq vertico-cycle t))\n"
457msgstr ""
458
459#. type: Plain text
460#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:271
461#, no-wrap
462msgid ""
463"(use-package orderless\n"
464" :init\n"
465" ;; (setq orderless-style-dispatchers '(+orderless-consult-dispatch\n"
466" ;; orderless-affix-dispatch)\n"
467" orderless-component-separator #'orderless-escapable-split-on-space)\n"
468"(setq completion-styles '(orderless basic)\n"
469" completion-category-defaults nil\n"
470" completion-category-overrides '((file (styles partial-completion)))))\n"
471msgstr ""
472
473#. type: Plain text
474#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:324
475#, no-wrap
476msgid ""
477"(use-package consult\n"
478" :bind (;; C-c bindings in `mode-specific-map'\n"
479" (\"C-c M-x\" . consult-mode-command)\n"
480" (\"C-c h\" . consult-history)\n"
481" (\"C-c k\" . consult-kmacro)\n"
482" (\"C-c m\" . consult-man)\n"
483" (\"C-c i\" . consult-info)\n"
484" ([remap Info-search] . consult-info)\n"
485" ;; C-x bindings in `ctl-x-map'\n"
486" (\"C-x M-:\" . consult-complex-command) ;; orig. repeat-complex-command\n"
487" (\"C-x b\" . consult-buffer) ;; orig. switch-to-buffer\n"
488" (\"C-x 4 b\" . consult-buffer-other-window) ;; orig. switch-to-buffer-other-window\n"
489" (\"C-x 5 b\" . consult-buffer-other-frame) ;; orig. switch-to-buffer-other-frame\n"
490" (\"C-x r b\" . consult-bookmark) ;; orig. bookmark-jump\n"
491" (\"C-x p b\" . consult-project-buffer) ;; orig. project-switch-to-buffer\n"
492" ;; Custom M-# bindings for fast register access\n"
493" (\"M-#\" . consult-register-load)\n"
494" (\"M-'\" . consult-register-store) ;; orig. abbrev-prefix-mark (unrelated)\n"
495" (\"C-M-#\" . consult-register)\n"
496" ;; Other custom bindings\n"
497" (\"M-y\" . consult-yank-pop) ;; orig. yank-pop\n"
498" ;; M-g bindings in `goto-map'\n"
499" (\"M-g e\" . consult-compile-error)\n"
500" (\"M-g f\" . consult-flymake) ;; Alternative: consult-flycheck\n"
501" (\"M-g g\" . consult-goto-line) ;; orig. goto-line\n"
502" (\"M-g M-g\" . consult-goto-line) ;; orig. goto-line\n"
503" (\"M-g o\" . consult-outline) ;; Alternative: consult-org-heading\n"
504" (\"M-g m\" . consult-mark)\n"
505" (\"M-g k\" . consult-global-mark)\n"
506" (\"M-g i\" . consult-imenu)\n"
507" (\"M-g I\" . consult-imenu-multi)\n"
508" ;; M-s bindings in `search-map'\n"
509" (\"M-s d\" . consult-find) ;; Alternative: consult-fd\n"
510" (\"M-s D\" . consult-locate)\n"
511" (\"M-s g\" . consult-grep)\n"
512" (\"M-s G\" . consult-git-grep)\n"
513" (\"M-s r\" . consult-ripgrep)\n"
514" (\"M-s l\" . consult-line)\n"
515" (\"M-s L\" . consult-line-multi)\n"
516" (\"M-s k\" . consult-keep-lines)\n"
517" (\"M-s u\" . consult-focus-lines)\n"
518" ;; Isearch integration\n"
519" (\"M-s e\" . consult-isearch-history)\n"
520" :map isearch-mode-map\n"
521" (\"M-e\" . consult-isearch-history) ;; orig. isearch-edit-string\n"
522" (\"M-s e\" . consult-isearch-history) ;; orig. isearch-edit-string\n"
523" (\"M-s l\" . consult-line) ;; needed by consult-line to detect isearch\n"
524" (\"M-s L\" . consult-line-multi) ;; needed by consult-line to detect isearch\n"
525" ;; Minibuffer history\n"
526" :map minibuffer-local-map\n"
527" (\"M-s\" . consult-history) ;; orig. next-matching-history-element\n"
528" (\"M-r\" . consult-history)) ;; orig. previous-matching-history-element\n"
529msgstr ""
530
531#. type: Plain text
532#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:334
533#, no-wrap
534msgid ""
535" ;; Enable automatic preview at point in the *Completions* buffer. This is\n"
536" ;; relevant when you use the default completion UI.\n"
537" :hook (completion-list-mode . consult-preview-at-point-mode)\n"
538" :init\n"
539" ;; Optionally configure the register formatting. This improves the register\n"
540" ;; preview for `consult-register', `consult-register-load',\n"
541" ;; `consult-register-store' and the Emacs built-ins.\n"
542" (setq register-preview-delay 0.5\n"
543" register-preview-function #'consult-register-format)\n"
544msgstr ""
545
546#. type: Plain text
547#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:338
548#, no-wrap
549msgid ""
550" ;; Optionally tweak the register preview window.\n"
551" ;; This adds thin lines, sorting and hides the mode line of the window.\n"
552" (advice-add #'register-preview :override #'consult-register-window)\n"
553msgstr ""
554
555#. type: Plain text
556#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:342
557#, no-wrap
558msgid ""
559" ;; Use Consult to select xref locations with preview\n"
560" (setq xref-show-xrefs-function #'consult-xref\n"
561" xref-show-definitions-function #'consult-xref)\n"
562msgstr ""
563
564#. type: Plain text
565#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:346
566#, no-wrap
567msgid ""
568" ;; Configure other variables and modes in the :config section,\n"
569" ;; after lazily loading the package.\n"
570" :config\n"
571msgstr ""
572
573#. type: Plain text
574#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:362
575#, no-wrap
576msgid ""
577" ;; Optionally configure preview. The default value\n"
578" ;; is 'any, such that any key triggers the preview.\n"
579" ;; (setq consult-preview-key 'any)\n"
580" ;; (setq consult-preview-key \"M-.\")\n"
581" ;; (setq consult-preview-key '(\"S-<down>\" \"S-<up>\"))\n"
582" ;; For some commands and buffer sources it is useful to configure the\n"
583" ;; :preview-key on a per-command basis using the `consult-customize' macro.\n"
584" (consult-customize\n"
585" consult-theme :preview-key '(:debounce 0.2 any)\n"
586" consult-ripgrep consult-git-grep consult-grep\n"
587" consult-bookmark consult-recent-file consult-xref\n"
588" consult--source-bookmark consult--source-file-register\n"
589" consult--source-recent-file consult--source-project-recent-file\n"
590" ;; :preview-key \"M-.\"\n"
591" :preview-key '(:debounce 0.4 any))\n"
592msgstr ""
593
594#. type: Plain text
595#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:366
596#, no-wrap
597msgid ""
598" ;; Optionally configure the narrowing key.\n"
599" ;; Both < and C-+ work reasonably well.\n"
600" (setq consult-narrow-key \"<\") ;; \"C-+\"\n"
601msgstr ""
602
603#. type: Plain text
604#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:371
605#, no-wrap
606msgid ""
607" ;; Optionally make narrowing help available in the minibuffer.\n"
608" ;; You may want to use `embark-prefix-help-command' or which-key instead.\n"
609" ;; (define-key consult-narrow-map (vconcat consult-narrow-key \"?\") #'consult-narrow-help)\n"
610" )\n"
611msgstr ""
612
613#. type: Plain text
614#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:386
615#, no-wrap
616msgid ""
617"(use-package corfu\n"
618" :custom\n"
619" (corfu-cycle t) ;; Enable cycling for `corfu-next/previous'\n"
620" (corfu-auto t) ;; Enable auto completion\n"
621" (corfu-separator ?\\s) ;; Orderless field separator\n"
622" (corfu-quit-at-boundary nil) ;; Never quit at completion boundary\n"
623" (corfu-quit-no-match nil) ;; Never quit, even if there is no match\n"
624" (corfu-preview-current nil) ;; Disable current candidate preview\n"
625" (corfu-preselect 'prompt) ;; Preselect the prompt\n"
626" (corfu-on-exact-match nil) ;; Configure handling of exact matches\n"
627" (corfu-scroll-margin 5) ;; Use scroll margin\n"
628" :init\n"
629" (global-corfu-mode))\n"
630"#+end_src\n"
631msgstr ""
632
633#. type: Plain text
634#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:396
635#, no-wrap
636msgid ""
637"#+name: emacs-dired\n"
638"#+header: :tangle emacs/init.el\n"
639"#+begin_src emacs-lisp\n"
640"(setq dired-listing-switches \"-alh\"\n"
641" dired-dwim-target t\n"
642" dired-recursive-copies 'always\n"
643" dired-recursive-deletes 'always)\n"
644"(use-package dired-single)\n"
645"#+end_src\n"
646msgstr ""
647
648#. type: Plain text
649#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:412
650#, no-wrap
651msgid ""
652"#+name: emacs-emacs\n"
653"#+header: :tangle emacs/init.el\n"
654"#+begin_src emacs-lisp\n"
655"(use-package emacs\n"
656" :init\n"
657" ;; Add prompt indicator to `completing-read-multiple'.\n"
658" ;; We display [CRM<separator>], e.g., [CRM,] if the separator is a comma.\n"
659" (defun crm-indicator (args)\n"
660" (cons (format \"[CRM%s] %s\"\n"
661" (replace-regexp-in-string\n"
662" \"\\\\`\\\\[.*?]\\\\*\\\\|\\\\[.*?]\\\\*\\\\'\" \"\"\n"
663" crm-separator)\n"
664" (car args))\n"
665" (cdr args)))\n"
666" (advice-add #'completing-read-multiple :filter-args #'crm-indicator)\n"
667msgstr ""
668
669#. type: Plain text
670#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:417
671#, no-wrap
672msgid ""
673" ;; Do not allow the cursor in the minibuffer prompt\n"
674" (setq minibuffer-prompt-properties\n"
675" '(read-only t cursor-intangible t face minibuffer-prompt))\n"
676" (add-hook 'minibuffer-setup-hook #'cursor-intangible-mode)\n"
677msgstr ""
678
679#. type: Plain text
680#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:420
681#, no-wrap
682msgid ""
683" ;; Enable recursive minibuffers\n"
684" (setq enable-recursive-minibuffers t))\n"
685msgstr ""
686
687#. type: Plain text
688#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:430
689#, no-wrap
690msgid ""
691";; Save all tempfiles in $TMPDIR/emacs$UID/\n"
692"(defconst emacs-tmp-dir (expand-file-name (format \"emacs%d\" (user-uid)) temporary-file-directory))\n"
693"(setq backup-directory-alist\n"
694" `((\".*\" . ,emacs-tmp-dir)))\n"
695"(setq auto-save-file-name-transforms\n"
696" `((\".*\" ,emacs-tmp-dir t)))\n"
697"(setq auto-save-list-file-prefix\n"
698" emacs-tmp-dir)\n"
699"#+end_src\n"
700msgstr ""
701
702#. type: Plain text
703#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:443
704#, no-wrap
705msgid ""
706"#+name: emacs-multiple-cursors\n"
707"#+header: :tangle emacs/init.el\n"
708"#+begin_src emacs-lisp\n"
709"(use-package multiple-cursors\n"
710" :bind\n"
711" ((\"C-S-c\" . mc/edit-lines)\n"
712" (\"C->\" . mc/mark-next-like-this)\n"
713" (\"C-<\" . mc/mark-previous-like-this)\n"
714" (\"C-c C-S-c\" . mc/mark-all-like-this)\n"
715" (\"C-\\\"\" . mc/skip-to-next-like-this)\n"
716" (\"C-:\" . mc/skip-to-previous-like-this)))\n"
717"#+end_src\n"
718msgstr ""
719
720#. type: Plain text
721#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:451
722#, no-wrap
723msgid ""
724"#+name: emacs-expand-region\n"
725"#+header: :tangle emacs/init.el\n"
726"#+begin_src emacs-lisp\n"
727"(use-package expand-region\n"
728" :bind\n"
729" ((\"C-M-=\" . er/expand-region)))\n"
730"#+end_src\n"
731msgstr ""
732
733#. type: Plain text
734#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:460
735#, no-wrap
736msgid ""
737"#+name: emacs-move-text\n"
738"#+header: :tangle emacs/init.el\n"
739"#+begin_src emacs-lisp\n"
740"(use-package move-text\n"
741" :bind\n"
742" ((\"M-P\" . move-text-up)\n"
743" (\"M-N\" . move-text-down)))\n"
744"#+end_src\n"
745msgstr ""
746
747#. type: Plain text
748#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:467
749#, no-wrap
750msgid ""
751"#+name: emacs-duplicate\n"
752"#+header: :tangle emacs/init.el\n"
753"#+begin_src emacs-lisp\n"
754"(keymap-global-set \"C-'\" 'duplicate-dwim)\n"
755"(setq duplicate-line-final-position 1)\n"
756"#+end_src\n"
757msgstr ""
758
759#. type: Plain text
760#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:475
761#, no-wrap
762msgid ""
763"#+name: emacs-hl-todo\n"
764"#+header: :tangle emacs/init.el\n"
765"#+begin_src emacs-lisp\n"
766"(use-package hl-todo\n"
767" :config\n"
768" (global-hl-todo-mode 1))\n"
769"#+end_src\n"
770msgstr ""
771
772#. type: Plain text
773#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:490
774#, no-wrap
775msgid ""
776"#+name: emacs-ligature\n"
777"#+header: :tangle emacs/init.el\n"
778"#+begin_src emacs-lisp\n"
779"(use-package ligature\n"
780" :config\n"
781" (ligature-set-ligatures\n"
782" 't '(\"-<<\" \"-<\" \"-<-\" \"<--\" \"<---\" \"<<-\" \"<-\" \"->\" \"->>\" \"-->\" \"--->\" \"->-\" \">-\" \">>-\"\n"
783" \"=<<\" \"=<\" \"=<=\" \"<==\" \"<===\" \"<<=\" \"<=\" \"=>\" \"=>>\" \"==>\" \"===>\" \"=>=\" \">=\" \">>=\"\n"
784" \"<->\" \"<-->\" \"<--->\" \"<---->\" \"<=>\" \"<==>\" \"<===>\" \"<====>\" \"::\" \":::\" \"__\"\n"
785" \"<~~\" \"</\" \"</>\" \"/>\" \"~~>\" \"==\" \"!=\" \"/=\" \"~=\" \"<>\" \"===\" \"!==\" \"!===\" \"=/=\" \"=!=\"\n"
786" \"<:\" \":=\" \"*=\" \"*+\" \"<*\" \"<*>\" \"*>\" \"<|\" \"<|>\" \"|>\" \"<.\" \"<.>\" \".>\" \"+*\" \"=*\" \"=:\" \":>\"\n"
787" \"(*\" \"*)\" \"/*\" \"*/\" \"[|\" \"|]\" \"{|\" \"|}\" \"++\" \"+++\" \"\\\\/\" \"/\\\\\" \"|-\" \"-|\" \"<!--\" \"<!---\"))\n"
788" (global-ligature-mode -1))\n"
789"#+end_src\n"
790msgstr ""
791
792#. type: Plain text
793#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:496
794#, no-wrap
795msgid ""
796"#+name: emacs-magit\n"
797"#+header: :tangle emacs/init.el\n"
798"#+begin_src emacs-lisp\n"
799"(use-package magit)\n"
800"#+end_src\n"
801msgstr ""
802
803#. type: Plain text
804#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:502
805#, no-wrap
806msgid ""
807"#+name: emacs-restart-emacs\n"
808"#+header: :tangle emacs/init.el\n"
809"#+begin_src emacs-lisp\n"
810"(use-package restart-emacs)\n"
811"#+end_src\n"
812msgstr ""
813
814#. type: Plain text
815#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:508
816#, no-wrap
817msgid ""
818"#+name: emacs-bluetooth\n"
819"#+header: :tangle emacs/init.el\n"
820"#+begin_src emacs-lisp\n"
821"(use-package bluetooth)\n"
822"#+end_src\n"
823msgstr ""
824
825#. type: Plain text
826#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:514
827#, no-wrap
828msgid ""
829"*** Installing fonts\n"
830"1. Wget latest =PkgTTC-Iosevka-X.X.X.zip= asset from [[https://github.com/be5invis/Iosevka/releases][iosevka releases]]\n"
831"2. ~unzip DOWNLOADED_FILE~\n"
832"3. ~mv contents ~/.local/share/fonts~\n"
833"4. ~fc-cache -fv~\n"
834msgstr ""
835
836#. type: Plain text
837#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:518
838#, no-wrap
839msgid ""
840"*** i3 setup\n"
841"~sudo apt install xorg i3 dbus-launch maim udiskie~\n"
842"Edit =~/.xinitrc=\n"
843msgstr ""
844
845#. type: Plain text
846#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:525
847#, no-wrap
848msgid ""
849"Disable access control for the current user.\n"
850"#+name: xinitrc-xhost\n"
851"#+header: :tangle .xinitrc\n"
852"#+begin_src sh\n"
853"xhost +SI:localuser:$USER\n"
854"#+end_src\n"
855msgstr ""
856
857#. type: Plain text
858#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:531
859#, no-wrap
860msgid ""
861"#+name: xinitrc-xset\n"
862"#+header: :tangle .xinitrc\n"
863"#+begin_src sh\n"
864"xset r rate 250 30\n"
865"#+end_src\n"
866msgstr ""
867
868#. type: Plain text
869#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:537
870#, no-wrap
871msgid ""
872"#+name: xinitrc-dbus-launch\n"
873"#+header: :tangle .xinitrc\n"
874"#+begin_src sh\n"
875"exec dbus-launch --exit-with-session i3\n"
876"#+end_src\n"
877msgstr ""
878
879#. type: Plain text
880#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:539
881#, no-wrap
882msgid "Edit =~/.config/i3/config=\n"
883msgstr ""
884
885#. type: Plain text
886#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:549
887#, no-wrap
888msgid ""
889"#+header: :tangle i3/config :exports none\n"
890"#+begin_src conf-space\n"
891"# Please see https://i3wm.org/docs/userguide.html for a complete reference!\n"
892"#+end_src\n"
893"#+name: i3-config-mod\n"
894"#+header: :tangle i3/config\n"
895"#+begin_src conf-space\n"
896"set $mod Mod4\n"
897"#+end_src\n"
898msgstr ""
899
900#. type: Plain text
901#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:562
902#, no-wrap
903msgid ""
904"Font for window titles. Will also be used by the bar unless a\n"
905"different font is used in the bar ={}= block below.\n"
906"#+header: :tangle i3/config :exports none\n"
907"#+begin_src conf-space\n"
908"# Font for window titles. Will also be used by the bar unless a different font\n"
909"# is used in the bar {} block below.\n"
910"#+end_src\n"
911"#+name: i3-config-font\n"
912"#+header: :tangle i3/config\n"
913"#+begin_src conf-space\n"
914"font pango:monospace 12\n"
915"#+end_src\n"
916msgstr ""
917
918#. type: Plain text
919#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:575
920#, no-wrap
921msgid ""
922"Start XDG autostart =.desktop= files using =dex=. See also [[https://wiki.archlinux.org/index.php/XDG_Autostart][XDG Autostart -\n"
923"ArchWiki]]\n"
924"#+header: :tangle i3/config :exports none\n"
925"#+begin_src conf-space\n"
926"# Start XDG autostart .desktop files using dex. See also\n"
927"# https://wiki.archlinux.org/index.php/XDG_Autostart\n"
928"#+end_src\n"
929"#+name: i3-config-dex\n"
930"#+header: :tangle i3/config\n"
931"#+begin_src conf-space\n"
932"exec --no-startup-id dex --autostart --environment i3\n"
933"#+end_src\n"
934msgstr ""
935
936#. type: Plain text
937#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:578
938#, no-wrap
939msgid ""
940"The combination of ~xss-lock~, ~nm-applet~ and ~pactl~ is a popular choice,\n"
941"so they are included here as an example. Modify as you see fit.\n"
942msgstr ""
943
944#. type: Plain text
945#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:582
946#, no-wrap
947msgid ""
948"~xss-lock~ grabs a =logind suspend inhibit lock= and will use ~i3lock~ to\n"
949"lock the screen before suspend. Use ~loginctl lock-session~ to lock your\n"
950"screen.\n"
951msgstr ""
952
953#. type: Plain text
954#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:587
955#, no-wrap
956msgid ""
957"#+header: :tangle i3/config :exports none\n"
958"#+begin_src conf-space\n"
959"# The combination of xss-lock, nm-applet and pactl is a popular choice, so\n"
960"# they are included here as an example. Modify as you see fit.\n"
961msgstr ""
962
963#. type: Plain text
964#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:596
965#, no-wrap
966msgid ""
967"# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the\n"
968"# screen before suspend. Use loginctl lock-session to lock your screen.\n"
969"#+end_src\n"
970"#+name: i3-config-xss-lock\n"
971"#+header: :tangle i3/config\n"
972"#+begin_src conf-space\n"
973"exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork\n"
974"#+end_src\n"
975msgstr ""
976
977#. type: Plain text
978#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:602
979#, no-wrap
980msgid ""
981"#+name: i3-config-setxkbmap\n"
982"#+header: :tangle i3/config\n"
983"#+begin_src conf-space\n"
984"exec --no-startup-id setxkbmap -layout \"us,ru\" -option 'grp:shifts_toggle' -option \"ctrl:nocaps\"\n"
985"#+end_src\n"
986msgstr ""
987
988#. type: Plain text
989#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:608
990#, no-wrap
991msgid ""
992"#+name: i3-config-udiskie\n"
993"#+header: :tangle i3/config\n"
994"#+begin_src conf-space\n"
995"exec --no-startup-id udiskie --automount\n"
996"#+end_src\n"
997msgstr ""
998
999#. type: Plain text
1000#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:622
1001#, no-wrap
1002msgid ""
1003"NetworkManager is the most popular way to manage wireless networks on\n"
1004"Linux, and ~nm-applet~ is a desktop environment-independent system tray\n"
1005"GUI for it.\n"
1006"#+header: :tangle i3/config :exports none\n"
1007"#+begin_src conf-space\n"
1008"# NetworkManager is the most popular way to manage wireless networks on Linux,\n"
1009"# and nm-applet is a desktop environment-independent system tray GUI for it.\n"
1010"#+end_src\n"
1011"#+name: i3-config-nm-applet\n"
1012"#+header: :tangle i3/config\n"
1013"#+begin_src conf-space\n"
1014"exec --no-startup-id nm-applet\n"
1015"#+end_src\n"
1016msgstr ""
1017
1018#. type: Plain text
1019#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:628
1020#, no-wrap
1021msgid ""
1022"#+name: i3-config-emacs\n"
1023"#+header: :tangle i3/config\n"
1024"#+begin_src conf-space\n"
1025"exec emacs --background black\n"
1026"#+end_src\n"
1027msgstr ""
1028
1029#. type: Plain text
1030#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:643
1031#, no-wrap
1032msgid ""
1033"Use ~pactl~ to adjust volume in PulseAudio.\n"
1034"#+header: :tangle i3/config :exports none\n"
1035"#+begin_src conf-space\n"
1036"# Use pactl to adjust volume in PulseAudio.\n"
1037"#+end_src\n"
1038"#+name: i3-config-pulseaudio\n"
1039"#+header: :tangle i3/config\n"
1040"#+begin_src conf-space\n"
1041"set $refresh_i3status killall -SIGUSR1 i3status\n"
1042"bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status\n"
1043"bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status\n"
1044"bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status\n"
1045"bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status\n"
1046"#+end_src\n"
1047msgstr ""
1048
1049#. type: Plain text
1050#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:655
1051#, no-wrap
1052msgid ""
1053"Change brightness.\n"
1054"#+header: :tangle i3/config :exports none\n"
1055"#+begin_src conf-space\n"
1056"# Change brightness\n"
1057"#+end_src\n"
1058"#+name: i3-config-brightnessctl\n"
1059"#+header: :tangle i3/config\n"
1060"#+begin_src conf-space\n"
1061"bindsym XF86MonBrightnessUp exec --no-startup-id brightnessctl set +5%\n"
1062"bindsym XF86MonBrightnessDown exec --no-startup-id brightnessctl set 5%-\n"
1063"#+end_src\n"
1064msgstr ""
1065
1066#. type: Plain text
1067#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:666
1068#, no-wrap
1069msgid ""
1070"Use =Mouse+$mod= to drag floating windows to their wanted position.\n"
1071"#+header: :tangle i3/config :exports none\n"
1072"#+begin_src conf-space\n"
1073"# Use Mouse+$mod to drag floating windows to their wanted position.\n"
1074"#+end_src\n"
1075"#+name: i3-config-floating_modifier\n"
1076"#+header: :tangle i3/config\n"
1077"#+begin_src conf-space\n"
1078"floating_modifier $mod\n"
1079"#+end_src\n"
1080msgstr ""
1081
1082#. type: Plain text
1083#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:680
1084#, no-wrap
1085msgid ""
1086"Move tiling windows via drag & drop by left-clicking into the title\n"
1087"bar, or left-clicking anywhere into the window while holding the\n"
1088"floating modifier.\n"
1089"#+header: :tangle i3/config :exports none\n"
1090"#+begin_src conf-space\n"
1091"# Move tiling windows via drag & drop by left-clicking into the title bar,\n"
1092"# or left-clicking anywhere into the window while holding the floating modifier.\n"
1093"#+end_src\n"
1094"#+name: i3-config-tiling_drag-modifier\n"
1095"#+header: :tangle i3/config\n"
1096"#+begin_src conf-space\n"
1097"tiling_drag modifier titlebar\n"
1098"#+end_src\n"
1099msgstr ""
1100
1101#. type: Plain text
1102#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:686
1103#, no-wrap
1104msgid ""
1105"#+name: i3-config-bindsym\n"
1106"#+header: :tangle i3/config\n"
1107"#+begin_src conf-space\n"
1108"# start a terminal\n"
1109"bindsym $mod+Return exec emacsclient -c\n"
1110msgstr ""
1111
1112#. type: Plain text
1113#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:689
1114#, no-wrap
1115msgid ""
1116"# kill focused window\n"
1117"bindsym $mod+Shift+q kill\n"
1118msgstr ""
1119
1120#. type: Plain text
1121#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:692
1122#, no-wrap
1123msgid ""
1124"# start dmenu (a program launcher)\n"
1125"bindsym $mod+d exec --no-startup-id i3-dmenu-desktop --dmenu='dmenu -i -fn 12'\n"
1126msgstr ""
1127
1128#. type: Plain text
1129#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:698
1130#, no-wrap
1131msgid ""
1132"# change focus\n"
1133"bindsym $mod+j focus left\n"
1134"bindsym $mod+k focus down\n"
1135"bindsym $mod+l focus up\n"
1136"bindsym $mod+semicolon focus right\n"
1137msgstr ""
1138
1139#. type: Plain text
1140#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:704
1141#, no-wrap
1142msgid ""
1143"# alternatively, you can use the cursor keys:\n"
1144"bindsym $mod+Left focus left\n"
1145"bindsym $mod+Down focus down\n"
1146"bindsym $mod+Up focus up\n"
1147"bindsym $mod+Right focus right\n"
1148msgstr ""
1149
1150#. type: Plain text
1151#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:710
1152#, no-wrap
1153msgid ""
1154"# move focused window\n"
1155"bindsym $mod+Shift+j move left\n"
1156"bindsym $mod+Shift+k move down\n"
1157"bindsym $mod+Shift+l move up\n"
1158"bindsym $mod+Shift+semicolon move right\n"
1159msgstr ""
1160
1161#. type: Plain text
1162#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:716
1163#, no-wrap
1164msgid ""
1165"# alternatively, you can use the cursor keys:\n"
1166"bindsym $mod+Shift+Left move left\n"
1167"bindsym $mod+Shift+Down move down\n"
1168"bindsym $mod+Shift+Up move up\n"
1169"bindsym $mod+Shift+Right move right\n"
1170msgstr ""
1171
1172#. type: Plain text
1173#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:719
1174#, no-wrap
1175msgid ""
1176"# split in horizontal orientation\n"
1177"bindsym $mod+h split h\n"
1178msgstr ""
1179
1180#. type: Plain text
1181#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:722
1182#, no-wrap
1183msgid ""
1184"# split in vertical orientation\n"
1185"bindsym $mod+v split v\n"
1186msgstr ""
1187
1188#. type: Plain text
1189#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:725
1190#, no-wrap
1191msgid ""
1192"# enter fullscreen mode for the focused container\n"
1193"bindsym $mod+f fullscreen toggle\n"
1194msgstr ""
1195
1196#. type: Plain text
1197#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:730
1198#, no-wrap
1199msgid ""
1200"# change container layout (stacked, tabbed, toggle split)\n"
1201"bindsym $mod+s layout stacking\n"
1202"bindsym $mod+w layout tabbed\n"
1203"bindsym $mod+e layout toggle split\n"
1204msgstr ""
1205
1206#. type: Plain text
1207#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:733
1208#, no-wrap
1209msgid ""
1210"# toggle tiling / floating\n"
1211"bindsym $mod+Shift+space floating toggle\n"
1212msgstr ""
1213
1214#. type: Plain text
1215#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:736
1216#, no-wrap
1217msgid ""
1218"# change focus between tiling / floating windows\n"
1219"bindsym $mod+space focus mode_toggle\n"
1220msgstr ""
1221
1222#. type: Plain text
1223#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:739
1224#, no-wrap
1225msgid ""
1226"# focus the parent container\n"
1227"bindsym $mod+a focus parent\n"
1228msgstr ""
1229
1230#. type: Plain text
1231#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:742
1232#, no-wrap
1233msgid ""
1234"# focus the child container\n"
1235"#bindsym $mod+d focus child\n"
1236msgstr ""
1237
1238#. type: Plain text
1239#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:755
1240#, no-wrap
1241msgid ""
1242"# Define names for default workspaces for which we configure key bindings later on.\n"
1243"# We use variables to avoid repeating the names in multiple places.\n"
1244"set $ws1 \"1\"\n"
1245"set $ws2 \"2\"\n"
1246"set $ws3 \"3\"\n"
1247"set $ws4 \"4\"\n"
1248"set $ws5 \"5\"\n"
1249"set $ws6 \"6\"\n"
1250"set $ws7 \"7\"\n"
1251"set $ws8 \"8\"\n"
1252"set $ws9 \"9\"\n"
1253"set $ws10 \"10\"\n"
1254msgstr ""
1255
1256#. type: Plain text
1257#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:767
1258#, no-wrap
1259msgid ""
1260"# switch to workspace\n"
1261"bindsym $mod+1 workspace number $ws1\n"
1262"bindsym $mod+2 workspace number $ws2\n"
1263"bindsym $mod+3 workspace number $ws3\n"
1264"bindsym $mod+4 workspace number $ws4\n"
1265"bindsym $mod+5 workspace number $ws5\n"
1266"bindsym $mod+6 workspace number $ws6\n"
1267"bindsym $mod+7 workspace number $ws7\n"
1268"bindsym $mod+8 workspace number $ws8\n"
1269"bindsym $mod+9 workspace number $ws9\n"
1270"bindsym $mod+0 workspace number $ws10\n"
1271msgstr ""
1272
1273#. type: Plain text
1274#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:779
1275#, no-wrap
1276msgid ""
1277"# move focused container to workspace\n"
1278"bindsym $mod+Shift+1 move container to workspace number $ws1\n"
1279"bindsym $mod+Shift+2 move container to workspace number $ws2\n"
1280"bindsym $mod+Shift+3 move container to workspace number $ws3\n"
1281"bindsym $mod+Shift+4 move container to workspace number $ws4\n"
1282"bindsym $mod+Shift+5 move container to workspace number $ws5\n"
1283"bindsym $mod+Shift+6 move container to workspace number $ws6\n"
1284"bindsym $mod+Shift+7 move container to workspace number $ws7\n"
1285"bindsym $mod+Shift+8 move container to workspace number $ws8\n"
1286"bindsym $mod+Shift+9 move container to workspace number $ws9\n"
1287"bindsym $mod+Shift+0 move container to workspace number $ws10\n"
1288msgstr ""
1289
1290#. type: Plain text
1291#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:788
1292#, no-wrap
1293msgid ""
1294"# reload the configuration file\n"
1295"bindsym $mod+Shift+c reload\n"
1296"# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)\n"
1297"bindsym $mod+Shift+r restart\n"
1298"# exit i3 (logs you out of your X session)\n"
1299"bindsym $mod+Shift+e exec i3-nagbar -t warning -m \\\n"
1300"'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' \\\n"
1301"-B 'Yes, exit i3' 'i3-msg exit'\n"
1302msgstr ""
1303
1304#. type: Plain text
1305#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:792
1306#, no-wrap
1307msgid ""
1308"# resize window (you can also use the mouse for that)\n"
1309"mode \"resize\" {\n"
1310"# These bindings trigger as soon as you enter the resize mode\n"
1311msgstr ""
1312
1313#. type: Plain text
1314#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:801
1315#, no-wrap
1316msgid ""
1317"# Pressing left will shrink the window’s width.\n"
1318"# Pressing right will grow the window’s width.\n"
1319"# Pressing up will shrink the window’s height.\n"
1320"# Pressing down will grow the window’s height.\n"
1321"bindsym Left resize shrink width 10 px or 10 ppt\n"
1322"bindsym Down resize grow height 10 px or 10 ppt\n"
1323"bindsym Up resize shrink height 10 px or 10 ppt\n"
1324"bindsym Right resize grow width 10 px or 10 ppt\n"
1325msgstr ""
1326
1327#. type: Plain text
1328#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:807
1329#, no-wrap
1330msgid ""
1331"# back to normal: Enter or Escape or $mod+r\n"
1332"bindsym Return mode \"default\"\n"
1333"bindsym Escape mode \"default\"\n"
1334"bindsym $mod+r mode \"default\"\n"
1335"}\n"
1336msgstr ""
1337
1338#. type: Plain text
1339#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:810
1340#, no-wrap
1341msgid ""
1342"bindsym $mod+r mode \"resize\"\n"
1343"#+end_src\n"
1344msgstr ""
1345
1346#. type: Plain text
1347#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:820
1348#, no-wrap
1349msgid ""
1350"#+name: i3-config-bar\n"
1351"#+header: :tangle i3/config\n"
1352"#+begin_src conf-space\n"
1353"# Start i3bar to display a workspace bar (plus the system information i3status\n"
1354"# finds out, if available)\n"
1355"bar {\n"
1356"status_command i3status\n"
1357"}\n"
1358"#+end_src\n"
1359msgstr ""
1360
1361#. type: Plain text
1362#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:830
1363#, no-wrap
1364msgid ""
1365"#+name: i3-config-print-screen\n"
1366"#+header: :tangle i3/config\n"
1367"#+begin_src conf-space\n"
1368"# Print screen\n"
1369"bindsym --release Print exec \"maim $HOME/multimedia/screenshots/$(date '+%y%m%d-%H%M-%S').png\"\n"
1370"bindsym --release Shift+Print exec \"maim --hidecursor --select $HOME/multimedia/screenshots/$(date '+%y%m%d-%H%M-%S').png\"\n"
1371"bindsym --release Ctrl+Print exec \"maim | xclip -sel clip -t image/png\"\n"
1372"bindsym --release Shift+Ctrl+Print exec \"maim --hidecursor --select | xclip -sel clip -t image/png\"\n"
1373"#+end_src\n"
1374msgstr ""
1375
1376#. type: Plain text
1377#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:832
1378#, no-wrap
1379msgid ""
1380"- ~startx~\n"
1381"- =s-RET=\n"
1382msgstr ""
diff --git a/src/es/articles/index.org.po b/src/es/articles/index.org.po
new file mode 100644
index 0000000..d5ede36
--- /dev/null
+++ b/src/es/articles/index.org.po
@@ -0,0 +1,30 @@
1# Spanish translations for Martin\'s personal website package
2# Copyright (C) 2024 Martin
3# This file is distributed under the same license as the Martin\'s personal website package.
4# Automatically generated, 2024.
5#
6msgid ""
7msgstr ""
8"Project-Id-Version: Martin\\'s personal website master\n"
9"Report-Msgid-Bugs-To: martin@michalec.dev\n"
10"POT-Creation-Date: 2024-10-24 06:12+0300\n"
11"PO-Revision-Date: 2024-10-24 06:12+0300\n"
12"Last-Translator: Automatically generated\n"
13"Language-Team: none\n"
14"Language: es\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
18"Plural-Forms: nplurals=2; plural=(n != 1);\n"
19
20#. type: Plain text
21#: src/en/articles/index.org:2
22#, no-wrap
23msgid "#+title: Articles\n"
24msgstr ""
25
26#. type: Plain text
27#: src/en/articles/index.org:3
28#, no-wrap
29msgid "#+include: \"sitemap.org\" :lines \"4-\"\n"
30msgstr ""
diff --git a/src/es/index.org.po b/src/es/index.org.po
new file mode 100644
index 0000000..fd8bf50
--- /dev/null
+++ b/src/es/index.org.po
@@ -0,0 +1,66 @@
1# Spanish translations for PACKAGE package
2# Copyright (C) 2024 Martin
3# This file is distributed under the same license as the PACKAGE package.
4# Automatically generated, 2024.
5#
6msgid ""
7msgstr ""
8"Project-Id-Version: PACKAGE master\n"
9"Report-Msgid-Bugs-To: martin@michalec.dev\n"
10"POT-Creation-Date: 2024-11-18 02:24+0300\n"
11"PO-Revision-Date: 2024-10-24 06:11+0300\n"
12"Last-Translator: Automatically generated\n"
13"Language-Team: none\n"
14"Language: es\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
18"Plural-Forms: nplurals=2; plural=(n != 1);\n"
19
20#. type: Plain text
21#: src/en/index.org:2
22#, no-wrap
23msgid "#+title: Martin Michalec\n"
24msgstr ""
25
26#. type: Plain text
27#: src/en/index.org:9
28#, no-wrap
29msgid ""
30"- [[file:articles/][Articles]]\n"
31"- [[file:projects/][Projects]]\n"
32"- [[file:mailing-lists/][Mailing Lists]]\n"
33"- [[file:web-log/][Web Log]]\n"
34"- [[file:sitemap.org][Sitemap]]\n"
35"- [[file:./../files/][Files]]\n"
36msgstr ""
37
38#. type: Plain text
39#: src/en/index.org:14
40#, no-wrap
41msgid ""
42"Contacts:\n"
43"- Email: [[mailto:martin@michalec.dev][martin@michalec.dev]]\n"
44"- IRC: cmmm ([[irc:irc.libera.chat:6697/cmmm][libera.chat]])\n"
45"- Telegram: [[https:t.me/c_martin_m_m][@c_martin_m_m]]\n"
46msgstr ""
47
48#. type: Plain text
49#: src/en/index.org:16
50#, no-wrap
51msgid "#+html: <hr/>\n"
52msgstr ""
53
54#. type: Plain text
55#: src/en/index.org:18
56#, no-wrap
57msgid "Copyright © 2024 Martin Michalec\n"
58msgstr ""
59
60#. type: Plain text
61#: src/en/index.org:20
62#, no-wrap
63msgid ""
64"Verbatim copying and redistribution of this entire page are permitted\n"
65"provided this notice is preserved.\n"
66msgstr ""
diff --git a/src/es/mailing-lists/index.org.po b/src/es/mailing-lists/index.org.po
new file mode 100644
index 0000000..0bb7347
--- /dev/null
+++ b/src/es/mailing-lists/index.org.po
@@ -0,0 +1,36 @@
1# Spanish translations for Martin\'s personal website package
2# Copyright (C) 2024 Martin
3# This file is distributed under the same license as the Martin\'s personal website package.
4# Automatically generated, 2024.
5#
6msgid ""
7msgstr ""
8"Project-Id-Version: Martin\\'s personal website master\n"
9"Report-Msgid-Bugs-To: martin@michalec.dev\n"
10"POT-Creation-Date: 2024-11-18 02:20+0300\n"
11"PO-Revision-Date: 2024-11-18 02:20+0300\n"
12"Last-Translator: Automatically generated\n"
13"Language-Team: none\n"
14"Language: es\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
18"Plural-Forms: nplurals=2; plural=(n != 1);\n"
19
20#. type: Plain text
21#: src/en/projects/index.org:5 src/en/mailing-list/index.org:5
22#, no-wrap
23msgid "* TODO add texts...\n"
24msgstr ""
25
26#. type: Plain text
27#: src/en/mailing-list/index.org:2
28#, no-wrap
29msgid "#+title: Mailing List\n"
30msgstr ""
31
32#. type: Plain text
33#: src/en/mailing-list/index.org:4
34#, no-wrap
35msgid "[[[https://lists.michalec.dev][www]]] | [[[http://lists.ygg.michalec.dev][ygg]]] | [[[http://lists.michalec.i2p][i2p]]] | [[[http://some.onion][tor]]]\n"
36msgstr ""
diff --git a/src/es/projects/index.org.po b/src/es/projects/index.org.po
new file mode 100644
index 0000000..b570f6e
--- /dev/null
+++ b/src/es/projects/index.org.po
@@ -0,0 +1,36 @@
1# Spanish translations for Martin\'s personal website package
2# Copyright (C) 2024 Martin
3# This file is distributed under the same license as the Martin\'s personal website package.
4# Automatically generated, 2024.
5#
6msgid ""
7msgstr ""
8"Project-Id-Version: Martin\\'s personal website master\n"
9"Report-Msgid-Bugs-To: martin@michalec.dev\n"
10"POT-Creation-Date: 2024-11-18 02:20+0300\n"
11"PO-Revision-Date: 2024-11-18 02:20+0300\n"
12"Last-Translator: Automatically generated\n"
13"Language-Team: none\n"
14"Language: es\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
18"Plural-Forms: nplurals=2; plural=(n != 1);\n"
19
20#. type: Plain text
21#: src/en/projects/index.org:2
22#, no-wrap
23msgid "#+title: Projects\n"
24msgstr ""
25
26#. type: Plain text
27#: src/en/projects/index.org:4
28#, no-wrap
29msgid "[[[https://git.michalec.dev][www]]] | [[[http://git.ygg.michalec.dev][ygg]]] | [[[http://git.michalec.i2p][i2p]]] | [[[http://some.onion][tor]]]\n"
30msgstr ""
31
32#. type: Plain text
33#: src/en/projects/index.org:5 src/en/mailing-list/index.org:5
34#, no-wrap
35msgid "* TODO add texts...\n"
36msgstr ""
diff --git a/src/es/web-log/2024-08-31-test/index.org.po b/src/es/web-log/2024-08-31-test/index.org.po
new file mode 100644
index 0000000..dd4b500
--- /dev/null
+++ b/src/es/web-log/2024-08-31-test/index.org.po
@@ -0,0 +1,45 @@
1# Spanish translations for Martin\'s personal website package
2# Copyright (C) 2024 Martin
3# This file is distributed under the same license as the Martin\'s personal website package.
4# Automatically generated, 2024.
5#
6msgid ""
7msgstr ""
8"Project-Id-Version: Martin\\'s personal website master\n"
9"Report-Msgid-Bugs-To: martin@michalec.dev\n"
10"POT-Creation-Date: 2024-10-24 07:50+0300\n"
11"PO-Revision-Date: 2024-10-24 07:50+0300\n"
12"Last-Translator: Automatically generated\n"
13"Language-Team: none\n"
14"Language: es\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
18"Plural-Forms: nplurals=2; plural=(n != 1);\n"
19
20#. type: Plain text
21#: src/en/web-log/2024-08-31-test/index.org:3
22#, no-wrap
23msgid ""
24"#+title: test\n"
25"#+date: <2024-08-31>\n"
26msgstr ""
27
28#. type: Plain text
29#: src/en/web-log/2024-08-31-test/index.org:16
30#, no-wrap
31msgid ""
32"* Fusce sagittis, libero non molestie mollis\n"
33"Pellentesque dapibus suscipit ligula. Donec posuere augue in quam.\n"
34"Etiam vel tortor sodales tellus ultricies commodo. Suspendisse\n"
35"potenti. Aenean in sem ac leo mollis blandit. Donec neque quam,\n"
36"dignissim in, mollis nec, sagittis eu, wisi. Phasellus lacus. Etiam\n"
37"laoreet quam sed arcu. Phasellus at dui in ligula mollis ultricies.\n"
38"Integer placerat tristique nisl. Praesent augue. Fusce commodo.\n"
39"Vestibulum convallis, lorem a tempus semper, dui dui euismod elit,\n"
40"vitae placerat urna tortor vitae lacus. Nullam libero mauris,\n"
41"consequat quis, varius et, dictum id, arcu. Mauris mollis tincidunt\n"
42"felis. Aliquam feugiat tellus ut neque. Nulla facilisis, risus a\n"
43"rhoncus fermentum, tellus tellus lacinia purus, et dictum nunc justo\n"
44"sit amet elit.\n"
45msgstr ""
diff --git a/src/es/web-log/index.org.po b/src/es/web-log/index.org.po
new file mode 100644
index 0000000..b7885ab
--- /dev/null
+++ b/src/es/web-log/index.org.po
@@ -0,0 +1,30 @@
1# Spanish translations for Martin\'s personal website package
2# Copyright (C) 2024 Martin
3# This file is distributed under the same license as the Martin\'s personal website package.
4# Automatically generated, 2024.
5#
6msgid ""
7msgstr ""
8"Project-Id-Version: Martin\\'s personal website master\n"
9"Report-Msgid-Bugs-To: martin@michalec.dev\n"
10"POT-Creation-Date: 2024-10-24 07:50+0300\n"
11"PO-Revision-Date: 2024-10-24 07:50+0300\n"
12"Last-Translator: Automatically generated\n"
13"Language-Team: none\n"
14"Language: es\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
18"Plural-Forms: nplurals=2; plural=(n != 1);\n"
19
20#. type: Plain text
21#: src/en/articles/index.org:3 src/en/web-log/index.org:3
22#, no-wrap
23msgid "#+include: \"sitemap.org\" :lines \"4-\"\n"
24msgstr ""
25
26#. type: Plain text
27#: src/en/web-log/index.org:2
28#, no-wrap
29msgid "#+TITLE: Web Log\n"
30msgstr ""
diff --git a/src/fonts/aporetic-sans-mono-normalbolditalic.woff2 b/src/fonts/aporetic-sans-mono-normalbolditalic.woff2
new file mode 100644
index 0000000..ca36e92
--- /dev/null
+++ b/src/fonts/aporetic-sans-mono-normalbolditalic.woff2
Binary files differ
diff --git a/src/fonts/aporetic-sans-mono-normalboldupright.woff2 b/src/fonts/aporetic-sans-mono-normalboldupright.woff2
new file mode 100644
index 0000000..cc2a6aa
--- /dev/null
+++ b/src/fonts/aporetic-sans-mono-normalboldupright.woff2
Binary files differ
diff --git a/src/fonts/aporetic-sans-mono-normalregularitalic.woff2 b/src/fonts/aporetic-sans-mono-normalregularitalic.woff2
new file mode 100644
index 0000000..94e9952
--- /dev/null
+++ b/src/fonts/aporetic-sans-mono-normalregularitalic.woff2
Binary files differ
diff --git a/src/fonts/aporetic-sans-mono-normalregularupright.woff2 b/src/fonts/aporetic-sans-mono-normalregularupright.woff2
new file mode 100644
index 0000000..99a555a
--- /dev/null
+++ b/src/fonts/aporetic-sans-mono-normalregularupright.woff2
Binary files differ
diff --git a/src/fonts/aporetic-sans-normalbolditalic.woff2 b/src/fonts/aporetic-sans-normalbolditalic.woff2
new file mode 100644
index 0000000..d08c5a7
--- /dev/null
+++ b/src/fonts/aporetic-sans-normalbolditalic.woff2
Binary files differ
diff --git a/src/fonts/aporetic-sans-normalboldupright.woff2 b/src/fonts/aporetic-sans-normalboldupright.woff2
new file mode 100644
index 0000000..35fd626
--- /dev/null
+++ b/src/fonts/aporetic-sans-normalboldupright.woff2
Binary files differ
diff --git a/src/fonts/aporetic-sans-normalregularitalic.woff2 b/src/fonts/aporetic-sans-normalregularitalic.woff2
new file mode 100644
index 0000000..edcb1ac
--- /dev/null
+++ b/src/fonts/aporetic-sans-normalregularitalic.woff2
Binary files differ
diff --git a/src/fonts/aporetic-sans-normalregularupright.woff2 b/src/fonts/aporetic-sans-normalregularupright.woff2
new file mode 100644
index 0000000..000f165
--- /dev/null
+++ b/src/fonts/aporetic-sans-normalregularupright.woff2
Binary files differ
diff --git a/src/fonts/aporetic-serif-mono-normalbolditalic.woff2 b/src/fonts/aporetic-serif-mono-normalbolditalic.woff2
new file mode 100644
index 0000000..b863a77
--- /dev/null
+++ b/src/fonts/aporetic-serif-mono-normalbolditalic.woff2
Binary files differ
diff --git a/src/fonts/aporetic-serif-mono-normalboldupright.woff2 b/src/fonts/aporetic-serif-mono-normalboldupright.woff2
new file mode 100644
index 0000000..b454dba
--- /dev/null
+++ b/src/fonts/aporetic-serif-mono-normalboldupright.woff2
Binary files differ
diff --git a/src/fonts/aporetic-serif-mono-normalregularitalic.woff2 b/src/fonts/aporetic-serif-mono-normalregularitalic.woff2
new file mode 100644
index 0000000..454034c
--- /dev/null
+++ b/src/fonts/aporetic-serif-mono-normalregularitalic.woff2
Binary files differ
diff --git a/src/fonts/aporetic-serif-mono-normalregularupright.woff2 b/src/fonts/aporetic-serif-mono-normalregularupright.woff2
new file mode 100644
index 0000000..8ef547e
--- /dev/null
+++ b/src/fonts/aporetic-serif-mono-normalregularupright.woff2
Binary files differ
diff --git a/src/fonts/aporetic-serif-normalbolditalic.woff2 b/src/fonts/aporetic-serif-normalbolditalic.woff2
new file mode 100644
index 0000000..938fae1
--- /dev/null
+++ b/src/fonts/aporetic-serif-normalbolditalic.woff2
Binary files differ
diff --git a/src/fonts/aporetic-serif-normalboldupright.woff2 b/src/fonts/aporetic-serif-normalboldupright.woff2
new file mode 100644
index 0000000..4a509bc
--- /dev/null
+++ b/src/fonts/aporetic-serif-normalboldupright.woff2
Binary files differ
diff --git a/src/fonts/aporetic-serif-normalregularitalic.woff2 b/src/fonts/aporetic-serif-normalregularitalic.woff2
new file mode 100644
index 0000000..249ed95
--- /dev/null
+++ b/src/fonts/aporetic-serif-normalregularitalic.woff2
Binary files differ
diff --git a/src/fonts/aporetic-serif-normalregularupright.woff2 b/src/fonts/aporetic-serif-normalregularupright.woff2
new file mode 100644
index 0000000..0129211
--- /dev/null
+++ b/src/fonts/aporetic-serif-normalregularupright.woff2
Binary files differ
diff --git a/src/ru/articles/gnu+linux-and-emacs-introduction/index.org.po b/src/ru/articles/gnu+linux-and-emacs-introduction/index.org.po
new file mode 100644
index 0000000..fe7ba44
--- /dev/null
+++ b/src/ru/articles/gnu+linux-and-emacs-introduction/index.org.po
@@ -0,0 +1,1382 @@
1# Russian translations for Martin\'s personal website package
2# Copyright (C) 2024 Martin
3# This file is distributed under the same license as the Martin\'s personal website package.
4# Automatically generated, 2024.
5#
6msgid ""
7msgstr ""
8"Project-Id-Version: Martin\\'s personal website master\n"
9"Report-Msgid-Bugs-To: martin@michalec.dev\n"
10"POT-Creation-Date: 2024-10-30 20:02+0300\n"
11"PO-Revision-Date: 2024-10-24 06:12+0300\n"
12"Last-Translator: Automatically generated\n"
13"Language-Team: none\n"
14"Language: ru\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
18"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
19"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
20
21#. type: Plain text
22#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:3
23#, no-wrap
24msgid ""
25"#+title: GNU/Linux and GNU Emacs Introduction\n"
26"#+keywords: beginner gnu linux emacs\n"
27msgstr ""
28
29#. type: Plain text
30#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:8
31#, no-wrap
32msgid ""
33"* Installing Debian\n"
34"** Preparations\n"
35"*** Getting debian\n"
36"Download Debian [[https://www.debian.org/][installer image]]\n"
37msgstr ""
38
39#. type: Plain text
40#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:12
41#, no-wrap
42msgid ""
43"*** Creating installation medium\n"
44"On =M$= Windows, use a tool like [[https://rufus.ie/en/][Rufus]] to create a bootable USB flash\n"
45"drive with the downloaded =.iso= file\n"
46msgstr ""
47
48#. type: Plain text
49#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:15
50#, no-wrap
51msgid ""
52"*** Allocating disk space\n"
53"Either get an empty disk or shrink on of your data partitions (toms) to get a continuous region of free space which is at least around 100GB.\n"
54msgstr ""
55
56#. type: Plain text
57#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:19
58#, no-wrap
59msgid ""
60"** Installation process\n"
61"If installing on a laptop, make sure that it's fully charged and keep\n"
62"the charger plugged in.\n"
63msgstr ""
64
65#. type: Plain text
66#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:22
67#, no-wrap
68msgid ""
69"*** Booting from the installation medium\n"
70"NOTE: You might have to enable booting from USB in BIOS.\n"
71msgstr ""
72
73#. type: Plain text
74#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:24
75#, no-wrap
76msgid "Select the USB from boot menu or change boot order.\n"
77msgstr ""
78
79#. type: Plain text
80#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:27
81#, no-wrap
82msgid ""
83"*** The Debian installer\n"
84"Select the =install= option (not the =Graphical install=) in the GRUB bootloader.\n"
85msgstr ""
86
87#. type: Plain text
88#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:29
89#, no-wrap
90msgid "To navigate the menus, use arrow keys and TAB, to toggle check boxes use spacebar and to press button use the enter key.\n"
91msgstr ""
92
93#. type: Plain text
94#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:47
95#, no-wrap
96msgid ""
97"Simple guide:\n"
98"1. Select region\n"
99"2. Select localization (US)\n"
100"3. Select keyboard layout (most likely US/ISO)\n"
101"4. Select connected if you have Ethernet connection or wireless if you\n"
102" want to connect to wifi.\n"
103"5. Choose hostname.\n"
104"6. Skip domain name.\n"
105"7. Skip proxy.\n"
106"8. Select mirror in your region.\n"
107"9. Set root password.\n"
108"10. Set user's full name, username and password.\n"
109"11. Deselect all software packages except base.\n"
110"12. To dual boot with Windows select guided partitioning (free space).\n"
111"13. Select =/home= folder on a separate partition.\n"
112"14. Start the installation.\n"
113"15. Reboot and check that you can boot everything.\n"
114msgstr ""
115
116#. type: Plain text
117#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:59
118#, no-wrap
119msgid ""
120"* Setting up GNU/Linux\n"
121"** User setup\n"
122"1. Login as root\n"
123"1. Edit =/etc/apt/sources= and add =non-free contrib testing unstable=\n"
124"2. ~apt udpate~\n"
125"3. ~apt upgrade~\n"
126"4. ~apt install sudo~\n"
127"5. ~visudo~ (%wheel ALL=(ALL) NOPASSWD: ALL)\n"
128"6. ~groupadd wheel~\n"
129"7. ~usermod -aG wheel YOUR_USERNAME~\n"
130"8. ~exit~\n"
131msgstr ""
132
133#. type: Plain text
134#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:70
135#, no-wrap
136msgid ""
137"** Environment setup\n"
138"*** Folder setup\n"
139"#+begin_src sh\n"
140"cd\n"
141"rmdir Downloads Desktop ...\n"
142"mkdir downloads documents multimedia\n"
143"cd multimedia\n"
144"mkdir screenshots\n"
145"mkdir screencasts\n"
146"#+end_src\n"
147msgstr ""
148
149#. type: Plain text
150#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:73
151#, no-wrap
152msgid ""
153"*** Emacs setup\n"
154"~sudo apt install emacs git vterm-module libtd~\n"
155msgstr ""
156
157#. type: Plain text
158#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:75
159#, no-wrap
160msgid "Delete =~/.emacs.d=\n"
161msgstr ""
162
163#. type: Plain text
164#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:77
165#, no-wrap
166msgid "Edit =~/.config/emacs/init.el=\n"
167msgstr ""
168
169#. type: Plain text
170#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:83
171#, no-wrap
172msgid ""
173"#+name: emacs-server\n"
174"#+header: :tangle emacs/init.el\n"
175"#+begin_src emacs-lisp\n"
176"(server-start)\n"
177"#+end_src\n"
178msgstr ""
179
180#. type: Plain text
181#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:100
182#, no-wrap
183msgid ""
184"#+name: emacs-straight\n"
185"#+header: :tangle emacs/init.el\n"
186"#+begin_src emacs-lisp\n"
187"(defvar bootstrap-version)\n"
188"(let ((bootstrap-file\n"
189" (expand-file-name\n"
190" \"straight/repos/straight.el/bootstrap.el\" user-emacs-directory))\n"
191" (bootstrap-version 6))\n"
192" (unless (file-exists-p bootstrap-file)\n"
193" (with-current-buffer\n"
194" (url-retrieve-synchronously\n"
195" \"https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el\"\n"
196" 'silent 'inhibit-cookies)\n"
197" (goto-char (point-max))\n"
198" (eval-print-last-sexp)))\n"
199" (load bootstrap-file nil 'nomessage))\n"
200msgstr ""
201
202#. type: Plain text
203#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:105
204#, no-wrap
205msgid ""
206"(straight-use-package 'use-package)\n"
207"(setq straight-use-package-by-default t\n"
208" use-package-always-ensure t)\n"
209"#+end_src\n"
210msgstr ""
211
212#. type: Plain text
213#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:115
214#, no-wrap
215msgid ""
216"#+name: emacs-coding\n"
217"#+header: :tangle emacs/init.el\n"
218"#+begin_src emacs-lisp\n"
219"(prefer-coding-system 'utf-8)\n"
220"(set-language-environment \"UTF-8\")\n"
221"(set-default-coding-systems 'utf-8)\n"
222"(set-terminal-coding-system 'utf-8)\n"
223"(setq-default buffer-file-coding-system 'utf-8)\n"
224"#+end_src\n"
225msgstr ""
226
227#. type: Plain text
228#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:123
229#, no-wrap
230msgid ""
231"#+name: emacs-clean-look\n"
232"#+header: :tangle emacs/init.el\n"
233"#+begin_src emacs-lisp\n"
234"(menu-bar-mode -1)\n"
235"(tool-bar-mode -1)\n"
236"(scroll-bar-mode -1)\n"
237"#+end_src\n"
238msgstr ""
239
240#. type: Plain text
241#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:138
242#, no-wrap
243msgid ""
244"#+name: emacs-misc\n"
245"#+header: :tangle emacs/init.el\n"
246"#+begin_src emacs-lisp\n"
247"(setq kill-ring-max 10000)\n"
248"(repeat-mode 1)\n"
249"(auto-insert-mode 1)\n"
250"(global-hl-line-mode 1)\n"
251"(setq display-time-24hr-format t)\n"
252"(setq default-input-method \"russian-computer\")\n"
253"(load-theme 'modus-vivendi t)\n"
254"(fset 'yes-or-no-p 'y-or-n-p)\n"
255"(set-face-attribute 'default nil :font \"Iosevka\" :height 180)\n"
256"(global-subword-mode)\n"
257"#+end_src\n"
258msgstr ""
259
260#. type: Plain text
261#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:148
262#, no-wrap
263msgid ""
264"#+name: emacs-compilation\n"
265"#+header: :tangle emacs/init.el\n"
266"#+begin_src emacs-lisp\n"
267"(require 'ansi-color)\n"
268"(add-hook 'compilation-filter-hook 'ansi-color-compilation-filter)\n"
269"(add-hook 'compilation-mode-hook 'toggle-truncate-lines)\n"
270"(define-key global-map (kbd \"C-<f5>\") 'compile)\n"
271"(define-key global-map (kbd \"<f5>\") 'recompile)\n"
272"#+end_src\n"
273msgstr ""
274
275#. type: Plain text
276#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:155
277#, no-wrap
278msgid ""
279"#+name: emacs-trash\n"
280"#+header: :tangle emacs/init.el\n"
281"#+begin_src emacs-lisp\n"
282"(use-package trashed)\n"
283"(setq delete-by-moving-to-trash t)\n"
284"#+end_src\n"
285msgstr ""
286
287#. type: Plain text
288#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:163
289#, no-wrap
290msgid ""
291"#+name: emacs-undo-tree\n"
292"#+header: :tangle emacs/init.el\n"
293"#+begin_src emacs-lisp\n"
294"(use-package undo-tree\n"
295" :config\n"
296" (global-undo-tree-mode))\n"
297"#+end_src\n"
298msgstr ""
299
300#. type: Plain text
301#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:171
302#, no-wrap
303msgid ""
304"#+name: emacs-page-break-lines\n"
305"#+header: :tangle emacs/init.el\n"
306"#+begin_src emacs-lisp\n"
307"(use-package page-break-lines\n"
308" :config\n"
309" (global-page-break-lines-mode))\n"
310"#+end_src\n"
311msgstr ""
312
313#. type: Plain text
314#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:188
315#, no-wrap
316msgid ""
317"#+name: emacs-pdf-tools\n"
318"#+header: :tangle emacs/init.el\n"
319"#+begin_src emacs-lisp\n"
320"(use-package pdf-tools\n"
321" :demand t\n"
322" :hook (pdf-view-mode . pdf-view-themed-minor-mode)\n"
323" :config\n"
324" ;; Initialize the package\n"
325" (pdf-tools-install)\n"
326" ;; Associate pdf-view-mode with PDF files\n"
327" (add-to-list 'auto-mode-alist '(\"\\\\.pdf\\\\'\" . pdf-view-mode))\n"
328" ;; Enable seamless scrolling between pages\n"
329" (setq pdf-view-continuous-scroll-mode t)\n"
330" ;; Use normal Emacs keybindings for scrolling\n"
331" (setq pdf-view-continuous-scroll-keystrokes nil))\n"
332"#+end_src\n"
333msgstr ""
334
335#. type: Plain text
336#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:194
337#, no-wrap
338msgid ""
339"#+name: emacs-eglot\n"
340"#+header: :tangle emacs/init.el\n"
341"#+begin_src emacs-lisp\n"
342"(use-package eglot)\n"
343"#+end_src\n"
344msgstr ""
345
346#. type: Plain text
347#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:200
348#, no-wrap
349msgid ""
350"#+name: emacs-project\n"
351"#+header: :tangle emacs/init.el\n"
352"#+begin_src emacs-lisp\n"
353"(use-package project)\n"
354"#+end_src\n"
355msgstr ""
356
357#. type: Plain text
358#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:207
359#, no-wrap
360msgid ""
361"#+name: emacs-terminals\n"
362"#+header: :tangle emacs/init.el\n"
363"#+begin_src emacs-lisp\n"
364"(use-package vterm)\n"
365"(use-package eat)\n"
366"#+end_src\n"
367msgstr ""
368
369#. type: Plain text
370#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:215
371#, no-wrap
372msgid ""
373"#+name: emacs-telega\n"
374"#+header: :tangle emacs/init.el\n"
375"#+begin_src emacs-lisp\n"
376"(use-package telega\n"
377" :custom\n"
378" (telega-server-libs-prefix \"/usr\"))\n"
379"#+end_src\n"
380msgstr ""
381
382#. type: Plain text
383#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:221
384#, no-wrap
385msgid ""
386"#+name: emacs-emms\n"
387"#+header: :tangle emacs/init.el\n"
388"#+begin_src emacs-lisp\n"
389"(use-package emms)\n"
390"#+end_src\n"
391msgstr ""
392
393#. type: Plain text
394#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:229
395#, no-wrap
396msgid ""
397"#+name: emacs-multitran\n"
398"#+header: :tangle emacs/init.el\n"
399"#+begin_src emacs-lisp\n"
400"(use-package multitran\n"
401" :bind\n"
402" ((\"s-t\" . multitran-at-pos)))\n"
403"#+end_src\n"
404msgstr ""
405
406#. type: Plain text
407#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:237
408#, no-wrap
409msgid ""
410"#+name: emacs-savehist\n"
411"#+header: :tangle emacs/init.el\n"
412"#+begin_src emacs-lisp\n"
413"(use-package savehist\n"
414" :config\n"
415" (savehist-mode))\n"
416"#+end_src\n"
417msgstr ""
418
419#. type: Plain text
420#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:243
421#, no-wrap
422msgid ""
423"#+name: emacs-lorem-ipsum\n"
424"#+header: :tangle emacs/init.el\n"
425"#+begin_src emacs-lisp\n"
426"(use-package lorem-ipsum)\n"
427"#+end_src\n"
428msgstr ""
429
430#. type: Plain text
431#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:251
432#, no-wrap
433msgid ""
434"#+name: emacs-smartparens\n"
435"#+header: :tangle emacs/init.el\n"
436"#+begin_src emacs-lisp\n"
437"(use-package smartparens\n"
438" :init\n"
439" (smartparens-global-mode t))\n"
440"#+end_src\n"
441msgstr ""
442
443#. type: Plain text
444#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:262
445#, no-wrap
446msgid ""
447"#+name: emacs-completion\n"
448"#+header: :tangle emacs/init.el\n"
449"#+begin_src emacs-lisp\n"
450"(use-package vertico\n"
451" :init\n"
452" (vertico-mode)\n"
453" ;; (setq vertico-scroll-margin 0)\n"
454" ;; (setq vertico-count 20)\n"
455" ;; (setq vertico-resize t)\n"
456" (setq vertico-cycle t))\n"
457msgstr ""
458
459#. type: Plain text
460#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:271
461#, no-wrap
462msgid ""
463"(use-package orderless\n"
464" :init\n"
465" ;; (setq orderless-style-dispatchers '(+orderless-consult-dispatch\n"
466" ;; orderless-affix-dispatch)\n"
467" orderless-component-separator #'orderless-escapable-split-on-space)\n"
468"(setq completion-styles '(orderless basic)\n"
469" completion-category-defaults nil\n"
470" completion-category-overrides '((file (styles partial-completion)))))\n"
471msgstr ""
472
473#. type: Plain text
474#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:324
475#, no-wrap
476msgid ""
477"(use-package consult\n"
478" :bind (;; C-c bindings in `mode-specific-map'\n"
479" (\"C-c M-x\" . consult-mode-command)\n"
480" (\"C-c h\" . consult-history)\n"
481" (\"C-c k\" . consult-kmacro)\n"
482" (\"C-c m\" . consult-man)\n"
483" (\"C-c i\" . consult-info)\n"
484" ([remap Info-search] . consult-info)\n"
485" ;; C-x bindings in `ctl-x-map'\n"
486" (\"C-x M-:\" . consult-complex-command) ;; orig. repeat-complex-command\n"
487" (\"C-x b\" . consult-buffer) ;; orig. switch-to-buffer\n"
488" (\"C-x 4 b\" . consult-buffer-other-window) ;; orig. switch-to-buffer-other-window\n"
489" (\"C-x 5 b\" . consult-buffer-other-frame) ;; orig. switch-to-buffer-other-frame\n"
490" (\"C-x r b\" . consult-bookmark) ;; orig. bookmark-jump\n"
491" (\"C-x p b\" . consult-project-buffer) ;; orig. project-switch-to-buffer\n"
492" ;; Custom M-# bindings for fast register access\n"
493" (\"M-#\" . consult-register-load)\n"
494" (\"M-'\" . consult-register-store) ;; orig. abbrev-prefix-mark (unrelated)\n"
495" (\"C-M-#\" . consult-register)\n"
496" ;; Other custom bindings\n"
497" (\"M-y\" . consult-yank-pop) ;; orig. yank-pop\n"
498" ;; M-g bindings in `goto-map'\n"
499" (\"M-g e\" . consult-compile-error)\n"
500" (\"M-g f\" . consult-flymake) ;; Alternative: consult-flycheck\n"
501" (\"M-g g\" . consult-goto-line) ;; orig. goto-line\n"
502" (\"M-g M-g\" . consult-goto-line) ;; orig. goto-line\n"
503" (\"M-g o\" . consult-outline) ;; Alternative: consult-org-heading\n"
504" (\"M-g m\" . consult-mark)\n"
505" (\"M-g k\" . consult-global-mark)\n"
506" (\"M-g i\" . consult-imenu)\n"
507" (\"M-g I\" . consult-imenu-multi)\n"
508" ;; M-s bindings in `search-map'\n"
509" (\"M-s d\" . consult-find) ;; Alternative: consult-fd\n"
510" (\"M-s D\" . consult-locate)\n"
511" (\"M-s g\" . consult-grep)\n"
512" (\"M-s G\" . consult-git-grep)\n"
513" (\"M-s r\" . consult-ripgrep)\n"
514" (\"M-s l\" . consult-line)\n"
515" (\"M-s L\" . consult-line-multi)\n"
516" (\"M-s k\" . consult-keep-lines)\n"
517" (\"M-s u\" . consult-focus-lines)\n"
518" ;; Isearch integration\n"
519" (\"M-s e\" . consult-isearch-history)\n"
520" :map isearch-mode-map\n"
521" (\"M-e\" . consult-isearch-history) ;; orig. isearch-edit-string\n"
522" (\"M-s e\" . consult-isearch-history) ;; orig. isearch-edit-string\n"
523" (\"M-s l\" . consult-line) ;; needed by consult-line to detect isearch\n"
524" (\"M-s L\" . consult-line-multi) ;; needed by consult-line to detect isearch\n"
525" ;; Minibuffer history\n"
526" :map minibuffer-local-map\n"
527" (\"M-s\" . consult-history) ;; orig. next-matching-history-element\n"
528" (\"M-r\" . consult-history)) ;; orig. previous-matching-history-element\n"
529msgstr ""
530
531#. type: Plain text
532#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:334
533#, no-wrap
534msgid ""
535" ;; Enable automatic preview at point in the *Completions* buffer. This is\n"
536" ;; relevant when you use the default completion UI.\n"
537" :hook (completion-list-mode . consult-preview-at-point-mode)\n"
538" :init\n"
539" ;; Optionally configure the register formatting. This improves the register\n"
540" ;; preview for `consult-register', `consult-register-load',\n"
541" ;; `consult-register-store' and the Emacs built-ins.\n"
542" (setq register-preview-delay 0.5\n"
543" register-preview-function #'consult-register-format)\n"
544msgstr ""
545
546#. type: Plain text
547#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:338
548#, no-wrap
549msgid ""
550" ;; Optionally tweak the register preview window.\n"
551" ;; This adds thin lines, sorting and hides the mode line of the window.\n"
552" (advice-add #'register-preview :override #'consult-register-window)\n"
553msgstr ""
554
555#. type: Plain text
556#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:342
557#, no-wrap
558msgid ""
559" ;; Use Consult to select xref locations with preview\n"
560" (setq xref-show-xrefs-function #'consult-xref\n"
561" xref-show-definitions-function #'consult-xref)\n"
562msgstr ""
563
564#. type: Plain text
565#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:346
566#, no-wrap
567msgid ""
568" ;; Configure other variables and modes in the :config section,\n"
569" ;; after lazily loading the package.\n"
570" :config\n"
571msgstr ""
572
573#. type: Plain text
574#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:362
575#, no-wrap
576msgid ""
577" ;; Optionally configure preview. The default value\n"
578" ;; is 'any, such that any key triggers the preview.\n"
579" ;; (setq consult-preview-key 'any)\n"
580" ;; (setq consult-preview-key \"M-.\")\n"
581" ;; (setq consult-preview-key '(\"S-<down>\" \"S-<up>\"))\n"
582" ;; For some commands and buffer sources it is useful to configure the\n"
583" ;; :preview-key on a per-command basis using the `consult-customize' macro.\n"
584" (consult-customize\n"
585" consult-theme :preview-key '(:debounce 0.2 any)\n"
586" consult-ripgrep consult-git-grep consult-grep\n"
587" consult-bookmark consult-recent-file consult-xref\n"
588" consult--source-bookmark consult--source-file-register\n"
589" consult--source-recent-file consult--source-project-recent-file\n"
590" ;; :preview-key \"M-.\"\n"
591" :preview-key '(:debounce 0.4 any))\n"
592msgstr ""
593
594#. type: Plain text
595#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:366
596#, no-wrap
597msgid ""
598" ;; Optionally configure the narrowing key.\n"
599" ;; Both < and C-+ work reasonably well.\n"
600" (setq consult-narrow-key \"<\") ;; \"C-+\"\n"
601msgstr ""
602
603#. type: Plain text
604#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:371
605#, no-wrap
606msgid ""
607" ;; Optionally make narrowing help available in the minibuffer.\n"
608" ;; You may want to use `embark-prefix-help-command' or which-key instead.\n"
609" ;; (define-key consult-narrow-map (vconcat consult-narrow-key \"?\") #'consult-narrow-help)\n"
610" )\n"
611msgstr ""
612
613#. type: Plain text
614#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:386
615#, no-wrap
616msgid ""
617"(use-package corfu\n"
618" :custom\n"
619" (corfu-cycle t) ;; Enable cycling for `corfu-next/previous'\n"
620" (corfu-auto t) ;; Enable auto completion\n"
621" (corfu-separator ?\\s) ;; Orderless field separator\n"
622" (corfu-quit-at-boundary nil) ;; Never quit at completion boundary\n"
623" (corfu-quit-no-match nil) ;; Never quit, even if there is no match\n"
624" (corfu-preview-current nil) ;; Disable current candidate preview\n"
625" (corfu-preselect 'prompt) ;; Preselect the prompt\n"
626" (corfu-on-exact-match nil) ;; Configure handling of exact matches\n"
627" (corfu-scroll-margin 5) ;; Use scroll margin\n"
628" :init\n"
629" (global-corfu-mode))\n"
630"#+end_src\n"
631msgstr ""
632
633#. type: Plain text
634#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:396
635#, no-wrap
636msgid ""
637"#+name: emacs-dired\n"
638"#+header: :tangle emacs/init.el\n"
639"#+begin_src emacs-lisp\n"
640"(setq dired-listing-switches \"-alh\"\n"
641" dired-dwim-target t\n"
642" dired-recursive-copies 'always\n"
643" dired-recursive-deletes 'always)\n"
644"(use-package dired-single)\n"
645"#+end_src\n"
646msgstr ""
647
648#. type: Plain text
649#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:412
650#, no-wrap
651msgid ""
652"#+name: emacs-emacs\n"
653"#+header: :tangle emacs/init.el\n"
654"#+begin_src emacs-lisp\n"
655"(use-package emacs\n"
656" :init\n"
657" ;; Add prompt indicator to `completing-read-multiple'.\n"
658" ;; We display [CRM<separator>], e.g., [CRM,] if the separator is a comma.\n"
659" (defun crm-indicator (args)\n"
660" (cons (format \"[CRM%s] %s\"\n"
661" (replace-regexp-in-string\n"
662" \"\\\\`\\\\[.*?]\\\\*\\\\|\\\\[.*?]\\\\*\\\\'\" \"\"\n"
663" crm-separator)\n"
664" (car args))\n"
665" (cdr args)))\n"
666" (advice-add #'completing-read-multiple :filter-args #'crm-indicator)\n"
667msgstr ""
668
669#. type: Plain text
670#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:417
671#, no-wrap
672msgid ""
673" ;; Do not allow the cursor in the minibuffer prompt\n"
674" (setq minibuffer-prompt-properties\n"
675" '(read-only t cursor-intangible t face minibuffer-prompt))\n"
676" (add-hook 'minibuffer-setup-hook #'cursor-intangible-mode)\n"
677msgstr ""
678
679#. type: Plain text
680#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:420
681#, no-wrap
682msgid ""
683" ;; Enable recursive minibuffers\n"
684" (setq enable-recursive-minibuffers t))\n"
685msgstr ""
686
687#. type: Plain text
688#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:430
689#, no-wrap
690msgid ""
691";; Save all tempfiles in $TMPDIR/emacs$UID/\n"
692"(defconst emacs-tmp-dir (expand-file-name (format \"emacs%d\" (user-uid)) temporary-file-directory))\n"
693"(setq backup-directory-alist\n"
694" `((\".*\" . ,emacs-tmp-dir)))\n"
695"(setq auto-save-file-name-transforms\n"
696" `((\".*\" ,emacs-tmp-dir t)))\n"
697"(setq auto-save-list-file-prefix\n"
698" emacs-tmp-dir)\n"
699"#+end_src\n"
700msgstr ""
701
702#. type: Plain text
703#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:443
704#, no-wrap
705msgid ""
706"#+name: emacs-multiple-cursors\n"
707"#+header: :tangle emacs/init.el\n"
708"#+begin_src emacs-lisp\n"
709"(use-package multiple-cursors\n"
710" :bind\n"
711" ((\"C-S-c\" . mc/edit-lines)\n"
712" (\"C->\" . mc/mark-next-like-this)\n"
713" (\"C-<\" . mc/mark-previous-like-this)\n"
714" (\"C-c C-S-c\" . mc/mark-all-like-this)\n"
715" (\"C-\\\"\" . mc/skip-to-next-like-this)\n"
716" (\"C-:\" . mc/skip-to-previous-like-this)))\n"
717"#+end_src\n"
718msgstr ""
719
720#. type: Plain text
721#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:451
722#, no-wrap
723msgid ""
724"#+name: emacs-expand-region\n"
725"#+header: :tangle emacs/init.el\n"
726"#+begin_src emacs-lisp\n"
727"(use-package expand-region\n"
728" :bind\n"
729" ((\"C-M-=\" . er/expand-region)))\n"
730"#+end_src\n"
731msgstr ""
732
733#. type: Plain text
734#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:460
735#, no-wrap
736msgid ""
737"#+name: emacs-move-text\n"
738"#+header: :tangle emacs/init.el\n"
739"#+begin_src emacs-lisp\n"
740"(use-package move-text\n"
741" :bind\n"
742" ((\"M-P\" . move-text-up)\n"
743" (\"M-N\" . move-text-down)))\n"
744"#+end_src\n"
745msgstr ""
746
747#. type: Plain text
748#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:467
749#, no-wrap
750msgid ""
751"#+name: emacs-duplicate\n"
752"#+header: :tangle emacs/init.el\n"
753"#+begin_src emacs-lisp\n"
754"(keymap-global-set \"C-'\" 'duplicate-dwim)\n"
755"(setq duplicate-line-final-position 1)\n"
756"#+end_src\n"
757msgstr ""
758
759#. type: Plain text
760#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:475
761#, no-wrap
762msgid ""
763"#+name: emacs-hl-todo\n"
764"#+header: :tangle emacs/init.el\n"
765"#+begin_src emacs-lisp\n"
766"(use-package hl-todo\n"
767" :config\n"
768" (global-hl-todo-mode 1))\n"
769"#+end_src\n"
770msgstr ""
771
772#. type: Plain text
773#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:490
774#, no-wrap
775msgid ""
776"#+name: emacs-ligature\n"
777"#+header: :tangle emacs/init.el\n"
778"#+begin_src emacs-lisp\n"
779"(use-package ligature\n"
780" :config\n"
781" (ligature-set-ligatures\n"
782" 't '(\"-<<\" \"-<\" \"-<-\" \"<--\" \"<---\" \"<<-\" \"<-\" \"->\" \"->>\" \"-->\" \"--->\" \"->-\" \">-\" \">>-\"\n"
783" \"=<<\" \"=<\" \"=<=\" \"<==\" \"<===\" \"<<=\" \"<=\" \"=>\" \"=>>\" \"==>\" \"===>\" \"=>=\" \">=\" \">>=\"\n"
784" \"<->\" \"<-->\" \"<--->\" \"<---->\" \"<=>\" \"<==>\" \"<===>\" \"<====>\" \"::\" \":::\" \"__\"\n"
785" \"<~~\" \"</\" \"</>\" \"/>\" \"~~>\" \"==\" \"!=\" \"/=\" \"~=\" \"<>\" \"===\" \"!==\" \"!===\" \"=/=\" \"=!=\"\n"
786" \"<:\" \":=\" \"*=\" \"*+\" \"<*\" \"<*>\" \"*>\" \"<|\" \"<|>\" \"|>\" \"<.\" \"<.>\" \".>\" \"+*\" \"=*\" \"=:\" \":>\"\n"
787" \"(*\" \"*)\" \"/*\" \"*/\" \"[|\" \"|]\" \"{|\" \"|}\" \"++\" \"+++\" \"\\\\/\" \"/\\\\\" \"|-\" \"-|\" \"<!--\" \"<!---\"))\n"
788" (global-ligature-mode -1))\n"
789"#+end_src\n"
790msgstr ""
791
792#. type: Plain text
793#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:496
794#, no-wrap
795msgid ""
796"#+name: emacs-magit\n"
797"#+header: :tangle emacs/init.el\n"
798"#+begin_src emacs-lisp\n"
799"(use-package magit)\n"
800"#+end_src\n"
801msgstr ""
802
803#. type: Plain text
804#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:502
805#, no-wrap
806msgid ""
807"#+name: emacs-restart-emacs\n"
808"#+header: :tangle emacs/init.el\n"
809"#+begin_src emacs-lisp\n"
810"(use-package restart-emacs)\n"
811"#+end_src\n"
812msgstr ""
813
814#. type: Plain text
815#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:508
816#, no-wrap
817msgid ""
818"#+name: emacs-bluetooth\n"
819"#+header: :tangle emacs/init.el\n"
820"#+begin_src emacs-lisp\n"
821"(use-package bluetooth)\n"
822"#+end_src\n"
823msgstr ""
824
825#. type: Plain text
826#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:514
827#, no-wrap
828msgid ""
829"*** Installing fonts\n"
830"1. Wget latest =PkgTTC-Iosevka-X.X.X.zip= asset from [[https://github.com/be5invis/Iosevka/releases][iosevka releases]]\n"
831"2. ~unzip DOWNLOADED_FILE~\n"
832"3. ~mv contents ~/.local/share/fonts~\n"
833"4. ~fc-cache -fv~\n"
834msgstr ""
835
836#. type: Plain text
837#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:518
838#, no-wrap
839msgid ""
840"*** i3 setup\n"
841"~sudo apt install xorg i3 dbus-launch maim udiskie~\n"
842"Edit =~/.xinitrc=\n"
843msgstr ""
844
845#. type: Plain text
846#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:525
847#, no-wrap
848msgid ""
849"Disable access control for the current user.\n"
850"#+name: xinitrc-xhost\n"
851"#+header: :tangle .xinitrc\n"
852"#+begin_src sh\n"
853"xhost +SI:localuser:$USER\n"
854"#+end_src\n"
855msgstr ""
856
857#. type: Plain text
858#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:531
859#, no-wrap
860msgid ""
861"#+name: xinitrc-xset\n"
862"#+header: :tangle .xinitrc\n"
863"#+begin_src sh\n"
864"xset r rate 250 30\n"
865"#+end_src\n"
866msgstr ""
867
868#. type: Plain text
869#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:537
870#, no-wrap
871msgid ""
872"#+name: xinitrc-dbus-launch\n"
873"#+header: :tangle .xinitrc\n"
874"#+begin_src sh\n"
875"exec dbus-launch --exit-with-session i3\n"
876"#+end_src\n"
877msgstr ""
878
879#. type: Plain text
880#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:539
881#, no-wrap
882msgid "Edit =~/.config/i3/config=\n"
883msgstr ""
884
885#. type: Plain text
886#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:549
887#, no-wrap
888msgid ""
889"#+header: :tangle i3/config :exports none\n"
890"#+begin_src conf-space\n"
891"# Please see https://i3wm.org/docs/userguide.html for a complete reference!\n"
892"#+end_src\n"
893"#+name: i3-config-mod\n"
894"#+header: :tangle i3/config\n"
895"#+begin_src conf-space\n"
896"set $mod Mod4\n"
897"#+end_src\n"
898msgstr ""
899
900#. type: Plain text
901#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:562
902#, no-wrap
903msgid ""
904"Font for window titles. Will also be used by the bar unless a\n"
905"different font is used in the bar ={}= block below.\n"
906"#+header: :tangle i3/config :exports none\n"
907"#+begin_src conf-space\n"
908"# Font for window titles. Will also be used by the bar unless a different font\n"
909"# is used in the bar {} block below.\n"
910"#+end_src\n"
911"#+name: i3-config-font\n"
912"#+header: :tangle i3/config\n"
913"#+begin_src conf-space\n"
914"font pango:monospace 12\n"
915"#+end_src\n"
916msgstr ""
917
918#. type: Plain text
919#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:575
920#, no-wrap
921msgid ""
922"Start XDG autostart =.desktop= files using =dex=. See also [[https://wiki.archlinux.org/index.php/XDG_Autostart][XDG Autostart -\n"
923"ArchWiki]]\n"
924"#+header: :tangle i3/config :exports none\n"
925"#+begin_src conf-space\n"
926"# Start XDG autostart .desktop files using dex. See also\n"
927"# https://wiki.archlinux.org/index.php/XDG_Autostart\n"
928"#+end_src\n"
929"#+name: i3-config-dex\n"
930"#+header: :tangle i3/config\n"
931"#+begin_src conf-space\n"
932"exec --no-startup-id dex --autostart --environment i3\n"
933"#+end_src\n"
934msgstr ""
935
936#. type: Plain text
937#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:578
938#, no-wrap
939msgid ""
940"The combination of ~xss-lock~, ~nm-applet~ and ~pactl~ is a popular choice,\n"
941"so they are included here as an example. Modify as you see fit.\n"
942msgstr ""
943
944#. type: Plain text
945#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:582
946#, no-wrap
947msgid ""
948"~xss-lock~ grabs a =logind suspend inhibit lock= and will use ~i3lock~ to\n"
949"lock the screen before suspend. Use ~loginctl lock-session~ to lock your\n"
950"screen.\n"
951msgstr ""
952
953#. type: Plain text
954#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:587
955#, no-wrap
956msgid ""
957"#+header: :tangle i3/config :exports none\n"
958"#+begin_src conf-space\n"
959"# The combination of xss-lock, nm-applet and pactl is a popular choice, so\n"
960"# they are included here as an example. Modify as you see fit.\n"
961msgstr ""
962
963#. type: Plain text
964#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:596
965#, no-wrap
966msgid ""
967"# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the\n"
968"# screen before suspend. Use loginctl lock-session to lock your screen.\n"
969"#+end_src\n"
970"#+name: i3-config-xss-lock\n"
971"#+header: :tangle i3/config\n"
972"#+begin_src conf-space\n"
973"exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork\n"
974"#+end_src\n"
975msgstr ""
976
977#. type: Plain text
978#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:602
979#, no-wrap
980msgid ""
981"#+name: i3-config-setxkbmap\n"
982"#+header: :tangle i3/config\n"
983"#+begin_src conf-space\n"
984"exec --no-startup-id setxkbmap -layout \"us,ru\" -option 'grp:shifts_toggle' -option \"ctrl:nocaps\"\n"
985"#+end_src\n"
986msgstr ""
987
988#. type: Plain text
989#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:608
990#, no-wrap
991msgid ""
992"#+name: i3-config-udiskie\n"
993"#+header: :tangle i3/config\n"
994"#+begin_src conf-space\n"
995"exec --no-startup-id udiskie --automount\n"
996"#+end_src\n"
997msgstr ""
998
999#. type: Plain text
1000#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:622
1001#, no-wrap
1002msgid ""
1003"NetworkManager is the most popular way to manage wireless networks on\n"
1004"Linux, and ~nm-applet~ is a desktop environment-independent system tray\n"
1005"GUI for it.\n"
1006"#+header: :tangle i3/config :exports none\n"
1007"#+begin_src conf-space\n"
1008"# NetworkManager is the most popular way to manage wireless networks on Linux,\n"
1009"# and nm-applet is a desktop environment-independent system tray GUI for it.\n"
1010"#+end_src\n"
1011"#+name: i3-config-nm-applet\n"
1012"#+header: :tangle i3/config\n"
1013"#+begin_src conf-space\n"
1014"exec --no-startup-id nm-applet\n"
1015"#+end_src\n"
1016msgstr ""
1017
1018#. type: Plain text
1019#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:628
1020#, no-wrap
1021msgid ""
1022"#+name: i3-config-emacs\n"
1023"#+header: :tangle i3/config\n"
1024"#+begin_src conf-space\n"
1025"exec emacs --background black\n"
1026"#+end_src\n"
1027msgstr ""
1028
1029#. type: Plain text
1030#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:643
1031#, no-wrap
1032msgid ""
1033"Use ~pactl~ to adjust volume in PulseAudio.\n"
1034"#+header: :tangle i3/config :exports none\n"
1035"#+begin_src conf-space\n"
1036"# Use pactl to adjust volume in PulseAudio.\n"
1037"#+end_src\n"
1038"#+name: i3-config-pulseaudio\n"
1039"#+header: :tangle i3/config\n"
1040"#+begin_src conf-space\n"
1041"set $refresh_i3status killall -SIGUSR1 i3status\n"
1042"bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status\n"
1043"bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status\n"
1044"bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status\n"
1045"bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status\n"
1046"#+end_src\n"
1047msgstr ""
1048
1049#. type: Plain text
1050#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:655
1051#, no-wrap
1052msgid ""
1053"Change brightness.\n"
1054"#+header: :tangle i3/config :exports none\n"
1055"#+begin_src conf-space\n"
1056"# Change brightness\n"
1057"#+end_src\n"
1058"#+name: i3-config-brightnessctl\n"
1059"#+header: :tangle i3/config\n"
1060"#+begin_src conf-space\n"
1061"bindsym XF86MonBrightnessUp exec --no-startup-id brightnessctl set +5%\n"
1062"bindsym XF86MonBrightnessDown exec --no-startup-id brightnessctl set 5%-\n"
1063"#+end_src\n"
1064msgstr ""
1065
1066#. type: Plain text
1067#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:666
1068#, no-wrap
1069msgid ""
1070"Use =Mouse+$mod= to drag floating windows to their wanted position.\n"
1071"#+header: :tangle i3/config :exports none\n"
1072"#+begin_src conf-space\n"
1073"# Use Mouse+$mod to drag floating windows to their wanted position.\n"
1074"#+end_src\n"
1075"#+name: i3-config-floating_modifier\n"
1076"#+header: :tangle i3/config\n"
1077"#+begin_src conf-space\n"
1078"floating_modifier $mod\n"
1079"#+end_src\n"
1080msgstr ""
1081
1082#. type: Plain text
1083#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:680
1084#, no-wrap
1085msgid ""
1086"Move tiling windows via drag & drop by left-clicking into the title\n"
1087"bar, or left-clicking anywhere into the window while holding the\n"
1088"floating modifier.\n"
1089"#+header: :tangle i3/config :exports none\n"
1090"#+begin_src conf-space\n"
1091"# Move tiling windows via drag & drop by left-clicking into the title bar,\n"
1092"# or left-clicking anywhere into the window while holding the floating modifier.\n"
1093"#+end_src\n"
1094"#+name: i3-config-tiling_drag-modifier\n"
1095"#+header: :tangle i3/config\n"
1096"#+begin_src conf-space\n"
1097"tiling_drag modifier titlebar\n"
1098"#+end_src\n"
1099msgstr ""
1100
1101#. type: Plain text
1102#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:686
1103#, no-wrap
1104msgid ""
1105"#+name: i3-config-bindsym\n"
1106"#+header: :tangle i3/config\n"
1107"#+begin_src conf-space\n"
1108"# start a terminal\n"
1109"bindsym $mod+Return exec emacsclient -c\n"
1110msgstr ""
1111
1112#. type: Plain text
1113#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:689
1114#, no-wrap
1115msgid ""
1116"# kill focused window\n"
1117"bindsym $mod+Shift+q kill\n"
1118msgstr ""
1119
1120#. type: Plain text
1121#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:692
1122#, no-wrap
1123msgid ""
1124"# start dmenu (a program launcher)\n"
1125"bindsym $mod+d exec --no-startup-id i3-dmenu-desktop --dmenu='dmenu -i -fn 12'\n"
1126msgstr ""
1127
1128#. type: Plain text
1129#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:698
1130#, no-wrap
1131msgid ""
1132"# change focus\n"
1133"bindsym $mod+j focus left\n"
1134"bindsym $mod+k focus down\n"
1135"bindsym $mod+l focus up\n"
1136"bindsym $mod+semicolon focus right\n"
1137msgstr ""
1138
1139#. type: Plain text
1140#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:704
1141#, no-wrap
1142msgid ""
1143"# alternatively, you can use the cursor keys:\n"
1144"bindsym $mod+Left focus left\n"
1145"bindsym $mod+Down focus down\n"
1146"bindsym $mod+Up focus up\n"
1147"bindsym $mod+Right focus right\n"
1148msgstr ""
1149
1150#. type: Plain text
1151#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:710
1152#, no-wrap
1153msgid ""
1154"# move focused window\n"
1155"bindsym $mod+Shift+j move left\n"
1156"bindsym $mod+Shift+k move down\n"
1157"bindsym $mod+Shift+l move up\n"
1158"bindsym $mod+Shift+semicolon move right\n"
1159msgstr ""
1160
1161#. type: Plain text
1162#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:716
1163#, no-wrap
1164msgid ""
1165"# alternatively, you can use the cursor keys:\n"
1166"bindsym $mod+Shift+Left move left\n"
1167"bindsym $mod+Shift+Down move down\n"
1168"bindsym $mod+Shift+Up move up\n"
1169"bindsym $mod+Shift+Right move right\n"
1170msgstr ""
1171
1172#. type: Plain text
1173#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:719
1174#, no-wrap
1175msgid ""
1176"# split in horizontal orientation\n"
1177"bindsym $mod+h split h\n"
1178msgstr ""
1179
1180#. type: Plain text
1181#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:722
1182#, no-wrap
1183msgid ""
1184"# split in vertical orientation\n"
1185"bindsym $mod+v split v\n"
1186msgstr ""
1187
1188#. type: Plain text
1189#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:725
1190#, no-wrap
1191msgid ""
1192"# enter fullscreen mode for the focused container\n"
1193"bindsym $mod+f fullscreen toggle\n"
1194msgstr ""
1195
1196#. type: Plain text
1197#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:730
1198#, no-wrap
1199msgid ""
1200"# change container layout (stacked, tabbed, toggle split)\n"
1201"bindsym $mod+s layout stacking\n"
1202"bindsym $mod+w layout tabbed\n"
1203"bindsym $mod+e layout toggle split\n"
1204msgstr ""
1205
1206#. type: Plain text
1207#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:733
1208#, no-wrap
1209msgid ""
1210"# toggle tiling / floating\n"
1211"bindsym $mod+Shift+space floating toggle\n"
1212msgstr ""
1213
1214#. type: Plain text
1215#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:736
1216#, no-wrap
1217msgid ""
1218"# change focus between tiling / floating windows\n"
1219"bindsym $mod+space focus mode_toggle\n"
1220msgstr ""
1221
1222#. type: Plain text
1223#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:739
1224#, no-wrap
1225msgid ""
1226"# focus the parent container\n"
1227"bindsym $mod+a focus parent\n"
1228msgstr ""
1229
1230#. type: Plain text
1231#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:742
1232#, no-wrap
1233msgid ""
1234"# focus the child container\n"
1235"#bindsym $mod+d focus child\n"
1236msgstr ""
1237
1238#. type: Plain text
1239#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:755
1240#, no-wrap
1241msgid ""
1242"# Define names for default workspaces for which we configure key bindings later on.\n"
1243"# We use variables to avoid repeating the names in multiple places.\n"
1244"set $ws1 \"1\"\n"
1245"set $ws2 \"2\"\n"
1246"set $ws3 \"3\"\n"
1247"set $ws4 \"4\"\n"
1248"set $ws5 \"5\"\n"
1249"set $ws6 \"6\"\n"
1250"set $ws7 \"7\"\n"
1251"set $ws8 \"8\"\n"
1252"set $ws9 \"9\"\n"
1253"set $ws10 \"10\"\n"
1254msgstr ""
1255
1256#. type: Plain text
1257#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:767
1258#, no-wrap
1259msgid ""
1260"# switch to workspace\n"
1261"bindsym $mod+1 workspace number $ws1\n"
1262"bindsym $mod+2 workspace number $ws2\n"
1263"bindsym $mod+3 workspace number $ws3\n"
1264"bindsym $mod+4 workspace number $ws4\n"
1265"bindsym $mod+5 workspace number $ws5\n"
1266"bindsym $mod+6 workspace number $ws6\n"
1267"bindsym $mod+7 workspace number $ws7\n"
1268"bindsym $mod+8 workspace number $ws8\n"
1269"bindsym $mod+9 workspace number $ws9\n"
1270"bindsym $mod+0 workspace number $ws10\n"
1271msgstr ""
1272
1273#. type: Plain text
1274#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:779
1275#, no-wrap
1276msgid ""
1277"# move focused container to workspace\n"
1278"bindsym $mod+Shift+1 move container to workspace number $ws1\n"
1279"bindsym $mod+Shift+2 move container to workspace number $ws2\n"
1280"bindsym $mod+Shift+3 move container to workspace number $ws3\n"
1281"bindsym $mod+Shift+4 move container to workspace number $ws4\n"
1282"bindsym $mod+Shift+5 move container to workspace number $ws5\n"
1283"bindsym $mod+Shift+6 move container to workspace number $ws6\n"
1284"bindsym $mod+Shift+7 move container to workspace number $ws7\n"
1285"bindsym $mod+Shift+8 move container to workspace number $ws8\n"
1286"bindsym $mod+Shift+9 move container to workspace number $ws9\n"
1287"bindsym $mod+Shift+0 move container to workspace number $ws10\n"
1288msgstr ""
1289
1290#. type: Plain text
1291#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:788
1292#, no-wrap
1293msgid ""
1294"# reload the configuration file\n"
1295"bindsym $mod+Shift+c reload\n"
1296"# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)\n"
1297"bindsym $mod+Shift+r restart\n"
1298"# exit i3 (logs you out of your X session)\n"
1299"bindsym $mod+Shift+e exec i3-nagbar -t warning -m \\\n"
1300"'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' \\\n"
1301"-B 'Yes, exit i3' 'i3-msg exit'\n"
1302msgstr ""
1303
1304#. type: Plain text
1305#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:792
1306#, no-wrap
1307msgid ""
1308"# resize window (you can also use the mouse for that)\n"
1309"mode \"resize\" {\n"
1310"# These bindings trigger as soon as you enter the resize mode\n"
1311msgstr ""
1312
1313#. type: Plain text
1314#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:801
1315#, no-wrap
1316msgid ""
1317"# Pressing left will shrink the window’s width.\n"
1318"# Pressing right will grow the window’s width.\n"
1319"# Pressing up will shrink the window’s height.\n"
1320"# Pressing down will grow the window’s height.\n"
1321"bindsym Left resize shrink width 10 px or 10 ppt\n"
1322"bindsym Down resize grow height 10 px or 10 ppt\n"
1323"bindsym Up resize shrink height 10 px or 10 ppt\n"
1324"bindsym Right resize grow width 10 px or 10 ppt\n"
1325msgstr ""
1326
1327#. type: Plain text
1328#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:807
1329#, no-wrap
1330msgid ""
1331"# back to normal: Enter or Escape or $mod+r\n"
1332"bindsym Return mode \"default\"\n"
1333"bindsym Escape mode \"default\"\n"
1334"bindsym $mod+r mode \"default\"\n"
1335"}\n"
1336msgstr ""
1337
1338#. type: Plain text
1339#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:810
1340#, no-wrap
1341msgid ""
1342"bindsym $mod+r mode \"resize\"\n"
1343"#+end_src\n"
1344msgstr ""
1345
1346#. type: Plain text
1347#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:820
1348#, no-wrap
1349msgid ""
1350"#+name: i3-config-bar\n"
1351"#+header: :tangle i3/config\n"
1352"#+begin_src conf-space\n"
1353"# Start i3bar to display a workspace bar (plus the system information i3status\n"
1354"# finds out, if available)\n"
1355"bar {\n"
1356"status_command i3status\n"
1357"}\n"
1358"#+end_src\n"
1359msgstr ""
1360
1361#. type: Plain text
1362#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:830
1363#, no-wrap
1364msgid ""
1365"#+name: i3-config-print-screen\n"
1366"#+header: :tangle i3/config\n"
1367"#+begin_src conf-space\n"
1368"# Print screen\n"
1369"bindsym --release Print exec \"maim $HOME/multimedia/screenshots/$(date '+%y%m%d-%H%M-%S').png\"\n"
1370"bindsym --release Shift+Print exec \"maim --hidecursor --select $HOME/multimedia/screenshots/$(date '+%y%m%d-%H%M-%S').png\"\n"
1371"bindsym --release Ctrl+Print exec \"maim | xclip -sel clip -t image/png\"\n"
1372"bindsym --release Shift+Ctrl+Print exec \"maim --hidecursor --select | xclip -sel clip -t image/png\"\n"
1373"#+end_src\n"
1374msgstr ""
1375
1376#. type: Plain text
1377#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:832
1378#, no-wrap
1379msgid ""
1380"- ~startx~\n"
1381"- =s-RET=\n"
1382msgstr ""
diff --git a/src/ru/articles/index.org.po b/src/ru/articles/index.org.po
new file mode 100644
index 0000000..642c012
--- /dev/null
+++ b/src/ru/articles/index.org.po
@@ -0,0 +1,31 @@
1# Russian translations for Martin\'s personal website package
2# Copyright (C) 2024 Martin
3# This file is distributed under the same license as the Martin\'s personal website package.
4# Automatically generated, 2024.
5#
6msgid ""
7msgstr ""
8"Project-Id-Version: Martin\\'s personal website master\n"
9"Report-Msgid-Bugs-To: martin@michalec.dev\n"
10"POT-Creation-Date: 2024-10-24 06:12+0300\n"
11"PO-Revision-Date: 2024-10-24 06:12+0300\n"
12"Last-Translator: Automatically generated\n"
13"Language-Team: none\n"
14"Language: ru\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
18"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
19"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
20
21#. type: Plain text
22#: src/en/articles/index.org:2
23#, no-wrap
24msgid "#+title: Articles\n"
25msgstr ""
26
27#. type: Plain text
28#: src/en/articles/index.org:3
29#, no-wrap
30msgid "#+include: \"sitemap.org\" :lines \"4-\"\n"
31msgstr ""
diff --git a/src/ru/index.org.po b/src/ru/index.org.po
new file mode 100644
index 0000000..c822d80
--- /dev/null
+++ b/src/ru/index.org.po
@@ -0,0 +1,67 @@
1# Russian translations for Martin\'s personal website package
2# Copyright (C) 2024 Martin
3# This file is distributed under the same license as the Martin\'s personal website package.
4# Automatically generated, 2024.
5#
6msgid ""
7msgstr ""
8"Project-Id-Version: Martin\\'s personal website master\n"
9"Report-Msgid-Bugs-To: martin@michalec.dev\n"
10"POT-Creation-Date: 2024-11-18 02:24+0300\n"
11"PO-Revision-Date: 2024-10-24 06:12+0300\n"
12"Last-Translator: Automatically generated\n"
13"Language-Team: none\n"
14"Language: ru\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
18"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
19"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
20
21#. type: Plain text
22#: src/en/index.org:2
23#, no-wrap
24msgid "#+title: Martin Michalec\n"
25msgstr ""
26
27#. type: Plain text
28#: src/en/index.org:9
29#, no-wrap
30msgid ""
31"- [[file:articles/][Articles]]\n"
32"- [[file:projects/][Projects]]\n"
33"- [[file:mailing-lists/][Mailing Lists]]\n"
34"- [[file:web-log/][Web Log]]\n"
35"- [[file:sitemap.org][Sitemap]]\n"
36"- [[file:./../files/][Files]]\n"
37msgstr ""
38
39#. type: Plain text
40#: src/en/index.org:14
41#, no-wrap
42msgid ""
43"Contacts:\n"
44"- Email: [[mailto:martin@michalec.dev][martin@michalec.dev]]\n"
45"- IRC: cmmm ([[irc:irc.libera.chat:6697/cmmm][libera.chat]])\n"
46"- Telegram: [[https:t.me/c_martin_m_m][@c_martin_m_m]]\n"
47msgstr ""
48
49#. type: Plain text
50#: src/en/index.org:16
51#, no-wrap
52msgid "#+html: <hr/>\n"
53msgstr ""
54
55#. type: Plain text
56#: src/en/index.org:18
57#, no-wrap
58msgid "Copyright © 2024 Martin Michalec\n"
59msgstr ""
60
61#. type: Plain text
62#: src/en/index.org:20
63#, no-wrap
64msgid ""
65"Verbatim copying and redistribution of this entire page are permitted\n"
66"provided this notice is preserved.\n"
67msgstr ""
diff --git a/src/ru/mailing-lists/index.org.po b/src/ru/mailing-lists/index.org.po
new file mode 100644
index 0000000..f426e0e
--- /dev/null
+++ b/src/ru/mailing-lists/index.org.po
@@ -0,0 +1,37 @@
1# Russian translations for Martin\'s personal website package
2# Copyright (C) 2024 Martin
3# This file is distributed under the same license as the Martin\'s personal website package.
4# Automatically generated, 2024.
5#
6msgid ""
7msgstr ""
8"Project-Id-Version: Martin\\'s personal website master\n"
9"Report-Msgid-Bugs-To: martin@michalec.dev\n"
10"POT-Creation-Date: 2024-11-18 02:20+0300\n"
11"PO-Revision-Date: 2024-11-18 02:20+0300\n"
12"Last-Translator: Automatically generated\n"
13"Language-Team: none\n"
14"Language: ru\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
18"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
19"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
20
21#. type: Plain text
22#: src/en/projects/index.org:5 src/en/mailing-list/index.org:5
23#, no-wrap
24msgid "* TODO add texts...\n"
25msgstr ""
26
27#. type: Plain text
28#: src/en/mailing-list/index.org:2
29#, no-wrap
30msgid "#+title: Mailing List\n"
31msgstr ""
32
33#. type: Plain text
34#: src/en/mailing-list/index.org:4
35#, no-wrap
36msgid "[[[https://lists.michalec.dev][www]]] | [[[http://lists.ygg.michalec.dev][ygg]]] | [[[http://lists.michalec.i2p][i2p]]] | [[[http://some.onion][tor]]]\n"
37msgstr ""
diff --git a/src/ru/projects/index.org.po b/src/ru/projects/index.org.po
new file mode 100644
index 0000000..4a19554
--- /dev/null
+++ b/src/ru/projects/index.org.po
@@ -0,0 +1,37 @@
1# Russian translations for Martin\'s personal website package
2# Copyright (C) 2024 Martin
3# This file is distributed under the same license as the Martin\'s personal website package.
4# Automatically generated, 2024.
5#
6msgid ""
7msgstr ""
8"Project-Id-Version: Martin\\'s personal website master\n"
9"Report-Msgid-Bugs-To: martin@michalec.dev\n"
10"POT-Creation-Date: 2024-11-18 02:20+0300\n"
11"PO-Revision-Date: 2024-11-18 02:20+0300\n"
12"Last-Translator: Automatically generated\n"
13"Language-Team: none\n"
14"Language: ru\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
18"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
19"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
20
21#. type: Plain text
22#: src/en/projects/index.org:2
23#, no-wrap
24msgid "#+title: Projects\n"
25msgstr ""
26
27#. type: Plain text
28#: src/en/projects/index.org:4
29#, no-wrap
30msgid "[[[https://git.michalec.dev][www]]] | [[[http://git.ygg.michalec.dev][ygg]]] | [[[http://git.michalec.i2p][i2p]]] | [[[http://some.onion][tor]]]\n"
31msgstr ""
32
33#. type: Plain text
34#: src/en/projects/index.org:5 src/en/mailing-list/index.org:5
35#, no-wrap
36msgid "* TODO add texts...\n"
37msgstr ""
diff --git a/src/ru/web-log/2024-08-31-test/index.org.po b/src/ru/web-log/2024-08-31-test/index.org.po
new file mode 100644
index 0000000..c607483
--- /dev/null
+++ b/src/ru/web-log/2024-08-31-test/index.org.po
@@ -0,0 +1,46 @@
1# Russian translations for Martin\'s personal website package
2# Copyright (C) 2024 Martin
3# This file is distributed under the same license as the Martin\'s personal website package.
4# Automatically generated, 2024.
5#
6msgid ""
7msgstr ""
8"Project-Id-Version: Martin\\'s personal website master\n"
9"Report-Msgid-Bugs-To: martin@michalec.dev\n"
10"POT-Creation-Date: 2024-10-24 07:50+0300\n"
11"PO-Revision-Date: 2024-10-24 07:50+0300\n"
12"Last-Translator: Automatically generated\n"
13"Language-Team: none\n"
14"Language: ru\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
18"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
19"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
20
21#. type: Plain text
22#: src/en/web-log/2024-08-31-test/index.org:3
23#, no-wrap
24msgid ""
25"#+title: test\n"
26"#+date: <2024-08-31>\n"
27msgstr ""
28
29#. type: Plain text
30#: src/en/web-log/2024-08-31-test/index.org:16
31#, no-wrap
32msgid ""
33"* Fusce sagittis, libero non molestie mollis\n"
34"Pellentesque dapibus suscipit ligula. Donec posuere augue in quam.\n"
35"Etiam vel tortor sodales tellus ultricies commodo. Suspendisse\n"
36"potenti. Aenean in sem ac leo mollis blandit. Donec neque quam,\n"
37"dignissim in, mollis nec, sagittis eu, wisi. Phasellus lacus. Etiam\n"
38"laoreet quam sed arcu. Phasellus at dui in ligula mollis ultricies.\n"
39"Integer placerat tristique nisl. Praesent augue. Fusce commodo.\n"
40"Vestibulum convallis, lorem a tempus semper, dui dui euismod elit,\n"
41"vitae placerat urna tortor vitae lacus. Nullam libero mauris,\n"
42"consequat quis, varius et, dictum id, arcu. Mauris mollis tincidunt\n"
43"felis. Aliquam feugiat tellus ut neque. Nulla facilisis, risus a\n"
44"rhoncus fermentum, tellus tellus lacinia purus, et dictum nunc justo\n"
45"sit amet elit.\n"
46msgstr ""
diff --git a/src/ru/web-log/index.org.po b/src/ru/web-log/index.org.po
new file mode 100644
index 0000000..7b44ced
--- /dev/null
+++ b/src/ru/web-log/index.org.po
@@ -0,0 +1,31 @@
1# Russian translations for Martin\'s personal website package
2# Copyright (C) 2024 Martin
3# This file is distributed under the same license as the Martin\'s personal website package.
4# Automatically generated, 2024.
5#
6msgid ""
7msgstr ""
8"Project-Id-Version: Martin\\'s personal website master\n"
9"Report-Msgid-Bugs-To: martin@michalec.dev\n"
10"POT-Creation-Date: 2024-10-24 07:50+0300\n"
11"PO-Revision-Date: 2024-10-24 07:50+0300\n"
12"Last-Translator: Automatically generated\n"
13"Language-Team: none\n"
14"Language: ru\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
18"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
19"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
20
21#. type: Plain text
22#: src/en/articles/index.org:3 src/en/web-log/index.org:3
23#, no-wrap
24msgid "#+include: \"sitemap.org\" :lines \"4-\"\n"
25msgstr ""
26
27#. type: Plain text
28#: src/en/web-log/index.org:2
29#, no-wrap
30msgid "#+TITLE: Web Log\n"
31msgstr ""
diff --git a/src/sk/articles/gnu+linux-and-emacs-introduction/index.org.po b/src/sk/articles/gnu+linux-and-emacs-introduction/index.org.po
new file mode 100644
index 0000000..3684c8d
--- /dev/null
+++ b/src/sk/articles/gnu+linux-and-emacs-introduction/index.org.po
@@ -0,0 +1,1381 @@
1# Slovak translations for Martin\'s personal website package
2# Copyright (C) 2024 Martin
3# This file is distributed under the same license as the Martin\'s personal website package.
4# Automatically generated, 2024.
5#
6msgid ""
7msgstr ""
8"Project-Id-Version: Martin\\'s personal website master\n"
9"Report-Msgid-Bugs-To: martin@michalec.dev\n"
10"POT-Creation-Date: 2024-10-30 20:02+0300\n"
11"PO-Revision-Date: 2024-10-24 06:12+0300\n"
12"Last-Translator: Automatically generated\n"
13"Language-Team: none\n"
14"Language: sk\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
18"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
19
20#. type: Plain text
21#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:3
22#, no-wrap
23msgid ""
24"#+title: GNU/Linux and GNU Emacs Introduction\n"
25"#+keywords: beginner gnu linux emacs\n"
26msgstr ""
27
28#. type: Plain text
29#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:8
30#, no-wrap
31msgid ""
32"* Installing Debian\n"
33"** Preparations\n"
34"*** Getting debian\n"
35"Download Debian [[https://www.debian.org/][installer image]]\n"
36msgstr ""
37
38#. type: Plain text
39#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:12
40#, no-wrap
41msgid ""
42"*** Creating installation medium\n"
43"On =M$= Windows, use a tool like [[https://rufus.ie/en/][Rufus]] to create a bootable USB flash\n"
44"drive with the downloaded =.iso= file\n"
45msgstr ""
46
47#. type: Plain text
48#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:15
49#, no-wrap
50msgid ""
51"*** Allocating disk space\n"
52"Either get an empty disk or shrink on of your data partitions (toms) to get a continuous region of free space which is at least around 100GB.\n"
53msgstr ""
54
55#. type: Plain text
56#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:19
57#, no-wrap
58msgid ""
59"** Installation process\n"
60"If installing on a laptop, make sure that it's fully charged and keep\n"
61"the charger plugged in.\n"
62msgstr ""
63
64#. type: Plain text
65#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:22
66#, no-wrap
67msgid ""
68"*** Booting from the installation medium\n"
69"NOTE: You might have to enable booting from USB in BIOS.\n"
70msgstr ""
71
72#. type: Plain text
73#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:24
74#, no-wrap
75msgid "Select the USB from boot menu or change boot order.\n"
76msgstr ""
77
78#. type: Plain text
79#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:27
80#, no-wrap
81msgid ""
82"*** The Debian installer\n"
83"Select the =install= option (not the =Graphical install=) in the GRUB bootloader.\n"
84msgstr ""
85
86#. type: Plain text
87#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:29
88#, no-wrap
89msgid "To navigate the menus, use arrow keys and TAB, to toggle check boxes use spacebar and to press button use the enter key.\n"
90msgstr ""
91
92#. type: Plain text
93#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:47
94#, no-wrap
95msgid ""
96"Simple guide:\n"
97"1. Select region\n"
98"2. Select localization (US)\n"
99"3. Select keyboard layout (most likely US/ISO)\n"
100"4. Select connected if you have Ethernet connection or wireless if you\n"
101" want to connect to wifi.\n"
102"5. Choose hostname.\n"
103"6. Skip domain name.\n"
104"7. Skip proxy.\n"
105"8. Select mirror in your region.\n"
106"9. Set root password.\n"
107"10. Set user's full name, username and password.\n"
108"11. Deselect all software packages except base.\n"
109"12. To dual boot with Windows select guided partitioning (free space).\n"
110"13. Select =/home= folder on a separate partition.\n"
111"14. Start the installation.\n"
112"15. Reboot and check that you can boot everything.\n"
113msgstr ""
114
115#. type: Plain text
116#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:59
117#, no-wrap
118msgid ""
119"* Setting up GNU/Linux\n"
120"** User setup\n"
121"1. Login as root\n"
122"1. Edit =/etc/apt/sources= and add =non-free contrib testing unstable=\n"
123"2. ~apt udpate~\n"
124"3. ~apt upgrade~\n"
125"4. ~apt install sudo~\n"
126"5. ~visudo~ (%wheel ALL=(ALL) NOPASSWD: ALL)\n"
127"6. ~groupadd wheel~\n"
128"7. ~usermod -aG wheel YOUR_USERNAME~\n"
129"8. ~exit~\n"
130msgstr ""
131
132#. type: Plain text
133#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:70
134#, no-wrap
135msgid ""
136"** Environment setup\n"
137"*** Folder setup\n"
138"#+begin_src sh\n"
139"cd\n"
140"rmdir Downloads Desktop ...\n"
141"mkdir downloads documents multimedia\n"
142"cd multimedia\n"
143"mkdir screenshots\n"
144"mkdir screencasts\n"
145"#+end_src\n"
146msgstr ""
147
148#. type: Plain text
149#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:73
150#, no-wrap
151msgid ""
152"*** Emacs setup\n"
153"~sudo apt install emacs git vterm-module libtd~\n"
154msgstr ""
155
156#. type: Plain text
157#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:75
158#, no-wrap
159msgid "Delete =~/.emacs.d=\n"
160msgstr ""
161
162#. type: Plain text
163#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:77
164#, no-wrap
165msgid "Edit =~/.config/emacs/init.el=\n"
166msgstr ""
167
168#. type: Plain text
169#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:83
170#, no-wrap
171msgid ""
172"#+name: emacs-server\n"
173"#+header: :tangle emacs/init.el\n"
174"#+begin_src emacs-lisp\n"
175"(server-start)\n"
176"#+end_src\n"
177msgstr ""
178
179#. type: Plain text
180#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:100
181#, no-wrap
182msgid ""
183"#+name: emacs-straight\n"
184"#+header: :tangle emacs/init.el\n"
185"#+begin_src emacs-lisp\n"
186"(defvar bootstrap-version)\n"
187"(let ((bootstrap-file\n"
188" (expand-file-name\n"
189" \"straight/repos/straight.el/bootstrap.el\" user-emacs-directory))\n"
190" (bootstrap-version 6))\n"
191" (unless (file-exists-p bootstrap-file)\n"
192" (with-current-buffer\n"
193" (url-retrieve-synchronously\n"
194" \"https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el\"\n"
195" 'silent 'inhibit-cookies)\n"
196" (goto-char (point-max))\n"
197" (eval-print-last-sexp)))\n"
198" (load bootstrap-file nil 'nomessage))\n"
199msgstr ""
200
201#. type: Plain text
202#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:105
203#, no-wrap
204msgid ""
205"(straight-use-package 'use-package)\n"
206"(setq straight-use-package-by-default t\n"
207" use-package-always-ensure t)\n"
208"#+end_src\n"
209msgstr ""
210
211#. type: Plain text
212#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:115
213#, no-wrap
214msgid ""
215"#+name: emacs-coding\n"
216"#+header: :tangle emacs/init.el\n"
217"#+begin_src emacs-lisp\n"
218"(prefer-coding-system 'utf-8)\n"
219"(set-language-environment \"UTF-8\")\n"
220"(set-default-coding-systems 'utf-8)\n"
221"(set-terminal-coding-system 'utf-8)\n"
222"(setq-default buffer-file-coding-system 'utf-8)\n"
223"#+end_src\n"
224msgstr ""
225
226#. type: Plain text
227#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:123
228#, no-wrap
229msgid ""
230"#+name: emacs-clean-look\n"
231"#+header: :tangle emacs/init.el\n"
232"#+begin_src emacs-lisp\n"
233"(menu-bar-mode -1)\n"
234"(tool-bar-mode -1)\n"
235"(scroll-bar-mode -1)\n"
236"#+end_src\n"
237msgstr ""
238
239#. type: Plain text
240#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:138
241#, no-wrap
242msgid ""
243"#+name: emacs-misc\n"
244"#+header: :tangle emacs/init.el\n"
245"#+begin_src emacs-lisp\n"
246"(setq kill-ring-max 10000)\n"
247"(repeat-mode 1)\n"
248"(auto-insert-mode 1)\n"
249"(global-hl-line-mode 1)\n"
250"(setq display-time-24hr-format t)\n"
251"(setq default-input-method \"russian-computer\")\n"
252"(load-theme 'modus-vivendi t)\n"
253"(fset 'yes-or-no-p 'y-or-n-p)\n"
254"(set-face-attribute 'default nil :font \"Iosevka\" :height 180)\n"
255"(global-subword-mode)\n"
256"#+end_src\n"
257msgstr ""
258
259#. type: Plain text
260#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:148
261#, no-wrap
262msgid ""
263"#+name: emacs-compilation\n"
264"#+header: :tangle emacs/init.el\n"
265"#+begin_src emacs-lisp\n"
266"(require 'ansi-color)\n"
267"(add-hook 'compilation-filter-hook 'ansi-color-compilation-filter)\n"
268"(add-hook 'compilation-mode-hook 'toggle-truncate-lines)\n"
269"(define-key global-map (kbd \"C-<f5>\") 'compile)\n"
270"(define-key global-map (kbd \"<f5>\") 'recompile)\n"
271"#+end_src\n"
272msgstr ""
273
274#. type: Plain text
275#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:155
276#, no-wrap
277msgid ""
278"#+name: emacs-trash\n"
279"#+header: :tangle emacs/init.el\n"
280"#+begin_src emacs-lisp\n"
281"(use-package trashed)\n"
282"(setq delete-by-moving-to-trash t)\n"
283"#+end_src\n"
284msgstr ""
285
286#. type: Plain text
287#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:163
288#, no-wrap
289msgid ""
290"#+name: emacs-undo-tree\n"
291"#+header: :tangle emacs/init.el\n"
292"#+begin_src emacs-lisp\n"
293"(use-package undo-tree\n"
294" :config\n"
295" (global-undo-tree-mode))\n"
296"#+end_src\n"
297msgstr ""
298
299#. type: Plain text
300#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:171
301#, no-wrap
302msgid ""
303"#+name: emacs-page-break-lines\n"
304"#+header: :tangle emacs/init.el\n"
305"#+begin_src emacs-lisp\n"
306"(use-package page-break-lines\n"
307" :config\n"
308" (global-page-break-lines-mode))\n"
309"#+end_src\n"
310msgstr ""
311
312#. type: Plain text
313#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:188
314#, no-wrap
315msgid ""
316"#+name: emacs-pdf-tools\n"
317"#+header: :tangle emacs/init.el\n"
318"#+begin_src emacs-lisp\n"
319"(use-package pdf-tools\n"
320" :demand t\n"
321" :hook (pdf-view-mode . pdf-view-themed-minor-mode)\n"
322" :config\n"
323" ;; Initialize the package\n"
324" (pdf-tools-install)\n"
325" ;; Associate pdf-view-mode with PDF files\n"
326" (add-to-list 'auto-mode-alist '(\"\\\\.pdf\\\\'\" . pdf-view-mode))\n"
327" ;; Enable seamless scrolling between pages\n"
328" (setq pdf-view-continuous-scroll-mode t)\n"
329" ;; Use normal Emacs keybindings for scrolling\n"
330" (setq pdf-view-continuous-scroll-keystrokes nil))\n"
331"#+end_src\n"
332msgstr ""
333
334#. type: Plain text
335#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:194
336#, no-wrap
337msgid ""
338"#+name: emacs-eglot\n"
339"#+header: :tangle emacs/init.el\n"
340"#+begin_src emacs-lisp\n"
341"(use-package eglot)\n"
342"#+end_src\n"
343msgstr ""
344
345#. type: Plain text
346#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:200
347#, no-wrap
348msgid ""
349"#+name: emacs-project\n"
350"#+header: :tangle emacs/init.el\n"
351"#+begin_src emacs-lisp\n"
352"(use-package project)\n"
353"#+end_src\n"
354msgstr ""
355
356#. type: Plain text
357#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:207
358#, no-wrap
359msgid ""
360"#+name: emacs-terminals\n"
361"#+header: :tangle emacs/init.el\n"
362"#+begin_src emacs-lisp\n"
363"(use-package vterm)\n"
364"(use-package eat)\n"
365"#+end_src\n"
366msgstr ""
367
368#. type: Plain text
369#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:215
370#, no-wrap
371msgid ""
372"#+name: emacs-telega\n"
373"#+header: :tangle emacs/init.el\n"
374"#+begin_src emacs-lisp\n"
375"(use-package telega\n"
376" :custom\n"
377" (telega-server-libs-prefix \"/usr\"))\n"
378"#+end_src\n"
379msgstr ""
380
381#. type: Plain text
382#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:221
383#, no-wrap
384msgid ""
385"#+name: emacs-emms\n"
386"#+header: :tangle emacs/init.el\n"
387"#+begin_src emacs-lisp\n"
388"(use-package emms)\n"
389"#+end_src\n"
390msgstr ""
391
392#. type: Plain text
393#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:229
394#, no-wrap
395msgid ""
396"#+name: emacs-multitran\n"
397"#+header: :tangle emacs/init.el\n"
398"#+begin_src emacs-lisp\n"
399"(use-package multitran\n"
400" :bind\n"
401" ((\"s-t\" . multitran-at-pos)))\n"
402"#+end_src\n"
403msgstr ""
404
405#. type: Plain text
406#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:237
407#, no-wrap
408msgid ""
409"#+name: emacs-savehist\n"
410"#+header: :tangle emacs/init.el\n"
411"#+begin_src emacs-lisp\n"
412"(use-package savehist\n"
413" :config\n"
414" (savehist-mode))\n"
415"#+end_src\n"
416msgstr ""
417
418#. type: Plain text
419#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:243
420#, no-wrap
421msgid ""
422"#+name: emacs-lorem-ipsum\n"
423"#+header: :tangle emacs/init.el\n"
424"#+begin_src emacs-lisp\n"
425"(use-package lorem-ipsum)\n"
426"#+end_src\n"
427msgstr ""
428
429#. type: Plain text
430#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:251
431#, no-wrap
432msgid ""
433"#+name: emacs-smartparens\n"
434"#+header: :tangle emacs/init.el\n"
435"#+begin_src emacs-lisp\n"
436"(use-package smartparens\n"
437" :init\n"
438" (smartparens-global-mode t))\n"
439"#+end_src\n"
440msgstr ""
441
442#. type: Plain text
443#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:262
444#, no-wrap
445msgid ""
446"#+name: emacs-completion\n"
447"#+header: :tangle emacs/init.el\n"
448"#+begin_src emacs-lisp\n"
449"(use-package vertico\n"
450" :init\n"
451" (vertico-mode)\n"
452" ;; (setq vertico-scroll-margin 0)\n"
453" ;; (setq vertico-count 20)\n"
454" ;; (setq vertico-resize t)\n"
455" (setq vertico-cycle t))\n"
456msgstr ""
457
458#. type: Plain text
459#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:271
460#, no-wrap
461msgid ""
462"(use-package orderless\n"
463" :init\n"
464" ;; (setq orderless-style-dispatchers '(+orderless-consult-dispatch\n"
465" ;; orderless-affix-dispatch)\n"
466" orderless-component-separator #'orderless-escapable-split-on-space)\n"
467"(setq completion-styles '(orderless basic)\n"
468" completion-category-defaults nil\n"
469" completion-category-overrides '((file (styles partial-completion)))))\n"
470msgstr ""
471
472#. type: Plain text
473#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:324
474#, no-wrap
475msgid ""
476"(use-package consult\n"
477" :bind (;; C-c bindings in `mode-specific-map'\n"
478" (\"C-c M-x\" . consult-mode-command)\n"
479" (\"C-c h\" . consult-history)\n"
480" (\"C-c k\" . consult-kmacro)\n"
481" (\"C-c m\" . consult-man)\n"
482" (\"C-c i\" . consult-info)\n"
483" ([remap Info-search] . consult-info)\n"
484" ;; C-x bindings in `ctl-x-map'\n"
485" (\"C-x M-:\" . consult-complex-command) ;; orig. repeat-complex-command\n"
486" (\"C-x b\" . consult-buffer) ;; orig. switch-to-buffer\n"
487" (\"C-x 4 b\" . consult-buffer-other-window) ;; orig. switch-to-buffer-other-window\n"
488" (\"C-x 5 b\" . consult-buffer-other-frame) ;; orig. switch-to-buffer-other-frame\n"
489" (\"C-x r b\" . consult-bookmark) ;; orig. bookmark-jump\n"
490" (\"C-x p b\" . consult-project-buffer) ;; orig. project-switch-to-buffer\n"
491" ;; Custom M-# bindings for fast register access\n"
492" (\"M-#\" . consult-register-load)\n"
493" (\"M-'\" . consult-register-store) ;; orig. abbrev-prefix-mark (unrelated)\n"
494" (\"C-M-#\" . consult-register)\n"
495" ;; Other custom bindings\n"
496" (\"M-y\" . consult-yank-pop) ;; orig. yank-pop\n"
497" ;; M-g bindings in `goto-map'\n"
498" (\"M-g e\" . consult-compile-error)\n"
499" (\"M-g f\" . consult-flymake) ;; Alternative: consult-flycheck\n"
500" (\"M-g g\" . consult-goto-line) ;; orig. goto-line\n"
501" (\"M-g M-g\" . consult-goto-line) ;; orig. goto-line\n"
502" (\"M-g o\" . consult-outline) ;; Alternative: consult-org-heading\n"
503" (\"M-g m\" . consult-mark)\n"
504" (\"M-g k\" . consult-global-mark)\n"
505" (\"M-g i\" . consult-imenu)\n"
506" (\"M-g I\" . consult-imenu-multi)\n"
507" ;; M-s bindings in `search-map'\n"
508" (\"M-s d\" . consult-find) ;; Alternative: consult-fd\n"
509" (\"M-s D\" . consult-locate)\n"
510" (\"M-s g\" . consult-grep)\n"
511" (\"M-s G\" . consult-git-grep)\n"
512" (\"M-s r\" . consult-ripgrep)\n"
513" (\"M-s l\" . consult-line)\n"
514" (\"M-s L\" . consult-line-multi)\n"
515" (\"M-s k\" . consult-keep-lines)\n"
516" (\"M-s u\" . consult-focus-lines)\n"
517" ;; Isearch integration\n"
518" (\"M-s e\" . consult-isearch-history)\n"
519" :map isearch-mode-map\n"
520" (\"M-e\" . consult-isearch-history) ;; orig. isearch-edit-string\n"
521" (\"M-s e\" . consult-isearch-history) ;; orig. isearch-edit-string\n"
522" (\"M-s l\" . consult-line) ;; needed by consult-line to detect isearch\n"
523" (\"M-s L\" . consult-line-multi) ;; needed by consult-line to detect isearch\n"
524" ;; Minibuffer history\n"
525" :map minibuffer-local-map\n"
526" (\"M-s\" . consult-history) ;; orig. next-matching-history-element\n"
527" (\"M-r\" . consult-history)) ;; orig. previous-matching-history-element\n"
528msgstr ""
529
530#. type: Plain text
531#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:334
532#, no-wrap
533msgid ""
534" ;; Enable automatic preview at point in the *Completions* buffer. This is\n"
535" ;; relevant when you use the default completion UI.\n"
536" :hook (completion-list-mode . consult-preview-at-point-mode)\n"
537" :init\n"
538" ;; Optionally configure the register formatting. This improves the register\n"
539" ;; preview for `consult-register', `consult-register-load',\n"
540" ;; `consult-register-store' and the Emacs built-ins.\n"
541" (setq register-preview-delay 0.5\n"
542" register-preview-function #'consult-register-format)\n"
543msgstr ""
544
545#. type: Plain text
546#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:338
547#, no-wrap
548msgid ""
549" ;; Optionally tweak the register preview window.\n"
550" ;; This adds thin lines, sorting and hides the mode line of the window.\n"
551" (advice-add #'register-preview :override #'consult-register-window)\n"
552msgstr ""
553
554#. type: Plain text
555#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:342
556#, no-wrap
557msgid ""
558" ;; Use Consult to select xref locations with preview\n"
559" (setq xref-show-xrefs-function #'consult-xref\n"
560" xref-show-definitions-function #'consult-xref)\n"
561msgstr ""
562
563#. type: Plain text
564#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:346
565#, no-wrap
566msgid ""
567" ;; Configure other variables and modes in the :config section,\n"
568" ;; after lazily loading the package.\n"
569" :config\n"
570msgstr ""
571
572#. type: Plain text
573#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:362
574#, no-wrap
575msgid ""
576" ;; Optionally configure preview. The default value\n"
577" ;; is 'any, such that any key triggers the preview.\n"
578" ;; (setq consult-preview-key 'any)\n"
579" ;; (setq consult-preview-key \"M-.\")\n"
580" ;; (setq consult-preview-key '(\"S-<down>\" \"S-<up>\"))\n"
581" ;; For some commands and buffer sources it is useful to configure the\n"
582" ;; :preview-key on a per-command basis using the `consult-customize' macro.\n"
583" (consult-customize\n"
584" consult-theme :preview-key '(:debounce 0.2 any)\n"
585" consult-ripgrep consult-git-grep consult-grep\n"
586" consult-bookmark consult-recent-file consult-xref\n"
587" consult--source-bookmark consult--source-file-register\n"
588" consult--source-recent-file consult--source-project-recent-file\n"
589" ;; :preview-key \"M-.\"\n"
590" :preview-key '(:debounce 0.4 any))\n"
591msgstr ""
592
593#. type: Plain text
594#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:366
595#, no-wrap
596msgid ""
597" ;; Optionally configure the narrowing key.\n"
598" ;; Both < and C-+ work reasonably well.\n"
599" (setq consult-narrow-key \"<\") ;; \"C-+\"\n"
600msgstr ""
601
602#. type: Plain text
603#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:371
604#, no-wrap
605msgid ""
606" ;; Optionally make narrowing help available in the minibuffer.\n"
607" ;; You may want to use `embark-prefix-help-command' or which-key instead.\n"
608" ;; (define-key consult-narrow-map (vconcat consult-narrow-key \"?\") #'consult-narrow-help)\n"
609" )\n"
610msgstr ""
611
612#. type: Plain text
613#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:386
614#, no-wrap
615msgid ""
616"(use-package corfu\n"
617" :custom\n"
618" (corfu-cycle t) ;; Enable cycling for `corfu-next/previous'\n"
619" (corfu-auto t) ;; Enable auto completion\n"
620" (corfu-separator ?\\s) ;; Orderless field separator\n"
621" (corfu-quit-at-boundary nil) ;; Never quit at completion boundary\n"
622" (corfu-quit-no-match nil) ;; Never quit, even if there is no match\n"
623" (corfu-preview-current nil) ;; Disable current candidate preview\n"
624" (corfu-preselect 'prompt) ;; Preselect the prompt\n"
625" (corfu-on-exact-match nil) ;; Configure handling of exact matches\n"
626" (corfu-scroll-margin 5) ;; Use scroll margin\n"
627" :init\n"
628" (global-corfu-mode))\n"
629"#+end_src\n"
630msgstr ""
631
632#. type: Plain text
633#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:396
634#, no-wrap
635msgid ""
636"#+name: emacs-dired\n"
637"#+header: :tangle emacs/init.el\n"
638"#+begin_src emacs-lisp\n"
639"(setq dired-listing-switches \"-alh\"\n"
640" dired-dwim-target t\n"
641" dired-recursive-copies 'always\n"
642" dired-recursive-deletes 'always)\n"
643"(use-package dired-single)\n"
644"#+end_src\n"
645msgstr ""
646
647#. type: Plain text
648#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:412
649#, no-wrap
650msgid ""
651"#+name: emacs-emacs\n"
652"#+header: :tangle emacs/init.el\n"
653"#+begin_src emacs-lisp\n"
654"(use-package emacs\n"
655" :init\n"
656" ;; Add prompt indicator to `completing-read-multiple'.\n"
657" ;; We display [CRM<separator>], e.g., [CRM,] if the separator is a comma.\n"
658" (defun crm-indicator (args)\n"
659" (cons (format \"[CRM%s] %s\"\n"
660" (replace-regexp-in-string\n"
661" \"\\\\`\\\\[.*?]\\\\*\\\\|\\\\[.*?]\\\\*\\\\'\" \"\"\n"
662" crm-separator)\n"
663" (car args))\n"
664" (cdr args)))\n"
665" (advice-add #'completing-read-multiple :filter-args #'crm-indicator)\n"
666msgstr ""
667
668#. type: Plain text
669#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:417
670#, no-wrap
671msgid ""
672" ;; Do not allow the cursor in the minibuffer prompt\n"
673" (setq minibuffer-prompt-properties\n"
674" '(read-only t cursor-intangible t face minibuffer-prompt))\n"
675" (add-hook 'minibuffer-setup-hook #'cursor-intangible-mode)\n"
676msgstr ""
677
678#. type: Plain text
679#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:420
680#, no-wrap
681msgid ""
682" ;; Enable recursive minibuffers\n"
683" (setq enable-recursive-minibuffers t))\n"
684msgstr ""
685
686#. type: Plain text
687#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:430
688#, no-wrap
689msgid ""
690";; Save all tempfiles in $TMPDIR/emacs$UID/\n"
691"(defconst emacs-tmp-dir (expand-file-name (format \"emacs%d\" (user-uid)) temporary-file-directory))\n"
692"(setq backup-directory-alist\n"
693" `((\".*\" . ,emacs-tmp-dir)))\n"
694"(setq auto-save-file-name-transforms\n"
695" `((\".*\" ,emacs-tmp-dir t)))\n"
696"(setq auto-save-list-file-prefix\n"
697" emacs-tmp-dir)\n"
698"#+end_src\n"
699msgstr ""
700
701#. type: Plain text
702#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:443
703#, no-wrap
704msgid ""
705"#+name: emacs-multiple-cursors\n"
706"#+header: :tangle emacs/init.el\n"
707"#+begin_src emacs-lisp\n"
708"(use-package multiple-cursors\n"
709" :bind\n"
710" ((\"C-S-c\" . mc/edit-lines)\n"
711" (\"C->\" . mc/mark-next-like-this)\n"
712" (\"C-<\" . mc/mark-previous-like-this)\n"
713" (\"C-c C-S-c\" . mc/mark-all-like-this)\n"
714" (\"C-\\\"\" . mc/skip-to-next-like-this)\n"
715" (\"C-:\" . mc/skip-to-previous-like-this)))\n"
716"#+end_src\n"
717msgstr ""
718
719#. type: Plain text
720#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:451
721#, no-wrap
722msgid ""
723"#+name: emacs-expand-region\n"
724"#+header: :tangle emacs/init.el\n"
725"#+begin_src emacs-lisp\n"
726"(use-package expand-region\n"
727" :bind\n"
728" ((\"C-M-=\" . er/expand-region)))\n"
729"#+end_src\n"
730msgstr ""
731
732#. type: Plain text
733#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:460
734#, no-wrap
735msgid ""
736"#+name: emacs-move-text\n"
737"#+header: :tangle emacs/init.el\n"
738"#+begin_src emacs-lisp\n"
739"(use-package move-text\n"
740" :bind\n"
741" ((\"M-P\" . move-text-up)\n"
742" (\"M-N\" . move-text-down)))\n"
743"#+end_src\n"
744msgstr ""
745
746#. type: Plain text
747#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:467
748#, no-wrap
749msgid ""
750"#+name: emacs-duplicate\n"
751"#+header: :tangle emacs/init.el\n"
752"#+begin_src emacs-lisp\n"
753"(keymap-global-set \"C-'\" 'duplicate-dwim)\n"
754"(setq duplicate-line-final-position 1)\n"
755"#+end_src\n"
756msgstr ""
757
758#. type: Plain text
759#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:475
760#, no-wrap
761msgid ""
762"#+name: emacs-hl-todo\n"
763"#+header: :tangle emacs/init.el\n"
764"#+begin_src emacs-lisp\n"
765"(use-package hl-todo\n"
766" :config\n"
767" (global-hl-todo-mode 1))\n"
768"#+end_src\n"
769msgstr ""
770
771#. type: Plain text
772#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:490
773#, no-wrap
774msgid ""
775"#+name: emacs-ligature\n"
776"#+header: :tangle emacs/init.el\n"
777"#+begin_src emacs-lisp\n"
778"(use-package ligature\n"
779" :config\n"
780" (ligature-set-ligatures\n"
781" 't '(\"-<<\" \"-<\" \"-<-\" \"<--\" \"<---\" \"<<-\" \"<-\" \"->\" \"->>\" \"-->\" \"--->\" \"->-\" \">-\" \">>-\"\n"
782" \"=<<\" \"=<\" \"=<=\" \"<==\" \"<===\" \"<<=\" \"<=\" \"=>\" \"=>>\" \"==>\" \"===>\" \"=>=\" \">=\" \">>=\"\n"
783" \"<->\" \"<-->\" \"<--->\" \"<---->\" \"<=>\" \"<==>\" \"<===>\" \"<====>\" \"::\" \":::\" \"__\"\n"
784" \"<~~\" \"</\" \"</>\" \"/>\" \"~~>\" \"==\" \"!=\" \"/=\" \"~=\" \"<>\" \"===\" \"!==\" \"!===\" \"=/=\" \"=!=\"\n"
785" \"<:\" \":=\" \"*=\" \"*+\" \"<*\" \"<*>\" \"*>\" \"<|\" \"<|>\" \"|>\" \"<.\" \"<.>\" \".>\" \"+*\" \"=*\" \"=:\" \":>\"\n"
786" \"(*\" \"*)\" \"/*\" \"*/\" \"[|\" \"|]\" \"{|\" \"|}\" \"++\" \"+++\" \"\\\\/\" \"/\\\\\" \"|-\" \"-|\" \"<!--\" \"<!---\"))\n"
787" (global-ligature-mode -1))\n"
788"#+end_src\n"
789msgstr ""
790
791#. type: Plain text
792#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:496
793#, no-wrap
794msgid ""
795"#+name: emacs-magit\n"
796"#+header: :tangle emacs/init.el\n"
797"#+begin_src emacs-lisp\n"
798"(use-package magit)\n"
799"#+end_src\n"
800msgstr ""
801
802#. type: Plain text
803#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:502
804#, no-wrap
805msgid ""
806"#+name: emacs-restart-emacs\n"
807"#+header: :tangle emacs/init.el\n"
808"#+begin_src emacs-lisp\n"
809"(use-package restart-emacs)\n"
810"#+end_src\n"
811msgstr ""
812
813#. type: Plain text
814#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:508
815#, no-wrap
816msgid ""
817"#+name: emacs-bluetooth\n"
818"#+header: :tangle emacs/init.el\n"
819"#+begin_src emacs-lisp\n"
820"(use-package bluetooth)\n"
821"#+end_src\n"
822msgstr ""
823
824#. type: Plain text
825#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:514
826#, no-wrap
827msgid ""
828"*** Installing fonts\n"
829"1. Wget latest =PkgTTC-Iosevka-X.X.X.zip= asset from [[https://github.com/be5invis/Iosevka/releases][iosevka releases]]\n"
830"2. ~unzip DOWNLOADED_FILE~\n"
831"3. ~mv contents ~/.local/share/fonts~\n"
832"4. ~fc-cache -fv~\n"
833msgstr ""
834
835#. type: Plain text
836#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:518
837#, no-wrap
838msgid ""
839"*** i3 setup\n"
840"~sudo apt install xorg i3 dbus-launch maim udiskie~\n"
841"Edit =~/.xinitrc=\n"
842msgstr ""
843
844#. type: Plain text
845#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:525
846#, no-wrap
847msgid ""
848"Disable access control for the current user.\n"
849"#+name: xinitrc-xhost\n"
850"#+header: :tangle .xinitrc\n"
851"#+begin_src sh\n"
852"xhost +SI:localuser:$USER\n"
853"#+end_src\n"
854msgstr ""
855
856#. type: Plain text
857#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:531
858#, no-wrap
859msgid ""
860"#+name: xinitrc-xset\n"
861"#+header: :tangle .xinitrc\n"
862"#+begin_src sh\n"
863"xset r rate 250 30\n"
864"#+end_src\n"
865msgstr ""
866
867#. type: Plain text
868#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:537
869#, no-wrap
870msgid ""
871"#+name: xinitrc-dbus-launch\n"
872"#+header: :tangle .xinitrc\n"
873"#+begin_src sh\n"
874"exec dbus-launch --exit-with-session i3\n"
875"#+end_src\n"
876msgstr ""
877
878#. type: Plain text
879#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:539
880#, no-wrap
881msgid "Edit =~/.config/i3/config=\n"
882msgstr ""
883
884#. type: Plain text
885#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:549
886#, no-wrap
887msgid ""
888"#+header: :tangle i3/config :exports none\n"
889"#+begin_src conf-space\n"
890"# Please see https://i3wm.org/docs/userguide.html for a complete reference!\n"
891"#+end_src\n"
892"#+name: i3-config-mod\n"
893"#+header: :tangle i3/config\n"
894"#+begin_src conf-space\n"
895"set $mod Mod4\n"
896"#+end_src\n"
897msgstr ""
898
899#. type: Plain text
900#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:562
901#, no-wrap
902msgid ""
903"Font for window titles. Will also be used by the bar unless a\n"
904"different font is used in the bar ={}= block below.\n"
905"#+header: :tangle i3/config :exports none\n"
906"#+begin_src conf-space\n"
907"# Font for window titles. Will also be used by the bar unless a different font\n"
908"# is used in the bar {} block below.\n"
909"#+end_src\n"
910"#+name: i3-config-font\n"
911"#+header: :tangle i3/config\n"
912"#+begin_src conf-space\n"
913"font pango:monospace 12\n"
914"#+end_src\n"
915msgstr ""
916
917#. type: Plain text
918#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:575
919#, no-wrap
920msgid ""
921"Start XDG autostart =.desktop= files using =dex=. See also [[https://wiki.archlinux.org/index.php/XDG_Autostart][XDG Autostart -\n"
922"ArchWiki]]\n"
923"#+header: :tangle i3/config :exports none\n"
924"#+begin_src conf-space\n"
925"# Start XDG autostart .desktop files using dex. See also\n"
926"# https://wiki.archlinux.org/index.php/XDG_Autostart\n"
927"#+end_src\n"
928"#+name: i3-config-dex\n"
929"#+header: :tangle i3/config\n"
930"#+begin_src conf-space\n"
931"exec --no-startup-id dex --autostart --environment i3\n"
932"#+end_src\n"
933msgstr ""
934
935#. type: Plain text
936#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:578
937#, no-wrap
938msgid ""
939"The combination of ~xss-lock~, ~nm-applet~ and ~pactl~ is a popular choice,\n"
940"so they are included here as an example. Modify as you see fit.\n"
941msgstr ""
942
943#. type: Plain text
944#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:582
945#, no-wrap
946msgid ""
947"~xss-lock~ grabs a =logind suspend inhibit lock= and will use ~i3lock~ to\n"
948"lock the screen before suspend. Use ~loginctl lock-session~ to lock your\n"
949"screen.\n"
950msgstr ""
951
952#. type: Plain text
953#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:587
954#, no-wrap
955msgid ""
956"#+header: :tangle i3/config :exports none\n"
957"#+begin_src conf-space\n"
958"# The combination of xss-lock, nm-applet and pactl is a popular choice, so\n"
959"# they are included here as an example. Modify as you see fit.\n"
960msgstr ""
961
962#. type: Plain text
963#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:596
964#, no-wrap
965msgid ""
966"# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the\n"
967"# screen before suspend. Use loginctl lock-session to lock your screen.\n"
968"#+end_src\n"
969"#+name: i3-config-xss-lock\n"
970"#+header: :tangle i3/config\n"
971"#+begin_src conf-space\n"
972"exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork\n"
973"#+end_src\n"
974msgstr ""
975
976#. type: Plain text
977#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:602
978#, no-wrap
979msgid ""
980"#+name: i3-config-setxkbmap\n"
981"#+header: :tangle i3/config\n"
982"#+begin_src conf-space\n"
983"exec --no-startup-id setxkbmap -layout \"us,ru\" -option 'grp:shifts_toggle' -option \"ctrl:nocaps\"\n"
984"#+end_src\n"
985msgstr ""
986
987#. type: Plain text
988#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:608
989#, no-wrap
990msgid ""
991"#+name: i3-config-udiskie\n"
992"#+header: :tangle i3/config\n"
993"#+begin_src conf-space\n"
994"exec --no-startup-id udiskie --automount\n"
995"#+end_src\n"
996msgstr ""
997
998#. type: Plain text
999#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:622
1000#, no-wrap
1001msgid ""
1002"NetworkManager is the most popular way to manage wireless networks on\n"
1003"Linux, and ~nm-applet~ is a desktop environment-independent system tray\n"
1004"GUI for it.\n"
1005"#+header: :tangle i3/config :exports none\n"
1006"#+begin_src conf-space\n"
1007"# NetworkManager is the most popular way to manage wireless networks on Linux,\n"
1008"# and nm-applet is a desktop environment-independent system tray GUI for it.\n"
1009"#+end_src\n"
1010"#+name: i3-config-nm-applet\n"
1011"#+header: :tangle i3/config\n"
1012"#+begin_src conf-space\n"
1013"exec --no-startup-id nm-applet\n"
1014"#+end_src\n"
1015msgstr ""
1016
1017#. type: Plain text
1018#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:628
1019#, no-wrap
1020msgid ""
1021"#+name: i3-config-emacs\n"
1022"#+header: :tangle i3/config\n"
1023"#+begin_src conf-space\n"
1024"exec emacs --background black\n"
1025"#+end_src\n"
1026msgstr ""
1027
1028#. type: Plain text
1029#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:643
1030#, no-wrap
1031msgid ""
1032"Use ~pactl~ to adjust volume in PulseAudio.\n"
1033"#+header: :tangle i3/config :exports none\n"
1034"#+begin_src conf-space\n"
1035"# Use pactl to adjust volume in PulseAudio.\n"
1036"#+end_src\n"
1037"#+name: i3-config-pulseaudio\n"
1038"#+header: :tangle i3/config\n"
1039"#+begin_src conf-space\n"
1040"set $refresh_i3status killall -SIGUSR1 i3status\n"
1041"bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status\n"
1042"bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status\n"
1043"bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status\n"
1044"bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status\n"
1045"#+end_src\n"
1046msgstr ""
1047
1048#. type: Plain text
1049#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:655
1050#, no-wrap
1051msgid ""
1052"Change brightness.\n"
1053"#+header: :tangle i3/config :exports none\n"
1054"#+begin_src conf-space\n"
1055"# Change brightness\n"
1056"#+end_src\n"
1057"#+name: i3-config-brightnessctl\n"
1058"#+header: :tangle i3/config\n"
1059"#+begin_src conf-space\n"
1060"bindsym XF86MonBrightnessUp exec --no-startup-id brightnessctl set +5%\n"
1061"bindsym XF86MonBrightnessDown exec --no-startup-id brightnessctl set 5%-\n"
1062"#+end_src\n"
1063msgstr ""
1064
1065#. type: Plain text
1066#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:666
1067#, no-wrap
1068msgid ""
1069"Use =Mouse+$mod= to drag floating windows to their wanted position.\n"
1070"#+header: :tangle i3/config :exports none\n"
1071"#+begin_src conf-space\n"
1072"# Use Mouse+$mod to drag floating windows to their wanted position.\n"
1073"#+end_src\n"
1074"#+name: i3-config-floating_modifier\n"
1075"#+header: :tangle i3/config\n"
1076"#+begin_src conf-space\n"
1077"floating_modifier $mod\n"
1078"#+end_src\n"
1079msgstr ""
1080
1081#. type: Plain text
1082#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:680
1083#, no-wrap
1084msgid ""
1085"Move tiling windows via drag & drop by left-clicking into the title\n"
1086"bar, or left-clicking anywhere into the window while holding the\n"
1087"floating modifier.\n"
1088"#+header: :tangle i3/config :exports none\n"
1089"#+begin_src conf-space\n"
1090"# Move tiling windows via drag & drop by left-clicking into the title bar,\n"
1091"# or left-clicking anywhere into the window while holding the floating modifier.\n"
1092"#+end_src\n"
1093"#+name: i3-config-tiling_drag-modifier\n"
1094"#+header: :tangle i3/config\n"
1095"#+begin_src conf-space\n"
1096"tiling_drag modifier titlebar\n"
1097"#+end_src\n"
1098msgstr ""
1099
1100#. type: Plain text
1101#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:686
1102#, no-wrap
1103msgid ""
1104"#+name: i3-config-bindsym\n"
1105"#+header: :tangle i3/config\n"
1106"#+begin_src conf-space\n"
1107"# start a terminal\n"
1108"bindsym $mod+Return exec emacsclient -c\n"
1109msgstr ""
1110
1111#. type: Plain text
1112#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:689
1113#, no-wrap
1114msgid ""
1115"# kill focused window\n"
1116"bindsym $mod+Shift+q kill\n"
1117msgstr ""
1118
1119#. type: Plain text
1120#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:692
1121#, no-wrap
1122msgid ""
1123"# start dmenu (a program launcher)\n"
1124"bindsym $mod+d exec --no-startup-id i3-dmenu-desktop --dmenu='dmenu -i -fn 12'\n"
1125msgstr ""
1126
1127#. type: Plain text
1128#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:698
1129#, no-wrap
1130msgid ""
1131"# change focus\n"
1132"bindsym $mod+j focus left\n"
1133"bindsym $mod+k focus down\n"
1134"bindsym $mod+l focus up\n"
1135"bindsym $mod+semicolon focus right\n"
1136msgstr ""
1137
1138#. type: Plain text
1139#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:704
1140#, no-wrap
1141msgid ""
1142"# alternatively, you can use the cursor keys:\n"
1143"bindsym $mod+Left focus left\n"
1144"bindsym $mod+Down focus down\n"
1145"bindsym $mod+Up focus up\n"
1146"bindsym $mod+Right focus right\n"
1147msgstr ""
1148
1149#. type: Plain text
1150#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:710
1151#, no-wrap
1152msgid ""
1153"# move focused window\n"
1154"bindsym $mod+Shift+j move left\n"
1155"bindsym $mod+Shift+k move down\n"
1156"bindsym $mod+Shift+l move up\n"
1157"bindsym $mod+Shift+semicolon move right\n"
1158msgstr ""
1159
1160#. type: Plain text
1161#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:716
1162#, no-wrap
1163msgid ""
1164"# alternatively, you can use the cursor keys:\n"
1165"bindsym $mod+Shift+Left move left\n"
1166"bindsym $mod+Shift+Down move down\n"
1167"bindsym $mod+Shift+Up move up\n"
1168"bindsym $mod+Shift+Right move right\n"
1169msgstr ""
1170
1171#. type: Plain text
1172#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:719
1173#, no-wrap
1174msgid ""
1175"# split in horizontal orientation\n"
1176"bindsym $mod+h split h\n"
1177msgstr ""
1178
1179#. type: Plain text
1180#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:722
1181#, no-wrap
1182msgid ""
1183"# split in vertical orientation\n"
1184"bindsym $mod+v split v\n"
1185msgstr ""
1186
1187#. type: Plain text
1188#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:725
1189#, no-wrap
1190msgid ""
1191"# enter fullscreen mode for the focused container\n"
1192"bindsym $mod+f fullscreen toggle\n"
1193msgstr ""
1194
1195#. type: Plain text
1196#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:730
1197#, no-wrap
1198msgid ""
1199"# change container layout (stacked, tabbed, toggle split)\n"
1200"bindsym $mod+s layout stacking\n"
1201"bindsym $mod+w layout tabbed\n"
1202"bindsym $mod+e layout toggle split\n"
1203msgstr ""
1204
1205#. type: Plain text
1206#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:733
1207#, no-wrap
1208msgid ""
1209"# toggle tiling / floating\n"
1210"bindsym $mod+Shift+space floating toggle\n"
1211msgstr ""
1212
1213#. type: Plain text
1214#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:736
1215#, no-wrap
1216msgid ""
1217"# change focus between tiling / floating windows\n"
1218"bindsym $mod+space focus mode_toggle\n"
1219msgstr ""
1220
1221#. type: Plain text
1222#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:739
1223#, no-wrap
1224msgid ""
1225"# focus the parent container\n"
1226"bindsym $mod+a focus parent\n"
1227msgstr ""
1228
1229#. type: Plain text
1230#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:742
1231#, no-wrap
1232msgid ""
1233"# focus the child container\n"
1234"#bindsym $mod+d focus child\n"
1235msgstr ""
1236
1237#. type: Plain text
1238#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:755
1239#, no-wrap
1240msgid ""
1241"# Define names for default workspaces for which we configure key bindings later on.\n"
1242"# We use variables to avoid repeating the names in multiple places.\n"
1243"set $ws1 \"1\"\n"
1244"set $ws2 \"2\"\n"
1245"set $ws3 \"3\"\n"
1246"set $ws4 \"4\"\n"
1247"set $ws5 \"5\"\n"
1248"set $ws6 \"6\"\n"
1249"set $ws7 \"7\"\n"
1250"set $ws8 \"8\"\n"
1251"set $ws9 \"9\"\n"
1252"set $ws10 \"10\"\n"
1253msgstr ""
1254
1255#. type: Plain text
1256#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:767
1257#, no-wrap
1258msgid ""
1259"# switch to workspace\n"
1260"bindsym $mod+1 workspace number $ws1\n"
1261"bindsym $mod+2 workspace number $ws2\n"
1262"bindsym $mod+3 workspace number $ws3\n"
1263"bindsym $mod+4 workspace number $ws4\n"
1264"bindsym $mod+5 workspace number $ws5\n"
1265"bindsym $mod+6 workspace number $ws6\n"
1266"bindsym $mod+7 workspace number $ws7\n"
1267"bindsym $mod+8 workspace number $ws8\n"
1268"bindsym $mod+9 workspace number $ws9\n"
1269"bindsym $mod+0 workspace number $ws10\n"
1270msgstr ""
1271
1272#. type: Plain text
1273#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:779
1274#, no-wrap
1275msgid ""
1276"# move focused container to workspace\n"
1277"bindsym $mod+Shift+1 move container to workspace number $ws1\n"
1278"bindsym $mod+Shift+2 move container to workspace number $ws2\n"
1279"bindsym $mod+Shift+3 move container to workspace number $ws3\n"
1280"bindsym $mod+Shift+4 move container to workspace number $ws4\n"
1281"bindsym $mod+Shift+5 move container to workspace number $ws5\n"
1282"bindsym $mod+Shift+6 move container to workspace number $ws6\n"
1283"bindsym $mod+Shift+7 move container to workspace number $ws7\n"
1284"bindsym $mod+Shift+8 move container to workspace number $ws8\n"
1285"bindsym $mod+Shift+9 move container to workspace number $ws9\n"
1286"bindsym $mod+Shift+0 move container to workspace number $ws10\n"
1287msgstr ""
1288
1289#. type: Plain text
1290#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:788
1291#, no-wrap
1292msgid ""
1293"# reload the configuration file\n"
1294"bindsym $mod+Shift+c reload\n"
1295"# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)\n"
1296"bindsym $mod+Shift+r restart\n"
1297"# exit i3 (logs you out of your X session)\n"
1298"bindsym $mod+Shift+e exec i3-nagbar -t warning -m \\\n"
1299"'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' \\\n"
1300"-B 'Yes, exit i3' 'i3-msg exit'\n"
1301msgstr ""
1302
1303#. type: Plain text
1304#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:792
1305#, no-wrap
1306msgid ""
1307"# resize window (you can also use the mouse for that)\n"
1308"mode \"resize\" {\n"
1309"# These bindings trigger as soon as you enter the resize mode\n"
1310msgstr ""
1311
1312#. type: Plain text
1313#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:801
1314#, no-wrap
1315msgid ""
1316"# Pressing left will shrink the window’s width.\n"
1317"# Pressing right will grow the window’s width.\n"
1318"# Pressing up will shrink the window’s height.\n"
1319"# Pressing down will grow the window’s height.\n"
1320"bindsym Left resize shrink width 10 px or 10 ppt\n"
1321"bindsym Down resize grow height 10 px or 10 ppt\n"
1322"bindsym Up resize shrink height 10 px or 10 ppt\n"
1323"bindsym Right resize grow width 10 px or 10 ppt\n"
1324msgstr ""
1325
1326#. type: Plain text
1327#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:807
1328#, no-wrap
1329msgid ""
1330"# back to normal: Enter or Escape or $mod+r\n"
1331"bindsym Return mode \"default\"\n"
1332"bindsym Escape mode \"default\"\n"
1333"bindsym $mod+r mode \"default\"\n"
1334"}\n"
1335msgstr ""
1336
1337#. type: Plain text
1338#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:810
1339#, no-wrap
1340msgid ""
1341"bindsym $mod+r mode \"resize\"\n"
1342"#+end_src\n"
1343msgstr ""
1344
1345#. type: Plain text
1346#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:820
1347#, no-wrap
1348msgid ""
1349"#+name: i3-config-bar\n"
1350"#+header: :tangle i3/config\n"
1351"#+begin_src conf-space\n"
1352"# Start i3bar to display a workspace bar (plus the system information i3status\n"
1353"# finds out, if available)\n"
1354"bar {\n"
1355"status_command i3status\n"
1356"}\n"
1357"#+end_src\n"
1358msgstr ""
1359
1360#. type: Plain text
1361#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:830
1362#, no-wrap
1363msgid ""
1364"#+name: i3-config-print-screen\n"
1365"#+header: :tangle i3/config\n"
1366"#+begin_src conf-space\n"
1367"# Print screen\n"
1368"bindsym --release Print exec \"maim $HOME/multimedia/screenshots/$(date '+%y%m%d-%H%M-%S').png\"\n"
1369"bindsym --release Shift+Print exec \"maim --hidecursor --select $HOME/multimedia/screenshots/$(date '+%y%m%d-%H%M-%S').png\"\n"
1370"bindsym --release Ctrl+Print exec \"maim | xclip -sel clip -t image/png\"\n"
1371"bindsym --release Shift+Ctrl+Print exec \"maim --hidecursor --select | xclip -sel clip -t image/png\"\n"
1372"#+end_src\n"
1373msgstr ""
1374
1375#. type: Plain text
1376#: src/en/articles/gnu+linux-and-emacs-introduction/index.org:832
1377#, no-wrap
1378msgid ""
1379"- ~startx~\n"
1380"- =s-RET=\n"
1381msgstr ""
diff --git a/src/sk/articles/index.org.po b/src/sk/articles/index.org.po
new file mode 100644
index 0000000..999f6ca
--- /dev/null
+++ b/src/sk/articles/index.org.po
@@ -0,0 +1,30 @@
1# Slovak translations for Martin\'s personal website package
2# Copyright (C) 2024 Martin
3# This file is distributed under the same license as the Martin\'s personal website package.
4# Automatically generated, 2024.
5#
6msgid ""
7msgstr ""
8"Project-Id-Version: Martin\\'s personal website master\n"
9"Report-Msgid-Bugs-To: martin@michalec.dev\n"
10"POT-Creation-Date: 2024-10-24 06:12+0300\n"
11"PO-Revision-Date: 2024-10-24 06:12+0300\n"
12"Last-Translator: Automatically generated\n"
13"Language-Team: none\n"
14"Language: sk\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
18"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
19
20#. type: Plain text
21#: src/en/articles/index.org:2
22#, no-wrap
23msgid "#+title: Articles\n"
24msgstr ""
25
26#. type: Plain text
27#: src/en/articles/index.org:3
28#, no-wrap
29msgid "#+include: \"sitemap.org\" :lines \"4-\"\n"
30msgstr ""
diff --git a/src/sk/index.org.bak b/src/sk/index.org.bak
new file mode 100644
index 0000000..58b47a8
--- /dev/null
+++ b/src/sk/index.org.bak
@@ -0,0 +1,22 @@
1#+title: Martin Michalec
2
3#+include: ../../lib/nav.org
4
5- [[file:articles/][Články]]
6- [[https://git.michalec.dev][Projekty]]
7- [[file:web-log/][Webový Denník]]
8- [[https://lists.michalec.dev][Zoznamy Adries]]
9- [[file:sitemap.org][Mapa stránky]]
10- [[file:./../files/][Súbory]]
11
12Kontakty:
13- Email: [[mailto:martin@michalec.dev][martin@michalec.dev]]
14- IRC: cmmm ([[irc:irc.libera.chat:6697][libera.chat]])
15- Telegram: [[https:t.me/c_martin_m_m][@c_martin_m_m]]
16
17#+html: <hr/>
18
19Copyright © 2024 Martin Michalec
20
21Doslovné kopírovanie a redistribúcia celej tejto stránky je povolená
22za predpokladu, že sa toto oznámenie zachová.
diff --git a/src/sk/index.org.po b/src/sk/index.org.po
new file mode 100644
index 0000000..ee3bf5f
--- /dev/null
+++ b/src/sk/index.org.po
@@ -0,0 +1,66 @@
1# Slovak translations for Martin\'s personal website package
2# Copyright (C) 2024 Martin
3# This file is distributed under the same license as the Martin\'s personal website package.
4# Automatically generated, 2024.
5#
6msgid ""
7msgstr ""
8"Project-Id-Version: Martin\\'s personal website master\n"
9"Report-Msgid-Bugs-To: martin@michalec.dev\n"
10"POT-Creation-Date: 2024-11-18 02:24+0300\n"
11"PO-Revision-Date: 2024-10-24 06:12+0300\n"
12"Last-Translator: Automatically generated\n"
13"Language-Team: none\n"
14"Language: sk\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
18"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
19
20#. type: Plain text
21#: src/en/index.org:2
22#, no-wrap
23msgid "#+title: Martin Michalec\n"
24msgstr ""
25
26#. type: Plain text
27#: src/en/index.org:9
28#, no-wrap
29msgid ""
30"- [[file:articles/][Articles]]\n"
31"- [[file:projects/][Projects]]\n"
32"- [[file:mailing-lists/][Mailing Lists]]\n"
33"- [[file:web-log/][Web Log]]\n"
34"- [[file:sitemap.org][Sitemap]]\n"
35"- [[file:./../files/][Files]]\n"
36msgstr ""
37
38#. type: Plain text
39#: src/en/index.org:14
40#, no-wrap
41msgid ""
42"Contacts:\n"
43"- Email: [[mailto:martin@michalec.dev][martin@michalec.dev]]\n"
44"- IRC: cmmm ([[irc:irc.libera.chat:6697/cmmm][libera.chat]])\n"
45"- Telegram: [[https:t.me/c_martin_m_m][@c_martin_m_m]]\n"
46msgstr ""
47
48#. type: Plain text
49#: src/en/index.org:16
50#, no-wrap
51msgid "#+html: <hr/>\n"
52msgstr ""
53
54#. type: Plain text
55#: src/en/index.org:18
56#, no-wrap
57msgid "Copyright © 2024 Martin Michalec\n"
58msgstr ""
59
60#. type: Plain text
61#: src/en/index.org:20
62#, no-wrap
63msgid ""
64"Verbatim copying and redistribution of this entire page are permitted\n"
65"provided this notice is preserved.\n"
66msgstr ""
diff --git a/src/sk/mailing-lists/index.org.po b/src/sk/mailing-lists/index.org.po
new file mode 100644
index 0000000..0814a0d
--- /dev/null
+++ b/src/sk/mailing-lists/index.org.po
@@ -0,0 +1,36 @@
1# Slovak translations for Martin\'s personal website package
2# Copyright (C) 2024 Martin
3# This file is distributed under the same license as the Martin\'s personal website package.
4# Automatically generated, 2024.
5#
6msgid ""
7msgstr ""
8"Project-Id-Version: Martin\\'s personal website master\n"
9"Report-Msgid-Bugs-To: martin@michalec.dev\n"
10"POT-Creation-Date: 2024-11-18 02:20+0300\n"
11"PO-Revision-Date: 2024-11-18 02:20+0300\n"
12"Last-Translator: Automatically generated\n"
13"Language-Team: none\n"
14"Language: sk\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
18"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
19
20#. type: Plain text
21#: src/en/projects/index.org:5 src/en/mailing-list/index.org:5
22#, no-wrap
23msgid "* TODO add texts...\n"
24msgstr ""
25
26#. type: Plain text
27#: src/en/mailing-list/index.org:2
28#, no-wrap
29msgid "#+title: Mailing List\n"
30msgstr ""
31
32#. type: Plain text
33#: src/en/mailing-list/index.org:4
34#, no-wrap
35msgid "[[[https://lists.michalec.dev][www]]] | [[[http://lists.ygg.michalec.dev][ygg]]] | [[[http://lists.michalec.i2p][i2p]]] | [[[http://some.onion][tor]]]\n"
36msgstr ""
diff --git a/src/sk/projects/index.org.po b/src/sk/projects/index.org.po
new file mode 100644
index 0000000..d32fbc6
--- /dev/null
+++ b/src/sk/projects/index.org.po
@@ -0,0 +1,36 @@
1# Slovak translations for Martin\'s personal website package
2# Copyright (C) 2024 Martin
3# This file is distributed under the same license as the Martin\'s personal website package.
4# Automatically generated, 2024.
5#
6msgid ""
7msgstr ""
8"Project-Id-Version: Martin\\'s personal website master\n"
9"Report-Msgid-Bugs-To: martin@michalec.dev\n"
10"POT-Creation-Date: 2024-11-18 02:20+0300\n"
11"PO-Revision-Date: 2024-11-18 02:20+0300\n"
12"Last-Translator: Automatically generated\n"
13"Language-Team: none\n"
14"Language: sk\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
18"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
19
20#. type: Plain text
21#: src/en/projects/index.org:2
22#, no-wrap
23msgid "#+title: Projects\n"
24msgstr ""
25
26#. type: Plain text
27#: src/en/projects/index.org:4
28#, no-wrap
29msgid "[[[https://git.michalec.dev][www]]] | [[[http://git.ygg.michalec.dev][ygg]]] | [[[http://git.michalec.i2p][i2p]]] | [[[http://some.onion][tor]]]\n"
30msgstr ""
31
32#. type: Plain text
33#: src/en/projects/index.org:5 src/en/mailing-list/index.org:5
34#, no-wrap
35msgid "* TODO add texts...\n"
36msgstr ""
diff --git a/src/sk/web-log/2024-08-31-test/index.org.po b/src/sk/web-log/2024-08-31-test/index.org.po
new file mode 100644
index 0000000..ca6e0f0
--- /dev/null
+++ b/src/sk/web-log/2024-08-31-test/index.org.po
@@ -0,0 +1,45 @@
1# Slovak translations for Martin\'s personal website package
2# Copyright (C) 2024 Martin
3# This file is distributed under the same license as the Martin\'s personal website package.
4# Automatically generated, 2024.
5#
6msgid ""
7msgstr ""
8"Project-Id-Version: Martin\\'s personal website master\n"
9"Report-Msgid-Bugs-To: martin@michalec.dev\n"
10"POT-Creation-Date: 2024-10-24 07:50+0300\n"
11"PO-Revision-Date: 2024-10-24 07:50+0300\n"
12"Last-Translator: Automatically generated\n"
13"Language-Team: none\n"
14"Language: sk\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
18"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
19
20#. type: Plain text
21#: src/en/web-log/2024-08-31-test/index.org:3
22#, no-wrap
23msgid ""
24"#+title: test\n"
25"#+date: <2024-08-31>\n"
26msgstr ""
27
28#. type: Plain text
29#: src/en/web-log/2024-08-31-test/index.org:16
30#, no-wrap
31msgid ""
32"* Fusce sagittis, libero non molestie mollis\n"
33"Pellentesque dapibus suscipit ligula. Donec posuere augue in quam.\n"
34"Etiam vel tortor sodales tellus ultricies commodo. Suspendisse\n"
35"potenti. Aenean in sem ac leo mollis blandit. Donec neque quam,\n"
36"dignissim in, mollis nec, sagittis eu, wisi. Phasellus lacus. Etiam\n"
37"laoreet quam sed arcu. Phasellus at dui in ligula mollis ultricies.\n"
38"Integer placerat tristique nisl. Praesent augue. Fusce commodo.\n"
39"Vestibulum convallis, lorem a tempus semper, dui dui euismod elit,\n"
40"vitae placerat urna tortor vitae lacus. Nullam libero mauris,\n"
41"consequat quis, varius et, dictum id, arcu. Mauris mollis tincidunt\n"
42"felis. Aliquam feugiat tellus ut neque. Nulla facilisis, risus a\n"
43"rhoncus fermentum, tellus tellus lacinia purus, et dictum nunc justo\n"
44"sit amet elit.\n"
45msgstr ""
diff --git a/src/sk/web-log/index.org.po b/src/sk/web-log/index.org.po
new file mode 100644
index 0000000..b364814
--- /dev/null
+++ b/src/sk/web-log/index.org.po
@@ -0,0 +1,30 @@
1# Slovak translations for Martin\'s personal website package
2# Copyright (C) 2024 Martin
3# This file is distributed under the same license as the Martin\'s personal website package.
4# Automatically generated, 2024.
5#
6msgid ""
7msgstr ""
8"Project-Id-Version: Martin\\'s personal website master\n"
9"Report-Msgid-Bugs-To: martin@michalec.dev\n"
10"POT-Creation-Date: 2024-10-24 07:50+0300\n"
11"PO-Revision-Date: 2024-10-24 07:50+0300\n"
12"Last-Translator: Automatically generated\n"
13"Language-Team: none\n"
14"Language: sk\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
18"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
19
20#. type: Plain text
21#: src/en/articles/index.org:3 src/en/web-log/index.org:3
22#, no-wrap
23msgid "#+include: \"sitemap.org\" :lines \"4-\"\n"
24msgstr ""
25
26#. type: Plain text
27#: src/en/web-log/index.org:2
28#, no-wrap
29msgid "#+TITLE: Web Log\n"
30msgstr ""