Я обнаружил, что способ добавления строк в разные конфиги x11 в моем случае оказался неэффективным. В качестве альтернативы я создал сценарий bash, который автоматически применяет мои настройки при входе в систему. Проще говоря, я просто взял то, что я изменил из сохраненного файла xconf
, что, по сути, приводит нас к желаемому концу. Это не самый элегантный метод, но он работает...
В приведенном ниже файле указаны мои настройки для моих мониторов, вам нужно будет поместить свою информацию поверх моей.
Лично я решил добавить эти строки прямо в.bashrc
:
nvidia-settings --load-config-only
nvidia-settings --assign CurrentMetaMode="DVI-I-1: nvidia-auto-select +0+54, HDMI-0: nvidia-auto-select +1600+0 {viewportout=1792x1008+65+30}"
Мой первоначальный и действительный ответ был отредактирован, чтобы предложить поместить его в отдельный файл и вместо вызова файла в .bashrc
. Оба действительны. Однако я хотел, чтобы ответ отражал оба метода.
Пример сценария bash:
# Save this to some script.sh
nvidia-settings --load-config-only
nvidia-settings --assign CurrentMetaMode="DVI-I-1: nvidia-auto-select +0+54, HDMI-0: nvidia-auto-select +1600+0 {viewportout=1792x1008+65+30}"
Затем отредактируйте .bashrc
или.bash_profile
(в зависимости от ваших предпочтений )и добавьте туда свой сценарий, чтобы он запускался автоматически при входе в систему.
Наконец, сделайте ваш скрипт исполняемым с помощьюchmod +x script.sh
Поведение консоли отличается, потому что оно обрабатывается совершенно другим кодом. /etc/default/keyboard
содержит настройки для XKB , который является частью X, обрабатывающей ввод с клавиатуры. Пакет установки консоли -переводит эти настройки в то, на что способна консоль, благодаря программам setupcon
(, которые считывают и анализируют/etc/default/keyboard
)и ckbcomp
(, которые переводят настройки XKB в настройки консоли. ). Эти инструменты ограничены возможностями консоли.
Консоль Linux, реализованная внутри ядра, имеет лишь частичную поддержку многобайтовых наборов символов. Что касается ключа компоновки, в частности, в ядре существует жесткое -закодированное ограничение :таблица компоновки (accent_table
)имеет жестко -закодированный размер MAX_DIACR
, который равен 256, если вы не перекомпилируете свой код. ядро¹. Это может объяснить, почему в установочном пакете консоли -нет таблицы компоновки Unicode :всего с 256 записями, вы не собираетесь охватывать много символов, что бы вы ни делали. Насколько я могу судить, когда вы используете настройку консоли -с набором символов Unicode, вы получаете ядро , встроенное -в таблице компоновки , в которой перечислены только символы latin1 non -ASCII. буквы с акцентом (, а не знаки препинания, такие как ° ).
Вы можете определить свою собственную таблицу составления. Выберите до 256 комбинаций двух символов, чтобы объединить их в третий, и перечислите их в файле карты для создания консоли.
Compose 'o' 'o' to degree
Compose 0x6f 0x006f to 0xb0
Compose U+6F U+006f to U+00B0
Первые строки выше иллюстрируют различные способы сказать, что Composeoo вставляет °
. Конечно, вам нужен только один. Способы указания символа²:
0
или шестнадцатеричном с начальным 0x
. '
.Перед этим символом может быть обратная косая черта, а обратная косая черта обязательна для обратной косой черты, а одинарная кавычка:'\o'
эквивалентна 'o'
, но обратная косая черта и одинарная кавычка могут быть записаны только '\\'
и '\'
соответственно (или используя другой синтаксис ). '\ooo'
где ооо — ровно 3 восьмеричных цифры, определяющие значение не более 255(\377
). U+hhhh
где hhhh — ровно 4 шестнадцатеричных цифры. to
символическое имя персонажа. Символическое имя является подмножеством имен символов клавиш X11. См. источник (syms.*.h
)для списка символических имен. Чтобы загрузить собственную карту компоновки, запустите
loadkeys /path/to/my/compose.kmap
Заменяет текущую загруженную таблицу компоновки.
Я не могу найти способ заставить консоль -загрузить пользовательскую карту составления. ckbcomp
загружает /etc/console-setup/compose.${charmap}.inc
для кодировок, отличных от -Unicode, но для Unicode пропускает этот шаг.
¹ Количество элементов массива kbdiacruc
вstruct kbdiacrsuc
— это максимальное количество элементов, которое может установить пользовательское пространство. Вероятно, необходимо установить одно и то же значение.
² Исходный код :исходный код(kbd
пакет, файлы src/libkeymap/analyze.l
иsrc/libkeymap/parser.y
). Я не смог найти эти детали в документации.