Fórum Ubuntu CZ/SK

Ostatní => Tipy a triky pro Linux => Téma založeno: ramael 20 Dubna 2025, 13:27:00

Název: fcitx5 - přejdi na vyšší level psaní
Přispěvatel: ramael 20 Dubna 2025, 13:27:00
Po několika příspěvcích a dotazech – a hlavně s tím, že mi to osobně dlouho chybělo – jsem se rozhodl, že je na čase popsat něco, co může pomoct nejen mně, ale i začátečníkům, školákům a komukoliv, kdo chce psát pohodlněji.

Proč jsem to začal řešit?

Chtěl jsem vstupní metodu, kde si každý může definovat vlastní zkratky a ty se budou přepisovat na znaky, které normálně hledáme na Google nebo v tabulkách UTF-8. 
Například:

Kód: [Vybrat]
1/2 ½
^2 ²
_3

Začal jsem tedy psát vlastní program v Rustu https://github.com/RadekRojik/znaky (https://github.com/RadekRojik/znaky). Funguje celkem dobře, ale když jsem se ho snažil začlenit do iBus, zjistil jsem, že:

A pak jsem zjistil zásadní věc a to fcitx5.

Fcitx5 je moderní vstupní metoda pro Linux, která umožňuje pokročilé zadávání znaků – nejen v asijských jazycích, ale i při běžném psaní. 
Je to nástupce populárního fcitx4, přepsaný s důrazem na modularitu, rychlost a podporu Waylandu.

Používá se tam, kde je potřeba:
Funguje perfektně i v Wayland prostředích (např. GNOME, KDE, Hyprland).  Hyprland je můj momentální kůň.
V KDE bývá fcitx5 dokonce předinstalovaný jako výchozí vstupní metoda.

---

Addon pro fcitx5 quickphrase umožňuje slovníkovou metodou měnit výrazy:
Slovníky se ukládají do:
Kód: [Vybrat]
~/.local/share/fcitx5/data/quickphrase.d/*.mb

Formát je jednoduchý TSV:
Kód: [Vybrat]
1/2 ½
^2 ²
_3
brb Be right back
omw On my way

---

Problém: změna v souboru QuickPhrase se neprojeví za běhu.

Bez restartu fcitx5 se nové fráze nepřečtou. 
Ale! fcitx5 poskytuje D-Bus rozhraní, kde lze addon reloadnout přímo.

---

A tak jsem napsal řešení přes systemd

systemd path ohlídá složku kde quickphrase načítá slovníky. Pokud dojde k nějaké změně (zápis, mazání, vytvoření) zavolá službu fcitx_slovnik.service

~/.config/systemd/user/fcitx_slovnik.path

Kód: [Vybrat]
[Unit]
Description=Watch quickphrase.d for changes

[Path]
PathChanged=%h/.local/share/fcitx5/data/quickphrase.d
PathModified=%h/.local/share/fcitx5/data/quickphrase.d
Unit=fcitx_slovnik.service

[Install]
WantedBy=default.target

A fcitx_slovnik.service jen zavolá dbus s příslušným požadavkem:
~/.config/systemd/user/fcitx_slovnik.service

Kód: [Vybrat]
[Unit]
Description=Reload fcitx5 QuickPhrase addon

[Service]
Type=oneshot
ExecStart=/usr/bin/busctl call --user org.fcitx.Fcitx5 /controller org.fcitx.Fcitx.Controller1 ReloadAddonConfig s quickphrase

Aktivace:
Kód: [Vybrat]
systemctl --user daemon-reload
systemctl --user enable --now fcitx_slovnik.path

---

Poznámky:
---

Závěr

Chtěl jsem vytvořit jednoduchou vstupní metodu pro školáky a lidi, co si chtějí usnadnit psaní. 
Nakonec jsem zjistil, že nic lepšího než fcitx5 + QuickPhrase dnes není třeba vymýšlet – jen ho pořádně využít.
Žádný root, sudo a já nevím co. Vše běží bezpečně v user space.

Takže pokud používáte fcitx5, tohle je váš nový kamarád. 😉
A pokud nepoužíváte, nainstalujte a bude to kamarád.