- clipscreen, ekranın belirli bir bölgesini yansıtan sanal monitör oluşturan ve bu bölgeyi yeşil bir dikdörtgenle gösteren basit bir X11 uygulamasıdır
- Google Meet, Microsoft Teams, Jitsi Meet gibi ekran paylaşım araçlarında tüm ekran veya tek tek pencereler yerine sanal monitör paylaşılabilir
- Paylaşmak istediğiniz pencereyi yeşil çerçevenin içine taşımanız yeterli olduğundan, birden fazla pencereyi ayrı ayrı paylaşma veya paylaşım hedefini değiştirme ihtiyacı azalır
- Çalıştırma biçimi
./clipscreen <width>x<height>+<x>+<y> şeklindedir; hacksaw veya slop ile birlikte kullanıldığında etkileşimli bölge seçimi de yapılabilir
- Yalnızca Linux ve xorg üzerinde test edilmiştir; diğer sistemlerde çalışacağı garanti edilmez
clipscreen ne yapar
- clipscreen, ekranın bir kısmını kopyalayan sanal monitör oluşturan bir uygulamadır
- Belirlenen ekran bölgesi yeşil bir dikdörtgen ile vurgulanır
- Kullanıcı, standart görüntülü toplantı ekran paylaşım araçlarında bu sanal monitörü paylaşabilir
- Örnek: Google Meet
- Microsoft Teams
- Jitsi Meet
Ekran paylaşım yöntemi
- Tüm ekranı paylaşmak veya tek tek pencereleri ayrı paylaşmak yerine, clipscreen’in oluşturduğu sanal monitör paylaşılır
- Paylaşılacak pencere yeşil çerçevenin içine taşınır
- Birden fazla pencereyle çalışırken paylaşılan pencereyi sürekli değiştirmeyi gerektirmeyen bir yöntemdir
Derleme gereksinimleri
- Sistemde aşağıdakiler gerekir
-
X11 geliştirme kütüphaneleri
- Cairo grafik kütüphanesi
- C derleyicisi, örn.
gcc
- Ubuntu 24.04’te gerekli kütüphaneler aşağıdaki komutla kurulabilir
apt-get install libx11-dev xserver-xorg-dev xorg-dev libcairo2-dev gcc
- Derleme aşağıdaki komutla çalıştırılır
make
- Uygulama yalnızca **Linux ve xorg** üzerinde test edilmiştir; diğer sistemlerde çalışıp çalışmayacağı kesin değildir
Kullanım
- Derlenmiş çalıştırılabilir dosya aşağıdaki biçimde çalıştırılır
./clipscreen <width>x<height>+<x>+<y>
- Argümanlar, overlay ve sanal monitörün konumunu ve boyutunu belirtir
<width>: overlay ve sanal monitörün genişliği
<height>: overlay ve sanal monitörün yüksekliği
<x>: overlay ve sanal monitörün sol üst x koordinatı
<y>: overlay ve sanal monitörün sol üst y koordinatı
- Örnek şöyledir
./clipscreen 800x600+100+100
- Bu komut, ekranda
(100, 100) konumundan başlayan 800x600 boyutunda bir overlay penceresi oluşturur
Etkileşimli bölge seçimi ve çıkış
- Bir bölgeyi etkileşimli olarak seçmek için
hacksaw veya slop ile birlikte çalıştırılabilir
./clipscreen $(hacksaw)
./clipscreen $(slop)
- İlgili araçlar
- Çıkmak için uygulamanın çalıştığı terminalde Ctrl+C tuşlarına basmak yeterlidir
1 yorum
Hacker News yorumları
Bu yüzden xrandr uzantısını kullanarak belirli bir bölgeyi sanal monitör olarak yansıtan ve bu sanal monitörü paylaşmayı sağlayan küçük bir araç yaptım.
Ayrıntılar blog yazısında: https://www.splitbrain.org/blog/2024-10/11-introducing_clips...
Demo ortamı olarak böyle kullanıyorum: https://gist.github.com/radupotop/d77a47767e2e65a7e7d40d1ea8...
sleep(100)çağırıyor.Bu yüzden belirgin bir neden olmadan CPU kullanımı artabilir.
SIGINT dışında bir yöntemle kapanırsa sanal çıktı kalıp overlay penceresi kaybolabilir; bu biraz tuhaf ama büyük sorun değil. Yine de kod satırı sayısını kalite ya da zarafetin ölçüsü olarak fazla abartmamak iyi olur.
Bu yöntem Wayland’de aynı haliyle mümkün değil. Buna karşılık Wayland’de bu araca en başta ihtiyaç olmayabilir. Yetkisiz bir sürecin ekranı yakalaması için standart yol desktop portal; en azından KDE, ekranın dikdörtgen bir bölgesini yakalama dahil çeşitli yakalama seçeneklerini destekliyor. X.org uygulaması çalıştırıyor olsanız bile XWaylandVideoBridge sayesinde mümkün olmalı.
D-Bus’ın her yerde kullanılması pek hoşuma gitmiyor ama
org.freedesktop.impl.portal.ScreenCastuygulamasını değiştirerek istediğiniz ekran yakalama davranışını büyük ölçüde ikame edebilmeniz güzel. Bence her uygulamanın yakalanacak hedefi seçme işlevini ayrı ayrı uygulamasından daha iyi bir yön.Bu, X11’in hack’lemeye uygun ve havalı olmadığı anlamına gelmiyor; ama yalnızca kusursuz kullanımı varsaymak istemezseniz kod şişer, karmaşıklaşır ve o ölçüde sağlamlaşır.
Örneğin
./clipscreen 1 2 3 4çalıştırmayı deneyin.Bir şeylerle oynamak istiyorsanız hemen yapabiliyorsunuz. ICCCM 90’ların başında çok eleştirilmişti, ama diğer tarafta buna karşılık gelen bir şey yok ve pencere yöneticisi alanında hâlâ yeni denemeler çıkıyor.
xrandr --setmonitor screenshare 2560/1x1440/1+0+0 nonegeo=$(slop -f '%w/1x%h/1+%x+%y') && xrandr --setmonitor screenshare "$geo" noneYine de harika bir tek satırlık komut.
Böylece başkaları için dizüstü bilgisayarda izlemeye uygun pencere boyutunda olup olmadığını anlayabiliyorum; önizleme fareyi takip ediyor ve yakınlaştırma seviyesi ile fare sınırlarını anında ayarlayabiliyorum.
OBS önizleme penceresi çalıştırıldığında ana OBS penceresi olmadan açılıyor; bu yüzden sonrasında ana OBS penceresini ya da uygulamayı görmeye veya kullanmaya gerek kalmıyor, bağımsız bir uygulama gibi hissettirmesi hoşuma gidiyor.
https://github.com/BlankSourceCode/obs-zoom-to-mouse
Rectangular Region, seçtiğiniz ekran bölümünü paylaşmanızı sağlıyor; New Virtual Output ise KDE Display Configuration’da görünen sanal ekranı anında oluşturuyor. Bu sanal ekran mevcut fiziksel ekranın üzerine bindirilerek yerleştirilebilir ya da yerleştirilmeyebilir.