#+TITLE: Nove featury Doom Emacs -- testovaci pruvodce
#+DATE: 2026-02-23
#+AUTHOR: Daneel

Tento dokument popisuje vsechny nove featury pridane do konfigurace.
Po kazde zmene je nutny =doom sync= + restart Emacsu.

* Prerekvizity

Nez testuje cokoli:

#+begin_src sh
cd ~/.doom.d
doom sync
#+end_src

Pak restartuj Emacs. Bez toho nove balicky nejsou dostupne.

* 1. link-hint -- otevirani odkazu bez mysi

Co dela: zvyrazni vsechny viditelne org-format odkazy v bufferu a prirad jim
jednopismenne zkratky. Stisknutim pismene odkaz otevres nebo zkopirujes URL.

Prerekvizita: =doom sync= dokoncen, soubor musi obsahovat =[[...]]= odkazy.

Jak testovat:
1. Otevri org soubor ktery ma =[[https://example.com]]= nebo =[[file:inbox.org]]= odkazy
2. Stiskni =SPC j k= -- link-hint zvyrazni viditelne odkazy
3. Stiskni pismeno vedle odkazu -- odkaz se otevri
4. Pro kopiovani URL: =SPC j K=

*Dulezite:* 'No links' je spravna hlaska kdyz buffer nema zadny =[[...]]= odkaz
viditelny na obrazovce. Index.org bez explicitu odkazu = zadne linky. Funguje
spravne -- neni to chyba.

Priklady odkazu ktere link-hint najde:
- =[[https://example.com][Odkaz]]= -- HTTP odkaz
- =[[file:inbox.org]]= -- soubor
- =[[*Nadpis]]= -- interni odkaz v dokumentu

* 2. Avy -- skok na libovolne misto v bufferu

Co dela: zvyrazni kazdy vyskyt dvou zadanych znaku a skoci na vybrane
misto bez pohybu mysi.

Prerekvizita: Doom ma avy automaticky -- dostupny bez doom sync.

Jak testovat:
1. Otevri soubor s textem
2. Stiskni =SPC j j= -- zadej dva znaky (napr. =th=) -- Avy zvyrazni shody
3. Stiskni pismeno u ciloveho vyskytu -- kurzor skoci tam
4. Pro skok na radek: =SPC j l= -- zadej pismeno u radku

Overeni: kurzor preskoci na vybranou pozici bez scrollovani.

* 3. olivetti-mode -- klidny distraction-free mod

Co dela: horizontalne centruje text na sirku 90 znaku. Zapina se *rucne* --
automaticke zapinani by rozbilo corfu completion popup.

Prerekvizita: =doom sync=, balik =olivetti= nainstalovan.

Jak testovat:
1. Otevri org nebo Markdown soubor
2. Stiskni =SPC t o= -- text se vycentruje na stred okna
3. Stiskni =SPC t o= znovu -- vrati se do normalniho layoutu

*Upozorneni:* Pokud zapnes olivetti a corfu popup zmizi nebo se zobrazi
mimo obrazovku, vypni olivetti. Olivetti meni vizualni marginy a corfu
pak pocita spatne souradnice popupu.

* 4. org-modern -- vylepseny vizual org-mode

Co dela: nahradi hvezdicky u nadpisu Unicode symboly (okrouhlymi tvary),
zvyrazni checkboxy. Aktivuje se automaticky po loadu org-modern balicku.

Prerekvizita: =doom sync=, balik =org-modern= nainstalovan.

Jak testovat:
1. Otevri libovolny =.org= soubor (napr. inbox.org)
2. Nadpisy by mely mit jinak vyzerajici hvezdicky
3. Checkboxy =[ ]= a =[X]= vypadaji jinak

Pokud org-modern nefunguje na uz otevreny soubor: spust =M-x org-modern-mode=
rucne nebo zavre a znovu otevri soubor. Konfigu zajistuje aktivaci i pro uz
otevrene buffery pri loadu balicku.

Overeni org exportu (klicove):
1. Otevri org soubor s tabulkou a nadpisy
2. =SPC m e l o= nebo =C-c C-e l o= -- PDF export
3. Export musi probehnou bez chyby
4. =org-modern-table= je vypnuto -- tabulkove overlaye by mohly interferovat

* 5. org-fragtog -- automaticky nahled LaTeX fragmentu

Co dela: kdyz kurzor vstoupi do LaTeX fragmentu (=$E=mc^2$=), zobrazi
ho jako obrazek; kdyz kurzor odejde, fragment zustane jako obrazek.

Prerekvizita: =doom sync=, =org-fragtog= nainstalovan, funkci =dvipng=
nebo =imagemagick=: =brew install imagemagick=.

Jak testovat:
1. Otevri org soubor
2. Napis =$E = mc^2$=
3. Pohni kurzorem ven z fragmentu -- mel by se zobrazit jako obrazek
4. Pohni kurzorem dovnitr -- obrazek zmizi, zobrazi se zdrojovy kod

Pokud dvipng neni dostupny, org-fragtog selze tise. Zkontroluj:
=M-x org-toggle-latex-fragment=

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

Co dela: rozdeli org agenda view do skupin: Dnes, Cekam, Kyndryl, ZTJ, Ostatni.

Prerekvizita: =doom sync=, =org-super-agenda= nainstalovan.

Skupiny:
- *Dnes*: polozky se SCHEDULED nebo DEADLINE dnes
- *Cekam*: polozky s TODO stavem WAIT
- *Kyndryl*: tag =:kyndryl:= nebo =:work:=
- *ZTJ*: tag =:ztj:=
- *Ostatni*: vsechno co nezapadne do predchozich skupin

Jak testovat:
1. Otevri org agenda: =SPC o A= nebo =C-c a a=
2. Agenda by mela zobrazovat skupiny s nazvy
3. Polozky s TODO =WAIT= ve skupine "Cekam"

*Pokud agenda zobrazuje prazdnou stranku:* Spust =M-x org-super-agenda-mode=
pro aktivaci, nebo zkontroluj ze =doom sync= byl dokoncen.

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

Co dela: propojuje PDF soubor s org souborem poznamek. Strankovani je synchronizovano.

Prerekvizita: =doom sync=, =org-noter= nainstalovan, PDF otvira se v pdf-view.

Jak testovat:
1. Otevri PDF soubor -- mel by se otevrit v pdf-view, ne v Preview
2. Stiskni =SPC o n= -- spusti org-noter session
3. Posouvej PDF -- org soubor se synchronizuje s aktualni strankou
4. Pridej poznamku: =SPC o N= -- vlozi org heading s pozici v PDF

Overeni: org heading obsahuje =:NOTER_PAGE:= property.

* 8. GPTel -- rewrite regionu a org heading

Co dela:
- =SPC o g r= -- posle oznaceny region do GPTel s instrukci "vyleps text"
  a nahradi ho odpovedi
- =SPC o g p= -- posle obsah aktualu org headingu jako kontext do GPTel chatu

Prerekvizita: gptel funkci (=SPC o g g= otevira chat).

Jak testovat (rewrite):
1. Otevri soubor s textem
2. Oznac region (visual mode: =v=)
3. =SPC o g r= -- pockat -- region se nahradi vylepsenim
4. Zprava: =GPTel: text vylepsen= v minibufferu

Jak testovat (org heading):
1. Otevri org soubor
2. Postav kurzor do headingu
3. =SPC o g p= -- obsah headingu odeslan do GPTel chatu

* 9. git-link -- kopiovani URL na Gitea

Co dela: zkopiruje URL aktualniho souboru/radku na Gitea do clipboardu.

Prerekvizita: =doom sync=, soubor musi byt v git repo s remote na Gitea.

Jak testovat:
1. Otevri soubor v emacs-doom nebo jinem Gitea repo
2. Postav kurzor na konkretni radek
3. =SPC g y= -- URL zkopirovna do clipboardu
4. Zkontroluj: =pbpaste= v terminalu

Overeni: URL odpovida aktualnimu souboru a radku na git.apps.sukany.cz.

* 10. Forge -- Gitea integrace v Magit

Co dela: pridava pull request a issue management do Magit.

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

Nastaveni tokenu:
1. Prihlasit se na =https://git.apps.sukany.cz=
2. Settings -> Applications -> Generate new token (scope: =repo=)
3. Pridat do =~/.authinfo=:
   : machine git.apps.sukany.cz login daneel^forge password <TOKEN>
4. =chmod 600 ~/.authinfo=

Jak testovat:
1. Otevri Magit: =SPC g g=
2. Stiskni =@= -- Forge menu
3. =@ f= -- fetch forge data (PRy, issues)

*Poznamka:* Bez tokenu Forge selze s chybou autentizace (ocekavane chovani).

* Prehled klaves

| Klavesa   | Funkce                        |
|-----------+-------------------------------|
| SPC j k   | link-hint -- otevri odkaz     |
| SPC j K   | link-hint -- kopiruj 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 -> kontext  |
| SPC g y   | git-link (kopiruj URL)        |
| SPC g Y   | git-link-commit               |

* Reseni problemu

** link-hint rika 'No links'
Normalni chovani kdyz buffer nema zadny =[[...]]= odkaz viditelny na obrazovce.
Testuj na org souboru ktery obsahuje =[[https://...]]= nebo =[[file:...]]= linky.

** corfu nefunguje po olivetti
Vypni olivetti (=SPC t o=). Olivetti meni vizualni marginy, corfu popup pak
ma spatne souradnice.

** org-modern nefunguje
Spust =doom sync= + restartuj Emacs. Pokud stale ne: =M-x org-modern-mode=
nebo zavre a otevri soubor znovu.

** org export selze s Unicode varovanim
Zkontroluj svuj .org soubor na Unicode znaky mimo Latin-1:
#+begin_src sh
python3 -c "
with open('tvuj-soubor.org') as f:
    for i, line in enumerate(f, 1):
        for ch in line:
            if ord(ch) > 255:
                print(f'radek {i}: U+{ord(ch):04X} {repr(ch)}')
                break
"
#+end_src
Smazani nebo nahrazeni techto znaku vyresi problem.

** org-super-agenda zobrazuje prazdnou agendu
Spust =M-x org-super-agenda-mode= pro rucni aktivaci.
Zkontroluj ze org soubory maji polozky se SCHEDULED nebo DEADLINE.

** Forge: 'Invalid token'
Zkontroluj format =~/.authinfo= -- zadne uvozovky, zadne mezery navic:
: machine git.apps.sukany.cz login daneel^forge password TOKEN
