#+TITLE: Nové featury Doom Emacs — testovací průvodce
#+DATE: 2026-02-23
#+AUTHOR: Daneel

Tento dokument popisuje všechny nové featury přidané do konfigurace.
Po každé změně je nutný =doom sync= + restart Emacsu.

* Prerekvizity

Než testuješ cokoli:

#+begin_src sh
cd ~/.doom.d   # nebo kde máš doom config
doom sync
#+end_src

Pak restartuj Emacs. Bez toho nové balíčky nejsou dostupné.

* 1. link-hint — otevírání odkazů bez myši

Co dělá: zvýrazní všechny viditelné odkazy v bufferu a přiřadí jim
jednopísmenné zkratky. Stisknutím písmene odkaz otevřeš nebo zkopíruješ URL.

Prerekvizita: =doom sync= dokončen.

Jak testovat:
1. Otevři buffer s URL (Markdown, org, nebo jakýkoli text s http://)
2. Stiskni =SPC j k= → link-hint zvýrazní všechny odkazy
3. Stiskni písmeno vedle odkazu → odkaz se otevře v prohlížeči
4. Pro kopírování URL: =SPC j K= → stiskni písmeno → URL je v clipboardu

Ověření: pokud =SPC j k= zobrazí barevné písmeno u každého odkazu, funguje.

* 2. Avy — skok na libovolné místo v bufferu

Co dělá: zvýrazní každý výskyt dvou zadaných znaků a skoční na vybrané
místo bez pohybu myší.

Prerekvizita: Doom má avy v =:editor snippets= — je dostupný automaticky.

Jak testovat:
1. Otevři soubor s textem
2. Stiskni =SPC j j= → zadej dva znaky (např. =th=) → Avy zvýrazní shody
3. Stiskni písmeno u cílového výskytu → kurzor skočí tam
4. Pro skok na řádek: =SPC j l= → zadej písmeno u řádku → skok

Ověření: kurzor přeskočí na vybranou pozici bez scrollování.

* 3. olivetti-mode — klidný distraction-free mód

Co dělá: horizontálně centruje text na šířku 90 znaků a ukryje postranní
rušivé prvky. Zapíná se *ručně* — automatické zapínání by rozbilo corfu.

Prerekvizita: =doom sync=, balíček =olivetti= nainstalován.

Jak testovat:
1. Otevři org nebo Markdown soubor
2. Stiskni =SPC t o= → text se vycentruje na střed okna
3. Stiskni =SPC t o= znovu → vrátí se do normálního layoutu

Ověření: text se viditelně přesune od levého okraje do středu.

*Důležité:* olivetti nesmí být auto-zapnuto v org bufferech — pokud ho
zapneš a pak otevřeš corfu popup, může se zobrazit mimo obrazovku.
Zapínej/vypínej ručně dle potřeby.

* 4. org-modern — vylepšený vizuál org-mode

Co dělá: nahrazuje ASCII hvězdičky u nadpisů Unicode symboly (◉ ○ ✸ ✿),
zvýrazňuje checkboxy. Aktivuje se *pouze* v souborech (ne v export bufferech).

Prerekvizita: =doom sync=, balíček =org-modern= nainstalován.

Jak testovat:
1. Otevři libovolný =.org= soubor
2. Nadpisy by měly mít místo =*= → =◉=, =**= → =○= atd.
3. Checkboxy =[ ]= a =[X]= vypadají jinak

Ověření org exportu (klíčové):
1. Otevři org soubor s tabulkou a nadpisy
2. =SPC m e l o= (nebo =C-c C-e l o=) → PDF export
3. Export musí proběhnout bez chyby
4. Pokud export funguje, org-modern neinterferuje

*Poznámka:* =org-modern-table= je záměrně vypnuto — tabulkové overlaye
mohou interferovat s LaTeX exportem.

* 5. org-fragtog — automatický náhled LaTeX fragmentů

Co dělá: když kurzor vstoupí do LaTeX fragmentu (=$E=mc^2$=), zobrazí
ho jako obrázek; když kurzor odejde, fragment zůstane jako obrázek.
Aktivuje se pouze v souborech, ne v export bufferech.

Prerekvizita: =doom sync=, =org-fragtog= nainstalován, funkční =dvipng=
nebo =imagemagick= na macOS (=brew install imagemagick=).

Jak testovat:
1. Otevři org soubor
2. Napiš inline LaTeX: =$E = mc^2$=
3. Pohni kurzorem ven z fragmentu → měl by se zobrazit jako obrázek
4. Pohni kurzorem dovnitř → obrázek zmizí, zobrazí se zdrojový kód

Ověření: pokud =dvipng= není dostupný, org-fragtog selže tiše
(žádné chybové hlášení, jen nefunguje preview).

Ověření org exportu: =SPC m e l o= musí stále fungovat.

* 6. org-super-agenda — skupiny v agenda view

Co dělá: rozděluje org agenda view do pojmenovaných skupin:
Dnes, Brzy (do 3 dnů), Čekám, Projekt Kyndryl, ZTJ, Ostatní.

Prerekvizita: =doom sync=, =org-super-agenda= nainstalován.

Jak testovat:
1. Otevři org agenda: =SPC o A= nebo =C-c a a=
2. Agenda by měla zobrazovat skupiny s názvy místo plochého seznamu
3. Položky s TODO =WAIT= by měly být ve skupině "Čekám"
4. Položky s tagem =:kyndryl:= nebo =:work:= ve skupině "Projekt Kyndryl"

Ověření: viditelné nadpisy skupin v agenda bufferu.

* 7. org-noter — anotace PDF v org-mode

Co dělá: propojuje PDF soubor s org souborem poznámek. Stránkování
PDF a org poznámek je synchronizováno.

Prerekvizita: =doom sync=, =org-noter= nainstalován, fungující pdf-tools
(=SPC m P= pro otevření PDF přes pdf-view).

Jak testovat:
1. Otevři PDF soubor (měl by se otevřít v pdf-view, ne v Preview)
2. Stiskni =SPC o n= → spustí org-noter session
3. Vytvoří nový org soubor poznámek, nebo vybere existující
4. Posouvej PDF → org soubor se synchronizuje s aktuální stránkou
5. Přidej poznámku: =SPC o N= → vloží org heading s pozicí v PDF

Ověření: org heading obsahuje =:NOTER_PAGE:= property s číslem stránky.

* 8. GPTel — rewrite regionu a org heading jako kontext

Co dělá: dvě nové funkce v GPTel:
- =SPC o g r= → pošle označený region s instrukcí "vylepši text"
  a nahradí ho odpovědí
- =SPC o g p= → pošle obsah aktuálního org headingu jako kontext
  do GPTel chatu

Prerekvizita: gptel funkční (=SPC o g g= otevírá chat).

Jak testovat (rewrite):
1. Otevři soubor s textem
2. Označ region (visual mode: =v= pak pohyb)
3. Stiskni =SPC o g r=
4. Počkej — region se nahradí vylepšenou verzí textu

Jak testovat (org heading):
1. Otevři org soubor
2. Postav kurzor do headingu se zápisem
3. Stiskni =SPC o g p= → obsah headingu se pošle jako kontext do GPTel chatu

Ověření: zpráva =GPTel: text vylepšen= nebo =GPTel: heading '...' odeslán=
v minibufferu.

* 9. git-link — kopírování URL na Gitea

Co dělá: zkopíruje URL aktuální souboru/řádku na Gitea instanci
(=git.apps.sukany.cz=) do clipboardu.

Prerekvizita: =doom sync=, =git-link= nainstalován, soubor musí být
v git repozitáři s remote na Gitea.

Jak testovat:
1. Otevři soubor v emacs-doom nebo jiném Gitea repo
2. Postav kurzor na konkrétní řádek
3. Stiskni =SPC g y= → URL zkopírována do clipboardu
4. Ověř pbpaste: otevři terminál, spusť =pbpaste= → mělo by být URL jako:
   =https://git.apps.sukany.cz/martin/emacs-doom/src/branch/master/config.el#L42=
5. Pro URL commitu: =SPC g Y=

Ověření: URL v clipboardu odpovídá aktuálnímu souboru a řádku.

* 10. Forge — Gitea integrace v Magit

Co dělá: přidává pull request a issue management přímo do Magit.
Forge musí vědět o Gitea instanci.

Prerekvizita: =doom sync=, API token v =~/.authinfo=.

Nastavení tokenu:
1. Přihlas se na =https://git.apps.sukany.cz=
2. Settings → Applications → Generate new token (scope: =repo=)
3. Přidej do =~/.authinfo= (v domovském adresáři):
   #+begin_src
   machine git.apps.sukany.cz login daneel^forge password <TOKEN>
   #+end_src
4. Nastav oprávnění: =chmod 600 ~/.authinfo=

Jak testovat po nastavení tokenu:
1. Otevři Magit: =SPC g g=
2. Stiskni =@= → Forge menu
3. =@ f= → fetch forge data (PRy, issues)
4. =SPC g i= → seznam issues pro aktuální repo

Ověření: bez tokenu Forge selže s chybou autentizace (očekávané chování).
S tokenem zobrazí PRy a issues z Gitea.

* Shrnutí klíčových keybindingů

| Klávesa   | Funkce                        |
|-----------+-------------------------------|
| SPC j k   | link-hint — otevři odkaz      |
| SPC j K   | link-hint — kopíruj URL       |
| SPC j j   | avy-goto-char-2               |
| SPC j l   | avy-goto-line                 |
| SPC t o   | olivetti-mode toggle          |
| SPC o n   | org-noter                     |
| SPC o N   | org-noter-insert-note         |
| SPC o g r | GPTel rewrite region          |
| SPC o g p | GPTel org heading jako kontext|
| SPC g y   | git-link (kopíruj URL)        |
| SPC g Y   | git-link-commit               |

* Řešení problémů

** corfu nefunguje po olivetti
Pokud zapneš olivetti (=SPC t o=) a pak corfu popup zmizí nebo se zobrazí
mimo obrazovku: vypni olivetti (=SPC t o= znovu) a corfu se vrátí.
Olivetti mění vizuální marginy, corfu to nezvládne v kombinaci.

** org export selže
Ověř že =org-modern-mode= není aktivní v export bufferu:
=M-x org-modern-mode= v normálním org bufferu je OK.
Pokud export stále selhává, zkus =M-x org-modern-mode= (toggle off)
a exportuj znovu — pokud pak funguje, nahlás to.

** org-fragtog nefunguje (LaTeX preview)
Vyžaduje imagemagick: =brew install imagemagick=
Ověř: =M-x org-toggle-latex-fragment= — pokud to funguje, org-fragtog
by měl fungovat taky.

** Forge: "Invalid token"
Zkontroluj format =~/.authinfo= — musí být přesně:
=machine git.apps.sukany.cz login daneel^forge password TOKEN=
(bez uvozovek, bez mezer navíc)
