
약간의 조사 끝에 KDE5 설정의 '기본 응용 프로그램' 섹션에 설정된 대로 사용자가 선호하는 터미널 에뮬레이터의 이름을 얻으려면 다음 명령을 실행할 수 있다는 것을 알아냈습니다.
kreadconfig5 --file kdeglobals --group General --key TerminalApplication
내 경우에는(KDE Plasma 5와 함께 Manjaro 실행) 'alacrty' 문자열을 반환합니다. 따라서 이를 래핑 $(...)
하고 터미널 내부에 결과 명령을 입력하면 사용자가 선호하는 터미널 에뮬레이터가 시작됩니다(이 기능이 작동하는지 테스트했습니다).
그러나 를 사용하여 이 명령을 실행하기 위해 KDE용 사용자 정의 키보드 단축키를 만들면 Meta+Return
아무 일도 일어나지 않습니다. exec
필요할 경우를 대비해 앞에 넣어보기도 했지만 아무것도 바뀌지 않았습니다. 명령을 실행하기 위한 바로가기를 설정하면 alacritty
(내가 언급한 첫 번째 명령에서 반환되는 것임) 작동하지만 물론 특정 터미널이 아닌 사용자가 선호하는 터미널을 실행할 수 있기를 원합니다. .
왜 작동하지 않는지 설명해줄 수 있는 사람이 있나요? 내가 뭔가 잘못하고 있는 걸까요?
답변1
구문 $(...)
(명령 대체)은 POSIX 쉘 명령 언어의 일부이며 이를 해석하려면 쉘이 필요합니다. 내가 아는 한, 데스크탑 환경에 포함된 애플리케이션 실행 프로그램은 쉘 명령 언어를 해석할 필요가 없습니다. 실수를 범하지 않으려면 exec
파일을 ute하고 인수 목록만 전달할 수 있다고 가정합니다.
다음과 같은 것을 호출하는 키보드 단축키를 정의할 수 있어야 합니다.
sh -c '"$(kreadconfig5 ...)"'
대체 명령으로 생성된 파일 경로에 공백 문자가 포함된 경우 명령 대체는 실패하지 않도록 큰따옴표로 묶습니다.
완전성을 기하기 위해 실행 파일 이름이 하나 이상의 개행 문자로 끝나는 경우에도 여전히 실패한다는 점에 유의하세요(물론 극히 드물지만).