Какой код действительно вводят с клавиатуры “пользовательские ярлыки”, принимают

Первая вещь, которую мне преподавали сделать, когда я использую Debian или Ubuntu, состоит в том, чтобы создать ярлык (в моем случае Ctr+Alt+T) для открытия терминала. Чтобы сделать это, я создаю новое сочетание клавиш (в опциях X систем> клавиатура) с кодом x-terminal-emulator. Это кажется достаточно прямым как команда удара: ввод этого в терминал также производит окно терминала.

В настоящее время я использую Debian 9.5 (Фрагмент), и я пытаюсь определить некоторые ярлыки для новой внешней клавиатуры. Однако, когда я пытаюсь создать ярлыки для других команд, я могу использовать от терминала (такой как firefox или echo "$"), ярлык не работает. Я, может казаться, не нахожу хорошую документацию о том, какое управление создать ярлык действительно принимает, но это, действительно не совсем кажется, принимает команды удара.

2
задан 19 December 2018 в 15:55

1 ответ

Первая вещь, которую мне преподавали сделать, когда я использую Debian или Ubuntu, состоит в том, чтобы создать ярлык (в моем случае Ctr+Alt+T) для открытия терминала. Чтобы сделать это, я создаю новое сочетание клавиш (в опциях X систем> клавиатура) с x-эмулятором-терминала кода

Существует два типа ярлыков. Некоторыми из них управляет настольная среда - вещи как Ctr+Alt+T. Различные настольные среды управляют другим набором ярлыков. Такие рабочие столы как GNOME, Единица, LXDE, ПОМОЩНИК, и т.д. - у них есть код, встроенный для этого, и Вы не можете действительно изменить те ярлыки, не перекомпилировав код настольной среды. Рабочие столы как Openbox, Черный ящик - они не управляют этими ярлыками. То, что Вам преподавали, нужно рассмотреть в контексте Вашей настольной среды. Вы не должны должны быть объявлять ярлык для x-terminal-emulator для рабочих столов как GNOME и другие я упомянул ранее, потому что они уже управляют этим.

Однако, когда я пытаюсь создать ярлыки для других команд, я могу использовать от терминала (такого как Firefox или повторить "$"), ярлык не работает.

Пользовательские ярлыки - что Вы объявляете себя - воздействуют на исполняемые файлы, который является Вами, должны указать правильный файл, существующий на диске, такой как /bin/bash или по крайней мере команда, которая существует в одном из каталогов, перечисленных под $PATH переменная. Настольная среда будет работать execve() syscall для запуска того приложения, когда Вы нажимаете ярлык. Это - также причина почему echo $? не работает - нет никакой оболочки для понимания что $? средства. Переменные оболочки только имеют значение в оболочке. Таким образом, что Вы делаете? Скажите ярлыку запускать оболочку! Обычно это сделано через bash -c 'echo $?' для коротких команд или использования сценарий с соответствующим #! строка наверху сценария. Так ключевая вещь помнить ярлыки не выполняют команды оболочки, они выполняют исполняемые файлы. Дать практический пример где bash -c '...' используется, посмотрите, Как создать ярлык, который выполняет команду xdotool для моделирования нажатия клавиши?

Что касается почему firefox не работал на Вас, firefox может проверять на существующие открытые окна или существует другая ошибка. Рассмотрите выполнение bash -c 'firefox > 2>&1 foxlogfile.txt' узнать причину проблемы или любых ошибок, которые могут появиться.

Я, может казаться, не нахожу хорошую документацию о том, какое управление создать ярлык действительно принимает, но это, действительно не совсем кажется, принимает команды удара.

Короткий ответ - нет такой документации, действительно. Пока Вы помните, что ярлыки используют исполняемые файлы вместо команд оболочки, это - все, в чем Вы действительно нуждаетесь. И конечно необходимо знать то, что является методом объявления ярлыков на рабочем столе - метод Openbox отличается от GNOME, например.

P.S.: На самом деле существует третий тип ярлыков, но они не связаны с настольной средой, т.е. они не ярлыки GUI. bash чтения ~/.inputrc файл, где можно объявить, что определенные команды выполняются для конкретного сочетания клавиш. Однако это выходит за рамки этого вопроса и является другой темой. Посмотрите это для примера.

P.S.2: Рабочие столы на основе GNOME, такие как Единица, используют базу данных GSettings и DConf для применения конкретных настроек к каждому пользователю рабочего стола. По сути, ярлыки под теми средой можно управлять и установить через командную строку, но то же понятие применяется - они должны быть или исполняемыми файлами или чем-то, что настольная среда распознает, потому что это находится в коде настольной среды. См. эту статью об одном из моих scritps для отключения Супер ключа под Единицей, и ответ Jacob Vlijm для установки ярлыков через терминал (помните, что это относится только к основанным на GNOME).

См. также

2
ответ дан 2 December 2019 в 03:30

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

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