i3 dmenuは$ PATHに移動しません。

i3 dmenuは$ PATHに移動しません。

~/.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

私は完全なアルゴリズムを公開しました。

  1. 代わりに環境変数を~/.profileor ~/.xprofile(存在しない場合は生成) に入れてください。~/.bashrc
  2. rm -f ~/.cache/dmenu_run
  3. ログアウトしてログインしてください

環境変数をデバッグするには、次のように入力します。

  1. dメニューから:echo $PATH > /tmp/path
  2. ターミナルから: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 からアクセスできます。

関連情報