mKittyConfScrolling.sh 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. #!/bin/bash
  2. source "sKitty.sh"
  3. HEAD(){ for (( a=2; a<=16; a++ ))
  4. do
  5. TPUT $a 1
  6. $E "\e[1;35m\xE2\x94\x82 \xE2\x94\x82\e[0m";
  7. done
  8. TPUT 3 1
  9. $E "\e[0m\033[35m+- Прокрутка -------------------------------- Scrolling -------------------------+\e[0m";
  10. TPUT 14 1
  11. $E "\e[0m\033[35m+- Up \xE2\x86\x91 \xE2\x86\x93 Down Select Enter -----------------------------------------------------+\e[0m";
  12. MARK;TPUT 1 1
  13. $E "$c";UNMARK;}
  14. FOOT(){ MARK;TPUT 17 1;$E "$c";UNMARK;}
  15. #
  16. M0(){ TPUT 4 3; $e " Прокрутить строку вверх \e[32m Scroll line up \e[0m";}
  17. M1(){ TPUT 5 3; $e " Прокрутить строку вниз \e[32m Scroll line down \e[0m";}
  18. M2(){ TPUT 6 3; $e " Прокрутить страницу вверх \e[32m Scroll page up \e[0m";}
  19. M3(){ TPUT 7 3; $e " Прокрутить страницу вниз \e[32m Scroll page down \e[0m";}
  20. M4(){ TPUT 8 3; $e " Пролистать наверх \e[32m Scroll to top \e[0m";}
  21. M5(){ TPUT 9 3; $e " Прокрутите вниз \e[32m Scroll to bottom \e[0m";}
  22. M6(){ TPUT 10 3; $e " Прокрутите до предыдущей подсказки оболочки \e[32m Scroll to previous shell prompt\e[0m";}
  23. M7(){ TPUT 11 3; $e " Прокрутите до следующего приглашения оболочки \e[32m Scroll to next shell prompt \e[0m";}
  24. M8(){ TPUT 12 3; $e " Просмотр буфера прокрутки в пейджере \e[32m Browse scrollback buffer in pager \e[0m";}
  25. M9(){ TPUT 13 3; $e " Просмотр последней команды в пейджере \e[32m Browse output of the last in pager \e[0m";}
  26. #
  27. M10(){ TPUT 15 3; $e " \e[90mExit \e[0m";}
  28. LM=10
  29. MENU(){ for each in $(seq 0 $LM);do M${each};done;}
  30. POS(){ if [[ $cur == up ]];then ((i--));fi
  31. if [[ $cur == dn ]];then ((i++));fi
  32. if [[ $i -lt 0 ]];then i=$LM;fi
  33. if [[ $i -gt $LM ]];then i=0;fi;}
  34. REFRESH(){ after=$((i+1)); before=$((i-1))
  35. if [[ $before -lt 0 ]];then before=$LM;fi
  36. if [[ $after -gt $LM ]];then after=0;fi
  37. if [[ $j -lt $i ]];then UNMARK;M$before;else UNMARK;M$after;fi
  38. if [[ $after -eq 0 ]] || [ $before -eq $LM ];then
  39. UNMARK; M$before; M$after;fi;j=$i;UNMARK;M$before;M$after;}
  40. INIT(){ R;HEAD;FOOT;MENU;}
  41. SC(){ REFRESH;MARK;$S;$b;cur=`ARROW`;}
  42. # Функция возвращения в меню
  43. ES(){ MARK;$e " ENTER = main menu ";$b;read;INIT;};INIT
  44. while [[ "$O" != " " ]]; do case $i in
  45. 0) S=M0;SC; if [[ $cur == enter ]];then R;echo -e "
  46. \e[32m map kitty_mod+up scroll_line_up\e[0m
  47. \e[32m map kitty_mod+k scroll_line_up\e[0m
  48. \e[32m map opt+cmd+page_up scroll_line_up\e[0m
  49. \e[32m map cmd+up scroll_line_up\e[0m
  50. ";ES;fi;;
  51. 1) S=M1;SC; if [[ $cur == enter ]];then R;echo -e "
  52. \e[32m map kitty_mod+down scroll_line_down\e[0m
  53. \e[32m map kitty_mod+j scroll_line_down\e[0m
  54. \e[32m map opt+cmd+page_down scroll_line_down\e[0m
  55. \e[32m map cmd+down scroll_line_down\e[0m
  56. ";ES;fi;;
  57. 2) S=M2;SC; if [[ $cur == enter ]];then R;echo -e "
  58. \e[32m map kitty_mod+page_up scroll_page_up\e[0m
  59. \e[32m map cmd+page_up scroll_page_up\e[0m
  60. ";ES;fi;;
  61. 3) S=M3;SC; if [[ $cur == enter ]];then R;echo -e "
  62. \e[32m map kitty_mod+page_down scroll_page_down\e[0m
  63. \e[32m map cmd+page_down scroll_page_down\e[0m
  64. ";ES;fi;;
  65. 4) S=M4;SC; if [[ $cur == enter ]];then R;echo -e "
  66. \e[32m map kitty_mod+home scroll_home\e[0m
  67. \e[32m map cmd+home scroll_home\e[0m
  68. ";ES;fi;;
  69. 5) S=M5;SC; if [[ $cur == enter ]];then R;echo -e "
  70. \e[32m map kitty_mod+end scroll_end\e[0m
  71. \e[32m map cmd+end scroll_end\e[0m
  72. ";ES;fi;;
  73. 6) S=M6;SC; if [[ $cur == enter ]];then R;echo -e "
  74. \e[32m map kitty_mod+z scroll_to_prompt -1\e[0m
  75. Используйте нулевой параметр для scroll_to_prompt, чтобы прокрутить до последней
  76. позиции перехода или последней позиции щелчка. Требует работы.
  77. https://sw.kovidgoyal.net/kitty/shell-integration/
  78. ";ES;fi;;
  79. 7) S=M7;SC; if [[ $cur == enter ]];then R;echo -e "\e[32m map kitty_mod+x scroll_to_prompt 1\e[0m";ES;fi;;
  80. 8) S=M8;SC; if [[ $cur == enter ]];then R;echo -e "
  81. \e[32m map kitty_mod+h show_scrollback\e[0m
  82. Вы можете передать содержимое текущего экрана и буфера истории как STDIN в про-
  83. извольную программу, используя функцию запуска.
  84. Например, код открывает буфер обратной прокрутки в меньшем окне наложения:
  85. map f1 launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay less +G -R
  86. Дополнительные сведения о передаче содержимого экрана
  87. и буфера во внешние программы см. в разделе launch.
  88. ";ES;fi;;
  89. 9) S=M9;SC; if [[ $cur == enter ]];then R;echo -e "
  90. Просмотр вывода последней команды оболочки в пейджере
  91. \e[32m map kitty_mod+g show_last_command_output\e[0m
  92. Вы также можете определить дополнительные ярлыки для получения вывода команды.
  93. Например, чтобы получить вывод первой команды на экран функция запуска:
  94. map f1 show_first_command_output_on_screen
  95. Например, следующее открывает вывод в меньшем размере в окне наложения:
  96. map f1 launch --stdin-source=@last_cmd_output --stdin-add-formatting --type=overlay less +G -R
  97. Чтобы получить вывод первой команды на экране,
  98. используйте @first_cmd_output_on_screen.
  99. Чтобы получить результат последнего прыжка для команды
  100. используйте @last_visited_cmd_output
  101. Требуется работа:
  102. https://sw.kovidgoyal.net/kitty/shell-integration/
  103. ";ES;fi;;
  104. #
  105. 10) S=M10;SC;if [[ $cur == enter ]];then R;exit 0;fi;;
  106. esac;POS;done