가상 콘솔에서 노트북 키보드의 전용 밝기/볼륨 키를 사용하여 밝기나 볼륨을 조정(증가/감소)할 수 있는지 알고 싶습니다.
단일 키 누르기에 응답하여 백그라운드 작업을 수행하도록 시스템을 구성할 수 있습니까? 아니면 명령줄을 통한 유일한 상호 작용 모드입니까? (명령줄을 통해 이를 조정하는 방법을 찾았습니다.)
제가 생각할 수 있는 유일한 비교 가능한 예는 전원 버튼이 즉각적인 시스템 정지 신호를 보내는 경우입니다. 그러나 프롬프트에서 이 키를 누르려고 하면 showkey
(키코드를 반환하는 대신) 시스템이 계속 종료되기 때문에 다른 수준에서 작동하는 것 같습니다.
편집하다:실제로 명령줄에서 이러한 작업을 수행하는 방법을 알아냈지만아니요어떻게 하는지 알아루트 액세스 권한 없음. 이 문제에 대한 추가 통찰력을 주시면 대단히 감사하겠습니다.
답변1
tty에서 사용하는 쉘에 따라 다르지만 일반적으로 그렇습니다. 가능합니다. readline 라이브러리는 이러한 단축키를 가능하게 하는 소프트웨어 구성요소입니다.
나는 그것이 어떻게 작동하는지 알고 있으므로 zsh
예를 들어 보겠습니다. 를 사용한다면 bash
, 매뉴얼의 "Readline Key Bindings" 섹션을 읽어보세요 - 그것이 당신이 찾고 있는 것 같습니다.
그리고 zsh
:
myfunc() {
echo 'It works!'
}
zle -N mywidget myfunc
bindkey "^[OQ" mywidget
이 zle -N
명령은 "zsh 위젯"이라는 것을 정의하는 데 사용됩니다. 위젯을 사용하여 함수를 호출할 수 있습니다. 이 bindkey
명령을 사용하면 키를 누를 때 실행될 키코드와 위젯을 지정할 수 있습니다. 키코드는 제 경우의 키를 ^[OQ
정확히 나타냅니다 . F2
볼륨 키의 키코드를 찾으려면 키를 누른 Ctrl+V
다음 볼륨 키를 누릅니다(제 경우에는 Fn+F2
을 누르면 가 나타납니다 ^[[26~
).
답변2
이것은 문제에 대한 일반적인 해결책은 아니지만 며칠 동안 문제를 해결한 후에 발견했습니다.포메드, 이는 Apple 노트북의 단축키를 관리하기 위해 특별히 설계되었습니다(제가 갖고 있는 것입니다).
밝기/키보드 백라이트/볼륨을 높이거나 낮출 수 있을 뿐만 아니라 AC 전원이 연결/연결 해제될 때 자동으로 밝기를 설정합니다. 자신만의 스크립트를 작성하는 것보다 훨씬 낫습니다.
답변3
이것을 보고 시도해 본 적이 있습니까?https://wiki.archlinux.org/index.php/Linux_console/Keyboard_configuration?
사용자 정의 가상 콘솔 키맵을 생성해야 합니다. (이것은 Arch에 있습니다. Debian/Ubuntu 및 다른 버전에서도 다를 수 있다고 생각합니다.)
showkey
가상 콘솔에 입력 하면 키코드 번호를 결정할 수 있습니다. ( xev
Xorg에서 이 작업을 수행할 수 있지만 콘솔 키코드 번호를 얻으려면 8을 빼야 합니다. 즉, xev
169가 제공되면 콘솔 키가 161에 매핑되었음을 의미합니다.) .
예를 들어, tty에 있을 때 이 사용자 정의 키맵을 사용하면 Arch/Fluxbox 시스템의 (Apple) 키보드에서 꺼내기 키를 눌러 다음 콘솔로 변경할 수 있습니다.
keycode 161 = Incr_Console Last_Console Decr_Console
shift altgr keycode 161 = VoidSymbol
altgr control keycode 161 = VoidSymbol
shift altgr control keycode 161 = VoidSymbol
shift alt keycode 161 = VoidSymbol
altgr alt keycode 161 = VoidSymbol
shift altgr alt keycode 161 = VoidSymbol
Shift+Eject는 마지막 콘솔로 이동하고 Ctrl+Eject는 축소합니다.
볼륨과 밝기를 위해서는 추가 단계가 필요할 수 있습니다.
키코드 번호가 161이라고 가정하고 먼저 F70과 같은 사용하지 않는 기능 키에 바인딩하세요.
keycode 161 = F70
그런 다음 해당 F70을 명령 문자열에 바인딩합니다.
터미널에서 인쇄 명령을 실행하려면 명령 문자열 끝에 개행 이스케이프 문자를 추가해야 합니다. 예를 들어 시스템을 절전 모드로 전환하려면 다음 키맵을 추가하세요.
string F70 = "sudo /usr/sbin/hibernate\n"
실패하면 확인할 수 있습니다 acpid
.