전용 PgUp 및 PgDown 없이 TTY 스크롤

전용 PgUp 및 PgDown 없이 TTY 스크롤

uname -r5.9보다 큰 Linux 버전이 반환되면 읽기를 중지하세요., 롤백이 단순히 제거되었기 때문입니다(1,2).


내 키보드에는 별도의 PgUp 및 PgDown 키가 없습니다. 숫자 키패드에 위치하며 KP_9 및 KP_3과 위치를 공유합니다.

키보드 그림

Shift+Pg{Up,Down}Numlock이 켜져 있든 꺼져 있든 관계없이 터미널을 스크롤할 수 없습니다.

나는 키보드 숫자에는 관심이 없지만 스크롤에는 많은 관심을 갖고 있기 때문에 X11에서 "이전"과 "다음"에 성공적으로 다시 매핑했으며 Shift+{PgUp,Down}이제 둘 다 Numlock 상태에 관계없이 Xterm에서 작동합니다.

그러나 TTY에서는 동일한 목표를 달성할 수 없습니다. 예를 들어 전용 페이지 키가 있는 다른 키보드를 사용하면 Shift+PgUp큰 파일을 읽은 후 뒤로 스크롤할 수 있습니다.cat

원래 키코드

처럼 showkeys:

KP_3/KP_PgUp   = 73
KP_9/KP_PgDown = 81
Slash          = 89
Right Shift    = 54

처럼 dumpkeys:

PgUp   = 104
PgDown = 109

슬래시와 오른쪽 시프트도 나열되어 있으며 테스트를 위해 교체할 예정입니다.

노력하다

  • 완전히 /etc/console-setup/remap.inc다음과 같이 수정되었습니다.

    keycode 73 = Prior
      shift keycode 73 = Scroll_Backward
      shift shiftl  keycode 73 = Scroll_Backward
      shift shiftr  keycode 73 = Scroll_Backward
      shift shiftl  shiftr  keycode 73 = Scroll_Backward
      shift ctrll keycode 73 = Scroll_Backward
      shift shiftl  ctrll keycode 73 = Scroll_Backward
      shift shiftr  ctrll keycode 73 = Scroll_Backward
      shift shiftl  shiftr  ctrll keycode 73 = Scroll_Backward 
    keycode 81 = Next
      shift keycode 81 = Scroll_Forward
      shift shiftl  keycode 81 = Scroll_Forward
      shift shiftr  keycode 81 = Scroll_Forward
      shift shiftl  shiftr  keycode 81 = Scroll_Forward
      shift ctrll keycode 81 = Scroll_Forward
      shift shiftl  ctrll keycode 81 = Scroll_Forward
      shift shiftr  ctrll keycode 81 = Scroll_Forward
      shift shiftl  shiftr  ctrll keycode 81 = Scroll_Forward  
    keycode  89 = Shift
    keycode  54 = slash
      shift keycode  54 = question
      altgr keycode  54 = degree
      shift altgr keycode  54 = questiondown
    
  • 아래 지침을 따르십시오.Linux에서 콘솔 키맵을 변경하는 방법은 무엇입니까?.

    dumpkeys > pageupdown
    

    그런 다음 교환

    keycode 73  keycode 104
    keycode 81  keycode 109
    keycode 54  keycode 89
    

    이 파일에 넣고 게시하세요 loadkeys -s pageupdown.

결과

이 두 실험에서,

  • 두 개의 키보드 키가 더 이상 숫자를 인쇄하지 않고 여전히 원하는 대로 작동하지만 PgUp(스크롤) TTY는 스크롤하지 않습니다.lessShift+PgUp

  • 오른쪽 Shift와 슬래시가 올바르게 교체되었습니다.

보충 설명

  • Numlock 전환은 구성에 도움이 되지 않습니다. Fn 키도 이러한 키에 영향을 주지 않습니다.

  • l또한 보다 일반적인 키(예: 및 p)를 페이지 작업에 매핑하려고 시도했지만 성공하지 못했습니다.

  • 도움이 된다면 X 세션에서 작동하는 XKB 매핑은 다음과 같습니다.

    partial keypad_keys
    xkb_symbols "noKPNumbers" {
        key  <KP9> {  [  Prior,   Prior   ]   };
        key  <KP3> {  [  Next,    Next    ]   };
    };
    

Shift+Pg{Up,Down} TTY 버퍼를 스크롤하는 방식으로 키보드 PgUp 및 PgDown 키를 어떻게 매핑합니까? 가능합니까?

답변1

작동하지 않는 이유는 양식 없는 출력에 양식 컨트롤을 추가하려고 하기 때문입니다. 스크롤 가능한 버퍼가 없습니다.

이것은 그다지 합리적이지 않은 것 같으니 설명하겠습니다. TTY는 실제 TTY 또는 TeleTYPE 장치에 대한 콘솔 출력의 역사적 아티팩트입니다. 예를 들어 DEC에서 LA120을 검색하는 직렬 터미널 프린터입니다. 실제로 라인 프린터를 /dev/tty에 연결할 수 있습니다. 일부 서버 하드웨어에서는 BIOS 수준에서 이 출력을 직렬 장치로 리디렉션할 수도 있습니다. 최악의 하드웨어 문제 해결 시나리오에서 사용하는 방법을 알고 있다면 매우 유용할 수 있습니다.

TTY 프린터는 라인 하나하나를 그대로 인쇄하고, 종이는 수술실 바닥에 쌓인다. 화면에 있는 내용은 정확히 화면 버퍼에 인쇄된 내용입니다. 하지만 스크롤할 수 있는 다른 정보는 없습니다.

콘솔 TTY는 다른 모든 것이 망가져도 일종의 로그를 유지하기 위한 최후의 노력입니다. 이는 시스템을 중지시키는 디스크 가득 참 메시지 또는 분할 오류를 표시하여 실제 운영자에게 시스템이 전력을 사용하고 있지만 다른 용도는 없는 이유에 대한 단서를 제공합니다.

관련 정보