В .bashrc
файл, можно добавить псевдоним для команды, сказать
alias geditm = 'gedit --display=D1'
Теперь я могу работать geditm
в терминале и имеют gedit, открытый в дисплее D1. Мне любопытно, если существует способ определить псевдоним для выполнения команд из меню Alt-F2, так, чтобы я мог Alt+F2, ввести geditm
и имейте тот же результат.
Я интересуюсь выполнением этого обычно, не только для gedit.
Не совсем, нет. Я не уверен в деталях, но полагаю, что Alt + F2 просто передает команды, которые вы запускаете, в неинтерактивную оболочку без входа в систему. Этот тип оболочки не будет иметь доступа к псевдонимам, как объясняется в man bash
:
When bash is started non-interactively, to run a shell script, for
example, it looks for the variable BASH_ENV in the environment, expands
its value if it appears there, and uses the expanded value as the name
of a file to read and execute. Bash behaves as if the following com‐
mand were executed:
if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
but the value of the PATH variable is not used to search for the file
name.
Итак, вы можете подумать, что можете просто установить BASH_ENV
, чтобы указать на файл, содержащий псевдоним определения. К сожалению, псевдонимы недоступны для неинтерактивных оболочек. Снова из man bash
:
Aliases are not expanded when the shell is not interactive, unless the
expand_aliases shell option is set using shopt (see the description of
shopt under SHELL BUILTIN COMMANDS below).
Вы можете подумать, что можете добавить shopt -s expand_aliases
в файл, определенный в $ BASH_ENV
, но это не сработает потому что этот файл будет прочитан, но в другой оболочке.
Я знаю, что это сбивает с толку. В итоге, вы не можете сделать псевдонимы доступными для диалогового окна Alt + F2 .
Итак, поскольку вы не можете сделать это с псевдонимами, что вы можете сделать это с помощью скриптов:
sudo -H gedit /usr/bin/geditm
Это вызовет новое окно gedit
, добавьте в него эти строки и сохраните файл:
#!/bin/bash
gedit --display=D1
Сделайте скрипт исполняемым :
sudo chmod a+x /usr/bin/geditm
Теперь вы можете нажать Alt + F2 , написать geditm
, и этот сценарий будет запущен, который в свою очередь запустит gedit
с желаемыми параметрами.
Примечание: перечитав свой вопрос и подумав над ним, я думаю, что ответ Тердона, вероятно, будет тем, который вам нужен, а не этим; этот слишком общий и требует больше ввода.
Если я правильно понимаю, похоже, что вы можете добавить - display = D1
к любой программе, запускаемой с помощью Alt-F2; это верно? После некоторого обсуждения, вероятно, нет, поэтому обязательно посмотрите «EDIT2» вместе с этим для другого варианта.
Если так, похоже, вы могли бы создать простой скрипт, который будет жить в какой-то папке на вашем пути, например ~ / bin
, это будет просто
#!/bin/bash
$1 --display=D1
. Если вы назовете скрипт "display", то с помощью Alt-F2 вы можете запустить display gedit
, и он должен добавить "--display = D1 ".
РЕДАКТИРОВАТЬ: Я думаю, вам нужно будет сделать его исполняемым, используя chmod + x display
Я не могу легко это проверить, но он должен работать (если это то, что вы хотите сделать.
РЕДАКТИРОВАТЬ2: Кажется, я не полностью понял ваш вопрос, но я думаю, что вы все еще можете использовать аналогичный метод. Вместо указания флага вы можете использовать подстановки как для команды, так и для флагов. Я думаю вы можете просто сказать
$*
вместо
$1 --display=D1
. Тогда команда Alt-F2 будет выглядеть так: «display xxxx yyyy ...»