KDE 키보드 단축키 명령이 작동하지 않는 이유는 무엇입니까?

KDE 키보드 단축키 명령이 작동하지 않는 이유는 무엇입니까?

몇 가지 조사 끝에 사용자가 선호하는 터미널 에뮬레이터의 이름(KDE5 설정의 "기본 응용 프로그램" 섹션에 설정됨)을 얻으려면 다음 명령을 실행할 수 있다는 사실을 알아냈습니다.

kreadconfig5 --file kdeglobals --group General --key TerminalApplication

내 경우에는(KDE Plasma 5와 함께 Manjaro 실행) "alacrtty" 문자열이 반환됩니다. 따라서 이를 마무리 $(...)하고 터미널에 결과 명령을 입력하면 사용자가 선호하는 터미널 에뮬레이터가 시작됩니다(작동하는지 테스트했습니다).

그러나 이 명령을 실행하기 위해 KDE용 사용자 정의 키보드 단축키를 만들면 Meta+Return아무 일도 일어나지 않습니다. exec혹시나 필요할까봐 앞에 붙여보려고도 해봤 지만 달라지는 건 없었습니다. 명령을 실행하기 위한 바로가기를 설정하면 alacritty(제가 언급한 첫 번째 명령이 반환됨) 작동하지만 물론 특정 터미널이 아닌 사용자가 선호하는 터미널을 실행할 수 있기를 원합니다.

왜 작동하지 않는지 설명해줄 수 있는 사람이 있나요? 내가 뭐 잘못 했어요?

답변1

이 구성 $(...)(명령 대체)은 POSIX 쉘 명령 언어의 일부이며 이를 해석하려면 쉘이 필요합니다. 내가 아는 한, 데스크톱 환경에 포함된 응용 프로그램 실행 프로그램은 쉘 명령 언어를 안전하게 해석할 수 있어야 하는 것은 아니며, exec파일을 가져와서 인수 목록만 전달할 수 있다고 가정합니다.

다음과 같이 호출하는 키보드 단축키를 정의할 수 있어야 합니다.

sh -c '"$(kreadconfig5 ...)"'

명령 대체는 공백 문자가 포함된 경우 대체 명령으로 생성된 파일 경로가 실패하지 않도록 하기 위해 큰따옴표로 묶입니다.
완전성을 기하기 위해 실행 파일 이름이 하나 이상의 줄 바꿈으로 끝나면 여전히 실패할 것이라는 점에 유의하십시오(물론 가능성은 매우 낮습니다).

관련 정보