У меня есть два монитора, DVI 0 и DVI-1, и я только использую по одному. Они находятся в различных комнатах в доме, и я хотел бы переключиться между ними с сочетанием клавиш. Я сделал следующий сценарий оболочки для изменения на неактивный монитор:
current_display=$(xrandr | sed -n 's/^\(.*\) connected primary.*$/\1/p')
if [ "$current_display" == "DVI-0" ]
then
xrandr --output DVI-1 --auto --primary
xrandr --output DVI-0 --off
elif [ "$current_display" == "DVI-1" ]
then
xrandr --output DVI-0 --auto --primary
xrandr --output DVI-1 --off
fi
Я сохранил это как/home/username/Documents/SwitchDisplay.sh и сделал это исполняемым файлом. При выполнении /home/username/Documents/SwitchDisplay.sh
от терминала это делает то, что я хочу, чтобы это сделало. Но когда я присваиваюсь /home/username/Documents/SwitchDisplay.sh
к сочетанию клавиш (ctrl+alt+s) использование Настроек/Устройств/Опций клавиатуры в Ubuntu это не работает.
Я проверил, работает ли ярлык путем присвоения команды firefox
к ярлыку и это хорошо работает. Когда я нажимаю, Firefox сочетания клавиш открывается. Я даже добавил firefox
к новой строке в сценарии оболочки и присвоил сценарий оболочки ярлыку снова, затем нажимание ярлыка также открывает Firefox. Таким образом, это действительно выполняет сценарий оболочки, но важная часть сценария оболочки не работает правильно.
Кто-либо знает, как получить эту работу?
Вы используете двойной знак "равно" в своих условных придаточных предложениях сценария. Это - bashism (он прекрасен на Bash, но перестанет работать в других оболочках). Я полагаю, что сценарий обрабатывается dash
и нет bash
, так замена ==
с =
и дайте ему попытку.
Вы избегаете что "неопределенность оболочки" путем добавления хижины в первой строке сценария, указания на оболочку, которая будет использоваться. Если Вы попробовали #!/bin/bash
, как предложено в комментариях, ярлык с Вашим исходным сценарием должен работать. Но если можно сделать код более портативным (с синглом равный вместо двойного), почему нет?
Некоторый bashisms: https://mywiki.wooledge.org/Bashism
О, и это - довольно хорошая Wiki для изучения основательных сценариев оболочки.