Решил я упороться и упоролся. Захотелось мне короче прям из консоли вызывать всплывающую подсказку по хоткею. Нажал хоткей появилась справка-шпаргалка, отпустил и она закрылась.
ДА! Прям из консоли! Так как иксов на серверах нет, нужно было идти другим путем, а путь оказался ну совсем неочевидный. Я до сих пор не понимаю, почему такая больная мысль меня посетила, видимо задачи в бэклоге закончились и стало скучно.
Проштудировав документацию по readline, я
Readline — библиотека GNU Project, которую Bash и другие программы с CLI-интерфейсом используют для взаимодействия с командной строкой.
Но нет ничего невозможного, раз readline шлет меня в жопу, повесим read на стандартный ввод. Когда клавиша будет отпущена, read вернет ошибку и выполнение скрипта перейдет к следующей инструкции, ну и по итогу скрипт завершится.
Если кто-то тебе говорит — это сделать невозможно! Он либо
Ничего не понял? Забей, это мысли в слух, главное реализация, а не скучная теория. В общем пишем скрипт и кидаем его в
/usr/local/sbin/cheat_shit.sh чмодим chmod +x cheat_shit.sh чтобы он в экзешник превратился.#!/bin/bashОЧЕНЬ СТРАШНО! Держу пари мало кто про такое вообще слышал и тем более видел. Но такое в bash вполне реализуемо и в школе такому не научат.
tput civis
tput smcup
tput cup 0 0
trap 'tput rmcup;tput cvvis' EXIT
echo 'Hello,this is Cheat-Shit'
echo '------------------------'
echo 'а тут можешь написать всё, что захочешь'
echo '------------------------'
echo 'source: https://t.me/bashdays'
read -srn1 -t 0.7
while read -srn1 -t 0.1
do
:
done
exit
Кратенько:
tput civis = скрываем курсорtput smcup = переходим на альтернативный экранtput cup 0 0 = переводим курсор в начало строкиtrap 'tput…' = после выхода зачищаем весь мусорДалее прописываем бинд в
~/.bashrc и вешаем вызов скрипта на CTRL+hbind -x '"\C-h":"/usr/local/sbin/cheat_shit.sh"'Перезапускаем сессию. Теперь при нажатии CTRL+h у меня поверх рабочей консоли открывается попап с нужным мне текстом. В тексте может быть шпаргалка либо котик 😑 либо что-то еще полезное.
Как повторить для zsh, ХЗ, я не разбирался. Если будут наработки, скидывайте в бота, сделаю отдельный пост.
Ну и для гиков, кто хочет покопаться поглубже, можешь зама́нить и захелпить:
man 3 readlineПомимо шпаргалки по хоткею, ты можешь запустить вообще любой скрипт. Тут уже зависит от полета фантазии. Больше не смею тебя отвлекать, спасибо за внимание. Давай пять и погнали дальше отдыхать!
man bash (раздел readline)
man tput
man stty
help trap
help read
help bind
man 5 terminfo
✅ ВИДЕО КАК ЭТО РАБОТАЕТ
tags: #bash
—
🟢 Подпишись: @bashdays