выполнить команду, чтобы поменять местами caps lock и ctrl при запуске

Если вам интересно узнать, почему? это так, то вы можете посмотреть ответ на этот вопрос ответ в исходниках ядра здесь:

    if (!data || !table->maxlen || !*lenp || (*ppos && !write)) {
            *lenp = 0;
            return 0;
    }

В основном, поиск (*ppos не 0) не реализован для чтения (!write) значений sysctl, которые являются числами. Всякий раз, когда выполняется чтение из /proc/sys/fs/file-max, рассматриваемая процедура __do_proc_doulongvec_minmax() вызывается из записи для file-max в конфигурационной таблице в том же файле.

Другие записи, такие как /proc/sys/kernel/poweroff_cmd, реализуются через proc_dostring(), которая разрешает поиск, так что вы можете сделать dd bs=1 на ней и читать из оболочки без проблем.

Обратите внимание, что начиная с ядра 2.6 большинство /proc чтений было реализовано через новый API под названием seq_file и он поддерживает seeks, так что чтение /proc/stat не должно вызывать проблем. проблем. Реализация /proc/sys/, как мы видим, не использует этот api.

3
28.06.2018, 13:08
2 ответа

Причина, по которой команда setxkbmapне выполнялась после ее добавления в ~/.profileзаключается в том, что этот файл читается вашей оболочкой (, что, вероятно, bash )только при запуске оболочки login . В эмуляторах терминала Xне запускать оболочки входа в систему. Вы добавляете setxkbmapк вашему ~/.bashrc, если вы используете Bash, но есть лучший способ доступен в системах debian-изменить раздел XKBOPTIONSв вашем /etc/default/keyboard, например:

root@debian:/home/ja# cat /etc/default/keyboard
# KEYBOARD CONFIGURATION FILE

# Consult the keyboard(5) manual page.

XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT=""
XKBOPTIONS="ctrl:nocaps"

BACKSPACE="guess"

Теперь запустите эту команду, как описано вman 7 keyboard:

udevadm trigger --subsystem-match=input --action=change

Вам даже не нужно перезапускать lightdm. В следующий раз lightdmбудет будут применены запущенные настройки в /etc/default/keyboard. автоматически. Я только что проверил это на своем Debian 9.4.

9
27.01.2020, 21:10

Я думаю, что лучше всего создать файл.xsessionrc в вашем домашнем каталоге.

cat.xsessionrc 
setxkbmap -option ctrl:nocaps

Этот файл считывается при каждом запуске сеанса.
Таким образом, затрагивается только ваша сессия.
Другие пользователи этого не понимают.
Это нормально для Debian и NetBSD.

4
27.01.2020, 21:10

Теги

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