Portál AbcLinuxu, 10. května 2025 03:01

Dotaz: Efektivní přepínání režimů s TV OUT

23.9.2006 14:35 plky
Efektivní přepínání režimů s TV OUT
Přečteno: 286×
Odpovědět | Admin
Zdravím, v linuxu jsem teprv začátečník. Mám kartu NVidia s TV výstupem. Podařilo se mi rozchodit klonování obrazovky na TV.
Když ale chci chci oba režimy přepínat (vyšší rozlišení bez TV x nižší s TV), zjistil jsem, že musím provést spoutu kroků v YASTu.
Nenašel jsem nástroj na rychlejší přepínání s pamatováním minulé kofigurace.
Používám SUSE 10.1 + KDE.
Napadlo mi zazálohovat si /etc/X11/xorg.conf pro oba případy, ten vždy nakopírovat a restartovat X. Na to jsem si vytvořil dva scripty:
#! /bin/bash
cp /etc/X11/xorg.jedna /etc/X11/xorg.conf

#! /bin/bash
cp /etc/X11/xorg.dve /etc/X11/xorg.conf
Dotazy:
1 - Je možné toto spustit pod rootem bez zapisování hesla (nějak to heslo uložit/zapsat),
2 - nebo přidělit uživateli právo na přepsání souboru xorg.conf (a jak?)
3 - V scriptu restartovat X tak, abych nemusel vždy používat CTRL+ALT+BackSpace,
4 - nebo ještě lépe aplikovat tyto parametry bez zapisování hesla pro přihlášení uživatele?
5 - Neexistuje nakonec nějaké udělátko, které tohle vše provede za mě?

Vím, že jsem asi náročný a předem děkuji i za částečné řešení, popř. související nápady.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

23.9.2006 14:47 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: Efektivní přepínání režimů s TV OUT
Odpovědět | | Sbalit | Link | Blokovat | Admin
a preco vy sa nedali devinovat dva rozne layouty a prepinat ich cez commandline?

startx -- -layout Normal startx -- -layout Televizor
23.9.2006 18:14 plky
Rozbalit Rozbalit vše Re: Efektivní přepínání režimů s TV OUT
Omlouvam se, ale neumim spustit startx z beziciho KDE. Ohlasi mi to chybu:
Fatal server error:
Server is already active for display 0
        If this server is no longer running, remove /tmp/.X0-lock
        and start again.
Pokud vite, jak tohle provest, budu rad. V tom pripade me bude zajimat i jak se vytvareji layouty. Takze pokud byste mel odkaz na nejakou stranku, kde je toto srozumnitelne a strucne popsane...
Predem diky
mess avatar 23.9.2006 19:17 mess | skóre: 43 | blog: bordel | Háj ve Slezsku - Smolkov
Rozbalit Rozbalit vše Re: Efektivní přepínání režimů s TV OUT
Odpovědět | | Sbalit | Link | Blokovat | Admin
Myslím, že přímo KDE má v ovládacím centru udělátko na změnu rozlišení - dělá to přes xrandr. Takže řešení tvého problému by mohlo být právě využití xrandr ve tvých skriptech. Navíc nemusíš být root, aby to fungovalo. A xka taky nemusíš restartovat.
Ad 4) To by se dalo vyřešit tím, že si skript pro přepnutí rozlišení nakopíruješ do ~/.kde/Autostart uživatele, u kterého chceš po přihlášení změnit rozlišení.
Cez párne mesiace zošíváš vaginy, cez neparne montuješ hajzle.
24.9.2006 17:54 plky
Rozbalit Rozbalit vše Re: Efektivní přepínání režimů s TV OUT
Dekuji moc, xrandr opravdu funguje, i kdyz umi vybirat pouze z rezimu, ktere ma nekde predepsane. Vyresil jsem to tedy tak, ze nechavam klonovani stale zapnuty (snad to neubira na vykonu) a kdyz chci obraz na TV, pouze prepnu rozliseni timto programem.
Nejsou potreba zadna hesla ani restarty X a prihlasovani. Prepnuti je okamzite.
Udelal jsem si na to skriptik, ktery by mel v zavislosti na soucasnem stavu prepinat mezi 1280x1024 (rezim cislo 0) a 800x600 (rezim cislo 8).
Pouzivam k tomu vypis z xrandr, ktery vypise seznam rezimu a pred aktualnim je hvezdicka. Pomoci prikazu grep \*8 nebo \*0 najdu pozadovanou radku a prepnu rezim. Zde je:
#! /bin/bash
xrandr >p.txt
if [ "grep \*0 p.txt" ]; then
  echo "je to 0";
  xrandr -s 8;
  exit
fi
if [ "grep \*8 p.txt" ]; then
  echo "je to 8";
  xrandr -s 0;
fi
Ale udelal jsem tam chybu a nevim, kde. Ten vyraz za if je vzdy vyhodnocen jako true, i kdyz je vyraz nalezen ci nikoliv. V bash scriptu se zatim nevyznam, nemate, prosim, nejaky napad?
Dekuji
mess avatar 24.9.2006 18:04 mess | skóre: 43 | blog: bordel | Háj ve Slezsku - Smolkov
Rozbalit Rozbalit vše Re: Efektivní přepínání režimů s TV OUT
Taky jsem se s tím trápil, pak jsem zjistil, že musím ty uvozovky kolem příkazu nahradite těmito jednoduchými uvozovkami: ` . Takže tvůj skript bude vypadat následovně:
#! /bin/bash
xrandr >p.txt
if [ `grep \*0 p.txt` ]; then
  echo "je to 0";
  xrandr -s 8;
  exit
fi
if [ `grep \*8 p.txt` ]; then
  echo "je to 8";
  xrandr -s 0;
fi

Snad je to ono :-) .
Cez párne mesiace zošíváš vaginy, cez neparne montuješ hajzle.
25.9.2006 01:27 plky
Rozbalit Rozbalit vše Re: Efektivní přepínání režimů s TV OUT
Tak to nakonec uvozovkami nebylo. Záměna za apostrofy nepomohla. Po dlouhém pátrání po vlastnostech příkazu if (mimochodem "man if" je snad na úplně jiné if, než je v bashi) jsem zjistil, jak testovat návratovou hodnotu příkazu : )
Poučily mě stránky http://docs.linux.cz/linux/LDP/Bash-Beginners-Guide/sect_07_01.html a
http://www.tldp.net/LDP/abs/html/testconstructs.html#EX10
Teď už to fachá naprosto nádherně, děkuji všem za odpovědi. Přikládám výsledek.
#! /bin/bash
xrandr | grep -q \*8

if [ $? -eq 1 ]
 then   # echo "je to 0";
  xrandr -s 8;
 else   # echo "je to 8";
  xrandr -s 0;
fi


25.9.2006 16:43 rom
Rozbalit Rozbalit vše Re: Efektivní přepínání režimů s TV OUT
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nechceš zkusit tohle. Dřív jsem to takle měl a maximální spokojenost.
otula avatar 25.9.2006 20:48 otula | skóre: 45 | blog: otakar | Adamov
Rozbalit Rozbalit vše Re: Efektivní přepínání režimů s TV OUT
Přesně tak. Já bych ti navíc (za předpokladu, že TV chceš používat jen pro filmy, což je asi 99% využití) doporučil neumisťovat obrazovky "vedle sebe", ale "přes sebe" - potom ti myš neskáče z jedné obrazovky do druhé.
   Screen         0 "Screen0" 0 0
   Screen         1 "Screen1" 0 0
V Xine potom stačí v nastavení zadat video display :0.1 a na displeji ti zůstane ovládací panel a film běží v TV.
Kdo vám tvrdí, že jste paranoidní, ten v tom spiknutí s největší pravděpodobností jede taky.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.