abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 17:55 | Nová verze

Byla vydána betaverze Fedory 33, tj. o poslední zastávce před vydáním finální verze, která je momentálně naplánována na 20. října. Výchozí souborový systému byl změněn z Ext4 na Btrfs. Výchozí prostředí GNOME bylo aktualizováno na verzi 3.38. Mezi oficiální edice přibyla Fedora IoT.

Ladislav Hagara | Komentářů: 0
dnes 14:22 | Zajímavý článek

David Revoy se před rokem rozhodl, že vydá svůj open source webový komiks Pepper&Carrot také knižně a ve vlastní režii. Použije k tomu pouze open source software. Nemá to jednoduché. V několika příspěvcích na svém blogu popsal problémy a jejich postupné řešení. Po roce testování je ale konečně s výsledkem spokojen.

Ladislav Hagara | Komentářů: 0
dnes 14:00 | Komunita

Lukáš Bařinka oznámil vydávání série video cvičení Programování v shellu na YouTube.

Ladislav Hagara | Komentářů: 1
dnes 11:11 | Zajímavý článek

Nová čísla časopisů od nakladatelství Raspberry Pi: MagPi 98 (pdf), HackSpace 35 (pdf), Wireframe 42 (pdf) a Hello World 14 (pdf).

Ladislav Hagara | Komentářů: 0
dnes 08:00 | Nová verze

Byla vydána verze 8.4 OpenSSH. Blíží se ohlášený zákaz algoritmu „ssh-rsa“ kvůli zranitelnosti SHA-1.

Fluttershy, yay! | Komentářů: 0
včera 13:22 | Zajímavý projekt

Více než 60 moderních telefonů má díky práci týmu dobrovolníků SOMainline šanci na zařazení do oficiálního linuxového jádra. Patche pro podporu chipsetu SD630 a SD660, kterým jsou tyto telefony poháněny, jsou postupně začleňovány. Tým se soustředí na zprovoznění klasických linuxových distribucí pro telefony, ale věnuje se i zprovoznění běžného AOSP. Další tým vývojářů postmarketOS již delší dobu pracuje na podpoře chipsetu MSM8953, který umožňuje vdechnout život dalším nejméně 30 telefonům vydaných v letech 2017 a 2018.

David Heidelberg | Komentářů: 22
včera 08:00 | Komunita

Svobodný kancelářský balík LibreOffice slaví 10 let od svého vzniku. Projekt byl představen 28. září 2010.

Ladislav Hagara | Komentářů: 20
včera 07:00 | Pozvánky

Ve dnech 15. až 17. října 2020 se bude konat společná openSUSE + LibreOffice konference. Původně měla konference probíhat v Norimberku, ale vzhledem k situaci bude probíhat online. Konference již zveřejnila program. Naplánováno je několik desítek přednášek. Registrace a podrobnosti naleznete na stránce konference.

Zdeněk Crhonek | Komentářů: 1
27.9. 18:11 | Zajímavý software

SimulIDE je realtimový simulátor elektronických obvodů. Podporuje také PIC, AVR a Arduino. K dispozici je verze 0.4.13. Vývojáře lze podpořit na Patreonu.

Ladislav Hagara | Komentářů: 0
27.9. 14:11 | Nová verze

Virtual Machine Manager aneb virt-manager (Wikipedie), tj. GUI pro správu virtuálních strojů podporovaných knihovnou libvirt, byl vydán ve verzi 3.0.0. Přehled novinek v příspěvku na blogu. Zdůrazněna je nová volba --cloud-init.

Ladislav Hagara | Komentářů: 4
Používáte aplikaci eRouška?
 (19%)
 (3%)
 (2%)
 (12%)
 (50%)
 (8%)
 (6%)
Celkem 469 hlasů
 Komentářů: 35, poslední 20.9. 21:50
Rozcestník

Dotaz: Jak přehazovat klávesnici a myš mezi dvěmi instancemi Xorg (2 grafické karty)?

13.6. 19:27 LarryL | skóre: 16
Jak přehazovat klávesnici a myš mezi dvěmi instancemi Xorg (2 grafické karty)?
Přečteno: 596×
Ahoj. Potřeboval bych poradit s konfigurací Xorg pro 2 GPU.

Běží mi na PC 2 procesy Xorg:

1) Xorg (DISPLAY=:0) > iGPU Intel > monitor 1

2) Xorg (DISPLAY=:8) > dGPU Nvidia > monitor 2

Ten druhý proces si spouští Bumblebee, ale není to důležité, protože stejný problém bych zřejmě měl i kdybych použil Intel a Nvidia ovladače zvlášť. Co se týká grafiky je vše v cajku - grafický výstup na obou monitorech vidím.

Jediné co potřebuji je nějak přehazovat klávesnici+myš mezi :0 a :8 klávesovou zkratkou bez použití Synergy, Xinerama. Defaultně to bylo tak, že klávesnice a myš fungovala jen na :0. Pak jsem našel soubor /etc/bumblebee/xorg.conf.d/10-ignore-devices.conf jehož obsah je:
# If you connect a display to one of the outputs wired to the Nvidia card, you
# have to comment this whole file. Note that you can leave it commented even
# without currently attached monitor, at the cost of greater optirun startup
# time.

Section "InputClass"
    Identifier  "IgnoreDevices"
    MatchDevicePath "/dev/input/event*|/dev/input/mouse*|/dev/input/js*|/dev/input/mice*"
    Option      "Ignore" "true"
EndSection
Když jsem ho zakomentoval, tak začala klávesnice a myš fungovat na :0 i na :8 současně. Já potřebuji, aby fungovala buď na jednom nebo druhém monitoru. Jde to? Googlením nemůžu nic najít nebo nevím co přesně hledat.

PS: Nepotřebuji myší volně přejíždět mezi :0 a :8, ani nepotřebuji přetahovat okna mezi nimi, chci aby displeje od sebe zůstaly izolované.

Řešení dotazu:


Odpovědi

13.6. 19:39 debian+ | skóre: 16 | blog: analyzy
Rozbalit Rozbalit vše Re: Jak přehazovat klávesnici a myš mezi dvěmi instancemi Xorg (2 grafické karty)?
Pri najhorsom vies urobit nieco ako pulseaudio ale pre klavesnicu.

1/2 ako-na-konfiguraciu-hernych-ovladacov-2
debian.plus@protonmail.com
Pavel 'TIGER' Růžička avatar 13.6. 21:49 Pavel 'TIGER' Růžička | skóre: 50
Rozbalit Rozbalit vše Re: Jak přehazovat klávesnici a myš mezi dvěmi instancemi Xorg (2 grafické karty)?
Tady si nejsem moc jist, jestli to půjde aplikovat bez restartu Xek.
13.6. 21:57 debian+ | skóre: 16 | blog: analyzy
Rozbalit Rozbalit vše Re: Jak přehazovat klávesnici a myš mezi dvěmi instancemi Xorg (2 grafické karty)?
Asi toto ti velmi pomoze: https://unix.stackexchange.com/a/17172
debian.plus@protonmail.com
k3dAR avatar 13.6. 23:20 k3dAR | skóre: 59
Rozbalit Rozbalit vše Re: Jak přehazovat klávesnici a myš mezi dvěmi instancemi Xorg (2 grafické karty)?
tip asi dobrej, ale url na konkretni zrovna nevhodnou radu ;-) pouziva tam starej postup, kdyz tak o odpoved nize, tam uz pouziva --enable a --disable a zaroven ne pred ciselne ID (ktere se muze zmenit a musel by ho v "hotkey skriptu" detekovat) ale primo nazev...

priklad, v Thinkpadu kdyz bych chtel zakazat na DISPLAY :0 TrackPoint:
DISPLAY=:0 xinput --disable "TPPS/2 IBM TrackPoint"
pro detekci zda je zakazano:
DISPLAY=:0 xinput --list --long "TPPS/2 IBM TrackPoint" | grep disabled
takze to jen zkombinovat do skriptu, detekovat zda je na :0 mys aktivni:
- kdyz ano, tak mys+kbd na 0: vypnout a na :8 zapnout
- kdyz ne, tak mys+kbd na 0: zapnout a na :8 vypnout
porad nemam telo, ale uz mam hlavu... nobody
13.6. 23:36 LarryL | skóre: 16
Rozbalit Rozbalit vše Re: Jak přehazovat klávesnici a myš mezi dvěmi instancemi Xorg (2 grafické karty)?
JJ, taky mě to napadlo nějak vypnout klávesnici a myš. Našel jsem podobný příklad kde používali xinput float a xinput reattach, ale nějak mám pocit, že to není čisté řešení. Třeba když se přepínací script sekne, tak bych zůstal bez klávesnice a myši.

Když jsem narazil na ukázku jak spouštět full screen games na displeji :1 zatímco hlavní plocha zůstane na dispeji :0, tak jestli to není správnější cesta. Jakože když zmáčknu Ctrl-Alt-F8, tak by fungovala klávesnice a myš jen na DISPLAY :8, a když bych se přepl zpět Ctrl-Alt-F7, tak by zase fungovala jen na DISPLAY :0, ale vůbec nevím jak tyto klávesové zkratky navázat na konfigurák Xorg. Vlastně bych si tím přepínám jen zapínal a vypínal sekci ze souboru 10-ignore-devices.conf (v úvodním příspěvku). Ale nevím, vždy když mám změnit konfiguraci Xka, tak v tom tápu.
k3dAR avatar 13.6. 23:46 k3dAR | skóre: 59
Rozbalit Rozbalit vše Re: Jak přehazovat klávesnici a myš mezi dvěmi instancemi Xorg (2 grafické karty)?
kdyz se sekne tak poresit pres SSH ? :-) (pripravenej failback script prirazenej primo danemu ssh spojeni v klientovi)
pokud vim, tak neni mozne reloadnout xord.conf(.d/*) bez restartu X...

kdytak ten hlavni prepinaci skript by bylo neco jako:
#!/bin/sh

keyboard="AT Translated Set 2 keyboard"
mouse="TPPS/2 IBM TrackPoint"

switch(){
    DISPLAY=:0 xinput --${1} "${keyboard}"
    DISPLAY=:0 xinput --${1} "${mouse}"
    DISPLAY=:8 xinput --${2} "${keyboard}"
    DISPLAY=:8 xinput --${2} "${mouse}"
}

(DISPLAY=:0 xinput --list --long "${mouse}" | grep -q disabled) && switch enable disable || switch disable enable
porad nemam telo, ale uz mam hlavu... nobody
k3dAR avatar 14.6. 00:41 k3dAR | skóre: 59
Rozbalit Rozbalit vše Re: Jak přehazovat klávesnici a myš mezi dvěmi instancemi Xorg (2 grafické karty)?
bezpecnejsi reseni nez ten muj puvodni skript kterej pri prepnuti na :8 nejdriv vypnul :0, tak vzdy nejdiv zapinat to vypnute a pak teprve vypinat to zapnute, zaroven s "set -e" okamzite ukoncit skript kdyz v kterekoliv casti narazi na problem, coz by treba bylo i to ze X na :8 NEbezi, aby to nevyplo kbd+mou na :0...
#!/bin/sh

set -e

keyboard="AT Translated Set 2 keyboard"
mouse="TPPS/2 IBM TrackPoint"

switch(){
    DISPLAY=:${1} xinput --enable "${keyboard}"
    DISPLAY=:${1} xinput --enable "${mouse}"
    DISPLAY=:${2} xinput --disable "${keyboard}"
    DISPLAY=:${2} xinput --disable "${mouse}"
}

(DISPLAY=:0 xinput --list --long "${mouse}" | grep -q disabled) && switch 0 8 || switch 8 0
porad nemam telo, ale uz mam hlavu... nobody
14.6. 23:25 LarryL | skóre: 16
Rozbalit Rozbalit vše Re: Jak přehazovat klávesnici a myš mezi dvěmi instancemi Xorg (2 grafické karty)?
Díky za script, je čistý a jednoduchý. Problém pouze je, že stejné jméno klávesnice mají dvě různé ID, takže to píše chybu "Warning: There are multiple devices matching ..." ale to už vyřeším.

Větší problém je, že jsem si vytvořil klávesou zkratku, která funguje jen v :0 (xfce), protože na displeji :8 mám spuštěný jen windows manager (xfwm4), takže klávesová zkratka tam nefunguje. Ani xfce4-panel, tam nemohu spustit, protože není naprogramovaný, aby mohl být spouštěn ve více instancích. Takže bych musel klávesou zkratku uložit do něčeho nezávislého na DE, např. do Xbindkeys (musel bych doinstalovat). Možná by šla zkratka nastavit i v acpid.

Ještě jsem se díval jestli by to nešlo přes ty virtuální terminály (Ctrl-Alt-F7..F8), protože si myslím, že zrovna k tomuto účelu jsou určeny. Podle mě by to mělo jít kdybych bumblebee přinutil, aby DISPLAY :8 spouštěl s parametrem "vt8". Jak bude chvilka, tak na to mrknu, pokud to nepůjde, tak zůstanu u tvého scriptu.
kdyz se sekne tak poresit pres SSH ? :-) (pripravenej failback script prirazenej primo danemu ssh spojeni v klientovi)
Tak už se mi to stalo :-), ale SSH není třeba, stačí to vyřešit přes virtuální terminál (Ctrl-Alt-F2).
k3dAR avatar 14.6. 23:39 k3dAR | skóre: 59
Rozbalit Rozbalit vše Re: Jak přehazovat klávesnici a myš mezi dvěmi instancemi Xorg (2 grafické karty)?
jestli mas 2 klavesnice tak nemusis nic prepinat ne :-)) jestli jde o sejne jmeno pro klavesnici a mys, tak to by melo jit ze v jmeno uvedes o co jde "pointer:Genius", "keyboard:Genius"...
jeste zkoukni tohle zda te neco netrkne, resi(l) mozna to co ty :-)
porad nemam telo, ale uz mam hlavu... nobody
15.6. 00:55 LarryL | skóre: 16
Rozbalit Rozbalit vše Re: Jak přehazovat klávesnici a myš mezi dvěmi instancemi Xorg (2 grafické karty)?
jestli mas 2 klavesnice tak nemusis nic prepinat ne
Dokonce 4 klávesnice :-) ...ale jen podle výpisu. Fyzicky jednu.
jde "pointer:Genius", "keyboard:Genius"...
Nee, samotná klávesnice má úplně stejné názvy + další dva názvy (asi multimediální klávesy a ještě něco).

S tím "vt8" se mi to už povedlo a funguje to. Při přepínání Ctrl-Alt-F7 .. F8 sám Xorg vypisuje že připojuje/odpojuje klávesnici, myš a dokonce i USB DVB-T. Otestuju to a pak označím řešení i když vídím, že už někdo projevil iniciativu :-)
15.6. 09:35 debian+ | skóre: 16 | blog: analyzy
Rozbalit Rozbalit vše Re: Jak přehazovat klávesnici a myš mezi dvěmi instancemi Xorg (2 grafické karty)?
Nenastavue sa klavesove skratky v XFCE nastavaniach klavesnica a tam Pouzitie skratiek?
debian.plus@protonmail.com
15.6. 09:55 LarryL | skóre: 16
Rozbalit Rozbalit vše Re: Jak přehazovat klávesnici a myš mezi dvěmi instancemi Xorg (2 grafické karty)?
Ano, přesně tam, ale XFCE funguje jen na :0.

DISPLAY :8 klávesovou zkratku z :0 nevidí, protože tam XFCE není spuštěn. V nějaké diskuzi jsem četl, že někdo chtěl na nové instanci Xorg spustit alespoň xfce4-panel, ale vývojáři mu napsali, že panel není naprogramovaný, aby se uměl spustit ve více instancích. To umí jen xfwm4 (windows manager XFCE). Takže řešením je spustit na :8 jiné DE, např. LXDE a tam vytvořit znovu kláv. zkratku nebo ji vytvořit v něčem co není závislé na DE (Xbindkeys, acpid ...).
14.6. 00:07 debian+ | skóre: 16 | blog: analyzy
Rozbalit Rozbalit vše Re: Jak přehazovat klávesnici a myš mezi dvěmi instancemi Xorg (2 grafické karty)?
Třeba když se přepínací script sekne, tak bych zůstal bez klávesnice a myši.
Daj volat s timeout. Ak to sekne, ukonci to po case 20s timeout a nejako to osetris, co bude robit ak sekne.
debian.plus@protonmail.com
15.6. 19:30 luky
Rozbalit Rozbalit vše Re: Jak přehazovat klávesnici a myš mezi dvěmi instancemi Xorg (2 grafické karty)?
Pouzij x2x
15.6. 19:50 LarryL | skóre: 16
Rozbalit Rozbalit vše Re: Jak přehazovat klávesnici a myš mezi dvěmi instancemi Xorg (2 grafické karty)?
Díky za tip. Vypadá, že je to něco jako Synergy. U těchto nástrojů mám obavy, že tam může zbytečně vznikat latence a taky rád využívám to co už v systému mám, takže využít funkci přímo v X serveru mně přišlo vhodnější, ale nevěděl jsem, že v Xku neexistuje žádná taková funkce out-of-box.
21.7. 14:44 LarryL | skóre: 16
Rozbalit Rozbalit vše Re: Jak přehazovat klávesnici a myš mezi dvěmi instancemi Xorg (2 grafické karty)?
TL;DR: Napíši tady poznatky s používáním pro ostatní, třeba se někomu bude hodit, i pro sebe až to budu za rok zase řešit :-). Přikládám script, který pro mne funguje pomocí metody xinput. Poznatky s metodou xinput i s VT je i přímo ve scriptu - v helpu. Mám ještě jednu otázečku (úplně dole v tomto příspěvku).

Script:
#!/bin/sh

# Pokud se kláv. nebo myš objevuje ve výpisu "xinput --list" vícekrát, tak uveď
# tu část názvu, která je shodná u všech.
# Pokud je připojeno více HW klávesnic a myší a je požadavek je přepínat všechny,
# tak lze použít krátký společný název pro všechny, např. "Keyboard" a "Mouse"
keyboard="Logitech USB Keyboard"
mouse="Logitech G700 Laser Mouse"

display_main="0"
display_b="8"

switch(){
	# default keyboard/pointer je pro případ, že v /etc/bumblebee/xorg.conf.nvidia bude Option "AutoAddDevices" "false".
	# devlist_* je pro případ, že jedno fyzické zařízení bude v systému jako více zařízení podobných nebo stejných názvů.
	devlist_mouse_1=$(DISPLAY=:"$1" xinput --list | grep "$mouse\|default pointer" | sed -n 's/.*id=\([0-9]\+\).*/\1/p')
	devlist_keyboard_1=$(DISPLAY=:"$1" xinput --list | grep "$keyboard\|default keyboard" | sed -n 's/.*id=\([0-9]\+\).*/\1/p')

	devlist_mouse_2=$(DISPLAY=:"$2" xinput --list | grep "$mouse\|default pointer" | sed -n 's/.*id=\([0-9]\+\).*/\1/p')
	devlist_keyboard_2=$(DISPLAY=:"$2" xinput --list | grep "$keyboard\|default keyboard" | sed -n 's/.*id=\([0-9]\+\).*/\1/p')

	if [[ "$devlist_mouse_1" == "" && "$devlist_keyboard_1" == "" ]]; then 
		echo "Mouse and keyboard not found on DISPLAY :$1 or unable to connect to X server."
	else
		for dev in $devlist_mouse_1 $devlist_keyboard_1
		do
	    	DISPLAY=:"$1" xinput --enable "$dev"
		done

		if [[ "$devlist_mouse_2" == "" && "$devlist_keyboard_2" == "" ]]; then 
			echo "Mouse and keyboard not found on DISPLAY :$2 or unable to connect to X server."
		else
			for dev in $devlist_mouse_2 $devlist_keyboard_2
			do
		    	DISPLAY=:"$2" xinput --disable "$dev"
			done
		fi
	fi
}

case "$1" in
	--switch-on-main)
		switch "$display_main" "$display_b"
		;;
	--switch)
		# Pokud má myš stejný název pro různá ID, tak by příkaz s "--long" nefungoval. Vypisoval by
		# chybu: "Warning: There are multiple devices matching ..."
		#if ( DISPLAY=:"$display_main" xinput --list --long "$mouse" | grep -q disabled ) ; then
		id=$(DISPLAY=:"$display_main" xinput --list | grep "$mouse" | sed -n '1 s/.*id=\([0-9]\+\).*/\1/p')
		if [[ $(DISPLAY=:"$display_main" xinput list-props $id | grep 'Device Enabled' | awk '{print $4}') == "0" ]]; then
			switch "$display_main" "$display_b"
		else
			switch "$display_b" "$display_main"
		fi
		;;
	--help|-h|*)
		echo "Použití: $0 [OPTION]"
		echo
		echo 'Tento script přepne klávesnici a myš předdefinovaného názvu mezi instancemi' 
		echo 'Xorg spuštěnými na iGPU Intel (DISPLAY :0) a dGPU Nvidia (DISPLAY:8).'
		echo
		echo 'Při použití Nvidia-Bumblebee je tento script potřeba pouze když chceme'
		echo 'používat monitor připojený přímo k dGPU. Výsledkem je nejnižší možná latence.' 
		echo 'Pro zprovoznění je potřeba:'
		echo '- v souboru /etc/bumblebee/xorg.conf.nvidia'
		echo '  zakomentovat řádek (nebo vložit správný port):'
		echo '  Option "ConnectedMonitor" "DFP"'
		echo '  změnit na true:'
		echo '  Option "UseEDID" "false"'
		echo '  Option "AutoAddDevices" "false" #bez toho by v "xinput --list" bylo: default keyboard/mouse'
		echo '  přidat řádek:'
		echo '  Option "AllowEmptyInitialConfiguration'
		echo '- zakomentovat obsah souboru /etc/bumblebee/xorg.conf.d/10-ignore-devices.conf'
		echo '- aplikace na dGPU Nvidia spouštět příkazem: DISPLAY=:8 optirun <application>'
		echo '- další aplikace na dGPU Nvidia lze spouštět příkazem: DISPLAY=:8 <application>'
		echo
		echo 'OPTION:'
		echo ' -h --help        zobrazí tuto nápovědu'
		echo ' --switch-on-main zapne klávesnici a myš na DISPLAY :0 a vypne na DISPLAY :8'
		echo '                  (vhodné použít při prvním spuštění procesu "Xorg :8", aby'
		echo '                  klávesnice a myš nefungovaly zdvojeně na na obou diplejích)'
		echo ' --switch         přepíná klávesnici a myš mezi DISPLAY :0 a DISPLAY :8 (při'
		echo '                  prvním spuštění se zapne na DISPLAY :8 a vypne na DISPLAY :0)'
		echo
		echo 'Vytvoření klávesové zkratky:'
		echo '1) Pomocí programu, který je závislý na Xorg (např. windows managery, Xbindkeys)'
		echo '   hrozí, že pokud bude klávesnice a myš na DISPLAY :8 a proces'
		echo '   "Xorg :8" bude ukončen, tak se nepůjde přepnout zpět na "Xorg :0".'
		echo '   Nepůjde se přepnout ani na volný textový VT (tty2) a spustit tento'
		echo '   script ručně. Nejjednodušší je vypojit a znovunapojit klávesnici/myš z USB portu.'
		echo '   Nvidia-Bumblebee ve výchozím nastavení ukončí "Xorg :8" automaticky pokud na'
		echo '   DISPLAY :8 již neběží žádný jiný proces.'
		echo '2) Pomocí programu, který není závislý na Xorg (např. acpid, actkbd).'
		echo
		echo 'Varování:'
		echo 'Pokud bych se přepl na textový terminál (např. tty2) a zapl tento script, tak'
		echo 'všechny vstupy z klávesnice i myši se projeví na tty2 i na displeji :0/:8.'
		echo 'Podobná situace s duplicitou vstupů na obou displejích :0 a :8 nastane když:'
		echo '- napojím/znovunapojím klávesnici nebo myš,'
		echo '- poprvé spustím (nebo bumbebee spustí) proces "Xorg :8".'
		echo
		echo 'Poznámka (jiná možnost přepínání):'
		echo 'Pro přepínání klávesnice a myši lze použít i virtuální terminály (VT) a přepínat'
		echo 'tty7 a tty8 (Ctrl+Alt+F7/F8). V tom případě se nepoužívá optirun, ale přímo Xorg:'
		echo '1) z textového VT (tty1-tty6) příkazem:'
		echo ' /usr/lib/Xorg :8 vt8 -config /etc/bumblebee/xorg.conf.nvidia -configdir \'
		echo ' /etc/bumblebee/xorg.conf.d -nolisten tcp -noreset -verbose 3 -isolateDevice \'
		echo ' PCI:01:00:0 -modulepath /usr/lib/nvidia/xorg,/usr/lib/xorg/modules'
		echo '2) nebo z grafického (tty7) pomocí systemd:'
		echo '  systemd-run --property PAMName=login \'
        echo '  --property User=<my-user> \'
        echo '  --property StandardInput=tty \'
        echo '  --property TTYPath=/dev/tty8 \'
        echo '  sh -c "chvt 8 && /usr/lib/Xorg :8 vt8 -config /etc/bumblebee/xorg.conf.nvidia \'
        echo '  -configdir /etc/bumblebee/xorg.conf.d -nolisten tcp -noreset -verbose 3 \'
        echo '  -isolateDevice PCI:01:00:0 -modulepath /usr/lib/nvidia/xorg,/usr/lib/xorg/modules"'
		echo 'Samotná aplikace se spouští bez optirun příkazem: DISPLAY=:8 <application>'
		echo 'Při přepínání pomocí VT tento script není nutný, protože o přepínání klávesnice'
		echo 'a myši se stará VT v kernelu. Při použití VT je v jeden okamžik vidět výstup jen'
		echo 'na jednom monitoru (iGPU[:0] nebo dGPU[:8]). Na druhém monitoru je černá obrazovka.'
		exit 0
esac

Bug v XFCE:

Bohužel jsem narazil na bug v XFCE, který mně používání obou metod (xinput i VT) znepříjemňuje. Když udělám jednu z těchto věcí na DISPLAY :0 (na kterém běží XFCE):
  • přepnu klávesnici a myš (nebo jen jedno z toho) pomocí výše uvedeného scriptu,
  • jen přepnu z tty2 na tty7 (DISPLAY :0)
  • napojím do PC klávesnici nebo myš
tak poté několik desítek sekund:
  • nereaguje Firefox
  • nefungují klávesové zkratky definované v XFCE
  • Firefox a xfsettingsd vytíží cpu na cca 5% a Xorg ho vytíží na 25%
  • klávesové zkratky nebo kliknutí ve Firefoxu se projeví všechny najednou až po "rozmrznutí"
Pokud ve správci úloh zastavím proces xfsettingsd, tak k zamrzání nedochází, ale ani nefungují klávesové zkratky. Vypadá to na tento bug.

Místo konkrétního zařízení jen <default pointer/keyboard>:

V případě, že v souboru /etc/bumblebee/xorg.conf.nvidia je Option "AutoAddDevices" "true" (což je defaultně), tak příkaz DISPLAY=:8 xinput --list nevypisuje moje konkrétní názvy klávesnice a myši, ale je tam tohle:
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ <default pointer>                       	id=6	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ <default keyboard>                      	id=7	[slave  keyboard (3)]

Bumblebee vs. Nvidia-prime:

Zjistil jsem, že poměrně nedávno začala Nvidia od verze 435.17 oficiálně podporovat Render Offload. Výsledkem je nižší latence. S Bumblebee jsem sice nikdy latenci nepocítil, ale přesto jsem Nvidia-prime zkusil. Bohužel jsem zjistil, že při použítí Prime obě GPU používají stejnou instanci Xorg. Jelikož Nvidii používám i pro vga-pass a potřebuji ji často přiřadit virtuálce, tak bych musel vždy nejdřív zabít Xorg, což je pro mne nepraktické, takže nakonec zůstanu u Bumblebee.

A teď ta otázka:

Když vidím kolik nástrah je při použití xinput, tak se mi zdá lepší způsob přepínání klávesnice a myši pomocí virtuálních terminálů, ale má to jednu velkou nevýhodu a to, že DISPLAY, který není aktivní zobrazuje černou obrazovku. V praxi to funguje tak, že jsem na tty7 (DISPLAY :0) (tj. monitor č. 1) pak zmáčknu Ctrl+Alt+F8, tím se přepnu na tty8 (DISPLAY :8) (tj. monitor č. 2) a monitor č. 2, který byl do té doby černý se rozsvítí a objeví se spuštěná aplikace, ale monitor č. 1 zhasne (objeví se na něm černá obrazovka). To samé při přepnutí zpět. Neexistuje někde v nastavení virtuálních konzolí v kernelu nebo v Xorg možnost, aby se grafický výstup na neaktivní tty nevypínal?
21.7. 15:49 LarryL | skóre: 16
Rozbalit Rozbalit vše Re: Jak přehazovat klávesnici a myš mezi dvěmi instancemi Xorg (2 grafické karty)?
Neexistuje někde v nastavení virtuálních konzolí v kernelu nebo v Xorg možnost, aby se grafický výstup na neaktivní tty nevypínal?
Když nad tím přemýšlím, tak to z principu asi nepůjde. Když se přepnu na tty8, tak asi těžko půjde nastavit, aby tam zůstala grafika z tty7.

Založit nové vláknoNahoru

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

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.