한 번에 한 문자씩 읽은 다음 작업을 수행하는 특정 셸(zsh) 스크립트가 있습니다. 셸에서는 루프에서 "read -k"를 사용하여 이 작업을 수행합니다. 쉘을 열지 않고 키보드 단축키로 스크립트를 실행하고 싶습니다.
키보드 입력을 얻는 가장 쉬운 방법은 무엇입니까? 전체 문자열을 읽으려면 dmenu를 사용할 수 있지만 스크립트는 한 번에 한 문자씩 구문 분석할 수 있어야 합니다.
감사해요.
답변1
(댓글을 남기려고 했는데 오류가 발생했습니다. 답변으로 시도해 보겠습니다.)
"쉘을 열지 않고 바로 가기에서 실행"이라고 말하면 터미널 에뮬레이터 창을 열지 않고 그래픽 환경 (X11)에서 말하는 것입니까?
쉘 명령은 read
"표준 입력" 문자 스트림에서 문자를 읽습니다. 반드시 키보드일 필요는 없습니다.
터미널 에뮬레이터는 창에서 X11 키보드 이벤트를 수신하고 이를 문자 스트림(일반적으로 표준 입력으로 시작)에 매핑합니다.
터미널 에뮬레이터를 사용하고 싶지만 read
사용하고 싶지 않은 경우 일부 창의 X11 키 이벤트를 문자 스트림에 매핑하는 다른 것이 필요합니다. (아마도 "루트 창")
스크립트가 캐릭터로 수행하는 작업에 따라 작은 그래픽 프로그램을 작성하는 것이 더 쉬울 수도 있습니다.
답변2
xbindkeys
단축키를 등록하고 원하는 작업을 수행할 수 있습니다. 이렇게 하면 프로그램을 활성화하고 원하는 작업을 수행할 수 있는 열쇠를 갖게 됩니다.
시작해야 할 것은 zsh가 직접 실행되는 스크립트를 실행하는 터미널 에뮬레이터입니다 read -k
. 이렇게 하면 터미널을 직접 시작할 필요가 없습니다. 원하는 크기(예: 작음)로 표시하도록 터미널에 지시할 수 있습니다.
활성화 키(또는 다른 활성화)가 없으면 일반적인 키보드 입력이 프로그램이나 사용할 수 있는 다른 응용 프로그램에 들어가야 하는 시기를 어떻게 구별할 수 있는지 명확하지 않습니다.