Kaynak uygulama (içeriğin kopyalandığı yer) kapatıldığında bazen pano içeriğinin kullanılamayacağını fark ettim.
Bu beni kaynak uygulamanın ne olduğunu bilmek mümkün olup olmadığını merak (örneğin belki PID tarafından).
Neden? Kaynak uygulama bir terminal ise, kopyalanan içeriğin göreli bir yol olması durumunda, bir dosyaya tam yol oluşturmak için terminalin çalışma dizinini bulmak istiyorum.
Bilginize, şu anda pano içeriğini belirlemek için xclip kullanıyorum, örn.
xclip -selection primary -t STRING -o 2> /dev/null
@ StéphaneChazelas ne dedi. Ancak, X11'den diğer istemcinin güvenilir bir PID'sini almanın olası olmadığını unutmayın. X istemcilerinin X sunucularına genel ağ bağlantıları (UNIX soketi veya TCP soketi) ile bağlandığını unutmayın, uygulama yerel olmayabilir. TCP (bu günlerde artık yaygın değil) veya SSH iletimli X11 bağlantısı (daha yaygın) üzerinden bağlanmış olabilir.
—
Celada
Notlar için teşekkürler - XGetSelectionOwner'a erişmek için biraz C kodu yazmam gerektiğini varsayalım? Muhtemelen bunu yapabilirim - bir çözüme ulaştığımda geri göndereceğim.
—
Jeff Ward
XGetSelectionOwner(3)
size seçimin sahibinin pencere kimliğini alır. Örneğin, _NET_WM_PID özelliğine sahip bir pencere bulmaya çalışmak için pencere ağacında yürüyebilirsinizxprop
(bu pencerenin bu özelliği ayarlayan yerel bir istemciden geldiğini varsayarak).xwininfo -root -tree | less +/0x<that-id>
uygulamayı tanımlamak için yeterli olabilir.