Linux 가상 콘솔에서 키보드 단축키를 구성하는 방법이 있습니까?
예를 들어 tty1로 이동하여 Ctrl+ + 키 조합을 누르면 스크립트가 실행되기를 Alt원합니다 .H/usr/bin/hello.sh
이상적으로는 로그인하기 전에도 바로가기를 사용할 수 있습니다(이 경우 내가 지정한 사용자의 권한으로 실행됩니다). 이것이 이것을 달성하는 유일한 방법이라면 커널을 수정하는 것도 신경 쓰지 않을 것입니다. 그리고 쉘 스크립트일 필요는 없습니다. 일반 ELF 바이너리일 수도 있고 시스템 호출을 수행하는 커널 모듈일 수도 있습니다.
사용 사례 예시
- 콘솔에서 웹을 검색하고 있는데
links
화면 밝기를 낮추고 싶습니다. 우연히 밝기 낮추기 키인 Fn+ 를 눌러 단일 키 코드를 생성하고, 파일에 뭔가를 써서 밝기를 낮추는 프로그램을 실행합니다 .End/sys
- 나는 콘솔 텍스트 편집기에 있고 배경 음악이 재생되는 것을 듣고 있습니다
mpd
. (재생/일시 중지) 키를 누르면 ⏯다시 키코드가 생성되고mpd
현재 노래를 일시 중지하라는 신호를 보내는 프로그램을 실행하는 효과가 있습니다.
해결책
다음과 같은덱터의 생각을 사용 /dev/input
하여 만들었습니다.욕심 많은(이벤트 데몬)이 이러한 목적으로 사용됩니다. 앱은 백그라운드에서 실행될 수 있으며 로그인 전과 X 내를 포함하여 어디에 있든 키보드를 대신할 수 있습니다.
답변1
부분 답변(개요일 뿐이며 테스트되지 않음):
기본 키보드에 해당하는 모든 장치 를 수신하는 악마를 작성하세요 /dev/input
(심볼릭 링크가 있으니 살펴보세요). 가지고 있는 초기화 시스템(systemd, sysv 등)을 사용하여 지정한 사용자로 악마를 시작하십시오.
악마는 정의된 대로 주요 이벤트를 처리합니다.이벤트 코드를 입력하세요.h(또는 소스 코드 보기 evtest
). 여기에는 원하는 키 시퀀스를 인식하고 해당 시퀀스가 완료되면 지정한 프로세스를 생성하는 상태 시스템이 있습니다.
이는 로그인하기 전에 사용할 수 있어야 하며 가상 콘솔에 로그인한 사용자에 관계없이 항상 동일한 사용자로 실행됩니다. 또한 X에서 동일한 사용자로 실행됩니다.
또는 쉘에서 뭔가를 하고 싶다면, 사용하거나 tmux
유사한 프로그램을 사용하면 됩니다.키 시퀀스 바인딩행동에. tmux
가상 콘솔에 로그인할 때마다 자동으로 시작하고 새 세션에 연결하는 것도 가능해야 한다고 생각 하지만 아직 이에 대해서는 살펴보지 않았습니다.
이는 로그인 전에는 작동하지 않지만 키보드 포커스가 있는 그래픽 터미널 에뮬레이터에서도 작동하며 스크립트는 로그인한 사용자로 실행됩니다.