- Jak na VirtualBox
- Arch Linux Instalace
- Virtualbox Arch Linux nastavení
- Instalace Xorg a window manageru DWM
- Quad Boot
- Pacman a AUR pomocníci
- Picom Compositor
- Instalace Xfce
- Command-Line Shell
- AwesomeWM Basics
- AwesomeWM Ricing
- KDE Plasma – Pracovní prostředí nové generace pro Linux
- Openbox- velikostně malý, rychlý window manager plně v souladu s ICCCM a EWMH
- GNOME – Jednoduché, krásné, elegantní.
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 Tondy Fischera.
Awesome Window Manager
Awesome
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 vlastního grafického prostředí.
- Základní stránka: https://awesomewm.org/
- Arch Wiki: https://wiki.archlinux.org/title/Awesome
- Screenshot Gallery: https://mipmip.github.io/awesomewm-screenshots/
- API Dokumentace: https://awesomewm.org/apidoc/
- Ukázka mého ricing YouTube nahrávka: Awesome není pouze Tiling Window Manager
LUA - Programovací jazyk
- Základní web: https://www.lua.org/, https://www.lua.org/start.html
- Vynikající kniha (nutno přečíst): https://www.lua.org/pil/
- Programming in Lua, fourth edition
Lua Wiki Info
Lua 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.
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í.
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.
Lua se uplatňuje především v mnoha hrách, jako je World of Warcraft, 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.
V našem případě budeme Lua používat pro AwesomeWM
a Neovim
.
The Eight-Queen in Programming in Lua Fourth Edition (8 královen z knihy programování Lua 4. vydání)
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 "X" or "-" plus a space io.write(a[i] == j and "X" or "-", " ") end io.write("\n") end io.write("\n") end -- add to board 'a' all queens from 'n' to 'N' function addqueen (a, n) if n > 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 'c' addqueen(a, n + 1) end end end end -- run the program addqueen({}, 1)
Awesome základní instalace
paru -S awesome-git mkdir -p ~/.config/awesome cp /etc/xdg/awesome/rc.lua ~/.config/awesome/ nvim ~/.xinitrc
Awesome základní konfigurace před spuštěním
Editujte ~/.config/awesome/rc.lua
Zkopírujte požadované themes do vašeho prostředí: /usr/share/awesome/themes/ Copy it to ~/.config/awesome/themes/
-- theme examples: default, zenburn -- beautiful.init(gears.filesystem.get_configuration_dir() .. "/themes/default/theme.lua") local theme_path = string.format("%s/.config/awesome/themes/%s/theme.lua", os.getenv("HOME"), "default") beautiful.init(theme_path) -- terminal and editor settings terminal = "kitty" editor = os.getenv("EDITOR") or "nvim"
Ověření a testování AwesomeWW Sandbox
Použijeme Xephyr pro testování Xorg.
paru -S xorg-server-xephyr Xephyr :1 -ac -br -noreset -screen 1980x1024 & DISPLAY=:1.0 awesome -c ~/.config/awesome/rc.lua
Volitlně použít wrapper: awmtt
(Awesome WM Testing Tool) z AUR
Defaultní ovládání awesome (AwesomeWM Default Keybindings)
Defaultní rc.lua
Pojďme si projít základní sekce a organizaci nvim ~/.config/awesome/rc.lua