Commit 90b547fc authored by Jan Uhlík's avatar Jan Uhlík

Finish first template

parent ffcb2e03
......@@ -10,4 +10,4 @@ The reason is pretty simple, the purpose of these articles is introduce some ide
== Latest articles
Tue Mar 26 14:14:26 NZDT 2019 link:czech/sway.adoc[Moving to Sway (czech)]
Tue Mar 26 14:14:26 NZDT 2019 link:czech/moving_to_sway.adoc[Moving to Sway (czech)]
This diff is collapsed.
= Přechod na Sway (Moving to Sway)
Jan Uhlík <[email protected]>
:homepage: https://uhlik.me
:imagesdir: sway_imgs
:homapage: https://uhlik.me
:imagesdir: imgs_moving_to_sway
:source-highlighter: rouge
Již je to pár let, co jsem poprvé pocítil sílu dlaždicového link:https://wiki.archlinux.org/index.php/window_manager[windows manager], konkrétně link:https://i3wm.org/[i3]. Žel bohu, kvůli nedostatku času a zkušeností, jsem nebyl sto systém (kde na pozadí běžel link:https://www.archlinux.org/[Arch Linux]) pořádně ukočírovat. Byl jsem tak nucen na čas přejí na kombinaci link:https://www.gnome.org/[Gnome]/link:https://getfedora.org/[Fedora]. V této kombinaci jsem setrval bezmála dva roky. Pocelou dobu jsem však cítil touhu návratu k Arch Linuxu a i3. Nechtěl jsem však svůj návrat uspěchat (jako posledně) a spíše vše do detailu pochopit. Proto jsem nejdříve zvolil kombinaci Arch/Gnome, ve které jsem setrval půl roku. Musím konstatovat, že za posledních pět let se toho ve světě Linuxu mnoho událo. Jednou z nejvýraznější změn, je vydání stabilní verze nového link:https://en.wikipedia.org/wiki/Display_server[display server] link:https://en.wikipedia.org/wiki/Wayland_(display_server_protocol)[Wayland]. i3 není připraven (a ani nikdy nebude) bežet na Waylandu. Proto je pro něj vyvíjen zcela nový windows manager link:https://swaywm.org/[Sway].
Již je to pár let, co jsem poprvé pocítil sílu dlaždicového link:https://wiki.archlinux.org/index.php/window_manager[windows manager], konkrétně link:https://i3wm.org/[i3]. Žel bohu, kvůli nedostatku času a zkušeností, jsem nebyl sto systém (kde na pozadí běžel link:https://www.archlinux.org/[Arch Linux]) pořádně ukočírovat. Byl jsem tak nucen na čas přejí na kombinaci link:https://www.gnome.org/[Gnome]/link:https://getfedora.org/[Fedora]. V této kombinaci jsem setrval bezmála dva roky. Po celou dobu jsem však cítil touhu návratu k Arch Linuxu a i3. Nechtěl jsem však svůj návrat uspěchat (jako posledně) a spíše vše do detailu pochopit. Proto jsem nejdříve zvolil kombinaci Arch/Gnome, ve které jsem setrval půl roku. Musím konstatovat, že za posledních pár let se toho ve světě Linuxu mnoho událo. Jednou z nejvýraznější změn, je vydání stabilní verze nového link:https://en.wikipedia.org/wiki/Display_server[display server protocol] link:https://en.wikipedia.org/wiki/Wayland_(display_server_protocol)[Wayland]. i3 není připraven (a ani nikdy nebude) bežet na Waylandu. Proto je pro něj vyvíjen zcela nový windows manager link:https://swaywm.org/[Sway].
image::overview.png[title=Ukázka Sway]
image::overview.png[title=Ukázka Sway.]
[NOTE]
====
......@@ -38,6 +38,7 @@ Pokud máte výkonný PC, můžete si napsat script, který vždy před uzavřen
Chceme-li (a to vážně chceme), aby se PC automaticky při nečinosti uzamklo, můžeme využívat `swayidle`. Konfiguraje je ve skrze prostá:
[source]
.~/.config/sway/config
----
set $lock_command 'swaylock -f -i ~/Pictures/milky_way.jpg'
exec swayidle -w \
......@@ -59,6 +60,7 @@ Abychom byli schopni využívat registry `+` a `*` ve link:https://neovim.io/[Ne
Pracujeme-li na laptopu, můžeme pro správu hladiny podsvícení využít nástroj `light`. Jeho použití je velmi snadné:
[source]
.~/.config/sway/config
----
bindsym XF86MonBrightnessDown exec light -U 5
bindsym XF86MonBrightnessUp exec light -A 5
......@@ -78,9 +80,10 @@ Pro správné fungování SSH připojení je na vzdáleném systému vždy nutn
=== Application launcher
S application launcher je to na Sway složitější. Zatímco u i3 můžeme sáhnout po link:https://tools.suckless.org/dmenu/[dmenu] nebo link:https://github.com/davatorium/rofi[rofi], pokud chceme čistě Wayland řešení musíme si vypomoci link:https://github.com/junegunn/fzf[`fzf`]. Hotové řešení je k nalezení na link:https://gitlab.com/FlyingWombat/my-scripts/blob/master/sway-launcher[Michel/my-scripts]a jeho volání pak vypadá následovně:
image::application_launcher.png[title=Ukázka application launcher]
image::application_launcher.png[title=Ukázka application launcher.]
[source,language]
[source]
.~/.config/sway/config
----
bindsym $mod+d exec termite --name=launcher -e /home/juhlik/.scripts/sway-launcher.sh
for_window [app_id="^launcher$"] floating enable
......@@ -90,6 +93,7 @@ for_window [app_id="^launcher$"] floating enable
Na zachycení obrazovky slouží utilita `grim`. Toto může být jedno z jejích použití:
[source]
.~/.config/sway/config
----
bindsym Print exec bash -c "grim \"/home/juhlik/Pictures/Screenshot-$(date +%s).png\""
----
......@@ -98,7 +102,7 @@ bindsym Print exec bash -c "grim \"/home/juhlik/Pictures/Screenshot-$(date +%s).
=== link:https://github.com/Alexays/Waybar[`waybar`] - Alternative Sway bar
Výchozí lišta sway je prakticky totožná s lištou, kterou známe z i3. Je zde však možnost přejít k alternativní, modulární a široce konfigurovatelné liště `waybar`. Veškeré nastavení nalezneme v adresáři `~/.config/waybar`.
image::waybar.png[title=Ukázka Waybar]
image::waybar.png[title=Ukázka Waybar.]
Za zmínku stojí nově přidaná podpora tzn. _idle inhibitor_, který zabrání `swayidle` v uzamknutí obrazovky.
......@@ -112,11 +116,57 @@ Pro správné fungování zvukového modulu ve `waybar` je nutné nainstalovat r
Povšimněme si, že v link:https://gitlab.com/juhlik/dotfiles[Dotfiles] je mnohem script obsáhlejší script na ovládání zvukových výstupů.
====
=== link:https://github.com/emersion/mako[`maco`] - Notification daemon
TODO: pořádně nastudovat a nastavit
=== link:https://github.com/emersion/mako[`mako`] - Notification daemon
`mako` je wayland alternativou k `dunst`. Je to jednoduchý notifikační daemon, který zobrazuje notifikace jednotlivých procesů. Jeho zpuštění je jednoduché:
[source]
.~/.config/sway/config
----
exec mako
----
Nastavení je rovněž jednoduché modifikací souboru `~/.config/mako/config`:
[source]
----
background-color=#0f1f26
border-color=#2B83A6
default-timeout=5000
----
image::notification.png[title=Ukázka notifikace.]
== Prokletí HIDPI
TODO: nastudovat XWayland
[IMPORTANT]
====
Problematika okolo link:https://en.wikipedia.org/wiki/Display_server[display server protocol] je podstatně složitější a mnohonásobně přesahuje znalosti autora. Proto prosím omluvte případné nepřesnosti v terminologii, popřípadě hrubé zjednodušení daného tématu.
====
Základním stavebním kamenem link:https://en.wikipedia.org/wiki/Graphical_user_interface[GUI] je _display server protocol_. Ten slouží ke komunikaci mezi grafickým rozhraním aplikace a link:https://en.wikipedia.org/wiki/Display_server[display server]. Po dlouhou dobu platil za standard protokol link:https://en.wikipedia.org/wiki/X_Window_System[X Windows System] neboli X11, který na pozadí komunikuje s display server link:https://en.wikipedia.org/wiki/X.Org_Server[X.Org Server]. Na podzim roku 2008 se však skupina programátorů rozhodla vytvořit protokol nový, nazvali jej link:https://en.wikipedia.org/wiki/Wayland_(display_server_protocol)[Wayland], a k němu sesterský display server link:https://en.wikipedia.org/wiki/Wayland_(display_server_protocol)#Weston[Weston]. Důvodů pro to měli hned několik, ale jako jeden z hlavních se uvádí enormní (a neadekvátní) velikost projektu, která tak komplikovala další vývoj X11.
Jako další důvod zmiňme problematické škálování aplikací při práci s monitory vyšší rozlišením, tedy link:https://en.wikipedia.org/wiki/Pixel_density[HiDPI].
image::display_server_layers.svg[title='Základní komponenty link:https://en.wikipedia.org/wiki/Graphical_user_interface[GUI], zdroj link:https://en.wikipedia.org/wiki/Display_server#/media/File:Schema_of_the_layers_of_the_graphical_user_interface.svg[wikipedia].']
Přechod na Wayland je však postupný. Opět důvodů, proč někteří uživatelé nedají na stará dobrá Xka dopustit, je několik. Zaprvé je to počáteční nestabilita celého protokolu, hlavně v prvopočátcích vývoje. Dnes již však máme několik let od vydání první stabilní verze a například link:https://getfedora.org/[Fedora] již Wayland používá jako výchozí display server protokol.
Druhou potíží, je pak nepřipravenost běžných aplikací, využívat právě tohoto protokolu. Pro zpětnou kompatibilitu byl tak vytvořen patch link:https://en.wikipedia.org/wiki/X.Org_Server#XWayland[XWayland], který umožňuje aplikací využívající protokulu X11, běžet na protokolu Wayland (odtud název XWayland). Zdůrazněme, že se jedná pouze o _provizorní_ řešení, které sice umožňuje běh X11 aplikací na Waylandu, ale ani zdaleka nevyužívá všechny jeho možnosti. A právě zde nám na povrch opět vybublává problém s HIDPI. XWayland neumožňuje správné škálování a tak jsme svědky rozostřeného okna aplikace na monitorech s vyšším rozlišením.
image::hidpi_browsers.png[title='Vlevo je Firefox v66.0.2 využívající protokol Wayland, vpravo je pak Chromium 73.0.3683.86 běžící na XWaylandu.']
[NOTE]
====
V některých případech se místo neostrého zobrazení setkáváme s jiným problémem. Pokud pracujeme s více monitory, kde každý z monitorů má míti jiný škálovací faktor, stává se, že co je na jednom monitoru zobrazeno v normální velikosti, je na druhém buď enormě malé, nebo naopak enormě velké (v obojím případě nepoužitelné).
Někteří můžou namítnout, že některé aplikace běžící pod GNOME, příkladem budiž link:https://wiki.gnome.org/action/show/Apps/Files?action=show&redirect=Apps%2FNautilus[GNOME Files], tento problém nemají. To je díky speciální implementaci GNOME, který tak vlastně zastupuje a přebírá práci, kterou má dělat display server, potažmo windows manager. Autoři Sway se k tomuto přístupu link:https://github.com/swaywm/sway/issues/2966[vyhradili] a neplánují je přidat do Sway.
====
Zde uvádím, alespoň krátký výčet aplikací, kterých se problém týká:
* JetBrains IDEs (PyChar, CLion and others)
* Chromuim
* Inskape
== Závěr
Po několika letech čekání, je Sway (i přes popsané problémy s HiDPI) již konečně funkčním a hlavně použitelným windows manager. Stávajícím aplikacím je postupně přídávána podpora právě protokolu Wayland, takže se v budoucnu můžeme těšit ještě větší podpoře aplikací. S dlaždicovým window managerem je to jako s link:https://www.vim.org/[Vim], pokud jste se jej jednou naučili používat, už není cesty zpět. Marně pak budete v jiném prostředí mačkat klávesové zkratky a dožadovat se stejného chování jako v případě i3/Sway.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment