GNU/Linux >> Znalost Linux >  >> Ubuntu

Maximalizovat okna na fyzickou obrazovku při použití virtuálního rozlišení W/xrandr?

Mám netbook s malou obrazovkou v širokoúhlém formátu (1024×600), což znamená, že spousta programů, jejichž designéři si něco takového nepředstavovali, otevírají okna, u kterých nelze měnit velikost a jejichž spodky jsou zakryté. Prostřednictvím Ubuntu 10.04 jsem se o to postaral pomocí příkazu xrandr:

xrandr --output LVDS1 --fb 1024x768 --panning 0x768

(všimněte si 0x), což mělo za následek, že jsem dostal virtuální plochu normální velikosti, která se posouvala vertikálně, ale kterou (nějak) správce oken ignoroval, takže maximalizovaná okna zabírala pouze fyzickou obrazovku. Výsledkem bylo, že jsem nemusel posouvat, dokud se neobjevilo velké dialogové okno:pěkné.

V 11.04 to tak úplně nefunguje. Vše, co jsem řekl výše, je pravda, ale spodních 168 pixelů se zdá být trvale zčernalých, takže když se tam dole roztáhne velké okno, nevidím, co v něm je (ale je to tam:objeví se úchyty pro změnu velikosti a jsou užitečné na těch příležitosti, kdy je povolena změna velikosti). Myslím, že to souvisí s Unity. To maří účel, takže zkouším tento příkaz xrandr:

xrandr --output LVDS1 --fb 1024x768 --panning 1024x768

(všimněte si 1024x). Bohužel už to neoklame správce oken a všechna maximalizovaná okna zmizí zespodu. Otázka:

Jak nastavím věci tak, aby „maximalizované“ okno zabíralo pouze fyzickou obrazovku (nebo obecněji zabíralo konkrétní část obrazovky)?

Související otázka, na kterou bych rád odpověděl, je:

Proč první příkaz xrandr oklame správce oken (“0x” znamená podle manuálové stránky, že je zakázáno posouvání podél vodorovné osy; funkčně to postrádá smysl, protože virtuální velikost je stejná jako fyzická)? Co se děje s Unity?

Všimněte si, že akce „maximalizovat“ je nezbytná, protože v Unity je maximalizované okno stylizováno jinak:jeho záhlaví je absorbováno do panelu nástrojů v horní části obrazovky, což pro mě šetří cenné pixely. Pouhá změna velikosti okna není dobrou alternativou.

Odkazy:

Našel jsem tuto otázku:Chtěl bych zabránit tomu, aby maximalizace pokrývala jednu třetinu obrazovky. Byl jsem velmi zklamán, když se zdálo, že Compiz Maximumize nedělá vůbec nic (je zde chyba Launchpadu:https://bugs.launchpad.net/ubuntu/+source/compiz-fusion-plugins-extra/+bug/462158).

Také jsem našel stejnou otázku na superuser:https://superuser.com/questions/269966/id-like-to-prevent-maximize-from-covering-one-third-of-the-screen, který nabízí dvě alternativy. Plugin Compiz Grid nepomáhá, protože nemaximalizuje, jak jsem popsal výše. Pythonový organizátor oken jsem nezkoušel, ale vypadá podobně jako Grid. Obecně neočekávám, že by chytré skripty pomohly, protože význam „maximalizovat“ řídí samotný správce oken, takže řešením by mělo být řešení Compiz. Existuje nějaký?

Přijatá odpověď:

Dovolte mi odpovědět na svou vlastní otázku; odpověď je bizarně zapletená. Trik je v tom, že požadované chování pracovní plochy (které platilo v 10.04) je nyní (v 11.04) řízeno Compizem, který má pojem „výstupy“:tedy obrazovky, na kterých lze kreslit. Ty se konfigurují ve Správci nastavení CompizConfig (balíček compizconfig-backend-gconf nebo -kconfig ), v nabídce „obecné možnosti“ na kartě „Nastavení zobrazení“.

Související:Příliš mnoho diskových I/O ve Windows?

Tato věc má tři nastavení, z nichž všechna jsou důležitá. Nejdůležitější je „Detekovat výstupy“:to musí být odškrtnuté, protože celý bod je v tom, že chci vytvořit nefyzické nastavení obrazovky, zatímco autodetekce pouze zvedne velikost mé obrazovky.

Druhým nejdůležitějším je pole „Outputs“, což je seznam rozlišení. Na první pohled můžete očekávat, že to, co sem vložíte, je „1024×768“, ale to je špatně:říká Compizu, aby použil celou virtuální obrazovku, takže maximalizovaná okna budou proudit dolů; to je špatné chování. Ale ani zápis „1024×600“ nefunguje, protože to Compizu řekne, aby předstíral, že obrazovka je vysoká pouze 600 pixelů; kontraintuitivním výsledkem je proto, že se rozhodne roztáhnout každé okno. To je ošklivé a také nefunkční, způsobuje úžasné grafické závady a záhadně přesouvá tlačítka z místa, na které je potřeba kliknout, abyste je aktivovali. Není dobré.

Mnohem lepší možností je napsat „1024×600+0-168“, což Compizu řekne, že na spodní straně je ve skutečnosti 168 nevyužitých pixelů:to reprodukuje chování „černého pruhu“, na které jsem si stěžoval. Je dobré vědět, odkud to pochází, ale stále to nechci. Ale říká mi, co to znamená:znamená to, že Compiz tyto pixely jednoduše ignoruje:nebude tam kreslit okna. Moje myš tam však stále chodí, protože toto chování řídí X, který je před Compizem. Zdá se, že je třeba nějak říct Compizu, aby tam kreslil (takže windows umí jít tam), ale také tam nekreslit (takže nechtějí jít tam).

Zcela správným řešením je proto popsat dva výstupní zařízení do Compizu:jedno „1024×600+0-168“ a jedno „1024×768“, čímž Compizu říkáte, aby kreslil a nekreslil na tyto spodní pixely zároveň. Jak se ale ujistit, že ví, kterou „chtit“? To je první možnost na této kartě:„Overlapping Output Handler“. Nastavte jej na „Preferovat menší výstup“, což je přesně to, co jsem řekl slovy nahoře.

Takže odpověď:spusťte xrandr --mode 1024x700 --fb 1024x768 --panning 0x768; přejděte na možnosti zobrazení Compiz a vložte dva výstupy „1024×600+0-168“ a „1024×768“; zrušte zaškrtnutí políčka „Detekovat výstupy“; a „Overlapping Output Handler“ upřednostňuje menší výstupy. Páni.


Ubuntu
  1. Windows – Jak zabránit Windows v přepsání Grub při použití stroje s duálním spouštěním?

  2. Změna rozlišení obrazovky? (rozbitá obrazovka notebooku)?

  3. Otočit pouze jednu obrazovku?

  1. Jak zakázat stmívání obrazovky ve 14.04?

  2. Upravit rozlišení na serveru Ubuntu 10.04?

  3. Mohu vytvořit virtuální počítač z fyzického počítače se systémem Windows XP?

  1. Kdy jste naposledy použili Windows?

  2. Rozlišení obrazovky neuvedené?

  3. Rozlišení obrazovky „mimo rozsah“?