- clipscreen adalah aplikasi X11 sederhana yang membuat monitor virtual yang mencerminkan area tertentu di layar, dan menandai area tersebut dengan persegi panjang hijau
- Di alat berbagi layar seperti Google Meet, Microsoft Teams, dan Jitsi Meet, pengguna dapat membagikan monitor virtual alih-alih seluruh layar atau jendela individual
- Cukup pindahkan jendela yang ingin dibagikan ke dalam bingkai hijau, sehingga kebutuhan untuk membagikan banyak jendela secara terpisah atau terus mengganti target berbagi berkurang
- Menjalankannya menggunakan format
./clipscreen <width>x<height>+<x>+<y>, dan pemilihan area interaktif juga dimungkinkan jika digunakan bersama hacksaw atau slop
- Baru diuji di Linux dan xorg, dan tidak ada jaminan akan berfungsi di sistem lain
Apa yang dilakukan clipscreen
- clipscreen adalah aplikasi yang membuat monitor virtual yang menduplikasi sebagian layar
- Area layar yang ditentukan disorot dengan persegi panjang hijau
- Pengguna dapat membagikan monitor virtual ini di alat berbagi layar rapat video biasa
- Contoh: Google Meet
- Microsoft Teams
- Jitsi Meet
Cara berbagi layar
- Alih-alih membagikan seluruh layar atau membagikan tiap jendela secara terpisah, pengguna membagikan monitor virtual yang dibuat oleh clipscreen
- Jendela yang ingin dibagikan cukup dipindahkan ke dalam bingkai hijau
- Ini adalah cara yang mengurangi kebutuhan untuk terus mengganti jendela yang dibagikan saat menangani banyak jendela
Persyaratan build
- Sistem memerlukan komponen berikut
-
Library pengembangan X11
- Library grafis Cairo
- Kompiler C, misalnya
gcc
- Di Ubuntu 24.04, library yang diperlukan dapat dipasang dengan perintah berikut
apt-get install libx11-dev xserver-xorg-dev xorg-dev libcairo2-dev gcc
- Build dijalankan dengan perintah berikut
make
- Aplikasi ini baru diuji di **Linux dan xorg**, dan belum pasti apakah akan berfungsi di sistem lain
Cara penggunaan
- File biner yang sudah dikompilasi dijalankan dengan format berikut
./clipscreen <width>x<height>+<x>+<y>
- Argumen menentukan posisi dan ukuran overlay serta monitor virtual
<width>: lebar overlay dan monitor virtual
<height>: tinggi overlay dan monitor virtual
<x>: koordinat x kiri atas overlay dan monitor virtual
<y>: koordinat y kiri atas overlay dan monitor virtual
- Contohnya seperti berikut
./clipscreen 800x600+100+100
- Perintah ini membuat jendela overlay 800x600 yang dimulai dari posisi
(100, 100) pada layar
Pemilihan area interaktif dan keluar
- Untuk memilih area secara interaktif, dapat dijalankan bersama
hacksaw atau slop
./clipscreen $(hacksaw)
./clipscreen $(slop)
- Alat terkait
- Untuk keluar, tekan Ctrl+C di terminal tempat aplikasi berjalan
1 komentar
Opini Hacker News
Jadi saya membuat alat kecil yang memakai ekstensi xrandr untuk me-mirror area tertentu sebagai monitor virtual, lalu monitor virtual itu bisa dibagikan
Detailnya ada di tulisan blog: https://www.splitbrain.org/blog/2024-10/11-introducing_clips...
Saya menggunakannya seperti ini untuk lingkungan demo: https://gist.github.com/radupotop/d77a47767e2e65a7e7d40d1ea8...
sleep(100)sampai menerima SIGINTKarena itu penggunaan CPU bisa tinggi tanpa alasan khusus
Jika dihentikan dengan cara selain SIGINT, output virtual bisa tertinggal sementara jendela overlay menghilang, jadi agak canggung, tetapi bukan masalah besar. Namun sebaiknya jangan terlalu menjadikan jumlah baris kode sebagai ukuran kualitas atau keanggunan
Pendekatan ini tidak bisa dilakukan begitu saja di Wayland. Sebagai gantinya, di Wayland mungkin alat ini tidak diperlukan sejak awal. Cara standar bagi proses tanpa izin untuk meng-capture layar adalah desktop portal, dan setidaknya KDE mendukung berbagai opsi capture termasuk capture persegi panjang layar. Tampaknya ini tetap mungkin meski menjalankan aplikasi X.org berkat XWaylandVideoBridge
Saya kurang senang D-Bus dipakai di mana-mana, tetapi bagus bahwa dengan mengganti implementasi
org.freedesktop.impl.portal.ScreenCast, hampir semua perilaku capture layar yang diinginkan bisa diganti. Menurut saya ini arah yang lebih baik daripada setiap aplikasi mengimplementasikan sendiri-sendiri fitur pemilihan target captureItu bukan berarti X11 tidak bagus dan menyenangkan untuk di-hack, tetapi kalau tidak mau berasumsi hanya pemakaian sempurna, kodenya akan membengkak dan menjadi rumit, dan sebagai gantinya lebih tangguh
Misalnya coba jalankan
./clipscreen 1 2 3 4Kalau ingin mengutak-atik sesuatu, bisa langsung dilakukan. ICCCM dulu banyak dihujat pada awal 90-an, tetapi di sisi lain tidak ada padanannya, dan sampai sekarang masih terus muncul eksperimen baru di ranah window manager
xrandr --setmonitor screenshare 2560/1x1440/1+0+0 nonegeo=$(slop -f '%w/1x%h/1+%x+%y') && xrandr --setmonitor screenshare "$geo" noneMeski begitu, itu perintah satu baris yang keren
Dengan begitu saya bisa tahu apakah ukuran jendelanya nyaman dilihat orang lain di laptop, dan preview-nya mengikuti mouse sehingga tingkat zoom dan batas mouse bisa disesuaikan saat itu juga
Jendela preview OBS terbuka saat dijalankan tanpa jendela utama OBS, jadi setelah itu saya tidak perlu melihat atau mengoperasikan jendela utama OBS maupun aplikasinya, dan rasanya seperti aplikasi standalone
https://github.com/BlankSourceCode/obs-zoom-to-mouse
Rectangular Region bisa membagikan sebagian layar yang dipilih, dan New Virtual Output langsung membuat layar virtual yang terlihat di KDE Display Configuration. Layar virtual ini bisa ditempatkan bertumpang tindih di atas display fisik yang ada, atau tidak