← KapturX

KapturX

Kali Linux ve diğer X11 tabanlı dağıtımlar için Rust + GTK4 ile yazılmış ekran yakalama, anotasyon ve video kayıt aracı.

Rust 2021GTK4X11FFmpegMIT
Foto
PNG · JPG
Video
FFmpeg
Tray
D-Bus
CLI
clap
Linux X11 only · macOS & Windows desteklenmiyor

Proje Hakkında

KapturX, başta Kali Linux olmak üzere X11 oturumu çalıştıran tüm Linux dağıtımları için tasarlanmış, tek binary olarak çalışan bir ekran yakalama aracıdır. Hem CLI (script otomasyonu için) hem de GTK4 GUI + sistem tepsisi (günlük kullanım için) modlarını tek üründe birleştirir. Tam ekran, bölge ve pencere yakalama; vektörel anotasyon editörü; FFmpeg üzerinden video kayıt; X11 raw input ile global hotkey ve klavye yakalamasına dirençli kısayol desteği sunar.

İşletim Sistemi Uyumluluğu

X11 protokolüne ve GTK4\'e bağımlı — Linux dışı hedefler desteklenmiyor

🐉

Kali Linux

Destekleniyor

Birincil hedef platform — geliştirme ve test ortamı.

🟠

Ubuntu / Debian (X11)

Destekleniyor

GTK4 + X11 oturumunda tam çalışır. Wayland oturumunda XWayland gerekir.

🐧

Fedora / Arch (X11)

Destekleniyor

GTK4 ≥ 4.14 ve x11 server kurulu olan dağıtımlarda çalışır.

🌊

Linux / Wayland

Kısmi

XWayland üzerinden kısmi destek. Native Wayland (wlr-screencopy) yol haritasında.

🍎

macOS

Desteklenmiyor

GTK4 + X11 + ksni (D-Bus) bağımlılıkları nedeniyle desteklenmiyor.

🪟

Windows

Desteklenmiyor

Linux'a özel sistem çağrıları (xrandr, X11 raw input) Windows'ta yok.

Neden Linux X11 only? KapturX şu Linux\'a özgü teknolojilere bağımlıdır: gdk4-x11 (GTK X11 backend), x11rb (X11 raw input), ksni (D-Bus StatusNotifierItem), xrandr (ekran tespiti), Linux dosya sistemi hiyerarşisi (~/.config/autostart, /usr/local/bin). macOS ve Windows için yeniden yazım (Quartz/Win32 capture, native menu bar/tray) gerekir.

Özellikler

Tam Ekran Yakalama

Tüm görüntüleyicileri tek karede yakalama; çoklu monitör desteği.

Bölge Seçimi

CLI veya etkileşimli arayüzle x,y,widthxheight formatında alan kırpma.

Pencere Yakalama

X11 pencere ID ile belirli bir uygulama penceresinin yakalanması.

Anotasyon Editörü

Çizim araçları (ok, dikdörtgen, vurgulayıcı, metin) — vektörel render + raster çıktı.

Video Kayıt

FFmpeg subprocess ile ekran kaydı; bölge tabanlı kayıt + tokio asenkron yönetim.

Pano Kopyalama

Yakalanan görüntüyü dosyaya kaydetmeden doğrudan X11 panosuna iletme (arboard).

Sistem Tepsisi

D-Bus StatusNotifierItem (ksni) ile masaüstü tepsisinde sürekli erişilebilir simge.

Global Hotkey

X11 raw input (x11rb XInput) ile klavye yakalama sırasında bile çalışan kısayollar.

Gecikmeli Yakalama

--delay parametresi ile menü/popup açıkken yakalama için geri sayım.

TOML Yapılandırma

confy + serde ile ~/.config/kapturx/ altında TOML config; varsayılan format, kalite, kayıt yolu.

CLI + GUI

Tek binary; argümanlar verilmediğinde GUI + tray, verildiğinde headless capture.

Otomatik Başlatma

make autostart ile ~/.config/autostart/kapturx.desktop kurularak oturum açılışında çalışır.

Yakalama Akışı — Adım Adım

05a (foto) ve 05b (video) paralel kollar — kullanıcı seçimine göre biri çalışır

01

Tetikleme

Kullanıcı CLI argümanı (--fullscreen / --region / --window), sistem tepsisi menüsü veya global hotkey ile yakalama başlatır. GUI modunda ksni tray simgesi sürekli arka planda çalışır.

02

Hedef Belirleme

Yakalama tipi seçilir: tam ekran (xcap üzerinden tüm monitörler), bölge (etkileşimli seçim veya x,y,widthxheight string), pencere (window ID + xcap window capture).

03

Gecikme

--delay parametresi varsa belirtilen saniye kadar bekler; menü/dropdown açma senaryolarında kullanılır. capture::delay::delay_sync ile bloklayan zamanlayıcı.

04

Görüntü Yakalama

xcap kütüphanesi X11 üzerinden RGBA buffer alır → image::RgbaImage tipine dönüştürür. Bölge seçiminde imageproc ile crop uygulanır.

05a

Foto: Anotasyon

GUI modunda yakalanan görüntü editöre açılır; cairo + pango ile çizim araçları (ok, kutu, vurgulayıcı, ab_glyph metin). Vektörel item listesi tutulur, son rasterize sırasında tek seferde uygulanır.

05b

Video: FFmpeg

Kayıt seçilirse tokio process ile FFmpeg subprocess başlatılır; xrandr ile ekran çözünürlüğü tespit edilir, bölge -filter:v crop ile uygulanır. Kayıt göstergesi GTK pencerede görünür.

06

Çıktı

Foto: PNG/JPG (image crate) ile config'teki dizine kaydedilir veya --clipboard ile arboard üzerinden panoya. Video: MP4/MKV olarak FFmpeg tarafından yazılır. Save dialog ile manuel hedef seçimi de mümkün.

CLI Kullanımı

clap derive ile tipli argüman parse — script otomasyonuna uygun

$ kapturxGUI + sistem tepsisi modu (varsayılan)
$ kapturx --fullscreenTüm ekranı yakala
$ kapturx --region "100,100,800x600"Belirtilen bölgeyi yakala
$ kapturx --window 12345Window ID ile pencere yakala
$ kapturx --list-monitorsBağlı monitörleri listele
$ kapturx --list-windowsAçık pencereleri listele
$ kapturx --fullscreen --delay 55 sn gecikmeli tam ekran yakalama
$ kapturx --fullscreen --clipboardYakala ve panoya kopyala (kaydetme)
$ kapturx --fullscreen --output ~/shot.pngBelirli dosya yoluna kaydet

Modül Yapısı

Rust kaynak ağacı — sorumluluklar açıkça ayrılmış

capture/

Ekran, bölge, pencere yakalama; xcap entegrasyonu, gecikme zamanlayıcı.

screen.rsregion.rswindow.rsdelay.rs

annotation/

Çizim araçları, vektörel item listesi, cairo ile render, son raster çıktı.

editor.rstools.rsitems.rsrenderer.rsrasterizer.rs

recording/

FFmpeg subprocess yönetimi; bölge bazlı + tam ekran video kayıt.

recorder.rsoptions.rs

ui/

GTK4 pencereler: tepsi, hotkey, izinler, kayıt göstergesi, save/settings dialog.

tray.rshotkeys.rspermissions_window.rsrecording_indicator.rssave_dialog.rssettings_window.rs

core

Uygulama mantığı, config, çıktı yazımı, pano.

app.rsconfig.rsoutput.rsclipboard.rsmain.rs

Teknoloji Yığını

Dil
Rust 2021
GUI
GTK4 (gtk4-rs ≥ 0.9, v4_14 features)
Render
cairo-rs + pango + gdk-pixbuf + ab_glyph
X11
gdk4-x11 + x11rb (XInput raw input)
Yakalama
xcap 0.0.14 (multi-monitor)
Görüntü
image 0.25 + imageproc 0.25
Tepsi
ksni 0.3 (D-Bus StatusNotifierItem, GTK3 yok)
Pano
arboard 3.4
Video
FFmpeg subprocess (tokio process)
Config
confy 0.6 + serde + toml 0.8
Async
tokio 1 (process, sync, time)
CLI
clap 4 (derive)
Hata
anyhow 1 + thiserror 2
Log
log 0.4 + env_logger 0.11

Kurulum

Ön koşul: Rust toolchain (rustup), GTK4 ≥ 4.14 geliştirme paketleri, X11 server, FFmpeg.

# Build (release)
make release
# Sistem çapında kurulum (sudo)
sudo make install
# Kullanıcı dizinine kurulum (sudo gerekmez)
make install-user
# Oturum açılışında otomatik başlatma
make autostart
# Geliştirme modu
RUST_LOG=info cargo run

MIT lisansı · ~/.config/kapturx/ altında TOML config