$PWD
— это текущий каталог, а не каталог, содержащий скрипт. Нет причин, по которым inner.sh
должен находиться в текущем каталоге.
Путь к скрипту хранится в $0
. Вы можете извлечь его часть каталога, чтобы найти каталог, содержащий скрипт.
script_directory=$(dirname -- "$0")
"$script_directory/inner.sh"
Насколько я знаю, вы не можете сделать это легко, потому что интерпретируется модификатор Shift + keysym введите и модификатор Shift не может различать символы клавиш Shift _R и Shift _L .
Решение состоит в том, чтобы определить два отдельных модификатора с помощьюxkb
(xmodmap здесь бесполезен )for Shift _R и Shift _L ; затем переопределите ВСЕ определения «типов», которые вы используете в /usr/share/X11/xkb/types , чтобы принять два разных модификатора как один и тот же слой и сохранить пользовательский. только для вашего пространства , так что только один сдвиг вызовет на нем второй слой.
В конце концов, поскольку у вас теперь есть нестандартный модификатор для второй смены, некоторые приложения перестанут интерпретировать его правильно (сдвинутый выбор ).