Štítekjekyll

AwesomeWM Ricing

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.

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.

Základ dobrého designu a dlouhodobého úspěšného programování

Úspěchem dobrého programování a nejlepšího designu jsou 3 věci:

  • Jednoduchost a přehlednost
  • Vlastní knihovna / framework
  • Omezení a minimalismus třetích stran

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.

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.

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!

V našem případě je zde vytvořen základní lua balíček fishlive, který slouží k rozšíření frameworku awesome pro moje osobní potřeby a přístupy. Vytvořte si svůj vlastní.

Pattern MVC - Model, View, Controller

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á.

My si tento pattern půjčíme a pomocí něj si myšlenkově upravíme defaultní rc.lua, který již používáte z předchozí nahrávky. Defaultní konfigurace je tvořena pouze jedním konfiguračním souborem rc.lua a doplňkovým souborem theme.lua, 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 rc.lua, 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.

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 rc.lua, kde ponecháme striktně pouze controller.

Model-View - themes/…/theme.lua

část je dobré rozdělit si na 3 základní podčásti:

  • View Common Libs - použitelné části, které budeme používat i dalších našich themes a views, toto přesuneme do vlastní lua knihovny
  • View Color Schemes - barevná schémata, která lze aplikovat na naše views a která jsou rovněž obecná.
  • View Theme - 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.

View Common Libs

Tato knihovna byla založena a uložena v adresáři ~/.config/awesome/fishlive. Obsahuje colorschemes, nové layouts, wallpaper různorodá ovládání, widgety a utility.

View Color Schemes

Jsou zavedena pomocí vytvořeného příkazu local theme = fishlive.colorscheme.default, který do modelu/tabulky theme 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.

View Theme

Je uloženo v každém theme.lua souboru. Tento soubor mám principiálně tvořen touto strukturou:

  • theme = fishlive.colorscheme.default Defaultní naplnění modelu daným barevných schématem a přípravou atributů modelu
  • model attribute settings Další specifické nastavení modelu dle zvoleného theme, okraje, fonty, notifikační události, taglist, layouts, menu
  • wallpaper support Nastavení adresářů a základních atributů pro ovládání wallpapers v awesomewm
  • widget declaration Vytvoření instanací widgetů a jejich specifické nakonfigurování do wibox grafických prvků, které lze umístit do prostředí
  • menu a application launcher declaration Deklarace grafické části menu dle modelu a controlleru
  • screen.connect_signal(request:desktop_decoration) 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.
  • tags and layout settings Nastavení tagů a layotů, taglistu pro dané theme
  • tasklist configuration Nastavení tasklistu pro zobrazování aktivně běžících aplikací systému
  • main panel configuration Sestavení hlavního top panelu ze všech wiboxes, taglistu, tasklistu, systray apod.
  • naughty configuration Nastavení notifikačních událostí a notification center a error handling support
  • wallpaper handling 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.

Controller - rc.lua

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 rc.lua, obsahuje však pouze vše co není grafika nebo grafická komponenta. Obsahuje tedy veškerou business logiku a workflow. Konkrétně obsahuje:

  • naughty.connect_signal(request:display_error) Error handling (zpracování výjimek a chyb v awesome a spojených aplikacích)
  • modkey, terminal, editor, menus Definice základních proměnných pro základní klávesy, terminaly, editory, menu modely
  • tag.connect_signal(request:default_layouts) Definice základních layouts, které budete používat
  • beautiful.init Výběr model-view (theme), které bude napojedno a zobrazováno
  • awful.mouse.append_global_mousebindings Nadefinování myších událostí a chování myši
  • awful.keyboard.append_global_keybindings Definice globálních keybindings pro váš systém, rozděleno dle kategorií a účelu (folding style a separátní listeners)
  • client.connect_signal(request:default_keybindings) Clientská konfigurace keybindings pro jednotlivá zobrazovaná okna (client = běžící aplikace v okně)
  • ruled.client.connect_signal("request:rules" ...) Definice pravidel (rules) pro zobrazování aplikací, druhů aplikací a reakce oken na speciální events
  • special connect_signal events for specific handling 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.
  • awful.spawn.with_shell("~/.config/awesome/autorun.sh") Poslední částí rc.lua souboru je spuštění vašeho autorun.sh skriptu pro aplikace, služby a další přednastavení prostředí, ve kterém awesomewm běží.

AwesomeWM Multicolor Theme Instalace

Demostraci principů si předvedeme na mém github projektu raven2cz/awesomewm-config.

Zajištění resources a podpůrných skriptů pro spolupráci systémového prostředí (external resources)

# 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

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…

Já ještě používám externí aplikaci xmenu, 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 super+w. Viz například nahrávka DistroTube XMenu.

Nyní již máte připraveno celé prostředí pro spuštění. Jediné co chybí je zkontrolovat váš ~/.xinitrc, který by měl být nastaven již z minulé nahrávky a autorun.sh, který pouze jako ukázku zde prezentuji.

#!/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

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 diskuzní fórum.

Základní ovládání

Complete Guide here.

super+ctrl+s

Základní ovládání se točí kolem klávesy Super (modkey), která je výhdardně určena pro AW prostředí. Samostatné alt, ctrl a shift 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ě.

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.

Změna barevných schémat a aplikací

super+c -> change color scheme, super+alt+c -> next colorschme wallpaper, super+ctrl+c -> previous colorscheme wallpaper

Změna barevného schématu probíhá na třech úrovních:

  • Nejprve se zavolá globální skript global_colorscheme.sh, 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ě.
  • 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ě.
  • Naposled dojde k přepsání souboru last.lua 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

Změna wallpapers pro jednotlivé tagy

  • random wallpaper for 1st tag
  • different wallpaper per actual shown tag
  • user wallpaper tags

super+alt+w next user wallpaper, super+ctrl+w previous user wallpaper

  • dev tag uses as default colorscheme wallpaper

super+c -> change color scheme, super+alt+c -> next colorschme wallpaper, super+ctrl+c -> previous colorscheme wallpaper

Prohlídka prostředí a programového Lua řešení

Po spuštění multicolor theme awesomewm projektu si můžeme prohlédnout detailněji strukturu projektu.

nvim ~/.config/awesome/rc.lua
nvim ~/.config/awesmoe/themes/multicolor/theme.lua

Zde se opět vraťe k první kapitole a postupně projděte seznam rc.lua a theme.lua přímo v kódu si mozkově propojit, které části kódu patří k daným strukturám.

Tato část je popsána primárně ve druhé video nahrávce věnované awesomewm ricing…

Propojení aplikací do awesomewm prostředí

  • ukázka s tmux a nvim propojení s awesomewm

Spustit tmux, nvim a zobrazit super+ctrl+s, napojení na awesomewm a jeho klávesové propojení a možnosti controlleru

  • propjení barevných schémat a unifikace GNU/Linux aplikací s prostředím awesomewm a jeho model-view schématem
  • napojení událostí aplikací s naughty

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.

https://www.youtube.com/watch?v=KDJbas2FVXM

Důležité odkazy

Číst dál

AwesomeWM Basics

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í.

LUA - Programovací jazyk

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)

awesome-keybindings-default

Defaultní rc.lua

Pojďme si projít základní sekce a organizaci nvim ~/.config/awesome/rc.lua

https://www.youtube.com/watch?v=wi_EM5zXt8s&t=112s

Důležité odkazy

Číst dál

Command-Line Shell

V dalším díle seriálu Tondy Fischera 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.

Popis shellů je uveden na arch wiki Command-Line Shell.

Základní shelly, které si ukážeme:

  • Fish - 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í Alt+Up Pro další info https://fishshell.com/

Bash

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 https://www.alza.cz/media/prikazovy-radek-v-linuxu-d2366810.htm Dokumentace je zde https://www.gnu.org/software/bash/manual/bash.html

Zsh

Zsh Instalace

My použijeme jako náš systémový shell ZSH.

sudo pacman -S zsh
chsh -s /usr/bin/zsh 
nvim ~/.zshrc

Použijeme Oh My Zsh. Nebo GitHub OhMyZsh.

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Zsh Prompt Themes

# Change theme
ZSH_THEME="robbyrussell"
ZSH_THEME="agnoster"
ZSH_THEME="dst"
ZSH_THEME_RANDOM_CANDIDATES=(
  "robbyrussell"
  "agnoster"
  "dst"
)
# Need install p10k!
ZSH_THEME="powerlevel10k/powerlevel10k"

Instalace Zsh plugins

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

Instalace Colorscriptů

Colorscripty zkrášlují shell a uvozují danou instanci terminálu.

# 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

Fish

Arch wiki https://wiki.archlinux.org/title/Fish

Fish Instalace

sudo pacman -S fish
# plugin manager - nutno spoustet z fish shell
curl -sL https://git.io/fisher | source && 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

STARSHIP Cross-Shell Prompt Instalace

Hlavní stránka https://starship.rs/

sh -c "$(curl -fsSL https://starship.rs/install.sh)"
# add last line to your config.fish
starship init fish | source

Personal Starship Settings

Moje osobní nastavení starship je v dotfiles uloženo v ~/.config/starship.toml 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.

# Don'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 "❯" symbol in the prompt with "➜"
[character]                         # The name of the module we are configuring is "character"
success_symbol = "[➜](bold green)"  # The "success_symbol" is set to "➜" with color "bold green"

# Use custom format
# format = """
# [┌───────────────────>](bold green)
# [│](bold green)$directory$rust$package
# [└─>](bold green) """

# Disable the package module, hiding it from the prompt completely
[package]
disabled = false

Fish jako uživatelský interaktivní shell

Fish budeme používat jako uživatelský interaktivní shell, nikoliv jako systémový (pro init si ponecháme POSIX support). Do našeho .zshrc vložíme na konec toto

# jump from zsh to fish
if [[ $(ps --no-header --pid=$PPID --format=cmd) != "fish" ]]
then
	exec fish
fi

Fish Raven2cz Dotfiles

Zkopírujte fish adresář do ~/.config/fish z raven2cz dotfiles.

nvim ~/.config/fish/config.fish

https://www.youtube.com/watch?v=_K4ESyYuzE0

Důležité odkazy

Číst dál

Instalace Xfce

V osmém díle seriálu o instalaci Arch Linuxu od Tondy Fischera se podíváme, jak instalovat a nastavit desktopové prostředí Xfce.

XFCE

Co je XFCE?

Xfce 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ů.

Dokumentace

Moje Xfce Konfigurace

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í.

Základní Instalace

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.

sudo pacman -S xfce4 xfce4-goodies

nvim ~/.xinitrc
# Overit umisteni radky
exec startxfce4

Xfce4 Settings Manager

Spusťe z terminálu

xfce4-settings-manager

https://www.youtube.com/watch?v=tehEIbcYn8U

Volba Sound Systemu

Zvuk je velký topic. Stejně jako grafické karty na linuxu. Toto je pouze minimální zmínka o této problematice.

Doinstalovat uřčitě při pulseaudio ještě pavucontrol, alsa-utils. alsamixer. PipeWire je separátní topic a bylo by vhodné oddělené video, pokud bude zájem.

Graphical Drivers a Picom aktivace

Grafické drivers byly instalovány při základní instalaci, odkazuji tak na video základní instalace systému. Nyní je potřeba nahradit defaultní kompozitor naším picom nastaveným dle zlaté střední cesty z minulého dílu.

  • Window Manager Tweaks > Compositor > Deaktivujte Enable display compositing
  • Session and Startup > Application Autostart > + > přidejte name: picom command: picom --experimental-backends --config $HOME/.config/picom/picom.conf

Picom bude spuštěn v autostart xfce po novém spuštění xfce.

Instalace Terminal Emulator (GPU Support)

Doporučuji tyto terminal emulatory. V mém případě používám oba, aby se nehádaly.

sudo pacman -S kitty
sudo pacman -S alacritty

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řidání Whisker Menu

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.

Klávesové zkratky, buď Linux Pro

Vytvoř klávosvé zkratky používané v profi window managers, jako je dwm, xmonad, awesome, qtile, i3, bspwm.

Klávesové zkratky pro ovládání hlasitosti

https://wiki.archlinux.org/title/PulseAudio#Keyboard_volume_control

XFCE Ricing - Dracula Ricing

Co je Ricing?

https://jie-fang.github.io/blog/basics-of-ricing

https://www.youtube.com/watch?v=VspS7Q9Spjs

Co je Dracula a DraculaPro?

Aplikace základních themes a color schemes

  • Postupujte podle pokynů na dracula stánkách pro jednotlivé aplikace a GTK3.
  • Přejděte na záložku GTK na webu, nainstalujte gtk-master.zip
  • Použijte z mých dotfiles konfigurace pro kitty a alacritty. obsahují dracula pro kitty a postelové barvy pro alacritty
  • Nainstalujte a použijte fonty dle videa: paru -S tty-droid tty-play
  • Aplikujte theme pro Midnight Commander z webu dracula256.ini
  • Použijte zlatou střední cestu pro picom z dotfiles.

Icons a Mouse Cursors

  • sudo paru -S papirus-icon-theme
  • sudo paru -S numix-cursor-theme xcursor-comix-opaque xcursor-comix

Změna základního Panel1

  • Použijte mojí konfiguraci panelu, nebo manuálně nastavte komponenty dle videa
  • Aplikujte/zkopírujte gtk.css styling do vašeho ~/.config/gtk-3.0
  • Alternativně můžete použít polybar (pozor je to výhoda i nevýhoda), viz můj projekt Polybar-config

Public-Wallpapers

  • Link public-wallpapers přes mkdir ~/Pictures/wallpapers && ln -s ~/git/github/public-wallpapers ~/Pictures/wallpapers/

Qt a Gtk jednotný vzhled aplikací

  • 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
  • Pro Qt aplikace nutno pořešit

Nainstalujte sudo pacman -S kvantum-qt5

  • Spustit Kvantum Manager, nainstalovat Dracula (dle svého vkusu)
  • Aplikovat v aplikaci Dracula jako aktvní téma
  • Zkontrolovat si svůj ~/.xinitrc nastavení export QT_STYLE_OVERRIDE=kvantum

Doplňková rožšíření

  • Aplikace pro nastavení osobních uživatelských detailů sudo pacman -S mugshot
  • Editor nabídek pro Gnome s podporou XFCE sudo pacman -S alacarte
  • Odstranění ikon na ploše xfconf-query -c xfce4-desktop -v --create -p /desktop-icons/style -t int -s 0 (obnova nastavit 2)
  • Nastavení zvukového motivu Smooth

Nainstalujte libcanberra pro PulseAudio

  • Zahrnout canerra-gtk-module do proměnné prostředí GTK_MODULES
  • V Settings Manager > Appearance > Settings nastavit =”Enable event sounds”=
  • Nainstalujte z AUR paru -S sound-theme-smooth
  • V Editoru nastavení (xfce4-settings-editor) nastavte v xsettings/Net/SoundThemeName na Smooth (pozor na velké písmeno)
  • Zapněte a zvyšte hlasitost u System Sounds v mixéru zvuku, např. pavucontrol.

Důležité odkazy

Číst dál

20 let Arch Linuxu

  1. března 2002 byla Juddem Vinetem oficiálně pro veřejnost uvolněna první verze Arch Linuxu „Homer“

Arch Linux 0.1 obsahoval linuxové jádro 2.4.18, XFree86 verze 4.2 a Mozilla verze 0.9.9.

Judd Vinet se od začátku obešel bez přebytečných GUI a asistentů, kteří překáželi uživatelům.

Klíčovým rozdílem mezi Arch Linuxem a většinou distribucí byl od začátku jeho přístup k postupnému vydávání.

Po instalaci lze tedy Arch Linux průběžně udržovat a aktualizovat v jeho jednotlivých částech bez nutnosti větší aktualizace. I to dalo Arch Linuxu v průběhu let mnoho fanoušků.

Nezbývá než doufat, že jeho vývojáře bude práce na projektu i nadále bavit a Arch s námi tady zůstane ještě hodně dlouho.

Tak tedy všechno nejlepší k narozeninám Archu!

Číst dál