i3 dmenuは$ PATHを参照しません


13

~/.local/bin/test.sh介してシェルスクリプトを実行したいdmenudmenuvia を実行$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

また~/.cache/dmenu_run、i3を削除して再起動しました。dmenuからテストスクリプトを起動するにはどうすればよいですか?

回答:


7

使用している~/.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

申し訳ありませんが、~/.cache/dmenu_runi3 をすでに削除して再起動したことを忘れていましたが、の動作には影響しませんdmenu
ヘルダーリン2017年

@Hölderlinログアウトし、再度ログインしてリロードすることが重要です~/.profile
ケネスB.ジェンセン

4

私も同じ問題を抱えていました。

このArch Linuxフォーラムの投稿は問題を説明しています:

〜/ .bashrcに$ PATHを設定しても、WM / dmenuがこの環境を継承することは保証されません。
より適切な質問は、「どのようにログインしますか?」です。通常、〜/ .bash_profileまたは〜/ .profileにエクスポートされたenvはXアプリケーションで使用できます。
通常どおりにdmenu_runを起動し、次にdmenuで
echo $PATH > /tmp/path
ターミナルにThenと入力して、cat /tmp/path$ PATHが何であるかを確認します。

私の場合、自分に設定されている$ PATHディレクトリ~/.profileがdmenuで取得されませんでした。私のウィンドウマネージャーは.xinitrcから起動し、行が問題を修正するexport PATH=$PATH:/dir/of/interest前に.xinitrcファイルに追加を追加しましたexec my_wm。それは少し不格好ですが。

前述のように~/.cache/dmenu_run、変更を加えた後、ファイルを削除して再度ログインし、機能させる必要がありました。


2
試してみるecho $SHELL > /tmp/shell価値のある人もいます。私が使用していると思ってbashいましたが、使用されていることが判明したzshため、さまざまな構成ファイルをチェックしました。また、それを配置しxinitrci3設定しようとしましたが、どちらも機能しませんでしたが、/ etc / zprofileは機能しました!ローカルの〜/ .zshrcでは不十分でした。/etc/profileとの両方zshで同様に機能する可能性がありbashます。
miyalys

0

私は完全なアルゴリズムを投稿します:

  1. 環境変数を配置しない、~/.profileまたは~/.xprofile(存在しない場合は作成)に配置する~/.bashrc
  2. rm -f ~/.cache/dmenu_run
  3. ログアウトしてログイン

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

  1. dmenuで: echo $PATH > /tmp/path
  2. ターミナル: cat /tmp/path
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.