feat: migrace článků z WP, oprava menu kategorií
This commit is contained in:
@@ -0,0 +1,549 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="cs"><head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script><meta charset="utf-8">
|
||||
<meta http-equiv="content-type" content="text/html">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title itemprop="name">AwesomeWM Ricing | Arch Linux CZ</title>
|
||||
<meta property="og:title" content="AwesomeWM Ricing | Arch Linux CZ" />
|
||||
<meta name="twitter:title" content="AwesomeWM Ricing | Arch Linux CZ" />
|
||||
<meta itemprop="name" content="AwesomeWM Ricing | Arch Linux CZ" />
|
||||
<meta name="application-name" content="AwesomeWM Ricing | Arch Linux CZ" />
|
||||
<meta property="og:site_name" content="Arch Linux CZ" />
|
||||
|
||||
<meta name="description" content="Česká komunita Arch Linuxu">
|
||||
<meta itemprop="description" content="Česká komunita Arch Linuxu" />
|
||||
<meta property="og:description" content="Česká komunita Arch Linuxu" />
|
||||
<meta name="twitter:description" content="Česká komunita Arch Linuxu" />
|
||||
|
||||
<meta property="og:locale" content="cs" />
|
||||
<meta name="language" content="cs" />
|
||||
|
||||
<link rel="alternate" hreflang="en" href="http://localhost:1313/posts/awesomewm-ricing/" title="" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:article:published_time" content=2022-04-23T00:00:00Z />
|
||||
<meta property="article:published_time" content=2022-04-23T00:00:00Z />
|
||||
<meta property="og:url" content="http://localhost:1313/posts/awesomewm-ricing/" />
|
||||
|
||||
|
||||
<meta property="og:article:author" content="archos" />
|
||||
<meta property="article:author" content="archos" />
|
||||
<meta name="author" content="archos" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script defer type="application/ld+json">
|
||||
{
|
||||
"@context": "http://schema.org",
|
||||
"@type": "Article",
|
||||
"headline": "AwesomeWM Ricing",
|
||||
"author": {
|
||||
"@type": "Person",
|
||||
"name": ""
|
||||
},
|
||||
"datePublished": "2022-04-23",
|
||||
"description": "",
|
||||
"wordCount": 1852 ,
|
||||
"mainEntityOfPage": "True",
|
||||
"dateModified": "2022-04-23",
|
||||
"image": {
|
||||
"@type": "imageObject",
|
||||
"url": ""
|
||||
},
|
||||
"publisher": {
|
||||
"@type": "Organization",
|
||||
"name": "Arch Linux CZ"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
<meta name="generator" content="Hugo 0.161.1">
|
||||
|
||||
|
||||
<meta property="og:url" content="http://localhost:1313/posts/awesomewm-ricing/">
|
||||
<meta property="og:site_name" content="Arch Linux CZ">
|
||||
<meta property="og:title" content="AwesomeWM Ricing">
|
||||
<meta property="og:description" content="AwesomeWM patří k nejlepším window managerům s podporou vyššího programovacího jazyka Lua. V našem seriálu Tondy Fischera již máte dostatek zkušeností pro plný ricing pokročilého prostředí AwesomeWM.
|
||||
https://www.youtube.com/watch?v=FCxd5id77c4&t=31s
|
||||
Awesome Ricing - Pokročilá Konfigurace Nyní již můžeme přikročit k plné a pokročilé konfiguraci AwesomeWM. Cest je nekonečné množství. Já jsem zvolil cestu pro jednoduchou údržbu, vysokou efektivitu práce a kvalitní grafický design, který nesníží performance systému. 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.">
|
||||
<meta property="og:locale" content="cs">
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="article:section" content="posts">
|
||||
<meta property="article:published_time" content="2022-04-23T00:00:00+00:00">
|
||||
<meta property="article:modified_time" content="2022-04-23T00:00:00+00:00">
|
||||
<meta property="article:tag" content="Awesomewm">
|
||||
|
||||
|
||||
|
||||
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:title" content="AwesomeWM Ricing">
|
||||
<meta name="twitter:description" content="AwesomeWM patří k nejlepším window managerům s podporou vyššího programovacího jazyka Lua. V našem seriálu Tondy Fischera již máte dostatek zkušeností pro plný ricing pokročilého prostředí AwesomeWM.
|
||||
https://www.youtube.com/watch?v=FCxd5id77c4&t=31s
|
||||
Awesome Ricing - Pokročilá Konfigurace Nyní již můžeme přikročit k plné a pokročilé konfiguraci AwesomeWM. Cest je nekonečné množství. Já jsem zvolil cestu pro jednoduchou údržbu, vysokou efektivitu práce a kvalitní grafický design, který nesníží performance systému. 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.">
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="canonical" href="http://localhost:1313/posts/awesomewm-ricing/">
|
||||
<link href="/style.min.2d921c18cf1ec555ffc03d59a8adc211c402c68c930c27d6a0c306ab175a8d09.css" rel="stylesheet">
|
||||
<link href="/code-highlight.min.706d31975fec544a864cb7f0d847a73ea55ca1df91bf495fd12a177138d807cf.css" rel="stylesheet">
|
||||
|
||||
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/icons/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/icons/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/icons/favicon-16x16.png">
|
||||
<link rel="mask-icon" href="/icons/safari-pinned-tab.svg">
|
||||
<link rel="shortcut icon" href="/favicon.ico">
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="manifest" href="http://localhost:1313/site.webmanifest">
|
||||
|
||||
<meta name="msapplication-config" content="/browserconfig.xml">
|
||||
<meta name="msapplication-TileColor" content="#2d89ef">
|
||||
<meta name="theme-color" content="#434648">
|
||||
<meta name="color-scheme" content="light dark">
|
||||
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/icons/favicon.svg">
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body data-theme = "" class="notransition">
|
||||
|
||||
<script src="/js/theme.js"></script>
|
||||
|
||||
<div class="navbar" role="navigation">
|
||||
<nav class="menu" aria-label="Main Navigation">
|
||||
<a href="http://localhost:1313/" class="logo">
|
||||
<img src="/logo.png" alt="Arch Linux CZ" height="50">
|
||||
</a>
|
||||
<input type="checkbox" id="menu-trigger" class="menu-trigger" />
|
||||
<label for="menu-trigger">
|
||||
<span class="menu-icon">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" stroke="currentColor" fill="none" viewBox="0 0 14 14"><title>Menu</title><path stroke-linecap="round" stroke-linejoin="round" d="M10.595 7L3.40726 7"></path><path stroke-linecap="round" stroke-linejoin="round" d="M10.5096 3.51488L3.49301 3.51488"></path><path stroke-linecap="round" stroke-linejoin="round" d="M10.5096 10.4851H3.49301"></path><path stroke-linecap="round" stroke-linejoin="round" d="M0.5 12.5V1.5C0.5 0.947715 0.947715 0.5 1.5 0.5H12.5C13.0523 0.5 13.5 0.947715 13.5 1.5V12.5C13.5 13.0523 13.0523 13.5 12.5 13.5H1.5C0.947715 13.5 0.5 13.0523 0.5 12.5Z"></path></svg>
|
||||
</span>
|
||||
</label>
|
||||
|
||||
<div class="trigger">
|
||||
<ul class="trigger-container">
|
||||
|
||||
|
||||
<li>
|
||||
<a class="menu-link " href="/">
|
||||
Domů
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="menu-link " href="/categories/n%C3%A1vody/">
|
||||
Návody
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="menu-link " href="/categories/zrp%C3%A1vy/">
|
||||
Zprávy
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="menu-link " href="/o-arch-linuxu/">
|
||||
O Arch Linuxu
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="menu-link " href="https://wiki.arch-linux.cz/shelves/arch-linux-cz">
|
||||
Wiki
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="menu-link " href="https://forum.arch-linux.cz/">
|
||||
Fórum
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="menu-link " href="/komunita/">
|
||||
Komunita
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="menu-link " href="/podporte-nas/">
|
||||
Podpořte nás
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="menu-separator">
|
||||
<span>|</span>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
<a id="mode" href="#">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="mode-sunny" width="21" height="21" viewBox="0 0 14 14" stroke-width="1">
|
||||
<title>LIGHT</title><g><circle cx="7" cy="7" r="2.5" fill="none" stroke-linecap="round" stroke-linejoin="round"></circle><line x1="7" y1="0.5" x2="7" y2="2.5" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="2.4" y1="2.4" x2="3.82" y2="3.82" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="0.5" y1="7" x2="2.5" y2="7" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="2.4" y1="11.6" x2="3.82" y2="10.18" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="7" y1="13.5" x2="7" y2="11.5" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="11.6" y1="11.6" x2="10.18" y2="10.18" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="13.5" y1="7" x2="11.5" y2="7" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="11.6" y1="2.4" x2="10.18" y2="3.82" fill="none" stroke-linecap="round" stroke-linejoin="round"></line></g></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="mode-moon" width="21" height="21" viewBox="0 0 14 14" stroke-width="1">
|
||||
<title>DARK</title><g><circle cx="7" cy="7" r="2.5" fill="none" stroke-linecap="round" stroke-linejoin="round"></circle><line x1="7" y1="0.5" x2="7" y2="2.5" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="2.4" y1="2.4" x2="3.82" y2="3.82" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="0.5" y1="7" x2="2.5" y2="7" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="2.4" y1="11.6" x2="3.82" y2="10.18" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="7" y1="13.5" x2="7" y2="11.5" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="11.6" y1="11.6" x2="10.18" y2="10.18" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="13.5" y1="7" x2="11.5" y2="7" fill="none" stroke-linecap="round" stroke-linejoin="round"></line><line x1="11.6" y1="2.4" x2="10.18" y2="3.82" fill="none" stroke-linecap="round" stroke-linejoin="round"></line></g></svg>
|
||||
</a>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<div class="wrapper post">
|
||||
<main class="page-content" aria-label="Content">
|
||||
<article>
|
||||
<header class="header">
|
||||
<h1 class="header-title">AwesomeWM Ricing</h1>
|
||||
|
||||
|
||||
|
||||
<div class="post-meta">
|
||||
<time datetime="2022-04-23T00:00:00+00:00" itemprop="datePublished"> 23. 4. 2022 </time>
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
<div class="page-content">
|
||||
<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><img src="https://arch-linux.cz/wp-content/uploads/2022/04/awesomewm-1-1-1024x576.jpg" alt=""></p>
|
||||
<p><img src="https://arch-linux.cz/wp-content/uploads/2022/04/awesomewm-2-1-1024x576.jpg" alt=""></p>
|
||||
<p><a href="https://www.youtube.com/watch?v=FCxd5id77c4&t=31s">https://www.youtube.com/watch?v=FCxd5id77c4&t=31s</a></p>
|
||||
<h2 id="awesome-ricing---pokročilá-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í. <strong>Já jsem zvolil cestu pro jednoduchou údržbu, vysokou efektivitu práce a kvalitní grafický design, který nesníží performance systému</strong>. 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="základ-dobrého-designu-a-dlouhodobého-úspěšného-programování">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>
|
||||
<p>Jednoduchost a přehlednost</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Vlastní knihovna / framework</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Omezení a minimalismus třetích stran</p>
|
||||
</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. <strong>Vytvořte si svůj vlastní.</strong></p>
|
||||
<p><img src="https://arch-linux.cz/wp-content/uploads/2022/04/mvc.png" alt=""></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><a href="https://github.com/raven2cz/tux/tree/main/211207-awesome-ricing#model-view---themesthemelua"></a></h3>
|
||||
<h3 id="model-view---themesthemelua"><strong>Model-View</strong> - themes/…/theme.lua</h3>
|
||||
<p>část je dobré rozdělit si na 3 základní podčásti:</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p><strong>View Common Libs</strong> - použitelné části, které budeme používat i dalších našich themes a views, toto přesuneme do vlastní lua knihovny</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><strong>View Color Schemes</strong> - barevná schémata, která lze aplikovat na naše views a která jsou rovněž obecná.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><strong>View Theme</strong> - 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.</p>
|
||||
</li>
|
||||
</ul>
|
||||
<h4><a href="https://github.com/raven2cz/tux/tree/main/211207-awesome-ricing#view-common-libs"></a></h4>
|
||||
<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><a href="https://github.com/raven2cz/tux/tree/main/211207-awesome-ricing#view-color-schemes"></a></h4>
|
||||
<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><a href="https://github.com/raven2cz/tux/tree/main/211207-awesome-ricing#view-theme"></a></h4>
|
||||
<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>
|
||||
<p><code>theme = fishlive.colorscheme.default</code> Defaultní naplnění modelu daným barevných schématem a přípravou atributů modelu</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><code>model attribute settings</code> Další specifické nastavení modelu dle zvoleného theme, okraje, fonty, notifikační události, taglist, layouts, menu</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><code>wallpaper support</code> Nastavení adresářů a základních atributů pro ovládání wallpapers v awesomewm</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><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í</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><code>menu a application launcher declaration</code> Deklarace grafické části menu dle modelu a controlleru</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><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.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><code>tags and layout settings</code> Nastavení tagů a layotů, taglistu pro dané theme</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><code>tasklist configuration</code> Nastavení tasklistu pro zobrazování aktivně běžících aplikací systému</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><code>main panel configuration</code> Sestavení hlavního top panelu ze všech wiboxes, taglistu, tasklistu, systray apod.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><code>naughty configuration</code> Nastavení notifikačních událostí a notification center a error handling support</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><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.</p>
|
||||
</li>
|
||||
</ul>
|
||||
<h3><a href="https://github.com/raven2cz/tux/tree/main/211207-awesome-ricing#controller---rclua"></a></h3>
|
||||
<h3 id="controller---rclua"><strong>Controller</strong> - 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>
|
||||
<p><code>naughty.connect_signal(request:display_error)</code> Error handling (zpracování výjimek a chyb v awesome a spojených aplikacích)</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><code>modkey, terminal, editor, menus</code> Definice základních proměnných pro základní klávesy, terminaly, editory, menu modely</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><code>tag.connect_signal(request:default_layouts)</code> Definice základních layouts, které budete používat</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><code>beautiful.init</code> Výběr model-view (theme), které bude napojedno a zobrazováno</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><code>awful.mouse.append_global_mousebindings</code> Nadefinování myších událostí a chování myši</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><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)</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><code>client.connect_signal(request:default_keybindings)</code> Clientská konfigurace keybindings pro jednotlivá zobrazovaná okna (client = běžící aplikace v okně)</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><code>ruled.client.connect_signal("request:rules" ...)</code> Definice pravidel (rules) pro zobrazování aplikací, druhů aplikací a reakce oken na speciální events</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><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.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><code>awful.spawn.with_shell("~/.config/awesome/autorun.sh")</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ěží.</p>
|
||||
</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="zajištění-resources-a-podpůrných-skriptů-pro-spolupráci-systémového-prostředí-external-resources">Zajištění resources a podpůrných skriptů pro spolupráci systémového prostředí (external resources)</h4>
|
||||
<pre tabindex="0"><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 && 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 && git clone git@github.com:raven2cz/global-colorscheme.git && cd ~/git/github/global-colorscheme && ./install.sh
|
||||
# rofi project themes
|
||||
mkdir ~/.config/rofi && 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 tabindex="0"><code>#!/usr/bin/env bash
|
||||
function run {
|
||||
if ! pgrep -f $1 ;
|
||||
then
|
||||
$@&
|
||||
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="základní-ovládání">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><img src="https://arch-linux.cz/wp-content/uploads/2022/04/awesome-multicolor-keybindings-1024x685.jpg" alt=""></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="změna-barevných-schémat-a-aplikací">Změna barevných schémat a aplikací</h2>
|
||||
<p><code>super+c -> change color scheme, super+alt+c -> next colorschme wallpaper, super+ctrl+c -> previous colorscheme wallpaper</code></p>
|
||||
<p><img src="https://arch-linux.cz/wp-content/uploads/2022/04/awesome-multicolor-theme-910x1024.jpg" alt=""></p>
|
||||
<p>Změna barevného schématu probíhá na třech úrovních:</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p>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ě.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>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ě.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>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</p>
|
||||
</li>
|
||||
</ul>
|
||||
<h2 id="změna-wallpapers-pro-jednotlivé-tagy">Změna wallpapers pro jednotlivé tagy</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<p>random wallpaper for 1st tag</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>different wallpaper per actual shown tag</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>user wallpaper tags</p>
|
||||
</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 -> change color scheme, super+alt+c -> next colorschme wallpaper, super+ctrl+c -> previous colorscheme wallpaper</code></p>
|
||||
<h2 id="prohlídka-prostředí-a-programového-lua-řešení">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 tabindex="0"><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ě <strong>ve druhé</strong> video nahrávce věnované awesomewm ricing…</p>
|
||||
<h2 id="propojení-aplikací-do-awesomewm-prostředí">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>
|
||||
<p>propjení barevných schémat a unifikace GNU/Linux aplikací s prostředím awesomewm a jeho model-view schématem</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>napojení událostí aplikací s naughty</p>
|
||||
</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><a href="https://github.com/raven2cz/tux/tree/main/211207-awesome-ricing#d%C5%AFle%C5%BEit%C3%A9-odkazy"></a></h1>
|
||||
<h1 id="důležité-odkazy">Důležité odkazy</h1>
|
||||
<ul>
|
||||
<li>
|
||||
<p><a href="https://github.com/raven2cz/awesomewm-config">raven2cz/awesomewm-config</a></p>
|
||||
</li>
|
||||
<li>
|
||||
<p><a href="https://www.youtube.com/user/tondafischer/featured">Youtube Channel TUX: Svět Linuxu</a></p>
|
||||
</li>
|
||||
<li>
|
||||
<p><a href="https://archlinux.org/">archlinux.org</a></p>
|
||||
</li>
|
||||
<li>
|
||||
<p><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></p>
|
||||
</li>
|
||||
<li>
|
||||
<p><a href="https://fishlive.org/en/blog-tech-art/arch">fishlive.org/blog</a></p>
|
||||
</li>
|
||||
<li>
|
||||
<p><a href="https://github.com/raven2cz/tux">github/raven2cz/tux</a></p>
|
||||
</li>
|
||||
<li>
|
||||
<p><a href="https://github.com/raven2cz/dotfiles">github/raven2cz/dotfiles</a></p>
|
||||
</li>
|
||||
<li>
|
||||
<p><a href="https://github.com/raven2cz/public-wallpapers">raven2cz/public-wallpapers</a></p>
|
||||
</li>
|
||||
<li>
|
||||
<p><a href="https://github.com/raven2cz/global-colorscheme">raven2cz/global-colorschemes</a></p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</article></main>
|
||||
</div>
|
||||
<footer class="footer">
|
||||
<span class="footer_item"> </span>
|
||||
|
||||
|
||||
<div class="footer_social-icons">
|
||||
<a href="https://mastodon.arch-linux.cz/@archlinux" target="_blank" rel="noopener noreferrer me"
|
||||
title="Mastodon">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
|
||||
stroke-linecap="round" stroke-linejoin="round">
|
||||
<path
|
||||
d="M21.58 13.913c-.29 1.469-2.592 3.121-5.238 3.396-1.379.184-2.737.368-4.185.276-2.368-.092-4.237-.551-4.237-.551 0 .184.014.459.043.643.308 2.294 2.317 2.478 4.22 2.57 1.922 0 3.633-.46 3.633-.46l.079 1.653s-1.344.734-3.738.918c-1.32.091-2.96-.092-4.869-.551-4.14-1.102-4.853-5.507-4.961-10.005-.034-1.285-.013-2.57-.013-3.58 0-4.589 3-5.966 3-5.966 1.513-.734 4.11-1.01 6.808-1.01h.067c2.699 0 5.296.276 6.81 1.01 0 0 3 1.377 3 5.967 0 0 .037 3.304-.419 5.69"
|
||||
stroke="currentColor" />
|
||||
<path
|
||||
d="M17.832 8.633v5h-1.978V8.78c0-1.023-.43-1.542-1.29-1.542-.95 0-1.427.616-1.427 1.834v2.655H11.17V9.072c0-1.218-.476-1.834-1.427-1.834-.86 0-1.29.52-1.29 1.542v4.852H6.475V8.633c0-1.022.26-1.834.782-2.434.538-.6 1.243-.909 2.118-.909 1.012 0 1.779.39 2.286 1.169l.492.827.493-.827c.507-.78 1.274-1.169 2.286-1.169.875 0 1.58.308 2.118.909.522.6.782 1.412.782 2.434"
|
||||
fill="currentColor" stroke="none" />
|
||||
</svg>
|
||||
</a>
|
||||
<a href="https://matrix.to/#/#archlinuxcz:matrix.org" target="_blank" rel="noopener noreferrer me"
|
||||
title="Matrix">
|
||||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="currentColor">
|
||||
<path
|
||||
d="M.632.55v22.9H2.28V24H0V0h2.28v.55zm7.043 7.26v1.157h.033c.309-.443.683-.784 1.117-1.024.433-.245.936-.365 1.5-.365.54 0 1.033.107 1.481.314.448.208.785.582 1.02 1.108.254-.374.6-.706 1.034-.992.434-.287.95-.43 1.546-.43.453 0 .872.056 1.26.167.388.11.716.286.993.53.276.245.489.559.646.951.152.392.23.863.23 1.417v5.728h-2.349V11.52c0-.286-.01-.559-.032-.812a1.755 1.755 0 0 0-.18-.66 1.106 1.106 0 0 0-.438-.448c-.194-.11-.457-.166-.785-.166-.332 0-.6.064-.803.189a1.38 1.38 0 0 0-.48.499 1.946 1.946 0 0 0-.231.696 5.56 5.56 0 0 0-.06.785v4.768h-2.35v-4.8c0-.254-.004-.503-.018-.752a2.074 2.074 0 0 0-.143-.688 1.052 1.052 0 0 0-.415-.503c-.194-.125-.476-.19-.854-.19-.111 0-.259.024-.439.074-.18.051-.36.143-.53.282-.171.138-.319.337-.439.595-.12.259-.18.6-.18 1.02v4.966H5.46V7.81zm15.693 15.64V.55H21.72V0H24v24h-2.28v-.55z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a href="/index.xml" target="_blank" rel="noopener noreferrer me"
|
||||
title="Rss">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
|
||||
stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M4 11a9 9 0 0 1 9 9" />
|
||||
<path d="M4 4a16 16 0 0 1 16 16" />
|
||||
<circle cx="5" cy="19" r="1" />
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
<small class="footer_copyright">
|
||||
© 2024–2026 Arch Linux CZ
|
||||
|
||||
</small>
|
||||
</footer><a href="#" title="" id="totop">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" fill="currentColor" stroke="currentColor" viewBox="0 96 960 960">
|
||||
<path d="M283 704.739 234.261 656 480 410.261 725.739 656 677 704.739l-197-197-197 197Z"/>
|
||||
</svg>
|
||||
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script async src="http://localhost:1313/js/main.js" ></script>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user