Выполнить скрипт из конфигурации i3

Выполнить скрипт из конфигурации i3

Вопрос:

Я использую 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

имеют одинаковое поведение и скрипт работает.

Связанный контент