Отобразите Caps Lock для управления в Linux Mint

Существует немного известной стандартной команды на Unix, который может помочь нам здесь найти общее решение в нахождении, в котором порядке серия переименовывает, должны быть сделаны: tsort

Скажите, что у нас есть список, переименовывает, чтобы быть сделанным в названном файле renames.txt (принимающий ради демонстрации, что их имя не содержит пробелы):

d a
e f
b e
a c

Поскольку d должен быть переименован к a, это означает a должен быть переименован прежде d. Таким образом, у нас есть частичный порядок сортировки там, который был бы реверсом порядка, файлы должны быть переименованы.

tsort инструмент должен вывести полный порядок сортировки из списка частичных порядков сортировки. Это возвратилось бы с ошибкой, если бы был цикл, который помог бы нам обнаружить случаи, где нет никакого решения. Если мы подаем заявку tsort на том входе это дает нам:

b
d
e
a
f
c

Который говорит b должен быть переименован после d после e. Мы можем использовать GNU tac (некоторые системы также имеют tail -r) инвертировать тот порядок:

c
f
a
e
d
b

И присоединитесь, это с нашим списком переименовывает:

tsort renames.txt | tac | awk '
  NR==FNR {
    ren[$1] = $2
    next
  }
  $1 in ren {
    print "mv -i --", $1, ren[$1]
  }' renames.txt -

который дает нам:

mv -i -- a c
mv -i -- e f
mv -i -- d a
mv -i -- b e

к которому мы можем затем передать по каналу sh выполниться.

Обратите внимание однако, что вышеупомянутый код не устойчив в этом, мы не проверяли статус выхода tsort выше для обнаружения циклов и имен файлов не должен содержать специальные символы оболочки.

robustification оставляют как осуществление читателю ;-)

12
07.02.2017, 15:39
7 ответов

Можно выполнить это с xmodmap. Добавьте следующее к ~/.xmodmap:

remove Lock = Caps_Lock
keysym Caps_Lock = Control_L
add Control = Control_L

и выполненный команда xmodmap ~/.xmodmap. Можно поместить эту команду в любые файлы запуска, обрабатываются WM или DE. Это будет только работать в X, но это будет работать, независимо от какой графической среды Вы используете.

18
27.01.2020, 19:54
  • 1
    Каково было бы идеальное место для этой команды для пользователя Корицы Linux Mint? –  Zamicol 12.01.2015, 08:55

Я нашел его. Это было перемещено в региональный предпочтительный раздел:

Перейдите к настройкам> региональные предпочтения> раскладки клавиатуры> настройки и разверните раздел Caps Lock.

ОБНОВЛЕНИЕ:

В Linux Mint 17.1 можно добраться до него через;

Параметры настройки системы> Аппаратные средства> Клавиатура> Раскладки клавиатуры> Опции> поведение клавиши Caps Lock

17
27.01.2020, 19:54

Я понимаю, что здесь уже есть принятый ответ, но вот единственный верный способ изменить Caps Lock на ctrl . Это работает во всех версиях Linux, во всех дистрибутивах, для всей системы (консоль, X, что угодно). Он устанавливает отображение в ядре там, где оно должно быть .

(echo $(dumpkeys |grep -i keymaps); echo keycode 58 = Control) | loadkeys -

Добавьте это в сценарий запуска (например, /etc/rc.local или создайте свой собственный).

В Debian (и его производных) dumpkeys / loadkeys является частью пакета kbd , если по какой-то причине он еще не установлен.

3
27.01.2020, 19:54

Для Linuxmint 17 с KDE это было: Системные настройки> Устройства ввода> Комплектация> Клавиатура> Усовершенствованная> Ctrl. Положение

3
27.01.2020, 19:54

Нет необходимости использовать устаревшую xmodmap , поскольку уже есть опция xkb , а именно ctrl: nocaps , например в терминале:

setxkbmap -option ctrl:nocaps

В gnome 3 вы можете использовать dconf-editor и добавить ctrl: nocaps в свои xkb-options в org> gnome> рабочий стол> источники ввода :

enter image description here

или просто включите Caps Lock как Ctrl в gnome-tweak-tool в разделе Ввод> положение клавиши Ctrl :

enter image description here

5
27.01.2020, 19:54

На Mint 17.2 выберите Preferences -> Keyboard -> Layouts -> Options, выберите Caps Lock key behavior, выберите "Make Caps Lock an additional control."

.
1
27.01.2020, 19:54

Вот дистиллированная версия:

0 )Убедитесь, что Caps Lock выключен

1 )Создайте следующий файл:

/etc/udev/hwdb.d/10-caps-modifier.hwdb
---
evdev:atkbd:dmi:*            # built-in keyboard: match all AT keyboards for now
  KEYBOARD_KEY_3a=leftctrl   # bind capslock to leftctrl

2 )Выполните следующую команду:

$ systemd-hwdb update

3 )Выполните следующую команду, чтобы переназначение вступило в силу немедленно:

$ udevadm trigger

Это было протестировано на Ubuntu 18.04.2 LTS с Xfce. Переназначение отлично работает на tty-консолях и в системе ввода X.

Спасибо этой странице за все подробности :https://wiki.archlinux.org/index.php/Map_scancodes_to_keycodes, но потребовалось много усилий, чтобы понять, что на самом деле нужно сделать.

0
27.01.2020, 19:54

Теги

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