Saya menemukan solusi shreyansp menjadi yang paling (tapi tidak cukup) yang memuaskan :)
Inilah upaya saya untuk meningkatkan itu (tentu saja YMMV). Semoga ini bisa bermanfaat bagi mereka yang mencari solusi :)
Solusi saya berperilaku sebagai berikut:
- caffeine mengirim ke Windows kode Virtual-Key yang sesuai yang:
- mencegah Windows dari tidur atau menganggur
- tidak menghasilkan efek samping apa pun pada Windows baik sendiri maupun dalam kombinasi (tidak ada Ctrl, Shift, Alt, Alt-Gr, Win, F1-F5, F10, dll.)
- baik tidak dikirim ke Putty atau diabaikan oleh Putty
TL; DR: Solusi saya diterapkan antara langkah 2 dan 3 (lihat di bawah) dengan -key:0E
parameter kafein:
Keluar dari Kafein & luncurkan kembali dengan:
caffeine.exe 5 -key:0E
(untuk pengujian mudah)
caffeine.exe 50 -key:0E
(untuk screen saver wajib yang disetel pada 1 menit)
- Luncurkan
read
program pada host jarak jauh dan perhatikan bagaimana tidak ada penekanan tombol yang diterima setiap 5 atau 50 detik.
- Keluar
read
denganCtrl+C
Shreyansp mengusulkan solusi di mana perbaikan akan diterapkan antara langkah 5 dan 10 (lihat di bawah).
Efek samping dari hal itu (pada konfigurasi saya) adalah bahwa, dengan setiap penekanan tombol yang diteruskan dari kafein ke host jarak jauh:
- itu memicu 'Reset scrollbar on keypress' (pengaturan pada halaman Putty / Window)
yang biasanya saya inginkan, tetapi hanya ketika saya (manusia) menekan tombol tetapi tidak secara teratur oleh kafein :)
- versi terjemahan readline / bash itu (dari
'"\e[28~"'
ke '""'
(kunci kosong?) menyebabkan interaksi sesi jarak jauh menggantung selama beberapa detik
Untuk mengujinya dengan mudah, keluar dari Kafein & luncurkan kembali dengan interval 5 detik dan Kode Kunci-Virtual 07:
caffeine.exe 5 -key:07
- Luncurkan
read
program pada host jarak jauh dan saksikan bagaimana penekanan tombol diterima setiap 5 atau 50 detik.
- Keluar
read
denganCtrl+C
Keystroke 'pipeline', seperti yang saya mengerti:
- Caffeine mengirimkan Kode Kunci-Virtual ke Windows
- Windows mengirimkan Kode Kunci-Virtual ke Putty
- Putty melakukan beberapa 'terjemahan' / 'pemetaan' berdasarkan pada beberapa pengaturan sesi di:
- Putty mengirimkan kode kunci yang 'diterjemahkan' / 'dipetakan' ke host jarak jauh
- Pada remote host, program 'terminal' (misalnya:
$TERM=xterm
, vt100
, vt102
, vt220
, dll) diterjemahkan dari 'line protocol' ke dalam kode kunci.
- perpustakaan readline melakukan beberapa terjemahan / pemetaan berdasarkan
~/.inputrc
- readline mengirimkan Kode Kunci ke bash
- bash melakukan beberapa terjemahan / pemetaan berdasarkan
~/.bashrc
(berdasarkan pada perintah bind builtin)
- bash atau readline (tidak yakin yang mana) mengirimkan Kode Kunci yang diterjemahkan ke nano (editor teks saya)
- Pipa ini bisa menjadi lebih lama dengan menambahkan
screen
program (yang termasuk $TERM=screen
untuk langkah 5. dan kembali lagi pada langkah 6. hingga 10.)
Catatan: Begitu sampai ke langkah 4., menjadi sangat sulit untuk secara tepat mengontrol berbagai lapisan 'terjemahan' / 'pemetaan'. Saya akan merekomendasikan menghindari itu jika Anda bisa.
Latar belakang:
Saya menggunakan caffeine.exe -key:07
selama bertahun-tahun sebelum harus berurusan dengan pfsense 2.3.3-RELEASE-p1 (berdasarkan FreeBSD 10.3-RELEASE).
Kemudian, caffeine.exe -key:07
diterima di sisi lain sebagai ^[[28~
... yang tampaknya dipetakan ke Ctrl+^
(Set Mark) di Nano.
Ini cukup menjengkelkan (bayangkan seseorang menekan dan mempertahankan Tombol Shift saat Anda memindahkan tanda sisipan teks di Notepad).
Sebelumnya, saya melakukan banyak kustomisasi di Putty Settings, ~/.tcshrc
, ~/.inputrc
, ~/.bashrc
, ~/.nanorc
, ~/.screenrc
untuk mendapatkan apa yang saya anggap fungsi dasar ( Backspace
, Delete
, Home
, End
, PgUp
, PgDown
, Ctrl+Left
, Ctrl+Right
, Numpad 0-9
, numpad ./*-+
) bekerja secara konsisten antara bash / nano / layar.
Setelah saya menemukan caffeine.exe -key:07
'bug' ini, saya tidak ingin melacaknya lagi :)
Diuji pada:
Windows 8.1 64-bit Enterprise (6.3.9600) / Putty 0.66 / pfsense 2.3.3-RELEASE-p1 (berdasarkan FreeBSD 10.3-RELEASE) / bash 4.4.12-release / nano 2.7.3 / screen 4.04. 00
Referensi: