일부 배경
저는 개발자이고 대부분의 도구를 홈 폴더에 설치합니다. 그래서 내 쉘의 rc 파일은 JAVA_HOME
, GROOVY_HOME
, MAVEN_HOME
, ... 변수로 가득 차 있습니다. 이러한 모든 환경 변수를 내 GUI 애플리케이션(내 IDE라고 생각함)에 노출하기 위해 먼저 이러한 변수를 정의하여 쉘 스크립트를 작성했습니다.다시그런 다음 애플리케이션을 실행하고 마지막으로 내 애플리케이션 메뉴에 실행 프로그램을 추가하여 스크립트를 실행합니다.
어느 날 나는 쉘을 통해 애플리케이션을 실행할 수 있다는 것을 깨달았습니다. 쉘의 rc 파일에 정의된 모든 변수는 애플리케이션 환경에서 설정되기 때문입니다. 따라서 내 응용 프로그램 메뉴의 항목은 다음과 같습니다./usr/bin/my-shell ~/my-ide/bin/start.sh
이제 문제는
DM에게 항상 쉘을 사용하여 모든 애플리케이션을 실행하도록 지시할 수 있나요?
참고 사항
나는 사용한다ZTE그리고난쟁이그러나 보다 일반적인 해결책이 있다면 크게 감사하겠습니다.
기본 쉘을 다음으로 설정했습니다.ZTE, 하지만난쟁이이는 해당 쉘을 모든 용도로 사용하기에 충분한 이유가 되지 않는 것 같습니다.
답변1
몇 가지 조언:
쉽게 사용할 수 있도록 변수 설정 외에는 아무것도 수행하지 않는 파일에 변수를 저장하십시오
. my-dev-vars.sh
.로그인 셸(
.profile
,.bash_profile
, 참조) 에서 파일을 한 번 가져옵니다.위키피디아로그인 셸 구성 파일의 자세한 목록) 이렇게 하면 원격으로 로그인할 때 권한 변수를 얻을 수 있습니다.~/.xinitrc
이 파일은 X11 세션에서도 얻을 수 있습니다~/.xsession
(일부 배포판에는 다른 변형이 있습니다. X11 설명서 참조). 이렇게 하면 데스크톱 X11 세션에도 변수가 있습니다.
목표는 이를 한 번 정의하고 모든 프로세스 그룹에 대해 한 번 획득하는 것입니다. 글쎄요, 그것들은 실제로 "환경" 변수이며 설계된 대로 작동합니다.
이는 또한 불필요하게 추가 셸을 생성하지 않는다는 점에서 현재 솔루션에 비해 장점이 있습니다.
답변2
예,
xdg-open
명령을 수정 하거나 exo-open
xfce4(바이너리 프로그램)에서 수정하세요.
이것이 DE가 파일이나 프로그램을 여는 방법입니다.
그러나 이러한 설정을 전역으로 설정하려면 /etc/{zshrc,profile} 등을 수정해야 합니다.