저는 프로그램을 작성 중인데 텍스트 편집기에서 특정 파일을 여는 기능을 구현해야 합니다. 기본적으로 파일 형식은 다른 연결(프로그램 자체와 연결됨)을 가지므로 호출은 xdg-open $file
효과가 없습니다. 일반적으로 터미널 텍스트 편집기가 포함되어 있으므로 사용하는 $EDITOR
것이 차선책이며 이것이 첫 번째 선택이라면 GUI 텍스트 편집기를 열고 싶습니다. 터미널을 열기 위해 기본 터미널 에뮬레이터를 찾는 방법이 명확하지 않습니다 $EDITOR
.
쿼리(아마도 GUI) 편집기를 사용할 수 xdg-mime query default text/plain
있고 파일이 제공되지만 .desktop
실제로 실행하는 방법을 잘 모르겠습니다. 특히 여기에 파일이 포함될 수 있기 때문에 Terminal=true
기본 터미널이 무엇인지 알아내는 문제가 다시 발생합니다. .
명확히 하자면, 이 프로그램은 스크립트 같은 것이 아닙니다.이미 터미널에서 실행 중. 이는 GUI 애플리케이션이므로 터미널 편집기를 시작하려면 기본 터미널이 무엇인지 파악해야 합니다.
그렇다면 기본(아마도 GUI) 텍스트 편집기에서 프로그래밍 방식으로 파일을 여는 가장 좋은 방법은 무엇입니까?
답변1
*.desktop
통화와 함께 받는 파일은 다음 xdg-mime query default text/plain
두 위치 중 하나에 있습니다.
$HOME/.local/share/applications/
/usr/share/applications/
따라서 거기에서 찾은 다음 행을 구문 분석 Exec=
하고 다음과 같은 모든 인수를 전달하여 실행해야 합니다.
$(grep Exec /usr/share/applications/seahorse.desktop | cut -d= -f2) "$@"
데비안과 유사한 배포판에서 기본 터미널 에뮬레이터를 결정하려면 다음 명령을 실행하고 출력을 유사하게 구문 분석하여 경로를 얻을 수 있습니다.
update-alternatives --query x-terminal-emulator
또는 필요한 명령을 직접 실행해 보십시오.
x-terminal-emulator -e "your command here"
배포판 독립적으로 만들어야 하는 경우 각 DE가 구성을 저장하는 방법에 따라 달라지는 것처럼 보이기 때문에 데스크톱 환경 추측을 구현해야 합니다. 한 번 살펴보고 싶을 수도 있습니다xdg 터미널이 코드는 xdg 유틸리티 패키지의 일부이며 기본 터미널 실행을 담당합니다(그러나 어떤 이유로 배포되지는 않습니다).