<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>navody – Arch Linux CZ</title>
    <link>https://arch-linux.cz/tag/navody/</link>
    <atom:link href="https://arch-linux.cz/tag/navody/rss.xml" rel="self" type="application/rss+xml" />
    <description>Příspěvky se štítkem navody na osobním webu Arch Linux CZ.</description>
    <language>cs</language>
    <lastBuildDate>Sat, 22 Aug 2026 13:38:05 +0200</lastBuildDate>
    <item>
  <title>&quot;Moderní CLI nástroje: úvod do nové generace utilit&quot;</title>
  <link>https://arch-linux.cz/posts/2026/moderni-cli-uvod/</link>
  <guid isPermaLink="true">https://arch-linux.cz/posts/2026/moderni-cli-uvod/</guid>
  <pubDate>Sat, 22 Aug 2026 13:38:05 +0200</pubDate>
  <description><![CDATA[<figure><img src="https://arch-linux.cz/posts/2026/moderni-cli-uvod/01.png" width="1074" height="634" alt="Moderní CLI nástroje" loading="lazy" decoding="async"></figure>
<p>Klasické Unix nástroje jako <code>ls</code>, <code>cat</code>, <code>find</code> a <code>grep</code> slouží desítky let. Jsou spolehlivé, jsou všude a v systému bez nich nešlápneš. Za tu dobu ale svět kolem nich pokročil – gitové repozitáře, <code>.gitignore</code>, obří monorepa, terminály s emoji a Nerd Fonts. Původní utility na tohle prostředí nebyly stavěné.</p>
<p>Poslední roky se objevila celá vlna nástrojů, které řeší stejný úkol, ale moderně: rychleji, hezčí výstup, chytré defaulty, integrace s gitem. Většina je napsaná v Rustu, takže jsou i bezpečnější a paralelní out-of-the-box.</p>
<p>Tahle série ti představí sadu, kterou používám denně a bez které si už terminál nedokážu představit.</p>
<h2 id="co-budeme-probirat">Co budeme probírat</h2>
<p>Sérii jsem rozdělil na pět praktických dílů plus bonus:</p>
<ol><li><b>Úvod</b> – tenhle článek, kontext a filozofie</li><li><b>eza</b> – náhrada <code>ls</code> s ikonami a git statusem</li><li><b>bat</b> – náhrada <code>cat</code> se zvýrazněním syntaxe</li><li><b>fd</b> – rychlejší a přátelštější <code>find</code></li><li><b>ripgrep</b> – bleskové hledání v souborech</li><li><b>Bonus</b> – kompletní setup, aliasy a integrace s fzf</li></ol>
<p>Každý díl obsahuje instalaci na Archu, praktické příklady, srovnání s klasickou variantou a pár triků z praxe.</p>
<h2 id="proc-zrovna-rust">Proč zrovna Rust?</h2>
<p>Většina těch nástrojů je psaná v Rustu a není to náhoda:</p>
<ul><li><b>Rychlost</b> – kompiluje se do nativního kódu, žádný interpret ani JIT</li><li><b>Paralelismus</b> – Rust má silné garance okolo threadů, takže autoři nemají problém pouštět práci na víc jádrech</li><li><b>Bezpečná paměť</b> – žádné segfaulty a buffer overflows jako v C</li><li><b>Ekosystém</b> – <code>cargo</code> a crates.io udělaly z distribuce knihoven příjemnou zkušenost</li></ul>
<p>Když vidíš, že <code>ripgrep</code> je 10× rychlejší než <code>grep</code>, není to marketing – je to tím, jak je napsaný.</p>
<h2 id="prerusuju-puvodni-nastroje">Přerušuju původní nástroje?</h2>
<p>Ne. Klasické <code>ls</code>, <code>cat</code>, <code>find</code> a <code>grep</code> zůstávají v systému (jsou součást balíčků <code>coreutils</code>, <code>findutils</code>, <code>grep</code>). Aliasy je jen překryjí, když je zavoláš interaktivně.</p>
<p>Ve skriptech se pořád vyplatí sáhnout po originálech – jsou všude, chovají se předvídatelně a nemají volitelné závislosti. Když v aliasu máš <code>alias grep=&#39;rg&#39;</code>, uvnitř skriptu použij <code>command grep</code> nebo <code>\grep</code> – tím obejdeš alias.</p>
<h2 id="nainstalujme-vsechno-najednou">Nainstalujme všechno najednou</h2>
<p>Ať máš základ pro celou sérii, můžeš to udělat jedním příkazem:</p>
<pre><code class="language-bash">sudo pacman -S eza bat fd ripgrep</code></pre>
<p>Všechny nástroje jsou v oficiálním Arch repozitáři, žádný AUR není potřeba. Pár set kilobajtů, žádné komplikace.</p>
<p>V dalších dílech se na každý nástroj podíváme detailně. Začneme příště s <code>eza</code> – náhradou za <code>ls</code>, která ti ukáže git status u každého souboru přímo ve výpisu.</p>]]></description>
  <category>cli</category><category>rust</category><category>tipy</category><category>arch</category><category>terminal</category><category>navody</category>
</item>
<item>
  <title>Hugo na OSCloud: Statický web bez kompromisů</title>
  <link>https://arch-linux.cz/posts/2026/hugo-na-oscloud/</link>
  <guid isPermaLink="true">https://arch-linux.cz/posts/2026/hugo-na-oscloud/</guid>
  <pubDate>Sat, 04 Jul 2026 00:00:00 +0200</pubDate>
  <description><![CDATA[<figure><img src="https://arch-linux.cz/posts/2026/hugo-na-oscloud/featured.png" width="865" height="329" alt="Hugo na OSCloud" loading="lazy" decoding="async"></figure>
<p>WordPress nám sloužil roky a pro spoustu projektů je skvělá volba. Pro náš technický blog o Arch Linuxu jsme ale hledali něco bližšího naší filozofii — psát články v Markdownu, verzovat v Gitu a mít web pod plnou kontrolou bez zbytečné komplexity.</p>
<p>Přešli jsme na <a href="https://gohugo.io/">Hugo</a> — statický generátor napsaný v Go, který z Markdownu vytvoří kompletní web za zlomek sekundy. Žádné PHP, žádná databáze, žádné bezpečnostní díry. A celé to běží na <a href="https://oscloud.cz">OSCloud</a>.</p>
<h2 id="co-je-hugo">Co je Hugo?</h2>
<p>Hugo je open-source generátor statických webů. Místo toho, aby server při každém požadavku tahal data z databáze a skládal stránku za běhu (jako WordPress), Hugo vygeneruje všechny HTML soubory předem. Výsledek je jednoduchá složka souborů, kterou hodíte na jakýkoliv webserver.</p>
<p>Co to znamená v praxi:</p>
<ul><li><b>Rychlost</b> — stránky se načítají okamžitě, protože server jen servíruje hotové soubory</li><li><b>Bezpečnost</b> — žádný PHP interpret, žádná databáze = žádný útočný vektor</li><li><b>Jednoduchost</b> — články píšete v Markdownu, verzujete v Gitu</li><li><b>Nulová údržba</b> — žádné aktualizace pluginů, žádné padající databáze</li></ul>
<p>Hugo má přes 88 000 hvězd na GitHubu a aktivní komunitu. Podporuje témata, vícejazyčnost, taxonomie, RSS, vyhledávání a spoustu dalšího.</p>
<h2 id="co-je-oscloud">Co je OSCloud?</h2>
<p><a href="https://oscloud.cz">OSCloud</a> je česká cloudová platforma zaměřená na soukromí a open source. OSCloud nabízí hosting open-source aplikací jako alternativu ke komerčním cloudům. Najdete tu Nextcloud, Matrix, PeerTube, Gitea, GoToSocial,Mastodon, Pixelfed, VHSky a desítky dalších služeb. A taky hosting webů — WordPress, LAMP, Grav nebo <b>Surfer</b> pro statické weby.</p>
<p>Pro hosting Hugo webu máte na OSCloud dvě varianty: <b>Surfer</b> a <b>LAMP</b>. Každá se hodí na něco jiného.</p>
<h2 id="varianta-1-surfer-jednoduchy-staticky-hosting">Varianta 1: Surfer — jednoduchý statický hosting</h2>
<p>Surfer je minimalistická Cloudron aplikace pro servírování statických souborů. Nic víc, nic míň. Nahrajete soubory a web běží — žádný Apache, žádný nginx config.</p>
<p>Surfer nabízí:</p>
<ul><li><b>Webové rozhraní</b> pro správu souborů na <code><a href="https://vasedomena.cz/_admin/">https://vasedomena.cz/_admin/</a></code></li><li><b>CLI nástroj</b> pro nahrávání z terminálu</li><li><b>SFTP přístup</b> pro nahrávání přes FileZilla nebo příkazovou řádku</li><li><b>WebDAV</b> endpoint</li><li><b>Vlastní 404 stránka</b> — stačí nahrát <code>404.html</code> do kořene</li><li><b>Řízení přístupu</b> — veřejný, heslem chráněný, nebo jen pro přihlášené uživatele</li></ul>
<p><b>Surfer je ideální když:</b> chcete prostě hodit Hugo web na server a nic víc neřešit.</p>
<p><b>Surfer nestačí když:</b> potřebujete server-side redirecty (<code>.htaccess</code>), servírovat soubory z tečkových složek (<code>.well-known</code>) nebo třeba Fediverse webfinger identitu.</p>
<h2 id="varianta-2-lamp-kdyz-potrebujete-vic">Varianta 2: LAMP — když potřebujete víc</h2>
<p>LAMP aplikace na Cloudronu dává plný Apache s podporou <code>.htaccess</code>. Hugo web na něm běží úplně stejně — Apache servíruje statické soubory bez problémů — ale navíc můžete:</p>
<ul><li>Nastavit <b>redirecty a rewrite pravidla</b> přes <code>.htaccess</code></li><li>Servírovat obsah z <code><b>.well-known</b></code> složky (webfinger, Let&#39;s Encrypt verifikace)</li><li>Propojit web s <b>Fediverse</b> — například redirect <code>@arch@arch-linux.cz</code> na GoToSocial instanci</li></ul>
<p>Právě proto tento web (arch-linux.cz) běží na LAMP — potřebujeme webfinger redirect pro naši Fediverse identitu <code>@arch@arch-linux.cz</code>.</p>
<p><b>LAMP zvolte když:</b> potřebujete cokoliv nad rámec prostého servírování souborů.</p>
<h2 id="krok-za-krokem-hugo-web-na-oscloud">Krok za krokem: Hugo web na OSCloud</h2>
<h3 id="1-instalace-hugo">1. Instalace Hugo</h3>
<p>Na Arch Linuxu:</p>
<pre><code class="language-bash">sudo pacman -S hugo
hugo version</code></pre>
<p>Na Ubuntu/Debianu:</p>
<pre><code class="language-bash">sudo apt install hugo</code></pre>
<p>Nebo stáhněte nejnovější verzi z <a href="https://github.com/gohugoio/hugo/releases">GitHubu</a>.</p>
<h3 id="2-vytvoreni-projektu">2. Vytvoření projektu</h3>
<pre><code class="language-bash">hugo new site muj-web
cd muj-web
git init</code></pre>
<h3 id="3-pridani-tematu">3. Přidání tématu</h3>
<p>Můžete použít libovolné téma z <a href="https://themes.gohugo.io/">themes.gohugo.io</a>. My používáme <a href="https://blowfish.page/">Blowfish</a>, ale pro začátek je dobré třeba Ananke:</p>
<pre><code class="language-bash">git submodule add https://github.com/gohugo-ananke/ananke themes/ananke
echo &#39;theme = &quot;ananke&quot;&#39; &gt;&gt; hugo.toml</code></pre>
<h3 id="4-zakladni-konfigurace">4. Základní konfigurace</h3>
<p>Upravte <code>hugo.toml</code>:</p>
<pre><code class="language-toml">baseURL = &quot;https://vasedomena.cz/&quot;
languageCode = &quot;cs&quot;
title = &quot;Můj web&quot;
theme = &quot;ananke&quot;</code></pre>
<h3 id="5-prvni-clanek">5. První článek</h3>
<pre><code class="language-bash">hugo new posts/prvni-clanek/index.md</code></pre>
<p>Otevřete <code>content/posts/prvni-clanek/index.md</code> a napište obsah v Markdownu:</p>
<pre><code class="language-markdown">---
title: &quot;Můj první článek&quot;
date: 2026-07-04
draft: false
description: &quot;Zkušební článek na Hugo webu&quot;
tags: [&quot;hugo&quot;, &quot;test&quot;]
---

Tady je obsah článku v **Markdownu**.

## Podnadpis

- položka jedna
- položka dvě</code></pre>
<p>Obrázky k článku umístěte do stejné složky (<code>content/posts/prvni-clanek/</code>) a v textu je vložte:</p>
<pre><code class="language-markdown">![Popis obrázku](obrazek.jpg)</code></pre>
<h3 id="6-lokalni-nahled">6. Lokální náhled</h3>
<pre><code class="language-bash">hugo server -D</code></pre>
<p>Otevřete <code><a href="http://localhost:1313">http://localhost:1313</a></code> v prohlížeči. Hugo sleduje změny a automaticky stránku obnovuje.</p>
<h3 id="7-build">7. Build</h3>
<pre><code class="language-bash">hugo --minify</code></pre>
<p>Výsledné soubory najdete ve složce <code>public/</code>. To je váš kompletní web — čisté HTML, CSS a JavaScript.</p>
<h3 id="8-nasazeni-na-oscloud">8. Nasazení na OSCloud</h3>
<p>Deploy záleží na tom, kterou aplikaci jste si zvolili.</p>
<p><b>Pro Surfer — CLI:</b></p>
<pre><code class="language-bash"># instalace CLI
npm -g install cloudron-surfer

# konfigurace
surfer config --server https://vasedomena.cz --token VAS_API_TOKEN

# nahrání souborů
surfer put public/* /</code></pre>
<p>API token vytvoříte v Surfer admin rozhraní (<code><a href="https://vasedomena.cz/_admin/">https://vasedomena.cz/_admin/</a></code>) v sekci Settings.</p>
<p><b>Pro Surfer — SFTP:</b></p>
<pre><code class="language-bash">lftp -p 222 -u &quot;vas_uzivatel&quot; sftp://vas-server.oscloud.cz
&gt; mirror -R public/ /
&gt; quit</code></pre>
<p><b>Pro Surfer — webové rozhraní:</b></p>
<p>Přetáhněte soubory do správce na <code><a href="https://vasedomena.cz/_admin/">https://vasedomena.cz/_admin/</a></code>.</p>
<p><b>Pro LAMP — SFTP:</b></p>
<pre><code class="language-bash">lftp -p 222 -u &quot;vas_uzivatel&quot; sftp://vas-server.oscloud.cz
&gt; mirror -R public/ /public/
&gt; quit</code></pre>
<p>U LAMP aplikace je SFTP root <code>/app/data/</code>, takže cílová složka je <code>/public/</code>.</p>
<p>Pokud potřebujete <code>.htaccess</code>, nahrajte ho do složky <code>static/</code> v Hugo projektu — Hugo ho zkopíruje do <code>public/</code> při buildu a SFTP ho nahraje na server.</p>
<h3 id="9-automatizace-volitelne">9. Automatizace (volitelné)</h3>
<p>Celý deploy se dá zabalit do jednoho skriptu:</p>
<pre><code class="language-bash">#!/bin/bash
# deploy.sh
hugo --minify
surfer put public/* /
echo &quot;Nasazeno!&quot;</code></pre>
<pre><code class="language-bash">sudo bash ./deploy.sh</code></pre>
<p>Pro LAMP variantu nahraďte <code>surfer put</code> za odpovídající <code>lftp</code> příkaz.</p>
<h2 id="wordpress-vs-hugo">WordPress vs Hugo</h2>
<p>WordPress i Hugo mají své místo. Tady je srovnání, proč jsme se pro náš konkrétní případ rozhodli jinak:</p>
<div class="table-wrap"><table><thead><tr><th></th><th>WordPress</th><th>Hugo</th></tr></thead><tbody><tr><td>Načítání</td><td>závisí na cachingu</td><td>okamžité</td></tr><tr><td>Bezpečnost</td><td>pravidelné záplaty</td><td>žádný vektor</td></tr><tr><td>Údržba</td><td>pluginy, jádro</td><td>žádná</td></tr><tr><td>Zálohy</td><td>DB + soubory</td><td>Git repo</td></tr><tr><td>Obsah</td><td>WYSIWYG editor</td><td>Markdown</td></tr><tr><td>Verzování</td><td>nepraktické</td><td>Git nativně</td></tr><tr><td>Server</td><td>PHP + MySQL</td><td>statický</td></tr></tbody></table></div>
<p>WordPress je výborný pro weby s e-shopem, členskou sekcí nebo tam, kde obsah spravují netechničtí uživatelé přes přehledné admin rozhraní. Pro blog, kde články píšeme v terminálu a verzujeme v Gitu, nám Hugo prostě sedl líp.</p>
<h2 id="zaver">Závěr</h2>
<p>Hugo na OSCloud je kombinace, která dává smysl. Rychlý, bezpečný a jednoduchý web bez zbytečné komplexity. Články píšete v Markdownu, verzujete v Gitu a nasadíte jedním příkazem.</p>
<p>Pro jednoduchý statický web sáhněte po <b>Surferu</b>. Pokud potřebujete redirecty, <code>.well-known</code> nebo Fediverse integraci, zvolte <b>LAMP</b> — obojí na OSCloud funguje skvěle.</p>
<p>Pokud vás zajímá self-hosting a chcete mít svá data pod kontrolou, mrkněte na <a href="https://oscloud.cz">OSCloud</a> — českou platformu postavenou na open-source technologiích. Kromě hostingu webů nabízí Nextcloud, Matrix chat, PeerTube, Gitea a další služby.</p>
<p>Zdrojový kód tohoto webu je veřejně dostupný na naší <a href="https://git.arch-linux.cz/ArchlinuxCz/web-archlinux_cz">Gitea</a> — pull requesty vítány.</p>
<hr>
<p><i>Máte otázky? Napište nám na </i><i><a href="https://gts.arch-linux.cz/@arch">Fediverse</a></i><i>, </i><i><a href="https://matrix.to/#/#archlinuxcz:matrix.org">Matrix</a></i><i> nebo na </i><i><a href="https://forum.arch-linux.cz/">fórum</a></i><i>.</i></p>]]></description>
  <category>Hugo</category><category>OSCloud</category><category>Cloudron</category><category>Surfer</category><category>LAMP</category><category>statický web</category><category>self-hosting</category><category>Návody</category><category>jekyll</category>
</item>
<item>
  <title>Shelly-ALPM – Moderní správce balíčků pro Arch Linux</title>
  <link>https://arch-linux.cz/posts/2026/shelly-alpm-moderni-spravce-balicku/</link>
  <guid isPermaLink="true">https://arch-linux.cz/posts/2026/shelly-alpm-moderni-spravce-balicku/</guid>
  <pubDate>Fri, 26 Jun 2026 00:00:00 +0200</pubDate>
  <description><![CDATA[<h2 id="1-co-je-shelly">1. Co je Shelly?</h2>
<figure><img src="https://arch-linux.cz/posts/2026/shelly-alpm-moderni-spravce-balicku/01.png" width="1280" height="640" alt="Shelly-ALPM" loading="lazy" decoding="async"></figure>
<p>Shelly je grafický i příkazový správce balíčků pro Arch Linux. Na rozdíl od většiny alternativ (octopi, pamac) <b>není wrapper nad pacmanem</b> – komunikuje přímo s knihovnou <code>libalpm</code>, tedy se stejným jádrem, které používá samotný pacman.</p>
<p>Projekt vyvíjí Zoey Bauer pod hlavičkou Seafoam Labs. Je psaný v C# (.NET 10), GUI běží na GTK 4 s nativní podporou Waylandu. Licence je GPL-3.0.</p>
<hr>
<h2 id="2-proc-by-te-to-melo-zajimat">2. Proč by tě to mělo zajímat?</h2>
<p>Pacman je skvělý nástroj, ale jeho syntaxe není zrovna intuitivní. Porovnej:</p>
<pre><code class="language-bash"># pacman
sudo pacman -Syu firefox
sudo pacman -Rns firefox
pacman -Ss firefox

# shelly
shelly install firefox
shelly remove firefox
shelly search firefox</code></pre>
<p>Shelly nabízí jednotnou, čitelnou syntaxi a k tomu moderní GUI, kde na jednom místě zvládneš oficiální repozitáře, AUR i Flatpak.</p>
<hr>
<h2 id="3-hlavni-vlastnosti">3. Hlavní vlastnosti</h2>
<ul><li><b>CLI + GUI</b> – <code>shelly</code> pro terminál, <code>shelly-ui</code> pro grafické rozhraní</li><li><b>Přímá integrace s libalpm</b> – žádný wrapper, žádná mezivrstva</li><li><b>AUR podpora</b> – vyhledávání, instalace i aktualizace AUR balíčků</li><li><b>Flatpak podpora</b> – správa Flatpak aplikací včetně instalace z FlatpakRef souborů</li><li><b>Notifikace</b> – <code>shelly-notifications</code> běží v tray a upozorní na dostupné aktualizace</li><li><b>Nativní Wayland</b> – GUI postavené na GTK 4</li><li><b>Themování</b> – Shelly používá čisté GTK bez libadwaita, takže respektuje tvoje systémové téma</li></ul>
<hr>
<h2 id="4-instalace">4. Instalace</h2>
<h3 id="cachyos-v-oficialnich-repozitarich">CachyOS (v oficiálních repozitářích)</h3>
<pre><code class="language-bash">sudo pacman -Syu shelly</code></pre>
<h3 id="aur-pro-cisty-arch-a-dalsi-derivaty">AUR (pro čistý Arch a další deriváty)</h3>
<pre><code class="language-bash">yay -S shelly</code></pre>
<p>nebo</p>
<pre><code class="language-bash">paru -S shelly</code></pre>
<h3 id="rucni-build-z-githubu">Ruční build z GitHubu</h3>
<pre><code class="language-bash">git clone https://github.com/Seafoam-Labs/Shelly-ALPM.git
cd Shelly-ALPM
makepkg -si</code></pre>
<p>Po instalaci máš k dispozici tři binárky:</p>
<pre><code class="language-bash">shelly          # CLI
shelly-ui       # GUI
shelly-notifications  # tray notifikace</code></pre>
<hr>
<h2 id="5-zakladni-pouziti-cli">5. Základní použití – CLI</h2>
<h3 id="synchronizace-databaze">Synchronizace databáze</h3>
<pre><code class="language-bash">shelly sync
shelly sync --force    # vynutí refresh i když je DB aktuální</code></pre>
<h3 id="aktualizace-systemu">Aktualizace systému</h3>
<pre><code class="language-bash">shelly upgrade
shelly upgrade --no-confirm   # bez potvrzení</code></pre>
<h3 id="instalace-a-odebirani-balicku">Instalace a odebírání balíčků</h3>
<pre><code class="language-bash">shelly install firefox vim
shelly remove firefox</code></pre>
<h3 id="hledani-balicku">Hledání balíčků</h3>
<pre><code class="language-bash">shelly list-installed     # nainstalované balíčky
shelly list-available     # dostupné balíčky
shelly list-updates       # balíčky s dostupnou aktualizací</code></pre>
<h3 id="instalace-lokalniho-balicku">Instalace lokálního balíčku</h3>
<pre><code class="language-bash">shelly install-local /cesta/k/balicku.pkg.tar.zst</code></pre>
<hr>
<h2 id="6-aur-prikazy">6. AUR příkazy</h2>
<pre><code class="language-bash">shelly aur search neovim       # hledání v AUR
shelly aur install neovim-git  # instalace z AUR
shelly aur list                # nainstalované AUR balíčky
shelly aur list-updates        # AUR balíčky s aktualizací
shelly aur upgrade             # aktualizace všech AUR balíčků
shelly aur remove neovim-git   # odebrání AUR balíčku</code></pre>
<hr>
<h2 id="7-flatpak-prikazy">7. Flatpak příkazy</h2>
<pre><code class="language-bash">shelly flatpak search signal         # hledání na Flathubu
shelly flatpak install org.signal.Signal  # instalace
shelly flatpak list                   # nainstalované Flatpak aplikace
shelly flatpak upgrade               # aktualizace všech
shelly flatpak uninstall org.signal.Signal  # odebrání
shelly flatpak run org.signal.Signal  # spuštění</code></pre>
<hr>
<h2 id="8-konfigurace">8. Konfigurace</h2>
<p>Při prvním spuštění se vytvoří konfigurační soubor:</p>
<pre><code>~/.config/shelly/config.json</code></pre>
<p>Příklad obsahu:</p>
<pre><code class="language-json">{
  &quot;FileSizeDisplay&quot;: &quot;Megabytes&quot;,
  &quot;DefaultExecution&quot;: &quot;UpgradeAll&quot;
}</code></pre>
<ul><li><b>FileSizeDisplay</b> – formát velikosti souborů: <code>Bytes</code>, <code>Megabytes</code>, <code>Gigabytes</code></li><li><b>DefaultExecution</b> – co se stane při spuštění <code>shelly</code> bez parametrů: <code>UpgradeAll</code>, <code>UpgradeStandard</code>, <code>UpgradeFlatpak</code>, <code>UpgradeAur</code>, <code>Sync</code>, <code>SyncForce</code>, <code>ListInstalled</code></li></ul>
<hr>
<h2 id="9-srovnani-s-pacmanem">9. Srovnání s pacmanem</h2>
<div class="table-wrap"><table><thead><tr><th>Akce</th><th>pacman</th><th>shelly</th></tr></thead><tbody><tr><td>Aktualizace systému</td><td><code>sudo pacman -Syu</code></td><td><code>shelly upgrade</code></td></tr><tr><td>Instalace balíčku</td><td><code>sudo pacman -Syu balíček</code></td><td><code>shelly install balíček</code></td></tr><tr><td>Odebrání balíčku</td><td><code>sudo pacman -Rns balíček</code></td><td><code>shelly remove balíček</code></td></tr><tr><td>Hledání balíčku</td><td><code>pacman -Ss balíček</code></td><td><code>shelly list-available</code></td></tr><tr><td>Nainstalované balíčky</td><td><code>pacman -Q</code></td><td><code>shelly list-installed</code></td></tr><tr><td>Dostupné aktualizace</td><td><code>checkupdates</code></td><td><code>shelly list-updates</code></td></tr><tr><td>Synchronizace DB</td><td><code>sudo pacman -Sy</code></td><td><code>shelly sync</code></td></tr><tr><td>AUR instalace</td><td><code>yay -S balíček</code></td><td><code>shelly aur install balíček</code></td></tr></tbody></table></div>
<hr>
<h2 id="10-co-je-v-planu">10. Co je v plánu?</h2>
<p>Podle roadmapy projektu se chystá:</p>
<ul><li>Správa repozitářů přímo z GUI</li><li>Podpora AppImage (ve stylu GearLever)</li><li>Vylepšená Flatpak integrace</li><li>Import seznamu balíčků – obnovení systému do uloženého stavu</li><li>Ikony pro standardní balíčky při vyhledávání</li><li>Spouštění aktualizací přímo z notifikací</li></ul>
<hr>
<h2 id="11-pro-koho-je-shelly">11. Pro koho je Shelly?</h2>
<p>Shelly se hodí hlavně pro:</p>
<ul><li><b>Začátečníky na Archu</b> – GUI + čitelné příkazy snižují bariéru vstupu</li><li><b>Uživatele CachyOS</b> – Shelly je součástí oficiálních repozitářů</li><li><b>Kohokoliv, kdo chce AUR + Flatpak + pacman na jednom místě</b></li></ul>
<p>Pro zkušené uživatele, kteří mají pacman v krvi a nepotřebují GUI, je Shelly spíš doplněk než náhrada. Ale ta CLI syntaxe je fakt příjemnější.</p>
<hr>
<h2 id="cheat-sheet">Cheat sheet</h2>
<pre><code>╔══════════════════╦════════════════════════════════════════════════╗
║ KATEGORIE        ║ PŘÍKAZ                                        ║
╠══════════════════╬════════════════════════════════════════════════╣
║ SYSTÉM           ║                                                ║
║                  ║ shelly sync           → synchronizace DB       ║
║                  ║ shelly upgrade        → aktualizace systému    ║
║                  ║ shelly list-updates   → dostupné aktualizace   ║
╠══════════════════╬════════════════════════════════════════════════╣
║ BALÍČKY          ║                                                ║
║                  ║ shelly install pkg    → instalace              ║
║                  ║ shelly remove pkg     → odebrání               ║
║                  ║ shelly list-installed → nainstalované           ║
║                  ║ shelly install-local  → lokální balíček        ║
╠══════════════════╬════════════════════════════════════════════════╣
║ AUR              ║                                                ║
║                  ║ shelly aur search     → hledání v AUR          ║
║                  ║ shelly aur install    → instalace z AUR        ║
║                  ║ shelly aur upgrade    → aktualizace AUR        ║
║                  ║ shelly aur list       → nainstalované AUR      ║
╠══════════════════╬════════════════════════════════════════════════╣
║ FLATPAK          ║                                                ║
║                  ║ shelly flatpak search → hledání na Flathubu    ║
║                  ║ shelly flatpak install→ instalace              ║
║                  ║ shelly flatpak upgrade→ aktualizace všech      ║
║                  ║ shelly flatpak list   → nainstalované          ║
╠══════════════════╬════════════════════════════════════════════════╣
║ GUI              ║                                                ║
║                  ║ shelly-ui             → grafické rozhraní      ║
║                  ║ shelly-notifications  → tray notifikace        ║
╚══════════════════╩════════════════════════════════════════════════╝</code></pre>
<hr>
<p><b>Odkazy:</b></p>
<ul><li>GitHub: <a href="https://github.com/Seafoam-Labs/Shelly-ALPM">github.com/Seafoam-Labs/Shelly-ALPM</a></li><li>Web: <a href="https://shellyalpm.com">shellyalpm.com</a></li><li>Licence: GPL-3.0</li><li>Aktuální verze: v2.0.5</li></ul>]]></description>
  <category>Arch Linux</category><category>pacman</category><category>Shelly</category><category>Návody</category><category>jekyll</category>
</item>
<item>
  <title>Arch Linux – Základní příkazy</title>
  <link>https://arch-linux.cz/posts/2026/arch-linux-zakladni-prikazy/</link>
  <guid isPermaLink="true">https://arch-linux.cz/posts/2026/arch-linux-zakladni-prikazy/</guid>
  <pubDate>Thu, 26 Mar 2026 00:00:00 +0100</pubDate>
  <description><![CDATA[<h1 id="arch-linux-zakladni-prikazy">Arch Linux – Základní příkazy</h1>
<p><i>Praktický průvodce pro začátečníky a mírně pokročilé uživatele</i></p>
<h2 id="1-uvod">1. Úvod</h2>
<p>Arch Linux je minimalistická rolling-release distribuce – dostaneš čistý systém bez zbytečností a sám si ho postavíš podle sebe. Žádný GUI instalátor, žádné předinstalované haraburdí.</p>
<p>Proč znát příkazy? Protože na Archu neexistuje klikací záchranný kruh. Když se něco rozbije (a rozbije), terminal je jediná cesta ven. A taky je to prostě rychlejší než jakékoliv GUI.</p>
<h2 id="2-prace-se-systemem">2. Práce se systémem</h2>
<h3 id="uname-a-informace-o-jadre"><code>uname -a</code> — informace o jádře</h3>
<pre><code class="language-bash">uname -a
# Linux mujpc 6.8.1-arch1-1 #1 SMP PREEMPT_DYNAMIC ...</code></pre>
<p>Zobrazí jméno počítače, verzi kernelu a architekturu. Hodí se při hlášení bugů nebo kontrole kernelu po aktualizaci.</p>
<h3 id="uptime-jak-dlouho-bezi-system"><code>uptime</code> — jak dlouho běží systém</h3>
<pre><code class="language-bash">uptime
# 14:32:01 up 3 days, 2:14, 2 users, load average: 0.45, 0.60, 0.55</code></pre>
<p>Ukazuje dobu běhu + průměrnou zátěž za 1, 5 a 15 minut.</p>
<h3 id="htop-top-sledovani-procesu"><code>htop</code> / <code>top</code> — sledování procesů</h3>
<pre><code class="language-bash">htop        # přehledná TUI verze (doporučeno)
top         # základní, vždy dostupný</code></pre>
<p><code>htop</code> umí kill procesu přímo z rozhraní – stiskni <code>F9</code>. Nainstaluj přes <code>sudo pacman -Syu htop</code>, pokud chybí.</p>
<h2 id="3-sprava-balicku-pacman">3. Správa balíčků – pacman</h2>
<p>Pacman je správce balíčků Arch Linuxu. Rychlý, jednoduchý, žádná magie.</p>
<h3 id="aktualizace-celeho-systemu">Aktualizace celého systému</h3>
<pre><code class="language-bash">sudo pacman -Syu</code></pre>
<p><code>-S</code> = synchronizace, <code>-y</code> = refresh databáze, <code>-u</code> = upgrade. Dělej pravidelně – Arch je rolling release.</p>
<h3 id="instalace-balicku">Instalace balíčku</h3>
<pre><code class="language-bash">sudo pacman -Syu firefox
sudo pacman -Syu git neovim htop   # více balíčků najednou</code></pre>
<h3 id="odstraneni-balicku-vcetne-zavislosti-a-config-souboru">Odstranění balíčku (včetně závislostí a config souborů)</h3>
<pre><code class="language-bash">sudo pacman -Rns firefox</code></pre>
<p><code>-R</code> = remove, <code>-n</code> = smaž config soubory, <code>-s</code> = smaž osiřelé závislosti. Vždy používej <code>-Rns</code>, ne jen <code>-R</code>.</p>
<h3 id="hledani-balicku-v-repozitari">Hledání balíčku v repozitáři</h3>
<pre><code class="language-bash">pacman -Ss neovim
# extra/neovim 0.9.5-1
#     Vim-fork focused on extensibility and usability</code></pre>
<h3 id="hledani-v-nainstalovanych-baliccich">Hledání v nainstalovaných balíčcích</h3>
<pre><code class="language-bash">pacman -Qs neovim
# local/neovim 0.9.5-1</code></pre>
<h2 id="4-prace-se-soubory-a-adresari">4. Práce se soubory a adresáři</h2>
<h3 id="orientace-v-systemu">Orientace v systému</h3>
<pre><code class="language-bash">pwd             # kde jsem
ls -lah         # výpis adresáře (long, all, human-readable)
cd /etc/nginx   # přejít do adresáře
cd ..           # o úroveň výš
cd ~            # domovský adresář</code></pre>
<h3 id="kopirovani-presun-mazani">Kopírování, přesun, mazání</h3>
<pre><code class="language-bash">cp soubor.txt /tmp/soubor_backup.txt     # kopírování
cp -r slozka/ /tmp/slozka_backup/        # kopírování adresáře

mv soubor.txt novy_nazev.txt             # přejmenování
mv soubor.txt /home/user/dokumenty/      # přesun

rm soubor.txt                            # smazání souboru
rm -rf slozka/                           # smazání adresáře (POZOR, nevratné)</code></pre>
<p>&gt;  ⚠️ <code>rm -rf</code> se neptá. Dvakrát zkontroluj cestu.</p>
<h3 id="vytvareni-adresaru">Vytváření adresářů</h3>
<pre><code class="language-bash">mkdir novy_adresar
mkdir -p projekty/web/css    # vytvoří celou cestu najednou
rmdir prazdny_adresar        # smaže jen prázdný adresář</code></pre>
<h3 id="tree-stromove-zobrazeni"><code>tree</code> — stromové zobrazení</h3>
<pre><code class="language-bash">tree /etc/nginx
# Nainstaluj: sudo pacman -Syu tree</code></pre>
<h2 id="5-prace-s-obsahem-souboru">5. Práce s obsahem souborů</h2>
<h3 id="zobrazeni-obsahu">Zobrazení obsahu</h3>
<pre><code class="language-bash">cat /etc/hostname                  # vypíše celý soubor
less /var/log/pacman.log           # stránkování, q = konec
bat /etc/fstab                     # zvýrazňování syntaxe (sudo pacman -Syu bat)</code></pre>
<h3 id="editory">Editory</h3>
<pre><code class="language-bash">nano /etc/hosts                    # jednoduchý, pro začátečníky
vim /etc/pacman.conf               # mocný, strmá učební křivka
nvim ~/.config/nvim/init.lua       # neovim – modernější vim</code></pre>
<p>Základní vim survival kit:</p>
<pre><code>i         → insert mode (psaní)
Esc       → zpět do normal mode
:w        → uložit
:q        → zavřít
:wq       → uložit a zavřít
:q!       → zavřít bez uložení</code></pre>
<h3 id="grep-hledani-v-souborech"><code>grep</code> — hledání v souborech</h3>
<pre><code class="language-bash">grep &quot;error&quot; /var/log/syslog                  # hledá &quot;error&quot; v souboru
grep -r &quot;ServerName&quot; /etc/nginx/              # rekurzivně v adresáři
grep -n &quot;Port&quot; /etc/ssh/sshd_config           # ukáže číslo řádku
journalctl | grep &quot;failed&quot;                    # filtrování výstupu</code></pre>
<h2 id="6-opravneni-a-vlastnictvi">6. Oprávnění a vlastnictví</h2>
<h3 id="chmod-prava-souboru"><code>chmod</code> — práva souborů</h3>
<pre><code class="language-bash">chmod +x skript.sh               # přidej právo spuštění
chmod 644 soubor.txt             # rw-r--r--
chmod 755 /usr/local/bin/skript  # rwxr-xr-x (typické pro spustitelné soubory)
chmod -R 755 slozka/             # rekurzivně</code></pre>
<p>Orientace v číslech:</p>
<pre><code>4 = čtení (r)
2 = zápis (w)
1 = spuštění (x)

644 = vlastník rw, skupina r, ostatní r
755 = vlastník rwx, skupina rx, ostatní rx</code></pre>
<h3 id="chown-zmena-vlastnika"><code>chown</code> — změna vlastníka</h3>
<pre><code class="language-bash">chown user:group soubor.txt          # změna vlastníka i skupiny
chown -R www-data:www-data /var/www  # rekurzivně (typické pro web server)</code></pre>
<h2 id="7-systemove-sluzby-systemd">7. Systémové služby – systemd</h2>
<h3 id="stav-sluzby">Stav služby</h3>
<pre><code class="language-bash">systemctl status nginx
systemctl status sshd</code></pre>
<h3 id="start-stop-restart">Start / stop / restart</h3>
<pre><code class="language-bash">sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx
sudo systemctl reload nginx     # znovu načte config bez restartu</code></pre>
<h3 id="povoleni-pri-startu-systemu">Povolení při startu systému</h3>
<pre><code class="language-bash">sudo systemctl enable nginx          # povolí autostart
sudo systemctl enable --now nginx    # povolí + hned spustí (doporučeno)
sudo systemctl disable nginx         # zakáže autostart</code></pre>
<h3 id="logy-journalctl">Logy – journalctl</h3>
<pre><code class="language-bash">journalctl -xe                        # posledních X záznamů s kontextem chyb
journalctl -u nginx                   # logy konkrétní služby
journalctl -u nginx -f                # živý výstup (follow)
journalctl --since &quot;1 hour ago&quot;       # logy za poslední hodinu
journalctl -p err -b                  # jen chyby od posledního bootu</code></pre>
<h2 id="8-sitove-prikazy">8. Síťové příkazy</h2>
<h3 id="ip-a-zobrazeni-sitovych-rozhrani"><code>ip a</code> — zobrazení síťových rozhraní</h3>
<pre><code class="language-bash">ip a                    # všechna rozhraní + IP adresy
ip a show eth0          # konkrétní rozhraní
ip r                    # routovací tabulka</code></pre>
<h3 id="ping-test-dostupnosti"><code>ping</code> — test dostupnosti</h3>
<pre><code class="language-bash">ping archlinux.org
ping -c 4 8.8.8.8       # pošle jen 4 pakety</code></pre>
<h3 id="curl-http-pozadavky"><code>curl</code> — HTTP požadavky</h3>
<pre><code class="language-bash">curl https://archlinux.org                    # stáhni obsah stránky
curl -I https://archlinux.org                 # jen hlavičky (HTTP status atd.)
curl -O https://example.com/soubor.tar.gz     # stáhni soubor
curl -s https://api.ipify.org                 # zjisti svoji veřejnou IP</code></pre>
<h3 id="ss-sitova-spojeni-a-porty"><code>ss</code> — síťová spojení a porty</h3>
<pre><code class="language-bash">ss -tuln                  # všechny naslouchající TCP/UDP porty
ss -tulnp                 # + zobrazí proces
ss -s                     # souhrn statistik</code></pre>
<h2 id="9-uzitecne-nastroje">9. Užitečné nástroje</h2>
<h3 id="yay-spravce-aur-balicku"><code>yay</code> — správce AUR balíčků</h3>
<p>AUR obsahuje tisíce balíčků mimo oficiální repozitáře.</p>
<pre><code class="language-bash"># Instalace yay (jednorázově):
sudo pacman -Syu --needed git base-devel
git clone https://aur.archlinux.org/yay.git
cd yay &amp;&amp; makepkg -si

# Použití:
yay -Syu                        # aktualizace včetně AUR
yay -S visual-studio-code-bin   # instalace z AUR
yay -Ss spotify                 # hledání v AUR</code></pre>
<h3 id="rsync-synchronizace-a-zalohy"><code>rsync</code> — synchronizace a zálohy</h3>
<pre><code class="language-bash">rsync -avh ~/dokumenty/ /mnt/backup/dokumenty/         # lokální záloha
rsync -avh ~/dokumenty/ user@server:/backup/           # na vzdálený server
rsync -avh --delete ~/web/ user@server:/var/www/web/   # zrcadlení
rsync -n -avh ~/dokumenty/ /mnt/backup/                # dry run</code></pre>
<p><code>-a</code> = archivní mód, <code>-v</code> = verbose, <code>-h</code> = human-readable</p>
<h3 id="du-a-df-misto-na-disku"><code>du</code> a <code>df</code> — místo na disku</h3>
<pre><code class="language-bash">df -h                           # místo na všech připojených discích
df -h /home                     # konkrétní oddíl

du -sh ~/dokumenty              # velikost adresáře
du -sh /var/cache/pacman/pkg    # kolik zabírá cache pacmanu
du -h --max-depth=1 /var        # přehled velikostí podadresářů</code></pre>
<h2 id="10-tipy-na-zaver">10. Tipy na závěr</h2>
<h3 id="aliasy-zkratky-pro-caste-prikazy">Aliasy – zkratky pro časté příkazy</h3>
<p>Přidej do <code>~/.bashrc</code> nebo <code>~/.zshrc</code>:</p>
<pre><code class="language-bash">alias update=&#39;sudo pacman -Syu&#39;
alias ll=&#39;ls -lah&#39;
alias ..=&#39;cd ..&#39;
alias ...=&#39;cd ../..&#39;
alias grep=&#39;grep --color=auto&#39;
alias df=&#39;df -h&#39;
alias du=&#39;du -h&#39;
alias syslog=&#39;journalctl -xe&#39;</code></pre>
<p>Po úpravě:</p>
<pre><code class="language-bash">source ~/.bashrc</code></pre>
<h3 id="historie-prikazu">Historie příkazů</h3>
<pre><code class="language-bash">history                   # zobrazí historii
history | grep pacman     # hledej v historii
!!                        # zopakuj poslední příkaz
!ssh                      # zopakuj poslední příkaz začínající na &quot;ssh&quot;</code></pre>
<p>Klávesové zkratky:</p>
<pre><code>Ctrl+R   → interaktivní hledání v historii
         → piš část příkazu, Enter = spustí, Ctrl+R znovu = starší shoda</code></pre>
<h2 id="cheat-sheet">Cheat Sheet</h2>
<pre><code>╔══════════════════════════════════════════════════════════════════╗
║                   ARCH LINUX — CHEAT SHEET                       ║
╠══════════════════╦═══════════════════════════════════════════════╣
║ SYSTÉM           ║ uname -a          → info o kernelu            ║
║                  ║ uptime            → jak dlouho běží           ║
║                  ║ htop              → procesy a zátěž           ║
╠══════════════════╬═══════════════════════════════════════════════╣
║ PACMAN           ║ pacman -Syu       → aktualizace               ║
║                  ║ pacman -Syu  → instalace                 ║
║                  ║ pacman -Rns  → odebrání                  ║
║                  ║ pacman -Ss   → hledání v repozitáři      ║
║                  ║ pacman -Qs   → hledání v instalovaných   ║
╠══════════════════╬═══════════════════════════════════════════════╣
║ SOUBORY          ║ ls -lah           → výpis adresáře            ║
║                  ║ cp -r src/ dst/   → kopírování                ║
║                  ║ mv src dst        → přesun / přejmenování     ║
║                  ║ rm -rf slozka/    → smazání (POZOR!)          ║
║                  ║ mkdir -p a/b/c    → vytvoření cesty           ║
╠══════════════════╬═══════════════════════════════════════════════╣
║ OBSAH SOUBORŮ    ║ cat soubor        → výpis                     ║
║                  ║ less soubor       → stránkování               ║
║                  ║ grep &quot;text&quot; soubor→ hledání                   ║
╠══════════════════╬═══════════════════════════════════════════════╣
║ SYSTEMD          ║ systemctl status  → stav služby               ║
║                  ║ systemctl enable  ║                           ║
║                  ║   --now      → povol + spusť             ║
║                  ║ journalctl -xe    → logy s chybami            ║
║                  ║ journalctl -u svc → logy služby               ║
╠══════════════════╬═══════════════════════════════════════════════╣
║ SÍŤ              ║ ip a              → síťová rozhraní           ║
║                  ║ ss -tuln          → otevřené porty            ║
║                  ║ curl -s URL       → HTTP požadavek            ║
╠══════════════════╬═══════════════════════════════════════════════╣
║ DISK             ║ df -h             → místo na discích          ║
║                  ║ du -sh /cesta     → velikost adresáře         ║
╠══════════════════╬═══════════════════════════════════════════════╣
║ HISTORY          ║ Ctrl+R            → hledání v historii        ║
║                  ║ !!                → zopakuj poslední příkaz   ║
╚══════════════════╩═══════════════════════════════════════════════╝</code></pre>]]></description>
  <category>Návody</category><category>Arch Linux</category><category>jekyll</category>
</item>
<item>
  <title>IVPN: Soukromá VPN služba pro Arch Linux a Android</title>
  <link>https://arch-linux.cz/posts/2025/ivpn-soukroma-vpn-sluzba-pro-arch-linux-a-android/</link>
  <guid isPermaLink="true">https://arch-linux.cz/posts/2025/ivpn-soukroma-vpn-sluzba-pro-arch-linux-a-android/</guid>
  <pubDate>Sat, 07 Jun 2025 00:00:00 +0200</pubDate>
  <description><![CDATA[<p>IVPN patří mezi VPN služby, které berou soukromí vážně. Na rozdíl od většiny komerčních VPN poskytovatelů, IVPN funguje bez logování, podporuje anonymní platby a má otevřený zdrojový kód svých aplikací. Pro uživatele Arch Linuxu a mobilních zařízení nabízí solidní řešení s důrazem na bezpečnost.</p>
<h2 id="proc-ivpn">Proč IVPN?</h2>
<p><b>Žádné logování</b>: IVPN nemá co logovat - nesbírají IP adresy, DNS dotazy ani metadata o připojení.</p>
<p><b>Anonymní registrace:</b> Účet si vygeneruješ bez osobních údajů, e-mail není potřeba. Můžete platit i kryptoměnami nebo hotovostí.</p>
<p><b>Open source klienti</b>: Všechny aplikace mají otevřený zdrojový kód, takže můžete ověřit, co skutečně dělají.</p>
<p><b>WireGuard a OpenVPN</b>: Podporují moderní WireGuard protokol i klasické OpenVPN.</p>
<p><b>Multihop</b>: Možnost směrování přes dva VPN servery pro extra ochranu.</p>
<h2 id="instalace-na-arch-linux">Instalace na Arch Linux</h2>
<h3 id="oficialni-aplikace">Oficiální aplikace</h3>
<pre><code class="language-bash">yay -S ivpn-ui</code></pre>
<p>Nebo z AUR ručně:</p>
<pre><code class="language-bash">git clone https://aur.archlinux.org/ivpn-ui.git
cd ivpn-ui
makepkg -si</code></pre>
<h3 id="spusteni-a-prihlaseni">Spuštění a přihlášení</h3>
<pre><code class="language-bash"># Spustit daemon
sudo systemctl enable --now ivpn-daemon

# Spustit GUI
ivpn-ui</code></pre>
<p>V aplikaci se přihlásíte pomocí Account ID, který dostanete po registraci na webu IVPN.</p>
<h3 id="rucni-konfigurace-wireguard">Ruční konfigurace WireGuard</h3>
<p>Pokud preferujete čistý WireGuard bez GUI:</p>
<pre><code class="language-bash"># Instalace WireGuard
sudo pacman -S wireguard-tools

# Stáhnout konfiguraci z IVPN účtu
# Uložit jako /etc/wireguard/ivpn.conf</code></pre>
<p>Příklad konfigurace:</p>
<pre><code class="language-ini">[Interface]
PrivateKey = YOUR_PRIVATE_KEY
Address = 10.0.0.2/32
DNS = 172.16.0.1

[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = SERVER_IP:2049
AllowedIPs = 0.0.0.0/0</code></pre>
<p>Spuštění:</p>
<pre><code class="language-bash">sudo wg-quick up ivpn
sudo wg-quick down ivpn</code></pre>
<h3 id="automaticke-spusteni">Automatické spuštění</h3>
<pre><code class="language-bash">sudo systemctl enable wg-quick@ivpn</code></pre>
<h2 id="nastaveni-na-android">Nastavení na Android</h2>
<h3 id="instalace-aplikace">Instalace aplikace</h3>
<p>IVPN aplikaci najdete v Google Play Store nebo F-Droid:</p>
<pre><code>F-Droid: https://f-droid.org/packages/net.ivpn.client/
Google Play: IVPN</code></pre>
<h3 id="konfigurace">Konfigurace</h3>
<ul><li>Otevřete aplikaci a přihlaste se pomocí Account ID</li><li>Vyberte server (doporučuji nejbližší pro rychlost)</li><li>Zapněte VPN přepínačem</li><li>V nastavení můžete povolit:</li></ul>
<p>Auto-connect při startu - Kill switch (přeruší internet při výpadku VPN) - Custom DNS servery</p>
<h3 id="wireguard-konfigurace">WireGuard konfigurace</h3>
<p>Alternativně můžete použít oficiální WireGuard aplikaci:</p>
<ul><li>Stáhněte si konfigurační soubor z IVPN účtu</li><li>Importujte do WireGuard aplikace</li><li>Aktivujte profil</li></ul>
<h2 id="tipy-pro-maximalni-soukromi">Tipy pro maximální soukromí</h2>
<h3 id="dns-leak-protection">DNS leak protection</h3>
<pre><code class="language-bash"># Ověření DNS úniku
dig +short myip.opendns.com @resolver1.opendns.com</code></pre>
<h3 id="firewall-pravidla">Firewall pravidla</h3>
<pre><code class="language-bash"># Blokovat provoz mimo VPN interface
sudo iptables -A OUTPUT ! -o tun0 -m owner --uid-owner $(id -u) -j DROP</code></pre>
<h3 id="kill-switch-pro-systemd">Kill switch pro systemd</h3>
<p>Vytvořte službu, která vypne internet při odpojení VPN:</p>
<pre><code class="language-ini"># /etc/systemd/system/vpn-killswitch.service
[Unit]
Description=VPN Kill Switch
After=network.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/local/bin/killswitch-on
ExecStop=/usr/local/bin/killswitch-off

[Install]
WantedBy=multi-user.target</code></pre>
<h2 id="rychlost-a-vykon">Rychlost a výkon</h2>
<p>IVPN servery jsou obvykle rychlé, ale výkon závisí na:</p>
<ul><li>Vzdálenosti k serveru</li><li>Vytížení serveru</li><li>Vaší rychlosti internetu</li></ul>
<p>Pro testování rychlosti:</p>
<pre><code class="language-bash">speedtest-cli --secure</code></pre>
<p>Nebo pokud nemáš speedtest-cli nainstalovaný:</p>
<pre><code class="language-bash"># Instalace
sudo pacman -S speedtest-cli</code></pre>
<h2 id="cena-a-plany">Cena a plány</h2>
<p>IVPN má dva plány:</p>
<ul><li><b>Standard</b>: $6/měsíc (2 současná zařízení)</li><li><b>Pro</b>: $10/měsíc (7 zařízení + multihop)</li></ul>
<p>Platit můžete kartou, PayPal, kryptoměnami nebo hotovostí poštou.</p>
<h2 id="alternativy">Alternativy</h2>
<p>Pokud IVPN nevyhovuje, zvažte:</p>
<ul><li><b>Mullvad VPN</b>: Podobná filozofie, €5/měsíc</li><li><b>ProtonVPN</b>: Free tier dostupný, Swiss privacy</li><li><b>Vlastní VPN</b>: WireGuard na VPS serveru</li></ul>
<h2 id="zaver">Závěr</h2>
<p>IVPN je solidní volba pro uživatele, kteří chtějí skutečné soukromí bez kompromisů. Open source aplikace, žádné logování a možnost anonymní registrace z něj dělají jednu z nejdůvěryhodnějších VPN služeb na trhu.</p>
<p>Pro Arch Linux uživatele je integrace bezproblémová díky AUR balíčku, a na Androidu funguje spolehlivě s pokročilými funkcemi jako kill switch.</p>
<p>Jestli bereš soukromí vážně a nechceš řešit složitou konfiguraci vlastního VPN serveru, IVPN stojí za zvážení.</p>
<h2 id="odkazy">Odkazy</h2>
<ul><li>🌐 Oficiální web: <a href="https://www.ivpn.net/en/">https://www.ivpn.net/en/</a></li><li>💻 GitHub repozitář: <a href="https://github.com/ivpn">https://github.com/ivpn</a></li></ul>]]></description>
  <category>opensource</category><category>vpn</category><category>Návody</category><category>jekyll</category>
</item>
<item>
  <title>Jak zálohovat pomocí  BorgBackup</title>
  <link>https://arch-linux.cz/posts/2023/jak-zalohovat-pomoci-borgbackup/</link>
  <guid isPermaLink="true">https://arch-linux.cz/posts/2023/jak-zalohovat-pomoci-borgbackup/</guid>
  <pubDate>Sat, 01 Apr 2023 00:00:00 +0200</pubDate>
  <description><![CDATA[<h3 id="co-je-borg">Co je Borg</h3>
<p>Borg  je open-source nástroj pro zálohování souborů a složek, který je k dispozici pro operační systémy Linux, macOS. Tento program je navržen tak, aby byl jednoduchý k použití, ale zároveň poskytoval robustní a spolehlivou zálohovací funkci pro ukládání důležitých dat.</p>
<p>Borg  používá jedinečnou technologii komprese dat, což umožňuje ukládat velké objemy dat v menších souborech, což zase znamená, že je možné ušetřit místo na disku. Další výhodou Borg Backupu je jeho rychlost - rychle zálohuje a obnovuje data, což je užitečné pro uživatele, kteří potřebují často měnit a ukládat data.</p>
<p>Borg poskytuje uživateli možnost zálohovat data do lokálního úložiště, jako jsou pevné disky, nebo do vzdáleného úložiště, jako jsou cloudové služby nebo FTP servery. Soubory a složky jsou zašifrovány pomocí AES-256, což zajišťuje bezpečnost a ochranu před neoprávněným přístupem.</p>
<p>V Borgu  lze nastavit pravidelné zálohování, což znamená, že se data automaticky zálohují v určených intervalech. Tato funkce je užitečná pro uživatele, kteří chtějí mít neustále aktuální zálohu svých dat.</p>
<p>Další výhodou BorgBackup  je  jednoduchost. Pro zálohování stačí pouze několik příkazů v příkazovém řádku, což umožňuje uživatelům rychle a snadno zálohovat a obnovovat svá data.</p>
<h3 id="jak-borg-funguje">Jak Borg funguje</h3>
<p>Borg je to, čemu se říká „deduplikační zálohovací program“. Podobně jako u přírůstkových záloh jsou v následných zálohách archivována pouze data, která se skutečně změní na souborovém systému po provedení úplné zálohy, ale podobnosti jsou pouze koncepční. Borg funguje tak, že každý soubor rozdělí na části, které jsou identifikovány jejich hash součtem. Do „úložiště“ jsou přidány pouze bloky, které aplikace nerozpoznají. Tato technika deduplikace je skutečně účinná, protože mimo jiné nám umožňuje přesunout soubor nebo adresář, aniž by to bylo považováno za změnu, a proto vyžaduje další místo. Totéž platí pro časová razítka souborů. To, na čem skutečně záleží, jsou pouze části souborů, které se ukládají pouze jednou. V Linuxu Borg podporuje zachování všech standardních a rozšířených atributů souborového systému, jako jsou ACL a xattrs.</p>
<h3 id="instalace-borga">Instalace Borga</h3>
<p>Nejprve si musíte nainstalovat Borg. To lze provést pomocí správce balíčků, nebo si můžete stáhnout instalační soubory z oficiálních stránek.</p>
<pre><code>sudo pacman -S borgbackup</code></pre>
<h3 id="vytvoreni-repozitare">Vytvoření repozitáře</h3>
<p>Předtím, než začnete zálohovat svá data, musíte vytvořit repozitář, kde se budou data ukládat. Můžete to udělat pomocí následujícího příkazu:</p>
<pre><code>borg init -e repokey-blake2 /cesta/k/repozitari</code></pre>
<p>Tento příkaz vytvoří nový Borg Backup repozitář v zadané cestě.</p>
<h3 id="vytvoreni-zalohy">Vytvoření zálohy</h3>
<p>Nyní můžete vytvořit zálohu svých dat pomocí následujícího příkazu:</p>
<pre><code>borg create /cesta/k/repozitari::jmeno-zalohy /cesta/k/slozkam-k-zalohovani</code></pre>
<p>Tento příkaz vytvoří novou zálohu s názvem &quot;jmeno-zalohy&quot; a uloží ji do vašeho Borg Backup repozitáře. Data, která chcete zálohovat, musí být umístěna v adresáři uvedeném po druhém lomítku.</p>
<h3 id="pravidelne-zalohovani">Pravidelné zálohování</h3>
<p>Pro pravidelné zálohování můžete použít nástroje jako Cron nebo Systemd timer. Pro příklad zálohování každý den v 2 ráno pomocí Cronu, můžete přidat následující řádek do svého Crontab souboru:</p>
<pre><code>0 2 * * * /usr/bin/borg create /cesta/k/repozitari::`date +\%Y-\%m-\%d` /cesta/k/slozkam-k-zalohovani</code></pre>
<p>Tento příkaz vytvoří zálohu každý den v 2 ráno s aktuálním datem jako název zálohy.</p>
<h3 id="obnoveni-zalohy">Obnovení zálohy</h3>
<p>Pokud potřebujete obnovit data ze zálohy, můžete to udělat pomocí následujícího příkazu:</p>
<pre><code>borg extract /cesta/k/repozitari::jmeno-zalohy /cesta/k/kam-se-data-obnovi</code></pre>
<h3 id="zakladni-prikazy">Základní příkazy</h3>
<ul><li><code>**borg init**</code>: Tento příkaz vytváří nový záložní repozitář.</li></ul>
<ul><li><code>**borg create**</code>: Tento příkaz vytváří novou zálohu vašich souborů nebo složek.</li></ul>
<ul><li><b><code>borg list</code></b><b>:</b> Tento příkaz vypisuje seznam záloh v záložním repozitáři.</li></ul>
<ul><li><code>**borg info**</code>: Tento příkaz poskytuje informace o záložním repozitáři, jako je například jeho velikost a počet záloh.</li></ul>
<ul><li><code>**borg extract**</code>: Tento příkaz obnovuje soubory ze zálohy.</li></ul>
<ul><li><code>**borg delete**</code>: Tento příkaz odstraňuje zálohy z repozitáře.</li></ul>
<ul><li><code>**borg mount**</code>: Tento příkaz umožňuje přístup k obsahu záložního repozitáře jako ke složce, což umožňuje snadnější obnovu souborů.</li></ul>
<ul><li><code>**borg prune**</code>: Tento příkaz odstraňuje staré zálohy z repozitáře, aby se uvolnilo místo na disku</li></ul>
<p>To jsou základní kroky pro použití Borg Backup pro zálohování vašich souborů a složek. Samozřejmě existuje mnoho dalších pokročilých funkcí, které můžete použít, abyste co nejlépe využili tohoto nástroje.</p>]]></description>
  <category>borg</category><category>backup</category><category>Návody</category><category>Aplikace</category><category>jekyll</category>
</item>
<item>
  <title>Unixový správce hesel Pass</title>
  <link>https://arch-linux.cz/posts/2023/unixovy-spravce-hesel-pass/</link>
  <guid isPermaLink="true">https://arch-linux.cz/posts/2023/unixovy-spravce-hesel-pass/</guid>
  <pubDate>Fri, 10 Feb 2023 00:00:00 +0100</pubDate>
  <description><![CDATA[<h3 id="co-je-spravce-hesel-pass">Co je správce hesel PASS</h3>
<p>Pass je správce hesel příkazového řádku vytvořený s ohledem na filozofii Unixu. Umožňuje vám pracovat s vašimi hesly pomocí běžných unixových příkazů. Přihlašovací údaje jsou uloženy v souborech zašifrovaných GPG.</p>
<h3 id="pass-je-komplikovany-jen-pro-geeky">PASS je komplikovaný! Jen pro geeky!</h3>
<p>Toto je typická odpověď mnoha uživatelů, kteří pláčou na fórech. Ale není to pravda. Jakákoli technologie potřebuje znát některé základy používání. Pokud chcete řídit auto nebo hrát World of Warcraft, musíte se nejprve naučit základy. Abyste byli PRO, potřebujete víc. Pro základní a standardní uživatelské použití <b>je pass jednoduchý a efektivní nástroj</b> .</p>
<h2 id="zaklady-gnupg">Základy GnuPG</h2>
<p>Prvním základním know-how pro *nix je použití pgp klíčů a možnost šifrovat/dešifrovat a podepisovat vaši práci a soubory.</p>
<p><a href="https://wiki.archlinux.org/title/GnuPG">https://wiki.archlinux.org/title/GnuPG</a></p>
<pre><code>sudo pacman -S gnupg
nvim ~/.gnupg/gpg-agent.conf 
  pinentry-program /usr/bin/pinentry-curses
  pinentry-program /usr/bin/pinentry-gnome3
  max-cache-ttl 60480000
  default-cache-ttl 60480000

# create new key-pair, follow questions, select master password reasonably
gpg --full-gen-key

# export/import your keys
gpg --export --armor --output public.key user-id
gpg --import public.key
gpg --export-secret-keys --armor --output privkey.asc user-id
gpg --import privkey.asc

# make your key ultimate and default
gpg --edit-key user-id/key
type in cli: trust, choice 5, save, quit

# search your keys
gpg --search-keys user-id

# optional upload your gpg public key to key servers
https://keys.openpgp.org
https://keyserver.ubuntu.com/

# encrypt/decrypt files example - asymmetric
gpg --recipient user-id --encrypt doc
gpg --output doc --decrypt doc.gpg</code></pre>
<h2 id="pass-zaklady">Pass základy</h2>
<h3 id="hierarchie-adresaru">Hierarchie adresářů</h3>
<p>Adresářová struktura závisí na vás. Preferuji používání passu <b>nejen</b> pro správu přihlašivacích hesel!</p>
<p>Moje hierarchie je následující</p>
<ul><li>credit-cards</li></ul>
<ul><li>finance</li></ul>
<ul><li>local</li></ul>
<ul><li>login</li></ul>
<ul><li>ssid</li></ul>
<ul><li>token</li></ul>
<p>Podsložky v <code>login</code>syntaxe složky</p>
<ul><li>url/uživatelské jméno (pokud je více uživatelů nebo účtů)</li></ul>
<ul><li>url (pouze jednoduchá adresa URL bez názvu účtu)</li></ul>
<p>Podsložky v <code>login</code>příklady složek</p>
<pre><code>├── logitech.com
   ├── mail.plzen-edu.cz
   ├── malirskeplatna.cz
   ├── mall.cz
   ├── mastodon.arch-linux.cz
   ├── jira.cloud.cz
   │   ├── andrew
   │   ├── antfis
   │   └── petr</code></pre>
<h3 id="syntaxe-uvnitr-zasifrovaneho-souboru-gpg">Syntaxe uvnitř zašifrovaného souboru gpg</h3>
<p>První řádek patří heslu podle <code>pass</code>   syntax. Všechny další řádky jsou volitelné dle vašeho přání. U kreditních karet můžete pro podrobnosti potřebovat mnohem více řádků. <b>Můžete si uložit vše, co potřebujete. Je to pouze textový soubor.</b></p>
<p>Je tu jeden důležitý bod!</p>
<p>Pokud chcete použít <code>passff</code> nebo jiná rozšíření, musíte použít <code>login:</code> řádek s názvem vašeho účtu, do kterého bude automaticky vložen <code>login field</code>  v přihlašovacím formuláři webové stránky.</p>
<pre><code>password
login: account</code></pre>
<h3 id="zakladni-prikazy">Základní příkazy</h3>
<pre><code># initialize the password store
pass init gpg-id_or_email

# insert new password for archlinux.org with defined username
# this insert is optional, I&#39;m using mainly &#39;generate&#39; and &#39;edit&#39; command
pass insert login/archilinux.org
pass insert login/archlinux.org/username

# generate password with N symbols, example with length 20
pass generate archlinux.org/wiki/username -n 20

# edit file to fill additional details - &#39;login:&#39; row, etc.
# edit command will use your $EDITOR, nvim, emacs etc.
pass edit archlinux.org/wiki/username

# publish changes directly to git private repo, no commit needed!
# needs linkage with git first, see next chapters...
pass git push

# direct copy to clipboard
pass -c login/archlinux.org
# or integration with rofi, dmenu
rofi-pass
passmenu

# pass fulltext search
pass search archlinux</code></pre>
<h2 id="integrace-soukromeho-git-repozitare">Integrace soukromého Git repozitáře</h2>
<h3 id="nastaveni-na-strane-serveru">Nastavení na  straně serveru</h3>
<p>Nejprve vytvořte <code>git bare private-repo</code>  na vašem serveru, soukromém domácím cloudu nebo soukromém cloudovém úložišti git (tato poslední volba není z mé strany preferována). Je to standardní git repozitář, který bude ukládat vaše zakódované soubory gpg a adresářovou strukturu.</p>
<p>Pokud nevíte nic o git nebo git serverech. Postupujte podle předchozího článku <code>git-bare-repo</code> nebo si jen přečtěte články o GitHubu a základní tutoriály git.</p>
<h3 id="nastaveni-na-strane-klienta">Nastavení na straně klienta</h3>
<pre><code># create local password store
pass init 
# Enable management of local changes through Git
pass git init
# Add the the remote git repository as &#39;origin&#39;
pass git remote add origin user@server:~/.password-store
# Push your local pass history
pass git push -u --all

# just work with pass and git
pass git pull
pass generate ...
pass edit ...
pass git push
# DONE.

# all git operations work normally just with prefix &#39;pass&#39;</code></pre>
<h3 id="projdete-kroky-instalace-nove-stanice">Projděte kroky instalace nové stanice</h3>
<p>Pokud máte nový počítač a potřebujete <code>pass</code> a vaše úložiště na nové stanici. Můžete vytvořit nějaký malý skript, nebo stačí napsat těchto pár příkazů.</p>
<pre><code># install software
sudo pacman -S gnupg pass rofi-pass git

# import public and private keys
gpg --import gpg-public.key
gpg --import privkey.asc

# ultimate access for your gpg key for new station
gpg --edit-key user-idOrkey-id
type in cli: trust, choice 5, save, quit 

# clone your git repostiory to .password-store
git clone gitlab@server:repo/pass-store.git ~/.password-store

# configure your pass git
pass git config --global user.email &quot;email&quot; 
pass git config --global user.name &quot;name&quot;
pass git config --global user.signingkey 

# gpg and pinetry check or add
nvim ~/.gnupg/gpg-agent.conf 
	pinentry-program /usr/bin/pinentry-gnome3</code></pre>
<h2 id="integrace-rofi-dmenu">Integrace Rofi/dmenu</h2>
<p><a href="https://github.com/raven2cz/geek-room/blob/main/attachments/pass-zx2c4-rofi.png">pass-zx2c4-rofi</a></p>
<p>Rofi a dmenu má rychlé a výkonné použití s ​​passem</p>
<pre><code>sudo pacman -S rofi-pass 
rofi-pass
passmenu</code></pre>
<pre><code># example integration with awesomewm
awful.key({modkey, altkey},&quot;p&quot;,function() awful.spawn.with_shell(&quot;rofi-pass -t&quot;) end,
          {description=&quot;types password from pass&quot;, group=&quot;launcher&quot;}),
awful.key({modkey, ctrlkey},&quot;p&quot;, function() awful.spawn.with_shell(&quot;rofi-pass&quot;) end,
          {description=&quot;copy password from pass&quot;, group=&quot;launcher&quot;}),</code></pre>
<h2 id="passff-integrace-do-firefoxu">Passff - integrace do Firefoxu</h2>
<p>Nainstalujte <code>passff</code>rozšíření do vašeho Firefoxu z Firefox Extension Storage.</p>
<p>Vytvořit <code>host</code>spojení, komunikační protokol mezi systémem a rozšířením passff. To se nazývá <code>passff-host</code>; tato aplikace má implementaci pro každou distribuci. Pro Arch můžete použít balíček AUR.</p>
<pre><code>% git clone https://aur.archlinux.org/passff-host.git/
% cd passff-host
% makepkg -si</code></pre>
<h2 id="browserpass-integrace-brave-chromium-firefox">browserpass – integrace Brave, Chromium, Firefox</h2>
<p>Nainstalujte <code>browserpass</code> z úložiště rozšíření prohlížeče. O projektu <a href="https://github.com/browserpass/browserpass-extension">zde</a> .</p>
<p>Integrace s vaším systémem, podobně jako <code>passff-host</code></p>
<pre><code>paru -S browserpass
Nainstalujte browserpass úložiště rozšíření prohlížeče.

Integrace s vaším systémem, podobně jako passff-host

paru -S browserpass</code></pre>
<h2 id="password-store-openkeychain-integrace-se-systemem-android">Password Store, OpenKeychain – integrace se systémem Android</h2>
<p>Stačí nainstalovat obě aplikace pro Android. První <code>PasswordStore</code> aplikace musí být v telefonu prohozena s výchozím správcem hesel nebo pouze v nastavení prohlížeče. Druhý <code>OpenKeychain</code> aplikace je úložiště pro vaše soukromé a veřejné klíče gpg a poskytuje API pro <code>PasswordStore</code>.</p>
<p><code>PasswordStore</code>  má plnou podporu pro soukromé repozitáře git, git pull a push funguje z nabídky.</p>
<p>S tímto řešením nemám žádné chyby a toto úložiště a správce hesel používám několik let.</p>
<h2 id="integrace-windows-wsl2">Integrace Windows - WSL2</h2>
<p>Integrace MS Windows a WSL2 je pokročilé téma. Napsal jsem   <a href="https://fishlive.org/en/blog-tech-art/pass-zx2c4-and-passff-for-wsl2-windows">o tom jiný článek</a> .</p>
<h2 id="dalsi-aplikace-a-moznosti">Další Aplikace a možnosti</h2>
<p>Sledujte <a href="https://www.passwordstore.org/">domovskou stránku pass</a> dole!</p>
<ul><li>Kompatibilní klienti</li></ul>
<ul><li>Migrace z jiných klientů</li></ul>
<p>Například <b>Gopass</b> .</p>
<p><a href="https://github.com/gopasspw/gopass">https://github.com/gopasspw/gopass</a></p>
<h2 id="pass-credit-license">Pass - Credit &amp; License</h2>
<p>pass was written by Jason A. Donenfeld of <a href="https://zx2c4.com">zx2c4.com</a> and is licensed under the <a href="http://www.gnu.org/licenses/gpl-2.0.html">GPLv2+</a>.</p>
<p><a href="https://www.youtube.com/watch?v=MrvWrBaYTyI">https://www.youtube.com/watch?v=MrvWrBaYTyI</a></p>
<h4 id="dulezite-odkazy">Důležité odkazy:</h4>
<ul><li><a href="https://www.passwordstore.org/">https://www.passwordstore.org/</a></li></ul>
<ul><li><a href="https://wiki.archlinux.org/title/GnuPG">https://wiki.archlinux.org/title/GnuPG</a></li></ul>
<ul><li><a href="https://wiki.archlinux.org/title/Pass">https://wiki.archlinux.org/title/Pass</a></li></ul>
<ul><li><a href="https://github.com/passff/passff">https://github.com/passff/passff</a></li></ul>
<ul><li><a href="https://github.com/passff/passff-host">https://github.com/passff/passff-host</a></li></ul>
<ul><li><a href="https://github.com/browserpass/browserpass-extension">https://github.com/browserpass/browserpass-extension</a></li></ul>
<ul><li><a href="https://play.google.com/store/apps/details?id=dev.msfjarvis.aps&amp;hl=cs&amp;gl=US">Password Store</a> + <a href="https://play.google.com/store/apps/details?id=org.sufficientlysecure.keychain&amp;hl=cs&amp;gl=US">OpenKeychain</a> (Android Google Play)</li></ul>
<ul><li><a href="https://git.zx2c4.com/password-store">pass project source code</a> a <a href="https://github.com/zx2c4/password-store">mirror</a></li></ul>
<ul><li><a href="https://fishlive.org/en/blog-tech-art/pass-zx2c4-and-passff-for-wsl2-windows">https://fishlive.org/en/blog-tech-art/pass-zx2c4-and-passff-for-wsl2-windows</a></li></ul>
<ul><li><a href="https://github.com/raven2cz/geek-room/tree/main/pass-zx2c4">GitHub autora</a></li></ul>
<h4 id="zavisi-na">Závisí na:</h4>
<ul><li>bash <a href="http://www.gnu.org/software/bash/">http://www.gnu.org/software/bash/</a></li></ul>
<ul><li>GnuPG2 <a href="http://www.gnupg.org/">http://www.gnupg.org/</a></li></ul>
<ul><li>git <a href="http://www.git-scm.com/">http://www.git-scm.com/</a></li></ul>
<ul><li>xclip (for X11 environments) <a href="http://sourceforge.net/projects/xclip/">http://sourceforge.net/projects/xclip/</a></li></ul>
<ul><li>wl-clipboard (for wlroots Wayland-based environments) <a href="https://github.com/bugaevc/wl-clipboard">https://github.com/bugaevc/wl-clipboard</a></li></ul>
<ul><li>tree &gt;= 1.7.0 <a href="http://mama.indstate.edu/users/ice/tree/">http://mama.indstate.edu/users/ice/tree/</a></li></ul>
<ul><li>GNU getopt <a href="http://www.kernel.org/pub/linux/utils/util-linux/">http://www.kernel.org/pub/linux/utils/util-linux/</a> <a href="http://software.frodo.looijaard.name/getopt/">http://software.frodo.looijaard.name/getopt/</a></li></ul>
<ul><li>qrencode <a href="https://fukuchi.org/works/qrencode/">https://fukuchi.org/works/qrencode/</a></li></ul>]]></description>
  <category>pass</category><category>Návody</category><category>jekyll</category>
</item>
<item>
  <title>Arch Linux průvodce instalací základního šifrování celého disku</title>
  <link>https://arch-linux.cz/posts/2022/arch-linux-pruvodce-instalaci-zakladniho-sifrovani-celeho-disku/</link>
  <guid isPermaLink="true">https://arch-linux.cz/posts/2022/arch-linux-pruvodce-instalaci-zakladniho-sifrovani-celeho-disku/</guid>
  <pubDate>Tue, 06 Dec 2022 00:00:00 +0100</pubDate>
  <description><![CDATA[<p>Tato příručka obsahuje pokyny pro instalaci Arch Linuxu se šifrováním celého disku pomocí BTRFS na LUKS a šifrovaným spouštěcím oddílem (GRUB) pro systémy UEFI.</p>
<p>Po hlavní instalaci následují další pokyny, jak se bránit útokům Evil Maid prostřednictvím vlastní registrace klíče UEFI Secure Boot, jádra a bootloaderu s vlastním podpisem.</p>
<h3 id="predmluva">Předmluva</h3>
<p>Většinu těchto informací najdete na <a href="https://wiki.archlinux.org/index.php/Dm-crypt/Encrypting_an_entire_system#Encrypted_boot_partition_(GRUB)">Arch Wiki</a> a dalších zdrojů na ně odkazovaných v dolní části článku.</p>
<p><i>Poznámka:</i>  Návod popisuje instalaci na moderní NVMe SSD disk. Pokud používáte jiný typ disků, proveďte všude v návodu substituci <code>/dev/nvme0nX</code> na <code>/dev/sdX</code>, popř. jiný typ zařízení podle potřeby. Video návod používá  <code>/dev/sdX</code>, který je standardním nastavením ve Virtualboxu.</p>
<h3 id="pripojeni-k-internetu">Připojení k internetu</h3>
<p>Zapojte ethernet a pokračujte dál, nebo pro bezdrátové připojení se podívejte na <i>vševědoucí</i>  <a href="https://wiki.archlinux.org/index.php/installation_guide#Connect_to_the_internet">Arch Wiki</a>.</p>
<h4 id="nastaveni-wifi">Nastavení Wifi</h4>
<pre><code>iwctl
[iwd]# device list -&gt; note your device
[iwd]# station  get-networks
[iwd]# station  connect 

# second variant
iwctl --passphrase  station  connect 

# test connection
ping archlinux.org</code></pre>
<h4 id="aktualizujte-systemove-hodiny">Aktualizujte systémové hodiny</h4>
<pre><code>timedatectl set-ntp true</code></pre>
<h4 id="volitelne-aktualizujte-mirrorlist">(Volitelně) Aktualizujte mirrorlist</h4>
<pre><code>pacman -Syy
pacman -S reflector
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak

reflector --country &#39;Czechia&#39; --age 24 --verbose --sort rate --save /etc/pacman.d/mirrorlist
# OR
reflector -c &quot;CZ&quot; -f 12 -l 10 -n 12 --save /etc/pacman.d/mirrorlist</code></pre>
<h4 id="nastaveni-rozliseni-virtualbox-tty">Nastavení rozlišení Virtualbox tty</h4>
<pre><code>pacman -S fbset terminus-font
fbset -g 2048 1080 2048 1080 32
setfont ter-132n</code></pre>
<h3 id="priprava-disku">Příprava disku</h3>
<h4 id="aktualizujte-btrfs-progs">Aktualizujte btrfs-progs</h4>
<pre><code>pacman -Syy btrfs-progs</code></pre>
<h4 id="zobrazeni-disku-a-oddilu">Zobrazení disků a oddílů</h4>
<pre><code>lsblk</code></pre>
<h4 id="vytvorte-oddily-efi-system-a-linux-luks">Vytvořte oddíly EFI System a Linux LUKS</h4>
<p><b>Number</b><i>*Start (sector</i><b><i>End (sector)</i></b>*Size<b><i>*Code</i></b>*Name**120481130495256.0 MiBEF00EFI System21130496976773134465.2 GiB8309Linux LUKS</p>
<pre><code>gdisk /dev/nvme0n1

# alternative apps
cfdisk
fdisk</code></pre>
<pre><code>o
n
[Enter]
0
+256M
ef00
n
[Enter]
[Enter]
[Enter]
8309
w</code></pre>
<h4 id="vytvorte-sifrovany-kontejner-luks1-na-oddilu-linux-luks-grub-nepodporuje-luks2-od-kvetna-2019">Vytvořte šifrovaný kontejner LUKS1 na oddílu Linux LUKS (GRUB nepodporuje LUKS2 od května 2019)</h4>
<pre><code>cryptsetup luksFormat --type luks1 --use-random -S 1 -s 512 -h sha512 -i 1000 /dev/nvme0n1p2</code></pre>
<h4 id="otevrete-kontejner-desifrujte-jej-a-zpristupnete-na-dev-mapper-cryptbtrfs">Otevřete kontejner (dešifrujte jej a zpřístupněte na /dev/mapper/cryptbtrfs)</h4>
<pre><code>cryptsetup open /dev/nvme0n1p2 cryptbtrfs</code></pre>
<h3 id="priprava-svazku-podsvazku-btrfs">Příprava svazku/podsvazků BTRFS</h3>
<h4 id="formatovani-btrfs-nyni-jiz-desifrovaneho-disku">Formátování btrfs, nyní již dešifrovaného disku</h4>
<pre><code>mkfs.btrfs -L &quot;Arch Linux&quot; /dev/mapper/cryptbtrfs</code></pre>
<h4 id="pripojit-souborovy-system-zatim-bezparametricke">Připojit souborový systém (zatím bezparametrické)</h4>
<pre><code>mount /dev/mapper/cryptbtrfs /mnt</code></pre>
<h4 id="vytvoreni-podsvazku-subvolumes">Vytvoření podsvazků (subvolumes)</h4>
<p>Toto schéma lze upravit podle vašich potřeb, navrhoval bych alespoň jeden podsvazek pro root (@) a jeden pro snímky (.@snapshots). varlog a tmp jsou vytvořeny pro snadné zakázání kopírování při zápisu na /var/log a /tmp. pkg subvolume naopak pomáhá v organizaci pacman balíčků s možností jejich zálohy a vrácení se k předchozím verzím. docker subvolume umožňuje efektivní práci s dockrem, který má implementovanou efektivní spolupráci s btrfs souborovým systémem.</p>
<pre><code>btrfs sub cr /mnt/@
btrfs sub cr /mnt/@home
btrfs sub cr /mnt/@tmp
btrfs sub cr /mnt/@log
btrfs sub cr /mnt/@pkg
btrfs sub cr /mnt/@docker
btrfs sub cr /mnt/.@snapshots</code></pre>
<h4 id="zakazat-kopirovani-pri-zapisu-do-var-log-a-tmp">Zakázat kopírování při zápisu do /var/log a /tmp</h4>
<pre><code>chattr +C /mnt/@log
chattr +C /mnt/@tmp  
umount /mnt</code></pre>
<h4 id="pripojeni-subolumes-btrfs-nyni-jiz-s-kompletni-parametrizaci-pro-stale-pouzivani">Připojení subolumes BTRFS, nyní již s kompletní parametrizací pro stálé používání</h4>
<pre><code>mount -o defaults,noatime,discard,ssd,subvol=@ /dev/mapper/cryptbtrfs /mnt  
mkdir -p /mnt/{home,var/log,var/cache/pacman/pkg,var/lib/docker,tmp,.snapshots}

# Discard and ssd options and are for ssd disks only
mount -o defaults,noatime,discard,ssd,subvol=@home /dev/mapper/cryptbtrfs /mnt/home
mount -o defaults,noatime,discard,ssd,subvol=@tmp /dev/mapper/cryptbtrfs /mnt/tmp
mount -o defaults,noatime,discard,ssd,subvol=@log /dev/mapper/cryptbtrfs /mnt/var/log
mount -o defaults,noatime,discard,ssd,subvol=@pkg /dev/mapper/cryptbtrfs /mnt/var/cache/pacman/pkg/
mount -o defaults,noatime,discard,ssd,subvol=@docker /dev/mapper/cryptbtrfs /mnt/var/lib/docker
mount -o defaults,noatime,discard,ssd,subvol=.@snapshots /dev/mapper/cryptbtrfs /mnt/.snapshots</code></pre>
<h3 id="priprava-oddilu-efi">Příprava oddílu EFI</h3>
<h4 id="vytvorte-souborovy-system-fat32-na-systemovem-oddilu-efi">Vytvořte souborový systém FAT32 na systémovém oddílu EFI</h4>
<pre><code>mkfs.fat -F32 /dev/nvme0n1p1</code></pre>
<h4 id="vytvorte-bod-pripojeni-pro-systemovy-oddil-efi-na-efi-pro-kompatibilitu-s-grub-install-a-pripojte-jej">Vytvořte bod připojení pro systémový oddíl EFI na /efi pro kompatibilitu s grub-install a připojte jej</h4>
<pre><code>mkdir /mnt/efi
mount /dev/nvme0n1p1 /mnt/efi</code></pre>
<h3 id="instalace-arch-base">Instalace Arch Base</h3>
<h4 id="nainstalujte-potrebne-balicky">Nainstalujte potřebné balíčky</h4>
<pre><code>pacstrap /mnt/ base base-devel linux linux-headers linux-firmware polkit git btrfs-progs efibootmgr dhcpcd bash-completion sudo neovim nano</code></pre>
<h3 id="nakonfigurujte-system">Nakonfigurujte systém</h3>
<h4 id="vygenerujte-soubor-etc-fstab">Vygenerujte soubor /etc/fstab</h4>
<pre><code>genfstab -U /mnt &gt;&gt; /mnt/etc/fstab</code></pre>
<p>Zkontrolujte, zda <code>fstab</code>je správně vytvořen s definovanými parametry btrfs z předchozí kapitoly s editorem neovim.</p>
<h4 id="vstupne-do-sveho-noveho-systemu-pomoci-arch-chroot">Vstupne do svého nového systému pomocí arch-chroot</h4>
<pre><code>arch-chroot /mnt</code></pre>
<p>V tomto okamžiku byste měli mít následující oddíly a logické svazky:</p>
<pre><code>lsblk</code></pre>
<p>NAMEMAJ:MINRMSIZEROTYPEMOUNTPOINTnvme0n1259:00465.8G0disk├─nvme0n1p1259:50256M0part/efi├─nvme0n1p2259:60465.2G0part/.snapshots      └─cryptbtrfs254:00465.2G0crypt/var/lib/docker/var/cache/pacman/pkg/var/log/tmp/home/</p>
<h4 id="casove-pasmo">Časové pásmo</h4>
<p>Nahradit <code>Europe/Prague</code>s vaším příslušným časovým pásmem nalezeným v <code>/usr/share/zoneinfo</code></p>
<pre><code>ln -sf /usr/share/zoneinfo/Europe/Prague /etc/localtime</code></pre>
<h4 id="beh-hwclock-vygeneruje-etc-adjtime">Běh <code>hwclock</code> vygeneruje <code>/etc/adjtime</code></h4>
<p>Hardwarové hodiny budou nastaveny na UTC a synchronizovány s aktuálním systémovým časem.</p>
<pre><code>hwclock --systohc --utc</code></pre>
<h4 id="lokalizace">Lokalizace</h4>
<p>Odkomentovat řádku <code>en_US.UTF-8 UTF-8</code> v  <code>/etc/locale.gen</code> a vygenerovat národní prostředí.</p>
<pre><code>locale-gen</code></pre>
<h4 id="vytvorit-locale-conf-a-nastavte-lang-promennou-prostredi">Vytvořit <code>locale.conf</code> a nastavte <code>LANG</code> proměnnou prostředí</h4>
<pre><code>echo LANG=en_US.UTF-8 &gt; /etc/locale.conf
export LANG=en_US.UTF-8</code></pre>
<h3 id="konfigurace-site">Konfigurace sítě</h3>
<h4 id="vytvorte-soubor-etc-hostname-s-nazvem-pocitace">Vytvořte soubor /etc/hostname s názvem počítače</h4>
<pre><code>echo myhostname &gt; /etc/hostname</code></pre>
<p>Toto je jedinečný název pro identifikaci vašeho zařízení v síti.</p>
<h4 id="pridejte-odpovidajici-zaznamy-do-etc-hosts">Přidejte odpovídající záznamy do /etc/hosts</h4>
<pre><code>nvim /etc/hosts</code></pre>
<pre><code>127.0.0.1 localhost
::1 localhost
127.0.1.1 myhostname</code></pre>
<h3 id="volitelne-vytvareni-swap-souboru">(Volitelné) Vytváření swap souboru</h3>
<p>Nyní vytvořte prázdný (s velikostí 0) odkládací soubor. Vytvořte samostatný podsvazek pro odkládací soubor. Tento podsvazek je potřebný k tomu, abyste mohli vytvořit snímek /, což by nebylo možné s žádným souborem v něm s vypnutým CoW!</p>
<pre><code>btrfs su create /swap
chattr +C /swap

# Copy on Write should always be disabled on swap file, so it will be done in the next step
touch /swap/swapfile

# Check if C attribute is enabled (should be already if created in folder with disabled CoW attribute)
lsattr /swap/swapfile

# If not then disable CoW for swapfile manually
chattr +C /swap/swapfile  

# Expanding empty file to 4GiB swap file
dd if=/dev/zero of=/swap/swapfile bs=1024K count=4096  
chmod 600 /swap/swapfile

# Format the swap file.
mkswap /swap/swapfile

# Turn swap file on.
swapon /swap/swapfile  

# You also need to update /etc/fstab to mount swapfile on boot
/swap/swapfile none swap sw 0 0</code></pre>
<h3 id="initramfs">Initramfs</h3>
<h4 id="pridat-encrypt-a-btrfs-hacky-hooks-na-etc-mkinitcpio-conf">Přidat <code>encrypt</code>, a <code>btrfs</code> háčky (hooks) na <code>/etc/mkinitcpio.conf</code></h4>
<p><i>Poznámka:</i>  Záleží na pořádí!</p>
<pre><code>HOOKS=(base udev autodetect modconf kms keyboard keymap consolefont block encrypt btrfs filesystems fsck)

# Add btrfsck to binaries
BINARIES=(btrfsck)</code></pre>
<h4 id="znovu-vytvorte-obraz-initramfs">Znovu vytvořte obraz initramfs</h4>
<pre><code>mkinitcpio -P</code></pre>
<h3 id="instalace-zakladniho-softwaru">Instalace základního softwaru</h3>
<pre><code>pacman -S openssh networkmanager wpa_supplicant netctl
systemctl enable NetworkManager
systemctl enable sshd

pacman -S amd-ucode (for AMD), pacman -S intel-ucode (for INTEL)
mkinitcpio -p linux</code></pre>
<h4 id="graficke-ovladace-a-xorg">Grafické ovladače a Xorg</h4>
<h5 id="karty-amd">Karty AMD</h5>
<pre><code>pacman -S xorg xorg-xinit
pacman -S mesa</code></pre>
<h5 id="karty-nvidia">Karty Nvidia</h5>
<pre><code>pacman -S xorg xorg-xinit
pacman -S nvidia nvidia-utils

sudo vim /etc/mkinitcpio.conf
# edit Modules and Files
MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm ...)
FILES=&quot;/etc/modprobe.d/nvidia.conf&quot;

sudo mkinitcpio -P
nvim /etc/modprobe.d/nvidia.conf
# Add row to the file
options nvidia_drm modeset=1</code></pre>
<h5 id="podpora-virtualboxu">Podpora Virtualboxu</h5>
<pre><code>pacman -S virtualbox-guest-utils</code></pre>
<h3 id="heslo-uzivatele-root">Heslo uživatele root</h3>
<h4 id="nastavte-heslo-uzivatele-root">Nastavte heslo uživatele root</h4>
<pre><code>passwd</code></pre>
<h3 id="pridat-uzivatele-linuxu">Přidat uživatele Linuxu</h3>
<pre><code>useradd -m -g users -G wheel,storage,power -s /bin/bash 
passwd 
pacman -S sudo
EDITOR=nvim visudo,  (uncomment) %wheel ALL=(ALL:ALL) ALL</code></pre>
<h3 id="zavadec-bootloader">Zavaděč (bootloader)</h3>
<h4 id="nainstalujte-grub">Nainstalujte GRUB</h4>
<pre><code>pacman -S grub efibootmgr os-prober dosfstools mtools</code></pre>
<h4 id="nakonfigurujte-grub-tak-aby-umoznoval-spousteni-z-boot-na-sifrovanem-oddilu-luks1">Nakonfigurujte GRUB tak, aby umožňoval spouštění z /boot na šifrovaném oddílu LUKS1</h4>
<pre><code>nvim /etc/default/grub</code></pre>
<pre><code>GRUB_ENABLE_CRYPTODISK=y</code></pre>
<h4 id="nastavte-parametr-jadra-pro-odemknuti-fyzickeho-svazku-btrfs-pri-spousteni-pomoci-encrypt-hook">Nastavte parametr jádra pro odemknutí fyzického svazku BTRFS při spouštění pomocí <code>encrypt</code> hook</h4>
<h5 id="uuid-je-oddil-obsahujici-kontejner-luks">UUID je oddíl obsahující kontejner LUKS</h5>
<pre><code>blkid</code></pre>
<pre><code>/dev/nvme0n1p2: UUID=&quot;xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&quot; TYPE=&quot;crypto_LUKS&quot; PARTLABEL=&quot;Linux LUKS&quot; PARTUUID=&quot;xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&quot;</code></pre>
<pre><code>/etc/default/grub</code></pre>
<pre><code># allow-discards is only for ssd to let trim work with encryption enabled
GRUB_CMDLINE_LINUX=&quot;... cryptdevice=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:cryptbtrfs:allow-discards&quot;</code></pre>
<h4 id="nainstalujte-grub-do-pripojeneho-esp-pro-spousteni-uefi">Nainstalujte GRUB do připojeného ESP pro spouštění UEFI</h4>
<pre><code>grub-install --target=x86_64-efi --bootloader-id=ARCH --efi-directory=/efi --recheck</code></pre>
<h4 id="vygenerujte-konfiguracni-soubor-grub">Vygenerujte konfigurační soubor GRUB</h4>
<pre><code>grub-mkconfig -o /boot/grub/grub.cfg</code></pre>
<h3 id="doporuceno-vlozte-soubor-s-klicem-do-initramfs">(doporučeno) Vložte soubor s klíčem do initramfs</h3>
<p>To se provádí proto, abyste nemuseli zadávat heslo pro dešifrování dvakrát (jednou pro GRUB, jednou pro initramfs.)</p>
<h4 id="vytvorte-soubor-s-klicem-a-pridejte-jej-jako-klic-luks">Vytvořte soubor s klíčem a přidejte jej jako klíč LUKS</h4>
<pre><code>mkdir /root/secrets &amp;&amp; chmod 700 /root/secrets
head -c 64 /dev/urandom &gt; /root/secrets/crypto_keyfile.bin &amp;&amp; chmod 600 /root/secrets/crypto_keyfile.bin
cryptsetup -v luksAddKey -i 1 /dev/nvme0n1p2 /root/secrets/crypto_keyfile.bin</code></pre>
<h4 id="pridejte-soubor-s-klicem-do-obrazu-initramfs">Přidejte soubor s klíčem do obrazu initramfs</h4>
<pre><code>nvim /etc/mkinitcpio.conf</code></pre>
<pre><code>FILES=(/root/secrets/crypto_keyfile.bin)</code></pre>
<h4 id="znovu-vytvorte-obraz-initramfs-2">Znovu vytvořte obraz initramfs</h4>
<pre><code>mkinitcpio -P</code></pre>
<h4 id="nastavte-parametry-jadra-pro-odemknuti-oddilu-luks-pomoci-souboru-s-klicem-v-encrypt-hook">Nastavte parametry jádra pro odemknutí oddílu LUKS pomocí souboru s klíčem v <code>encrypt</code> hook</h4>
<pre><code>/etc/default/grub</code></pre>
<pre><code>GRUB_CMDLINE_LINUX=&quot;... cryptkey=rootfs:/root/secrets/crypto_keyfile.bin&quot;</code></pre>
<h4 id="znovu-finalne-vygenerujte-konfiguracni-soubor-grub">Znovu finálně vygenerujte konfigurační soubor GRUB</h4>
<pre><code>grub-mkconfig -o /boot/grub/grub.cfg</code></pre>
<h4 id="omezit-bootopravneni">Omezit <code>/boot</code>oprávnění</h4>
<pre><code>chmod 700 /boot</code></pre>
<p>Instalace je nyní dokončena. Ukončete chroot a restartujte počítač.</p>
<pre><code>exit
reboot</code></pre>
<h2 id="po-instalaci-post-instalacni-kroky">Po instalaci (post-instalační kroky)</h2>
<p>Váš systém by nyní měl být plně nainstalován, spustitelný a plně zašifrovaný.</p>
<p>Pokud jste soubor s klíčem vložili do obrazu initramfs, měl by k odemknutí do systému počítač vyžadovat vaše heslo pro dešifrování pouze jednou <b>před GRUB tabulkou</b>. Narozdíl od archinstall skriptu, toto je daleko více bezpečnostní zabezpečení.</p>
<p>Pro další standardní kroky po instalaci Arch Linuxu <a href="https://wiki.archlinux.org/index.php/General_recommendations">RTFM</a> .</p>
<h3 id="zrychleni-desifrovani-luks-v-grub-po-zadani-hesla">Zrychlení dešifrování LUKS v GRUB po zadání hesla</h3>
<p><b>Upozornění:</b> Před pokračováním v této části se ujistěte, že rozumíte důležitosti hesel s vysokou entropií. Informace o tom, jak generovat bezpečná hesla, naleznete na Wikipedii: <a href="https://cs.wikipedia.org/wiki/S%C3%ADla_hesla">Síla hesla</a>.</p>
<p>Při bootování může GRUB v některých případech trvat dlouho, než bude ověřeno heslo. To může být způsobeno vysokým počtem iterací PBKDF, který můžete zkontrolovat následovně:</p>
<pre><code>cryptsetup luksDump /dev/nvme0n1p2</code></pre>
<p>Problém je v tom, že iterace byly vypočteny pro daný <code>keyslot</code> při normálním běhu počítače (nikoliv při bootu), když byl klíč přidán, aby byla zajištěna rovnováha mezi dostatečně vysokou úrovní pro ochranu před útoky hrubou silou a dostatečně nízkou, aby umožnila rychlé odvození klíče pomocí odhadu schopností vašeho počítače. Když se však GRUB spustí, <b>nemusí mít</b> k dispozici stejné výpočetní zdroje, a proto je <b>výrazně pomalejší</b> .</p>
<p>Pokud vaše <b>heslo poskytuje dostatečnou entropii,</b> aby samo čelilo běžným útokům, můžete toto číslo snížit:</p>
<pre><code>cryptsetup luksChangeKey --key-slot 1 --pbkdf-force-iterations 1000 /dev/nvme0n1p2</code></pre>
<p>Podle RFC 2898 se doporučuje minimálně 1000 iterací, ale pokud je to možné, měli byste se zaměřit na vyšší hodnoty (náklady pro útočníka a také čas na odvození klíče lineárně škálují).</p>
<p><b>Tip:</b> GRUB zkouší aktivované klíčové sloty postupně. Při přidávání klíčů se <code>--key-slot</code>lze použít k explicitnímu zadání klíčového slotu.</p>
<h3 id="doporuceno-secure-boot-odolavani-proti-utokum-evil-maid">(doporučeno) Secure Boot – Odolávaní proti útokům Evil Maid</h3>
<p>Se zašifrovaným zaváděcím oddílem nikdo nemůže vidět ani upravit váš obraz jádra nebo initramfs, ale stále byste byli zranitelní vůči <a href="https://www.schneier.com/blog/archives/2009/10/evil_maid_attac.html">útokům Evil Maid</a> .</p>
<p>Jedním z možných řešení je použití UEFI Secure Boot. Zbavte se předinstalovaných klíčů Secure Boot (opravdu nechcete věřit Microsoftu a OEM), zaregistrujte <a href="https://wiki.archlinux.org/index.php/Secure_Boot#Using_your_own_keys">si své vlastní klíče Secure Boot</a> a podepište zavaděč GRUB svými klíči. Evil Maid by nemohla zavést upravený zavaděč (nepodepsaný vašimi klíči) a útoku je zabráněno.</p>
<h4 id="vytvareni-klicu">Vytváření klíčů</h4>
<p>Následující kroky by měly být provedeny pod <code>root</code>uživatelem s doprovodnými soubory uloženými v <code>/root</code>adresáři.</p>
<h5 id="nainstalujte-efitools">Nainstalujte <code>efitools</code></h5>
<pre><code>pacman -S efitools</code></pre>
<h5 id="vytvorte-guid-pro-identifikaci-vlastnika">Vytvořte GUID pro identifikaci vlastníka</h5>
<pre><code>uuidgen --random &gt; GUID.txt</code></pre>
<h5 id="platformovy-klic">Platformový klíč</h5>
<p>CN je běžné jméno, které lze zapsat jako cokoliv.</p>
<pre><code>openssl req -newkey rsa:4096 -nodes -keyout PK.key -new -x509 -sha256 -days 3650 -subj &quot;/CN=my Platform Key/&quot; -out PK.crt
openssl x509 -outform DER -in PK.crt -out PK.cer
cert-to-efi-sig-list -g &quot;$(/dev/null | /usr/bin/grep -q &quot;signature certificates&quot;; then /usr/bin/sbsign --key /root/db.key --cert /root/db.crt --output {} {}; fi&#39; \ ;
Depends = sbsigntools
Depends = findutils
Depends = grep</code></pre>
<pre><code>/etc/pacman.d/hooks/98-secureboot-grub.hook</code></pre>
<pre><code>[Trigger]
Operation = Install
Operation = Upgrade
Type = Package
Target = grub

[Action]
Description = Signing GRUB for SecureBoot
When = PostTransaction
Exec = /usr/bin/find /efi/ -name &#39;grubx64*&#39; -exec /usr/bin/sh -c &#39;if ! /usr/bin/sbverify --list {} 2&gt;/dev/null | /usr/bin/grep -q &quot;signature certificates&quot;; then /usr/bin/sbsign --key /root/db.key --cert /root/db.crt --output {} {}; fi&#39; \ ;
Depends = sbsigntools
Depends = findutils
Depends = grep</code></pre>
<h4 id="zaregistrujte-klice-do-firmwaru">Zaregistrujte klíče do firmwaru</h4>
<h5 id="zkopirujte-vse-cer-esl-authdo-systemoveho-oddilu-efi">Zkopírujte vše <code>*.cer</code>, <code>*.esl</code>, <code>*.auth</code>do systémového oddílu EFI</h5>
<pre><code>cp /root/*.cer /root/*.esl /root/*.auth /efi/</code></pre>
<h5 id="spustte-nastroj-pro-nastaveni-firmwaru-uefi-casto-nespravne-oznacovany-jako-bios">Spusťte nástroj pro nastavení firmwaru UEFI (často nesprávně označovaný jako „BIOS“)</h5>
<pre><code>systemctl reboot --firmware</code></pre>
<p>Firmware má různá rozhraní, <a href="http://www.rodsbooks.com/efi-bootloaders/controlling-sb.html#setuputil">viz Výměna klíčů pomocí nástroje pro nastavení firmwaru</a>, pokud jsou následující pokyny nejasné nebo neúspěšné.</p>
<h5 id="nastavte-typ-os-na-windows-uefi-mode">Nastavte Typ OS na <code>Windows UEFI mode</code></h5>
<p>Najděte možnosti Secure Boot a nastavte typ OS na <code>Windows UEFI mode</code>(Ano, i když nejsme na Windows.) To může být nezbytné pro funkci Secure Boot.</p>
<h5 id="vymazte-predinstalovane-klice-secure-boot">Vymažte předinstalované klíče Secure Boot</h5>
<p>Pomocí Key Management vymažte všechny předinstalované klíče Secure Boot (Microsoft a OEM).</p>
<p>Vymazáním všech klíčů Secure Boot vstoupíte do režimu nastavení (takže si můžete zaregistrovat své vlastní klíče Secure Boot).</p>
<h5 id="nastavte-nebo-pripojte-nove-klice">Nastavte nebo připojte nové klíče</h5>
<p>Klíče musí být nastaveny v následujícím pořadí:</p>
<pre><code>db =&gt; KEK =&gt; PK</code></pre>
<p>To je způsobeno tím, že některé systémy ukončí režim nastavení, jakmile <code>PK</code>je zadáno.</p>
<p>Nenahrávejte výchozí tovární nastavení, místo toho procházejte dostupné souborové systémy při hledání souborů dříve zkopírovaných do systémového oddílu EFI.</p>
<p>Vyberte některý z formátů. Firmware by vás měl vyzvat k zadání typu ( <i>Poznámka:</i> názvy typů se mohou mírně lišit.)</p>
<pre><code>*.cer is a Public Key Certificate
*.esl is a UEFI Secure Variable
*.auth is an Authenticated Variable</code></pre>
<p>Určitý firmware (například můj vlastní) vyžaduje použití souborů *.auth. Vyzkoušejte různé, dokud nebudou fungovat.</p>
<h5 id="nastavte-heslo-spravce-administratora-uefi">Nastavte heslo správce (administrátora) UEFI</h5>
<p>V nastavení zabezpečení musíte také nastavit heslo správce (administrátora) firmwaru UEFI, takže nikdo nemůže jednoduše spustit nástroj pro nastavení UEFI a vypnout zabezpečené spouštění.</p>
<p>Nikdy byste neměli používat stejné heslo správce firmwaru UEFI jako heslo pro šifrování, protože na některých starých přenosných počítačích lze heslo správce obnovit jako prostý text z čipu EEPROM.</p>
<h5 id="ukoncete-a-ulozte-zmeny">Ukončete a uložte změny</h5>
<p>Jakmile načtete všechny tři klíče a nastavíte heslo správce, stiskněte F10 pro ukončení a uložení změn.</p>
<p>Pokud bylo vše provedeno správně, měl by se při restartu objevit váš zavaděč.</p>
<p></p>
<h4 id="zkontrolujte-zda-byl-povolen-secure-boot">Zkontrolujte, zda byl povolen Secure Boot</h4>
<pre><code>od -An -t u1 /sys/firmware/efi/efivars/SecureBoot-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX</code></pre>
<p>Znaky označené XXXX se liší stroj od stroje. Chcete-li s tím pomoci, můžete použít tab doplňování nebo seznam proměnných EFI.</p>
<p>Pokud je povoleno Secure Boot, tento příkaz vrátí 1 jako poslední celé číslo v seznamu pěti hodnot, například:</p>
<pre><code>6  0  0  0  1</code></pre>
<p>Pokud bylo aktivováno Secure Boot a bylo nastaveno heslo správce UEFI, můžete se nyní považovat za chráněného před útokům Evil Maid!</p>
<h3 id="docker-pouzivany-s-btrfs-souborovym-systemem">Docker používaný s BTRFS souborovým systémem</h3>
<p>Seznámení se s dockerem na Arch Linuxu na wiki <a href="https://wiki.archlinux.org/title/docker">Docker on Arch</a>.</p>
<p>BTRFS je idální pro správu docker snapshotů. Pro nastavení postupujte podle <a href="https://docs.docker.com/storage/storagedriver/btrfs-driver/">originálního článku</a>.</p>
<p>Celé prostředí máme pro dockerizaci již nachystané. Mělo by stačit nastavit pouze v <code>/etc/docker/daemon.json</code></p>
<pre><code>{
  &quot;storage-driver&quot;: &quot;btrfs&quot;
}</code></pre>
<h3 id="kompletni-video-navod">Kompletní video návod</h3>
<p><a href="https://www.youtube.com/watch?v=YdqGsv3tmN4">https://www.youtube.com/watch?v=YdqGsv3tmN4</a></p>
<h3 id="odkazy-na-zdroje">Odkazy na zdroje</h3>
<ul><li><b>HLAVNÍ ČLÁNEK:</b> <a href="https://gist.github.com/huntrar/e42aee630bee3295b2c671d098c81268">https://gist.github.com/huntrar/e42aee630bee3295b2c671d098c81268</a></li></ul>
<ul><li><a href="https://www.nishantnadkarni.tech/posts/arch_installation/">https://www.nishantnadkarni.tech/posts/arch_installation/</a></li></ul>
<ul><li><a href="https://www.dwarmstrong.org/archlinux-install/">https://www.dwarmstrong.org/archlinux-install/</a></li></ul>
<ul><li><a href="https://btrfs.readthedocs.io/en/latest/btrfs-man5.html#compression">https://btrfs.readthedocs.io/en/latest/btrfs-man5.html#compression</a></li></ul>
<ul><li><a href="https://github.com/Szwendacz99/Arch-install-encrypted-btrfs">https://github.com/Szwendacz99/Arch-install-encrypted-btrfs</a></li></ul>
<ul><li><a href="https://gist.github.com/mruiz42/83d9a232e7592d65d953671409a2aab9">https://gist.github.com/mruiz42/83d9a232e7592d65d953671409a2aab9</a></li></ul>
<ul><li><a href="https://wiki.archlinux.org/title/btrfs">https://wiki.archlinux.org/title/btrfs</a></li></ul>
<ul><li><a href="https://wiki.archlinux.org/title/dm-crypt/Encrypting_an_entire_system">https://wiki.archlinux.org/title/dm-crypt/Encrypting_an_entire_system</a></li></ul>
<ul><li><a href="https://wiki.tnonline.net/w/Btrfs/Compression">https://wiki.tnonline.net/w/Btrfs/Compression</a></li></ul>]]></description>
  <category>instalace</category><category>btrfs</category><category>luks</category><category>Návody</category><category>jekyll</category>
</item>
<item>
  <title>Archinstall skript pro LUKS a BTRFS Arch Linux instalaci</title>
  <link>https://arch-linux.cz/posts/2022/archinstall-skript-pro-luks-a-btrfs-arch-linux-instalaci/</link>
  <guid isPermaLink="true">https://arch-linux.cz/posts/2022/archinstall-skript-pro-luks-a-btrfs-arch-linux-instalaci/</guid>
  <pubDate>Sun, 04 Dec 2022 00:00:00 +0100</pubDate>
  <description><![CDATA[<p>Velmi rychlá Arch Linux instalace s <code>archinstall</code> skriptem. Průvodce arch instalací základního šifrování celého disku LUKS a Btrfs (B-tree file system) copy-on-write souborový systém pro GNU/Linux. Rychlé a okamžité použití pro laptopy a systémy s vysokým stupněm zabezpečení a zálohovacím mechanismem.</p>
<p>Video návod začíná přípravou Virtualboxu pro Arch instalaci. Po úspěšném nabootování Arch systému z ISO souboru návod pokračuje instalací pomocí <code>archinstall</code> skriptu, který je již standardizovanou součástí instalačního média. Archinstall skript představuje rychlou a jednoduchou možnost instalace čistého Arch systému se zvoleným profilem pro další pokračování post-instalačních kroků. Uvedený video návod postupně prochází jednotlivé kroky instalace a popisuje důležité části a význam instalačního procesu. Návod je primárně soustředěn na Btrfs souborový systém s enkryptováním disku, avšak je samozřejmě možné jej použít i pro zjednodušené varianty instalačních kroků.</p>
<p>Další skvělý návod na instalaci Arch Linuxu od <a href="https://github.com/raven2cz">raven2cz</a></p>
<p><a href="https://www.youtube.com/watch?v=3tF8Be0E3xc">https://www.youtube.com/watch?v=3tF8Be0E3xc</a></p>]]></description>
  <category>instalace</category><category>btrfs</category><category>luks</category><category>Návody</category><category>jekyll</category>
</item>
<item>
  <title>Správce hesel Bitwarden</title>
  <link>https://arch-linux.cz/posts/2022/spravce-hesel-bitwarden/</link>
  <guid isPermaLink="true">https://arch-linux.cz/posts/2022/spravce-hesel-bitwarden/</guid>
  <pubDate>Fri, 02 Dec 2022 00:00:00 +0100</pubDate>
  <description><![CDATA[<h3 id="co-je-bitwarden">Co je Bitwarden</h3>
<p><a href="https://bitwarden.archoslinux.cz/#/login">Bitwarden</a> je všestranný správce hesel s otevřeným zdrojovým kódem, který může být použit nejen jednotlivci k ukládání jejich kritických a důležitých informací, ale také jej mohou nasadit podniky na všech úrovních. <a href="https://bitwarden.archoslinux.cz/#/login">Bitwarden</a> lze stáhnout na mobilní telefony se systémem iOS i Android a poskytuje spoustu rozšíření prohlížeče pro automatické vyplňování hesel. Je to jeden z nejlepších open source správců hesel.</p>
<p>Nejen to, <a href="https://bitwarden.archoslinux.cz/#/login">Bitwarden </a>také poskytuje webové a desktopové aplikace spolu s rozhraním příkazového řádku, díky kterému je jedním z nejlepších multiplatformních správců hesel, které pokrývají všechny klientské aplikace. Můžete jej snadno použít jako desktopovou aplikaci pro macOS, Linux a Windows.</p>
<p>Pokud jde o ochranu informací uložených na <a href="https://bitwarden.archoslinux.cz/#/login">Bitwarden</a>, správce hesel používá 256bitový šifrovací protokol AES, který znemožňuje hackování a vloupání. Kromě toho jsou všechny informace uloženy v zašifrovaném trezoru, ke kterému má vlastník přístup pouze prostřednictvím hlavního klíče.</p>
<h3 id="vytvorte-si-ucet-bitwarden">Vytvořte si účet Bitwarden</h3>
<p>Na námi hostovaný <a href="https://bitwarden.archoslinux.cz/#/login"> Bitwarden</a> se můžete registrovat <a href="https://bitwarden.archoslinux.cz/#/register">zde</a></p>
<p>Na obrazovce Vytvořit účet vyplňte všechna pole (Nápověda k hlavnímu heslu je volitelná) a vyberte <b>Odeslat</b> .</p>
<p>Vytvořte si účet</p>
<p>Jakmile si vytvoříte svůj účet, požádejte Bitwarden, aby vám poslal ověřovací e-mail tak, že se přihlásíte do svého <a href="https://bitwarden.archoslinux.cz/#/login">webového trezoru</a> a vyberete tlačítko <b>Ověřit e-mail</b> .</p>
<h3 id="zacnete-s-web-vault">Začněte s Web Vault</h3>
<p>Webový trezor <a href="https://bitwarden.archoslinux.cz/#/login">Bitwarden</a> poskytuje osobním uživatelům a organizacím nejbohatší prostředí <a href="https://bitwarden.archoslinux.cz/#/login">Bitwarden</a>. Mnoho důležitých funkcí, jako je nastavení dvoufázového přihlášení nebo správa organizace , musí být prováděno z webového trezoru.</p>
<p>Když se poprvé přihlásíte do svého webového trezoru, dostanete se do <b>zobrazení </b> <b>Trezoru</b>. V tomto prostoru budou uvedeny všechny položky trezoru, včetně přihlašovacích údajů, karet, identit a bezpečnostních poznámek .</p>
<p>Na předchozím snímku obrazovky se v <b>zobrazení Trezor</b>u zobrazuje <b>Všechny položky</b> v <b>mém trezoru</b> . Uživatelé organizací zde budou mít uvedeny další trezory. Pomocí <b>sloupce Filtry</b> můžete uspořádat úschovnu do <b>Oblíbených</b> a <b>Složek</b> .</p>
<p>Začněme nastavením nové složky a přidáním nového přihlašovacího jména:</p>
<p>Chcete-li vytvořit složku:</p>
<ul><li>Vyberte ikonu  <b>Přidat</b> vedle části Složky ve sloupci Filtry.</li></ul>
<ul><li>Zadejte název (např. <code>Sociální sítě</code>) pro vaši složku a vyberte <b>Uložit</b> .</li></ul>
<h3 id="pridejte-polozku-prihlaseni">Přidejte položku přihlášení</h3>
<p>Chcete-li přidat novou položku přihlášení:</p>
<ul><li>Vyberte tlačítko  <b>Přidat položku</b> .</li></ul>
<ul><li>Z rozevírací nabídky vyberte možnost <b>Přihlásit</b> (pokud místo toho přidáváte kartu, identitu nebo zabezpečenou poznámku, vyberte tuto možnost).</li></ul>
<ul><li>Zadejte <b>název</b> položky. Názvy vám pomohou snadno identifikovat položky ve vašem trezoru, proto dejte této položce rozpoznatelnou (např. <code>Mastodon Arch Linux</code>).</li></ul>
<ul><li>Zadejte své <b>uživatelské jméno</b> a <b>heslo</b> . Prozatím zadejte své stávající heslo. vám jej pomůžeme nahradit silnějším heslem později.</li></ul>
<ul><li>Do pole <b>URI 1</b> zadejte adresu URL webové stránky (např. <code><a href="https://mastodon.arch-linux.cz">https://mastodon.arch-linux.cz</a></code>). Pokud nevíte, jakou adresu URL použít, přejděte na přihlašovací obrazovku webové stránky a zkopírujte ji z adresního řádku.</li></ul>
<ul><li>Z rozevíracího seznamu <b>Složka</b> vyberte název složky, do které chcete přidat tuto položku (např <code>Sociální sítě</code>složku, kterou jsme vytvořili dříve). Chcete -li tuto položku přidat mezi oblíbené, vyberte ikonu hvezdičky.</li></ul>
<ul><li>Klepnutím na <b>tlačítko Uložit</b> dokončíte přidávání této položky.</li></ul>
<h3 id="vygenerujte-si-silne-heslo">Vygenerujte si silné heslo</h3>
<p>Nyní, když je ve vašem trezoru uloženo nové přihlášení, vylepšete jeho zabezpečení nahrazením stávajícího hesla silnějším:</p>
<ul><li>Ve svém trezoru vyberte položku, kterou chcete zabezpečit.</li></ul>
<ul><li>Na nové kartě nebo okně otevřete odpovídající webovou stránku a přihlaste se ke svému účtu.</li></ul>
<ul><li>Na tomto webu přejděte do oblasti, kde můžete <b>změnit heslo</b> . Obvykle to najdete v <b>části Váš účet</b> , <b>Zabezpečení</b> , <b>Nastavení</b> přihlášení nebo <b>Nastavení přihlášení</b> .</li></ul>
<ul><li>Většina webových stránek vyžaduje nejprve zadání <b>aktuálního hesla</b> . Vraťte se do svého trezoru a vyberte ikonu <b>Kopírovat</b> vedle <b>pole Heslo</b> . Poté se vraťte na web a vložte jej do pole <b>Aktuální heslo</b> . Možná si staré heslo zapamatujete, ale je dobré si zvyknout heslo zkopírovat a vložit. Takto se budete přihlašovat, jakmile bude vaše heslo nahrazeno silnějším.</li></ul>
<ul><li>Vraťte se do svého trezoru a klikněte na ikonu  <b>Generovat</b> vedle <b>pole Heslo</b> . Budete dotázáni, zda chcete přepsat aktuální heslo, takže <b>výběrem Ano .</b> pokračujte Toto nahradí vaše <b>heslo</b> náhodně vygenerovaným silným heslem. Přesun z hesla jako <code>1234</code>na <code>x*wNvUpKagnv^5q9m74X</code> může zastavit hackera.</li></ul>
<ul><li>Zkopírujte své nové heslo pomocí stejné ikony  <b>Kopírovat</b> , kterou jste použili dříve, a vyberte tlačítko <b>Uložit</b> .</li></ul>
<ul><li>Vraťte se na druhý web a vložte své silné heslo do <b>Nové heslo</b> a <b>Potvrdit nové heslo .</b></li></ul>
<ul><li>Jakmile <b>uložíte</b> změnu hesla, máte nové heslo hotovo!</li></ul>
<pre><code>**tip**:  Nedělejte si starosti s přepsáním svého stávajícího hesla! Pokud se něco pokazí, Bitwarden udržuje **historii hesel** posledních pěti hesel pro každé přihlášení: ![View Password History]()</code></pre>
<h3 id="zabezpecte-svuj-trezor">Zabezpečte svůj trezor</h3>
<p>Nyní, když je váš trezor plný dat, pojďme podniknout kroky k jeho ochraně nastavením dvoufázového přihlášení. Dvoufázové přihlášení vyžaduje, abyste při přihlašování ověřili svou identitu pomocí dalšího tokenu, který je obvykle načten z jiného zařízení.</p>
<p>Existuje mnoho dostupných metod pro dvoufázové přihlášení, ale doporučenou metodou pro bezplatný účet Bitwarden je použití aplikace pro ověřování mobilních zařízení, jako je <a href="https://authy.com/">Authy</a> :</p>
<ul><li>Stáhněte si Authy do svého mobilního zařízení.</li></ul>
<ul><li>Ve svém webovém trezoru vyberte ikonu profilu a <b>účtu :</b> <b>vyberte Nastavení</b> z rozbalovací nabídky</li></ul>
<ul><li>Z <b>nabídky Nastavení účtu</b> vyberte stránku <b>Zabezpečení</b> a <b>kartu Dvoufázové přihlášení</b></li></ul>
<ul><li>Vyhledejte možnost <b>Authenticator App</b> a vyberte <b>Spravovat</b> : ![Manage Authenticator App]() Správa aplikace Authenticator Budete vyzváni k zadání hlavního hesla, abyste mohli pokračovat</li></ul>
<ul><li>Na mobilním zařízení otevřete Authy a klepněte na tlačítko  <b>Přidat účet</b> .</li></ul>
<ul><li>Naskenujte QR kód umístěný ve vašem webovém trezoru pomocí Authy. Po naskenování Authy zobrazí šestimístný ověřovací kód.</li></ul>
<ul><li>Zadejte šestimístný ověřovací kód do dialogového okna ve vašem webovém trezoru a vyberte tlačítko <b>Povolit</b> .</li></ul>
<ul><li>Klepnutím na <b>tlačítko Zavřít</b> se vraťte na obrazovku dvoufázového přihlášení a vyberte tlačítko <b>Zobrazit kód obnovení</b> . Váš obnovovací kód lze použít v případě, že ztratíte své mobilní zařízení. <b>Toto je kritický krok, který zajistí, že se nikdy nedostanete do svého trezoru</b> , takže ho nepřeskakujte!</li></ul>
<ul><li>Zadejte své hlavní heslo a kliknutím na <b>tlačítko Pokračovat</b> získejte kód pro obnovení. ![Example Recovery Code ]() Př</li></ul>
<p>Uložte si kód pro obnovení způsobem, který vám dává největší smysl. Věřte tomu nebo ne, vytištění kódu pro obnovení a jeho uložení na bezpečném místě je jedním z nejlepších způsobů, jak zajistit, aby kód nebyl zranitelný vůči krádeži nebo nechtěnému smazání.</p>]]></description>
  <category>bitwarden</category><category>Návody</category><category>Aplikace</category><category>jekyll</category>
</item>
<item>
  <title>Jak povolit dvoufaktorovou autentizaci na Mastodon</title>
  <link>https://arch-linux.cz/posts/2022/jak-povolit-dvoufaktorovou-autentizaci-na-mastodon/</link>
  <guid isPermaLink="true">https://arch-linux.cz/posts/2022/jak-povolit-dvoufaktorovou-autentizaci-na-mastodon/</guid>
  <pubDate>Fri, 25 Nov 2022 00:00:00 +0100</pubDate>
  <description><![CDATA[<p>Dvoufaktorové ověření nabízí přidaný stupeň ochrany přístupu k vašemu Mastodon účtu. Kromě samotného hesla  k účtu je při přístupu vyžadován také ověřovací klíč, který je zasílán na Vaše mobilní zařízení. Dvoufaktorové ověření zabraňuje neoprávněným uživatelům a zařízením v přístupu k vašemu účtu.</p>
<p>Chcete-li povolit 2FA na Mastodon, oficiální metoda je:</p>
<p><b>Nastavení &gt; Nastavení účtu &gt; Dvoufaktorové ověření &gt; Nastavit</b></p>
<p>Nyní vám bude nabídnut QR kód, který můžete naskenovat pomocí aplikace <a href="https://googleauthenticator.net/">Google Authenticator</a> nebo třeba pomocí u nás spravovaného správce hesel <a href="https://bitwarden.archoslinux.cz/#/login">Bitwarden</a></p>
<p>Nyní stačí v aplikaci <a href="http://bitwarden.archoslinux.cz/#/login">Bitwarden</a> stisknout tlačítko Autentizační klíč (TOTP) a naskenovat QR kód, uložte. Teď opište ověřovací kód do kolonky *<i>Kód pro dvoufázové ověření </i><b> a  již jen </b>zapnout**</p>
<p>Nyní máte dvoufázové ověřování zapnuté.  Ztratíte-li někdy přístup ke svému telefonu, můžete k získání přístupu k účtu použít jeden ze záložních kódů. <b>Uchovejte tyto kódy v bezpečí</b>..</p>]]></description>
  <category>mastodon</category><category>Návody</category><category>jekyll</category>
</item>
<item>
  <title>Jak opravit poškozený soubor historie zsh</title>
  <link>https://arch-linux.cz/posts/2022/jak-opravit-poskozeny-soubor-historie-zsh/</link>
  <guid isPermaLink="true">https://arch-linux.cz/posts/2022/jak-opravit-poskozeny-soubor-historie-zsh/</guid>
  <pubDate>Fri, 04 Nov 2022 00:00:00 +0100</pubDate>
  <description><![CDATA[<p>Občas můžete zjistit, že máte poškozený soubor historie zsh, který vám brání v použití příkazu <code>fc</code> nebo v prohledávání historie. Zde je návod, jak to opravit.</p>
<h3 id="poskozeny-soubor-historie-zsh">Poškozený soubor historie ZSH</h3>
<p>Pokud použijete <code><a href="http://www.zsh.org/">zsh</a></code> pro váš shell, velmi příležitostně můžete najít následující zprávu, která označuje poškozený soubor historie. To je obvykle po restartu.</p>
<pre><code>zsh: corrupt history file /home/george/.zsh_history</code></pre>
<p>Tím se zabrání vyhledávání zpět v historii pomocí <code>CTRL+R</code> a editaci předchozích příkazů pomocí <code><a href="https://shapeshed.com/unix-fc/">fc</a></code>.</p>
<h3 id="jak-to-opravit">Jak to opravit</h3>
<p>Chcete-li to opravit, spusťte následující příkazy</p>
<pre><code>cd ~
mv .zsh_history .zsh_history_bad
strings -eS .zsh_history_bad &gt; .zsh_history
fc -R .zsh_history</code></pre>
<p><a href="https://shapeshed.com/zsh-corrupt-history-file/">zdroj</a></p>]]></description>
  <category>zsh</category><category>Návody</category><category>jekyll</category>
</item>
<item>
  <title>Openbox- velikostně malý, rychlý window manager plně v souladu s ICCCM a EWMH</title>
  <link>https://arch-linux.cz/posts/2022/openbox-velikostne-maly-rychly-window-manager-plne-v-souladu-s-icccm-a-ewmh/</link>
  <guid isPermaLink="true">https://arch-linux.cz/posts/2022/openbox-velikostne-maly-rychly-window-manager-plne-v-souladu-s-icccm-a-ewmh/</guid>
  <pubDate>Sat, 21 May 2022 00:00:00 +0200</pubDate>
  <description><![CDATA[<h4 id="openbox-velikostne-maly-rychly-window-manager-plne-v-souladu-s-icccm-a-ewmh">Openbox - velikostně malý, rychlý window manager plně v souladu s ICCCM a EWMH</h4>
<p>V dalším díle seriálu Tondy Fischera, se podíváme na instalaci a nastavení správce oken Openbox.</p>
<p>Openbox je vysoce konfigurovatelný správce oken s rozsáhlou podporou standardů ICCCM a EWMH.</p>
<ul><li>Vizuální styl <code>*box</code> je dobře známý pro svůj minimalistický vzhled. Openbox používá vizuální styl <code>*box</code> a zároveň poskytuje větší počet možností pro vývojáře témat než předchozí implementace <code>*box</code>. Dokumentace k tématu popisuje celou řadu možností, které lze nalézt v Openbox tématech.</li></ul>
<ul><li>Openbox vám umožňuje přenést nejnovější aplikace mimo plnohodnotné desktopové prostředí. Většina moderních aplikací byla napsána s ohledem na GNOME a KDE. S podporou standardů freedesktop.org a pečlivým dodržováním předchozích standardů poskytuje Openbox prostředí, kde aplikace fungují tak, jak byly navrženy.</li></ul>
<ul><li>Openbox vám umožňuje změnit téměř každý aspekt vaší interakce s vaším desktopem a vymýšlet zcela nové způsoby, jak jej používat a ovládat. Pro ovládání oken to může být jako videohra. Ale Openbox může být také extrémně jednoduchý, protože je ve výchozím nastavení, což znamená, že může vyhovovat téměř každému. Openbox vám dává kontrolu, aniž byste museli dělat všechno.</li></ul>
<ul><li>Openbox vylepšuje desktopová prostředí. Spuštěním Openboxu v GNOME nebo KDE můžete spojit jejich snadnost a funkčnost se silou Openboxu. Když používáte Openbox, vaše plocha bude čistší a rychlejší a máte ji pod kontrolou.</li></ul>
<ul><li>Podívejte se na příručku Začínáme a změňte způsob správy pracovní plochy. Viz hlavní stránky <a href="http://openbox.org/wiki/Main_Page">openbox.org</a>.</li></ul>
<ul><li><b>Oficiální dokumentace Openboxu</b> je <a href="http://openbox.org/wiki/Help:Contents">zde</a>.</li></ul>
<h4 id="openbox-instalace">Openbox Instalace</h4>
<p>Prostudujte stránku <a href="https://wiki.archlinux.org/title/Openbox">Arch Wiki Openbox</a>. Přečtěte si podrobnosti o krocích instalace a komponentách OB.</p>
<pre><code>paru -S openbox ttf-dejavu ttf-liberation obfilebrowser
# Optional Dependencies
paru -S picom nitrogen tint2 polybar volctl clipmenu parcellite xfce4-notify</code></pre>
<p>Než začnete, upravte svůj <code>~/.config/openbox/autostart</code>, definujte své služby a aplikace, které budou použity s relací openboxu.</p>
<p>Výchozí nastavení Openboxu - použijte tyto příkazy</p>
<pre><code>$ mkdir -p ~/.config/openbox
$ cp -a /etc/xdg/openbox/ ~/.config/</code></pre>
<p>Pokud plánujete používat můj projekt openbox, postupujte podle pokynů v <a href="https://github.com/raven2cz/openbox-config">GitHub Openbox Project</a>.</p>
<pre><code>git clone git@github.com:raven2cz/openbox-config.git ~/.config/openbox</code></pre>
<p>Spouštěč openboxu je připraven v mém <code>.xinitrc</code>, který používáme v celé naší video sérii. Viz níže uvedený odkaz <code>.dotfiles</code> pro Github. Takže vše, co musíte udělat, je spustit <code>startx ~/.xinitrc openbox</code> nebo použít správce zobrazení k výběru <code>xinitrc-openbox</code> ze souborů mých sessions (relací) v adresáři <code>.root</code>.</p>
<h4 id="openbox-lego">Openbox Lego</h4>
<p>Nejlepší a rychlé čtení je <a href="https://wiki.archlinux.org/title/Openbox">Arch Wiki Openbox</a>, začněte od něj. Dokumentace k Openboxu je <a href="http://openbox.org/wiki/Help:Contents">zde</a>.</p>
<p>Můj příklad lega (sada komponentů) je následující:</p>
<ul><li><b>WM:</b> openbox-session s automatickým spuštěním a soubory prostředí</li></ul>
<ul><li><b>Kompositor:</b> picom</li></ul>
<ul><li><b>Bar:</b> polybar <a href="https://github.com/raven2cz/polybar-config">polybar-config</a></li></ul>
<ul><li><b>Conky:</b> <a href="https://github.com/raven2cz/dotfiles/tree/main/.config/conky/MX-CoreBlue">MX-CoreBlue</a></li></ul>
<ul><li><b>Menu:</b> static menu openbox, podpora generátorů a pipes menu, obfilebrowser</li></ul>
<ul><li><b>Navigace:</b> rofi, <a href="https://github.com/raven2cz/rofi-themes">rofi-themes</a></li></ul>
<ul><li><b>Wallpaper app:</b> nitrogen</li></ul>
<ul><li><b>Zvukový systém:</b> <a href="https://github.com/buzz/volctl">volctl</a></li></ul>
<ul><li><b>Notifikační služba:</b> xfce4-notify</li></ul>
<ul><li><b>Wallpaper:</b> <a href="https://github.com/raven2cz/public-wallpapers">public-wallpapers</a> - [tapeta openbox](<a href="https://github.com/raven2cz/public-wallpapers/blob/main/00046-">https://github.com/raven2cz/public-wallpapers/blob/main/00046-</a> openbox-1.jpg)</li></ul>
<p>Máte mnoho možností, jak vybrat různé lego. Máte-li k tomuto tématu další dotazy; Issue můžete vytvořit pro Github nebo o něm diskutovat na <a href="https://forum.arch-linux.cz/category/26/openbox">forum</a>.</p>
<h4 id="openbox-ergonomic-settings">Openbox Ergonomic Settings</h4>
<p>Všechny klávesové zkratky musí být přidány do souboru <code>~/.config/openbox/rc.xml</code> a pod nadpis ``. Ačkoli zde byl uveden stručný přehled, podrobnější vysvětlení klávesových zkratek lze nalézt na <a href="http://openbox/org">openbox.org</a>.</p>
<p>Klávesové zkratky lze přidat do konfiguračního souboru pomocí následující syntaxe:</p>
<pre><code>
  
    ...
  
</code></pre>
<p>Název akce pro spuštění externího příkazu je <code>Execute</code>. K definování externího příkazu, který se má provést, použijte následující syntaxi:</p>
<pre><code>
  my-command
</code></pre>
<p>Seznam všech dostupných akcí naleznete na <a href="http://openbox.org/wiki/Help:Actions">Openbox wiki</a>.</p>
<p>Kompletní ergonomická nastavení jsou připravena v mém <a href="https://github.com/raven2cz/openbox-config">GitHub Openbox Project</a> v <code>rc.xml</code>. Kompletní průvodce a manipulace je vysvětlena ve videu. Ergonomie odpovídá předchozí sérii videí pro ostatní WM.</p>
<h4 id="openbox-vykonna-menu">Openbox Výkonná Menu</h4>
<p>Hlavní předností <code>*box</code> jsou výkonná a kvalitní menu. Celé ovládání tohoto WM je založeno na nabídkách a menu.</p>
<p>V Openboxu je možné použít tři typy menu: <code>static</code>, <code>pipes (dynamické)</code> a <code>generátory (statické nebo dynamické)</code>. Mohou být také použity samostatně nebo v jakékoli kombinaci. Více podrobností v OB Docs a <a href="https://wiki.archlinux.org/title/Openbox#Menus">Arch Wiki</a>.</p>
<p>Pro náš příklad jsem použil aktualizovanou strukturu menu v souboru <code>menu.xml</code>. Kromě toho je zde použití menu pipes s aplikací <code>obfilebowser</code> pro procházení vaší domovské složky - aktualizujte soubor <code>menu.xml</code> nabídky a upravte jej podle vašich požadavků.</p>
<p><a href="https://www.youtube.com/watch?v=E2aQfZNbPF0&amp;t=7s">https://www.youtube.com/watch?v=E2aQfZNbPF0&amp;t=7s</a></p>
<h4 id="dulezite-odkazy">Důležité odkazy</h4>
<ul><li><a href="https://www.youtube.com/user/tondafischer/featured">Youtube Channel TUX: Svět Linuxu</a></li></ul>
<ul><li><a href="https://forum.arch-linux.cz/">Forum Arch Linux CZ</a> - naše české forum pro Arch!</li></ul>
<ul><li><a href="https://arch-linux.cz/">Arch Linux CZ</a> - spuštění web server pro Arch</li></ul>
<ul><li><a href="https://archlinux.org/">archlinux</a><a href="https://archlinux.org/">.org</a></li></ul>
<ul><li><a href="https://wiki.archlinux.org/">wiki.achlinux.org</a></li></ul>
<ul><li><a href="https://fishlive.org/en/blog-tech-art/arch">fishlive.org/blog</a></li></ul>
<ul><li><a href="https://github.com/raven2cz/tux">github/raven2cz/tux</a></li></ul>
<ul><li><a href="https://github.com/raven2cz/dotfiles">github/raven2cz/dotfiles</a></li></ul>
<ul><li><a href="https://github.com/raven2cz/public-wallpapers">raven2cz/public-wallpapers</a></li></ul>
<ul><li><a href="https://github.com/raven2cz/global-colorscheme">raven2cz/global-colorschemes</a></li></ul>]]></description>
  <category>openbox</category><category>Návody</category><category>jekyll</category>
</item>
<item>
  <title>KDE Plasma - Pracovní prostředí nové generace pro Linux</title>
  <link>https://arch-linux.cz/posts/2022/kde-plasma-pracovni-prostredi-nove-generace-pro-linux/</link>
  <guid isPermaLink="true">https://arch-linux.cz/posts/2022/kde-plasma-pracovni-prostredi-nove-generace-pro-linux/</guid>
  <pubDate>Sat, 30 Apr 2022 00:00:00 +0200</pubDate>
  <description><![CDATA[<p>English document variant <a href="https://github.com/raven2cz/tux/blob/main/220327-kde/kde-en.org">here</a>.</p>
<h3 id="kde-pracovni-prostredi-nove-generace-pro-linux">KDE - Pracovní prostředí nové generace pro Linux</h3>
<p>V dalším díle seriálu <a href="https://github.com/raven2cz">Tondy Fischera</a> si ukážeme instalaci grafického prostředí KDE.</p>
<p>Mocné, multiplatformní a pro všechny. Používejte software KDE pro brouzdání na webu, komunikaci s kolegy, přáteli a rodinou, spravování svých souborů, poslech hudby a sledování videí nebo pro kreativní a produktivní práci. Komunita KDE vyvíjí a udržuje více než 200 aplikací, které běží na kterémkoliv počítači s Linuxem a často i na jiných platformách.</p>
<p>Takto je představováno KDE na svých hlavních stránkách <a href="https://kde.org/cs/">kde.org</a>. Určitě lze souhlasit, že KDE patří mezi velmi dobrá plná desktopová prostředí. Společně s Gnome tvoří pár základních DE, které používají hlavní masy uživatelů GNU/Linux. Plně konfigurovatelné pomocí GUI s mnoha grafickými efekty pomocí kwin. Konfigurovatelnost tohoto DE je daleko značnější než zmiňovaný Gnome, který naopak má uživateli přinést lehkost a jednoducho použití bez nutných zdlouhavých nastavování.</p>
<p>O efektivitě práce, ergonomičnosti a snížení přehmatů na myš a zpět jsme již v tomto seriálu povídali mnohokrát. Každý kdo prošel tímto kurzem již ví, že efektivita se skrývá někde jinde a je potřeba se k ní postupně dopracovat. Samozřejmě je možné toto do určitého stavu dosáhnout i pomocí KDE a jeho schopností konfigurace. Pojďme se tedy podívat na triky a tipy, jak si KDE upravit z hlediska ergonomie a efektivity práce, rovněž umožnit použití KDE aplikací v ostatních DE a WM prostředích se správným nastavením a theme.</p>
<h3 id="instalace-kde">Instalace KDE</h3>
<p>Nejprve je potřeba KDE nainstalovat. KDE obsahuje tisíc balíčků, z toho důvodů je možné použít skupinu (group) nebo meta skupinu (meta). Rozdíl mezi tímto způsobem viz <a href="https://wiki.archlinux.org/title/Meta_package_and_package_group">meta package and package group</a>. Já zde použiji starší způsob s group, ale klidně použijte novější meta balík.</p>
<p>Za druhé je nutné instalovat skupinu KDE aplikací, které budete chtít používat, nebo nemusíte, záleží na Vás. Opět zde je již možnost group a meta balíku, nebo si vybrat pouze část z meta-balíku, kterou nainstalujete samostatně. V případě instalace waylandu je potřeba ještě instalovat podporu pro wayland. Zde již musím ale odkázat do důkladné přečtění arch wiki a závislé stránky wayland <a href="https://wiki.archlinux.org/title/KDE">Arch Wiki KDE</a></p>
<pre><code># egl-wayland just for Nvidia cards, not necessary for AMD
sudo pacman -S plasma kde-applications plasma-wayland-session eql-wayland
# next variants:
sudo pacman -S plasma-meta kde-applications-meta
sudo pacman -S plasma-meta kde-utilities-meta kde-network-meta kde-multimedia-meta</code></pre>
<p>.Spouštěč pro X11 a wayland je již připraven v mém <code>.xinitrc</code>, který používáme v celém našem seriálu. Viz dolní odkaz .dotfiles na Githubu. Stačí tedy pouze s příkazové řádky spustit <code>startx ~/.xinitrc kde</code>, nebo pomocí display manageru vybrat <code>xinitrc-kde</code> z mých sessions souborů v adresáři <code>.root</code>.</p>
<h3 id="qt5ct-a-kvantum-manager">Qt5ct a Kvantum Manager</h3>
<p>Pro plnou podoporu témat je nutné doinstalovat Kvantum Manager. Pro podporu KDE aplikací pro ostatní WM a DE je vhodné Kvantum Manager napojit na qt5ct a konfiguraci donastavit v Qt5 Config aplikaci.</p>
<pre><code>paru -S qt5ct kvantum

# Environment variables settings (e.g.in .xinitrc)
export QT_QPA_PLATFORMTHEME=qt5ct
export DESKTOP_SESSION=plasma
export XDG_CURRENT_DESKTOP=kde</code></pre>
<h3 id="pouziti-grafickych-temat">Použití grafických témat</h3>
<p>System Settings &gt; Global Theme &gt; Get New Global Themes &gt; Install <code>Layan</code>. Další možnosti <code>Arc Dark, Sweet-Mars, Nordic</code>. Je však ale nezbytné na google dohled příslušné theme (často github repository) a klonovat si jej, protože bude nutné naimportovat potřebnou část pro Kvantum Manager, bez toho se bohužel neobjedneme a toto není součástí standardní instalace v System Settings!</p>
<p>Přepnout globální schéma na <code>Layan</code>. Nyní již budeme moci přenastavit barvené schéma, fonty, ikony, windows dekorace atd., viz video pro detaily.</p>
<h3 id="prizpusobeni-zakladnich-komponent-pro-praci">Přizpůsobení základních komponent pro práci</h3>
<p>Nyní již můžeme plně nakonfigurovat veškeré komponenty KDE, aby vyhovovaly našim potřebám. Nebude nic přehánět, KDE lze konfigurovat velmi mocně, budeme se držet opět zlaté střední cesty, která navíc nebude ani tolik náchylná na možné chyby při dalších updates KDE, což bohužel bývá častá příčina najednou vzniklých problémů.</p>
<p>Přizpůsobíme:</p>
<ul><li>Hlavní panel a jeho komponenty</li></ul>
<ul><li>HiDpi a fonty</li></ul>
<ul><li>Pozadí</li></ul>
<ul><li>Desktopy pro práci</li></ul>
<h3 id="bismut-tiling-support-pro-kde">Bismut - Tiling Support pro KDE</h3>
<p><a href="https://github.com/Bismuth-Forge/bismuth">Bismit Github Link</a></p>
<p>Přidání podpory pro tiling (dlaždicové) uspořádání oken. Velmi pokročilý a flexiblní rozšíření KDE.</p>
<ul><li>System Settings &gt; Window Behaviour &gt; Focus &gt; <code>Focus follows mouse</code> (fokus okna následuje myš)</li></ul>
<ul><li>Window Management &gt; Window Tiling &gt; Enable window tiling (zaškrtnout), záložka Appearance (nahoře) &gt; Inner Gaps nastav na <code>10px</code></li></ul>
<ul><li>Shortcuts &gt; Window Tiling &gt; Push Active to Master Area nastav: <code>Meta + Shift + Return</code></li></ul>
<h3 id="ergonomicke-nastaveni-klavesovych-zkratek">Ergonomické nastavení klávesových zkratek</h3>
<p>Nejvíce změn. KDE není přípraveno na vhodné ovládání klávesnicí. Viz zejména video nahrávka.</p>
<ul><li>Shortcuts &gt; Kwin &gt; nastavit Close Window, Quick Tile Window (všechny směry), Maximize, Minimize, Fullscreen window (nastavit vše dle AwesomeWM viz minulé nahrávky)</li></ul>
<ul><li>Shortcuts &gt; KRunner &gt; přidat <code>Alt+Space</code> nebo <code>Meta+Space</code> (doporučeno Meta)</li></ul>
<ul><li>Shortcuts &gt; stiskni tlačítko Add Application &gt; přidat Konsole &gt; Konsole řádka nastavit <code>Alt+Return</code> nebo <code>Meta+Return</code> (doporučeno Meta)</li></ul>
<h3 id="uvahy-nad-moznymi-vylepsenimi">Úvahy nad možnými vylepšeními</h3>
<ul><li>KDE lze vylepšovat mnoha způsoby. Často velmi žádané nastavení je MacOS, kde je horní panel zároveň použit jako menu pro aplikace a aplikace tak nemají žádné menu, které je přehozeno do tohoto panelu. I toto KDE umožňuje.</li></ul>
<ul><li>Jakékoliv větší rozšíření nebo změna přináší potenciální problémy po upgrade KDE. Toto není AwesomeWM API a framework, který si můžete konfigurovat, již mnohokrát jsem se v minulosti setkal s tím, že KDE spadlo nebo celá funkcionalita přestala fungovat. Stabilita KDE je daleko horší pokud provádíte příliš mnoho customizací. Buďte tedy s tím opatrní a pokud chcete velké změny je lepší zvolit WM s programovými dovednostmi.</li></ul>
<ul><li>Při zvolení některých uživatelských komponent nebo dokonce témat může vzniknout silný performance problém, naposledy Dracula schéma snížilo rapidně animace a maximalizace oken, proto si vždy funkcionalitu nejprve ověřte na Breeze tématu a teprve potom použijte customized řešení pro porovnání.</li></ul>
<ul><li>Pozor na některé widgets. Celkově mnoho widgets je velmi zastaralých a tedy mohou mít silné performance dopady. Opět ověřte zátež na procesor, snižte taky časové cykly pro čtení hodnot.</li></ul>
<ul><li>Wayland vs X11. KDE je již plně připraveno na wayland. Mnoho uživatelů zejména hráčů přešlo na wayland. Původně jsem tuto nahrávku chtěl dělat čistě na waylandu, ale HiDpi 4K rozhodně není připraveno, mnoho drobných věcí nefunguje správně a problémy se základními aplikacemi. Hodně času jsem nad tím strávil, ale rozhodně toto nemohu zatím doporučit nováčkům. Toto se může rychle změnit za další “roky”.</li></ul>
<p><a href="https://www.youtube.com/watch?v=vclZ7RSdzoQ&amp;t=1718s">https://www.youtube.com/watch?v=vclZ7RSdzoQ&amp;t=1718s</a></p>
<h1 id="dulezite-odkazy">Důležité odkazy</h1>
<ul><li><a href="https://www.youtube.com/user/tondafischer/featured">Youtube Channel TUX: Svět Linuxu</a></li></ul>
<ul><li><a href="https://forum.arch-linux.cz/">Forum Arch Linux CZ</a> - naše české forum pro Arch!</li></ul>
<ul><li><a href="https://arch-linux.cz/">Arch Linux CZ</a> - spuštění web server pro Arch</li></ul>
<ul><li><a href="https://archlinux.org/">archlinux.org</a></li></ul>
<ul><li><a href="https://wiki.archlinux.org/">wiki.achlinux.org</a></li></ul>
<ul><li><a href="https://fishlive.org/en/blog-tech-art/arch">fishlive.org/blog</a></li></ul>
<ul><li><a href="https://github.com/raven2cz/tux">github/raven2cz/tux</a></li></ul>
<ul><li><a href="https://github.com/raven2cz/dotfiles">github/raven2cz/dotfiles</a></li></ul>
<ul><li><a href="https://github.com/raven2cz/public-wallpapers">raven2cz/public-wallpapers</a></li></ul>
<ul><li><a href="https://github.com/raven2cz/global-colorscheme">raven2cz/global-colorscheme</a></li></ul>]]></description>
  <category>KDE</category><category>Návody</category><category>jekyll</category>
</item>
<item>
  <title>AwesomeWM Ricing</title>
  <link>https://arch-linux.cz/posts/2022/awesomewm-ricing/</link>
  <guid isPermaLink="true">https://arch-linux.cz/posts/2022/awesomewm-ricing/</guid>
  <pubDate>Sat, 23 Apr 2022 00:00:00 +0200</pubDate>
  <description><![CDATA[<p>AwesomeWM patří k nejlepším window managerům s podporou vyššího programovacího jazyka Lua. V našem seriálu <a href="https://github.com/raven2cz">Tondy Fischera</a>  již máte dostatek zkušeností pro plný ricing pokročilého prostředí AwesomeWM.</p>
<p><a href="https://www.youtube.com/watch?v=FCxd5id77c4&amp;t=31s">https://www.youtube.com/watch?v=FCxd5id77c4&amp;t=31s</a></p>
<h2 id="awesome-ricing-pokrocila-konfigurace">Awesome Ricing - Pokročilá Konfigurace</h2>
<p>Nyní již můžeme přikročit k plné a pokročilé konfiguraci AwesomeWM. Cest je nekonečné množství. <b>Já jsem zvolil cestu pro jednoduchou údržbu, vysokou efektivitu práce a kvalitní grafický design, který nesníží performance systému</b>. Podobně jako u xfce v minulých dílech. Zde je navíc možné vše integrovat dohromady, jakoukoliv věc si přizpůsobit svému workflow a propojit WM s vašimi pracovními skripty a nástroji.</p>
<p>Vše, co tady bude probíráno je moje aktuální řešení problematiky. Je nutné pochopit, že ve chvíli, kdy máte framework awesomewm k dispozici, můžete si vše vytvořit podle vlastní představy, variant je tedy nekončné množství, toto je největší rozdíl od fixních WMs nebo DEs, které lze pouze omezeně konfigurovat.</p>
<h4 id="zaklad-dobreho-designu-a-dlouhodobeho-uspesneho-programovani">Základ dobrého designu a dlouhodobého úspěšného programování</h4>
<p>Úspěchem dobrého programování a nejlepšího designu jsou 3 věci:</p>
<ul><li>Jednoduchost a přehlednost</li></ul>
<ul><li>Vlastní knihovna / framework</li></ul>
<ul><li>Omezení a minimalismus třetích stran</li></ul>
<p>Vždy nejlepší řešení je to nejjednodušší. Je velmi obtížné se k němu dostat, protože lidé přemýšlí komplexně. Vždy dbejte na tom se k němu dostat a mít vše přehledné i pro další lidi, je to v podstatě zásada free open source.</p>
<p>Obecné věci, které používáte a určtiě budete používat i dále si ukládejte do svého frameworku a knihoven. Toto je nutný základ. Vlastní přehledný framework je naprostým základem pro každého programátora, ať už děláte v jakémkoliv jazyce. Správná správa balíčků a knihoven je základ, pouze takto lze se neustále zdokonalovat, vyvíjet a minimalizovat chyby, stabilizací frameworku.</p>
<p>Používání 3 stran je potřeba minimalizovat na rozumnou úroveň. Knihovny musí být otevřené, aktivní a opět jednoduché. Nikdy neberte nic komplikovaného. Vždy dejte přednost svému řešení, pokud je v časovém rámci. Pečlivě volte knihovny, které potom již velmi težce lze opouštět!</p>
<p>V našem případě je zde vytvořen základní lua balíček <code>fishlive</code>, který slouží k rozšíření frameworku awesome pro moje osobní potřeby a přístupy. <b>Vytvořte si svůj vlastní.</b></p>
<h2 id="pattern-mvc-model-view-controller">Pattern MVC - Model, View, Controller</h2>
<p>Tento návrhový vzor umožňuje rozdělit funkcionalitu do 3 základních celků, které mezi sebou navzájem komunikují. Jeho nespornou výhodou je oddělení business logic od grafického zpracování a doménové vrstvy. Stav aplikace je držen v modelu, který je zpravováván controllerem, ve finále je předán model komponentě view, která jej zobrazí. Pro frontend je toto základ, kdy views může být celá řada, business logiky mají různou implementaci a je jednoduché udržovat a zprovávvat doménové objekty v rámci modelu i zcela jiným procovním teamem. Tento pattern je již starší, takže existuje řada modifikací a pokročilých nápadů, které jej doplňují, nicméně základní myšlenka zůstavá.</p>
<p>My si tento pattern půjčíme a pomocí něj si myšlenkově upravíme defaultní <code>rc.lua</code>, který již používáte z předchozí nahrávky. Defaultní konfigurace je tvořena pouze jedním konfiguračním souborem <code>rc.lua</code> a doplňkovým souborem <code>theme.lua</code>, která umoňuje záměnu dle zvoleného theme. Myšlenka je správná, ale implementace je nevhodná. Brzy zjistíte, že jakákoliv větší grafická úprava zasahuje zejména do <code>rc.lua</code>, neboť je velmi nekvalitně odděleno řízení controller a view. Naše první kroky tedy musí nutně vést k základnímu oddělení controller a model-view části.</p>
<p>Provedeme zjednodušení na controller část a model-view část. Stav systému/grafického prostředí necháme držet ve vhodných sdílených lua tabulkách, které jsou sdíleny mezi oběma částmi. View část musíme nutně oddělit od <code>rc.lua</code>, kde ponecháme striktně pouze controller.</p>
<h3 id="model-view-themes-theme-lua"><b>Model-View</b> - themes/…/theme.lua</h3>
<p>část je dobré rozdělit si na 3 základní podčásti:</p>
<ul><li><b>View Common Libs</b> - použitelné části, které budeme používat i dalších našich themes a views, toto přesuneme do vlastní lua knihovny</li></ul>
<ul><li><b>View Color Schemes</b> - barevná schémata, která lze aplikovat na naše views a která jsou rovněž obecná.</li></ul>
<ul><li><b>View Theme</b> - specifická část pro každé vaše jednotlivé theme. Definice a konfigurace všech grafických komponent a jejich chování, aplikace základních view coomon libs a color schemat do těchto komponent. Tato třetí část je jako jediná definována vždy od začátku pro každé vaše nové theme.</li></ul>
<h4 id="view-common-libs">View Common Libs</h4>
<p>Tato knihovna byla založena a uložena v adresáři <code>~/.config/awesome/fishlive</code>. Obsahuje colorschemes, nové layouts, wallpaper různorodá ovládání, widgety a utility.</p>
<h4 id="view-color-schemes">View Color Schemes</h4>
<p>Jsou zavedena pomocí vytvořeného příkazu <code>local theme = fishlive.colorscheme.default</code>, který do modelu/tabulky <code>theme</code> nastaví všechny důležité barvy, základní proměnné pro grafické view pro zvolené poslední barevné schéma, které lze dynamicky měnit.</p>
<h4 id="view-theme">View Theme</h4>
<p>Je uloženo v každém <code>theme.lua</code> souboru. Tento soubor mám principiálně tvořen touto strukturou:</p>
<ul><li><code>theme = fishlive.colorscheme.default</code> Defaultní naplnění modelu daným barevných schématem a přípravou atributů modelu</li></ul>
<ul><li><code>model attribute settings</code> Další specifické nastavení modelu dle zvoleného theme, okraje, fonty, notifikační události, taglist, layouts, menu</li></ul>
<ul><li><code>wallpaper support</code> Nastavení adresářů a základních atributů pro ovládání wallpapers v awesomewm</li></ul>
<ul><li><code>widget declaration</code> Vytvoření instanací widgetů a jejich specifické nakonfigurování do wibox grafických prvků, které lze umístit do prostředí</li></ul>
<ul><li><code>menu a application launcher declaration</code> Deklarace grafické části menu dle modelu a controlleru</li></ul>
<ul><li><code>screen.connect_signal(request:desktop_decoration)</code> Hlavní funkce, která provádí zavádění a hlavní činnost každého theme při jeho inicializačním procesu. Další body jsou již součástí tohoto procesu, volání této funkce, listenera.</li></ul>
<ul><li><code>tags and layout settings</code> Nastavení tagů a layotů, taglistu pro dané theme</li></ul>
<ul><li><code>tasklist configuration</code> Nastavení tasklistu pro zobrazování aktivně běžících aplikací systému</li></ul>
<ul><li><code>main panel configuration</code> Sestavení hlavního top panelu ze všech wiboxes, taglistu, tasklistu, systray apod.</li></ul>
<ul><li><code>naughty configuration</code> Nastavení notifikačních událostí a notification center a error handling support</li></ul>
<ul><li><code>wallpaper handling</code> Nastavení wallpaper ovládání a propojení s controllerem. V mém případě mám rád wallpapers, takže mám i velmi silnou podporu vytvořenou v awesomewm.</li></ul>
<h3 id="controller-rc-lua"><b>Controller</b> - rc.lua</h3>
<p>je možné taky rovněž dělit na další celky. Nicméně já mám v tomto ohledu rád minimalismus a lepší údržbu, neměl jsem tedy důvod tento soubor rozdělovat, naopak jej strukturalizuji pomoci folding sekcí a používám jednotlivé listenery, které awesome API nabízí k oddělení jednotlivých funkcionálních bloků. Soubor je tedy pořád jeden <code>rc.lua</code>, obsahuje však pouze vše co není grafika nebo grafická komponenta. Obsahuje tedy veškerou business logiku a workflow. Konkrétně obsahuje:</p>
<ul><li><code>naughty.connect_signal(request:display_error)</code> Error handling (zpracování výjimek a chyb v awesome a spojených aplikacích)</li></ul>
<ul><li><code>modkey, terminal, editor, menus</code> Definice základních proměnných pro základní klávesy, terminaly, editory, menu modely</li></ul>
<ul><li><code>tag.connect_signal(request:default_layouts)</code> Definice základních layouts, které budete používat</li></ul>
<ul><li><code>beautiful.init</code> Výběr model-view (theme), které bude napojedno a zobrazováno</li></ul>
<ul><li><code>awful.mouse.append_global_mousebindings</code> Nadefinování myších událostí a chování myši</li></ul>
<ul><li><code>awful.keyboard.append_global_keybindings</code> Definice globálních keybindings pro váš systém, rozděleno dle kategorií a účelu (folding style a separátní listeners)</li></ul>
<ul><li><code>client.connect_signal(request:default_keybindings)</code> Clientská konfigurace keybindings pro jednotlivá zobrazovaná okna (client = běžící aplikace v okně)</li></ul>
<ul><li><code>ruled.client.connect_signal(&quot;request:rules&quot; ...)</code> Definice pravidel (rules) pro zobrazování aplikací, druhů aplikací a reakce oken na speciální events</li></ul>
<ul><li><code>special connect_signal events for specific handling</code> Poslech dalších několik speciálních událostí pro specifické změny v awesomewm prostředí. Patří sem titlebars (horní lišta na okně), zpracování událostí, další chování myši apod.</li></ul>
<ul><li><code>awful.spawn.with_shell(&quot;~/.config/awesome/autorun.sh&quot;)</code> Poslední částí <code>rc.lua</code> souboru je spuštění vašeho <code>autorun.sh</code> skriptu pro aplikace, služby a další přednastavení prostředí, ve kterém awesomewm běží.</li></ul>
<h2 id="awesomewm-multicolor-theme-instalace">AwesomeWM Multicolor Theme Instalace</h2>
<p>Demostraci principů si předvedeme na mém github projektu <a href="https://github.com/raven2cz/awesomewm-config">raven2cz/awesomewm-config</a>.</p>
<h4 id="zajisteni-resources-a-podpurnych-skriptu-pro-spolupraci-systemoveho-prostredi-external-resources">Zajištění resources a podpůrných skriptů pro spolupráci systémového prostředí (external resources)</h4>
<pre><code># 1. backup your awesomewm configuration first
# 2. git clone repository to ~/.config/awesome
git clone git@github.com:raven2cz/awesomewm-config.git ~/.config/awesome
# 3. ensure prerequsities and dependencies
paru -S rofi # rofi similar app like d-menu
# my used wallpapers and event images
mkdir ~/Pictures/wallpapers &amp;&amp; git clone git@github.com:raven2cz/public-wallpapers.git
# my global colorscheme switcher script
# make steps which are described in the raven2cz/global-colorscheme.git project, you need themes for your terminal mainly
mkdir ~/git/github &amp;&amp; git clone git@github.com:raven2cz/global-colorscheme.git &amp;&amp; cd ~/git/github/global-colorscheme &amp;&amp; ./install.sh
# rofi project themes
mkdir ~/.config/rofi &amp;&amp; git clone https://github.com/raven2cz/rofi-themes ~/.config/rofi</code></pre>
<p>Těmito několika kroky jsme si připravili celé prostředí a zajistili potřebné grafické resources, které jsou v projektu používány. Nejedná se tedy pouze o jeden projekt, ale řadu několika projektů, které spolu spolupracují. Pamatujte, že vždy v GNU/Linux platí, každá věc musí dělat jednu dílčí činnost a dělat ji správně. Nedělejte multi věci, pak se to nabaluje na sebe a nefunguje. Dělejte malé komponenty, které se navzájem používají a dají se použít i pro další linuxová prostředí a uživatele…</p>
<p>Já ještě používám externí aplikaci <a href="https://github.com/phillbush/xmenu">xmenu</a>, pro rychlé restartování, vypnutí počítače, oblíbené aplikace, kernel nástroje a skupiny aplikací. Nicméně to není podmínkou. Mám jej na klávesové zkratce <code>super+w</code>. Viz například nahrávka <a href="https://youtu.be/wMrdCbrQjnQ">DistroTube XMenu</a>.</p>
<p>Nyní již máte připraveno celé prostředí pro spuštění. Jediné co chybí je zkontrolovat váš <code>~/.xinitrc</code>, který by měl být nastaven již z minulé nahrávky a <code>autorun.sh</code>, který pouze jako ukázku zde prezentuji.</p>
<pre><code>#!/usr/bin/env bash
function run {
  if ! pgrep -f $1 ;
  then
    $@&amp;
  fi
}

run /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
run /usr/lib/kactivitymanagerd
#run /use/lib/polkit-kde-authentication-agent-1
run /usr/lib/pam_kwallet_init
run nm-applet
run pamac-tray
if ! pgrep -f cloud-drive-ui; then synology-drive start; fi
run parcellite
run clipmenud
run volctl
run /usr/bin/emacs --daemon
run ~/.config/conky/start_conky ~/.config/conky/MX-CoreBlue/conkyrc2core
run remmina -i
run picom --experimental-backends --config $HOME/.config/picom/picom.conf</code></pre>
<p>Autorun běžících aplikací a služeb je nespočet. Tento berte jako můj základ, pokud budou nejasnosti, napište to do youtube vlákna k nahrávce, nebo na naše <a href="https://forum.arch-linux.cz/">diskuzní fórum</a>.</p>
<h2 id="zakladni-ovladani">Základní ovládání</h2>
<p>Complete Guide <a href="https://github.com/raven2cz/tux/blob/main/211207-awesome-ricing/awesome-keybindings-en.org">here</a>.</p>
<p><code>super+ctrl+s</code></p>
<p>Základní ovládání se točí kolem klávesy <code>Super</code> (modkey), která je výhdardně určena pro AW prostředí. Samostatné <code>alt, ctrl a shift</code> nikdy nejsou použity, pouze ve vazbě. Toto je nezbytné pro další všechna programová prostředí a aplikace. Výhradně se snažte nastavovat ve svých prostředích X11 bindingkeys. Například DWM svůj default používá velmi nevhodně.</p>
<p>S učením klávesových zkratek nespěchejte, doporučuji se je osvojit, jsou totiž sebrány z nejlepších WM současnosti a nastaveny pro nejlepší ergonomii a efektivní práci. Několik rad bude uvedeno ve videu.</p>
<h2 id="zmena-barevnych-schemat-a-aplikaci">Změna barevných schémat a aplikací</h2>
<p><code>super+c -&gt; change color scheme, super+alt+c -&gt; next colorschme wallpaper, super+ctrl+c -&gt; previous colorscheme wallpaper</code></p>
<p>Změna barevného schématu probíhá na třech úrovních:</p>
<ul><li>Nejprve se zavolá globální skript <code>global_colorscheme.sh</code>, který změní podporované externí aplikace. V aktuální verzi mezi ně patří kitty, alacritty, doom emacs, atom. Dojde k okamžité dynamické změně.</li></ul>
<ul><li>Pak dojde ke změně základních barev pro conky aplikaci. Ta vytváří změnu v konfiguračním souboru, který je načítán conky knihovnou. Dojde k okamžité dynamické změně.</li></ul>
<ul><li>Naposled dojde k přepsání souboru <code>last.lua</code> v multicolor scheme AW, kam se nastaví aktuální zvolené schéma a dojde k restartu AW. Celkově se tak završí celkové přenastavení všech schémat celého systému</li></ul>
<h2 id="zmena-wallpapers-pro-jednotlive-tagy">Změna wallpapers pro jednotlivé tagy</h2>
<ul><li>random wallpaper for 1st tag</li></ul>
<ul><li>different wallpaper per actual shown tag</li></ul>
<ul><li>user wallpaper tags</li></ul>
<p><code>super+alt+w next user wallpaper, super+ctrl+w previous user wallpaper</code></p>
<ul><li>dev tag uses as default colorscheme wallpaper</li></ul>
<p><code>super+c -&gt; change color scheme, super+alt+c -&gt; next colorschme wallpaper, super+ctrl+c -&gt; previous colorscheme wallpaper</code></p>
<h2 id="prohlidka-prostredi-a-programoveho-lua-reseni">Prohlídka prostředí a programového Lua řešení</h2>
<p>Po spuštění multicolor theme awesomewm projektu si můžeme prohlédnout detailněji strukturu projektu.</p>
<pre><code>nvim ~/.config/awesome/rc.lua
nvim ~/.config/awesmoe/themes/multicolor/theme.lua</code></pre>
<p>Zde se opět vraťe k první kapitole a postupně projděte seznam <code>rc.lua</code> a <code>theme.lua</code> přímo v kódu si mozkově propojit, které části kódu patří k daným strukturám.</p>
<p>Tato část je popsána primárně <b>ve druhé</b> video nahrávce věnované awesomewm ricing…</p>
<h2 id="propojeni-aplikaci-do-awesomewm-prostredi">Propojení aplikací do awesomewm prostředí</h2>
<ul><li>ukázka s tmux a nvim propojení s awesomewm</li></ul>
<p>Spustit tmux, nvim a zobrazit <code>super+ctrl+s</code>, napojení na awesomewm a jeho klávesové propojení a možnosti controlleru</p>
<ul><li>propjení barevných schémat a unifikace GNU/Linux aplikací s prostředím awesomewm a jeho model-view schématem</li></ul>
<ul><li>napojení událostí aplikací s naughty</li></ul>
<p>dokončená kompilace nebo testy vašich projektů v maven, komprimací, událostí z browseru, napojení cron tasků, stavů běhu aplikací na pozadí bash terminálu, dokončení kdenlive vytvoření videií a mnoho dalšího.</p>
<p><a href="https://www.youtube.com/watch?v=KDJbas2FVXM">https://www.youtube.com/watch?v=KDJbas2FVXM</a></p>
<h1 id="dulezite-odkazy">Důležité odkazy</h1>
<ul><li><a href="https://github.com/raven2cz/awesomewm-config">raven2cz/awesomewm-config</a></li></ul>
<ul><li><a href="https://www.youtube.com/user/tondafischer/featured">Youtube Channel TUX: Svět Linuxu</a></li></ul>
<ul><li><a href="https://archlinux.org/">archlinux.org</a></li></ul>
<ul><li><a href="https://wiki.archlinux.org/">wiki.a</a><a href="https://wiki.archlinux.org/">c</a><a href="https://wiki.archlinux.org/">hlinux.org</a></li></ul>
<ul><li><a href="https://fishlive.org/en/blog-tech-art/arch">fishlive.org/blog</a></li></ul>
<ul><li><a href="https://github.com/raven2cz/tux">github/raven2cz/tux</a></li></ul>
<ul><li><a href="https://github.com/raven2cz/dotfiles">github/raven2cz/dotfiles</a></li></ul>
<ul><li><a href="https://github.com/raven2cz/public-wallpapers">raven2cz/public-wallpapers</a></li></ul>
<ul><li><a href="https://github.com/raven2cz/global-colorscheme">raven2cz/global-colorschemes</a></li></ul>]]></description>
  <category>awesomewm</category><category>Návody</category><category>jekyll</category>
</item>
<item>
  <title>AwesomeWM Basics</title>
  <link>https://arch-linux.cz/posts/2022/awesomewm-basics/</link>
  <guid isPermaLink="true">https://arch-linux.cz/posts/2022/awesomewm-basics/</guid>
  <pubDate>Sun, 17 Apr 2022 00:00:00 +0200</pubDate>
  <description><![CDATA[<p>AwesomeWM patří k nejlepším window managerům s podporou vyššího programovacího jazyka Lua. Ukážeme si, proč tento WM má takový význam a jeho nesporné výhody. Naučíme se jej nainstalovat, nastavit základní témata a testovat svá nastavení v testovacím prostředí. Nakonec vyzkoušíme základní ovládání a nápovědu klávesových zkratek. Součástí nahrávky je rovněž velmi jemný úvod do programovacího jazyka Lua. Další díl seriálu <a href="https://github.com/raven2cz">Tondy Fischera.</a></p>
<h2 id="awesome-window-manager">Awesome Window Manager</h2>
<p><code>Awesome</code> je vysoce konfigurovatelný správce oken nové generace pro Xorg. Je velmi rychlý a rozšiřitelný pomocí perfektně zdokumentovaného API. Primárně se zaměřuje na pokročilé uživatele, vývojáře a všechny lidi, kteří se zabývají každodenními složitějšími úkoly a chtějí mít plnou kontrolu nad ovládáním jejich <b>vlastního grafického prostředí</b>.</p>
<ul><li>Základní stránka: <a href="https://awesomewm.org/">https://awesomewm.org/</a>- Arch Wiki: <a href="https://wiki.archlinux.org/title/Awesome">https://wiki.archlinux.org/title/Awesome</a>- Screenshot Gallery: <a href="https://mipmip.github.io/awesomewm-screenshots/">https://mipmip.github.io/awesomewm-screenshots/</a>- API Dokumentace: <a href="https://awesomewm.org/apidoc/">https://awesomewm.org/apidoc/</a>- Ukázka mého ricing YouTube nahrávka: <a href="https://youtu.be/-Fo7mB6_Wtg">Awesome není pouze Tiling Window Manager</a></li></ul>
<h2 id="lua-programovaci-jazyk">LUA - Programovací jazyk</h2>
<ul><li>Základní web: <a href="https://www.lua.org/">https://www.lua.org/</a>, <a href="https://www.lua.org/start.html">https://www.lua.org/start.html</a>- Vynikající kniha (nutno přečíst): <a href="https://www.lua.org/pil/">https://www.lua.org/pil/</a>- <b>Programming in Lua, fourth edition</b></li></ul>
<h2 id="lua-wiki-info">Lua Wiki Info</h2>
<p><b>Lua</b> je odlehčený, reflexivní, imperativní a procedurální programovací jazyk navržený jako skriptovací jazyk s rozšiřitelnou sémantikou. Název je odvozen z portugalského slova pro měsíc.</p>
<p>Jazyk Lua je určen jako rozšiřující nebo skriptovací jazyk a je dostatečně malý, aby se vešel na nejrůznější hostitelské platformy. Podporuje jen malé množství atomárních datových struktur jako jsou boolovské hodnoty, čísla (implicitně s dvojitou přesností plovoucí čárky) a řetězce. Běžné datové struktury jako jsou pole, množiny, hashovací tabulky, seznamy a záznamy mohou být reprezentovány použitím jediné nativní datové struktury – tabulky, která je v podstatě heterogenním asociativním polem. Jmenné prostory a objekty mohou být vytvořeny taktéž za použití tabulek. Zahrnutím minimálního počtu datových typů se Lua pokouší dosáhnout rovnováhy mezi sílou a velikostí.</p>
<p>Sémantika Lua může být rozšiřována a měněna předefinováním některých zabudovaných funkcí v metatabulkách. Navíc podporuje Lua pokročilé vlastnosti, jako jsou funkce vyššího řádu a garbage collector. Kombinací mnoha těchto vlastností je možné v Lua psát i objektově orientované programy.</p>
<p>Lua se uplatňuje především v mnoha hrách, jako je <b>World of Warcraft</b>, masivní onlinová multiplayerová hra na hrdiny, ve které si mohou uživatelé přizpůsobit uživatelské rozhraní, animace postav a vzhled světa právě v jazyku Lua, a sérii Baldur’s Gate a videohře MDK2, kde je použit jako skriptovací jazyk pro moduly. Také se objevuje v některých open source hrách, jakými jsou Battle for Wesnoth, Daimonin a hry ve stylu Rogue: ToME a H-World. Skripty v jazyce Lua jsou také využity u her Worms 3D, Worms 4: Mayhem, Mafia II a v modifikaci pro GTA V, FiveM. Therescript, použitý k řízení vozidel a animací v There, je mírně upravená verze Lua. Správce oken Ion používá Lua pro své přizpůsobování a rozšiřování. Program Chat Mapper pro zapisování a ukládání rozhovorů (například mezi postavami ve hrách) používá jazyk Lua k řízení rozhovoru. Program LuaTeX rozšiřuje primitivní příkazy TeXu o možnost zadávání kódu v jazyce Lua.</p>
<p>V našem případě budeme Lua používat pro <code>AwesomeWM</code> a <code>Neovim</code>.</p>
<h2 id="the-eight-queen-in-programming-in-lua-fourth-edition-8-kraloven-z-knihy-programovani-lua-4-vydani">The Eight-Queen in Programming in Lua Fourth Edition (8 královen z knihy programování Lua 4. vydání)</h2>
<pre><code>N = 8 -- board size

-- check whether position (n, c) is free from attacks
function isplaceok (a, n ,c)
    for i = 1, n - 1 do -- for each queen already placed
        if (a[i] == c) or           -- same column?
        (a[i] - i == c - n) or      -- same diagonal?
        (a[i] + i == c + n) then    -- same diagonal?
            return false -- place can be attacked
        end
    end
    return true -- no attacks; place is OK
end

-- print a board
function printsolution (a)
    for i = 1, N do                 -- for each row
        for j = 1, N do             -- and for each column
            -- write &quot;X&quot; or &quot;-&quot; plus a space
            io.write(a[i] == j and &quot;X&quot; or &quot;-&quot;, &quot; &quot;)
        end
        io.write(&quot;\n&quot;)
    end
    io.write(&quot;\n&quot;)
end

-- add to board &#39;a&#39; all queens from &#39;n&#39; to &#39;N&#39;
function addqueen (a, n)
    if n &gt; N then -- all queens have been placed?
        printsolution(a)
    else -- try to place n-th queen
        for c = 1, N do
            if isplaceok(a, n, c) then
                a[n] = c -- place n-th queen at column &#39;c&#39;
                addqueen(a, n + 1)
            end
        end
    end
end

-- run the program
addqueen({}, 1)</code></pre>
<h2 id="awesome-zakladni-instalace">Awesome základní instalace</h2>
<pre><code>paru -S awesome-git
mkdir -p ~/.config/awesome
cp /etc/xdg/awesome/rc.lua ~/.config/awesome/
nvim ~/.xinitrc</code></pre>
<h2 id="awesome-zakladni-konfigurace-pred-spustenim">Awesome základní konfigurace před spuštěním</h2>
<p>Editujte <code>~/.config/awesome/rc.lua</code> Zkopírujte požadované themes do vašeho prostředí: <code>/usr/share/awesome/themes/ Copy it to ~/.config/awesome/themes/</code></p>
<pre><code>-- theme examples: default, zenburn
-- beautiful.init(gears.filesystem.get_configuration_dir() .. &quot;/themes/default/theme.lua&quot;)
local theme_path = string.format(&quot;%s/.config/awesome/themes/%s/theme.lua&quot;, os.getenv(&quot;HOME&quot;), &quot;default&quot;)
beautiful.init(theme_path)
-- terminal and editor settings
terminal = &quot;kitty&quot;
editor = os.getenv(&quot;EDITOR&quot;) or &quot;nvim&quot;</code></pre>
<h2 id="overeni-a-testovani-awesomeww-sandbox">Ověření a testování AwesomeWW Sandbox</h2>
<p>Použijeme Xephyr pro testování Xorg.</p>
<pre><code>paru -S xorg-server-xephyr
Xephyr :1 -ac -br -noreset -screen 1980x1024 &amp;
DISPLAY=:1.0 awesome -c ~/.config/awesome/rc.lua</code></pre>
<p>Volitlně použít wrapper: <code>awmtt</code> (Awesome WM Testing Tool) z AUR</p>
<h2 id="defaultni-ovladani-awesome-awesomewm-default-keybindings">Defaultní ovládání awesome (AwesomeWM Default Keybindings)</h2>
<p><i><b>awesome-keybindings-defaul</b></i><i>t</i></p>
<h2 id="defaultni-rc-lua">Defaultní rc.lua</h2>
<p>Pojďme si projít základní sekce a organizaci <code>nvim ~/.config/awesome/rc.lua</code></p>
<p><a href="https://www.youtube.com/watch?v=wi_EM5zXt8s&amp;t=112s">https://www.youtube.com/watch?v=wi_EM5zXt8s&amp;t=112s</a></p>
<h1 id="dulezite-odkazy">Důležité odkazy</h1>
<ul><li><a href="https://www.youtube.com/user/tondafischer/featured">Youtube Channel TUX: Svět Linuxu</a>- <a href="https://archlinux.org/">archlinux.org</a>- <a href="https://wiki.archlinux.org/">wiki.achlinux.org</a>- <a href="https://fishlive.org/en/blog-tech-art/arch">fishlive.org/blog</a>- <a href="https://github.com/raven2cz/tux">github/raven2cz/tux</a>- <a href="https://github.com/raven2cz/dotfiles">github/raven2cz/dotfiles</a></li></ul>]]></description>
  <category>awesome</category><category>Návody</category><category>jekyll</category>
</item>
<item>
  <title>Command-Line Shell</title>
  <link>https://arch-linux.cz/posts/2022/command-line-shell/</link>
  <guid isPermaLink="true">https://arch-linux.cz/posts/2022/command-line-shell/</guid>
  <pubDate>Fri, 01 Apr 2022 00:00:00 +0200</pubDate>
  <description><![CDATA[<p>V dalším díle seriálu <a href="https://github.com/raven2cz">Tondy Fischera</a> se podíváme na prostředí příkazového řádku. Představíme si postupně 3 nejrozšířenější shelly v GNU/Linux (sh nepočítám). Shells si postupně nakonfigurujeme a přizpůsobíme opět pro nejlepší efektivitu svojí práce. Terminálové aplikace se tak dostanou na zcela jinou úroveň, se kterou se často nemohou měřit ani normální aplikace s tlačítky. Batch processing je nenahraditelnou součástí pokročilého používání počítačů, historie příkazů a fuzzy processing je něco, co se jiným operačním systémům ani nesnilo.</p>
<p>Popis shellů je uveden na arch wiki <a href="https://wiki.archlinux.org/title/Command-line_shell">Command-Line Shell</a>.</p>
<p>Základní shelly, které si ukážeme:</p>
<ul><li><code>Bash</code> - nejzákladnější shell v GNU/Linux. POSIX complient. Nutný znát v každém případě.<a href="https://www.gnu.org/software/bash/">https://www.gnu.org/software/bash/</a></li></ul>
<ul><li><code>Zsh</code> - Interaktivní používání, silný skriptovací jazyk. POSIX complient. <a href="https://www.zsh.org/">https://www.zsh.org/</a></li></ul>
<ul><li><code>Fish</code> - Není POSIX, jde vlastní cestou. Inteligentní a uživatelsky přívětivý shell příkazového řádku. Fish provádí plnobarevné zvýraznění syntaxe příkazového řádku, stejně jako zvýraznění a dokončení příkazů a jejich argumentů, existence souboru a historie. Podporuje kompletní, jak píšete pro historii a příkazy. Fish je schopen analyzovat manuálové stránky systému, aby určil platné argumenty pro příkazy, což mu umožňuje zvýraznit a dokončit příkazy. Snadnou revizi posledního příkazu lze provést pomocí <code>Alt+Up</code> Pro další info <a href="https://fishshell.com/">https://fishshell.com/</a></li></ul>
<h1 id="bash">Bash</h1>
<p>Bash byl prezentován po celou dobu instalace a používání až do této nahrávky. Pro bash existuje bezpočet návodů, příkladů, psaní skriptů. Určitě doporučuji českou knihu pro shell <a href="https://www.alza.cz/media/prikazovy-radek-v-linuxu-d2366810.htm">https://www.alza.cz/media/prikazovy-radek-v-linuxu-d2366810.htm</a> Dokumentace je zde <a href="https://www.gnu.org/software/bash/manual/bash.html">https://www.gnu.org/software/bash/manual/bash.html</a></p>
<h1 id="zsh">Zsh</h1>
<h2 id="zsh-instalace">Zsh Instalace</h2>
<p>My použijeme jako náš systémový shell ZSH.</p>
<pre><code>sudo pacman -S zsh
chsh -s /usr/bin/zsh 
nvim ~/.zshrc</code></pre>
<p>Použijeme <a href="https://ohmyz.sh/">Oh My Zsh</a>. Nebo <a href="https://github.com/ohmyzsh/ohmyzsh">GitHub OhMyZsh</a>.</p>
<pre><code>sh -c &quot;$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)&quot;</code></pre>
<h2 id="zsh-prompt-themes">Zsh Prompt Themes</h2>
<pre><code># Change theme
ZSH_THEME=&quot;robbyrussell&quot;
ZSH_THEME=&quot;agnoster&quot;
ZSH_THEME=&quot;dst&quot;
ZSH_THEME_RANDOM_CANDIDATES=(
  &quot;robbyrussell&quot;
  &quot;agnoster&quot;
  &quot;dst&quot;
)
# Need install p10k!
ZSH_THEME=&quot;powerlevel10k/powerlevel10k&quot;</code></pre>
<h2 id="instalace-zsh-plugins">Instalace Zsh plugins</h2>
<pre><code>plugins=(git zsh-autosuggestions zsh-syntax-highlighting z fzf sudo pass)

# Instalace plginu
git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
#fzf
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install</code></pre>
<h2 id="instalace-colorscriptu">Instalace Colorscriptů</h2>
<p>Colorscripty zkrášlují shell a uvozují danou instanci terminálu.</p>
<pre><code># DT Colorscript
git clone https://gitlab.com/dwt1/shell-color-scripts.git
makepkg -cf
sudo pacman -U *.pkg.tar.zst

# pokemon-colorscript
paru -S pokemon-colorscripts-git</code></pre>
<h1 id="fish">Fish</h1>
<p>Arch wiki <a href="https://wiki.archlinux.org/title/Fish">https://wiki.archlinux.org/title/Fish</a></p>
<h2 id="fish-instalace">Fish Instalace</h2>
<pre><code>sudo pacman -S fish
# plugin manager - nutno spoustet z fish shell
curl -sL https://git.io/fisher | source &amp;&amp; fisher install jorgebucaran/fisher
fisher list
fisher update jorgebucaran/fisher
fisher remove jorgebucaran/nvm.fish@2.1.0
fisher list | fisher remove
# next useful scripts
paru -S lolcat exa fd bat timg p7zip glow</code></pre>
<h2 id="starship-cross-shell-prompt-instalace">STARSHIP Cross-Shell Prompt Instalace</h2>
<p>Hlavní stránka <a href="https://starship.rs/">https://starship.rs/</a></p>
<pre><code>sh -c &quot;$(curl -fsSL https://starship.rs/install.sh)&quot;
# add last line to your config.fish
starship init fish | source</code></pre>
<h3 id="personal-starship-settings">Personal Starship Settings</h3>
<p>Moje osobní nastavení starship je v dotfiles uloženo v <code>~/.config/starship.toml</code> Toto moje nastavení nepoužívá dvě prompt řádky, ale pouze jednu, plus změnu symbolu. Nejprve zkuste defaultní nastavení a teprve potom můžete testovat tyto změny.</p>
<pre><code># Don&#39;t print a new line at the start of the prompt
add_newline = false

# Make prompt a single line instead of two lines
[line_break]
disabled = true

# Replace the &quot;❯&quot; symbol in the prompt with &quot;➜&quot;
[character]                         # The name of the module we are configuring is &quot;character&quot;
success_symbol = &quot;[➜](bold green)&quot;  # The &quot;success_symbol&quot; is set to &quot;➜&quot; with color &quot;bold green&quot;

# Use custom format
# format = &quot;&quot;&quot;
# [┌───────────────────&gt;](bold green)
# [│](bold green)$directory$rust$package
# [└─&gt;](bold green) &quot;&quot;&quot;

# Disable the package module, hiding it from the prompt completely
[package]
disabled = false</code></pre>
<h2 id="fish-jako-uzivatelsky-interaktivni-shell">Fish jako uživatelský interaktivní shell</h2>
<p>Fish budeme používat jako <b>uživatelský interaktivní shell</b>, nikoliv jako systémový (pro init si ponecháme POSIX support). Do našeho <code>.zshrc</code> vložíme na konec toto</p>
<pre><code># jump from zsh to fish
if [[ $(ps --no-header --pid=$PPID --format=cmd) != &quot;fish&quot; ]]
then
	exec fish
fi</code></pre>
<h2 id="fish-raven2cz-dotfiles">Fish Raven2cz Dotfiles</h2>
<p>Zkopírujte fish adresář do <code>~/.config/fish</code> z raven2cz dotfiles.</p>
<pre><code>nvim ~/.config/fish/config.fish</code></pre>
<p><a href="https://www.youtube.com/watch?v=_K4ESyYuzE0">https://www.youtube.com/watch?v=_K4ESyYuzE0</a></p>
<h1 id="dulezite-odkazy">Důležité odkazy</h1>
<ul><li><a href="https://www.youtube.com/user/tondafischer/featured">Youtube Channel TUX: Svět Linuxu</a></li></ul>
<ul><li><a href="https://archlinux.org/">archlinux.org</a></li></ul>
<ul><li><a href="https://wiki.archlinux.org/">wiki.achlinux.org</a></li></ul>
<ul><li><a href="https://fishlive.org/en/blog-tech-art/arch">fishlive.org/blog</a></li></ul>
<ul><li><a href="https://github.com/raven2cz/tux">github/raven2cz/tux</a></li></ul>
<ul><li><a href="https://github.com/raven2cz/dotfiles">github/raven2cz/dotfiles</a></li></ul>
<ul><li><a href="https://peertube.arch-linux.cz/w/dnyPyhvscq4bBRb6zNSNUk">Peertube kanál Arch Linux Cz</a></li></ul>]]></description>
  <category>shell</category><category>Návody</category><category>jekyll</category>
</item>
<item>
  <title>Instalace Xfce</title>
  <link>https://arch-linux.cz/posts/2022/instalace-xfce/</link>
  <guid isPermaLink="true">https://arch-linux.cz/posts/2022/instalace-xfce/</guid>
  <pubDate>Fri, 18 Mar 2022 00:00:00 +0100</pubDate>
  <description><![CDATA[<p>V osmém díle seriálu o instalaci <a href="https://arch-linux.cz/series/arch-linux-instalace/">Arch Linuxu </a> od <a href="https://github.com/raven2cz">Tondy Fischera</a> se podíváme, jak instalovat a nastavit desktopové prostředí <a href="https://wiki.archlinux.org/title/Xfce_(%C4%8Ce%C5%A1tina)">Xfce</a>.</p>
<h1 id="xfce">XFCE</h1>
<h2 id="co-je-xfce">Co je XFCE?</h2>
<p><a href="https://wiki.archlinux.org/title/Xfce_(%C4%8Ce%C5%A1tina)">Xfce</a> je lehké a modulární desktopové prostředí, které je v současné době založeno na GTK 3. Pro zajištění úplného uživatelského komfortu obsahuje správce oken, správce souborů, plochu a panely. Xfce lze jednoduše rozšiřovat pomocí extra pluginů.</p>
<h2 id="dokumentace">Dokumentace</h2>
<ul><li><a href="https://docs.xfce.org/">https://docs.xfce.org/</a></li></ul>
<ul><li><a href="https://www.xfce.org/">https://www.xfce.org/</a></li></ul>
<ul><li><a href="https://gitlab.xfce.org">https://gitlab.xfce.org</a></li></ul>
<ul><li><a href="https://wiki.archlinux.org/title/Xfce_(%C4%8Ce%C5%A1tina)">Arch-Wiki:Xfce(čeština)</a></li></ul>
<h2 id="moje-xfce-konfigurace">Moje Xfce Konfigurace</h2>
<p>Toto repo samozřejmě nemůže obsahovat veškeré nutné části, protože se jedná o DE, které by vyžadovalo spíše distro. Bylo by nutné použít několik konfiguračních adresářů a zdrojových témat. Nicméně kompletní základní xfce konfigurace je systematicky oddělena a uložena ve formátu XML, který zde přikládám s MIT licencí.</p>
<ul><li><a href="https://github.com/raven2cz/xfce-config">https://github.com/raven2cz/xfce-config</a></li></ul>
<h1 id="zakladni-instalace">Základní Instalace</h1>
<p>Vše jsou meta balíky. Doporučuji nainstalovat celou tuto základnu meta balíků. Oproti jiným full DE, je toto pořád silně lightweight.</p>
<pre><code>sudo pacman -S xfce4 xfce4-goodies

nvim ~/.xinitrc
# Overit umisteni radky
exec startxfce4</code></pre>
<h1 id="xfce4-settings-manager">Xfce4 Settings Manager</h1>
<p>Spusťe z terminálu</p>
<pre><code>xfce4-settings-manager</code></pre>
<p><a href="https://www.youtube.com/watch?v=tehEIbcYn8U">https://www.youtube.com/watch?v=tehEIbcYn8U</a></p>
<h1 id="volba-sound-systemu">Volba Sound Systemu</h1>
<p>Zvuk je velký topic. Stejně jako grafické karty na linuxu. Toto je pouze minimální zmínka o této problematice.</p>
<ul><li><a href="https://wiki.archlinux.org/title/Advanced_Linux_Sound_Architecture">https://wiki.archlinux.org/title/Advanced_Linux_Sound_Architecture</a></li></ul>
<ul><li><a href="https://wiki.archlinux.org/title/PulseAudio">https://wiki.archlinux.org/title/PulseAudio</a></li></ul>
<ul><li><a href="https://wiki.archlinux.org/title/PipeWire">https://wiki.archlinux.org/title/PipeWire</a></li></ul>
<p>Doinstalovat uřčitě při <code>pulseaudio</code> ještě <code>pavucontrol</code>, <code>alsa-utils</code>. <code>alsamixer</code>. <a href="https://wiki.archlinux.org/title/PipeWire">PipeWire</a> je separátní topic a bylo by vhodné oddělené video, pokud bude zájem.</p>
<h1 id="graphical-drivers-a-picom-aktivace">Graphical Drivers a Picom aktivace</h1>
<p>Grafické drivers byly instalovány při základní instalaci, odkazuji tak na video <a href="https://youtu.be/gpIFaCIB9Cg">základní instalace systému</a>. Nyní je potřeba nahradit defaultní kompozitor naším picom nastaveným dle zlaté střední cesty z minulého dílu.</p>
<ul><li>Window Manager Tweaks &gt; Compositor &gt; Deaktivujte <code>Enable display compositing</code></li></ul>
<ul><li>Session and Startup &gt; Application Autostart &gt; + &gt; přidejte name: <code>picom</code> command: <code>picom --experimental-backends --config $HOME/.config/picom/picom.conf</code></li></ul>
<p>Picom bude spuštěn v autostart xfce po novém spuštění xfce.</p>
<h1 id="instalace-terminal-emulator-gpu-support">Instalace Terminal Emulator (GPU Support)</h1>
<p>Doporučuji tyto terminal emulatory. V mém případě používám oba, aby se nehádaly.</p>
<pre><code>sudo pacman -S kitty
sudo pacman -S alacritty</code></pre>
<p>O terminálech si více povíme jindy. Nyní alespoň základní instalace a umět je spustit a používat v základní vanilla podobě.</p>
<h1 id="pridani-whisker-menu">Přidání Whisker Menu</h1>
<p>Whisker menu je základní Xfce kvalitní menu a spouštěč aplikací. Přidání extra pluginu do Panel1 instance na první místo v Items.</p>
<h1 id="klavesove-zkratky-bud-linux-pro">Klávesové zkratky, buď Linux Pro</h1>
<p>Vytvoř klávosvé zkratky používané v profi window managers, jako je dwm, xmonad, awesome, qtile, i3, bspwm.</p>
<ul><li><a href="https://wiki.archlinux.org/title/Xfce_(%C4%8Ce%C5%A1tina)#Kl%C3%A1vesov%C3%A9_zkratky">Klávesové zkratky Xfce ArchWiki</a></li></ul>
<h2 id="klavesove-zkratky-pro-ovladani-hlasitosti">Klávesové zkratky pro ovládání hlasitosti</h2>
<p><a href="https://wiki.archlinux.org/title/PulseAudio#Keyboard_volume_control">https://wiki.archlinux.org/title/PulseAudio#Keyboard_volume_control</a></p>
<h1 id="xfce-ricing-dracula-ricing">XFCE Ricing - Dracula Ricing</h1>
<h2 id="co-je-ricing">Co je Ricing?</h2>
<p><a href="https://jie-fang.github.io/blog/basics-of-ricing">https://jie-fang.github.io/blog/basics-of-ricing</a></p>
<p><a href="https://www.youtube.com/watch?v=VspS7Q9Spjs">https://www.youtube.com/watch?v=VspS7Q9Spjs</a></p>
<h2 id="co-je-dracula-a-draculapro">Co je Dracula a DraculaPro?</h2>
<ul><li><a href="https://draculatheme.com/">https://draculatheme.com/</a></li></ul>
<ul><li><a href="https://draculatheme.com/pro">https://draculatheme.com/pro</a> ($49)</li></ul>
<figure><img src="https://arch-linux.cz/posts/2022/instalace-xfce/02.png" width="1397" height="814" alt="" loading="lazy" decoding="async"></figure>
<h2 id="aplikace-zakladnich-themes-a-color-schemes">Aplikace základních themes a color schemes</h2>
<ul><li>Postupujte podle pokynů na dracula stánkách pro jednotlivé aplikace a GTK3.</li></ul>
<ul><li>Přejděte na záložku GTK na webu, nainstalujte <code>gtk-master.zip</code></li></ul>
<ul><li>Použijte z mých dotfiles konfigurace pro <code>kitty</code> a <code>alacritty</code>. obsahují dracula pro kitty a postelové barvy pro alacritty</li></ul>
<ul><li>Nainstalujte a použijte fonty dle videa: <code>paru -S tty-droid tty-play</code></li></ul>
<ul><li>Aplikujte theme pro Midnight Commander z webu <code>dracula256.ini</code></li></ul>
<ul><li>Použijte zlatou střední cestu pro picom z dotfiles.</li></ul>
<h2 id="icons-a-mouse-cursors">Icons a Mouse Cursors</h2>
<ul><li><code>sudo paru -S papirus-icon-theme</code></li></ul>
<ul><li><code>sudo paru -S numix-cursor-theme xcursor-comix-opaque xcursor-comix</code></li></ul>
<h2 id="zmena-zakladniho-panel1">Změna základního Panel1</h2>
<ul><li>Použijte mojí konfiguraci panelu, nebo manuálně nastavte komponenty dle videa</li></ul>
<ul><li>Aplikujte/zkopírujte <code>gtk.css</code> styling do vašeho <code>~/.config/gtk-3.0</code></li></ul>
<ul><li>Alternativně můžete použít polybar (pozor je to výhoda i nevýhoda), viz můj projekt <a href="https://github.com/raven2cz/polybar-config">Polybar-config</a></li></ul>
<h2 id="public-wallpapers">Public-Wallpapers</h2>
<ul><li>Stáhněte si moje public wallpapers <a href="https://github.com/raven2cz/public-wallpapers">public-wallpapers</a></li></ul>
<ul><li>Link public-wallpapers přes <code>mkdir ~/Pictures/wallpapers &amp;&amp; ln -s ~/git/github/public-wallpapers ~/Pictures/wallpapers/</code></li></ul>
<h2 id="qt-a-gtk-jednotny-vzhled-aplikaci">Qt a Gtk jednotný vzhled aplikací</h2>
<ul><li>pročíst <a href="https://wiki.archlinux.org/title/Uniform_look_for_Qt_and_GTK_applications">Uniform look for Qt and GTK applications</a></li></ul>
<ul><li>Gtk již máme zařízeno, neboť xfce staví na gtk-3.0 a s dracula theme jsme toto pořešili pro gnome aplikace automaticky</li></ul>
<ul><li>Pro Qt aplikace nutno pořešit</li></ul>
<p>Nainstalujte <code>sudo pacman -S kvantum-qt5</code></p>
<ul><li>Checkout git repozitář <code>cd ~/git/github &amp;&amp; git clone <a href="https://github.com/dracula/gtk.git">https://github.com/dracula/gtk.git</a></code></li></ul>
<ul><li>Spustit Kvantum Manager, nainstalovat Dracula (dle svého vkusu)</li></ul>
<ul><li>Aplikovat v aplikaci Dracula jako aktvní téma</li></ul>
<ul><li>Zkontrolovat si svůj <code>~/.xinitrc</code> nastavení <code>export QT_STYLE_OVERRIDE=kvantum</code></li></ul>
<h2 id="doplnkova-rozsireni">Doplňková rožšíření</h2>
<ul><li>Aplikace pro nastavení osobních uživatelských detailů <code>sudo pacman -S mugshot</code></li></ul>
<ul><li>Editor nabídek pro Gnome s podporou XFCE <code>sudo pacman -S alacarte</code></li></ul>
<ul><li>Odstranění ikon na ploše <code>xfconf-query -c xfce4-desktop -v --create -p /desktop-icons/style -t int -s 0</code> (obnova nastavit 2)</li></ul>
<ul><li>Nastavení zvukového motivu Smooth</li></ul>
<p>Nainstalujte <code>libcanberra</code> pro PulseAudio</p>
<ul><li>Zahrnout <code>canerra-gtk-module</code> do proměnné prostředí <code>GTK_MODULES</code></li></ul>
<ul><li>V <code>Settings Manager &gt; Appearance &gt; Settings</code> nastavit =”Enable event sounds”=</li></ul>
<ul><li>Nainstalujte z AUR <code>paru -S sound-theme-smooth</code></li></ul>
<ul><li>V Editoru nastavení (<code>xfce4-settings-editor</code>) nastavte v <code>xsettings/Net/SoundThemeName</code> na <code>Smooth</code> (pozor na velké písmeno)</li></ul>
<ul><li>Zapněte a zvyšte hlasitost u <code>System Sounds</code> v mixéru zvuku, např. <code>pavucontrol</code>.</li></ul>
<h1 id="dulezite-odkazy">Důležité odkazy</h1>
<ul><li><a href="https://wiki.archlinux.org/title/Xfce_(%C4%8Ce%C5%A1tina)">arch wiki:Xfce</a></li></ul>
<ul><li><a href="https://www.youtube.com/user/tondafischer/featured">Youtube Channel TUX: Svět Linuxu</a></li></ul>
<ul><li><a href="https://archlinux.org/">archlinux.org</a></li></ul>
<ul><li><a href="https://wiki.archlinux.org/">wiki.achlinux.org</a></li></ul>
<ul><li><a href="https://fishlive.org/en/blog-tech-art/arch">fishlive.org/blog</a></li></ul>
<ul><li><a href="https://github.com/raven2cz/tux">github/raven2cz/tux</a></li></ul>
<ul><li><a href="https://github.com/raven2cz/dotfiles">github/raven2cz/dotfiles</a></li></ul>]]></description>
  <category>Xfce</category><category>Návody</category><category>jekyll</category>
</item>
<item>
  <title>Picom Compositor</title>
  <link>https://arch-linux.cz/posts/2022/picom-compositor/</link>
  <guid isPermaLink="true">https://arch-linux.cz/posts/2022/picom-compositor/</guid>
  <pubDate>Sun, 06 Mar 2022 00:00:00 +0100</pubDate>
  <description><![CDATA[<p>V dalším díle seriálu <a href="https://github.com/raven2cz">Tondy Fischera</a> si nainstalujeme <a href="https://wiki.archlinux.org/title/Picom">kompozitor Picom</a>. Provedeme jeho základní konfiguraci a spouštění. Soustředíme se na praktickou stránku tohoto nástroje a rovněž historii projektu a správnou funkcionalitu.</p>
<h2 id="co-je-yshui-picom">Co je yshui/Picom?</h2>
<p><a href="https://wiki.archlinux.org/title/Picom">Picom-Compositor</a> <code>Picom</code> je samostatný kompositor pro Xorg, vhodný pro použití se správci oken (Window Manager), kteří neposkytují kompozici. Picom vznikl jako fork z populárního <code>compton</code>.</p>
<pre><code>paru -S picom-git # git next version (snapshots, rolling)
paru -S picom # released version</code></pre>
<h3 id="picom-neni-pouze-o-grafickych-vychytavkach-a-animacich">Picom není pouze o grafických vychytávkách a animacích</h3>
<h3 id="jeho-silnou-podporou-je-kvalitni-vsynch-glx-mode-gpu-rendering-a-vyhlazovani">Jeho silnou podporou je kvalitní vsynch, glx mode (gpu rendering) a vyhlazování.</h3>
<h3 id="picom-lze-konfigurovat-zcela-minimalisticky-pro-striktne-velmi-svizne-prostredi-az-po-mnoho-desitek-grafickych-features-a-animaci">Picom lze konfigurovat zcela minimalisticky pro striktně velmi svižné prostředí až po mnoho desítek grafických features a animací.</h3>
<h3 id="jeho-animacni-schopnosti-jsou-fakt-omezene-oproti-kwin-a-dalsim-de-kompositorum">Jeho animační schopnosti jsou fakt omezené oproti KWin a dalším DE kompositorům.</h3>
<h3 id="existuji-nekolik-fork-picoms-ktere-se-soustredi-na-skupinu-animaci-blur-efektu-a-dalsich-grafickych-vylepsenich-podivejte-a-sledujte-toto-issue-animation-support">Existují několik fork picoms, které se soustředí na skupinu animací, blur efektů a dalších grafických vylepšeních. Podívejte a sledujte toto issue <a href="https://github.com/yshui/picom/issues/217">Animation Support</a>.</h3>
<h4 id="picom-ibhagwan">picom ibhagwan</h4>
<h4 id="picom-jonaburg">picom jonaburg</h4>
<h4 id="picom-dccsillag">picom dccsillag</h4>
<h2 id="doporucena-konfigurace-config-picom-picom-conf">Doporučená konfigurace (~/.config/picom/picom.conf)</h2>
<h3 id="minimalisticke-reseni-vysoce-efektivni">Minimalistické řešení (vysoce efektivní)</h3>
<pre><code>backend = &quot;glx&quot;;
fading = false
vsync = true
wintypes:
{
  tooltip = { fade = true; shadow = true; opacity = 0.9; focus = true; full-shadow = false; };
  dock = { shadow = false; }
  dnd = { shadow = false; }
  popup_menu = { opacity = 0.9; }
  dropdown_menu = { opacity = 0.9; }
};</code></pre>
<h3 id="zlata-stredni-cesta">Zlatá střední cesta</h3>
<pre><code>backend = &quot;glx&quot;;
vsync = true
fading = false
round-borders = 15;
detect-rounded-corners = true;
shadow = true;
# The blur radius for shadows. (default 12)
shadow-radius = 14;
# The left offset for shadows. (default -15)
shadow-offset-x = -7;
# The top offset for shadows. (default -15)
shadow-offset-y = -7;
# The translucency for shadows. (default .75)
shadow-opacity = .5;
# Dim inactive windows. (0.0 - 1.0)
inactive-dim = 0.05;
# Fade windows during opacity changes.
fading = true;
# Opacity change between steps while fading in. (default 0.028).
fade-in-step = 0.056;
# Opacity change between steps while fading out. (default 0.03).
fade-out-step = 0.06;
# Window type settings
wintypes:
{
    tooltip =
    {
        # fade: Fade the particular type of windows.
        fade = true;
        # shadow: Give those windows shadow
        shadow = false;
        # opacity: Default opacity for the type of windows.
        opacity = 0.85;
        # focus: Whether to always consider windows of this type focused.
        focus = true;
    };
};</code></pre>
<h3 id="spousteni-picom-v-autorun-skriptech">Spouštění picom v autorun skriptech</h3>
<p>Picom nutno správně spouštět ve svých autorun skriptech s možností jeho opětovného spuštění v případě pádu.</p>
<pre><code>run picom --experimental-backends --config $HOME/.config/picom/picom.conf
# run bash function
function run {
  if ! pgrep -f $1 ;
  then
    $@&amp;
  fi
}</code></pre>
<h3 id="moje-doporuceni">Moje doporučení</h3>
<p>Používat základní <code>yshui/Picom</code>, který má největší množství oprav, je velmi rychlý a stabilní. Sice zatím v této době neobsahuje blurr efekty, ale rounding cornes již podporovány jsou (pro rounding corners mám ale ještě jiné řešení).</p>
<p><a href="https://www.youtube.com/watch?v=gcIADxcE40I">https://www.youtube.com/watch?v=gcIADxcE40I</a></p>
<h1 id="dulezite-odkazy">Důležité odkazy</h1>
<ul><li><a href="https://www.youtube.com/user/tondafischer/featured">Youtube Channel TUX: Svět Linuxu</a></li></ul>
<ul><li><a href="https://archlinux.org/">archlinux.org</a></li></ul>
<ul><li><a href="https://wiki.archlinux.org/">wiki.achlinux.org</a></li></ul>
<ul><li><a href="https://fishlive.org/en/blog-tech-art/arch">fishlive.org/blog</a></li></ul>
<ul><li><a href="https://github.com/raven2cz/tux">github/raven2cz/tux</a></li></ul>
<ul><li><a href="https://github.com/raven2cz/dotfiles">github/raven2cz/dotfiles</a></li></ul>]]></description>
  <category>xorg</category><category>picom</category><category>Návody</category><category>jekyll</category>
</item>
<item>
  <title>Šifrovaná instalace Arch Linux pomocí Calam-Arch-Installer</title>
  <link>https://arch-linux.cz/posts/2022/sifrovana-instalace-arch-linux-pomoci-calam-arch-installer/</link>
  <guid isPermaLink="true">https://arch-linux.cz/posts/2022/sifrovana-instalace-arch-linux-pomoci-calam-arch-installer/</guid>
  <pubDate>Thu, 03 Mar 2022 00:00:00 +0100</pubDate>
  <description><![CDATA[<h2 id="uvod">Úvod</h2>
<p>Pro začátečníka může být složité až skoro nemožné Arch Linux nainstalovat a nakonfigurovat podle svých potřeb. Někoho může i instalace v příkazovém řádku odradit. V dnešním návodu si ukážeme, jak nainstalovat Arch Linux pomocí instalátoru Calam-Arch-installer. Tento návod předpokládá,že Arch Linux bude jediným OS v zařízení.</p>
<h2 id="co-ziskame-instalaci">Co získáme instalací</h2>
<p>• Plně LUKS šifrovaný oddíl obsahující souborový systém BTRFS s / boot, / root a / home • / a /home jako samostatné dílčí svazky, které umožňují snadnou a úložnou úsporu místa snímků kořenového systému • automatické vytváření snímků (při upgradu systému a každodenním a bootování) • schopnost zavést do funkčního snímku z nabídky grub (automatické vytváření spouštěcích položek) a poté nastavit tento nebo jiný snímek jako nový výchozí systém (z grafického uživatelského rozhraní)</p>
<h2 id="stazeni-a-priprava-instalacniho-usb">Stažení a příprava instalačního USB</h2>
<p>Nejprve si stáhneme ISO <a href="https://sourceforge.net/projects/blue-arch-installer/">Calam-Arch-Installer</a>  Obraz zapíšeme na USB disk třeba pomocí nástroje Etcher.Restartujeme počítač a při zavádění systému v BIOSu nastavíme zavádění systému pomocí USB. Pří zavádění z USB se vám ukáže úvodní obrazovka instalátoru</p>
<h2 id="priprava-instalace">Příprava instalace</h2>
<p>Nejdříve je třeba udělat pár maličkostí před instalací našeho nového systému. Změňte výchozí nastavení btrfs calamar pro fstab.Následující krok vynutí, aby calamar přiřadil a používal kompresi na všech instalačních zařízeních btrfs; bez ohledu na to, zda jsou ssd nebo hdd. Použijeme kompresi zstd. Otevřete Terminal,Firefox s naším návodem a zadejte (nebo označte a zkopírujte níže uvedené příkazy pomocí ctrl-c a vložte do terminálu pomocí shift-ctrl-v | vždy můžete kopírovat a vložit všechny řádky zobrazené v jednom bloku najednou)</p>
<pre><code>sudo sed -i &#39;s/compress=lzo/compress=zstd/&#39;
/usr/share/calamares/modules/fstab.conf
sudo sed -i &#39;s/autodefrag/autodefrag,compress=zstd/&#39;
/usr/share/calamares/modules/fstab.conf</code></pre>
<p>Terminál necháme otevřený a můžeme přistoupit k samotné instalaci.</p>
<h2 id="instalace-systemu">Instalace systému</h2>
<p>Instalátor <a href="https://sourceforge.net/projects/blue-arch-installer/">Calam-Arch-Installer</a> je založený na instalačním frameworku <a href="https://calamares.io/">Calamares</a>, který používají i jiné linuxové distribuce EndeavourOS, Manjaro, Arcolinux a mnoho dalších. Instalátor nám položí několik otázek. Nejdříve nastavíme jazyk systému.</p>
<p>Nastavíme časové pásmo.</p>
<p>V dalším kroku vybereme požadované rozložení klvesnice</p>
<p>Nyní přejdeme k rozdělení disku.Nejdříve vytvoříme novou tabulku oddílů a jako typ oddílu zvolíme <a href="https://cs.wikipedia.org/wiki/GUID_Partition_Table">GPT</a> zadáním ok,vytvoříme tabulku.</p>
<p>Dále zvolíme ruční rozdělení disku a vytvoříme oddíl 512MB Fat 32 s přípojným bodem /boot a s příznakem boot. Tímto vytvoříme systémový oddíl EFI.</p>
<p>Na zbytku volného místa vytvoříme souborový systém BTRFS, zaškrtneme šifrování a zvolíme heslo. Přípojný bod pro tento oddíl bude /</p>
<p>V dalším kroku vybereme jaké chceme použít grafické prostředí, ovladače grafické karty a nebo veškeré balíčky pro správu tisku.</p>
<p>V dalším kroku vytvoříme uživatele, heslo pro přihlášení do systému.</p>
<p>Klikneme na další a systém se nám nainstaluje. Po dokončení instalace systém <b>NERESTARTOVAT</b>, ale zadáme ještě několik příkazů. Prvním příkazem vytvoříme odkládací prostor. 8G nahradíme  požadovanou velikostí.</p>
<pre><code>swapsize=8G</code></pre>
<p>Po vytvoření oddílu spustíme další příkazy.Stáčí je jen všechny zkopírovat (ctrl+c) a následně vložit do terminálu (ctrl+shift+v)</p>
<pre><code>sudo mkdir /mnt/btrfs
btrfsonluks=`sudo blkid -o device | grep luks`
sudo mount -o subvolid=5 $btrfsonluks /mnt/btrfs
sudo sed -i &#39;s/compress=zstd 0 1/compress=zstd 0 0/&#39; /mnt/btrfs/@/etc/fstab
sudo sed -i &#39;s/compress=zstd 0 2/compress=zstd 0 0/&#39; /mnt/btrfs/@/etc/fstab
sudo btrfs subvolume create /mnt/btrfs/@var-cache-pacman-pkg
fstabstr=`grep &quot;/home&quot; /mnt/btrfs/@/etc/fstab`
fstabstr=${fstabstr//\/home/\/var\/cache\/pacman\/pkg}
fstabstr=${fstabstr//@home/@var-cache-pacman-pkg}
sudo sh -c &quot;echo $fstabstr &gt;&gt; /mnt/btrfs/@/etc/fstab&quot;
sudo btrfs subvolume create /mnt/btrfs/@swap
sudo mkdir /mnt/btrfs/@/swap
sudo sh -c &quot;printf &#39;\n$btrfsonluks /swap
btrfs
subvol=@swap,defaults,compress=no 0 0\n&#39; &gt;&gt; /mnt/btrfs/@/etc/fstab&quot;
sudo truncate -s 0 /mnt/btrfs/@swap/swapfile
sudo chattr +C /mnt/btrfs/@swap/swapfile
sudo btrfs property set /mnt/btrfs/@swap/swapfile compression none
sudo fallocate -l $swapsize /mnt/btrfs/@swap/swapfile
sudo chmod 600 /mnt/btrfs/@swap/swapfile
sudo mkswap /mnt/btrfs/@swap/swapfile
sudo swapon /mnt/btrfs/@swap/swapfile
sudo sh -c &quot;echo &#39;/swap/swapfile none swap defaults 0 0&#39; &gt;&gt;
/mnt/btrfs/@/etc/fstab&quot;
wget https://raw.githubusercontent.com/osandov/osandov-linux/master/scripts/
btrfs_map_physical.c
gcc -O2 -o btrfs_map_physical btrfs_map_physical.c
offset=`sudo ./btrfs_map_physical /mnt/btrfs/@swap/swapfile`
offset_arr=(`echo ${offset}`)
offset_pagesize=(`getconf PAGESIZE`)
offset=$(( offset_arr[25] / offset_pagesize ))
sudo sed -i &quot;s/loglevel=3/loglevel=3 resume_offset=$offset/&quot;
/mnt/btrfs/@/etc/default/grub
sudo sed -i &quot;s#loglevel=3#resume=$btrfsonluks loglevel=3#&quot;
/mnt/btrfs/@/etc/default/grub
sudo sed -i &#39;s/keymap encrypt filesystems/keymap encrypt filesystems resume/&#39;
/mnt/btrfs/@/etc/mkinitcpio.conf
sudo mkdir /mnt/chroot
sudo mount -o compress=zstd,subvol=@ $btrfsonluks /mnt/chroot
efidevice=`sudo blkid -o device -l -t TYPE=vfat`
sudo mount $efidevice /mnt/chroot/boot/efi
sudo arch-chroot /mnt/chroot
sudo pacman --noconfirm -S cronie
sudo systemctl enable cronie.service
sudo grub-mkconfig -o /boot/grub/grub.cfg
sudo mkinitcpio -p linux</code></pre>
<p>Nyní můžeme restartovat počítač.</p>
<h2 id="novy-system">Nový systém</h2>
<p>Po restartu a přihlášení do nového systému, musíme nejdřív nainstalovat pomocníka YAY pro AUR repozitář. V AUR repozitáři se nachází zálohovací program Timeshift.</p>
<pre><code>pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si</code></pre>
<p>Nyní nainstalujeme program Timeshift a potřebné závislosti.</p>
<pre><code>sudo pacman --noconfirm -Syy &amp;&amp;
yay --noconfirm -S timeshift timeshift-autosnap grub-btrfs</code></pre>
<p>Poté spustíme následující příkazy</p>
<pre><code>sudo cp /etc/timeshift/default.json /etc/timeshift/timeshift.json &amp;&amp;
fs_uuid=`sudo blkid -o device | grep luks` &amp;&amp;
fs_uuid=`sudo blkid -o value -s UUID $fs_uuid` &amp;&amp;
sudo sed -i &quot;s/backup_device_uuid\&quot; : \&quot;/backup_device_uuid\&quot; : \&quot;$fs_uuid/&quot;
/etc/timeshift/timeshift.json &amp;&amp;
fs_uuid=`sudo blkid -o device -l -t TYPE=crypto_LUKS` &amp;&amp;
fs_uuid=`sudo blkid -o value -s UUID $fs_uuid` &amp;&amp;
sudo sed -i &quot;s/parent_device_uuid\&quot; : \&quot;/parent_device_uuid\&quot; : \&quot;$fs_uuid/&quot;
/etc/timeshift/timeshift.json &amp;&amp;
sudo sed -i &#39;s/run&quot; : &quot;true/run&quot; : &quot;false/&#39; /etc/timeshift/timeshift.json &amp;&amp;
sudo sed -i &#39;s/btrfs_mode&quot; : &quot;false/btrfs_mode&quot; : &quot;true/&#39;
/etc/timeshift/timeshift.json &amp;&amp;
sudo sed -i &#39;s/ &quot;include_btrfs_home&quot; : &quot;false&quot;,/
&quot;include_btrfs_home_for_backup&quot; : &quot;false&quot;,\n &quot;include_btrfs_home_for_restore&quot; :
&quot;false&quot;,/&#39; /etc/timeshift/timeshift.json &amp;&amp;
sudo sed -i &#39;s/schedule_daily&quot; : &quot;false/schedule_daily&quot; : &quot;true/&#39;
/etc/timeshift/timeshift.json &amp;&amp;
sudo sed -i &#39;s/schedule_boot&quot; : &quot;false/schedule_boot&quot; : &quot;true/&#39;
/etc/timeshift/timeshift.json &amp;&amp;
sudo sed -i &#39;s/count_boot&quot; : &quot;5/count_boot&quot; : &quot;3/&#39; /etc/timeshift/timeshift.json
sudo timeshift --create --comments &quot;1st&quot;</code></pre>
<h2 id="omezeni-maximalniho-poctu-snimku">Omezení maximálního počtu snímků</h2>
<pre><code>max_snapshots=6</code></pre>
<p>A jako poslední spustgíme příkazy.</p>
<pre><code>sudo sh -c &#39;
cat &gt; /etc/systemd/system/limit-timeshift-snapshots-update-grub.service $max_snapshots&#39;\` \&amp;\&amp; /usr/bin/grub-mkconfig -o /boot/grub/grub.cfg\&quot;#&quot;
/etc/systemd/system/limit-timeshift-snapshots-update-grub.service &amp;&amp;
sudo systemctl enable limit-timeshift-snapshots-update-grub.service &amp;&amp;
sudo systemctl start limit-timeshift-snapshots-update-grub.service</code></pre>
<p><b>A je to</b> nyní máte plně šifrovaný systém Arch Linux, s aumaticky vytvořenými snímky. Stačí jen při botování vybrat k jakému snímku se potřebujete vrátit.</p>]]></description>
  <category>btrfs</category><category>calamares</category><category>Návody</category><category>jekyll</category>
</item>
<item>
  <title>Pacman a AUR pomocníci</title>
  <link>https://arch-linux.cz/posts/2022/pacman-a-aur-pomocnici/</link>
  <guid isPermaLink="true">https://arch-linux.cz/posts/2022/pacman-a-aur-pomocnici/</guid>
  <pubDate>Sat, 19 Feb 2022 00:00:00 +0100</pubDate>
  <description><![CDATA[<p>V dalším díle seriálu  <a href="https://github.com/raven2cz/tux">Tondy Fischera </a> o <a href="https://arch-linux.cz/series/arch-linux-instalace/">Arch LInuxu</a>, se seznámíme se správci balíčku pro Arch Linux  a ukážeme si tripy a triky pro pacmana. Podíváme se na  AUR repozitář a  o používání  AUR pomocníků. Na video se můžete podívat na <a href="https://www.youtube.com/watch?v=g60xHvIEyJ0">Youtube autora </a>, nebo našem <a href="https://peertube.arch-linux.cz/w/cBaNDGc6eYcksKXjqHck7p">PeerTube kanále</a>.</p>
<h1 id="pacman">Pacman</h1>
<h2 id="prvni-krucky">První krůčky</h2>
<p><a href="https://wiki.archlinux.org/title/pacman">Pacman-Arch-Wiki</a> Správce balíků <code>pacman</code> je jednou z hlavních charakteristických vlastností <b>Arch Linuxu</b>. Kombinuje jednoduchý binární formát balíčku se snadno použitelným sestavovacím systémem (build system). Cílem pacmanu je umožnit snadnou správu balíčků, ať už jsou z oficiálních úložišť, nebo z vlastních sestavení uživatele.</p>
<p>Pacman udržuje systém aktuální synchronizací seznamů balíků s hlavním serverem. Tento model server/klient také umožňuje uživateli stahovat/instalovat balíčky jednoduchým příkazem, doplněný o všechny požadované závislosti.</p>
<p>Pacman je napsán v programovacím jazyce C a používá BSD tar formát pro balení.</p>
<pre><code>sudo pacman -S awesome ## install package/meta-package
sudo pacman -Syu ## System update
sudo pacman -Syy ## sync database
pacman -Ss awesome ## search package with text &#39;gnome&#39;
pacman -Qs awesome ## search installed packages
pacman -Si plasma-meta ## display extensive information
pacman -Qii awesome ## info + list of backup files
pacman -Qdt ## list packages no longer reqs (orphans)
sudo pacman -Sc ## clear packages in cached packages
sudo pacman -Scc ## all files in cache, strong aggresive, nothing leave in cache
sudo pacman -U /path/to/package/package_name-version.pkg.tar.zst #@ install local pckage, from AUR
sudo pacman -S --asdeps unzip ## install as dependency, can be removed as orphans
sudo pacman -Qe mc ## list version if it is explicitly installed
sudo pacman -D --asdeps unzip ## change the status to deps
sudo pacman -D --asexplicit unzip
sudo pacman -F pacman ## search files which are containing by package
sudo pacman --needed base-devel ## install if necessary
pactree awesome ## tree of depended packages</code></pre>
<h2 id="pacman-configuration-etc-pacman-conf">Pacman Configuration /etc/pacman.conf</h2>
<p>Moje nastavení s barvami, přehlednou tabulkou stažení balíčků, opravodovým pacmanem a paralelním stahováním.</p>
<pre><code>Color
CheckSpace
VerbosePkgLists
ILoveCandy
ParallelDownloads = 5</code></pre>
<p>Bezpečnost a gpg podepisování: <code>SigLevel = Required DatabaseOptional</code> Pacman podporuje podpisy balíčků, které do balíků přidávají další vrstvu zabezpečení. Výchozí konfigurace, <code>SigLevel = Required DatabaseOptional</code>, umožňuje ověření podpisu pro všechny balíčky na globální úrovni.</p>
<p>Nikdy nepoužívejte <code>SigLevel = Never</code> (jen zcela v případě velké nouze, nebo člověka, kterého skutečně znáte a jeho závislost nelze obnovit kvůli nemoci například.)</p>
<h2 id="pacman-repositories-multilib-extra-community-a-uroven-testing">Pacman Repositories multilib, extra, community a úrověň testing</h2>
<p>Může se také stát, že úložiště obsahující balíček není ve vašem systému povoleno, např. Balíček může být v multilib úložišti, ale multilib není povolen ve vašem pacman.conf. Nutno povolit.</p>
<p>Můžete se stát i testerem pro Arch. Zapnout balíčky s <code>-testing</code>. Nutno pak ale updatovat celý systém, není jednoduchá změna! Pozor.</p>
<h1 id="aur-arch-user-repository">AUR (Arch User Repository)</h1>
<p><b>Arch User Repository (AUR)</b> je komunitní úložiště pro uživatele Arch. Obsahuje popisy balíků ( PKGBUILDs ), které vám umožňují sestavit balíček ze zdroje pomocí <code>makepkg</code> a poté jej nainstalovat pomocí pacman. AUR byla vytvořena za účelem organizace a sdílení nových balíčků z komunity a za účelem urychlení začlenění oblíbených balíčků do úložiště komunity.</p>
<p>Mnoho nových balíčků, které vstupují do oficiálních úložišť, začíná v AUR. V AUR mohou uživatelé přispívat svými vlastními sestavami balíků (PKGBUILDa související soubory). Komunita AUR má možnost hlasovat pro balíčky v AUR. Pokud se balíček stane dostatečně populárním - za předpokladu, že má kompatibilní licenci a dobrou techniku ​​balení - může být vložen do komunitního úložiště (přímo přístupného pacmanem nebo abs).</p>
<p><b>Varování:</b> Balíčky AUR jsou uživatelsky vytvářený obsah. Tyto PKGBUILDjsou zcela neoficiální a nebyli důkladně prověřeni. Jakékoli použití poskytnutých souborů je na vaše vlastní riziko.</p>
<h2 id="yay-paru-aura-pomocnici-aur">Yay, Paru, Aura pomocníci AUR</h2>
<ul><li><a href="https://github.com/Jguer/yay">JGuer/yay</a> - Yet Another Yogurt - An AUR Helper napsán v Go</li></ul>
<ul><li><a href="https://github.com/Morganamilo/paru">Morganamilo/paru</a> - Paru AUR pomocník s mnoho features a minimální interakcí. Napsán Rust.</li></ul>
<ul><li><a href="https://github.com/fosskers/aura">fosskers/aura</a> - Nadstandardní služby, zajímavé funkce, downgrades a zabezpečení upgrades a snapshots ovládání. Napsáno v Haskell.</li></ul>
<h3 id="paru-instalace">Paru instalace</h3>
<pre><code>sudo pacman -S --needed base-devel
git clone https://aur.archlinux.org/paru-bin.git
cd paru-bin
makepkg -si</code></pre>
<h3 id="paru-priklady-uziti">Paru příklady užití</h3>
<ul><li><code>**paru **</code> - Interaktivně vyhledávejte a instalujte .</li></ul>
<ul><li><code>**paru**</code> - Alias ​​pro paru -Syu.</li></ul>
<ul><li><code>**paru -S **</code> - Nainstalujte si konkrétní balíček.</li></ul>
<ul><li><b><code>paru -Sua</code></b><b> </b>- Upgradujte balíčky AUR.</li></ul>
<ul><li><code>**paru -Qua**</code> - Vytiskněte dostupné aktualizace AUR.</li></ul>
<ul><li><code>**paru -G **</code> - Stáhněte si PKGBUILD a související soubory z .</li></ul>
<ul><li><b><code>paru -Gp </code></b><b> </b>- Vytiskněte PKGBUILD z .</li></ul>
<ul><li><b><code>paru -Gc </code></b><b> </b>- Vytiskněte si komentáře AUR pro .</li></ul>
<ul><li><b><code>paru --gendb</code></b><b> </b>- Vytvořte databázi devel pro sledování *-gitbalíčky. To je potřeba pouze tehdy, když zpočátku používáte paru.</li></ul>
<ul><li><code>**paru -Ui**</code> - Vytvořte a nainstalujte PKGBUILD do aktuálního adresáře.</li></ul>
<h3 id="aura-instalace">Aura instalace</h3>
<pre><code>git clone https://aur.archlinux.org/aura-bin.git
cd aura-bin
makepkg
sudo pacman -U </code></pre>
<h3 id="aura-zajimave-prikazy">Aura zajímavé příkazy</h3>
<ul><li><code>**aura -Pa**</code> - Analyzujte všechny místně nainstalované balíčky AUR.</li></ul>
<ul><li><code>**aura -O**</code> - Zobrazit osiřelé balíčky.</li></ul>
<ul><li><code>**aura -L**</code> - Zobrazit protokol Pacman.</li></ul>
<ul><li><code>**aura -Li **</code> - Zobrazit historii instalace / upgradu balíčku.</li></ul>
<ul><li><b><code>aura -Cc </code></b><b> </b>- Odstranit všechny kromě nejnovější nverze každého balíčku uloženého v mezipaměti.</li></ul>
<ul><li><b><code>aura -C </code></b><b> </b>- Downgrade balíčku.</li></ul>
<ul><li><code>**aura -Cv**</code> - Odstranit všechny /var/cache/aura/vcsmezipaměti</li></ul>
<ul><li><code>**aura -B**</code> - Uložte záznam JSON všech nainstalovaných balíčků.</li></ul>
<ul><li><code>**aura -Br**</code> - Obnovte uložený záznam. Podle potřeby se vrací zpět a odinstaluje.</li></ul>
<ul><li><code>**aura -Bc **</code> - Odstranit všechny kromě nejnovější nuložené státy.</li></ul>
<ul><li><code>**aura -Bl**</code> - Zobrazit všechny uložené názvy souborů stavu balíčku.</li></ul>
<ul><li><code>**aura -Au**</code> - Upgradujte všechny nainstalované balíčky AUR.</li></ul>
<ul><li><b><code>aura -Akuax</code></b><b> - </b>Oblíbený autor (upgrady, odstranění makedeps, ukazuje rozdíly PKGBUILD, ukazuje postup)</li></ul>
<ul><li><code>**aura -As **</code> - Hledejte AUR pomocí regexu.</li></ul>
<ul><li><code>**aura -Ap **</code> - Zobrazit balíček PKGBUILD.</li></ul>
<ul><li><code>**aura -Ad **</code> - Seznam závislostí balíčku.</li></ul>
<p><a href="https://www.youtube.com/watch?v=g60xHvIEyJ0">https://www.youtube.com/watch?v=g60xHvIEyJ0</a></p>
<h1 id="dulezite-odkazy">Důležité odkazy</h1>
<ul><li><a href="https://www.youtube.com/user/tondafischer/featured">Youtube Channel TUX: Svět Linuxu</a></li></ul>
<ul><li><a href="https://archlinux.org/">archlinux.org</a></li></ul>
<ul><li><a href="https://wiki.archlinux.org/">wiki.achlinux.org</a></li></ul>
<ul><li><a href="https://fishlive.org/en/blog-tech-art/arch">fishlive.org/blog</a></li></ul>
<ul><li><a href="https://github.com/raven2cz/tux">github/raven2cz/tux</a></li></ul>
<ul><li><a href="https://github.com/raven2cz/dotfiles">github/raven2cz/dotfiles</a></li></ul>]]></description>
  <category>AUR</category><category>pacmam</category><category>Návody</category><category>jekyll</category>
</item>
<item>
  <title>Quad Boot</title>
  <link>https://arch-linux.cz/posts/2022/quad-boot/</link>
  <guid isPermaLink="true">https://arch-linux.cz/posts/2022/quad-boot/</guid>
  <pubDate>Fri, 11 Feb 2022 00:00:00 +0100</pubDate>
  <description><![CDATA[<p>Další díl seriálu  o <a href="https://arch-linux.cz/series/arch-linux-instalace/">instalaci a nastavení Arch Linuxu</a> od <a href="https://github.com/raven2cz/tux">Tondy Fishera</a>, obsahuje plné nastavení reálného desktopu se čtyřmi operačními systémy s výběrovým dialogem pro zvolení, který systém si při spuštění počítače vybrat. Jedná se tedy o quad booting (dual booting je pouze pro dva operační systémy). Video je již i na našem<a href="https://peertube.arch-linux.cz/w/b3ajczWRf3XFy4vhCTPQz1"> PeerTube kanále.</a></p>
<h1 id="diskovy-spravce-gnome-disks">Diskový správce Gnome-Disks</h1>
<pre><code>sudo pacman -S gnome-disk-utility</code></pre>
<ul><li>Moutovat diskové oddíly pomocí ikony ozubených kol, zvolit <b>Edit Mount Options</b>.</li></ul>
<ul><li>Nastavit <code>Display Name</code> a <code>Mount Point</code> <code>/mnt/displayName</code>.</li></ul>
<ul><li>Ověřit, že změny se správně zapsaly do <code>/etc/fstab</code>.</li></ul>
<h1 id="polkit-gnome">Polkit-Gnome</h1>
<pre><code>sudo pacman -S polkit-gnome</code></pre>
<p>Spustit jej v <code>autorun.sh</code> skriptu.</p>
<h1 id="support-ntfs-windows">Support NTFS (Windows)</h1>
<pre><code>sudo pacman -S ntfs-3g</code></pre>
<p>Podpora NTFS a mountování win partitions.</p>
<h1 id="grub-editace">Grub Editace</h1>
<pre><code>sudo nvim /etc/default/grub
# V Grub přidat parameter GRUB_DISABLE_OS_PROBER=false
sudo grub-mkconfig -o /etc/grub/grub.cfg

sudo pacman -S grub-customizer</code></pre>
<h1 id="grub-rozliseni-a-themes">Grub rozlišení a themes</h1>
<h2 id="konfigurace-vhodneho-rozliseni">Konfigurace vhodného rozlišení</h2>
<ul><li>restart, v grub tabulce stisk <code>C</code>, cmd grub line napsat <code>videoinfo</code>, opsat si nejlepší rozlišení, např. <code>2048x1080x32</code>.</li></ul>
<ul><li>Edit opět stejně grub soubor v <code>/etc/default/grub</code>, nastavit v <code>GRUB_GFXMODE=2048x1080x32,auto</code> vaše rozlišení, ne moje. A nezapomenout přegenerovat grub přes <code>grub-mkconfig</code>!</li></ul>
<h2 id="instalace-grub2-themes">Instalace Grub2 Themes</h2>
<pre><code>cd ~/git/github
git clone https://github.com/vinceliuice/grub2-themes.git
sudo ./install.sh -t vimix -s 2k</code></pre>
<p><a href="https://www.youtube.com/watch?v=wj06-4Y7Pkk">https://www.youtube.com/watch?v=wj06-4Y7Pkk</a></p>
<h1 id="dulezite-odkazy">Důležité odkazy</h1>
<ul><li><a href="https://www.youtube.com/user/tondafischer/featured">Youtube Channel </a><a href="https://www.youtube.com/user/tondafischer/featured">TUX</a><a href="https://www.youtube.com/user/tondafischer/featured">: Svět Linuxu</a></li></ul>
<ul><li><a href="https://archlinux.org/">archlinux</a><a href="https://archlinux.org/">.org</a></li></ul>
<ul><li><a href="https://wiki.archlinux.org/">wiki.achlinux.org</a></li></ul>
<ul><li><a href="https://fishlive.org/en/blog-tech-art/arch">fishlive.</a><a href="https://fishlive.org/en/blog-tech-art/arch">org</a><a href="https://fishlive.org/en/blog-tech-art/arch">/blog</a></li></ul>
<ul><li><a href="https://github.com/raven2cz/tux">github/raven2cz/tux</a></li></ul>
<ul><li><a href="https://github.com/raven2cz/dotfiles">github/raven2cz/dotfiles</a></li></ul>]]></description>
  <category>Grub2</category><category>Návody</category><category>jekyll</category>
</item>
<item>
  <title>Instalace Xorg a window manageru DWM</title>
  <link>https://arch-linux.cz/posts/2022/instalace-xorg-a-window-manageru-dwm/</link>
  <guid isPermaLink="true">https://arch-linux.cz/posts/2022/instalace-xorg-a-window-manageru-dwm/</guid>
  <pubDate>Sat, 05 Feb 2022 00:00:00 +0100</pubDate>
  <description><![CDATA[<p>Další díl seriálu o Arch Linuxu od<a href="https://github.com/raven2cz"> Tondy Fischera</a>. Tento 4. díl pojednává o instalaci Xorg a dynamického tiling window manageru DWM. Provede Vás postupně základní instalací v OS Arch Linux a seznámí se základním ovládáním prostředí. Ve finále budete mít systém nachystán pro svou běžnou práci a budete se moci pustit do studia systému</p>
<h1 id="instalace-xorg-a-vysvetleni-xinitrc">Instalace Xorg a vysvětlení .xinitrc</h1>
<pre><code>sudo pacman -S xorg xorg-xinit xterm
startx</code></pre>
<p>Zobrazí se 3x xterms, vlevo je hlavní xterm. Pokud jej ukončíte zkratkou <code>ctrl+d</code>, dojde k ukončení celého xorg.</p>
<h1 id="instalace-a-kompilace-dwm-rucne">Instalace a kompilace DWM ručně</h1>
<p><b>DWM</b> má domov zde <a href="https://suckless.org/">https://suckless.org/</a></p>
<ul><li>Povídání o DWM na suckless stránkách <a href="https://dwm.suckless.org/">https://dwm.suckless.org/</a></li></ul>
<ul><li>Velmi důležitý tutoriál k DWM <a href="https://dwm.suckless.org/tutorial/">https://dwm.suckless.org/tutorial/</a></li></ul>
<ul><li>Arch wiki stránky <a href="https://wiki.archlinux.org/title/dwm">Arch Wiki DWM</a></li></ul>
<ul><li>Seriál na root.cz <a href="https://www.root.cz/clanky/suckless-dynamicky-spravce-oken-dwm/">Suckless: dynamický správce oken dwm</a> a <a href="https://www.root.cz/serialy/suckless-project/">https://www.root.cz/serialy/suckless-project/</a></li></ul>
<h2 id="dwm-kompilace-a-instalace">DWM kompilace a instalace</h2>
<pre><code>sudo pacman -S git
mkdir -p ~/git/github
cd ~/git/github
git clone git://git.suckless.org/dwm
git clone git://git.suckless.org/st
git clone git://git.suckless.org/dmenu
cd dwm ## toto proved pro kazdy adresar dwm, st a dmenu
sudo make clean install ## postupne nainstalovat dwm, st, dmenu</code></pre>
<h2 id="konfigurace-xinitrc-a-xresources">Konfigurace .xinitrc a Xresources</h2>
<p>Zde již si připravíme .xinitrc komplexnější pro testy a spoštění WM (window managers) a DE (desktop environements) používaných v celém seriálu. Stažení provedeme z mých dofiles následujícím postupem.</p>
<pre><code>cd ~/git/github
git clone https://github.com/raven2cz/dotfiles dotfiles-raven2cz
cd dotfiles-raven2cz
cp .xinitrc ~
cp .Xresources ~
nvim ~/.xinitrc ## zakomentovat setxkbmap -layout &quot;us,cz&quot; - prekryva hodne kl.zkratek s DWM!</code></pre>
<h2 id="spusteni-dwm">Spuštění DWM</h2>
<pre><code>startx ~/.xinitrc dwm</code></pre>
<h1 id="prvni-bash-script">První Bash Script</h1>
<p>Ukázka prvního jednoduchého bash skriptu pro zobrazení hodin vpravo nahoře v <code>xsetroot</code> sekci.</p>
<pre><code>nvim ~/.local/bin/dwm_time
#!/bin/bash
while true; do
   xsetroot -name &quot;$( date +&quot;%F %R&quot; )&quot;
   sleep 1m    # Update time every minute
done

chmod ug+x ~/.local/bin/dwm_time</code></pre>
<p>Nutno přidat <code>$HOME/.local/bin</code> do <code>/etc/profile</code> Přidejte se sudo do tohoto souboru řádku: <code>appendpath &#39;/home/box/.local/bin&#39;= za ostatní již existující a soubor uložte. Nutný restart nebo zavolání z daného terminálu příkaz =source /etc/profile</code>.</p>
<h1 id="prvni-wallpaper">První Wallpaper</h1>
<p>Provede alespoň základní nastavení pozadí, jsme suckless, víc zatím dělat nebudeme, záleží nám na efektivě a minimalismu. Stáhněte si své oblíbené obrázky pomocí firefox nebo přes <code>/mnt</code> sdílený adresář. Pro ostatní mohu nabídnout sbírku mých public wallpapers pro demonstraci.</p>
<pre><code>cd ~/git/github
git clone https://github.com/raven2cz/public-wallpapers</code></pre>
<p>Použijeme prohlížeč obrázků <code>feh</code> pro nastavení pozadí. <a href="https://wiki.archlinux.org/title/feh#Set_the_wallpaper">Arch-Wiki FEH</a></p>
<pre><code>sudo pacman -S feh
feh --bg-scale ~/git/github/public-wallpapers/00007-minimal-forest.jpg</code></pre>
<p>Později si ukážeme, jak tyto změny zahrnout do našeho <code>autorun</code> skriptu při spuštění DWM.</p>
<h1 id="dwm-flexipatch">DWM-Flexipatch</h1>
<p>Zjednodušená možnost patches pro DWM pomocí flexipatch project.</p>
<ul><li><a href="https://github.com/bakkeby/dwm-flexipatch">https://github.com/bakkeby/dwm-flexipatch</a> Nutné provést git clone repository. Editovat soubor <code>config.def.h</code>. na hodnotu 1 nastavit patches, které chcete aktivovat, uložit soubor. Na závěř standardně zavolat <code>sudo make install</code>, zkompiluje dwm a umístí jej do spouštěcích adresářů.</li></ul>
<p><a href="https://www.youtube.com/watch?v=Z9grvRgriX4">https://www.youtube.com/watch?v=Z9grvRgriX4</a></p>
<h1 id="dulezite-odkazy">Důležité odkazy</h1>
<ul><li><a href="https://www.youtube.com/user/tondafischer/featured">Youtube Channel TUX: Svět Linuxu</a></li></ul>
<ul><li><a href="https://archlinux.org/">archlinux.org</a></li></ul>
<ul><li><a href="https://wiki.archlinux.org/">wiki.achlinux.org</a></li></ul>
<ul><li><a href="https://fishlive.org/en/blog-tech-art/arch">fishlive.org/blog</a></li></ul>
<ul><li><a href="https://github.com/raven2cz/tux">github/raven2cz/tux</a></li></ul>
<ul><li><a href="https://github.com/raven2cz/dotfiles">github/raven2cz/dotfiles</a></li></ul>]]></description>
  <category>DWM</category><category>Návody</category><category>jekyll</category>
</item>
<item>
  <title>Jak nainstalovat  AUR pomocníka yay</title>
  <link>https://arch-linux.cz/posts/2022/jak-nainstalovat-aur-pomocnika-yay/</link>
  <guid isPermaLink="true">https://arch-linux.cz/posts/2022/jak-nainstalovat-aur-pomocnika-yay/</guid>
  <pubDate>Sat, 29 Jan 2022 00:00:00 +0100</pubDate>
  <description><![CDATA[<p><b>Upozornění: Instalace balíčků z AUR není podporována Arch Linuxem. Instalace z něj může způsobit selhání systému.</b></p>
<h3 id="co-je-aur">Co je  AUR</h3>
<p>Arch User Repository (AUR) je komunitou řízené úložiště pro uživatele Arch Linuxu. Obsahuje popisy balíčků ( <a href="https://wiki.archlinux.org/title/PKGBUILD">PKGBUILDs</a> ), které vám umožňují sestavit balíček ze zdrojového kódu pomocí <a href="https://wiki.archlinux.org/title/Makepkg">makepkg</a> a poté jej nainstalovat přes <a href="https://wiki.archlinux.org/title/Pacman#Additional_commands">pacman</a> . AUR byl vytvořen, aby organizoval a sdílel nové balíčky z komunity a pomohl urychlit začlenění oblíbených balíčků do <a href="https://wiki.archlinux.org/title/Community_repository">komunitního úložiště</a> .</p>
<p>Velký počet nových balíčků, které vstupují do oficiálních repozitářů, začíná v AUR. V AUR mohou uživatelé přispívat vlastním sestavením balíčků (PKGBUILD a související soubory).</p>
<p>Komunita AUR má možnost hlasovat pro balíčky v AUR. Pokud se balíček stane dostatečně populárním – za předpokladu, že má kompatibilní licenci a dobrou balicí techniku ​​– může být vložen do komunitního úložiště.</p>
<p>Na rozdíl od balíčků v repozitáři Archu jsou balíčky AUR spravovány uživateli Archu a většina to dělá jako koníčka vedle svého běžného života. Aktualizace balíčků proto nejsou rozsáhle testovány a mohou způsobit potíže nereagující aplikací nebo dokonce způsobit poškození systému, takže jejich použití je na vaši vlastní odpovědnost.</p>
<h3 id="co-je-yay"><b>Co je yay</b></h3>
<p>Yay je zkratka pro &#39;Yet Another Yogurt&#39;. Technicky jde o <a href="https://wiki.archlinux.org/index.php/pacman">pacmana</a> a pomocníka AUR napsaný v <a href="https://golang.org/">programovacích jazycích Go</a> . Je to nejpopulárnější <a href="https://wiki.archlinux.org/index.php/Arch_User_Repository">Arch User Repository (AUR)</a> pomocník. S Yay můžete využít výhody obrovského Arch User Repository balíčků a snadno zkompilovat a nainstalovat  software.</p>
<p>V podstatě automatizuje mnoho úloh správy balíčků, jako je vyhledávání, řeší závislosti za běhu, kompiluje a sestavuje balíčky a samozřejmě publikuje vaše vlastní balíčky pro AUR.</p>
<h3 id="nainstalujte-yay-v-arch-linuxu">Nainstalujte yay v Arch Linuxu</h3>
<h3 id="pozadavky">Požadavky</h3>
<p>Tyto kroky vyžadují <a href="https://aur.archlinux.org/packages/meta-group-base-devel/">base-devel</a> ke kompilaci a instalaci balíček Otevřete terminál a spusťte níže uvedené příkazy. Po zobrazení výzvy zadejte heslo správce.</p>
<pre><code>sudo pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si</code></pre>
<h2 id="instalace-balicku">Instalace balíčků</h2>
<p>Chcete-li nainstalovat balíčky pomocí yay, můžete použít tento příkaz.</p>
<pre><code>yay -S název_balíčku</code></pre>
<p>Poté uvidíte očíslovaný seznam názvů balíčků v nainstalovaných úložištích vašeho systému. Jednoduše zadejte číslo verze balíčku, kterou chcete nainstalovat, a yay ji nainstaluje do vašeho systému.</p>
<p>Balíčky můžete také vyhledávat jednoduchým zadáním:</p>
<pre><code>yay název_balíčku</code></pre>
<p>Pokud chcete další informace o balíčku, můžete zadat:</p>
<pre><code>yay -Si název_balíčku</code></pre>
<p>Yay může také aktualizovat balíčky Pacman a AUR najednou pomocí tohoto příkazu:</p>
<pre><code>yay -Syu</code></pre>]]></description>
  <category>AUR</category><category>yay</category><category>Návody</category><category>jekyll</category>
</item>
<item>
  <title>Virtualbox Arch Linux nastavení</title>
  <link>https://arch-linux.cz/posts/2022/virtualbox-arch-linux-nastaveni/</link>
  <guid isPermaLink="true">https://arch-linux.cz/posts/2022/virtualbox-arch-linux-nastaveni/</guid>
  <pubDate>Sun, 16 Jan 2022 00:00:00 +0100</pubDate>
  <description><![CDATA[<p>Další díl od <a href="https://github.com/raven2cz">raven2cz</a>  pojednává o nastavení konzolového rozlišení a fontu. Dále pak nastavení Virtualbox Services pro dynamickou změnu rozlišení, sdílenou schránku a sdílení souborové složky. Doplňuje některé důležité body z minulého dílu. Po tomto díle budete mít Virtualbox Arch Image zcela připraven pro všechny ostatní další práce s Arch Linuxem.</p>
<h1 id="nastaveni-tty-rozliseni-a-fontu">Nastavení TTY rozlišení a fontu</h1>
<h2 id="nastaveni-rozliseni-pro-tty-framebuffer">Nastavení rozlišení pro TTY framebuffer</h2>
<pre><code>sudo nvim /etc/default/grub (zkontrolujte a změňte následující řádky)
GRUB_GFXMODE=1920x1080x32,auto
GRUB_GFXPAYLOAD_LINUX=keep

přegenerovat grub default do /boot/grub/grub.cfg příkazem z instalace:
sudo grub-mkconfig -o /boot/grub/grub.cfg
poweroff
(znovu spusťte virtualbox arch image)</code></pre>
<p>Nyní máme již v pořádku nastaven framebuffer na fullhd, ale font je příliš malý (pokud máte velké rozlišení obrazovky).</p>
<h2 id="nastaveni-tty-fontu">Nastavení TTY fontu</h2>
<pre><code>sudo pacman -S terminus-font
setfont ter-132n  (změna je pouze dočasná, pro trvale zapsat do souboru)
sudo nvim /etc/vconsole.conf (zapište následující řádky)
FONT=ter-132n
FONT_MAP=8859-2
poweroff (reboot u vbox moc nefunguje)</code></pre>
<h1 id="virtualbox-guest-utils">Virtualbox Guest Utils</h1>
<pre><code>sudo pacman -S virtualbox-guest-utils
sudo systemctl status vboxservice.service
VBoxClient-all  (aktivovat všechny služby virtualboxu)
sudo systemctl restart vboxservice.service
sudo systemctl status vboxservice.service
poweroff</code></pre>
<p><a href="https://www.youtube.com/watch?v=LAN3lbgDWP4&amp;t=209s">https://www.youtube.com/watch?v=LAN3lbgDWP4&amp;t=209s</a></p>
<h1 id="dulezite-odkazy">Důležité odkazy</h1>
<ul><li><a href="https://www.youtube.com/user/tondafischer/featured">Youtube Channel TUX: Svět Linuxu</a></li></ul>
<ul><li><a href="https://archlinux.org/">archlinux.org</a></li></ul>
<ul><li><a href="https://wiki.archlinux.org/">wiki.achlinux.org</a></li></ul>
<ul><li><a href="https://fishlive.org/en/blog-tech-art/arch">fishlive.org/blog</a></li></ul>
<ul><li><a href="https://github.com/raven2cz/tux">github/raven2cz/tux</a></li></ul>
<ul><li><a href="https://github.com/raven2cz/dotfiles">github/raven2cz/dotfiles</a></li></ul>]]></description>
  <category>virtualbox</category><category>Návody</category><category>jekyll</category>
</item>
<item>
  <title>Jak na VirtualBox</title>
  <link>https://arch-linux.cz/posts/2022/jak-na-virtualbox/</link>
  <guid isPermaLink="true">https://arch-linux.cz/posts/2022/jak-na-virtualbox/</guid>
  <pubDate>Sat, 08 Jan 2022 00:00:00 +0100</pubDate>
  <description><![CDATA[<p>Pro všechny co chtějí zatím jen vyzkoušet instalaci <a href="https://arch-linux.cz/arch-linux-instalace/">Arch Linuxu</a> připravil <a href="https://github.com/raven2cz">raven2cz</a>  video návod jak použit virtualizaci a připravit vše pro instalaci Arch Linuxu.</p>
<p>Video je již na našem <a href="https://peertube.arch-linux.cz/w/hGJe97QHBVZHhBXveRaz3a">PeerTube kanále</a> a nebo video můžete zhlédnout   na Youtube autora</p>
<p><a href="https://youtu.be/LOMXEppGMXU">https://youtu.be/LOMXEppGMXU</a></p>]]></description>
  <category>virtualbox</category><category>Návody</category><category>jekyll</category>
</item>
<item>
  <title>Arch Linux Instalace</title>
  <link>https://arch-linux.cz/posts/2021/arch-linux-instalace/</link>
  <guid isPermaLink="true">https://arch-linux.cz/posts/2021/arch-linux-instalace/</guid>
  <pubDate>Thu, 30 Dec 2021 00:00:00 +0100</pubDate>
  <description><![CDATA[<p>Velké poděkování patří uživateli <a href="https://github.com/raven2cz">raven2cz</a>, který připravil tento skvělý návod včetně videa. Video je již nahráno na našem <a href="https://peertube.arch-linux.cz/c/videa_archlinuxcz/videos?s=1">PeerTube kanále</a>.</p>
<h3 id="priprava-zarizeni-pro-instalaci">Příprava zařízení pro instalaci</h3>
<h4 id="stazeni-iso-a-vytvoreni-boot-usb-disku">Stažení ISO a vytvoření BOOT USB disku</h4>
<p><a href="https://arch-linux.cz/jak-stahnout/"><b>Stažení ArchLinux ISO</b></a>, ve Win použít Rufus software (portable) na flash disk. V Linuxu použít <code>dd</code> command.</p>
<h3 id="priprava-partitions-na-cilovem-disku">Příprava partitions na cílovém disku</h3>
<p>Zjistit disky a souborové systémy <code>fdisk -l</code>, pak <code>cfdisk /dev/</code>, zkontroluj kterou partition přesně použít pro umístění root adresáře, popř. domácího adresáře; např. pro nvmeXn1 bude nvmeXn1p2 nebo p3 apod. Pro EFI partition použít alespoň <code>+256M</code> parameter; nastav pro ni partition type to <code>EFI System (type 1)</code>, pro root partition <code>/</code> nastavit <code>Linux system</code>.</p>
<p><b>DŮLEŽITÉ:</b> Návod používá dnes již standardní UEFI. Pokud testuje Arch dle tohoto seriálu v VirtualBox. Je nutné na záložce Systém VM <b>označit checkbox EFI</b>. Aby bylo možné používat EFI pro boot systému, jinak nepůjde instalovat bootloader.</p>
<h2 id="vytvoreni-souborovych-systemu">Vytvoření souborových systémů</h2>
<h4 id="format-diskovych-oddilu">Formát diskových oddílů</h4>
<p>Zvolení formátu pro diskové oddíly: <code>MBR</code> nebo <code>GPT</code>. Pro <code>GPT</code> nutno UEFI a 64bit OS. Již pro nové stanice s novým HW doporučuji <code>GPT</code> a to s dual boot pro Win10/11 + Linux.</p>
<h4 id="formatovani-diskovych-oddilu">Formátování diskových oddílů</h4>
<p>Formátování EFI partition <code>fat</code>, root partition formátuji <code>ext4</code>.</p>
<pre><code>mkfs.fat -F32 /dev/sda1
mkfs.ext4 /dev/sda2

mkswap /dev/sdxY
swapon /dev/sdxY</code></pre>
<h3 id="internetove-pripojeni">Internetové připojení</h3>
<h4 id="wifi">Wifi</h4>
<p>Podívejte se na <a href="https://wiki.archlinux.org/title/Iwd">IWD-iwctl</a>.</p>
<pre><code>iwctl
[iwd]# device list -&gt; opsat si označení svého wifi zařízení
[iwd]# station  get-networks -&gt; opsat si síť, kterou potřebujete pro připojení
[iwd]# station  connect  -&gt; připojit se ke zvolené síti a zadat heslo

druha moznost, pokud již informace máte předem zjištěné:
iwctl --passphrase  station  connect 

ping archlinux.org -&gt; otestovaní připojení</code></pre>
<h4 id="ethernet">Ethernet</h4>
<p>Pouze otestovat připojení, zda internet je k dosažení.</p>
<pre><code>ping archlinux.org</code></pre>
<h3 id="vyber-arch-mirrors">Výběr Arch Mirrors</h3>
<p>Výběr nejbližších a rychlých zrcadel balíčků archu.</p>
<p>Nejprve update, stažení skriptu <code>reflector</code> a záloha originální konfigurace.</p>
<pre><code>pacman -Syy
pacman -S reflector
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak</code></pre>
<p>Výběr země k nalezení nejbližších bodů připojení: US, CZ, DE atd.</p>
<pre><code>reflector -c &quot;CZ&quot; -f 12 -l 10 -n 12 --save /etc/pacman.d/mirrorlist</code></pre>
<h3 id="virtualbox-tty-rozliseni-pri-instalaci">Virtualbox tty rozlišení při instalaci</h3>
<pre><code>pacman -S fbset
fbset -g 2048 1080 2048 1080 32</code></pre>
<h2 id="instalace-zakladniho-systemu-base">Instalace základního systému (Base)</h2>
<p>Připojení (mountování) naformátované partition připravené pro root systému</p>
<pre><code>mount /dev/sda2 /mnt</code></pre>
<p>Preferuji instalaci aktuálního kernelu (bez speciálních úprav a zen úprav). Bez nutnosti instalace LTS kernelu (Long Term Support). Balík jádra a dalších důležitých souvisejících nástrojů je označen <code>linux</code></p>
<p>Dále doporučuji nainstalovat vhodný textový editor pro úpravu konfiguračních souborů. V mém případě, co bude prezentováno je textový editor <code>neovim</code>, který spouštíte příkazem <code>nvim</code>.</p>
<pre><code>pacstrap /mnt base base-devel linux linux-headers linux-firmware neovim nano</code></pre>
<p>Pro úplnost ještě uvedu instalaci s možností druhého LTS kernelu. Pro základní desktop toto není nutné. V případě problémů je možné kdykoliv doinstalovat, nebo zvolit zen-kernel.</p>
<pre><code>pacstrap /mnt base base-devel linux linux-headers linux-firmware linux-lts linux-lts-headers neovim nano</code></pre>
<h3 id="konfigurace-nainstalovaneho-arch-systemu">Konfigurace nainstalovaného Arch systému</h3>
<p>Generovat <code>fstab</code> soubor pro připojení diskových oddílů a služeb při spuštění systému. Přepínač <code>-U</code> je vhodný pro ukládání UUID disků, aby bylo možné jednoduše disky přehazovat a přidávat!</p>
<pre><code>genfstab -U /mnt &gt;&gt; /mnt/etc/fstab</code></pre>
<h2 id="chroot">CHROOT</h2>
<p>Vstupte do svého nového systému pomocí <code>chroot</code>.</p>
<p><b>DÚLEŽITÉ:</b> Tento příkaz, kterému předchází příkaz <code>mount</code> pro root partition, je velmi užitečný pro opravu systému, reinstalace systému, opravy chyb, popřípadě volání příkazů, které vyžadují odpojený disk. USB klíčenka tak může kdykoliv sloužit pro jednoduché pořešení všech problemů. Systém se tak jednoduše stává nezničitelný.</p>
<pre><code>arch-chroot /mnt</code></pre>
<h2 id="nastaveni-casu-a-timezone">Nastavení času a timezone</h2>
<p>Pozor na tento bod. Je potřeba jej udělat pečlivě, dle mého postupu.</p>
<pre><code>timedatectl list-timezones
timedatectl set-timezone Europe/Prague
ln -sf /usr/share/zoneinfo/Europe/Prague /etc/localtime
hwclock --systohc    (vygeneruje důležitý /etc/adjtime)</code></pre>
<h2 id="nastaveni-lokalizace">Nastavení Lokalizace</h2>
<p>Doporučuji si ponechat <code>US</code> lokalizaci. V češtině potom používat určité množiny programů a nástrojů, které jsou pro češtinu vhodné. Podobně postupují i programátoři, kteří do kódu určitě nepíší české komentáře. Myšlenkově tedy mějte oddělený jazyk pro konfigurace a jazyk pro GUI.</p>
<p>Editujte soubor <code>/etc/locale.gen</code> obsahující všechny dostupné lokalizace. odkomentujte potřebné lokalizace. V našem případě odkomentujte <code>en_US.UTF-8 UTF-8</code></p>
<p>Nyní již můžete generovat lokalizační soubory a nakonfigurovat <code>locale.conf</code> Pokud tento krok uděláte špatně, budete mít velké problémy v mnoha programech a terminálových aplikacích, proto si pečlivě zkontrolujte následující příkazy.</p>
<pre><code>locale-gen
echo LANG=en_US.UTF-8 &gt; /etc/locale.conf
export LANG=en_US.UTF-8</code></pre>
<h2 id="network-konfigurace">Network konfigurace</h2>
<p>Zadejte svůj definovaný název počítače do <code>/etc/hostname</code>. V mém případě <code>r7arch</code>. Pozor nesmí obsahovat pomlčky. Dále pak udělejte základní mapování do <code>/etc/hosts</code>.</p>
<pre><code>echo r7arch &gt; /etc/hostname
nvim /etc/hosts (uložte následující řádky)
127.0.0.1 localhost
::1 localhost
127.0.1.1 r7arch</code></pre>
<h2 id="nastaveni-root-hesla">Nastavení root hesla</h2>
<p>Nastavte své root heslo pomocí příkazu <code>passwd</code>.</p>
<h2 id="instalace-meho-fundamental-software">Instalace mého Fundamental Software</h2>
<p>Nyní doporučuji nainstalovat naprosto fundamentální software pro přístup a základní obsluhu systému.</p>
<pre><code>pacman -S openssh networkmanager wpa_supplicant netctl
systemctl enable NetworkManager
systemctl enable sshd

pacman -S amd-ucode (pro AMD) pacman -S intel-ucode (pro INTEL)
mkinitcpio -p linux</code></pre>
<h2 id="instalace-ovladacu-a-xorg">Instalace ovladačů a Xorg</h2>
<p>Pro desktop je nutné nainstalovat správné grafické ovladače a základní basement pro Xorg grafické rozhraní. Toto doporučiji i v případě, že budete chtít používat Wayland s plasma nebo gnome.</p>
<h3 id="amd-graficka-karta">AMD grafická karta</h3>
<pre><code>pacman -S xorg
pacman -S mesa  (již obsažen v xorg, pouze pro informaci)</code></pre>
<h3 id="nvidia-graficka-karta">NVIDIA grafická karta</h3>
<p>Pokud používáte LTS, nezpomeňte zvolit suffix LTS v názvu balíčků.</p>
<pre><code>pacman -S xorg
pacman -S nvidia nvidia-utils
pacman -S nvidia-lts nvidia-utils-lts (varianta pro LTS kernel)</code></pre>
<h3 id="virtualbox-support">Virtualbox Support</h3>
<p>Pokud systém testujete v virtualboxu, doporučuji nainstalovat další balíčky.</p>
<pre><code>pacman -S virtualbox-guest-utils xf86-video-vmware</code></pre>
<h4 id="nvidia-tty-nespusteni-tty-terminalu-cerna-obrazovka">NVIDIA TTY (nespuštění tty terminálu, černá obrazovka)</h4>
<p>Nvidia kartami občas bývá problém, dlouhé diskuze zde vést nebudu. Doporučuji přidat nvidia do KMS. Tento krok můžete udělat/neudělat kdykoliv bude potřeba, pokud ale máte černou obrazovku po restartu systému, budete toto muset udělat hned.</p>
<pre><code>sudo vim /etc/mkinitcpio.conf
(editovat následující dvě řádky v souboru)
MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
FILES=&quot;/etc/modprobe.d/nvidia.conf

sudo mkinitcpio -P
nvim /etc/modprobe.d/nvidia.conf
(přidat tuto řádku do souboru a uložit)
options nvidia_drm modeset=1</code></pre>
<p>Ještě pro jistotu doporučuji přidat <code>*nvidia-drm.modeset=1</code> do příkazů při spuštění kernelu v <code>grub.cfg</code> (pokud používáte grub). Viz dokument <a href="https://wiki.archlinux.org/index.php/kernel_parameters](https://wiki.archlinux.org/index.php/kernel/_parameters](https://wiki.archlinux.org/index.php/kernel_parameters">https://wiki.archlinux.org/index.php/kernel_parameters</a></p>
<p>Později po restartu systému (teď ještě nerestartovat!) ověřit si správné instalovanou nvidia kartu pomocí příkazu</p>
<pre><code>lspci -vnn | grep VGA</code></pre>
<h2 id="pridani-uzivatele-linuxu">Přidání uživatele Linuxu</h2>
<p>Nyní již můžeme přidat naše uživatele linuxu. Nutno v příkazech zaměnit `<code> za vaše jméno. Já v ukázkách používám jméno uživatele </code>box`.</p>
<p>Velmi užitečnou výhodou v archu je použití již připravených skupin: <code>storage</code> a <code>power</code>. Umožňují jednoduše používat mountování disků a vypínání/restart systému přímo uživatelem, bez nutnosti dalších berliček.</p>
<pre><code>useradd -m -g users -G wheel,storage,power -s /bin/bash 
passwd 
pacman -S sudo
EDITOR=nvim visudo,  (odkomentovat řádku) %wheel ALL=(ALL) ALL</code></pre>
<h2 id="instalace-bootloader-grub2">Instalace Bootloader Grub2</h2>
<p>Instalace bootloaderu pro možnost dual boot s windows, popř. přepínání s dalšími operačními systémy. Rovněž konfigurace dostupných kernelů pro zavedení a spuštění. Zde je celá řada možností. Uvádím zde jedno z nejstarších řešení.</p>
<pre><code>pacman -S grub efibootmgr dosfstools os-prober mtools</code></pre>
<p>Vytvoření adresáře kde bude mountována EFI partition:</p>
<pre><code>mkdir /boot/efi</code></pre>
<p>Nyní připojíme EFI partition, kterou jsme dříve vytvořili v prvním kroku instalace.</p>
<pre><code>mount /dev/sda1 /boot/efi</code></pre>
<p>Instalace grub2 například takto pro UEFI:</p>
<pre><code>grub-install --target=x86_64-efi --bootloader-id=ARCH --efi-directory=/boot/efi --recheck</code></pre>
<p>V tomto případě potom budeme mít v biosu v nabídce jméno EFI části <code>ARCH</code> (bootloader-id).</p>
<p>Nakonec se musí zavolat natažení konfigurace do <code>grub.cfg</code></p>
<pre><code>grub-mkconfig -o /boot/grub/grub.cfg</code></pre>
<p>Základní systém je hotov.</p>
<h2 id="restart-zakladniho-systemu-a-jeho-test">Restart základního systému a jeho test</h2>
<p>Nejprve regulerně opustě chroot prostředí pomocí <code>exit</code> příkazu nebo klávesovou zkratkou <code>ctrl+d</code>. Volitelně můžete odpojit mountované disky <code>umount -R /mnt</code>.</p>
<p>Nakonec zavolejte:</p>
<pre><code>reboot</code></pre>
<p>Po restartu systému se spustí grub2 a po správném zavedení systému se objeví tty terminál se zadáním uživatelského jména a zvoleného hesla.</p>
<p>Po úspěšném přihlášení jste ve svém novém Arch systému! Vítejte doma </p>
<figure><img src="https://arch-linux.cz/posts/2021/arch-linux-instalace/01.png" width="64" height="64" alt="" loading="lazy" decoding="async"></figure>
<p><a href="https://www.youtube.com/watch?v=gpIFaCIB9Cg&amp;t=1170s">https://www.youtube.com/watch?v=gpIFaCIB9Cg&amp;t=1170s</a></p>
<h1 id="dulezite-odkazy">Důležité odkazy</h1>
<ul><li><a href="https://www.youtube.com/user/tondafischer/featured">Youtube Channel TUX: Svět Linuxu</a></li></ul>
<ul><li><a href="https://archlinux.org/">archlinux.org</a></li></ul>
<ul><li><a href="https://wiki.archlinux.org/">wiki.achlinux.org</a></li></ul>
<ul><li><a href="https://fishlive.org/en/blog-tech-art/arch">fishlive.org/blog</a></li></ul>
<ul><li><a href="https://github.com/raven2cz/tux">github/raven2cz/tux</a></li></ul>
<ul><li><a href="https://github.com/raven2cz/dotfiles">github/raven2cz/dotfiles</a></li></ul>]]></description>
  <category>instalace</category><category>Návody</category><category>Arch Linux</category><category>jekyll</category>
</item>

  </channel>
</rss>
