Shreyansp'ın çözümünü en tatmin edici buldum (ama pek tatmin edici değil) :)
İşte bunu geliştirmeye çalışmam (tabii YMMV). Umarım bu bir çözüm arayanlar için faydalı olabilir :)
Benim çözümüm şu şekilde davranıyor:
- kafein Windows'a uygun bir Sanal Anahtar Kodu gönderir:
- Windows'un uyku veya boşta kalmasını önler
- Aksi halde, Windows üzerinde ne tek başına, ne kombinasyon halinde (Ctrl, Shift, Alt, Alt-Gr, Win, F1-F5, F10, vb.) herhangi bir yan etki oluşturmaz.
- ya Putty'ye gönderilmez ya da Putty tarafından göz ardı edilir
TL; DR: Solüsyon -key:0E
kafein param ile 2. ve 3. adımlar arasında uygulanır (aşağıya bakınız) : Kafeinden
çıkın ve şu şekilde yeniden başlatın:
caffeine.exe 5 -key:0E
(kolay test için)
caffeine.exe 50 -key:0E
(zorunlu bir ekran koruyucu için 1 dakikaya ayarlanmış)
read
Uzaktaki ana bilgisayarda programı başlatın ve her 5 veya 50 saniyede bir tuş vuruşlarının nasıl alınmadığını izleyin.
- Çık
read
ileCtrl+C
Shreyansp, 5. ve 10. adımlar arasında bir düzeltmenin uygulanacağı bir çözüm önerdi (aşağıya bakınız).
Bunun yan etkisi (konfigürasyonumda), her tuşa basıldığında, kafeinden uzaktaki ana bilgisayara iletilecek olan:
normalde istediğim bir 'tuşa basma kaydırma çubuğunu sıfırla' (Macun / Pencere sayfasındaki ayar) , ancak sadece ben (insan) tuşa basarken ama düzenli olarak kafein kullanmıyorken tetikledi :)
- readline / bash çevrilmiş versiyonu (from
'"\e[28~"'
dan '""'
(boş anahtar?) uzak oturum etkileşiminin birkaç saniye askıda kalmasına neden oldu
Yukarıdakileri kolayca test etmek için, Kafein'den çıkın ve 5 saniye aralıklarla ve Sanal Anahtar Kodu 07 ile yeniden başlatın:
caffeine.exe 5 -key:07
read
Uzaktaki ana bilgisayarda programı başlatın ve her 5 veya 50 saniyede bir tuş vuruşlarının nasıl alındığını izleyin.
- Çık
read
ileCtrl+C
Anlaşılacağı gibi tuşa basılan 'boru hattı':
- Kafein, Windows'a bir Sanal Anahtar Kodu gönderir
- Windows, bu Sanal Anahtar Kodunu Macuna gönderir
- Putty, aşağıdaki oturum ayarlarına dayanarak bazı 'çeviriler' / 'eşlemeler' yapar:
- Putty, 'çevrilen' / 'eşlenmiş' anahtar kodunu uzaktaki ana makineye gönderir
- Uzak ana üzerinde, 'terminal' programı (örneğin:
$TERM=xterm
, vt100
, vt102
, vt220
, vs.) anahtar kodları içine line protokolü 'den tercüme.
- readline kütüphanesi bazı çeviriler / eşlemeler yapar.
~/.inputrc
- readline Anahtar Kodunu bash'a gönderir
- bash, bazı terimler / eşlemeler temelinde
~/.bashrc
(yerleşik bağlama komutunu temel alarak)
- bash veya readline (hangisinden emin değilim) çevrilmiş Anahtar Kodu nano'ya gönderir (metin editörüm)
- Bu boru hattı,
screen
programı ekleyerek daha da uzun sürebilir (bu, $TERM=screen
5. adım için a'yı içerir ve 6. adımda 10.a tekrar geri döner).
Not: 4. adıma geçtiğinde, farklı 'çeviriler' / 'eşlemeler' katmanlarını hassas bir şekilde kontrol etmek çok zorlaşır. Mümkünse bundan kaçınmayı tavsiye ederim.
Amaç: Bir pfsense 2.3.3-RELEASE-p1 ile uğraşmak zorunda kalmadan önce yıllarca
kullandım caffeine.exe -key:07
(FreeBSD 10.3-RELEASE'e dayanarak).
Sonra caffeine.exe -key:07
diğer taraftan ^[[28~
Nano'da Ctrl+^
(Set Mark) haritalanmış gibi göründü.
Bu oldukça sinir bozucuydu (metin işaretini Not Defteri'nde hareket ettirirken birisinin Shift Key'e basılı tutulduğunu hayal edin).
Daha önce, ben Macun Ayarları sayısız özelleştirmeleri yaptım ~/.tcshrc
, ~/.inputrc
, ~/.bashrc
, ~/.nanorc
, ~/.screenrc
temel işlevsellik dikkate elde etmek için ( Backspace
, Delete
, Home
, End
, PgUp
, PgDown
, Ctrl+Left
, Ctrl+Right
, Numpad 0-9
, Numpad ./*-+
) bash / nano / ekranı arasında sürekli çalışma.
Bir kez bu caffeine.exe -key:07
'böceği' keşfettiğimde , tekrar baştan izlemek istemedim :)
Test edildi:
Windows 8.1 64-bit Kurumsal (6.3.9600) / Macun 0.66 / pfsense 2.3.3-RELEASE-p1 ( FreeBSD 10.3- RELEASE'e dayanarak ) / bash 4.4.12-release / nano 2.7.3 / screen 4.04. 00
Referanslar: