abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 16:44 | IT novinky

    Počítačová hra Tetris slaví 40 let. Alexej Pažitnov dokončil první hratelnou verzi 6. června 1984. Mezitím vznikla celá řada variant. Například Peklo nebo Nebe. Loni měl premiéru film Tetris.

    Ladislav Hagara | Komentářů: 8
    dnes 10:44 | Nová verze

    MicroPython (Wikipedie), tj. implementace Pythonu 3 optimalizovaná pro jednočipové počítače, byl vydán ve verzi 1.23.0. V přehledu novinek je vypíchnuta podpora dynamických USB zařízení nebo nové moduly openamp, tls a vfs.

    Ladislav Hagara | Komentářů: 0
    dnes 10:22 | Nová verze

    Canonical vydal Ubuntu Core 24. Představení na YouTube. Nová verze Ubuntu Core vychází z Ubuntu 24.04 LTS a podporována bude 12 let. Ubuntu Core je určeno pro IoT (internet věcí) a vestavěné systémy.

    Ladislav Hagara | Komentářů: 1
    dnes 01:00 | Nová verze Ladislav Hagara | Komentářů: 0
    včera 19:55 | IT novinky

    Intel na veletrhu Computex 2024 představil (YouTube) mimo jiné procesory Lunar Lake a Xeon 6.

    Ladislav Hagara | Komentářů: 0
    včera 13:44 | IT novinky

    Na blogu Raspberry Pi byl představen Raspberry Pi AI Kit určený vlastníkům Raspberry Pi 5, kteří na něm chtějí experimentovat se světem neuronových sítí, umělé inteligence a strojového učení. Jedná se o spolupráci se společností Hailo. Cena AI Kitu je 70 dolarů.

    Ladislav Hagara | Komentářů: 0
    včera 13:22 | Nová verze

    Byla vydána nová verze 14.1 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 12:55 | Zajímavý software

    Společnost Kaspersky vydala svůj bezplatný Virus Removal Tool (KVRT) také pro Linux.

    Ladislav Hagara | Komentářů: 11
    včera 12:33 | Nová verze

    Grafický editor dokumentů LyX, založený na TeXu, byl vydán ve verzi 2.4.0 shrnující změny za šest let vývoje. Novinky zahrnují podporu Unicode jako výchozí, export do ePub či DocBook 5 a velké množství vylepšení uživatelského rozhraní a prvků editoru samotného (např. rovnic, tabulek, citací).

    Fluttershy, yay! | Komentářů: 1
    včera 12:00 | Nová verze

    Byla vydána (𝕏) nová verze 7.0 LTS open source monitorovacího systému Zabbix (Wikipedie). Přehled novinek v oznámení na webu, v poznámkách k vydání a v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    Rozcestník

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

    13.6.2020 19:27 LarryL | skóre: 27
    Jak přehazovat klávesnici a myš mezi dvěmi instancemi Xorg (2 grafické karty)?
    Přečteno: 666×
    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.2020 19:39 z_sk | skóre: 34 | 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.2020 21:49 Pavel 'TIGER' Růžička | skóre: 53
    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.2020 21:57 z_sk | skóre: 34 | 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.2020 23:20 k3dAR | skóre: 62
    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.2020 23:36 LarryL | skóre: 27
    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.2020 23:46 k3dAR | skóre: 62
    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.2020 00:41 k3dAR | skóre: 62
    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.2020 23:25 LarryL | skóre: 27
    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.2020 23:39 k3dAR | skóre: 62
    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.2020 00:55 LarryL | skóre: 27
    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.2020 09:35 z_sk | skóre: 34 | 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.2020 09:55 LarryL | skóre: 27
    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.2020 00:07 z_sk | skóre: 34 | 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.2020 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.2020 19:50 LarryL | skóre: 27
    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.
    Řešení 1× (LarryL (tazatel))
    21.7.2020 14:44 LarryL | skóre: 27
    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.2020 15:49 LarryL | skóre: 27
    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.