Kdysi dávno,
DISPLAY=:0.0 totem /path/to/movie.avi
 po připojení ssh na plochu z mého notebooku by se totem přehrál movie.avi na mé ploše.
Nyní zobrazuje chybu:
No protocol specified Cannot open display:
Přeinstaloval jsem Debian Squeeze, když byl stabilní na obou počítačích, a myslím, že jsem porušil konfiguraci.
Tohle jsem googlil a za život nemůžu přijít na to, co mám dělat.
(VLC má rozhraní HTTP, které funguje, ale není tak pohodlné jako ssh.)
Stejný problém nastává, když se to pokouším spustit z úlohy cron.
Přijatá odpověď:
(Přizpůsobeno z Linuxu:wmctrl nemůže otevřít zobrazení, když je relace zahájena přes ssh+screen)
ZOBRAZENÍ a AUTORITA
Program X potřebuje dvě informace, aby se mohl připojit k displeji X.
-  Vyžaduje adresu displeje, která je obvykle :0když jste přihlášeni místně nebo:10,:11, atd., když jste přihlášeni vzdáleně (ale počet se může změnit v závislosti na tom, kolik X připojení je aktivních). Adresa displeje je normálně uvedena vDISPLAYproměnná prostředí.
-  Vyžaduje heslo pro zobrazení. Hesla pro zobrazení X se nazývají magické soubory cookie . Magic cookies nejsou specifikovány přímo:jsou vždy uloženy v X autoritních souborech, které jsou sbírkou záznamů ve tvaru „zobrazit :42má cookie123456“. Soubor autority X je normálně označen vXAUTHORITYproměnná prostředí. Pokud$XAUTHORITYnení nastaveno, programy používají~/.Xauthority.
 Pokoušíte se jednat s okny zobrazenými na ploše. Pokud jste jedinou osobou, která používá svůj stolní počítač, je velmi pravděpodobné, že zobrazovaný název je :0 . Najít umístění souboru autority X je těžší, protože s gdm, jak je nastaveno pod Debian squeeze nebo Ubuntu 10.04, je v souboru s náhodně generovaným názvem. (Předtím jste neměli žádný problém, protože dřívější verze gdm používaly výchozí nastavení, tj. soubory cookie uložené v ~/.Xauthority .)
Získání hodnot proměnných
 Zde je několik způsobů, jak získat hodnoty DISPLAY a XAUTHORITY :
-  Relaci obrazovky můžete systematicky spouštět z vašeho počítače, třeba automaticky ve vašich přihlašovacích skriptech (z ~/.profile; ale proveďte to pouze v případě, že se přihlašujete pod X:otestujte, zdaDISPLAYje nastavena na hodnotu začínající:(to by mělo zahrnovat všechny případy, se kterými se pravděpodobně setkáte)). V~/.profile:case $DISPLAY in :*) screen -S local -d -m;; esacPoté v relaci ssh: screen -d -r local
-  Můžete také uložit hodnoty DISPLAYaXAUTHORITYv souboru a vyvolat hodnoty. V~/.profile:case $DISPLAY in :*) export | grep -E '(^| )(DISPLAY|XAUTHORITY)=' >~/.local-display-setup.sh;; esacV relaci ssh: . ~/.local-display-setup.sh screen
-  Mohli byste zjistit hodnoty DISPLAYaXAUTHORITYz běžícího procesu. To je těžší automatizovat. Musíte zjistit PID procesu, který je připojen k displeji, na kterém chcete pracovat, a poté získat proměnné prostředí z/proc/$pid/environ(eval export $(</proc/$pid/environ tr \0 \n | grep -E '^(DISPLAY|XAUTHORITY)=')¹).
Kopírování souborů cookie
 Dalším přístupem (podle návrhu Arrowmastera) je nepokoušet se získat hodnotu $XAUTHORITY v relaci ssh, ale místo toho, aby relace X zkopírovala soubory cookie do ~/.Xauthority . Protože se soubory cookie generují pokaždé, když se přihlásíte, není problém, pokud v ~/.Xauthority ponecháte zastaralé hodnoty .
Pokud je váš domovský adresář přístupný přes NFS nebo jiný síťový souborový systém, který umožňuje vzdáleným správcům zobrazit jeho obsah, může dojít k bezpečnostnímu problému. Stále se budou muset nějak připojit k vašemu počítači, pokud jste nepovolili připojení X TCP (Debian je má ve výchozím nastavení vypnuté). Takže pro většinu lidí to buď neplatí (žádné NFS), nebo to není problém (žádná připojení X TCP).
 Chcete-li zkopírovat soubory cookie, když se přihlásíte do relace X počítače, přidejte následující řádky do ~/.xprofile nebo ~/.profile (nebo nějaký jiný skript, který se přečte, když se přihlásíte):
case $DISPLAY:$XAUTHORITY in
  :*:?*)
    # DISPLAY is set and points to a local display, and XAUTHORITY is
    # set, so merge the contents of `$XAUTHORITY` into ~/.Xauthority.
    XAUTHORITY=~/.Xauthority xauth merge "$XAUTHORITY";;
esac
 ¹  V zásadě to postrádá správné citace, ale v tomto konkrétním případě $DISPLAY a $XAUTHORITY nebude obsahovat žádný metaznak shellu.