Существует немного известной стандартной команды на 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 оставляют как осуществление читателю ;-)
Можно выполнить это с xmodmap
. Добавьте следующее к ~/.xmodmap
:
remove Lock = Caps_Lock
keysym Caps_Lock = Control_L
add Control = Control_L
и выполненный команда xmodmap ~/.xmodmap
. Можно поместить эту команду в любые файлы запуска, обрабатываются WM или DE. Это будет только работать в X, но это будет работать, независимо от какой графической среды Вы используете.
Я нашел его. Это было перемещено в региональный предпочтительный раздел:
Перейдите к настройкам> региональные предпочтения> раскладки клавиатуры> настройки и разверните раздел Caps Lock.
ОБНОВЛЕНИЕ:
В Linux Mint 17.1 можно добраться до него через;
Параметры настройки системы> Аппаратные средства> Клавиатура> Раскладки клавиатуры> Опции> поведение клавиши Caps Lock
Я понимаю, что здесь уже есть принятый ответ, но вот единственный верный способ изменить Caps Lock на ctrl . Это работает во всех версиях Linux, во всех дистрибутивах, для всей системы (консоль, X, что угодно). Он устанавливает отображение в ядре там, где оно должно быть .
(echo $(dumpkeys |grep -i keymaps); echo keycode 58 = Control) | loadkeys -
Добавьте это в сценарий запуска (например, /etc/rc.local
или создайте свой собственный).
В Debian (и его производных) dumpkeys / loadkeys является частью пакета kbd
, если по какой-то причине он еще не установлен.
Для Linuxmint 17 с KDE это было: Системные настройки> Устройства ввода> Комплектация> Клавиатура> Усовершенствованная> Ctrl. Положение
Нет необходимости использовать устаревшую xmodmap
, поскольку уже есть опция xkb
, а именно ctrl: nocaps
, например в терминале:
setxkbmap -option ctrl:nocaps
В gnome 3 вы можете использовать dconf-editor
и добавить ctrl: nocaps
в свои xkb-options в org> gnome> рабочий стол> источники ввода :
или просто включите Caps Lock как Ctrl в gnome-tweak-tool
в разделе Ввод> положение клавиши Ctrl :
На Mint 17.2 выберите Preferences -> Keyboard -> Layouts -> Options, выберите Caps Lock key behavior, выберите "Make Caps Lock an additional control."
.Вот дистиллированная версия:
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, но потребовалось много усилий, чтобы понять, что на самом деле нужно сделать.