~/.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 からアクセスできます。