Думаю, вы могли бы объединить их вот так:
sh -c 'sleep 0.5; xdotool type "$(xclip -o -selection clipboard)"'
просто для привязки клавиш к выбору текста. Вы должны убедиться, что мета-клавиши -в привязке не нажимаются, когда он пытается запустить команду (xdotool
, создает нажатия клавиш, и он не отпускает для вас клавишу Ctrl ).
Во-вторых, по умолчанию xclip
выбирает буфер XA_Primary
, а не XA_CLIPBOARD
. Таким образом, вы должны передать буфер обмена в качестве параметра выбора для xclip
.
Или просто:
sh -c 'sleep 0.5; xdotool type "lorem@ipsum.com"'
xclip
один:
sh -c 'echo "lorem@ipsum.com" | xclip -sel clip && xclip -out -sel clip'
Но это длинная, перегруженная команда (лично мне это не нравится ).
Спасибо @shaola за то, что указал мне правильное направление! Оказывается, никакой конфигурации не требуется, по крайней мере, на моей машине. Оказывается, в grub они уже встроены! Я заподозрил, когда заметил все это уже в/etc/grub.d/10_linux
:
hotkey=1
incr_hotkey()
{
[ -z "$hotkey" ] && return
expr $hotkey + 1
}
print_hotkey()
{
keys="123456789abdfgijklmnoprtuvwyz"
if [ -z "$hotkey" ]||[ $hotkey -eq 0 ]||[ $hotkey -gt 30 ]; then
return
fi
echo "--hotkey=$(expr substr $keys $hotkey 1)"
}
linux_entry ()
{
os="$1"
version="$2"
type="$3"
args="$4"
if [ -n "${linux_root_device_thisversion}" ]; then
root_device="root=${linux_root_device_thisversion}"
else
root_device=""
fi
if [ -z "$boot_device_id" ]; then
boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")"
fi
if [ x$type != xsimple ] ; then
case $type in
recovery)
title="$(gettext_printf "%s, with Linux %s (recovery mode)" "${os}" "${version}")" ;;
*)
title="$(gettext_printf "%s, with Linux %s" "${os}" "${version}")" ;;
esac
if [ x"$title" = x"$GRUB_ACTUAL_DEFAULT" ] || [ x"Previous Linux versions>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then
replacement_title="$(echo "Advanced options for ${OS}" | sed 's,>,>>,g')>$(echo "$title" | sed 's,>,>>,g')"
quoted="$(echo "$GRUB_ACTUAL_DEFAULT" | grub_quote)"
title_correction_code="${title_correction_code}if [ \"x\$default\" = '$quoted' ]; then default='$(echo "$replacement_title" | grub_quote)'; fi;"
grub_warn "$(gettext_printf "Please don't use old title \`%s' for GRUB_DEFAULT, use \`%s' (for versions before 2.00) or \`%s' (for 2.00 or later)" "$GRUB_ACTUAL_DEFAULT" "$replacement_title" "gnulinux-advanced-$boot_device_id>gnulinux-$version-$type-$boot_device_id")"
fi
echo "menuentry '$(echo "$title" | grub_quote)' $(print_hotkey) ${CLASS} \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
hotkey=$(incr_hotkey)
else
echo "menuentry '$(echo "$os" | grub_quote)' $(print_hotkey) ${CLASS} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
hotkey=$(incr_hotkey)
fi
if [ x$type != xrecovery ] ; then
save_default_entry | grub_add_tab
fi
# Use ELILO's generic "efifb" when it's known to be available.
# FIXME: We need an interface to select vesafb in case efifb can't be used.
if [ "x$GRUB_GFXPAYLOAD_LINUX" = x ]; then
echo " load_video" | sed "s/^/$submenu_indentation/"
if grep -qx "CONFIG_FB_EFI=y" "${config}" 2> /dev/null \
&& grep -qx "CONFIG_VT_HW_CONSOLE_BINDING=y" "${config}" 2> /dev/null; then
echo " set gfxpayload=keep" | sed "s/^/$submenu_indentation/"
fi
else
if [ "x$GRUB_GFXPAYLOAD_LINUX" != xtext ]; then
echo " load_video" | sed "s/^/$submenu_indentation/"
fi
echo " set gfxpayload=$GRUB_GFXPAYLOAD_LINUX" | sed "s/^/$submenu_indentation/"
fi
echo " insmod gzio" | sed "s/^/$submenu_indentation/"
Я не совсем блестящий программист -на самом деле я даже не могу сообразить, что это за язык (если только это не его собственный )но я предположил, что существует автоматическое увеличение горячей клавиши для каждого элемента в списке, и то, что моя установка openSUSE находится в верхней части списка, означает, что мне просто нужно нажимать 1
во время загрузки и ждать признаков того, что я не принудительно подключаюсь к ОС из компания, которая хочет подражать Apple, захватив мою жизнь, загрузив Linux.
Кроме того, если у вас есть установка, подобная моей (или, по крайней мере, как у меня в этом отношении )и вы хотите попробовать идею @shaola, мне пришлось запустить grub2-mkconfig
вместо grub-update
. Вероятно, что-то типа дистрибутива или версии. Определенно не моя область знаний, чтобы сказать.