Remap Caps Lock для Ctrl-b

Вы можете использовать этот простой скрипт:

#!/bin/bash

if [[ -f $1 ]]; then
    echo "Yes"
    exit 0
else
    exit 1
fi

Сохранить его как file-exists.sh. Затем в терминале введите chmod +x file-exists.sh.

Используйте его как: ./file-exists.sh FILE, где вы замените FILE на файл, который вы хотите проверить, например:

./file-exists.sh file.txt

Если file.txt существует, Yes будет напечатано в терминале, и программа выйдет со статусом 0 (успех). Если файл не существует, ничего не будет напечатано, и программа выйдет со статусом 1 (сбой).

Если вам интересно, почему я включил команду exit, прочитайте ...

Что случилось с командой exit? [ ! d6]

exit вызывает нормальное завершение процесса. Это означает, в основном: он останавливает скрипт. Он принимает необязательный (числовой) параметр, который будет статусом выхода скрипта, который его вызвал.

Этот статус выхода позволяет другим скриптам использовать ваш скрипт file-exists и является способом узнать файл существует или нет.

Простым примером, который использует этот сценарий, является этот сценарий (сохраните его как file-exists-cli.sh):

#!/bin/bash

echo "Enter a filename and I will tell you if it exists or not: "
read FILE
# Run `file-exists.sh` but discard any output because we don't need it in this example
./file-exists.sh $FILE &>> /dev/null
# #? is a special variable that holds the exit status of the previous command
if [[ $? == 0 ]]; then
    echo "$FILE exists"
else
    echo "$FILE does not exist"
fi

Сделайте обычную chmod +x file-exists-cli.sh, а затем запустите это: ./file-exists-cli.sh. Вы увидите что-то вроде этого:

Файл существует (exit 0):

➜  ~ ./file-exists-cli.sh 
Enter a filename and I will tell you if it exists or not: 
booleans.py
booleans.py exists

Файл существует (exit 0):

➜  ~ ./file-exists-cli.sh
Enter a filename and I will tell you if it exists or not: 
asdf
asdf does not exist

3
задан 30 June 2018 в 07:34

2 ответа

XKB будет подходящим для графических интерфейсов Xwindows или Wayland. Это не повлияет на виртуальные консоли, но эмуляторы терминала GUI будут в порядке. Для фона XKB я укажу вам на некоторые (обзор, система и пользователь) .. другие (настраиваемые параметры) .. ответы (пользовательские правила).

Следующее позволит вам добавить новый параметр, например caps:myf13 в существующую раскладку XKB с любыми инструментами, которые вы обычно используете (настройки setxkbmap, localectl, панель GNOME и т. д.).

Определение опции [ ! d6]

Существующие опции кеш-ключа XKB перечислены в /usr/share/X11/xkb/rules/evdev.lst. Если посмотреть на соответствующие параметры в файле .../rules/evdev, вы увидите, что все эти параметры загружены из файла .../symbols/capslock. Все они являются ключами-модификаторами, которые, вероятно, не являются лучшим примером, но caps:backspace может быть хорошим сравнением. Если посмотреть на файл, мы найдем строфу, определяющую эту опцию:

hidden partial modifier_keys xkb_symbols "backspace" { key <CAPS> { [ BackSpace ] }; };

grep, используя другие файлы символов, мы можем видеть, что символ F13 просто F13. Новая строфа параметров может выглядеть так:

hidden partial modifier_keys xkb_symbols "myf13" { key <CAPS> { [ F13 ] }; };

Как вы можете видеть, мы только изменили имя опции и символ, назначенный клавише.

Подключить его

Осталось только подключить новую строфу. В базовой системе Xwindows, используя инструменты командной строки, такие как setxkbmap и xkbcomp, некоторые некоторые (обзор, система против пользователя) будут делать хорошо; для GNOME, KDE или системы Wayland вам необходимо внести изменения в базу данных XKB системы.

В качестве примера для системных изменений (вам понадобится sudo доступ для создания или редактирования этих файлов) :

Поместите пользовательскую строфу в новый файл символа, например /usr/share/X11/xkb/symbols/mycaps. Добавьте это в /usr/share/X11/xkb/rules/evdev чуть ниже строки для caps:backspace: caps:myf13 = +mycaps(myf13) ... добавьте в /usr/share/X11/xkb/rules/evdev.lst: caps:myf13 Caps Lock is F13 ... добавьте в /usr/share/X11/xkb/rules/evdev.xml: <option> <configItem> <name>caps:myf13</name> <description>Caps Lock is F13</description> </configItem> </option> Наконец, создайте резервные копии своего .../rules/evdev* или создать файл исправления. Ваши изменения будут перезаписаны всякий раз, когда обновляется пакет xkb-data. Если вы сохранили строфу модификации в файле .../symbols/capslock, ее также нужно будет скопировать.

После внесения этих изменений вы должны установить этот параметр, как если бы это была другая опция XKB. Возможно, вам придется перезапустить любой сеанс GNOME / KDE для панелей управления, чтобы получить изменения, но такие инструменты, как setxkbmap, должны найти его немедленно: setxkbmap -option caps:myf13

1
ответ дан 18 July 2018 в 04:37

XKB будет подходящим для графических интерфейсов Xwindows или Wayland. Это не повлияет на виртуальные консоли, но эмуляторы терминала GUI будут в порядке. Для фона XKB я укажу вам на некоторые (обзор, система и пользователь) .. другие (настраиваемые параметры) .. ответы (пользовательские правила).

Следующее позволит вам добавить новый параметр, например caps:myf13 в существующую раскладку XKB с любыми инструментами, которые вы обычно используете (настройки setxkbmap, localectl, панель GNOME и т. д.).

Определение опции [ ! d6]

Существующие опции кеш-ключа XKB перечислены в /usr/share/X11/xkb/rules/evdev.lst. Если посмотреть на соответствующие параметры в файле .../rules/evdev, вы увидите, что все эти параметры загружены из файла .../symbols/capslock. Все они являются ключами-модификаторами, которые, вероятно, не являются лучшим примером, но caps:backspace может быть хорошим сравнением. Если посмотреть на файл, мы найдем строфу, определяющую эту опцию:

hidden partial modifier_keys xkb_symbols "backspace" { key <CAPS> { [ BackSpace ] }; };

grep, используя другие файлы символов, мы можем видеть, что символ F13 просто F13. Новая строфа параметров может выглядеть так:

hidden partial modifier_keys xkb_symbols "myf13" { key <CAPS> { [ F13 ] }; };

Как вы можете видеть, мы только изменили имя опции и символ, назначенный клавише.

Подключить его

Осталось только подключить новую строфу. В базовой системе Xwindows, используя инструменты командной строки, такие как setxkbmap и xkbcomp, некоторые некоторые (обзор, система против пользователя) будут делать хорошо; для GNOME, KDE или системы Wayland вам необходимо внести изменения в базу данных XKB системы.

В качестве примера для системных изменений (вам понадобится sudo доступ для создания или редактирования этих файлов) :

Поместите пользовательскую строфу в новый файл символа, например /usr/share/X11/xkb/symbols/mycaps. Добавьте это в /usr/share/X11/xkb/rules/evdev чуть ниже строки для caps:backspace: caps:myf13 = +mycaps(myf13) ... добавьте в /usr/share/X11/xkb/rules/evdev.lst: caps:myf13 Caps Lock is F13 ... добавьте в /usr/share/X11/xkb/rules/evdev.xml: <option> <configItem> <name>caps:myf13</name> <description>Caps Lock is F13</description> </configItem> </option> Наконец, создайте резервные копии своего .../rules/evdev* или создать файл исправления. Ваши изменения будут перезаписаны всякий раз, когда обновляется пакет xkb-data. Если вы сохранили строфу модификации в файле .../symbols/capslock, ее также нужно будет скопировать.

После внесения этих изменений вы должны установить этот параметр, как если бы это была другая опция XKB. Возможно, вам придется перезапустить любой сеанс GNOME / KDE для панелей управления, чтобы получить изменения, но такие инструменты, как setxkbmap, должны найти его немедленно: setxkbmap -option caps:myf13

1
ответ дан 24 July 2018 в 18:07

Другие вопросы по тегам:

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