Terminal öykünücüsünün içinde resim görebilir ve film izleyebilir miyim? Sanal konsol durumunda bunu framebuffer üzerinden yapabilirim, ama terminal emülatörlerine ne dersiniz?
Terminal öykünücüsünün içinde resim görebilir ve film izleyebilir miyim? Sanal konsol durumunda bunu framebuffer üzerinden yapabilirim, ama terminal emülatörlerine ne dersiniz?
Yanıtlar:
Mesela - Terminalimin arka planını değiştirmek istiyorum?
printf '\033}bp%s\000' \
'http://hdwalldesktops.com/wp-content/uploads/2014/02/background-backgrounds-high-resolution-abstract-picture-background-wallpaper.jpg'
Bazı uzantıları ve bling atılan hafifçe uzatılmış bir vt100'ü öykünür .
> Most escapes supported by xterm, rxvt etc. work
> Xterm 256 color escapes work
> Backgrounds (bitmap, scalable/vector, animated gif, videos)
> Transparency
> Bitmap and scalable fonts supported
> Themes for the layout and design
> URL, file path and email address detection and link-handling
> Inline display of link content
> Multiple copy and paste selections and buffer support
> Works in X11
> Works in Wayland
> Works directly in the linux framebuffer (fbcon)
> Can be finger/touch controlled
> Scan scale by UI scaling factors
> Can render using OpenGL or OpenGL-ES2 (not a requirement - just an
option)
> Can display inlined media content (images, video, documents)
> Can do multiple "tabs"
> Can do splitting into multiple panes
> Block text selection
> Drag and drop of text selections and links
> Can stream media from URLs
> Tab switcher has live thumbnail content
> Single process, multiple windows/terminals support
> Fast (gives urxvt a run for its money)
> Themable visual bell
> Compress backscroll
> Text reflow on resize
> Color palette selection
> More...
Yukarıda görüyor musunuz? Bunu çerçeve arabelleğinde yapar.
Bir dizi terminal emülatörü , PySixel github sayfasından Sixel Graphics'i destekler , liste:
Görüntüleri daha önce bahsedilen PySixel ile görüntüleyebilirsiniz , bu da gerekli dönüşümleri yapabiliyor gibi görünüyor. Başka bir seçenek de araçları kullanmaktır netpbm
. Mlterm bir JPEG görüntüsünü dönüştürmek ve görüntülemek için aşağıdakileri kullanarak iyi sonuçlar elde ettim:
jpegtopnm image.jpg | pnmquant 256 | ppmtosixel >/dev/tty
Sonuç:
XTerm, Sixel görüntülerini de gösterebilir, ancak destek şu anda 16 renkle sınırlıdır (ve aynı zamanda buggy). Örnek görüntüler içeren bir arşiv buradan indirilebilir , ancak komut dosyaları bozuk görünüyor. XTerm, tam çıktı biçimini görüntülemez ppmtosixel
(başlangıç / bitişte kullanılan kontrol sekanslarını desteklemez). Bulmadan önce PySixel
, ppmtosixel
çıktıyı XTerm'in görüntüleyeceği bir şeye kesmek için kullandım:
#!/bin/bash
echo -e '\eP0;0;0;q"1;2;400;400'
jpegtopnm "$1" |
pnmquant 16 |
ppmtosixel |
tail -n +2 |
head -c -3
echo -e '\x1b\x5c\x0d'
tput cup "$(tput lines)" 0
Görüntüler varsayılan VT420 modunda görüntülenmez. Sadece VT240, VT241, VT330 veya VT340 modlarında görüntülenecektir. Ayrıca --enable-sixel-graphics
derleme seçeneği de gereklidir. VT340 ( xterm -ti vt340
) ile en iyi sonuçları buldum . Sonuçlar (birincisi örnek arşivden çok güzel bir tron görüntüsü):
perl -wpe 'use bytes;s!([\x80-\x9f])!qq(\e).chr(ord($1)-64)!ge'
ppmtosixel'den sonra harika bir filtre olarak çalışır (ve 8bit c1 kodlarını 7 bit eşdeğerlerine geçirmek istediğiniz diğer zamanlarda).
Evet, bir çeşit. Mplayer, örneğin, bir metin terminalinde videonun hem aalib (tek renkli) hem de libcaca (renkli) oluşturulmasını destekler. Tam olarak yüksek çözünürlük değil, ancak hem alt "piksel" oluşturma ve geçici renk taklidi etkin çözünürlüğü artırırken, genellikle neler olduğunu anlayabilirsiniz.
Unix dünyasında terminal emülatörleri, kullanıcıya gösterilecek veri akışının seri hat üzerinden birer birer gönderildiği seri terminalleri taklit eder.
Modem zamanında bu tipik olarak saniyede 1000-2000 karakter arasındaydı, ancak bugün sadece taklit donanım söz konusu olduğunda çok daha hızlı olabilir. Gönderilen baytları anlamak terminale kalmıştır. Bu genellikle karakterleri göstermek, imleci hareket ettirmek ve ekran görüntüsünü değiştirmek içindi. Birkaç terminal grafik modlarına geçebilir - gnuplot desteği biraz - ancak bant genişliği video açısından ilginç bir şey yapmak için çok küçük.
Yine de, taklit donanımı olan modern bir bilgisayar için bir terminal emülatörü çok şey yapabilir. Aralarından bazılarını görmek için "ttyquake" arama terimi bulunan görselleri aramayı deneyin. Yine de, eğer HD istersen büyük olasılıkla hayal kırıklığına uğrayacaksın.