Почему setxkbmap в .bashrc периодически работает? Почему загрузка занимает некоторое время после того, как компьютер уже запущен?

Я использую это в моем .bashrc файле:

## SWAP CONTROL KEY

setxkbmap -option ctrl:swapcaps

Я сделал это, в основном, потому что я Я много использую Emacs. Кажется, работает большую часть времени.

К сожалению, продолжают возникать 2 проблемы:

(i) - После запуска ПК требуется время для работы. Это не мгновенно, что меня заинтриговало, так как кажется, что это что-то «маленькое», которое нужно изменить;

(ii) - Иногда, совершенно неожиданно, это перестает работать, а затем, внезапно, своп возвращается. Это случилось однажды сегодня.

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

У меня огромный пробел в знаниях о конфигурациях файлов .bashrc . Возможно, в моем файле есть несоответствие. Вот репозиторий на GitHub, показывающий весь файл .bashrc .

Спасибо.

1
задан 22 July 2021 в 18:31

1 ответ

Итак, одна из проблем, с которыми вы сталкиваетесь, - это зло, которое " .bashrc читается только оболочками Bash в терминале". Ваш графический интерфейс НЕ является оболочкой Bash, поэтому .bashrc НЕ читается графическим интерфейсом до тех пор, пока вы не откроете Терминал, а затем он не активирует / не применит смену ключей.

Если мы хотим, чтобы он работал глобально, он должен выполняться как часть системы независимо от .bashrc . Есть два варианта: Ваш пользовательский crontab для @reboot , который является особым именем случая. ИЛИ, модуль SystemD.

(Я не тестировал ни одно из решений, поэтому не могу комментировать, будет ли одно работать лучше другого, если вообще).

Начнем сначала с опции cron job.

Подход к заданию Cron

Откройте свой терминал и запустите crontab -e .

Добавьте к нему эту строку:

@reboot setxkbmap -option ctrl:swapcaps

Перезагрузите систему и посмотрите, работает ли это.

Если это сработает, отлично. Если нет, то надо попробовать другой подход.

Резервное решение: автозапуск gnome-terminal после входа в систему

Если все остальное не помогает, добавьте gnome-terminal в ваши запускаемые приложения.

Во-первых, установите gnome-startup-applications :

sudo apt install gnome-startup-applications

Во-вторых, найдите в своих приложениях «Настройки запускаемых приложений»

Добавьте элемент для gnome-terminal . Таким образом он автоматически запустит терминал.

1
ответ дан 28 July 2021 в 11:16

Другие вопросы по тегам:

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