
Вопрос:
Я использую i3-wm и у меня Mod3 работает как горячая клавиша. У меня есть следующее в ./config/i3/config
:
#This command works
bindsym Mod3+f exec "firefox"
#This doesn't work nor do my other scripts
bindsym Mod3+w exec "openBrowser"
Обе эти команды работают нормально, когда я запускаю их из bash, но только команда 'firefox' запускается с горячей клавишей. Запуск моего собственного скрипта не работает.
Дополнительные детали:
openBrowser — это скрипт, /opt/bin/
который находится в моем пути. Также пробовал делать:
#This command works
bindsym Mod3+f exec /opt/bin/openBrowser
Я также пробовал другие скрипты, ни один из которых не работает при вызове i3. Таким образом, я определил, что проблема не в скрипте.
Я также заметил, что когда я в bash, если я делаю Mod3+w, мой курсор мигает, тогда как если я делаю Mod3+[любая неустановленная клавиша], клавиша выводит свое значение на экран. Так что, похоже, i3 по крайней мере пытается запустить функцию.
решение1
Я попытался воспроизвести проблему, которую вы описываете. Я обнаружил, что у меня одновременно существовало два файла конфигурации i3. ~/.config/i3/config
и ~/.i3/config
.
В моем случае редактирование ~/.config/i3/config
не дало никакого эффекта, потому что, похоже, оно ~/.i3/config
важнее.
Это маловероятно, но проверьте, возможно, у вас несколько файлов конфигурации, и вы редактируете не тот.
решение2
Команда exec
запускает приложение, передавая указанную вами команду оболочке. Это подразумевает, что ваши программы будут искаться в вашем $PATH
. Значение по умолчанию $PATH
обычно не включает /opt/bin
, например, my это:
andreatsh@debian:~ 11:28 > echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Попробуйте добавить /opt/bin
к вашему пути ~/.bashrc
:
export PATH=$PATH:/opt
Я провел несколько тестов, и это решило для меня проблему. Теперь:
bindsym Mod3+w exec somescript
bindsym Mod3+w exec /opt/bin/somescript
имеют одинаковое поведение и скрипт работает.