diff options
| author | 2026-02-11 04:35:07 +0000 | |
|---|---|---|
| committer | 2026-02-11 04:47:46 +0000 | |
| commit | 0c2af7aac72c74fb2cad8f9e57ccce1e728835e0 (patch) | |
| tree | e93513d5f53b6e94f9e643505069c1f44fd179dc /src | |
| parent | add .gitignore (diff) | |
| download | michalec-dev-0c2af7aac72c74fb2cad8f9e57ccce1e728835e0.tar.gz | |
add initial sources
Diffstat (limited to 'src')
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 */ | ||
| 259 | body { | ||
| 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 */ | ||
| 269 | h1, 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 */ | ||
| 298 | a { | ||
| 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 | |||
| 362 | html { | ||
| 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 | |||
| 396 | nav > ul > li > span { | ||
| 397 | display: none; | ||
| 398 | } | ||
| 399 | |||
| 400 | code { | ||
| 401 | color: var(--code-fg); | ||
| 402 | font-family: var(--code-family); | ||
| 403 | font-size: var(--code-size); | ||
| 404 | } | ||
| 405 | |||
| 406 | pre.example { | ||
| 407 | font-family: var(--example-family); | ||
| 408 | font-size: var(--example-size); | ||
| 409 | } | ||
| 410 | |||
| 411 | hr { | ||
| 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 | |||
| 435 | pre.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 | |||
| 584 | ul { | ||
| 585 | list-style-type: '- '; | ||
| 586 | } | ||
| 587 | |||
| 588 | table, td, th { | ||
| 589 | text-align: left; | ||
| 590 | } | ||
| 591 | |||
| 592 | table { | ||
| 593 | border-collapse: collapse; | ||
| 594 | width: 100%; | ||
| 595 | } | ||
| 596 | |||
| 597 | th, 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 | ||
| 7 | Download Debian [[https://www.debian.org/][installer image]] | ||
| 8 | |||
| 9 | *** Creating installation medium | ||
| 10 | On =M$= Windows, use a tool like [[https://rufus.ie/en/][Rufus]] to create a bootable USB flash | ||
| 11 | drive with the downloaded =.iso= file | ||
| 12 | |||
| 13 | *** Allocating disk space | ||
| 14 | 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. | ||
| 15 | |||
| 16 | ** Installation process | ||
| 17 | If installing on a laptop, make sure that it's fully charged and keep | ||
| 18 | the charger plugged in. | ||
| 19 | |||
| 20 | *** Booting from the installation medium | ||
| 21 | NOTE: You might have to enable booting from USB in BIOS. | ||
| 22 | |||
| 23 | Select the USB from boot menu or change boot order. | ||
| 24 | |||
| 25 | *** The Debian installer | ||
| 26 | Select the =install= option (not the =Graphical install=) in the GRUB bootloader. | ||
| 27 | |||
| 28 | To navigate the menus, use arrow keys and TAB, to toggle check boxes use spacebar and to press button use the enter key. | ||
| 29 | |||
| 30 | Simple guide: | ||
| 31 | 1. Select region | ||
| 32 | 2. Select localization (US) | ||
| 33 | 3. Select keyboard layout (most likely US/ISO) | ||
| 34 | 4. Select connected if you have Ethernet connection or wireless if you | ||
| 35 | want to connect to wifi. | ||
| 36 | 5. Choose hostname. | ||
| 37 | 6. Skip domain name. | ||
| 38 | 7. Skip proxy. | ||
| 39 | 8. Select mirror in your region. | ||
| 40 | 9. Set root password. | ||
| 41 | 10. Set user's full name, username and password. | ||
| 42 | 11. Deselect all software packages except base. | ||
| 43 | 12. To dual boot with Windows select guided partitioning (free space). | ||
| 44 | 13. Select =/home= folder on a separate partition. | ||
| 45 | 14. Start the installation. | ||
| 46 | 15. Reboot and check that you can boot everything. | ||
| 47 | |||
| 48 | * Setting up GNU/Linux | ||
| 49 | ** User setup | ||
| 50 | 1. Login as root | ||
| 51 | 1. Edit =/etc/apt/sources= and add =non-free contrib testing unstable= | ||
| 52 | 2. ~apt udpate~ | ||
| 53 | 3. ~apt upgrade~ | ||
| 54 | 4. ~apt install sudo~ | ||
| 55 | 5. ~visudo~ (%wheel ALL=(ALL) NOPASSWD: ALL) | ||
| 56 | 6. ~groupadd wheel~ | ||
| 57 | 7. ~usermod -aG wheel YOUR_USERNAME~ | ||
| 58 | 8. ~exit~ | ||
| 59 | |||
| 60 | ** Environment setup | ||
| 61 | *** Folder setup | ||
| 62 | #+begin_src sh | ||
| 63 | cd | ||
| 64 | rmdir Downloads Desktop ... | ||
| 65 | mkdir downloads documents multimedia | ||
| 66 | cd multimedia | ||
| 67 | mkdir screenshots | ||
| 68 | mkdir screencasts | ||
| 69 | #+end_src | ||
| 70 | |||
| 71 | *** Emacs setup | ||
| 72 | ~sudo apt install emacs git vterm-module libtd~ | ||
| 73 | |||
| 74 | Delete =~/.emacs.d= | ||
| 75 | |||
| 76 | Edit =~/.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 | ||
| 510 | 1. Wget latest =PkgTTC-Iosevka-X.X.X.zip= asset from [[https://github.com/be5invis/Iosevka/releases][iosevka releases]] | ||
| 511 | 2. ~unzip DOWNLOADED_FILE~ | ||
| 512 | 3. ~mv contents ~/.local/share/fonts~ | ||
| 513 | 4. ~fc-cache -fv~ | ||
| 514 | |||
| 515 | *** i3 setup | ||
| 516 | ~sudo apt install xorg i3 dbus-launch maim udiskie~ | ||
| 517 | Edit =~/.xinitrc= | ||
| 518 | |||
| 519 | Disable access control for the current user. | ||
| 520 | #+name: xinitrc-xhost | ||
| 521 | #+header: :tangle .xinitrc | ||
| 522 | #+begin_src sh | ||
| 523 | xhost +SI:localuser:$USER | ||
| 524 | #+end_src | ||
| 525 | |||
| 526 | #+name: xinitrc-xset | ||
| 527 | #+header: :tangle .xinitrc | ||
| 528 | #+begin_src sh | ||
| 529 | xset r rate 250 30 | ||
| 530 | #+end_src | ||
| 531 | |||
| 532 | #+name: xinitrc-dbus-launch | ||
| 533 | #+header: :tangle .xinitrc | ||
| 534 | #+begin_src sh | ||
| 535 | exec dbus-launch --exit-with-session i3 | ||
| 536 | #+end_src | ||
| 537 | |||
| 538 | Edit =~/.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 | ||
| 547 | set $mod Mod4 | ||
| 548 | #+end_src | ||
| 549 | |||
| 550 | Font for window titles. Will also be used by the bar unless a | ||
| 551 | different 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 | ||
| 560 | font pango:monospace 12 | ||
| 561 | #+end_src | ||
| 562 | |||
| 563 | Start XDG autostart =.desktop= files using =dex=. See also [[https://wiki.archlinux.org/index.php/XDG_Autostart][XDG Autostart - | ||
| 564 | ArchWiki]] | ||
| 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 | ||
| 573 | exec --no-startup-id dex --autostart --environment i3 | ||
| 574 | #+end_src | ||
| 575 | |||
| 576 | The combination of ~xss-lock~, ~nm-applet~ and ~pactl~ is a popular choice, | ||
| 577 | so 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 | ||
| 580 | lock the screen before suspend. Use ~loginctl lock-session~ to lock your | ||
| 581 | screen. | ||
| 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 | ||
| 594 | exec --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 | ||
| 600 | exec --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 | ||
| 606 | exec --no-startup-id udiskie --automount | ||
| 607 | #+end_src | ||
| 608 | |||
| 609 | NetworkManager is the most popular way to manage wireless networks on | ||
| 610 | Linux, and ~nm-applet~ is a desktop environment-independent system tray | ||
| 611 | GUI 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 | ||
| 620 | exec --no-startup-id nm-applet | ||
| 621 | #+end_src | ||
| 622 | |||
| 623 | #+name: i3-config-emacs | ||
| 624 | #+header: :tangle i3/config | ||
| 625 | #+begin_src conf-space | ||
| 626 | exec emacs --background black | ||
| 627 | #+end_src | ||
| 628 | |||
| 629 | Use ~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 | ||
| 637 | set $refresh_i3status killall -SIGUSR1 i3status | ||
| 638 | bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status | ||
| 639 | bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status | ||
| 640 | bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status | ||
| 641 | bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status | ||
| 642 | #+end_src | ||
| 643 | |||
| 644 | Change 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 | ||
| 652 | bindsym XF86MonBrightnessUp exec --no-startup-id brightnessctl set +5% | ||
| 653 | bindsym XF86MonBrightnessDown exec --no-startup-id brightnessctl set 5%- | ||
| 654 | #+end_src | ||
| 655 | |||
| 656 | Use =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 | ||
| 664 | floating_modifier $mod | ||
| 665 | #+end_src | ||
| 666 | |||
| 667 | Move tiling windows via drag & drop by left-clicking into the title | ||
| 668 | bar, or left-clicking anywhere into the window while holding the | ||
| 669 | floating 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 | ||
| 678 | tiling_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 | ||
| 685 | bindsym $mod+Return exec emacsclient -c | ||
| 686 | |||
| 687 | # kill focused window | ||
| 688 | bindsym $mod+Shift+q kill | ||
| 689 | |||
| 690 | # start dmenu (a program launcher) | ||
| 691 | bindsym $mod+d exec --no-startup-id i3-dmenu-desktop --dmenu='dmenu -i -fn 12' | ||
| 692 | |||
| 693 | # change focus | ||
| 694 | bindsym $mod+j focus left | ||
| 695 | bindsym $mod+k focus down | ||
| 696 | bindsym $mod+l focus up | ||
| 697 | bindsym $mod+semicolon focus right | ||
| 698 | |||
| 699 | # alternatively, you can use the cursor keys: | ||
| 700 | bindsym $mod+Left focus left | ||
| 701 | bindsym $mod+Down focus down | ||
| 702 | bindsym $mod+Up focus up | ||
| 703 | bindsym $mod+Right focus right | ||
| 704 | |||
| 705 | # move focused window | ||
| 706 | bindsym $mod+Shift+j move left | ||
| 707 | bindsym $mod+Shift+k move down | ||
| 708 | bindsym $mod+Shift+l move up | ||
| 709 | bindsym $mod+Shift+semicolon move right | ||
| 710 | |||
| 711 | # alternatively, you can use the cursor keys: | ||
| 712 | bindsym $mod+Shift+Left move left | ||
| 713 | bindsym $mod+Shift+Down move down | ||
| 714 | bindsym $mod+Shift+Up move up | ||
| 715 | bindsym $mod+Shift+Right move right | ||
| 716 | |||
| 717 | # split in horizontal orientation | ||
| 718 | bindsym $mod+h split h | ||
| 719 | |||
| 720 | # split in vertical orientation | ||
| 721 | bindsym $mod+v split v | ||
| 722 | |||
| 723 | # enter fullscreen mode for the focused container | ||
| 724 | bindsym $mod+f fullscreen toggle | ||
| 725 | |||
| 726 | # change container layout (stacked, tabbed, toggle split) | ||
| 727 | bindsym $mod+s layout stacking | ||
| 728 | bindsym $mod+w layout tabbed | ||
| 729 | bindsym $mod+e layout toggle split | ||
| 730 | |||
| 731 | # toggle tiling / floating | ||
| 732 | bindsym $mod+Shift+space floating toggle | ||
| 733 | |||
| 734 | # change focus between tiling / floating windows | ||
| 735 | bindsym $mod+space focus mode_toggle | ||
| 736 | |||
| 737 | # focus the parent container | ||
| 738 | bindsym $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. | ||
| 745 | set $ws1 "1" | ||
| 746 | set $ws2 "2" | ||
| 747 | set $ws3 "3" | ||
| 748 | set $ws4 "4" | ||
| 749 | set $ws5 "5" | ||
| 750 | set $ws6 "6" | ||
| 751 | set $ws7 "7" | ||
| 752 | set $ws8 "8" | ||
| 753 | set $ws9 "9" | ||
| 754 | set $ws10 "10" | ||
| 755 | |||
| 756 | # switch to workspace | ||
| 757 | bindsym $mod+1 workspace number $ws1 | ||
| 758 | bindsym $mod+2 workspace number $ws2 | ||
| 759 | bindsym $mod+3 workspace number $ws3 | ||
| 760 | bindsym $mod+4 workspace number $ws4 | ||
| 761 | bindsym $mod+5 workspace number $ws5 | ||
| 762 | bindsym $mod+6 workspace number $ws6 | ||
| 763 | bindsym $mod+7 workspace number $ws7 | ||
| 764 | bindsym $mod+8 workspace number $ws8 | ||
| 765 | bindsym $mod+9 workspace number $ws9 | ||
| 766 | bindsym $mod+0 workspace number $ws10 | ||
| 767 | |||
| 768 | # move focused container to workspace | ||
| 769 | bindsym $mod+Shift+1 move container to workspace number $ws1 | ||
| 770 | bindsym $mod+Shift+2 move container to workspace number $ws2 | ||
| 771 | bindsym $mod+Shift+3 move container to workspace number $ws3 | ||
| 772 | bindsym $mod+Shift+4 move container to workspace number $ws4 | ||
| 773 | bindsym $mod+Shift+5 move container to workspace number $ws5 | ||
| 774 | bindsym $mod+Shift+6 move container to workspace number $ws6 | ||
| 775 | bindsym $mod+Shift+7 move container to workspace number $ws7 | ||
| 776 | bindsym $mod+Shift+8 move container to workspace number $ws8 | ||
| 777 | bindsym $mod+Shift+9 move container to workspace number $ws9 | ||
| 778 | bindsym $mod+Shift+0 move container to workspace number $ws10 | ||
| 779 | |||
| 780 | # reload the configuration file | ||
| 781 | bindsym $mod+Shift+c reload | ||
| 782 | # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) | ||
| 783 | bindsym $mod+Shift+r restart | ||
| 784 | # exit i3 (logs you out of your X session) | ||
| 785 | bindsym $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) | ||
| 790 | mode "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. | ||
| 797 | bindsym Left resize shrink width 10 px or 10 ppt | ||
| 798 | bindsym Down resize grow height 10 px or 10 ppt | ||
| 799 | bindsym Up resize shrink height 10 px or 10 ppt | ||
| 800 | bindsym Right resize grow width 10 px or 10 ppt | ||
| 801 | |||
| 802 | # back to normal: Enter or Escape or $mod+r | ||
| 803 | bindsym Return mode "default" | ||
| 804 | bindsym Escape mode "default" | ||
| 805 | bindsym $mod+r mode "default" | ||
| 806 | } | ||
| 807 | |||
| 808 | bindsym $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) | ||
| 816 | bar { | ||
| 817 | status_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 | ||
| 825 | bindsym --release Print exec "maim $HOME/multimedia/screenshots/$(date '+%y%m%d-%H%M-%S').png" | ||
| 826 | bindsym --release Shift+Print exec "maim --hidecursor --select $HOME/multimedia/screenshots/$(date '+%y%m%d-%H%M-%S').png" | ||
| 827 | bindsym --release Ctrl+Print exec "maim | xclip -sel clip -t image/png" | ||
| 828 | bindsym --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 | |||
| 10 | Contacts: | ||
| 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 | |||
| 17 | Copyright © 2024 Martin Michalec | ||
| 18 | |||
| 19 | Verbatim copying and redistribution of this entire page are permitted | ||
| 20 | provided 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 | ||
| 5 | Pellentesque dapibus suscipit ligula. Donec posuere augue in quam. | ||
| 6 | Etiam vel tortor sodales tellus ultricies commodo. Suspendisse | ||
| 7 | potenti. Aenean in sem ac leo mollis blandit. Donec neque quam, | ||
| 8 | dignissim in, mollis nec, sagittis eu, wisi. Phasellus lacus. Etiam | ||
| 9 | laoreet quam sed arcu. Phasellus at dui in ligula mollis ultricies. | ||
| 10 | Integer placerat tristique nisl. Praesent augue. Fusce commodo. | ||
| 11 | Vestibulum convallis, lorem a tempus semper, dui dui euismod elit, | ||
| 12 | vitae placerat urna tortor vitae lacus. Nullam libero mauris, | ||
| 13 | consequat quis, varius et, dictum id, arcu. Mauris mollis tincidunt | ||
| 14 | felis. Aliquam feugiat tellus ut neque. Nulla facilisis, risus a | ||
| 15 | rhoncus fermentum, tellus tellus lacinia purus, et dictum nunc justo | ||
| 16 | sit 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 | # | ||
| 6 | msgid "" | ||
| 7 | msgstr "" | ||
| 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" | ||
| 24 | msgid "" | ||
| 25 | "#+title: GNU/Linux and GNU Emacs Introduction\n" | ||
| 26 | "#+keywords: beginner gnu linux emacs\n" | ||
| 27 | msgstr "#+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 | ||
| 32 | msgid "" | ||
| 33 | "* Installing Debian\n" | ||
| 34 | "** Preparations\n" | ||
| 35 | "*** Getting debian\n" | ||
| 36 | "Download Debian [[https://www.debian.org/][installer image]]\n" | ||
| 37 | msgstr "" | ||
| 38 | |||
| 39 | #. type: Plain text | ||
| 40 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:12 | ||
| 41 | #, no-wrap | ||
| 42 | msgid "" | ||
| 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" | ||
| 46 | msgstr "" | ||
| 47 | |||
| 48 | #. type: Plain text | ||
| 49 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:15 | ||
| 50 | #, no-wrap | ||
| 51 | msgid "" | ||
| 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" | ||
| 54 | msgstr "" | ||
| 55 | |||
| 56 | #. type: Plain text | ||
| 57 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:19 | ||
| 58 | #, no-wrap | ||
| 59 | msgid "" | ||
| 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" | ||
| 63 | msgstr "" | ||
| 64 | |||
| 65 | #. type: Plain text | ||
| 66 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:22 | ||
| 67 | #, no-wrap | ||
| 68 | msgid "" | ||
| 69 | "*** Booting from the installation medium\n" | ||
| 70 | "NOTE: You might have to enable booting from USB in BIOS.\n" | ||
| 71 | msgstr "" | ||
| 72 | |||
| 73 | #. type: Plain text | ||
| 74 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:24 | ||
| 75 | #, no-wrap | ||
| 76 | msgid "Select the USB from boot menu or change boot order.\n" | ||
| 77 | msgstr "" | ||
| 78 | |||
| 79 | #. type: Plain text | ||
| 80 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:27 | ||
| 81 | #, no-wrap | ||
| 82 | msgid "" | ||
| 83 | "*** The Debian installer\n" | ||
| 84 | "Select the =install= option (not the =Graphical install=) in the GRUB bootloader.\n" | ||
| 85 | msgstr "" | ||
| 86 | |||
| 87 | #. type: Plain text | ||
| 88 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:29 | ||
| 89 | #, no-wrap | ||
| 90 | msgid "To navigate the menus, use arrow keys and TAB, to toggle check boxes use spacebar and to press button use the enter key.\n" | ||
| 91 | msgstr "" | ||
| 92 | |||
| 93 | #. type: Plain text | ||
| 94 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:47 | ||
| 95 | #, no-wrap | ||
| 96 | msgid "" | ||
| 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" | ||
| 114 | msgstr "" | ||
| 115 | |||
| 116 | #. type: Plain text | ||
| 117 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:59 | ||
| 118 | #, no-wrap | ||
| 119 | msgid "" | ||
| 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" | ||
| 131 | msgstr "" | ||
| 132 | |||
| 133 | #. type: Plain text | ||
| 134 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:70 | ||
| 135 | #, no-wrap | ||
| 136 | msgid "" | ||
| 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" | ||
| 147 | msgstr "" | ||
| 148 | |||
| 149 | #. type: Plain text | ||
| 150 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:73 | ||
| 151 | #, no-wrap | ||
| 152 | msgid "" | ||
| 153 | "*** Emacs setup\n" | ||
| 154 | "~sudo apt install emacs git vterm-module libtd~\n" | ||
| 155 | msgstr "" | ||
| 156 | |||
| 157 | #. type: Plain text | ||
| 158 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:75 | ||
| 159 | #, no-wrap | ||
| 160 | msgid "Delete =~/.emacs.d=\n" | ||
| 161 | msgstr "" | ||
| 162 | |||
| 163 | #. type: Plain text | ||
| 164 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:77 | ||
| 165 | #, no-wrap | ||
| 166 | msgid "Edit =~/.config/emacs/init.el=\n" | ||
| 167 | msgstr "" | ||
| 168 | |||
| 169 | #. type: Plain text | ||
| 170 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:83 | ||
| 171 | #, no-wrap | ||
| 172 | msgid "" | ||
| 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" | ||
| 178 | msgstr "" | ||
| 179 | |||
| 180 | #. type: Plain text | ||
| 181 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:100 | ||
| 182 | #, no-wrap | ||
| 183 | msgid "" | ||
| 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" | ||
| 200 | msgstr "" | ||
| 201 | |||
| 202 | #. type: Plain text | ||
| 203 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:105 | ||
| 204 | #, no-wrap | ||
| 205 | msgid "" | ||
| 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" | ||
| 210 | msgstr "" | ||
| 211 | |||
| 212 | #. type: Plain text | ||
| 213 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:115 | ||
| 214 | #, no-wrap | ||
| 215 | msgid "" | ||
| 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" | ||
| 225 | msgstr "" | ||
| 226 | |||
| 227 | #. type: Plain text | ||
| 228 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:123 | ||
| 229 | #, no-wrap | ||
| 230 | msgid "" | ||
| 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" | ||
| 238 | msgstr "" | ||
| 239 | |||
| 240 | #. type: Plain text | ||
| 241 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:138 | ||
| 242 | #, no-wrap | ||
| 243 | msgid "" | ||
| 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" | ||
| 258 | msgstr "" | ||
| 259 | |||
| 260 | #. type: Plain text | ||
| 261 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:148 | ||
| 262 | #, no-wrap | ||
| 263 | msgid "" | ||
| 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" | ||
| 273 | msgstr "" | ||
| 274 | |||
| 275 | #. type: Plain text | ||
| 276 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:155 | ||
| 277 | #, no-wrap | ||
| 278 | msgid "" | ||
| 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" | ||
| 285 | msgstr "" | ||
| 286 | |||
| 287 | #. type: Plain text | ||
| 288 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:163 | ||
| 289 | #, no-wrap | ||
| 290 | msgid "" | ||
| 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" | ||
| 298 | msgstr "" | ||
| 299 | |||
| 300 | #. type: Plain text | ||
| 301 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:171 | ||
| 302 | #, no-wrap | ||
| 303 | msgid "" | ||
| 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" | ||
| 311 | msgstr "" | ||
| 312 | |||
| 313 | #. type: Plain text | ||
| 314 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:188 | ||
| 315 | #, no-wrap | ||
| 316 | msgid "" | ||
| 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" | ||
| 333 | msgstr "" | ||
| 334 | |||
| 335 | #. type: Plain text | ||
| 336 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:194 | ||
| 337 | #, no-wrap | ||
| 338 | msgid "" | ||
| 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" | ||
| 344 | msgstr "" | ||
| 345 | |||
| 346 | #. type: Plain text | ||
| 347 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:200 | ||
| 348 | #, no-wrap | ||
| 349 | msgid "" | ||
| 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" | ||
| 355 | msgstr "" | ||
| 356 | |||
| 357 | #. type: Plain text | ||
| 358 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:207 | ||
| 359 | #, no-wrap | ||
| 360 | msgid "" | ||
| 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" | ||
| 367 | msgstr "" | ||
| 368 | |||
| 369 | #. type: Plain text | ||
| 370 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:215 | ||
| 371 | #, no-wrap | ||
| 372 | msgid "" | ||
| 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" | ||
| 380 | msgstr "" | ||
| 381 | |||
| 382 | #. type: Plain text | ||
| 383 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:221 | ||
| 384 | #, no-wrap | ||
| 385 | msgid "" | ||
| 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" | ||
| 391 | msgstr "" | ||
| 392 | |||
| 393 | #. type: Plain text | ||
| 394 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:229 | ||
| 395 | #, no-wrap | ||
| 396 | msgid "" | ||
| 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" | ||
| 404 | msgstr "" | ||
| 405 | |||
| 406 | #. type: Plain text | ||
| 407 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:237 | ||
| 408 | #, no-wrap | ||
| 409 | msgid "" | ||
| 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" | ||
| 417 | msgstr "" | ||
| 418 | |||
| 419 | #. type: Plain text | ||
| 420 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:243 | ||
| 421 | #, no-wrap | ||
| 422 | msgid "" | ||
| 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" | ||
| 428 | msgstr "" | ||
| 429 | |||
| 430 | #. type: Plain text | ||
| 431 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:251 | ||
| 432 | #, no-wrap | ||
| 433 | msgid "" | ||
| 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" | ||
| 441 | msgstr "" | ||
| 442 | |||
| 443 | #. type: Plain text | ||
| 444 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:262 | ||
| 445 | #, no-wrap | ||
| 446 | msgid "" | ||
| 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" | ||
| 457 | msgstr "" | ||
| 458 | |||
| 459 | #. type: Plain text | ||
| 460 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:271 | ||
| 461 | #, no-wrap | ||
| 462 | msgid "" | ||
| 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" | ||
| 471 | msgstr "" | ||
| 472 | |||
| 473 | #. type: Plain text | ||
| 474 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:324 | ||
| 475 | #, no-wrap | ||
| 476 | msgid "" | ||
| 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" | ||
| 529 | msgstr "" | ||
| 530 | |||
| 531 | #. type: Plain text | ||
| 532 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:334 | ||
| 533 | #, no-wrap | ||
| 534 | msgid "" | ||
| 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" | ||
| 544 | msgstr "" | ||
| 545 | |||
| 546 | #. type: Plain text | ||
| 547 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:338 | ||
| 548 | #, no-wrap | ||
| 549 | msgid "" | ||
| 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" | ||
| 553 | msgstr "" | ||
| 554 | |||
| 555 | #. type: Plain text | ||
| 556 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:342 | ||
| 557 | #, no-wrap | ||
| 558 | msgid "" | ||
| 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" | ||
| 562 | msgstr "" | ||
| 563 | |||
| 564 | #. type: Plain text | ||
| 565 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:346 | ||
| 566 | #, no-wrap | ||
| 567 | msgid "" | ||
| 568 | " ;; Configure other variables and modes in the :config section,\n" | ||
| 569 | " ;; after lazily loading the package.\n" | ||
| 570 | " :config\n" | ||
| 571 | msgstr "" | ||
| 572 | |||
| 573 | #. type: Plain text | ||
| 574 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:362 | ||
| 575 | #, no-wrap | ||
| 576 | msgid "" | ||
| 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" | ||
| 592 | msgstr "" | ||
| 593 | |||
| 594 | #. type: Plain text | ||
| 595 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:366 | ||
| 596 | #, no-wrap | ||
| 597 | msgid "" | ||
| 598 | " ;; Optionally configure the narrowing key.\n" | ||
| 599 | " ;; Both < and C-+ work reasonably well.\n" | ||
| 600 | " (setq consult-narrow-key \"<\") ;; \"C-+\"\n" | ||
| 601 | msgstr "" | ||
| 602 | |||
| 603 | #. type: Plain text | ||
| 604 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:371 | ||
| 605 | #, no-wrap | ||
| 606 | msgid "" | ||
| 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" | ||
| 611 | msgstr "" | ||
| 612 | |||
| 613 | #. type: Plain text | ||
| 614 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:386 | ||
| 615 | #, no-wrap | ||
| 616 | msgid "" | ||
| 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" | ||
| 631 | msgstr "" | ||
| 632 | |||
| 633 | #. type: Plain text | ||
| 634 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:396 | ||
| 635 | #, no-wrap | ||
| 636 | msgid "" | ||
| 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" | ||
| 646 | msgstr "" | ||
| 647 | |||
| 648 | #. type: Plain text | ||
| 649 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:412 | ||
| 650 | #, no-wrap | ||
| 651 | msgid "" | ||
| 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" | ||
| 667 | msgstr "" | ||
| 668 | |||
| 669 | #. type: Plain text | ||
| 670 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:417 | ||
| 671 | #, no-wrap | ||
| 672 | msgid "" | ||
| 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" | ||
| 677 | msgstr "" | ||
| 678 | |||
| 679 | #. type: Plain text | ||
| 680 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:420 | ||
| 681 | #, no-wrap | ||
| 682 | msgid "" | ||
| 683 | " ;; Enable recursive minibuffers\n" | ||
| 684 | " (setq enable-recursive-minibuffers t))\n" | ||
| 685 | msgstr "" | ||
| 686 | |||
| 687 | #. type: Plain text | ||
| 688 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:430 | ||
| 689 | #, no-wrap | ||
| 690 | msgid "" | ||
| 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" | ||
| 700 | msgstr "" | ||
| 701 | |||
| 702 | #. type: Plain text | ||
| 703 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:443 | ||
| 704 | #, no-wrap | ||
| 705 | msgid "" | ||
| 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" | ||
| 718 | msgstr "" | ||
| 719 | |||
| 720 | #. type: Plain text | ||
| 721 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:451 | ||
| 722 | #, no-wrap | ||
| 723 | msgid "" | ||
| 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" | ||
| 731 | msgstr "" | ||
| 732 | |||
| 733 | #. type: Plain text | ||
| 734 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:460 | ||
| 735 | #, no-wrap | ||
| 736 | msgid "" | ||
| 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" | ||
| 745 | msgstr "" | ||
| 746 | |||
| 747 | #. type: Plain text | ||
| 748 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:467 | ||
| 749 | #, no-wrap | ||
| 750 | msgid "" | ||
| 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" | ||
| 757 | msgstr "" | ||
| 758 | |||
| 759 | #. type: Plain text | ||
| 760 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:475 | ||
| 761 | #, no-wrap | ||
| 762 | msgid "" | ||
| 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" | ||
| 770 | msgstr "" | ||
| 771 | |||
| 772 | #. type: Plain text | ||
| 773 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:490 | ||
| 774 | #, no-wrap | ||
| 775 | msgid "" | ||
| 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" | ||
| 790 | msgstr "" | ||
| 791 | |||
| 792 | #. type: Plain text | ||
| 793 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:496 | ||
| 794 | #, no-wrap | ||
| 795 | msgid "" | ||
| 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" | ||
| 801 | msgstr "" | ||
| 802 | |||
| 803 | #. type: Plain text | ||
| 804 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:502 | ||
| 805 | #, no-wrap | ||
| 806 | msgid "" | ||
| 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" | ||
| 812 | msgstr "" | ||
| 813 | |||
| 814 | #. type: Plain text | ||
| 815 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:508 | ||
| 816 | #, no-wrap | ||
| 817 | msgid "" | ||
| 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" | ||
| 823 | msgstr "" | ||
| 824 | |||
| 825 | #. type: Plain text | ||
| 826 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:514 | ||
| 827 | #, no-wrap | ||
| 828 | msgid "" | ||
| 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" | ||
| 834 | msgstr "" | ||
| 835 | |||
| 836 | #. type: Plain text | ||
| 837 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:518 | ||
| 838 | #, no-wrap | ||
| 839 | msgid "" | ||
| 840 | "*** i3 setup\n" | ||
| 841 | "~sudo apt install xorg i3 dbus-launch maim udiskie~\n" | ||
| 842 | "Edit =~/.xinitrc=\n" | ||
| 843 | msgstr "" | ||
| 844 | |||
| 845 | #. type: Plain text | ||
| 846 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:525 | ||
| 847 | #, no-wrap | ||
| 848 | msgid "" | ||
| 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" | ||
| 855 | msgstr "" | ||
| 856 | |||
| 857 | #. type: Plain text | ||
| 858 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:531 | ||
| 859 | #, no-wrap | ||
| 860 | msgid "" | ||
| 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" | ||
| 866 | msgstr "" | ||
| 867 | |||
| 868 | #. type: Plain text | ||
| 869 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:537 | ||
| 870 | #, no-wrap | ||
| 871 | msgid "" | ||
| 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" | ||
| 877 | msgstr "" | ||
| 878 | |||
| 879 | #. type: Plain text | ||
| 880 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:539 | ||
| 881 | #, no-wrap | ||
| 882 | msgid "Edit =~/.config/i3/config=\n" | ||
| 883 | msgstr "" | ||
| 884 | |||
| 885 | #. type: Plain text | ||
| 886 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:549 | ||
| 887 | #, no-wrap | ||
| 888 | msgid "" | ||
| 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" | ||
| 898 | msgstr "" | ||
| 899 | |||
| 900 | #. type: Plain text | ||
| 901 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:562 | ||
| 902 | #, no-wrap | ||
| 903 | msgid "" | ||
| 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" | ||
| 916 | msgstr "" | ||
| 917 | |||
| 918 | #. type: Plain text | ||
| 919 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:575 | ||
| 920 | #, no-wrap | ||
| 921 | msgid "" | ||
| 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" | ||
| 934 | msgstr "" | ||
| 935 | |||
| 936 | #. type: Plain text | ||
| 937 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:578 | ||
| 938 | #, no-wrap | ||
| 939 | msgid "" | ||
| 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" | ||
| 942 | msgstr "" | ||
| 943 | |||
| 944 | #. type: Plain text | ||
| 945 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:582 | ||
| 946 | #, no-wrap | ||
| 947 | msgid "" | ||
| 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" | ||
| 951 | msgstr "" | ||
| 952 | |||
| 953 | #. type: Plain text | ||
| 954 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:587 | ||
| 955 | #, no-wrap | ||
| 956 | msgid "" | ||
| 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" | ||
| 961 | msgstr "" | ||
| 962 | |||
| 963 | #. type: Plain text | ||
| 964 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:596 | ||
| 965 | #, no-wrap | ||
| 966 | msgid "" | ||
| 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" | ||
| 975 | msgstr "" | ||
| 976 | |||
| 977 | #. type: Plain text | ||
| 978 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:602 | ||
| 979 | #, no-wrap | ||
| 980 | msgid "" | ||
| 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" | ||
| 986 | msgstr "" | ||
| 987 | |||
| 988 | #. type: Plain text | ||
| 989 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:608 | ||
| 990 | #, no-wrap | ||
| 991 | msgid "" | ||
| 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" | ||
| 997 | msgstr "" | ||
| 998 | |||
| 999 | #. type: Plain text | ||
| 1000 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:622 | ||
| 1001 | #, no-wrap | ||
| 1002 | msgid "" | ||
| 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" | ||
| 1016 | msgstr "" | ||
| 1017 | |||
| 1018 | #. type: Plain text | ||
| 1019 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:628 | ||
| 1020 | #, no-wrap | ||
| 1021 | msgid "" | ||
| 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" | ||
| 1027 | msgstr "" | ||
| 1028 | |||
| 1029 | #. type: Plain text | ||
| 1030 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:643 | ||
| 1031 | #, no-wrap | ||
| 1032 | msgid "" | ||
| 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" | ||
| 1047 | msgstr "" | ||
| 1048 | |||
| 1049 | #. type: Plain text | ||
| 1050 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:655 | ||
| 1051 | #, no-wrap | ||
| 1052 | msgid "" | ||
| 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" | ||
| 1064 | msgstr "" | ||
| 1065 | |||
| 1066 | #. type: Plain text | ||
| 1067 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:666 | ||
| 1068 | #, no-wrap | ||
| 1069 | msgid "" | ||
| 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" | ||
| 1080 | msgstr "" | ||
| 1081 | |||
| 1082 | #. type: Plain text | ||
| 1083 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:680 | ||
| 1084 | #, no-wrap | ||
| 1085 | msgid "" | ||
| 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" | ||
| 1099 | msgstr "" | ||
| 1100 | |||
| 1101 | #. type: Plain text | ||
| 1102 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:686 | ||
| 1103 | #, no-wrap | ||
| 1104 | msgid "" | ||
| 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" | ||
| 1110 | msgstr "" | ||
| 1111 | |||
| 1112 | #. type: Plain text | ||
| 1113 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:689 | ||
| 1114 | #, no-wrap | ||
| 1115 | msgid "" | ||
| 1116 | "# kill focused window\n" | ||
| 1117 | "bindsym $mod+Shift+q kill\n" | ||
| 1118 | msgstr "" | ||
| 1119 | |||
| 1120 | #. type: Plain text | ||
| 1121 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:692 | ||
| 1122 | #, no-wrap | ||
| 1123 | msgid "" | ||
| 1124 | "# start dmenu (a program launcher)\n" | ||
| 1125 | "bindsym $mod+d exec --no-startup-id i3-dmenu-desktop --dmenu='dmenu -i -fn 12'\n" | ||
| 1126 | msgstr "" | ||
| 1127 | |||
| 1128 | #. type: Plain text | ||
| 1129 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:698 | ||
| 1130 | #, no-wrap | ||
| 1131 | msgid "" | ||
| 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" | ||
| 1137 | msgstr "" | ||
| 1138 | |||
| 1139 | #. type: Plain text | ||
| 1140 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:704 | ||
| 1141 | #, no-wrap | ||
| 1142 | msgid "" | ||
| 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" | ||
| 1148 | msgstr "" | ||
| 1149 | |||
| 1150 | #. type: Plain text | ||
| 1151 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:710 | ||
| 1152 | #, no-wrap | ||
| 1153 | msgid "" | ||
| 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" | ||
| 1159 | msgstr "" | ||
| 1160 | |||
| 1161 | #. type: Plain text | ||
| 1162 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:716 | ||
| 1163 | #, no-wrap | ||
| 1164 | msgid "" | ||
| 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" | ||
| 1170 | msgstr "" | ||
| 1171 | |||
| 1172 | #. type: Plain text | ||
| 1173 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:719 | ||
| 1174 | #, no-wrap | ||
| 1175 | msgid "" | ||
| 1176 | "# split in horizontal orientation\n" | ||
| 1177 | "bindsym $mod+h split h\n" | ||
| 1178 | msgstr "" | ||
| 1179 | |||
| 1180 | #. type: Plain text | ||
| 1181 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:722 | ||
| 1182 | #, no-wrap | ||
| 1183 | msgid "" | ||
| 1184 | "# split in vertical orientation\n" | ||
| 1185 | "bindsym $mod+v split v\n" | ||
| 1186 | msgstr "" | ||
| 1187 | |||
| 1188 | #. type: Plain text | ||
| 1189 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:725 | ||
| 1190 | #, no-wrap | ||
| 1191 | msgid "" | ||
| 1192 | "# enter fullscreen mode for the focused container\n" | ||
| 1193 | "bindsym $mod+f fullscreen toggle\n" | ||
| 1194 | msgstr "" | ||
| 1195 | |||
| 1196 | #. type: Plain text | ||
| 1197 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:730 | ||
| 1198 | #, no-wrap | ||
| 1199 | msgid "" | ||
| 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" | ||
| 1204 | msgstr "" | ||
| 1205 | |||
| 1206 | #. type: Plain text | ||
| 1207 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:733 | ||
| 1208 | #, no-wrap | ||
| 1209 | msgid "" | ||
| 1210 | "# toggle tiling / floating\n" | ||
| 1211 | "bindsym $mod+Shift+space floating toggle\n" | ||
| 1212 | msgstr "" | ||
| 1213 | |||
| 1214 | #. type: Plain text | ||
| 1215 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:736 | ||
| 1216 | #, no-wrap | ||
| 1217 | msgid "" | ||
| 1218 | "# change focus between tiling / floating windows\n" | ||
| 1219 | "bindsym $mod+space focus mode_toggle\n" | ||
| 1220 | msgstr "" | ||
| 1221 | |||
| 1222 | #. type: Plain text | ||
| 1223 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:739 | ||
| 1224 | #, no-wrap | ||
| 1225 | msgid "" | ||
| 1226 | "# focus the parent container\n" | ||
| 1227 | "bindsym $mod+a focus parent\n" | ||
| 1228 | msgstr "" | ||
| 1229 | |||
| 1230 | #. type: Plain text | ||
| 1231 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:742 | ||
| 1232 | #, no-wrap | ||
| 1233 | msgid "" | ||
| 1234 | "# focus the child container\n" | ||
| 1235 | "#bindsym $mod+d focus child\n" | ||
| 1236 | msgstr "" | ||
| 1237 | |||
| 1238 | #. type: Plain text | ||
| 1239 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:755 | ||
| 1240 | #, no-wrap | ||
| 1241 | msgid "" | ||
| 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" | ||
| 1254 | msgstr "" | ||
| 1255 | |||
| 1256 | #. type: Plain text | ||
| 1257 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:767 | ||
| 1258 | #, no-wrap | ||
| 1259 | msgid "" | ||
| 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" | ||
| 1271 | msgstr "" | ||
| 1272 | |||
| 1273 | #. type: Plain text | ||
| 1274 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:779 | ||
| 1275 | #, no-wrap | ||
| 1276 | msgid "" | ||
| 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" | ||
| 1288 | msgstr "" | ||
| 1289 | |||
| 1290 | #. type: Plain text | ||
| 1291 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:788 | ||
| 1292 | #, no-wrap | ||
| 1293 | msgid "" | ||
| 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" | ||
| 1302 | msgstr "" | ||
| 1303 | |||
| 1304 | #. type: Plain text | ||
| 1305 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:792 | ||
| 1306 | #, no-wrap | ||
| 1307 | msgid "" | ||
| 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" | ||
| 1311 | msgstr "" | ||
| 1312 | |||
| 1313 | #. type: Plain text | ||
| 1314 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:801 | ||
| 1315 | #, no-wrap | ||
| 1316 | msgid "" | ||
| 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" | ||
| 1325 | msgstr "" | ||
| 1326 | |||
| 1327 | #. type: Plain text | ||
| 1328 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:807 | ||
| 1329 | #, no-wrap | ||
| 1330 | msgid "" | ||
| 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" | ||
| 1336 | msgstr "" | ||
| 1337 | |||
| 1338 | #. type: Plain text | ||
| 1339 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:810 | ||
| 1340 | #, no-wrap | ||
| 1341 | msgid "" | ||
| 1342 | "bindsym $mod+r mode \"resize\"\n" | ||
| 1343 | "#+end_src\n" | ||
| 1344 | msgstr "" | ||
| 1345 | |||
| 1346 | #. type: Plain text | ||
| 1347 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:820 | ||
| 1348 | #, no-wrap | ||
| 1349 | msgid "" | ||
| 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" | ||
| 1359 | msgstr "" | ||
| 1360 | |||
| 1361 | #. type: Plain text | ||
| 1362 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:830 | ||
| 1363 | #, no-wrap | ||
| 1364 | msgid "" | ||
| 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" | ||
| 1374 | msgstr "" | ||
| 1375 | |||
| 1376 | #. type: Plain text | ||
| 1377 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:832 | ||
| 1378 | #, no-wrap | ||
| 1379 | msgid "" | ||
| 1380 | "- ~startx~\n" | ||
| 1381 | "- =s-RET=\n" | ||
| 1382 | msgstr "" | ||
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 | # | ||
| 6 | msgid "" | ||
| 7 | msgstr "" | ||
| 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 | ||
| 23 | msgid "#+title: Articles\n" | ||
| 24 | msgstr "" | ||
| 25 | |||
| 26 | #. type: Plain text | ||
| 27 | #: src/en/articles/index.org:3 | ||
| 28 | #, no-wrap | ||
| 29 | msgid "#+include: \"sitemap.org\" :lines \"4-\"\n" | ||
| 30 | msgstr "" | ||
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 | # | ||
| 6 | msgid "" | ||
| 7 | msgstr "" | ||
| 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 | ||
| 23 | msgid "#+title: Martin Michalec\n" | ||
| 24 | msgstr "" | ||
| 25 | |||
| 26 | #. type: Plain text | ||
| 27 | #: src/en/index.org:9 | ||
| 28 | #, no-wrap | ||
| 29 | msgid "" | ||
| 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" | ||
| 36 | msgstr "" | ||
| 37 | |||
| 38 | #. type: Plain text | ||
| 39 | #: src/en/index.org:14 | ||
| 40 | #, no-wrap | ||
| 41 | msgid "" | ||
| 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" | ||
| 46 | msgstr "" | ||
| 47 | |||
| 48 | #. type: Plain text | ||
| 49 | #: src/en/index.org:16 | ||
| 50 | #, no-wrap | ||
| 51 | msgid "#+html: <hr/>\n" | ||
| 52 | msgstr "" | ||
| 53 | |||
| 54 | #. type: Plain text | ||
| 55 | #: src/en/index.org:18 | ||
| 56 | #, no-wrap | ||
| 57 | msgid "Copyright © 2024 Martin Michalec\n" | ||
| 58 | msgstr "" | ||
| 59 | |||
| 60 | #. type: Plain text | ||
| 61 | #: src/en/index.org:20 | ||
| 62 | #, no-wrap | ||
| 63 | msgid "" | ||
| 64 | "Verbatim copying and redistribution of this entire page are permitted\n" | ||
| 65 | "provided this notice is preserved.\n" | ||
| 66 | msgstr "" | ||
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 | # | ||
| 6 | msgid "" | ||
| 7 | msgstr "" | ||
| 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 | ||
| 23 | msgid "* TODO add texts...\n" | ||
| 24 | msgstr "" | ||
| 25 | |||
| 26 | #. type: Plain text | ||
| 27 | #: src/en/mailing-list/index.org:2 | ||
| 28 | #, no-wrap | ||
| 29 | msgid "#+title: Mailing List\n" | ||
| 30 | msgstr "" | ||
| 31 | |||
| 32 | #. type: Plain text | ||
| 33 | #: src/en/mailing-list/index.org:4 | ||
| 34 | #, no-wrap | ||
| 35 | msgid "[[[https://lists.michalec.dev][www]]] | [[[http://lists.ygg.michalec.dev][ygg]]] | [[[http://lists.michalec.i2p][i2p]]] | [[[http://some.onion][tor]]]\n" | ||
| 36 | msgstr "" | ||
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 | # | ||
| 6 | msgid "" | ||
| 7 | msgstr "" | ||
| 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 | ||
| 23 | msgid "#+title: Projects\n" | ||
| 24 | msgstr "" | ||
| 25 | |||
| 26 | #. type: Plain text | ||
| 27 | #: src/en/projects/index.org:4 | ||
| 28 | #, no-wrap | ||
| 29 | msgid "[[[https://git.michalec.dev][www]]] | [[[http://git.ygg.michalec.dev][ygg]]] | [[[http://git.michalec.i2p][i2p]]] | [[[http://some.onion][tor]]]\n" | ||
| 30 | msgstr "" | ||
| 31 | |||
| 32 | #. type: Plain text | ||
| 33 | #: src/en/projects/index.org:5 src/en/mailing-list/index.org:5 | ||
| 34 | #, no-wrap | ||
| 35 | msgid "* TODO add texts...\n" | ||
| 36 | msgstr "" | ||
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 | # | ||
| 6 | msgid "" | ||
| 7 | msgstr "" | ||
| 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 | ||
| 23 | msgid "" | ||
| 24 | "#+title: test\n" | ||
| 25 | "#+date: <2024-08-31>\n" | ||
| 26 | msgstr "" | ||
| 27 | |||
| 28 | #. type: Plain text | ||
| 29 | #: src/en/web-log/2024-08-31-test/index.org:16 | ||
| 30 | #, no-wrap | ||
| 31 | msgid "" | ||
| 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" | ||
| 45 | msgstr "" | ||
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 | # | ||
| 6 | msgid "" | ||
| 7 | msgstr "" | ||
| 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 | ||
| 23 | msgid "#+include: \"sitemap.org\" :lines \"4-\"\n" | ||
| 24 | msgstr "" | ||
| 25 | |||
| 26 | #. type: Plain text | ||
| 27 | #: src/en/web-log/index.org:2 | ||
| 28 | #, no-wrap | ||
| 29 | msgid "#+TITLE: Web Log\n" | ||
| 30 | msgstr "" | ||
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 | # | ||
| 6 | msgid "" | ||
| 7 | msgstr "" | ||
| 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 | ||
| 24 | msgid "" | ||
| 25 | "#+title: GNU/Linux and GNU Emacs Introduction\n" | ||
| 26 | "#+keywords: beginner gnu linux emacs\n" | ||
| 27 | msgstr "" | ||
| 28 | |||
| 29 | #. type: Plain text | ||
| 30 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:8 | ||
| 31 | #, no-wrap | ||
| 32 | msgid "" | ||
| 33 | "* Installing Debian\n" | ||
| 34 | "** Preparations\n" | ||
| 35 | "*** Getting debian\n" | ||
| 36 | "Download Debian [[https://www.debian.org/][installer image]]\n" | ||
| 37 | msgstr "" | ||
| 38 | |||
| 39 | #. type: Plain text | ||
| 40 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:12 | ||
| 41 | #, no-wrap | ||
| 42 | msgid "" | ||
| 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" | ||
| 46 | msgstr "" | ||
| 47 | |||
| 48 | #. type: Plain text | ||
| 49 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:15 | ||
| 50 | #, no-wrap | ||
| 51 | msgid "" | ||
| 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" | ||
| 54 | msgstr "" | ||
| 55 | |||
| 56 | #. type: Plain text | ||
| 57 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:19 | ||
| 58 | #, no-wrap | ||
| 59 | msgid "" | ||
| 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" | ||
| 63 | msgstr "" | ||
| 64 | |||
| 65 | #. type: Plain text | ||
| 66 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:22 | ||
| 67 | #, no-wrap | ||
| 68 | msgid "" | ||
| 69 | "*** Booting from the installation medium\n" | ||
| 70 | "NOTE: You might have to enable booting from USB in BIOS.\n" | ||
| 71 | msgstr "" | ||
| 72 | |||
| 73 | #. type: Plain text | ||
| 74 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:24 | ||
| 75 | #, no-wrap | ||
| 76 | msgid "Select the USB from boot menu or change boot order.\n" | ||
| 77 | msgstr "" | ||
| 78 | |||
| 79 | #. type: Plain text | ||
| 80 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:27 | ||
| 81 | #, no-wrap | ||
| 82 | msgid "" | ||
| 83 | "*** The Debian installer\n" | ||
| 84 | "Select the =install= option (not the =Graphical install=) in the GRUB bootloader.\n" | ||
| 85 | msgstr "" | ||
| 86 | |||
| 87 | #. type: Plain text | ||
| 88 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:29 | ||
| 89 | #, no-wrap | ||
| 90 | msgid "To navigate the menus, use arrow keys and TAB, to toggle check boxes use spacebar and to press button use the enter key.\n" | ||
| 91 | msgstr "" | ||
| 92 | |||
| 93 | #. type: Plain text | ||
| 94 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:47 | ||
| 95 | #, no-wrap | ||
| 96 | msgid "" | ||
| 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" | ||
| 114 | msgstr "" | ||
| 115 | |||
| 116 | #. type: Plain text | ||
| 117 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:59 | ||
| 118 | #, no-wrap | ||
| 119 | msgid "" | ||
| 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" | ||
| 131 | msgstr "" | ||
| 132 | |||
| 133 | #. type: Plain text | ||
| 134 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:70 | ||
| 135 | #, no-wrap | ||
| 136 | msgid "" | ||
| 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" | ||
| 147 | msgstr "" | ||
| 148 | |||
| 149 | #. type: Plain text | ||
| 150 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:73 | ||
| 151 | #, no-wrap | ||
| 152 | msgid "" | ||
| 153 | "*** Emacs setup\n" | ||
| 154 | "~sudo apt install emacs git vterm-module libtd~\n" | ||
| 155 | msgstr "" | ||
| 156 | |||
| 157 | #. type: Plain text | ||
| 158 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:75 | ||
| 159 | #, no-wrap | ||
| 160 | msgid "Delete =~/.emacs.d=\n" | ||
| 161 | msgstr "" | ||
| 162 | |||
| 163 | #. type: Plain text | ||
| 164 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:77 | ||
| 165 | #, no-wrap | ||
| 166 | msgid "Edit =~/.config/emacs/init.el=\n" | ||
| 167 | msgstr "" | ||
| 168 | |||
| 169 | #. type: Plain text | ||
| 170 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:83 | ||
| 171 | #, no-wrap | ||
| 172 | msgid "" | ||
| 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" | ||
| 178 | msgstr "" | ||
| 179 | |||
| 180 | #. type: Plain text | ||
| 181 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:100 | ||
| 182 | #, no-wrap | ||
| 183 | msgid "" | ||
| 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" | ||
| 200 | msgstr "" | ||
| 201 | |||
| 202 | #. type: Plain text | ||
| 203 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:105 | ||
| 204 | #, no-wrap | ||
| 205 | msgid "" | ||
| 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" | ||
| 210 | msgstr "" | ||
| 211 | |||
| 212 | #. type: Plain text | ||
| 213 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:115 | ||
| 214 | #, no-wrap | ||
| 215 | msgid "" | ||
| 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" | ||
| 225 | msgstr "" | ||
| 226 | |||
| 227 | #. type: Plain text | ||
| 228 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:123 | ||
| 229 | #, no-wrap | ||
| 230 | msgid "" | ||
| 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" | ||
| 238 | msgstr "" | ||
| 239 | |||
| 240 | #. type: Plain text | ||
| 241 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:138 | ||
| 242 | #, no-wrap | ||
| 243 | msgid "" | ||
| 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" | ||
| 258 | msgstr "" | ||
| 259 | |||
| 260 | #. type: Plain text | ||
| 261 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:148 | ||
| 262 | #, no-wrap | ||
| 263 | msgid "" | ||
| 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" | ||
| 273 | msgstr "" | ||
| 274 | |||
| 275 | #. type: Plain text | ||
| 276 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:155 | ||
| 277 | #, no-wrap | ||
| 278 | msgid "" | ||
| 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" | ||
| 285 | msgstr "" | ||
| 286 | |||
| 287 | #. type: Plain text | ||
| 288 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:163 | ||
| 289 | #, no-wrap | ||
| 290 | msgid "" | ||
| 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" | ||
| 298 | msgstr "" | ||
| 299 | |||
| 300 | #. type: Plain text | ||
| 301 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:171 | ||
| 302 | #, no-wrap | ||
| 303 | msgid "" | ||
| 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" | ||
| 311 | msgstr "" | ||
| 312 | |||
| 313 | #. type: Plain text | ||
| 314 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:188 | ||
| 315 | #, no-wrap | ||
| 316 | msgid "" | ||
| 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" | ||
| 333 | msgstr "" | ||
| 334 | |||
| 335 | #. type: Plain text | ||
| 336 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:194 | ||
| 337 | #, no-wrap | ||
| 338 | msgid "" | ||
| 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" | ||
| 344 | msgstr "" | ||
| 345 | |||
| 346 | #. type: Plain text | ||
| 347 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:200 | ||
| 348 | #, no-wrap | ||
| 349 | msgid "" | ||
| 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" | ||
| 355 | msgstr "" | ||
| 356 | |||
| 357 | #. type: Plain text | ||
| 358 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:207 | ||
| 359 | #, no-wrap | ||
| 360 | msgid "" | ||
| 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" | ||
| 367 | msgstr "" | ||
| 368 | |||
| 369 | #. type: Plain text | ||
| 370 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:215 | ||
| 371 | #, no-wrap | ||
| 372 | msgid "" | ||
| 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" | ||
| 380 | msgstr "" | ||
| 381 | |||
| 382 | #. type: Plain text | ||
| 383 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:221 | ||
| 384 | #, no-wrap | ||
| 385 | msgid "" | ||
| 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" | ||
| 391 | msgstr "" | ||
| 392 | |||
| 393 | #. type: Plain text | ||
| 394 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:229 | ||
| 395 | #, no-wrap | ||
| 396 | msgid "" | ||
| 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" | ||
| 404 | msgstr "" | ||
| 405 | |||
| 406 | #. type: Plain text | ||
| 407 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:237 | ||
| 408 | #, no-wrap | ||
| 409 | msgid "" | ||
| 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" | ||
| 417 | msgstr "" | ||
| 418 | |||
| 419 | #. type: Plain text | ||
| 420 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:243 | ||
| 421 | #, no-wrap | ||
| 422 | msgid "" | ||
| 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" | ||
| 428 | msgstr "" | ||
| 429 | |||
| 430 | #. type: Plain text | ||
| 431 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:251 | ||
| 432 | #, no-wrap | ||
| 433 | msgid "" | ||
| 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" | ||
| 441 | msgstr "" | ||
| 442 | |||
| 443 | #. type: Plain text | ||
| 444 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:262 | ||
| 445 | #, no-wrap | ||
| 446 | msgid "" | ||
| 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" | ||
| 457 | msgstr "" | ||
| 458 | |||
| 459 | #. type: Plain text | ||
| 460 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:271 | ||
| 461 | #, no-wrap | ||
| 462 | msgid "" | ||
| 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" | ||
| 471 | msgstr "" | ||
| 472 | |||
| 473 | #. type: Plain text | ||
| 474 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:324 | ||
| 475 | #, no-wrap | ||
| 476 | msgid "" | ||
| 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" | ||
| 529 | msgstr "" | ||
| 530 | |||
| 531 | #. type: Plain text | ||
| 532 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:334 | ||
| 533 | #, no-wrap | ||
| 534 | msgid "" | ||
| 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" | ||
| 544 | msgstr "" | ||
| 545 | |||
| 546 | #. type: Plain text | ||
| 547 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:338 | ||
| 548 | #, no-wrap | ||
| 549 | msgid "" | ||
| 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" | ||
| 553 | msgstr "" | ||
| 554 | |||
| 555 | #. type: Plain text | ||
| 556 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:342 | ||
| 557 | #, no-wrap | ||
| 558 | msgid "" | ||
| 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" | ||
| 562 | msgstr "" | ||
| 563 | |||
| 564 | #. type: Plain text | ||
| 565 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:346 | ||
| 566 | #, no-wrap | ||
| 567 | msgid "" | ||
| 568 | " ;; Configure other variables and modes in the :config section,\n" | ||
| 569 | " ;; after lazily loading the package.\n" | ||
| 570 | " :config\n" | ||
| 571 | msgstr "" | ||
| 572 | |||
| 573 | #. type: Plain text | ||
| 574 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:362 | ||
| 575 | #, no-wrap | ||
| 576 | msgid "" | ||
| 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" | ||
| 592 | msgstr "" | ||
| 593 | |||
| 594 | #. type: Plain text | ||
| 595 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:366 | ||
| 596 | #, no-wrap | ||
| 597 | msgid "" | ||
| 598 | " ;; Optionally configure the narrowing key.\n" | ||
| 599 | " ;; Both < and C-+ work reasonably well.\n" | ||
| 600 | " (setq consult-narrow-key \"<\") ;; \"C-+\"\n" | ||
| 601 | msgstr "" | ||
| 602 | |||
| 603 | #. type: Plain text | ||
| 604 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:371 | ||
| 605 | #, no-wrap | ||
| 606 | msgid "" | ||
| 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" | ||
| 611 | msgstr "" | ||
| 612 | |||
| 613 | #. type: Plain text | ||
| 614 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:386 | ||
| 615 | #, no-wrap | ||
| 616 | msgid "" | ||
| 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" | ||
| 631 | msgstr "" | ||
| 632 | |||
| 633 | #. type: Plain text | ||
| 634 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:396 | ||
| 635 | #, no-wrap | ||
| 636 | msgid "" | ||
| 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" | ||
| 646 | msgstr "" | ||
| 647 | |||
| 648 | #. type: Plain text | ||
| 649 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:412 | ||
| 650 | #, no-wrap | ||
| 651 | msgid "" | ||
| 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" | ||
| 667 | msgstr "" | ||
| 668 | |||
| 669 | #. type: Plain text | ||
| 670 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:417 | ||
| 671 | #, no-wrap | ||
| 672 | msgid "" | ||
| 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" | ||
| 677 | msgstr "" | ||
| 678 | |||
| 679 | #. type: Plain text | ||
| 680 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:420 | ||
| 681 | #, no-wrap | ||
| 682 | msgid "" | ||
| 683 | " ;; Enable recursive minibuffers\n" | ||
| 684 | " (setq enable-recursive-minibuffers t))\n" | ||
| 685 | msgstr "" | ||
| 686 | |||
| 687 | #. type: Plain text | ||
| 688 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:430 | ||
| 689 | #, no-wrap | ||
| 690 | msgid "" | ||
| 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" | ||
| 700 | msgstr "" | ||
| 701 | |||
| 702 | #. type: Plain text | ||
| 703 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:443 | ||
| 704 | #, no-wrap | ||
| 705 | msgid "" | ||
| 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" | ||
| 718 | msgstr "" | ||
| 719 | |||
| 720 | #. type: Plain text | ||
| 721 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:451 | ||
| 722 | #, no-wrap | ||
| 723 | msgid "" | ||
| 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" | ||
| 731 | msgstr "" | ||
| 732 | |||
| 733 | #. type: Plain text | ||
| 734 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:460 | ||
| 735 | #, no-wrap | ||
| 736 | msgid "" | ||
| 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" | ||
| 745 | msgstr "" | ||
| 746 | |||
| 747 | #. type: Plain text | ||
| 748 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:467 | ||
| 749 | #, no-wrap | ||
| 750 | msgid "" | ||
| 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" | ||
| 757 | msgstr "" | ||
| 758 | |||
| 759 | #. type: Plain text | ||
| 760 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:475 | ||
| 761 | #, no-wrap | ||
| 762 | msgid "" | ||
| 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" | ||
| 770 | msgstr "" | ||
| 771 | |||
| 772 | #. type: Plain text | ||
| 773 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:490 | ||
| 774 | #, no-wrap | ||
| 775 | msgid "" | ||
| 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" | ||
| 790 | msgstr "" | ||
| 791 | |||
| 792 | #. type: Plain text | ||
| 793 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:496 | ||
| 794 | #, no-wrap | ||
| 795 | msgid "" | ||
| 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" | ||
| 801 | msgstr "" | ||
| 802 | |||
| 803 | #. type: Plain text | ||
| 804 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:502 | ||
| 805 | #, no-wrap | ||
| 806 | msgid "" | ||
| 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" | ||
| 812 | msgstr "" | ||
| 813 | |||
| 814 | #. type: Plain text | ||
| 815 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:508 | ||
| 816 | #, no-wrap | ||
| 817 | msgid "" | ||
| 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" | ||
| 823 | msgstr "" | ||
| 824 | |||
| 825 | #. type: Plain text | ||
| 826 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:514 | ||
| 827 | #, no-wrap | ||
| 828 | msgid "" | ||
| 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" | ||
| 834 | msgstr "" | ||
| 835 | |||
| 836 | #. type: Plain text | ||
| 837 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:518 | ||
| 838 | #, no-wrap | ||
| 839 | msgid "" | ||
| 840 | "*** i3 setup\n" | ||
| 841 | "~sudo apt install xorg i3 dbus-launch maim udiskie~\n" | ||
| 842 | "Edit =~/.xinitrc=\n" | ||
| 843 | msgstr "" | ||
| 844 | |||
| 845 | #. type: Plain text | ||
| 846 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:525 | ||
| 847 | #, no-wrap | ||
| 848 | msgid "" | ||
| 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" | ||
| 855 | msgstr "" | ||
| 856 | |||
| 857 | #. type: Plain text | ||
| 858 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:531 | ||
| 859 | #, no-wrap | ||
| 860 | msgid "" | ||
| 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" | ||
| 866 | msgstr "" | ||
| 867 | |||
| 868 | #. type: Plain text | ||
| 869 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:537 | ||
| 870 | #, no-wrap | ||
| 871 | msgid "" | ||
| 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" | ||
| 877 | msgstr "" | ||
| 878 | |||
| 879 | #. type: Plain text | ||
| 880 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:539 | ||
| 881 | #, no-wrap | ||
| 882 | msgid "Edit =~/.config/i3/config=\n" | ||
| 883 | msgstr "" | ||
| 884 | |||
| 885 | #. type: Plain text | ||
| 886 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:549 | ||
| 887 | #, no-wrap | ||
| 888 | msgid "" | ||
| 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" | ||
| 898 | msgstr "" | ||
| 899 | |||
| 900 | #. type: Plain text | ||
| 901 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:562 | ||
| 902 | #, no-wrap | ||
| 903 | msgid "" | ||
| 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" | ||
| 916 | msgstr "" | ||
| 917 | |||
| 918 | #. type: Plain text | ||
| 919 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:575 | ||
| 920 | #, no-wrap | ||
| 921 | msgid "" | ||
| 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" | ||
| 934 | msgstr "" | ||
| 935 | |||
| 936 | #. type: Plain text | ||
| 937 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:578 | ||
| 938 | #, no-wrap | ||
| 939 | msgid "" | ||
| 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" | ||
| 942 | msgstr "" | ||
| 943 | |||
| 944 | #. type: Plain text | ||
| 945 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:582 | ||
| 946 | #, no-wrap | ||
| 947 | msgid "" | ||
| 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" | ||
| 951 | msgstr "" | ||
| 952 | |||
| 953 | #. type: Plain text | ||
| 954 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:587 | ||
| 955 | #, no-wrap | ||
| 956 | msgid "" | ||
| 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" | ||
| 961 | msgstr "" | ||
| 962 | |||
| 963 | #. type: Plain text | ||
| 964 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:596 | ||
| 965 | #, no-wrap | ||
| 966 | msgid "" | ||
| 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" | ||
| 975 | msgstr "" | ||
| 976 | |||
| 977 | #. type: Plain text | ||
| 978 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:602 | ||
| 979 | #, no-wrap | ||
| 980 | msgid "" | ||
| 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" | ||
| 986 | msgstr "" | ||
| 987 | |||
| 988 | #. type: Plain text | ||
| 989 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:608 | ||
| 990 | #, no-wrap | ||
| 991 | msgid "" | ||
| 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" | ||
| 997 | msgstr "" | ||
| 998 | |||
| 999 | #. type: Plain text | ||
| 1000 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:622 | ||
| 1001 | #, no-wrap | ||
| 1002 | msgid "" | ||
| 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" | ||
| 1016 | msgstr "" | ||
| 1017 | |||
| 1018 | #. type: Plain text | ||
| 1019 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:628 | ||
| 1020 | #, no-wrap | ||
| 1021 | msgid "" | ||
| 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" | ||
| 1027 | msgstr "" | ||
| 1028 | |||
| 1029 | #. type: Plain text | ||
| 1030 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:643 | ||
| 1031 | #, no-wrap | ||
| 1032 | msgid "" | ||
| 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" | ||
| 1047 | msgstr "" | ||
| 1048 | |||
| 1049 | #. type: Plain text | ||
| 1050 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:655 | ||
| 1051 | #, no-wrap | ||
| 1052 | msgid "" | ||
| 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" | ||
| 1064 | msgstr "" | ||
| 1065 | |||
| 1066 | #. type: Plain text | ||
| 1067 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:666 | ||
| 1068 | #, no-wrap | ||
| 1069 | msgid "" | ||
| 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" | ||
| 1080 | msgstr "" | ||
| 1081 | |||
| 1082 | #. type: Plain text | ||
| 1083 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:680 | ||
| 1084 | #, no-wrap | ||
| 1085 | msgid "" | ||
| 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" | ||
| 1099 | msgstr "" | ||
| 1100 | |||
| 1101 | #. type: Plain text | ||
| 1102 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:686 | ||
| 1103 | #, no-wrap | ||
| 1104 | msgid "" | ||
| 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" | ||
| 1110 | msgstr "" | ||
| 1111 | |||
| 1112 | #. type: Plain text | ||
| 1113 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:689 | ||
| 1114 | #, no-wrap | ||
| 1115 | msgid "" | ||
| 1116 | "# kill focused window\n" | ||
| 1117 | "bindsym $mod+Shift+q kill\n" | ||
| 1118 | msgstr "" | ||
| 1119 | |||
| 1120 | #. type: Plain text | ||
| 1121 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:692 | ||
| 1122 | #, no-wrap | ||
| 1123 | msgid "" | ||
| 1124 | "# start dmenu (a program launcher)\n" | ||
| 1125 | "bindsym $mod+d exec --no-startup-id i3-dmenu-desktop --dmenu='dmenu -i -fn 12'\n" | ||
| 1126 | msgstr "" | ||
| 1127 | |||
| 1128 | #. type: Plain text | ||
| 1129 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:698 | ||
| 1130 | #, no-wrap | ||
| 1131 | msgid "" | ||
| 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" | ||
| 1137 | msgstr "" | ||
| 1138 | |||
| 1139 | #. type: Plain text | ||
| 1140 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:704 | ||
| 1141 | #, no-wrap | ||
| 1142 | msgid "" | ||
| 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" | ||
| 1148 | msgstr "" | ||
| 1149 | |||
| 1150 | #. type: Plain text | ||
| 1151 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:710 | ||
| 1152 | #, no-wrap | ||
| 1153 | msgid "" | ||
| 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" | ||
| 1159 | msgstr "" | ||
| 1160 | |||
| 1161 | #. type: Plain text | ||
| 1162 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:716 | ||
| 1163 | #, no-wrap | ||
| 1164 | msgid "" | ||
| 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" | ||
| 1170 | msgstr "" | ||
| 1171 | |||
| 1172 | #. type: Plain text | ||
| 1173 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:719 | ||
| 1174 | #, no-wrap | ||
| 1175 | msgid "" | ||
| 1176 | "# split in horizontal orientation\n" | ||
| 1177 | "bindsym $mod+h split h\n" | ||
| 1178 | msgstr "" | ||
| 1179 | |||
| 1180 | #. type: Plain text | ||
| 1181 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:722 | ||
| 1182 | #, no-wrap | ||
| 1183 | msgid "" | ||
| 1184 | "# split in vertical orientation\n" | ||
| 1185 | "bindsym $mod+v split v\n" | ||
| 1186 | msgstr "" | ||
| 1187 | |||
| 1188 | #. type: Plain text | ||
| 1189 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:725 | ||
| 1190 | #, no-wrap | ||
| 1191 | msgid "" | ||
| 1192 | "# enter fullscreen mode for the focused container\n" | ||
| 1193 | "bindsym $mod+f fullscreen toggle\n" | ||
| 1194 | msgstr "" | ||
| 1195 | |||
| 1196 | #. type: Plain text | ||
| 1197 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:730 | ||
| 1198 | #, no-wrap | ||
| 1199 | msgid "" | ||
| 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" | ||
| 1204 | msgstr "" | ||
| 1205 | |||
| 1206 | #. type: Plain text | ||
| 1207 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:733 | ||
| 1208 | #, no-wrap | ||
| 1209 | msgid "" | ||
| 1210 | "# toggle tiling / floating\n" | ||
| 1211 | "bindsym $mod+Shift+space floating toggle\n" | ||
| 1212 | msgstr "" | ||
| 1213 | |||
| 1214 | #. type: Plain text | ||
| 1215 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:736 | ||
| 1216 | #, no-wrap | ||
| 1217 | msgid "" | ||
| 1218 | "# change focus between tiling / floating windows\n" | ||
| 1219 | "bindsym $mod+space focus mode_toggle\n" | ||
| 1220 | msgstr "" | ||
| 1221 | |||
| 1222 | #. type: Plain text | ||
| 1223 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:739 | ||
| 1224 | #, no-wrap | ||
| 1225 | msgid "" | ||
| 1226 | "# focus the parent container\n" | ||
| 1227 | "bindsym $mod+a focus parent\n" | ||
| 1228 | msgstr "" | ||
| 1229 | |||
| 1230 | #. type: Plain text | ||
| 1231 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:742 | ||
| 1232 | #, no-wrap | ||
| 1233 | msgid "" | ||
| 1234 | "# focus the child container\n" | ||
| 1235 | "#bindsym $mod+d focus child\n" | ||
| 1236 | msgstr "" | ||
| 1237 | |||
| 1238 | #. type: Plain text | ||
| 1239 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:755 | ||
| 1240 | #, no-wrap | ||
| 1241 | msgid "" | ||
| 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" | ||
| 1254 | msgstr "" | ||
| 1255 | |||
| 1256 | #. type: Plain text | ||
| 1257 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:767 | ||
| 1258 | #, no-wrap | ||
| 1259 | msgid "" | ||
| 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" | ||
| 1271 | msgstr "" | ||
| 1272 | |||
| 1273 | #. type: Plain text | ||
| 1274 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:779 | ||
| 1275 | #, no-wrap | ||
| 1276 | msgid "" | ||
| 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" | ||
| 1288 | msgstr "" | ||
| 1289 | |||
| 1290 | #. type: Plain text | ||
| 1291 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:788 | ||
| 1292 | #, no-wrap | ||
| 1293 | msgid "" | ||
| 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" | ||
| 1302 | msgstr "" | ||
| 1303 | |||
| 1304 | #. type: Plain text | ||
| 1305 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:792 | ||
| 1306 | #, no-wrap | ||
| 1307 | msgid "" | ||
| 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" | ||
| 1311 | msgstr "" | ||
| 1312 | |||
| 1313 | #. type: Plain text | ||
| 1314 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:801 | ||
| 1315 | #, no-wrap | ||
| 1316 | msgid "" | ||
| 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" | ||
| 1325 | msgstr "" | ||
| 1326 | |||
| 1327 | #. type: Plain text | ||
| 1328 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:807 | ||
| 1329 | #, no-wrap | ||
| 1330 | msgid "" | ||
| 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" | ||
| 1336 | msgstr "" | ||
| 1337 | |||
| 1338 | #. type: Plain text | ||
| 1339 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:810 | ||
| 1340 | #, no-wrap | ||
| 1341 | msgid "" | ||
| 1342 | "bindsym $mod+r mode \"resize\"\n" | ||
| 1343 | "#+end_src\n" | ||
| 1344 | msgstr "" | ||
| 1345 | |||
| 1346 | #. type: Plain text | ||
| 1347 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:820 | ||
| 1348 | #, no-wrap | ||
| 1349 | msgid "" | ||
| 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" | ||
| 1359 | msgstr "" | ||
| 1360 | |||
| 1361 | #. type: Plain text | ||
| 1362 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:830 | ||
| 1363 | #, no-wrap | ||
| 1364 | msgid "" | ||
| 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" | ||
| 1374 | msgstr "" | ||
| 1375 | |||
| 1376 | #. type: Plain text | ||
| 1377 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:832 | ||
| 1378 | #, no-wrap | ||
| 1379 | msgid "" | ||
| 1380 | "- ~startx~\n" | ||
| 1381 | "- =s-RET=\n" | ||
| 1382 | msgstr "" | ||
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 | # | ||
| 6 | msgid "" | ||
| 7 | msgstr "" | ||
| 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 | ||
| 24 | msgid "#+title: Articles\n" | ||
| 25 | msgstr "" | ||
| 26 | |||
| 27 | #. type: Plain text | ||
| 28 | #: src/en/articles/index.org:3 | ||
| 29 | #, no-wrap | ||
| 30 | msgid "#+include: \"sitemap.org\" :lines \"4-\"\n" | ||
| 31 | msgstr "" | ||
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 | # | ||
| 6 | msgid "" | ||
| 7 | msgstr "" | ||
| 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 | ||
| 24 | msgid "#+title: Martin Michalec\n" | ||
| 25 | msgstr "" | ||
| 26 | |||
| 27 | #. type: Plain text | ||
| 28 | #: src/en/index.org:9 | ||
| 29 | #, no-wrap | ||
| 30 | msgid "" | ||
| 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" | ||
| 37 | msgstr "" | ||
| 38 | |||
| 39 | #. type: Plain text | ||
| 40 | #: src/en/index.org:14 | ||
| 41 | #, no-wrap | ||
| 42 | msgid "" | ||
| 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" | ||
| 47 | msgstr "" | ||
| 48 | |||
| 49 | #. type: Plain text | ||
| 50 | #: src/en/index.org:16 | ||
| 51 | #, no-wrap | ||
| 52 | msgid "#+html: <hr/>\n" | ||
| 53 | msgstr "" | ||
| 54 | |||
| 55 | #. type: Plain text | ||
| 56 | #: src/en/index.org:18 | ||
| 57 | #, no-wrap | ||
| 58 | msgid "Copyright © 2024 Martin Michalec\n" | ||
| 59 | msgstr "" | ||
| 60 | |||
| 61 | #. type: Plain text | ||
| 62 | #: src/en/index.org:20 | ||
| 63 | #, no-wrap | ||
| 64 | msgid "" | ||
| 65 | "Verbatim copying and redistribution of this entire page are permitted\n" | ||
| 66 | "provided this notice is preserved.\n" | ||
| 67 | msgstr "" | ||
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 | # | ||
| 6 | msgid "" | ||
| 7 | msgstr "" | ||
| 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 | ||
| 24 | msgid "* TODO add texts...\n" | ||
| 25 | msgstr "" | ||
| 26 | |||
| 27 | #. type: Plain text | ||
| 28 | #: src/en/mailing-list/index.org:2 | ||
| 29 | #, no-wrap | ||
| 30 | msgid "#+title: Mailing List\n" | ||
| 31 | msgstr "" | ||
| 32 | |||
| 33 | #. type: Plain text | ||
| 34 | #: src/en/mailing-list/index.org:4 | ||
| 35 | #, no-wrap | ||
| 36 | msgid "[[[https://lists.michalec.dev][www]]] | [[[http://lists.ygg.michalec.dev][ygg]]] | [[[http://lists.michalec.i2p][i2p]]] | [[[http://some.onion][tor]]]\n" | ||
| 37 | msgstr "" | ||
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 | # | ||
| 6 | msgid "" | ||
| 7 | msgstr "" | ||
| 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 | ||
| 24 | msgid "#+title: Projects\n" | ||
| 25 | msgstr "" | ||
| 26 | |||
| 27 | #. type: Plain text | ||
| 28 | #: src/en/projects/index.org:4 | ||
| 29 | #, no-wrap | ||
| 30 | msgid "[[[https://git.michalec.dev][www]]] | [[[http://git.ygg.michalec.dev][ygg]]] | [[[http://git.michalec.i2p][i2p]]] | [[[http://some.onion][tor]]]\n" | ||
| 31 | msgstr "" | ||
| 32 | |||
| 33 | #. type: Plain text | ||
| 34 | #: src/en/projects/index.org:5 src/en/mailing-list/index.org:5 | ||
| 35 | #, no-wrap | ||
| 36 | msgid "* TODO add texts...\n" | ||
| 37 | msgstr "" | ||
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 | # | ||
| 6 | msgid "" | ||
| 7 | msgstr "" | ||
| 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 | ||
| 24 | msgid "" | ||
| 25 | "#+title: test\n" | ||
| 26 | "#+date: <2024-08-31>\n" | ||
| 27 | msgstr "" | ||
| 28 | |||
| 29 | #. type: Plain text | ||
| 30 | #: src/en/web-log/2024-08-31-test/index.org:16 | ||
| 31 | #, no-wrap | ||
| 32 | msgid "" | ||
| 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" | ||
| 46 | msgstr "" | ||
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 | # | ||
| 6 | msgid "" | ||
| 7 | msgstr "" | ||
| 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 | ||
| 24 | msgid "#+include: \"sitemap.org\" :lines \"4-\"\n" | ||
| 25 | msgstr "" | ||
| 26 | |||
| 27 | #. type: Plain text | ||
| 28 | #: src/en/web-log/index.org:2 | ||
| 29 | #, no-wrap | ||
| 30 | msgid "#+TITLE: Web Log\n" | ||
| 31 | msgstr "" | ||
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 | # | ||
| 6 | msgid "" | ||
| 7 | msgstr "" | ||
| 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 | ||
| 23 | msgid "" | ||
| 24 | "#+title: GNU/Linux and GNU Emacs Introduction\n" | ||
| 25 | "#+keywords: beginner gnu linux emacs\n" | ||
| 26 | msgstr "" | ||
| 27 | |||
| 28 | #. type: Plain text | ||
| 29 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:8 | ||
| 30 | #, no-wrap | ||
| 31 | msgid "" | ||
| 32 | "* Installing Debian\n" | ||
| 33 | "** Preparations\n" | ||
| 34 | "*** Getting debian\n" | ||
| 35 | "Download Debian [[https://www.debian.org/][installer image]]\n" | ||
| 36 | msgstr "" | ||
| 37 | |||
| 38 | #. type: Plain text | ||
| 39 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:12 | ||
| 40 | #, no-wrap | ||
| 41 | msgid "" | ||
| 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" | ||
| 45 | msgstr "" | ||
| 46 | |||
| 47 | #. type: Plain text | ||
| 48 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:15 | ||
| 49 | #, no-wrap | ||
| 50 | msgid "" | ||
| 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" | ||
| 53 | msgstr "" | ||
| 54 | |||
| 55 | #. type: Plain text | ||
| 56 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:19 | ||
| 57 | #, no-wrap | ||
| 58 | msgid "" | ||
| 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" | ||
| 62 | msgstr "" | ||
| 63 | |||
| 64 | #. type: Plain text | ||
| 65 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:22 | ||
| 66 | #, no-wrap | ||
| 67 | msgid "" | ||
| 68 | "*** Booting from the installation medium\n" | ||
| 69 | "NOTE: You might have to enable booting from USB in BIOS.\n" | ||
| 70 | msgstr "" | ||
| 71 | |||
| 72 | #. type: Plain text | ||
| 73 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:24 | ||
| 74 | #, no-wrap | ||
| 75 | msgid "Select the USB from boot menu or change boot order.\n" | ||
| 76 | msgstr "" | ||
| 77 | |||
| 78 | #. type: Plain text | ||
| 79 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:27 | ||
| 80 | #, no-wrap | ||
| 81 | msgid "" | ||
| 82 | "*** The Debian installer\n" | ||
| 83 | "Select the =install= option (not the =Graphical install=) in the GRUB bootloader.\n" | ||
| 84 | msgstr "" | ||
| 85 | |||
| 86 | #. type: Plain text | ||
| 87 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:29 | ||
| 88 | #, no-wrap | ||
| 89 | msgid "To navigate the menus, use arrow keys and TAB, to toggle check boxes use spacebar and to press button use the enter key.\n" | ||
| 90 | msgstr "" | ||
| 91 | |||
| 92 | #. type: Plain text | ||
| 93 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:47 | ||
| 94 | #, no-wrap | ||
| 95 | msgid "" | ||
| 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" | ||
| 113 | msgstr "" | ||
| 114 | |||
| 115 | #. type: Plain text | ||
| 116 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:59 | ||
| 117 | #, no-wrap | ||
| 118 | msgid "" | ||
| 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" | ||
| 130 | msgstr "" | ||
| 131 | |||
| 132 | #. type: Plain text | ||
| 133 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:70 | ||
| 134 | #, no-wrap | ||
| 135 | msgid "" | ||
| 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" | ||
| 146 | msgstr "" | ||
| 147 | |||
| 148 | #. type: Plain text | ||
| 149 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:73 | ||
| 150 | #, no-wrap | ||
| 151 | msgid "" | ||
| 152 | "*** Emacs setup\n" | ||
| 153 | "~sudo apt install emacs git vterm-module libtd~\n" | ||
| 154 | msgstr "" | ||
| 155 | |||
| 156 | #. type: Plain text | ||
| 157 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:75 | ||
| 158 | #, no-wrap | ||
| 159 | msgid "Delete =~/.emacs.d=\n" | ||
| 160 | msgstr "" | ||
| 161 | |||
| 162 | #. type: Plain text | ||
| 163 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:77 | ||
| 164 | #, no-wrap | ||
| 165 | msgid "Edit =~/.config/emacs/init.el=\n" | ||
| 166 | msgstr "" | ||
| 167 | |||
| 168 | #. type: Plain text | ||
| 169 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:83 | ||
| 170 | #, no-wrap | ||
| 171 | msgid "" | ||
| 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" | ||
| 177 | msgstr "" | ||
| 178 | |||
| 179 | #. type: Plain text | ||
| 180 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:100 | ||
| 181 | #, no-wrap | ||
| 182 | msgid "" | ||
| 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" | ||
| 199 | msgstr "" | ||
| 200 | |||
| 201 | #. type: Plain text | ||
| 202 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:105 | ||
| 203 | #, no-wrap | ||
| 204 | msgid "" | ||
| 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" | ||
| 209 | msgstr "" | ||
| 210 | |||
| 211 | #. type: Plain text | ||
| 212 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:115 | ||
| 213 | #, no-wrap | ||
| 214 | msgid "" | ||
| 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" | ||
| 224 | msgstr "" | ||
| 225 | |||
| 226 | #. type: Plain text | ||
| 227 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:123 | ||
| 228 | #, no-wrap | ||
| 229 | msgid "" | ||
| 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" | ||
| 237 | msgstr "" | ||
| 238 | |||
| 239 | #. type: Plain text | ||
| 240 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:138 | ||
| 241 | #, no-wrap | ||
| 242 | msgid "" | ||
| 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" | ||
| 257 | msgstr "" | ||
| 258 | |||
| 259 | #. type: Plain text | ||
| 260 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:148 | ||
| 261 | #, no-wrap | ||
| 262 | msgid "" | ||
| 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" | ||
| 272 | msgstr "" | ||
| 273 | |||
| 274 | #. type: Plain text | ||
| 275 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:155 | ||
| 276 | #, no-wrap | ||
| 277 | msgid "" | ||
| 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" | ||
| 284 | msgstr "" | ||
| 285 | |||
| 286 | #. type: Plain text | ||
| 287 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:163 | ||
| 288 | #, no-wrap | ||
| 289 | msgid "" | ||
| 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" | ||
| 297 | msgstr "" | ||
| 298 | |||
| 299 | #. type: Plain text | ||
| 300 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:171 | ||
| 301 | #, no-wrap | ||
| 302 | msgid "" | ||
| 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" | ||
| 310 | msgstr "" | ||
| 311 | |||
| 312 | #. type: Plain text | ||
| 313 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:188 | ||
| 314 | #, no-wrap | ||
| 315 | msgid "" | ||
| 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" | ||
| 332 | msgstr "" | ||
| 333 | |||
| 334 | #. type: Plain text | ||
| 335 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:194 | ||
| 336 | #, no-wrap | ||
| 337 | msgid "" | ||
| 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" | ||
| 343 | msgstr "" | ||
| 344 | |||
| 345 | #. type: Plain text | ||
| 346 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:200 | ||
| 347 | #, no-wrap | ||
| 348 | msgid "" | ||
| 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" | ||
| 354 | msgstr "" | ||
| 355 | |||
| 356 | #. type: Plain text | ||
| 357 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:207 | ||
| 358 | #, no-wrap | ||
| 359 | msgid "" | ||
| 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" | ||
| 366 | msgstr "" | ||
| 367 | |||
| 368 | #. type: Plain text | ||
| 369 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:215 | ||
| 370 | #, no-wrap | ||
| 371 | msgid "" | ||
| 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" | ||
| 379 | msgstr "" | ||
| 380 | |||
| 381 | #. type: Plain text | ||
| 382 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:221 | ||
| 383 | #, no-wrap | ||
| 384 | msgid "" | ||
| 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" | ||
| 390 | msgstr "" | ||
| 391 | |||
| 392 | #. type: Plain text | ||
| 393 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:229 | ||
| 394 | #, no-wrap | ||
| 395 | msgid "" | ||
| 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" | ||
| 403 | msgstr "" | ||
| 404 | |||
| 405 | #. type: Plain text | ||
| 406 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:237 | ||
| 407 | #, no-wrap | ||
| 408 | msgid "" | ||
| 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" | ||
| 416 | msgstr "" | ||
| 417 | |||
| 418 | #. type: Plain text | ||
| 419 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:243 | ||
| 420 | #, no-wrap | ||
| 421 | msgid "" | ||
| 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" | ||
| 427 | msgstr "" | ||
| 428 | |||
| 429 | #. type: Plain text | ||
| 430 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:251 | ||
| 431 | #, no-wrap | ||
| 432 | msgid "" | ||
| 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" | ||
| 440 | msgstr "" | ||
| 441 | |||
| 442 | #. type: Plain text | ||
| 443 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:262 | ||
| 444 | #, no-wrap | ||
| 445 | msgid "" | ||
| 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" | ||
| 456 | msgstr "" | ||
| 457 | |||
| 458 | #. type: Plain text | ||
| 459 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:271 | ||
| 460 | #, no-wrap | ||
| 461 | msgid "" | ||
| 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" | ||
| 470 | msgstr "" | ||
| 471 | |||
| 472 | #. type: Plain text | ||
| 473 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:324 | ||
| 474 | #, no-wrap | ||
| 475 | msgid "" | ||
| 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" | ||
| 528 | msgstr "" | ||
| 529 | |||
| 530 | #. type: Plain text | ||
| 531 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:334 | ||
| 532 | #, no-wrap | ||
| 533 | msgid "" | ||
| 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" | ||
| 543 | msgstr "" | ||
| 544 | |||
| 545 | #. type: Plain text | ||
| 546 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:338 | ||
| 547 | #, no-wrap | ||
| 548 | msgid "" | ||
| 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" | ||
| 552 | msgstr "" | ||
| 553 | |||
| 554 | #. type: Plain text | ||
| 555 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:342 | ||
| 556 | #, no-wrap | ||
| 557 | msgid "" | ||
| 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" | ||
| 561 | msgstr "" | ||
| 562 | |||
| 563 | #. type: Plain text | ||
| 564 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:346 | ||
| 565 | #, no-wrap | ||
| 566 | msgid "" | ||
| 567 | " ;; Configure other variables and modes in the :config section,\n" | ||
| 568 | " ;; after lazily loading the package.\n" | ||
| 569 | " :config\n" | ||
| 570 | msgstr "" | ||
| 571 | |||
| 572 | #. type: Plain text | ||
| 573 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:362 | ||
| 574 | #, no-wrap | ||
| 575 | msgid "" | ||
| 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" | ||
| 591 | msgstr "" | ||
| 592 | |||
| 593 | #. type: Plain text | ||
| 594 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:366 | ||
| 595 | #, no-wrap | ||
| 596 | msgid "" | ||
| 597 | " ;; Optionally configure the narrowing key.\n" | ||
| 598 | " ;; Both < and C-+ work reasonably well.\n" | ||
| 599 | " (setq consult-narrow-key \"<\") ;; \"C-+\"\n" | ||
| 600 | msgstr "" | ||
| 601 | |||
| 602 | #. type: Plain text | ||
| 603 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:371 | ||
| 604 | #, no-wrap | ||
| 605 | msgid "" | ||
| 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" | ||
| 610 | msgstr "" | ||
| 611 | |||
| 612 | #. type: Plain text | ||
| 613 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:386 | ||
| 614 | #, no-wrap | ||
| 615 | msgid "" | ||
| 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" | ||
| 630 | msgstr "" | ||
| 631 | |||
| 632 | #. type: Plain text | ||
| 633 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:396 | ||
| 634 | #, no-wrap | ||
| 635 | msgid "" | ||
| 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" | ||
| 645 | msgstr "" | ||
| 646 | |||
| 647 | #. type: Plain text | ||
| 648 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:412 | ||
| 649 | #, no-wrap | ||
| 650 | msgid "" | ||
| 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" | ||
| 666 | msgstr "" | ||
| 667 | |||
| 668 | #. type: Plain text | ||
| 669 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:417 | ||
| 670 | #, no-wrap | ||
| 671 | msgid "" | ||
| 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" | ||
| 676 | msgstr "" | ||
| 677 | |||
| 678 | #. type: Plain text | ||
| 679 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:420 | ||
| 680 | #, no-wrap | ||
| 681 | msgid "" | ||
| 682 | " ;; Enable recursive minibuffers\n" | ||
| 683 | " (setq enable-recursive-minibuffers t))\n" | ||
| 684 | msgstr "" | ||
| 685 | |||
| 686 | #. type: Plain text | ||
| 687 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:430 | ||
| 688 | #, no-wrap | ||
| 689 | msgid "" | ||
| 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" | ||
| 699 | msgstr "" | ||
| 700 | |||
| 701 | #. type: Plain text | ||
| 702 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:443 | ||
| 703 | #, no-wrap | ||
| 704 | msgid "" | ||
| 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" | ||
| 717 | msgstr "" | ||
| 718 | |||
| 719 | #. type: Plain text | ||
| 720 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:451 | ||
| 721 | #, no-wrap | ||
| 722 | msgid "" | ||
| 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" | ||
| 730 | msgstr "" | ||
| 731 | |||
| 732 | #. type: Plain text | ||
| 733 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:460 | ||
| 734 | #, no-wrap | ||
| 735 | msgid "" | ||
| 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" | ||
| 744 | msgstr "" | ||
| 745 | |||
| 746 | #. type: Plain text | ||
| 747 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:467 | ||
| 748 | #, no-wrap | ||
| 749 | msgid "" | ||
| 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" | ||
| 756 | msgstr "" | ||
| 757 | |||
| 758 | #. type: Plain text | ||
| 759 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:475 | ||
| 760 | #, no-wrap | ||
| 761 | msgid "" | ||
| 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" | ||
| 769 | msgstr "" | ||
| 770 | |||
| 771 | #. type: Plain text | ||
| 772 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:490 | ||
| 773 | #, no-wrap | ||
| 774 | msgid "" | ||
| 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" | ||
| 789 | msgstr "" | ||
| 790 | |||
| 791 | #. type: Plain text | ||
| 792 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:496 | ||
| 793 | #, no-wrap | ||
| 794 | msgid "" | ||
| 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" | ||
| 800 | msgstr "" | ||
| 801 | |||
| 802 | #. type: Plain text | ||
| 803 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:502 | ||
| 804 | #, no-wrap | ||
| 805 | msgid "" | ||
| 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" | ||
| 811 | msgstr "" | ||
| 812 | |||
| 813 | #. type: Plain text | ||
| 814 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:508 | ||
| 815 | #, no-wrap | ||
| 816 | msgid "" | ||
| 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" | ||
| 822 | msgstr "" | ||
| 823 | |||
| 824 | #. type: Plain text | ||
| 825 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:514 | ||
| 826 | #, no-wrap | ||
| 827 | msgid "" | ||
| 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" | ||
| 833 | msgstr "" | ||
| 834 | |||
| 835 | #. type: Plain text | ||
| 836 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:518 | ||
| 837 | #, no-wrap | ||
| 838 | msgid "" | ||
| 839 | "*** i3 setup\n" | ||
| 840 | "~sudo apt install xorg i3 dbus-launch maim udiskie~\n" | ||
| 841 | "Edit =~/.xinitrc=\n" | ||
| 842 | msgstr "" | ||
| 843 | |||
| 844 | #. type: Plain text | ||
| 845 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:525 | ||
| 846 | #, no-wrap | ||
| 847 | msgid "" | ||
| 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" | ||
| 854 | msgstr "" | ||
| 855 | |||
| 856 | #. type: Plain text | ||
| 857 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:531 | ||
| 858 | #, no-wrap | ||
| 859 | msgid "" | ||
| 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" | ||
| 865 | msgstr "" | ||
| 866 | |||
| 867 | #. type: Plain text | ||
| 868 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:537 | ||
| 869 | #, no-wrap | ||
| 870 | msgid "" | ||
| 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" | ||
| 876 | msgstr "" | ||
| 877 | |||
| 878 | #. type: Plain text | ||
| 879 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:539 | ||
| 880 | #, no-wrap | ||
| 881 | msgid "Edit =~/.config/i3/config=\n" | ||
| 882 | msgstr "" | ||
| 883 | |||
| 884 | #. type: Plain text | ||
| 885 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:549 | ||
| 886 | #, no-wrap | ||
| 887 | msgid "" | ||
| 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" | ||
| 897 | msgstr "" | ||
| 898 | |||
| 899 | #. type: Plain text | ||
| 900 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:562 | ||
| 901 | #, no-wrap | ||
| 902 | msgid "" | ||
| 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" | ||
| 915 | msgstr "" | ||
| 916 | |||
| 917 | #. type: Plain text | ||
| 918 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:575 | ||
| 919 | #, no-wrap | ||
| 920 | msgid "" | ||
| 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" | ||
| 933 | msgstr "" | ||
| 934 | |||
| 935 | #. type: Plain text | ||
| 936 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:578 | ||
| 937 | #, no-wrap | ||
| 938 | msgid "" | ||
| 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" | ||
| 941 | msgstr "" | ||
| 942 | |||
| 943 | #. type: Plain text | ||
| 944 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:582 | ||
| 945 | #, no-wrap | ||
| 946 | msgid "" | ||
| 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" | ||
| 950 | msgstr "" | ||
| 951 | |||
| 952 | #. type: Plain text | ||
| 953 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:587 | ||
| 954 | #, no-wrap | ||
| 955 | msgid "" | ||
| 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" | ||
| 960 | msgstr "" | ||
| 961 | |||
| 962 | #. type: Plain text | ||
| 963 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:596 | ||
| 964 | #, no-wrap | ||
| 965 | msgid "" | ||
| 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" | ||
| 974 | msgstr "" | ||
| 975 | |||
| 976 | #. type: Plain text | ||
| 977 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:602 | ||
| 978 | #, no-wrap | ||
| 979 | msgid "" | ||
| 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" | ||
| 985 | msgstr "" | ||
| 986 | |||
| 987 | #. type: Plain text | ||
| 988 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:608 | ||
| 989 | #, no-wrap | ||
| 990 | msgid "" | ||
| 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" | ||
| 996 | msgstr "" | ||
| 997 | |||
| 998 | #. type: Plain text | ||
| 999 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:622 | ||
| 1000 | #, no-wrap | ||
| 1001 | msgid "" | ||
| 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" | ||
| 1015 | msgstr "" | ||
| 1016 | |||
| 1017 | #. type: Plain text | ||
| 1018 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:628 | ||
| 1019 | #, no-wrap | ||
| 1020 | msgid "" | ||
| 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" | ||
| 1026 | msgstr "" | ||
| 1027 | |||
| 1028 | #. type: Plain text | ||
| 1029 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:643 | ||
| 1030 | #, no-wrap | ||
| 1031 | msgid "" | ||
| 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" | ||
| 1046 | msgstr "" | ||
| 1047 | |||
| 1048 | #. type: Plain text | ||
| 1049 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:655 | ||
| 1050 | #, no-wrap | ||
| 1051 | msgid "" | ||
| 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" | ||
| 1063 | msgstr "" | ||
| 1064 | |||
| 1065 | #. type: Plain text | ||
| 1066 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:666 | ||
| 1067 | #, no-wrap | ||
| 1068 | msgid "" | ||
| 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" | ||
| 1079 | msgstr "" | ||
| 1080 | |||
| 1081 | #. type: Plain text | ||
| 1082 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:680 | ||
| 1083 | #, no-wrap | ||
| 1084 | msgid "" | ||
| 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" | ||
| 1098 | msgstr "" | ||
| 1099 | |||
| 1100 | #. type: Plain text | ||
| 1101 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:686 | ||
| 1102 | #, no-wrap | ||
| 1103 | msgid "" | ||
| 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" | ||
| 1109 | msgstr "" | ||
| 1110 | |||
| 1111 | #. type: Plain text | ||
| 1112 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:689 | ||
| 1113 | #, no-wrap | ||
| 1114 | msgid "" | ||
| 1115 | "# kill focused window\n" | ||
| 1116 | "bindsym $mod+Shift+q kill\n" | ||
| 1117 | msgstr "" | ||
| 1118 | |||
| 1119 | #. type: Plain text | ||
| 1120 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:692 | ||
| 1121 | #, no-wrap | ||
| 1122 | msgid "" | ||
| 1123 | "# start dmenu (a program launcher)\n" | ||
| 1124 | "bindsym $mod+d exec --no-startup-id i3-dmenu-desktop --dmenu='dmenu -i -fn 12'\n" | ||
| 1125 | msgstr "" | ||
| 1126 | |||
| 1127 | #. type: Plain text | ||
| 1128 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:698 | ||
| 1129 | #, no-wrap | ||
| 1130 | msgid "" | ||
| 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" | ||
| 1136 | msgstr "" | ||
| 1137 | |||
| 1138 | #. type: Plain text | ||
| 1139 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:704 | ||
| 1140 | #, no-wrap | ||
| 1141 | msgid "" | ||
| 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" | ||
| 1147 | msgstr "" | ||
| 1148 | |||
| 1149 | #. type: Plain text | ||
| 1150 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:710 | ||
| 1151 | #, no-wrap | ||
| 1152 | msgid "" | ||
| 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" | ||
| 1158 | msgstr "" | ||
| 1159 | |||
| 1160 | #. type: Plain text | ||
| 1161 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:716 | ||
| 1162 | #, no-wrap | ||
| 1163 | msgid "" | ||
| 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" | ||
| 1169 | msgstr "" | ||
| 1170 | |||
| 1171 | #. type: Plain text | ||
| 1172 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:719 | ||
| 1173 | #, no-wrap | ||
| 1174 | msgid "" | ||
| 1175 | "# split in horizontal orientation\n" | ||
| 1176 | "bindsym $mod+h split h\n" | ||
| 1177 | msgstr "" | ||
| 1178 | |||
| 1179 | #. type: Plain text | ||
| 1180 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:722 | ||
| 1181 | #, no-wrap | ||
| 1182 | msgid "" | ||
| 1183 | "# split in vertical orientation\n" | ||
| 1184 | "bindsym $mod+v split v\n" | ||
| 1185 | msgstr "" | ||
| 1186 | |||
| 1187 | #. type: Plain text | ||
| 1188 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:725 | ||
| 1189 | #, no-wrap | ||
| 1190 | msgid "" | ||
| 1191 | "# enter fullscreen mode for the focused container\n" | ||
| 1192 | "bindsym $mod+f fullscreen toggle\n" | ||
| 1193 | msgstr "" | ||
| 1194 | |||
| 1195 | #. type: Plain text | ||
| 1196 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:730 | ||
| 1197 | #, no-wrap | ||
| 1198 | msgid "" | ||
| 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" | ||
| 1203 | msgstr "" | ||
| 1204 | |||
| 1205 | #. type: Plain text | ||
| 1206 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:733 | ||
| 1207 | #, no-wrap | ||
| 1208 | msgid "" | ||
| 1209 | "# toggle tiling / floating\n" | ||
| 1210 | "bindsym $mod+Shift+space floating toggle\n" | ||
| 1211 | msgstr "" | ||
| 1212 | |||
| 1213 | #. type: Plain text | ||
| 1214 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:736 | ||
| 1215 | #, no-wrap | ||
| 1216 | msgid "" | ||
| 1217 | "# change focus between tiling / floating windows\n" | ||
| 1218 | "bindsym $mod+space focus mode_toggle\n" | ||
| 1219 | msgstr "" | ||
| 1220 | |||
| 1221 | #. type: Plain text | ||
| 1222 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:739 | ||
| 1223 | #, no-wrap | ||
| 1224 | msgid "" | ||
| 1225 | "# focus the parent container\n" | ||
| 1226 | "bindsym $mod+a focus parent\n" | ||
| 1227 | msgstr "" | ||
| 1228 | |||
| 1229 | #. type: Plain text | ||
| 1230 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:742 | ||
| 1231 | #, no-wrap | ||
| 1232 | msgid "" | ||
| 1233 | "# focus the child container\n" | ||
| 1234 | "#bindsym $mod+d focus child\n" | ||
| 1235 | msgstr "" | ||
| 1236 | |||
| 1237 | #. type: Plain text | ||
| 1238 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:755 | ||
| 1239 | #, no-wrap | ||
| 1240 | msgid "" | ||
| 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" | ||
| 1253 | msgstr "" | ||
| 1254 | |||
| 1255 | #. type: Plain text | ||
| 1256 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:767 | ||
| 1257 | #, no-wrap | ||
| 1258 | msgid "" | ||
| 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" | ||
| 1270 | msgstr "" | ||
| 1271 | |||
| 1272 | #. type: Plain text | ||
| 1273 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:779 | ||
| 1274 | #, no-wrap | ||
| 1275 | msgid "" | ||
| 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" | ||
| 1287 | msgstr "" | ||
| 1288 | |||
| 1289 | #. type: Plain text | ||
| 1290 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:788 | ||
| 1291 | #, no-wrap | ||
| 1292 | msgid "" | ||
| 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" | ||
| 1301 | msgstr "" | ||
| 1302 | |||
| 1303 | #. type: Plain text | ||
| 1304 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:792 | ||
| 1305 | #, no-wrap | ||
| 1306 | msgid "" | ||
| 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" | ||
| 1310 | msgstr "" | ||
| 1311 | |||
| 1312 | #. type: Plain text | ||
| 1313 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:801 | ||
| 1314 | #, no-wrap | ||
| 1315 | msgid "" | ||
| 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" | ||
| 1324 | msgstr "" | ||
| 1325 | |||
| 1326 | #. type: Plain text | ||
| 1327 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:807 | ||
| 1328 | #, no-wrap | ||
| 1329 | msgid "" | ||
| 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" | ||
| 1335 | msgstr "" | ||
| 1336 | |||
| 1337 | #. type: Plain text | ||
| 1338 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:810 | ||
| 1339 | #, no-wrap | ||
| 1340 | msgid "" | ||
| 1341 | "bindsym $mod+r mode \"resize\"\n" | ||
| 1342 | "#+end_src\n" | ||
| 1343 | msgstr "" | ||
| 1344 | |||
| 1345 | #. type: Plain text | ||
| 1346 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:820 | ||
| 1347 | #, no-wrap | ||
| 1348 | msgid "" | ||
| 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" | ||
| 1358 | msgstr "" | ||
| 1359 | |||
| 1360 | #. type: Plain text | ||
| 1361 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:830 | ||
| 1362 | #, no-wrap | ||
| 1363 | msgid "" | ||
| 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" | ||
| 1373 | msgstr "" | ||
| 1374 | |||
| 1375 | #. type: Plain text | ||
| 1376 | #: src/en/articles/gnu+linux-and-emacs-introduction/index.org:832 | ||
| 1377 | #, no-wrap | ||
| 1378 | msgid "" | ||
| 1379 | "- ~startx~\n" | ||
| 1380 | "- =s-RET=\n" | ||
| 1381 | msgstr "" | ||
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 | # | ||
| 6 | msgid "" | ||
| 7 | msgstr "" | ||
| 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 | ||
| 23 | msgid "#+title: Articles\n" | ||
| 24 | msgstr "" | ||
| 25 | |||
| 26 | #. type: Plain text | ||
| 27 | #: src/en/articles/index.org:3 | ||
| 28 | #, no-wrap | ||
| 29 | msgid "#+include: \"sitemap.org\" :lines \"4-\"\n" | ||
| 30 | msgstr "" | ||
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 | |||
| 12 | Kontakty: | ||
| 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 | |||
| 19 | Copyright © 2024 Martin Michalec | ||
| 20 | |||
| 21 | Doslovné kopírovanie a redistribúcia celej tejto stránky je povolená | ||
| 22 | za 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 | # | ||
| 6 | msgid "" | ||
| 7 | msgstr "" | ||
| 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 | ||
| 23 | msgid "#+title: Martin Michalec\n" | ||
| 24 | msgstr "" | ||
| 25 | |||
| 26 | #. type: Plain text | ||
| 27 | #: src/en/index.org:9 | ||
| 28 | #, no-wrap | ||
| 29 | msgid "" | ||
| 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" | ||
| 36 | msgstr "" | ||
| 37 | |||
| 38 | #. type: Plain text | ||
| 39 | #: src/en/index.org:14 | ||
| 40 | #, no-wrap | ||
| 41 | msgid "" | ||
| 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" | ||
| 46 | msgstr "" | ||
| 47 | |||
| 48 | #. type: Plain text | ||
| 49 | #: src/en/index.org:16 | ||
| 50 | #, no-wrap | ||
| 51 | msgid "#+html: <hr/>\n" | ||
| 52 | msgstr "" | ||
| 53 | |||
| 54 | #. type: Plain text | ||
| 55 | #: src/en/index.org:18 | ||
| 56 | #, no-wrap | ||
| 57 | msgid "Copyright © 2024 Martin Michalec\n" | ||
| 58 | msgstr "" | ||
| 59 | |||
| 60 | #. type: Plain text | ||
| 61 | #: src/en/index.org:20 | ||
| 62 | #, no-wrap | ||
| 63 | msgid "" | ||
| 64 | "Verbatim copying and redistribution of this entire page are permitted\n" | ||
| 65 | "provided this notice is preserved.\n" | ||
| 66 | msgstr "" | ||
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 | # | ||
| 6 | msgid "" | ||
| 7 | msgstr "" | ||
| 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 | ||
| 23 | msgid "* TODO add texts...\n" | ||
| 24 | msgstr "" | ||
| 25 | |||
| 26 | #. type: Plain text | ||
| 27 | #: src/en/mailing-list/index.org:2 | ||
| 28 | #, no-wrap | ||
| 29 | msgid "#+title: Mailing List\n" | ||
| 30 | msgstr "" | ||
| 31 | |||
| 32 | #. type: Plain text | ||
| 33 | #: src/en/mailing-list/index.org:4 | ||
| 34 | #, no-wrap | ||
| 35 | msgid "[[[https://lists.michalec.dev][www]]] | [[[http://lists.ygg.michalec.dev][ygg]]] | [[[http://lists.michalec.i2p][i2p]]] | [[[http://some.onion][tor]]]\n" | ||
| 36 | msgstr "" | ||
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 | # | ||
| 6 | msgid "" | ||
| 7 | msgstr "" | ||
| 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 | ||
| 23 | msgid "#+title: Projects\n" | ||
| 24 | msgstr "" | ||
| 25 | |||
| 26 | #. type: Plain text | ||
| 27 | #: src/en/projects/index.org:4 | ||
| 28 | #, no-wrap | ||
| 29 | msgid "[[[https://git.michalec.dev][www]]] | [[[http://git.ygg.michalec.dev][ygg]]] | [[[http://git.michalec.i2p][i2p]]] | [[[http://some.onion][tor]]]\n" | ||
| 30 | msgstr "" | ||
| 31 | |||
| 32 | #. type: Plain text | ||
| 33 | #: src/en/projects/index.org:5 src/en/mailing-list/index.org:5 | ||
| 34 | #, no-wrap | ||
| 35 | msgid "* TODO add texts...\n" | ||
| 36 | msgstr "" | ||
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 | # | ||
| 6 | msgid "" | ||
| 7 | msgstr "" | ||
| 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 | ||
| 23 | msgid "" | ||
| 24 | "#+title: test\n" | ||
| 25 | "#+date: <2024-08-31>\n" | ||
| 26 | msgstr "" | ||
| 27 | |||
| 28 | #. type: Plain text | ||
| 29 | #: src/en/web-log/2024-08-31-test/index.org:16 | ||
| 30 | #, no-wrap | ||
| 31 | msgid "" | ||
| 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" | ||
| 45 | msgstr "" | ||
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 | # | ||
| 6 | msgid "" | ||
| 7 | msgstr "" | ||
| 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 | ||
| 23 | msgid "#+include: \"sitemap.org\" :lines \"4-\"\n" | ||
| 24 | msgstr "" | ||
| 25 | |||
| 26 | #. type: Plain text | ||
| 27 | #: src/en/web-log/index.org:2 | ||
| 28 | #, no-wrap | ||
| 29 | msgid "#+TITLE: Web Log\n" | ||
| 30 | msgstr "" | ||
