Mint의 명령줄에서 데스크톱 실행 프로그램을 실행하세요.

Mint의 명령줄에서 데스크톱 실행 프로그램을 실행하세요.

명령줄에서 데스크톱 실행 프로그램을 시작할 수 있나요? 예를 들어 ~/Desktop 디렉터리에 Slack용 데스크톱 실행 프로그램이 있습니다.

vadim@my-pc ~/Desktop $ cat slack.desktop 
[Desktop Entry]
Name=Slack
Comment=Slack Desktop
GenericName=Slack Client for Linux
Exec=/usr/bin/slack --proxy-server="10.1.50.8:8080"
Icon=/usr/share/pixmaps/slack.png
Type=Application
StartupNotify=true
Categories=GNOME;GTK;Network;InstantMessaging;
MimeType=x-scheme-handler/slack;
Name[en_US]=slack

Exec 매개변수에서는 프록시 서버 등 애플리케이션 시작을 위한 다양한 옵션을 지정할 수 있습니다. 데스크톱 실행 프로그램의 매개변수에서 프록시를 정확하게 지정하는 것이 편리하다는 것을 알았습니다.

이제 데스크탑 런처의 모든 시작 옵션을 사용하여 명령줄에서 Slack을 시작할 수 있기를 원합니다. 쉘 스크립트 파일을 생성하고 여기에 원하는 모든 시작 옵션을 지정하고 데스크톱 실행 프로그램과 명령줄에서 파일을 실행할 수 있다는 것을 알고 있지만 그냥 실행할 수 있는 방법이 있습니까?슬랙 데스크탑명령줄의 파일?

답변1

다음과 같은 도구를 사용할 수 있습니다.xdg-open (현재 손상됨), kde-open,gnome-open,gtk-launch또는 데스크탑 환경과 동일합니다. ( xdg-open보편적인 것 같지만...)

gtk-launch( 다른 툴킷에 더 유사한 도구가 있을 수 있음을 제외하고는 모두 동일한 오류가 발생하는 것 같습니다 xdg-open. 실행하는 대신 편집기에서 .desktop 파일을 엽니다.)

패키지: (정확한 이름은 배포판에 따라 다름) (CentOS 7 기준)

  • gtk3은 gtk 시작에 사용됩니다.
  • xdg-open용 xdg-utils
  • kde-open을 위한 kde 런타임
  • 그놈 오픈용 libgnome

답변2

정말로 이것을 원한다면 .desktop 파일에서 실행 파일 이름을 추출하여 실행하는 작은 함수를 작성하는 것이 좋습니다. 셸의 초기화 파일(예 ~/.bashrc: )에 다음 줄을 추가합니다.

runDesktop () {
  eval "$(awk -F= '$1=="Exec"{$1=""; print}' "$1")"
}

그런 다음 .desktop 파일을 사용하여 .desktop 파일을 실행할 수 있습니다 runDesktop ~/Desktop/slack.desktop. 틀림없이,평소의 경고신청 에 대해서 eval.

조금 더 노력하면 되겠죠복잡한복잡한:

runDesktop () {
  comm=( $(awk -F= '$1=="Exec"{$1=""; print}' "$1") )
  "${comm[0]}" "${comm[@]:1}" &
  disown
}

답변3

dex앱은 아마도 이를 수행하는 가장 쉬운 방법일 것입니다.

sudo apt install dex그렇다면 dex ~/Desktop/some-application.desktop또는 대부분의 시스템 앱을 /usr마음대로 사용할 수 있기 때문입니다 dex /usr/share/applications/some-application.desktop.

관련 정보