~/.local/bin/test.sh
쉘 스크립트를 실행 하고 싶습니다 dmenu
. 실행하여 dmenu
항목 $mod+D
을 찾아봐도 test.sh
찾을 수 없습니다.
경로가 내 변수 ~/.local/bin
로 설정되었습니다.$PATH
~/.profile
$ echo $PATH
/home/ubuntu/bin:/home/ubuntu/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
i3 도 제거 ~/.cache/dmenu_run
하고 다시 시작했습니다. dmenu를 통해 테스트 스크립트를 어떻게 시작합니까?
답변1
~/.cache/dmenu_run
보유하고 있는 항목에 따라 또는 을 삭제 ~/dmenu_cache
하고 다시 로그인하세요. 로그인 후 .profile에서 PATH를 다시 로드한 후 dmenu는 $PATH에서 캐시를 다시 생성해야 합니다. dmenu는 자체 캐시를 업데이트하는 데 능숙하지 않은 것 같으며 때로는 강제로 업데이트해야 할 때도 있습니다.
또한 스크립트의 실행 가능 비트를 활성화했는지 확인하십시오.
$ ls -l ~/.local/bin/test.sh
-rwxrwxrwx 1 user group 152 Jan 11 04:09 /home/user/.local/bin/test.sh
답변2
나는 완전한 알고리즘을 게시했습니다.
- 대신 에 환경 변수를
~/.profile
or~/.xprofile
(존재하지 않는 경우 생성) 에 넣으십시오.~/.bashrc
rm -f ~/.cache/dmenu_run
- 로그아웃하고 로그인하세요
환경 변수를 디버그하려면 다음을 입력하십시오.
- d 메뉴에서:
echo $PATH > /tmp/path
- 터미널에서:
cat /tmp/path
답변3
나는 같은 문제를 가지고있다.
이 Arch Linux 포럼 게시물문제를 설명하세요.
~/.bashrc에 $PATH를 설정한다고 해서 WM/dmenu가 이 환경을 상속받는다는 보장은 없습니다.
더 관련 있는 질문은 "어떻게 로그인합니까?"입니다. 일반적으로 ~/.bash_profile 또는 ~/.profile로 내보낸 환경은 X 응용 프로그램에서 사용할 수 있습니다.
dmenu_run을 정상적으로 시작한 다음 dmenu에서
echo $PATH > /tmp/path
터미널에 Then을 입력하여cat /tmp/path
$PATH가 무엇인지 확인하세요.
~/.profile
내 경우에는 dmenu가 $PATH에 설정된 디렉터리를 선택하지 않았습니다. 내 창 관리자는 .xinitrc에서 시작되었으며 export PATH=$PATH:/dir/of/interest
해당 행이 문제를 해결하기 전에 .xinitrc 파일에 추가를 추가했습니다. exec my_wm
조금 부피가 크긴 하지만요.
언급한 대로 파일을 삭제 ~/.cache/dmenu_run
하고 변경한 후 다시 로그인해야 작동하게 되었습니다.
답변4
이 문제를 해결하는 가장 좋은 방법은 아니지만 나에게 도움이 된 유일한 방법은
~/.config/i3/config에서 교체하는 것이었습니다.
bindsym $mod+d exec --no-startup-id dmenu_run
그리고
bindsym $mod+d exec --no-startup-id "export PATH=~/.local/bin:$PATH; dmenu_run"
rm ~/.cache/dmenu_run && i3-msg reload
~/.local/bin의 바이너리는 dmenu에서 액세스할 수 있습니다.