Bir program örneğinin hangi X görüntüsünde çalıştırılması gerektiğini seçmek mümkün müdür?


10

Bir sistemde çalışan birden fazla X Windows varsa, bir programın belirli bir pencerede çalıştırılması mümkün müdür? Pencereyi nasıl tanımlarsınız ve programı orada çalıştırırsınız?

Böyle bir programı çalıştırmak için gerekli izinlere sahip olduğumu varsayıyorum.


Yanıtlar:


15

X programları, DISPLAYortam değişkenine bakarak hangi X oturumuyla konuşmaları gerektiğini bilir .

Öncelikle DISPLAY, programınızın çalışmasını istediğiniz X oturumunda neyin ayarlandığını bulmanız gerekir . Bunu echo $DISPLAY, o X oturumunda bir X-terminalinin içinde komut vererek yapabilirsiniz. Genellikle çıktı gibi bir şey olsun :0.0.

Eğer mükemmel bir program başlatmak istiyorsunuz diyelim xclockX oturumunda programı DISPLAYolduğunu :0.0, ancak konsolunda bunu yapmak istiyor. Daha sonra bu konsola geçmek için Alt-Ctrl-F1 tuşlarına basın ve şunu yazın:

DISPLAY=:0.0 xclock   # variables set w/ a command are local to that command

Sonra Alt-Ctrl-F7 veya Alt-Ctrl-F8'e (veya Linux lezzetinize bağlı olarak belki başka bir F tuşuna) basarak X'e dönersiniz ve orada bulunan yeni güzel duvar saatini izleyebilirsiniz.

Aslında yukarıdaki komutu aynı makinedeki herhangi bir kabukta (SSH aracılığıyla, herhangi bir X oturumunda, herhangi bir konsolda vb.) Çalıştırabilirsiniz - DISPLAY=:0.0komuttan önce belirttiğiniz şey, xclockpencerenin her zaman açılacağı anlamına gelir aynı X oturumu.

Aslında - X programlarının ona bakması dışında, DISPLAYdeğişken hakkında özel bir şey yoktur . Normalde programları bir X terminalinden başlatırken, DISPLAYsizin için önceden ayarlanmış olduğundan doğru yerde başlarlar .

Yukarıdaki komutu kullanmak yerine, önce ayarlayıp DISPLAYardından çalıştırarak ikiye bölebilirsiniz xclock. Bu durumda, DISPLAYayar o kabuğu kapatana kadar devam eder ve oradan başlatılan sonraki tüm X programları aynı X oturumunda açılır xclock.

                      # variables set w/o a command are local to the shell,
export DISPLAY=:0.0   # unless exported
xclock

1
Son olarak, kabuk değişkenini ortama vermedikçe son bitin çalışmayacağını unutmayın.
Ignacio Vazquez-Abrams

Ben düşünüyorum DISPLAYo kabuğun (her iki çalışır tarafından ithal edildiğinden, varsayılan olarak dışa ayarlanacak zshve dashkullanmadan benim için export). Eğer iş için iki satırı sürümü alamayan Fakat eğer evet, değiştirmeyi deneyin DISPLAY=:0.0ile export DISPLAY=:0.0.
zrajm

1

Normalde, X istemci programları DISPLAYhangi X sunucusunun bağlanacağını bilmek için ortam değişkenini kullanır. Bazı programlar -display, DISPLAYortam değişkenini geçersiz kılmak için kullanılabilecek bir komut satırı parametresini ( veya benzer bir şeyi) kabul eder .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.