데스크탑 관리자에서 GUI 응용 프로그램을 실행하는 데 사용되는 셸을 변경할 수 있습니까?

데스크탑 관리자에서 GUI 응용 프로그램을 실행하는 데 사용되는 셸을 변경할 수 있습니까?

일부 배경

저는 개발자이고 대부분의 도구를 홈 폴더에 설치합니다. 그래서 내 쉘의 rc 파일은 JAVA_HOME, GROOVY_HOME, MAVEN_HOME, ... 변수로 가득 차 있습니다. 이러한 모든 환경 변수를 내 GUI 애플리케이션(내 IDE라고 생각함)에 노출하기 위해 먼저 이러한 변수를 정의하여 쉘 스크립트를 작성했습니다.다시그런 다음 애플리케이션을 실행하고 마지막으로 내 애플리케이션 메뉴에 실행 프로그램을 추가하여 스크립트를 실행합니다.

어느 날 나는 쉘을 통해 애플리케이션을 실행할 수 있다는 것을 깨달았습니다. 쉘의 rc 파일에 정의된 모든 변수는 애플리케이션 환경에서 설정되기 때문입니다. 따라서 내 응용 프로그램 메뉴의 항목은 다음과 같습니다./usr/bin/my-shell ~/my-ide/bin/start.sh

이제 문제는

DM에게 항상 쉘을 사용하여 모든 애플리케이션을 실행하도록 지시할 수 있나요?

참고 사항

나는 사용한다ZTE그리고난쟁이그러나 보다 일반적인 해결책이 있다면 크게 감사하겠습니다.

기본 쉘을 다음으로 설정했습니다.ZTE, 하지만난쟁이이는 해당 쉘을 모든 용도로 사용하기에 충분한 이유가 되지 않는 것 같습니다.

답변1

몇 가지 조언:

  1. 쉽게 사용할 수 있도록 변수 설정 외에는 아무것도 수행하지 않는 파일에 변수를 저장하십시오 . my-dev-vars.sh.

  2. 로그인 셸( .profile, .bash_profile, 참조) 에서 파일을 한 번 가져옵니다.위키피디아로그인 셸 구성 파일의 자세한 목록) 이렇게 하면 원격으로 로그인할 때 권한 변수를 얻을 수 있습니다.

  3. ~/.xinitrc이 파일은 X11 세션에서도 얻을 수 있습니다 ~/.xsession(일부 배포판에는 다른 변형이 있습니다. X11 설명서 참조). 이렇게 하면 데스크톱 X11 세션에도 변수가 있습니다.

목표는 이를 한 번 정의하고 모든 프로세스 그룹에 대해 한 번 획득하는 것입니다. 글쎄요, 그것들은 실제로 "환경" 변수이며 설계된 대로 작동합니다.

이는 또한 불필요하게 추가 셸을 생성하지 않는다는 점에서 현재 솔루션에 비해 장점이 있습니다.

답변2

예,

xdg-open명령을 수정 하거나 exo-openxfce4(바이너리 프로그램)에서 수정하세요.

이것이 DE가 파일이나 프로그램을 여는 방법입니다.

그러나 이러한 설정을 전역으로 설정하려면 /etc/{zshrc,profile} 등을 수정해야 합니다.

관련 정보