gtk-launch 오류: 애플리케이션에 필요한 터미널을 찾을 수 없습니다

gtk-launch 오류: 애플리케이션에 필요한 터미널을 찾을 수 없습니다

다음 명령을 사용해 보았습니다.

gtk-launch nvim file.txt

하지만 나에게 다음과 같은 오류가 발생합니다.

gtk-launch: error launching application: Unable to find terminal required for application

신청에 필요한 단말기는 어떻게 설정하나요? $TERM환경 변수를 설정했습니다 $TERMINAL.

export TERM="kitty"
export TERMINAL="kitty"

답변1

2023년 9월 18일 현재: 하드코드된 터미널 목록여기

  static const struct {
    const char *exec;
    const char *exec_arg;
  } known_terminals[] = {
    { "xdg-terminal-exec", NULL },
    { "kgx", "-e" },
    { "gnome-terminal", "--" },
    { "mate-terminal", "-x" },
    { "xfce4-terminal", "-x" },
    { "tilix", "-e" },
    { "konsole", "-e" },
    { "nxterm", "-e" },
    { "color-xterm", "-e" },
    { "rxvt", "-e" },
    { "dtterm", "-e" },
    { "xterm", "-e" }
  };

솔루션 1

목록의 첫 번째 프로그램은 터미널을 선택할 수 있는 스크립트입니다. 따라서 해결책은 설치하는 것입니다.이것스크립트를 작성 /usr/bin/xdg-terminal-exec하고 구성합니다. (arch 에는 aur 패키지가 있습니다 xdg-terminal-exec-git. 저는 Arch를 사용합니다. btw)

이를 구성하려면 원하는 우선순위대로 터미널을 나열하는 파일을 생성해야 합니다. 파일은 $HOME/.config/xdg-terminals.list다음과 같아야 합니다.

echo kitty.desktop >> $HOME/.config/xdg-terminals.list

.desktop그런 다음 스크립트의 데이터 계층 구조인 폴더에 파일을 추가 해야 합니다 $HOME/.local/share/xdg-terminals/. 예를 들면 다음과 같습니다.

ln -s /usr/applications/kitty.desktop $HOME/.local/share/xdg-terminals/

이제 다음 명령을 사용하여 원하는 터미널이 열려 있는지 확인할 수 있습니다.

xdg-terminal-exec

이전 예에서는 키티가 열려야 합니다.

이제 gtk-launch, exo-openxdg-open파일을 여는 데 사용되는 모든 프로그램( 레이블이 지정됨)이 thunar원하는 터미널에서 열립니다.glib2.desktopTerminal=true

솔루션 2

더 간단한 해결책은 원하는 터미널을 에 연결하는 것입니다 /usr/bin/xdg-terminal-exec.

ln -s /usr/bin/kitty /usr/bin/xdg-terminal-exec

노트:이는 터미널이 실행할 명령을 수신하기 위해 플래그를 사용하지 않는 경우에만 작동합니다. 그렇다면 심볼릭 링크 대신 다음 스크립트를 사용할 수 있습니다.

#!/usr/bin/sh
$TERM [needed-flag] $1

답변2

터미널은 gtk-launch에 하드코딩되어 있습니다. 바라보다이 답변.

이 문제를 해결하려면 다음을 수행하십시오.sudo ln -s /usr/bin/gnome-terminal /path/to/your-term

관련 정보