Рейтинг:1

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

флаг in

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

## ПОМЕНЯТЬ УПРАВЛЯЮЩИЙ КЛЮЧ

setxkbmap -опция ctrl:swapcaps

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

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

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

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

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

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

Спасибо.

флаг ru
На `.bashrc` ссылаются только при открытии терминала в оболочке входа. Если вы не входите непосредственно в оболочку входа в терминал (Bash), она не будет загружаться при запуске. Он также может быть не стойким. Однако среды с графическим интерфейсом не ссылаются на `.bashrc` при загрузке при загрузке.
Pedro Delfino avatar
флаг in
Спасибо, @ThomasWard. Это объяснение имеет большой смысл. Не порекомендуете ли вы мне другое место для вставки этого определения `setxkbmap`? Я хотел бы, чтобы это было постоянным изменением и загружалось при загрузке.
флаг ru
У меня есть несколько возможных решений, но я нахожусь в конце очень долгого дня и иду спать, поделюсь своими мыслями завтра после сна.
Pedro Delfino avatar
флаг in
Без проблем. Хорошего отдыха :)
флаг ru
ТИПИЧНО это делается в `/etc/rc.local`, но в настоящее время это более или менее устарело в пользу одноразовых модулей SystemD во время загрузки. Что будет работать буквально для всей системы (или они должны в любом случае). Позвольте мне написать пример в ответ. Если это сработает, отлично, если нет, мы продолжим искать возможные решения.
флаг ru
Я предполагаю, что мой ответ cronjob решил проблему для вас? Собирался написать подход SystemD, но не буду, если cronjob решит его.
Рейтинг:1
флаг ru

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

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

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

Начнем сначала с опции задания cron.

Подход Cron к работе

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

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

@reboot setxkbmap -option ctrl:swapcaps

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

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

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

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

Сначала установите gnome-стартап-приложения:

sudo apt установить gnome-startup-приложения

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

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

Pedro Delfino avatar
флаг in
Спасибо. Это *почти* работает. После запуска не работает. Но если я открываю оболочку, она работает. Это уже было возможно. Но теперь я могу закрыть оболочку (терминал), и она продолжает работать!
Pedro Delfino avatar
флаг in
Я попытаюсь вставить «gnome-terminal» в свои настройки запуска. Так что, я думаю, это сработает.
флаг ru
Хорошо, тогда это похоже на случай простого добавления gnome-terminal в ваши приложения для запуска.

Ответить или комментировать

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