Подключение ключа Wi-Fi приводит к зависанию системы Linux?

Сценарий работает, устанавливая интерактивную подсказку оболочки в строку, которая включает управляющие коды для управления xtermзаголовком окна. Каждый раз, когда отображается приглашение оболочки, выводятся управляющие коды для изменения заголовка окна.

Но, конечно же, внутри скрипта никогда не отображается интерактивная подсказка, поэтому эти команды не имеют заметного эффекта (, хотя, если вы запустите другую интерактивную оболочку из скрипта, вы увидите изменение заголовка окна ). И поскольку ни один сценарий не может изменить среду своего родительского процесса, изменение теряется после завершения вашего сценария.

В любом случае, из вашего скрипта вы, конечно, можете напрямую распечатать управляющие коды.

printf '\033]2;Hello\a'

Это изменяет заголовок окна один раз, но если какая-либо другая программа позже изменит его снова, ваш старый заголовок будет потерян. Трюк с изменением подсказки широко распространен, потому что некоторые популярные программы в прошлом часто меняли заголовок окна вскоре после того, как вы меняли его по своему вкусу (, хотя я не думаю, что сейчас это распространенная проблема ). Недостатком является то, что если у чего-то есть реальная причина изменить заголовок вашего окна, это теперь будет заменено, как только ваша оболочка снова отобразит свое приглашение.

Если вы хотите, чтобы код изменил приглашение вашей текущей оболочки, вы не можете поместить его в обычный скрипт; но вы можете sourceфайл скрипта или поместить команды в функцию оболочки вместо (того, что обычно делается в вашем профиле Bash, чтобы сделать его постоянным ).

Между прочим, подсказка Bash должна включать дополнительные управляющие коды, чтобы сообщать Bash, когда часть подсказки фактически имеет нулевую ширину, поскольку речь идет о вычислении ширины отображения подсказки. Вы обнаружите, что перенос строк является ошибочным, если вы вводите длинную команду, а затем, например, вам нужно нажать клавишу Backspace; Bash попытается перерисовать подсказку,но делает это не в том месте, потому что считает, что коды управления экраном влияют на ширину подсказки. Вы захотите добавить эти управляющие коды \[и \]Bash вокруг них.

PS1="$ORIG\[$TITLE\]"

(Фигурные скобки на самом деле ничего не добавляют и затрудняют разборчивость, поэтому я их убрал.)

1
30.07.2019, 18:23
1 ответ

Я тоже сталкиваюсь с такой же ситуацией, не уверен, что уже поздно отвечать на этот вопрос...

Я решил эту проблему, отключив system-monitorрасширение Gnome Shell (Я установил егоapt install gnome-shell-extension-system-monitor).

1
27.01.2020, 23:41

Теги

Похожие вопросы