Tıklandığında GNU Ekran tuhaf karakterler


21

GNU ekranında küçük bir sorunum var. RaspberryPi cihazımda bir GNU ekran oturumu çalışıyor. Şimdi bazen katıldığımda, terminalde tıklarsam (Fedora'da sonlandırıcı kullanıyorum) garip karakterlerin yazılı olduğunu görüyorum. Bu karakterler faremin koordinatlarına bağlı… GNU Ekranına gönderilen tıklama etkinliğinin yanlış kod çözülmesi gibi görünüyor. Bu karakterler aşağıdakileri içerir:

kM#kM -  Z3#Z3  -  q-#q-

vb…

İlk olarak bunun benim için bir sorun olduğunu düşündüm, bu ttyyüzden RaspberryPi'mde yeni bir GNU Ekran oturumu açtım: hiç sorun değil.
Ben stty -aher iki oturumda bir yaptım ve fark olduğunu gördüm. Sonra stty -g > ~/stty-good-settingsiyi bir oturum yaptım ve kötü olanla yükledim stty `cat ~/stty-good-settings`(bundan sonra değerleri karşılaştırdım, ayarlar başarıyla yüklendi) ama yine de ekran oturumlarından birinde değil diğerinde sorun var!

Ne olduğundan emin değilim, eğer bu TERMdeğerimden (her ikisinde de aynı), ttyayarlarımdan, terminalimden kaynaklanıyorsa…


2
Bunu tmuxzaman zaman da görüyorum . Bir noktada terminal çoklayıcıları muz gibi görünüyor ve girişleri yanlış çözüyor ( xtermburada söyleyecek bir şey de olabilir). resetgenellikle bunu benim için düzeltir.
peterph

Gerçekten de resetekranda çalışıyor! Düzeltme için teşekkürler, ancak, neden olduğu hakkında bir fikir isterim ...
Noé Malzieu

Ben de ... :) Bunun terminal çoklayıcılar ve içeren terminal arasında bir tür kötü etkileşim olduğundan şüpheleniyorum.
peterph

Anlıyorum .. Soruyu cevaplayabilirsiniz, bu cevabı doğrulayacağım!
Noé Malzieu

Yanıtlar:


14

GNU ekranında çalışan bir şey bunun yerine bir xterm (veya benzeri) içinde çalıştığına karar verdi ve Uygulama Faresi modunu etkinleştirdi. (Veya GNU ekranına takmadan önce, muhtemelen ssh'den önce bile, bu terminalde çalıştırdığınız ve düzgün bir şekilde kendini sıfırlamayan bir şeydir.) Bu genellikle $ TERM "ekran" değil, örneğin "xterm" veya "ekran. xterm”. İkincisi, kurulu olan Debian sistemlerinde (ve türevlerinde) görülür ncurses-term; bu paketi temizlemeyi deneyin (ana bilgisayarda ve raspi'de).

Aksi takdirde, reset(daha önce de söylendiği gibi) veya printf \\x033cgeçici olarak yardımcı olabilir. Veya, elbette, terminal emülatörünüze fare modunu devre dışı bırakmasını bildirmek için uygun kaçış dizileri.


resethile yaptı. Teşekkürler.
AlikElzin-kilaka

9

reset, ancak ekranınızı temizler. Çalışıyorsanız xtermveya uyumlu bir şey varsa , kullanmak için en kısa, en az müdahaleci olan şey

printf '\033[?9l'

Bu, XTerm Kontrol Sekanslarının Fare İzleme bölümünde açıkça belirtilmez , ancak açılmış olabilecek modlardan herhangi birini kapatarak fare modunu sıfırlamanıza (devre dışı bırakmanıza) olanak tanır. Bunlar adlandırılmış sabitler olarak belgelenmiştir:xterm

 #define SET_X10_MOUSE               9
 #define SET_VT200_MOUSE             1000
 #define SET_VT200_HIGHLIGHT_MOUSE   1001
 #define SET_BTN_EVENT_MOUSE         1002
 #define SET_ANY_EVENT_MOUSE         1003

ve 9en kısa olanıdır.

Fare modu birçok uygulama tarafından açılır. Biri kapatmadan çıkarsa, gördüğünüz tek karakterleri üretir. ncurses uygulamaları endwin, tüm iyi niyetli lanetler uygulama çağrısı olan fare modunu kapatır . Diğer uygulamalar (n) küfür kullanamaz veya aramayı unutabilir endwin.

ncurses uygulamaları, xterm-mouse modunun kullanılabilir olup olmadığını kmous( screenterminal açıklamasının bir parçası olan ) test ederek kontrol eder . Bu özelliği 1999'dan beri test etmenin standart yolu olmuştur , bu nedenle bir uygulamanın fare modunu yanlışlıkla açması pek olası değildir. Aksine, işini yapmayı unutmuş bir uygulamayı gösterir.

Bu arada, screen.xtermDebian'ın ncurses-termpaketine herhangi bir giriş yok (onu tutmak, kaldırmaktan daha yararlıdır). Bu paketteki ekranla ilgili tüm girişlerin listesi. Çoğu, screençeşitli terminaller için davranışlardaki tutarsızlıkları düzeltmek için kullanılır :

/usr/share/terminfo/s/screen.konsole
/usr/share/terminfo/s/screen-16color-bce
/usr/share/terminfo/s/screen-16color
/usr/share/terminfo/s/screen3
/usr/share/terminfo/s/screen.mrxvt
/usr/share/terminfo/s/screen-bce.Eterm
/usr/share/terminfo/s/screen-bce.gnome
/usr/share/terminfo/s/screen.xterm-xfree86
/usr/share/terminfo/s/screen-bce.konsole
/usr/share/terminfo/s/screen-bce.mlterm
/usr/share/terminfo/s/screen-256color-s
/usr/share/terminfo/s/screen-bce.mrxvt
/usr/share/terminfo/s/screen-bce.rxvt
/usr/share/terminfo/s/screen.linux
/usr/share/terminfo/s/screen.vte
/usr/share/terminfo/s/screen-bce.xterm-new
/usr/share/terminfo/s/screen.teraterm
/usr/share/terminfo/s/screen-16color-bce-s
/usr/share/terminfo/s/screen.xterm-r6
/usr/share/terminfo/s/screen+fkeys
/usr/share/terminfo/s/screen-256color-bce-s
/usr/share/terminfo/s/screen.mlterm
/usr/share/terminfo/s/screen-16color-s
/usr/share/terminfo/s/screen-bce.linux
/usr/share/terminfo/s/screen.gnome
/usr/share/terminfo/s/screen.rxvt
/usr/share/terminfo/s/screen2
/usr/share/terminfo/s/screen.Eterm
/usr/share/terminfo/s/screen.xterm-new
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.