mKittyConfMouse.sh 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. #!/bin/bash
  2. source "sKitty.sh"
  3. HEAD(){ for (( a=2; a<=41; a++ ))
  4. do
  5. TPUT $a 1
  6. $E "\033[1;35m\xE2\x94\x82 \xE2\x94\x82\033[0m";
  7. done
  8. TPUT 39 1
  9. $E "\033[0m\033[35m+--- Up \xE2\x86\x91 \xE2\x86\x93 Down Select Enter ---------------------------------------------------+";
  10. MARK;TPUT 1 1
  11. $E "$c";UNMARK;}
  12. i=0; CLEAR; CIVIS;NULL=/dev/null
  13. # 32 это расстояние сверху и 48 это расстояние слева
  14. FOOT(){ MARK;TPUT 42 1
  15. $E "$c";UNMARK;}
  16. # это управляет кнопками ввер/хвниз
  17. i=0; CLEAR; CIVIS;NULL=/dev/null
  18. #
  19. M0(){ TPUT 3 3; $e " Скрыть курсор мыши после количества секунд \e[32mmouse_hide_wait \e[0m";}
  20. M1(){ TPUT 4 3; $e " Цвет выделения URL-адресов \e[32murl_color \e[0m";}
  21. M2(){ TPUT 5 3; $e " Cтиль выделения URL-адресов \e[32murl_style \e[0m";}
  22. M3(){ TPUT 6 3; $e " Программа, которой открываются URL-адреса \e[32mopen_url_with \e[0m";}
  23. M4(){ TPUT 7 3; $e " Обнаружение URL-адресов под мышью \e[32mdetect_urls \e[0m";}
  24. M5(){ TPUT 8 3; $e " Дополнительные символы, которые запрещены \e[32murl_excluded_characters \e[0m";}
  25. M6(){ TPUT 9 3; $e " Копировать в буфер обмена / частный буфер \e[32mcopy_on_select no \e[0m";}
  26. M7(){ TPUT 10 3; $e " Список действий, при вставке текста \e[32mpaste_actions \e[0m";}
  27. M8(){ TPUT 11 3; $e " Удалять пробелы в конце / при копировании \e[32mstrip_trailing_spaces never \e[0m";}
  28. M9(){ TPUT 12 3; $e " Символы, часть слова при двойном щелчке \e[32mselect_by_word_characters \e[0m";}
  29. M10(){ TPUT 13 3; $e " Интервал между последовательными кликами \e[32mclick_interval \e[0m";}
  30. M11(){ TPUT 14 3; $e " Установите активное окно в окно под мышью \e[32mfocus_follows_mouse no \e[0m";}
  31. M12(){ TPUT 15 3; $e " Форма указателя мыши \e[32mpointer_shape_when_grabbed \e[0m";}
  32. M13(){ TPUT 16 3; $e " Форма указателя мыши по умолчанию \e[32mdefault_pointer_shape \e[0m";}
  33. M14(){ TPUT 17 3; $e " Форма указателя мыши по умолчанию \e[32mpointer_shape_when_dragging beam \e[0m";}
  34. M15(){ TPUT 18 3; $e " Действия мыши \e[32mMouse actions \e[0m";}
  35. M16(){ TPUT 19 3; $e " Вы можете удалить все действия мыши \e[32mclear_all_mouse_actions \e[0m";}
  36. M17(){ TPUT 20 3; $e " Сначала проверьте выбор, ничего не делайте \e[32mmouse_map left click \e[0m";}
  37. M18(){ TPUT 21 3; $e " щелчок захвачен, разблокирован \e[32mmouse_map shift+left \e[0m";}
  38. M19(){ TPUT 22 3; $e " версия, основанная на простом клике \e[32mmouse_map ctrl+shift+left \e[0m";}
  39. M20(){ TPUT 23 3; $e " Предотвратите отправку этого события \e[32mmouse_map ctrl+shift+left \e[0m";}
  40. M21(){ TPUT 24 3; $e " Начать выделение текста \e[32mmouse_map middle \e[0m";}
  41. M22(){ TPUT 25 3; $e " Начните выделять текст в прямоугольнике \e[32mmouse_map left \e[0m";}
  42. M23(){ TPUT 26 3; $e " Выберите слово \e[32mmouse_map ctrl+alt+left \e[0m";}
  43. M24(){ TPUT 27 3; $e " Выберите линию \e[32mmouse_map left doublepress \e[0m";}
  44. M25(){ TPUT 28 3; $e " Выбрать всю линию Выделить линию из точки \e[32mmouse_map left triplepress \e[0m";}
  45. M26(){ TPUT 29 3; $e " Выбрать от точки, в которой щелкнули \e[32mmouse_map ctrl+alt+left \e[0m";}
  46. M27(){ TPUT 30 3; $e " чтобы перемещался только конец выделения \e[32mmouse_map right press ungrabbed \e[0m";}
  47. M28(){ TPUT 31 3; $e " Начинайте выделять текст когда он захвачен \e[32mmouse_map shift+middle \e[0m";}
  48. M29(){ TPUT 32 3; $e " Начните выделять текст в прямоугольнике \e[32mmouse_map shift+left press \e[0m";}
  49. M30(){ TPUT 33 3; $e " Выберите слово, даже если его схватили \e[32mmouse_map ctrl+shift+alt+left \e[0m";}
  50. M31(){ TPUT 34 3; $e " Выберите линию, даже когда она захвачена \e[32mmouse_map shift+left doublepress \e[0m";}
  51. M32(){ TPUT 35 3; $e " Выбрать линию из точки даже при захвате \e[32mmouse_map shift+left triplepress \e[0m";}
  52. M33(){ TPUT 36 3; $e " Выберите от точки, до конца строки \e[32mmouse_map ctrl+shift+alt+left \e[0m";}
  53. M34(){ TPUT 37 3; $e " Показать нажатую команду в пейджере \e[32mmouse_map shift+right press \e[0m";}
  54. M35(){ TPUT 38 3; $e " Для работы требуется \e[32mmouse_map ctrl+shift+right press \e[0m";}
  55. #
  56. M36(){ TPUT 40 3; $e " \e[32mExit \033[0m";}
  57. LM=36
  58. MENU(){ for each in $(seq 0 $LM);do M${each};done;}
  59. POS(){ if [[ $cur == up ]];then ((i--));fi
  60. if [[ $cur == dn ]];then ((i++));fi
  61. if [[ $i -lt 0 ]];then i=$LM;fi
  62. if [[ $i -gt $LM ]];then i=0;fi;}
  63. REFRESH(){ after=$((i+1)); before=$((i-1))
  64. if [[ $before -lt 0 ]];then before=$LM;fi
  65. if [[ $after -gt $LM ]];then after=0;fi
  66. if [[ $j -lt $i ]];then UNMARK;M$before;else UNMARK;M$after;fi
  67. if [[ $after -eq 0 ]] || [ $before -eq $LM ];then
  68. UNMARK; M$before; M$after;fi;j=$i;UNMARK;M$before;M$after;}
  69. INIT(){ R;HEAD;FOOT;MENU;}
  70. SC(){ REFRESH;MARK;$S;$b;cur=`ARROW`;}
  71. # Функция возвращения в меню
  72. ES(){ MARK;$e " ENTER = main menu ";$b;read;INIT;};INIT
  73. while [[ "$O" != " " ]]; do case $i in
  74. 0) S=M0;SC; if [[ $cur == enter ]];then R;echo -e "
  75. Скрыть курсор мыши после указанного количества секунд, в течение которого мышь
  76. не используется. Установите на ноль, чтобы отключить скрытие курсора мыши.
  77. Установите отрицательное значение, чтобы сразу скрыть курсор мыши при вводе
  78. текста. По умолчанию отключено в macOS, так как заставить его надежно работать
  79. с постоянно меняющимся морем ошибок,
  80. которым является Cocoa, требует слишком много усилий.
  81. \e[32m mouse_hide_wait 3.0\e[0m";ES;fi;;
  82. 1) S=M1;SC; if [[ $cur == enter ]];then R;echo -e "\e[32m url_color #0087bd\e[0m";ES;fi;;
  83. 2) S=M2;SC; if [[ $cur == enter ]];then R;echo -e " Цвет и стиль выделения URL-адресов при наведении курсора мыши.
  84. url_style может быть одним из следующих:
  85. \e[32m url_style\e[36m none \e[0mнет
  86. \e[36m straight \e[0mпрямой
  87. \e[36m double \e[0mдвойной
  88. \e[36m curly \e[0mфигурный
  89. \e[36m dotted \e[0mпунктирный
  90. \e[36m dashed \e[0mпунктирный
  91. ";ES;fi;;
  92. 3) S=M3;SC; if [[ $cur == enter ]];then R;echo -e " Программа, с помощью которой открываются URL-адреса, на которые нажимают.
  93. Специальное значение default означает использование обработчика URL по умолчанию
  94. операционной системы (open в macOS и xdg-open в Linux).
  95. url_prefixes
  96. file ftp ftps gemini git gopher http https irc ircs kitty mailto news sftp ssh
  97. Набор префиксов URL для поиска при обнаружении URL под курсором мыши.
  98. \e[32m open_url_with default\e[0m";ES;fi;;
  99. 4) S=M4;SC; if [[ $cur == enter ]];then R;echo -e " Обнаруженные URL-адреса выделяются подчеркиванием,
  100. и курсор мыши становится над рукой.
  101. Даже если этот параметр отключен, URL-адреса по-прежнему доступны для кликов.
  102. \e[32m detect_urls yes\e[0m";ES;fi;;
  103. 5) S=M5;SC; if [[ $cur == enter ]];then R;echo -e " Дополнительные символы, которые должны быть запрещены в URL-адресах
  104. при обнаружении URL-адресов под курсором мыши.
  105. По умолчанию все допустимые символы в URL-адресах разрешены.
  106. \e[32m url_excluded_characters\e[0m";ES;fi;;
  107. 6) S=M6;SC; if [[ $cur == enter ]];then R;echo -e " Копировать в буфер обмена или частный буфер при выборе.
  108. Если этот параметр установлен в буфер обмена, простое выделение текста
  109. с помощью мыши приведет к тому, что текст будет скопирован в буфер обмена.
  110. Полезно на таких платформах, macOS, в которых нет концепции основного выбора.
  111. Вместо этого вы можете указать имя, такое как a1, для копирования в личный
  112. буфер kitty. Сопоставьте ярлык с действием paste_from_buffer для вставки из
  113. этого частного буфера. Например: сдвиг карты+cmd+v paste_from_buffer a1
  114. Обратите внимание, что копирование в буфер обмена является угрозой безопасности,
  115. так как все программы, в том числе веб-сайты, открытые в вашем браузере,
  116. могут читать содержимое системного буфера обмена.
  117. \e[32m copy_on_select no\e[0m";ES;fi;;
  118. 7) S=M7;SC; if [[ $cur == enter ]];then R;echo -e " Список действий, разделенных запятыми,
  119. которые необходимо выполнить при вставке текста в терминал. Возможности:
  120. quote-urls-at-prompt::
  121. Если вставляемый текст является URL-адресом, курсор находится в командной строке,
  122. автоматически укажите URL-адрес в кавычках
  123. (требуется https://sw.kovidgoyal.net/kitty/shell-integration/).
  124. confirm:
  125. Подтвердите вставку, если режим вставки в квадратных скобках не активен
  126. или вставляется большой объем текста.
  127. filter:
  128. Запустите функцию filter_paste() из файла paste-actions.py в каталог конфигурации
  129. kitty во вставленном тексте. Текст,
  130. возвращаемый функцией, будет фактически вставлен.
  131. \e[32m paste_actions quote-urls-at-prompt\e[0m";ES;fi;;
  132. 8) S=M8;SC; if [[ $cur == enter ]];then R;echo -e "
  133. Удалять пробелы в конце строк при копировании в буфер обмена.
  134. Значение smart будет делать это при использовании обычных выделений,
  135. но не прямоугольных выделений всегда всегда будет делать это.
  136. \e[32m strip_trailing_spaces never\e[0m";ES;fi;;
  137. 9) S=M9;SC; if [[ $cur == enter ]];then R;echo -e "
  138. Символы считаются частью слова при двойном щелчке.
  139. В дополнение к этим символам любой символ,
  140. помеченный как будет совпадать буквенно-цифровой символ в базе данных Unicode.
  141. \e[32m select_by_word_characters @ - . /_~ ? & = % + # \e[0m";ES;fi;;
  142. 10) S=M10;SC;if [[ $cur == enter ]];then R;echo -e "
  143. Интервал между последовательными кликами для обнаружения двойного/тройного
  144. клика (в секундах). Отрицательные числа будут использовать систему по умолчанию
  145. вместо этого, если доступно, или вернуться к 0,5.
  146. \e[32m click_interval -1.0\e[0m";ES;fi;;
  147. 11) S=M11;SC;if [[ $cur == enter ]];then R;echo -e "
  148. Установите активное окно в окно под мышью при перемещении мыши
  149. \e[32m focus_follows_mouse no\e[0m";ES;fi;;
  150. 12) S=M12;SC;if [[ $cur == enter ]];then R;echo -e "
  151. Форма указателя мыши, когда программа, запущенная в терминале, захватывает мышь.
  152. Допустимые значения:\e[32m arrow \e[0mстрелка
  153. \e[32m beam \e[0mлуч
  154. \e[32m hand \e[0mрука
  155. \e[32m mpointer_shape_when_grabbed arrow\e[0m";ES;fi;;
  156. 13) S=M13;SC;if [[ $cur == enter ]];then R;echo -e " Форма указателя мыши по умолчанию. Допустимые значения:\e[32m arrow \e[0mстрелка
  157. \e[32m beam \e[0mлуч
  158. \e[32m hand \e[0mрука
  159. \e[32m default_pointer_shape beam\e[0m";ES;fi;;
  160. 14) S=M14;SC;if [[ $cur == enter ]];then R;echo -e "
  161. Форма указателя мыши по умолчанию при перетаскивании по тексту.
  162. Допустимые значения:\e[32m arrow \e[0mстрелка
  163. \e[32m beam \e[0mлуч
  164. \e[32m hand \e[0mрука
  165. \e[32m pointer_shape_when_dragging beam\e[0m";ES;fi;;
  166. 15) S=M15;SC;if [[ $cur == enter ]];then R;echo -e "
  167. Действия мыши\e[32m Mouse actions\e[0m
  168. Кнопки мыши можно переназначить для выполнения произвольных действий.
  169. синтаксис для этого:
  170. .. code-block:: none
  171. mouse_map button-name event-type режимы действие Где
  172. 'button-name' является одним из 'left', 'middle', 'right' или 'b1 ... b8'
  173. с добавленными модификаторами клавиатуры, например:
  174. 'ctrl+shift+left' относится к удержанию клавиш Ctrl+Shift во время
  175. щелчком левой кнопки мыши. Число 'b1 ... b8' можно использоваться для обозначения
  176. до восьми кнопок на мыши: 'event-type' is one 'press', 'release', 'doublepress',
  177. 'triplepress', 'click' and 'doubleclick' 'modes' указывает, выполняется ли
  178. действие при захвате мыши программой, работающей в терминале, или нет. Он может
  179. иметь один или больше или значения 'grabbed,ungrabbed' 'grabbed' относится к
  180. когда программа, запущенная в терминале, запросила мышь События. Обратите
  181. внимание, что события щелчка и двойного щелчка имеют задержку click_interval для
  182. устранения неоднозначности двойных и тройных нажатий. Вы можете запустить kitty с
  183. параметром командной строки kitty --debug-input, чтобы увидеть события мыши.
  184. См. встроенные действия ниже, чтобы понять, что возможно. Если вы хотите отменить
  185. сопоставление действия, сопоставьте его с 'no-op'. Например, чтобы отключить
  186. открытие URL-адресов простым кликом: mouse_map щелкнуть левой кнопкой мыши без
  187. захвата .. примечание:
  188. После того, как выделение началось, отпускание кнопки, которая его запустила,
  189. автоматически завершить его, и событие выпуска не будет отправлено.
  190. ";ES;fi;;
  191. 16) S=M16;SC;if [[ $cur == enter ]];then R;echo -e "
  192. Вы можете попросить kitty удалить все действия мыши, замеченные до этого момента.
  193. Полезно, например, для удаления действий мыши по умолчанию.
  194. Нажмите на ссылку под мышкой или переместите курсор
  195. \e[32m clear_all_mouse_actions no\e[0m";ES;fi;;
  196. 17) S=M17;SC;if [[ $cur == enter ]];then R;echo -e "
  197. Сначала проверьте выбор и, если он существует, ничего не делайте.
  198. Затем проверьте наличие ссылки под курсором мыши и, если она существует, нажмите
  199. Это. Наконец, проверьте, произошел ли щелчок в текущей подсказке оболочки,
  200. и если да, переместите курсор в место щелчка.
  201. Примечание что для этого требуется интеграция с оболочкой.
  202. Щелкните ссылку под мышью или переместите курсор даже при захвате
  203. \e[32m mouse_map left click ungrabbed mouse_handle_click selection link prompt\e[0m
  204. ";ES;fi;;
  205. 18) S=M18;SC;if [[ $cur == enter ]];then R;echo -e "
  206. щелчок захвачен, разблокирован mouse_handle_click ссылка выбора ссылки
  207. То же, что и выше, за исключением того, что действие выполняется,
  208. даже когда мышь захватывается программой, работающей в терминале.
  209. Щелкните ссылку под курсором мыши
  210. \e[32m mouse_map shift+left\e[0m";ES;fi;;
  211. 19) S=M19;SC;if [[ $cur == enter ]];then R;echo -e "
  212. Вариант с ctrl+shift присутствует, потому что версия, основанная на простом
  213. клике, имеет неизбежную задержку click_interval, чтобы отличить клики от
  214. двойных кликов. Отменить событие нажатия для клика по ссылке
  215. \e[32m release grabbed,ungrabbed mouse_handle_click link\e[0m";ES;fi;;
  216. 20) S=M20;SC;if [[ $cur == enter ]];then R;echo -e "
  217. Предотвратите отправку этого события нажатия программе, захватившей мышь,
  218. поскольку соответствующее событие освобождения используется для открытия
  219. URL-адреса. Вставить из основного выделения
  220. \e[32m mouse_map ctrl+shift+left press grabbed discard_event\e[0m";ES;fi;;
  221. 21) S=M21;SC;if [[ $cur == enter ]];then R;echo -e " Начать выделение текста
  222. \e[32m mouse_map middle release ungrabbed paste_from_selection\e[0m";ES;fi;;
  223. 22) S=M22;SC;if [[ $cur == enter ]];then R;echo -e " Начните выделять текст в прямоугольнике
  224. \e[32m mouse_map left press ungrabbed mouse_selection normal\e[0m";ES;fi;;
  225. 23) S=M23;SC;if [[ $cur == enter ]];then R;echo -e " Выберите слово:
  226. \e[32m mouse_map ctrl+alt+left press ungrabbed mouse_selection rectangle\e[0m";ES;fi;;
  227. 24) S=M24;SC;if [[ $cur == enter ]];then R;echo -e " Выберите линию:
  228. \e[32mmouse_map left doublepress ungrabbed mouse_selection word \e[0m";ES;fi;;
  229. 25) S=M25;SC;if [[ $cur == enter ]];then R;echo -e " Выбрать всю линию Выделить линию из точки
  230. \e[32m mouse_map left triplepress ungrabbed mouse_selection line\e[0m";ES;fi;;
  231. 26) S=M26;SC;if [[ $cur == enter ]];then R;echo -e " Выбрать от точки, в которой щелкнули, до конца строки Расширить текущий выбор
  232. \e[32m mouse_map ctrl+alt+left triplepress ungrabbed mouse_selection line_from_point\e[0m";ES;fi;;
  233. 27) S=M27;SC;if [[ $cur == enter ]];then R;echo -e "
  234. Если вы хотите, чтобы перемещался только конец выделения вместо ближайшей границы,
  235. используйте move-end вместо extend.
  236. Вставить из основного выделения даже при захвате
  237. \e[32m mouse_map right press ungrabbed mouse_selection extend\e[0m";ES;fi;;
  238. 28) S=M28;SC;if [[ $cur == enter ]];then R;echo -e " Начинайте выделять текст, даже когда он захвачен
  239. \e[32m mouse_map shift+middle release ungrabbed,grabbed paste_selection\e[0m
  240. \e[32m mouse_map shift+middle press grabbed discard_event\e[0m";ES;fi;;
  241. 29) S=M29;SC;if [[ $cur == enter ]];then R;echo -e " Начните выделять текст в прямоугольнике, даже когда он захвачен
  242. \e[32m mouse_map shift+left press ungrabbed, grabbed mouse_selection normal\e[0m";ES;fi;;
  243. 30) S=M30;SC;if [[ $cur == enter ]];then R;echo -e " Выберите слово, даже если его схватили
  244. \e[32m mouse_map ctrl+shift+alt+left press ungrabbed,grabbed mouse_selection rectangle\e[0m";ES;fi;;
  245. 31) S=M31;SC;if [[ $cur == enter ]];then R;echo -e " Выберите линию, даже когда она захвачена
  246. \e[32m mouse_map shift+left doublepress ungrabbed,grabbed mouse_selection word\e[0m";ES;fi;;
  247. 32) S=M32;SC;if [[ $cur == enter ]];then R;echo -e " Выбрать линию из точки даже при захвате:
  248. \e[32m mouse_map shift+left triplepress ungrabbed,grabbed mouse_selection line\e[0m";ES;fi;;
  249. 33) S=M33;SC;if [[ $cur == enter ]];then R;echo -e "
  250. Выберите от точки, по которой щелкнули, до конца строки.
  251. Расширьте текущий выбор, даже если он был захвачен:
  252. \e[32m mouse_map ctrl+shift+alt+left triplepress ungrabbed,grabbed mouse_selection line_from_point\e[0m";ES;fi;;
  253. 34) S=M34;SC;if [[ $cur == enter ]];then R;echo -e " Показать нажатую команду в пейджере
  254. \e[32m mouse_map shift+right press ungrabbed,grabbed mouse_selection extend\e[0m";ES;fi;;
  255. 35) S=M35;SC;if [[ $cur == enter ]];then R;echo -e " Для работы требуется https: //sw.kovidgoyal.net/kitty/shell-integration/
  256. \e[32m mouse_map ctrl+shift+right press ungrabbed mouse_show_command_output\e[0m";ES;fi;;
  257. #
  258. 36) S=M36;SC;if [[ $cur == enter ]];then R;exit 0;fi;;
  259. esac;POS;done