123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311 |
- #!/bin/bash
- source "sKitty.sh"
- HEAD(){ for (( a=2; a<=41; a++ ))
- do
- TPUT $a 1
- $E "\033[1;35m\xE2\x94\x82 \xE2\x94\x82\033[0m";
- done
- TPUT 3 3
- $E "\033[1;36m*** kitty ***\033[90m Эмулятор терминала для художников\033[0m";
- TPUT 4 1
- $E "$d";
- TPUT 11 1
- $E "\e[0m\033[35m+--- \e[90mOпции отладки \e[0m\033[35m------------------------------- \033[1;36mDebugging options \e[0m\033[35m------------+\033[0m";
- TPUT 20 1
- $E "\e[0m\033[35m+--- \e[90mOпции \e[0m\033[35m------------------------------- \033[1;36mOptions \e[0m\033[35m------------+\033[0m";
- TPUT 39 1
- $E "\e[0m\033[35m+--- Up \xE2\x86\x91 \xE2\x86\x93 Down Select Enter ---------------------------------------------------+\033[0m";
- MARK;TPUT 1 1
- $E "$c";UNMARK;}
- i=0; CLEAR; CIVIS;NULL=/dev/null
- # 32 это расстояние сверху и 48 это расстояние слева
- FOOT(){ MARK;TPUT 42 1
- $E "$c";UNMARK;}
- # это управляет кнопками ввер/хвниз
- i=0; CLEAR; CIVIS;NULL=/dev/null
- #
- M0(){ TPUT 5 3; $e " Установка \033[32minstall \033[0m";}
- M1(){ TPUT 6 3; $e " Oбзор \033[32mSynopsis \033[0m";}
- M2(){ TPUT 7 3; $e " Описание \033[32mDescription \033[0m";}
- M3(){ TPUT 8 3; $e " Подробнaя документация ";}
- M4(){ TPUT 9 3; $e " Автор и копирайт \033[32mAuthor end copyright \033[0m";}
- M5(){ TPUT 10 3; $e " Горячие клавиши \033[32mHotkeys \033[0m";}
- #
- M6(){ TPUT 12 3; $e " Текущая версия \033[32m-v --version \033[0m";}
- M7(){ TPUT 13 3; $e " Вывод команд от дочернего процесса, на stdout \033[32m --dump-commands \033[0m";}
- M8(){ TPUT 14 3; $e " Воспроизвести ранее сброшенные команды \033[32m --replay-commands \033[0m";}
- M9(){ TPUT 15 3; $e " Путь к файлу, от дочернего процесса \033[32m --dump-bytes \033[0m";}
- M10(){ TPUT 16 3; $e " Отладка команд рендеринга \033[32m --debug-gl --debug-rendering \033[0m";}
- M11(){ TPUT 17 3; $e " Pаспечатывать ключевые события \033[32m --debug-keyboard \033[0m";}
- M12(){ TPUT 18 3; $e " Информация о запасных шрифтах для символов \033[32m --debug-font-fallback \033[0m";}
- M13(){ TPUT 19 3; $e " Информация о системе и конфигурации \033[32m --debug-config \033[0m";}
- #
- M14(){ TPUT 21 3; $e " Установите часть класса свойства окна \033[32m --class \033[0m";}
- M15(){ TPUT 22 3; $e " Установите часть имени свойства WM_CLASS \033[32m --name \033[0m";}
- M16(){ TPUT 23 3; $e " Установите заголовок окна \033[32m-T --title \033[0m";}
- M17(){ TPUT 24 3; $e " Укажите путь к файлам конфигурации \033[32m-c --config \033[0m";}
- M18(){ TPUT 25 3; $e " Переопределить отдельные параметры конфига \033[32m-o --override \033[0m";}
- M19(){ TPUT 26 3; $e " Перейти в каталог при запуске по умолчанию \033[32m-d --directory \033[0m";}
- M20(){ TPUT 27 3; $e " Отсоедините от управляющего терминала \033[32m --detach \033[0m";}
- M21(){ TPUT 28 3; $e " Путь к файлу, содержащему сеанс запуска \033[32m --session \033[0m";}
- M22(){ TPUT 29 3; $e " Путь к файлу Python \033[32m-w --watcher \033[0m";}
- M23(){ TPUT 30 3; $e " Быть открытым по завершении дочернего процесса\033[32m --hold \033[0m";}
- M24(){ TPUT 31 3; $e " Будет запущен только один экземпляр \033[32m-1 --single-instance \033[0m";}
- M25(){ TPUT 32 3; $e " Cозданию новых окон в первом экземпляре \033[32m --instance-group \033[0m";}
- M26(){ TPUT 33 3; $e " Hе закроется, пока не закрыто окно \033[32m--wait-for-single-instance-window-close \033[0m";}
- M27(){ TPUT 34 3; $e " Cлушать контрольные сообщения \033[32m --listen-on \033[0m";}
- M28(){ TPUT 35 3; $e " Контролируйте, как создается начальное окно \033[32m --start-as \033[0m";}
- M29(){ TPUT 36 3; $e " Фреймворк \033[32m+kitten \033[0m";}
- M30(){ TPUT 37 3; $e " \033[90mКонфигурации \033[36mConfigurations \033[0m";}
- M31(){ TPUT 38 3; $e " \033[32mGrannik Git \033[0m";}
- #
- M32(){ TPUT 40 3; $e " \033[90mExit \033[0m";}
- LM=32
- MENU(){ for each in $(seq 0 $LM);do M${each};done;}
- POS(){ if [[ $cur == up ]];then ((i--));fi
- if [[ $cur == dn ]];then ((i++));fi
- if [[ $i -lt 0 ]];then i=$LM;fi
- if [[ $i -gt $LM ]];then i=0;fi;}
- REFRESH(){ after=$((i+1)); before=$((i-1))
- if [[ $before -lt 0 ]];then before=$LM;fi
- if [[ $after -gt $LM ]];then after=0;fi
- if [[ $j -lt $i ]];then UNMARK;M$before;else UNMARK;M$after;fi
- if [[ $after -eq 0 ]] || [ $before -eq $LM ];then
- UNMARK; M$before; M$after;fi;j=$i;UNMARK;M$before;M$after;}
- INIT(){ R;HEAD;FOOT;MENU;}
- SC(){ REFRESH;MARK;$S;$b;cur=`ARROW`;}
- # Функция возвращения в меню
- ES(){ MARK;$e " ENTER = main menu ";$b;read;INIT;};INIT
- while [[ "$O" != " " ]]; do case $i in
- 0) S=M0;SC;if [[ $cur == enter ]];then R;echo -e "
- Чтобы включить репозиторий программного обеспечения Ubuntu «Universe»,
- воспользуйтесь следующими add-apt-репозиторий команда.
- \e[32m sudo add-apt-repository universe\e[0m
- После добавления нового репозитория в вашу систему выполните команду:
- \e[32m sudo apt update\e[0m
- Метод 1. Вы можете установить исходный код, а также использовать официальный
- репозиторий Ubuntu:
- \e[32m sudo apt install kitty -y\e[0m
- #
- \e[32m sudo apt-get install kitty\e[0m
- #
- Метод 2. из готовых бинарных файлов:
- \e[32m curl -L https://sw.kovidgoyal.net/kitty/installer.sh | sh /dev/stdin\e[0m
- Система установит бинарник в каталог:
- \e[32m ~/.local/kitty.app/bin/\e[0m
- Вы можете просто запустить его, набрав:
- \e[32m ~/.local/kitty.app/bin/kitty\e[0m
- #
- Метод 3.
- Еще один удобный способ установить Kitty – скомпилировать его из исходников.
- Однако потребуются некоторые зависимости, и прежде чем продолжить, убедитесь,
- что у вас есть следующее:
- • python 3.5 или новее
- • harfbuzz 1.5.0 или новее
- • zlib
- • libpng
- • liblcms2
- • gcc
- Исходный код размещен на Github, поэтому клонируйте репозиторий Git, как
- показано далее:
- \e[32m git clone https://github.com/kovidgoyal/kitty\e[0m
- После загрузки перейдите в каталог и выполните следующие команды:
- \e[32m cd kitty\e[0m
- Затем вызовите:
- \e[32m make\e[0m
- После установки вы можете запустить его, вызвав команду:
- \e[32m ./kitty/launcher/kitty\e[0m
- ";ES;fi;;
- 1) S=M1;SC;if [[ $cur == enter ]];then R;echo -e "\e[32m kitty [options] [program-to-run ...]\e[0m";ES;fi;;
- 2) S=M2;SC;if [[ $cur == enter ]];then R;echo -e " Запустите эмулятор терминала: \e[32mkitty\e[0m
- Kitty — это программируемый эмулятор терминала на основе OpenGL.
- Kitty написан на смеси языков программирования C и Python.
- Kitty поддерживает мозаичный режим (тайлинг), TrueColor, лигатуры
- и расширения для работы с клавиатурой и рендеринга изображений.
- kitty — это бесплатный эмулятор терминала с ускорением графического процессора
- с открытым исходным кодом для Linux и macOS,
- ориентированный на производительность и функции.
- Kitty – это кроссплатформенный и многофункциональный эмулятор терминала
- на базе графического процессора, разработанный по лицензии GPL 3.0.
- Он поддерживает графику, изображения, Unicode, истинный цвет, протокол мыши,
- гиперссылки, несколько буферов копирования/вставки и т. д.
- Это легкий эмулятор, которым можно управлять из скриптов,
- приглашения оболочки и через SSH.
- Подобно tilix, kitty представляет собой многофункциональный эмулятор терминала.";ES;fi;;
- 3) S=M3;SC;if [[ $cur == enter ]];then R;echo " https://sw.kovidgoyal.net/kitty/";ES;fi;;
- 4) S=M4;SC;if [[ $cur == enter ]];then R;echo " Kovid Goyal (Ковид Гоял) 2020, Kovid Goyal";ES;fi;;
- #
- 5) S=M5;SC;if [[ $cur == enter ]];then R;echo -e "
- Управление осуществляется с помощью сочетаний клавиш, начинающихся с:
- \e[32mctrl+shift\e[0m
- a
- b
- c
- d
- e
- f
- g
- h
- i
- j
- k
- \e[32m ctrl+shift+l \e[0m Новое окно (разделив по вертикали)
- m
- \e[32m ctrl+shift+n \e[0m Вообще новое окно, сновой разкладкой
- o
- p
- \e[31m q\e[0m Должно быть закрытие окна, но зарезервирована xbindkeys
- r
- s
- \e[32m ctrl+shift+t \e[0m Новая вкладка
- u
- v
- \e[32m ctrl+shift+w \e[0m Закрыть окно
- x
- y
- z
- \e[32m ctrl+shift+page_up \e[0m Прокрутить страницу вверх
- \e[32m ctrl+shift+page_down\e[0m Прокрутить страницу вниз
- \e[32m ctrl+shiftt+enter \e[0m Новое окно (разделив по горизонтали)
- \e[32m ctrl+shift+right \e[0m Следующая вкладка
- \e[32m ctrl+shift+left \e[0m Предидущая вкладка
- \e[32m ctrl+shift+] \e[0m Следующее окно
- \e[32m ctrl+shift+[ \e[0m Предидущее окно
- ";ES;fi;;
- #
- 6) S=M6;SC;if [[ $cur == enter ]];then R;echo -e "\e[32m kitty -v\e[0m
- \e[32m kitty --version\e[0m";ES;fi;;
- 7) S=M7;SC;if [[ $cur == enter ]];then R;echo " Вывод команд, полученных от дочернего процесса, на стандартный вывод.";ES;fi;;
- 8) S=M8;SC;if [[ $cur == enter ]];then R;echo " Воспроизвести ранее сброшенные команды.
- Укажите путь к файлу дампа, ранее созданному командой --dump-commands.
- Вы можете открыть новое окно kitty, чтобы воспроизвести команды с:
- kitty sh -c \"kitty --replay-commands /path/to/dump/file; read\"";ES;fi;;
- 9) S=M9;SC;if [[ $cur == enter ]];then R;echo " Путь к файлу, в котором будут храниться необработанные байты,
- полученные от дочернего процесса";ES;fi;;
- 10) S=M10;SC;if [[ $cur == enter ]];then R;echo " Отладка команд рендеринга.
- Это приведет к тому, что все вызовы OpenGL будут проверять наличие ошибок,
- а не игнорировать их.
- Также выводит различную отладочную информацию образование.
- Полезно при отладке проблем с рендерингом";ES;fi;;
- 11) S=M11;SC;if [[ $cur == enter ]];then R;echo " Эта опция заставит kitty распечатывать ключевые события
- по мере их получения.";ES;fi;;
- 12) S=M12;SC;if [[ $cur == enter ]];then R;echo " Распечатайте информацию о выборе запасных шрифтов для символов,
- отсутствующих в основном шрифте.";ES;fi;;
- 13) S=M13;SC;if [[ $cur == enter ]];then R;echo "Распечатайте информацию о системе и конфигурации kitty";ES;fi;;
- #
- 14) S=M14;SC;if [[ $cur == enter ]];then R;echo " --class <CLS>
- Установите часть класса свойства окна WM_CLASS.
- На Wayland он устанавливает идентификатор приложения. По умолчанию: kitty";ES;fi;;
- 15) S=M15;SC;if [[ $cur == enter ]];then R;echo " --name <NAME>
- Установите часть имени свойства WM_CLASS
- (по умолчанию используется значение из kitty --class)";ES;fi;;
- 16) S=M16;SC;if [[ $cur == enter ]];then R;echo " -T <TITLE> --title <TITLE> Установите заголовок окна.
- Это переопределит любой заголовок, установленный программой,
- работающей внутри kitty. Так что используйте это только в том случае,
- если вы запускаете программу, которая делает не устанавливайте заголовки.
- В сочетании с kitty --session заголовок будет использоваться для всех окон,
- созданных сеансом, которые не устанавливают свои собственные заголовки.";ES;fi;;
- 17) S=M17;SC;if [[ $cur == enter ]];then R;echo " -c <CONFIG> --config <CONFIG> Укажите путь к используемым файлам конфигурации.
- Все файлы конфигурации объединяются во встроенный файл kitty.conf,
- переопределяя встроенные значения.
- Эту опцию можно указать несколько раз, чтобы последовательно прочитать несколько
- файлов конфигурации, которые будут объединены.
- Используйте специальное значение NONE, чтобы не загружать файл конфигурации.
- Если эта опция не указана, файлы конфигурации ищутся в следующем порядке:
- \$XDG_CONFIG_HOME/kitty/kitty.conf
- ~/.config/kitty/kitty.conf
- \$XDG_CONFIG_DIRS/kitty/kitty.conf
- Первый существующий используется в качестве файла конфигурации.
- Если указана переменная среды KITTY_CONFIG_DIRECTORY,
- этот каталог используется всегда, и описанный выше поиск не выполняется.
- Если файл: /etc/xdg/kitty/kitty.conf существует, он объединяется раньше
- (то есть с более низким приоритетом), чем любые файлы конфигурации.
- Его можно использовать для указания общесистемного значения по умолчанию
- для всех пользователей.";ES;fi;;
- 18) S=M18;SC;if [[ $cur == enter ]];then R;echo "--override <OVERRIDE>, -o <OVERRIDE>
- Переопределить отдельные параметры конфигурации, можно указать несколько раз.
- Синтаксис: имя=значение. Например: kitty -o font_size=20";ES;fi;;
- 19) S=M19;SC;if [[ $cur == enter ]];then R;echo " -d <DIRECTORY> --directory <DIRECTORY>
- Перейти в указанный каталог при запуске по умолчанию.";ES;fi;;
- 20) S=M20;SC;if [[ $cur == enter ]];then R;echo " Отсоедините от управляющего терминала, если таковой имеется";ES;fi;;
- 21) S=M21;SC;if [[ $cur == enter ]];then R;echo " --session <SESSION>
- Путь к файлу, содержащему сеанс запуска (вкладки, окна, макет, программы).
- Используйте - для чтения из STDIN. Подробности и пример смотрите в файле README.";ES;fi;;
- 22) S=M22;SC;if [[ $cur == enter ]];then R;echo " -w <WATCHER> --watcher <WATCHER>
- Путь к файлу Python.
- Функции с соответствующими именами в этом файле будут вызываться для различных
- событий, таких как изменение размера окна, фокусировка или закрыто.
- См. раздел о наблюдателях в документации по команде запуска.
- Относительные пути разрешаются относительно каталога конфигурации kitty.
- Обратите внимание, что этот наблюдатель будет добавлен только ко всем изначально
- созданным окнам, а не к новым окнам, созданным после запуска.";ES;fi;;
- 23) S=M23;SC;if [[ $cur == enter ]];then R;echo " Оставаться открытым после завершения дочернего процесса.
- Обратите внимание, что это влияет только на первое окно.
- Вы можете выйти, используя ярлык закрытия окна или Ctrl + d.";ES;fi;;
- 24) S=M24;SC;if [[ $cur == enter ]];then R;echo " Если указано, будет запущен только один экземпляр kitty.
- Новые вызовы вместо этого создадут новое окно верхнего уровня
- в существующем экземпляре котенка.
- Это позволяет kitty совместно использовать один кеш спрайтов
- на графическом процессоре, а также сокращает время запуска.
- Вы также можете иметь отдельные группы экземпляров kitty,
- используя опцию kitty --instance-group";ES;fi;;
- 25) S=M25;SC;if [[ $cur == enter ]];then R;echo " --instance-group <INSTANCE_GROUP>
- Используется в сочетании с опцией kitty --single-instance.
- Все вызовы kitty с одним и тем же котенком --instance-group приведут к созданию
- новых окон в первом экземпляре kitty в этой группе.";ES;fi;;
- 26) S=M26;SC;if [[ $cur == enter ]];then R;echo " Обычно при использовании --single-instance kitty открывает новое окно
- в существующем экземпляре и немедленно выходит.
- С этой опцией он не закроется, пока не будет закрыто только что открытое окно.
- Обратите внимание, что если предыдущий экземпляр не найден,
- то kitty все равно будет ждать, независимо от этой опции.";ES;fi;;
- 27) S=M27;SC;if [[ $cur == enter ]];then R;echo " --listen-on <LISTEN_ON>
- Скажите kitty слушать по указанному адресу контрольные сообщения.
- Например: kitty --listen-on=unix:/tmp/mykitty
- или: kitty --listen-on=tcp:local‐ хост: 12345.
- В системах Linux вы также можете использовать абстрактные сокеты UNIX,
- не связанные с файлом, например: kitty --listen-on=unix:@mykitty.
- Переменные окружающей среды в настройке расширяются, а относительные пути
- разрешаются относительно временного каталога.
- Чтобы управлять kitty, вы можете отправьте ему команды с помощью kitty @,
- используя опцию kitty @ --to чтобы указать этот адрес.
- Эта опция будет игнорироваться, если вы не установите allow_remote_control
- на yes в kitty.conf.
- Обратите внимание, что если вы запускаете kitty @ в окне kitty,
- нет необходимости указывать параметр --to, так как он читается автоматически
- из окружающей среды. Для сокетов UNIX это также можно указать в kitty.conf";ES;fi;;
- 28) S=M28;SC;if [[ $cur == enter ]];then R;echo " --start-as <START_AS>
- Контролируйте, как создается начальное окно kitty.
- По умолчанию:
- нормальныe варианты: полноэкранный fullscreen
- развернутый maximized
- свернутый minimized
- обычный normal
- ";ES;fi;;
- 29) S=M29;SC;if [[ $cur == enter ]];then R;echo -e "
- В kitty есть фреймворк для создания подпрограмм, называемых kittens:
- \e[32m kitty +kitten icat image.jpeg \e[0m показать изображение в терминале
- (требуется imagemagick)
- \e[32m kitty +kitten diff file1 file2\e[0m показать diff двух файлов
- \e[32m kitty +kitten clipboard \e[0m этот kitten позволяет работать с буфером обмена
- даже через ssh
- ";ES;fi;;
- #
- 30) S=M30;SC;if [[ $cur == enter ]];then R;./mKittyConf.sh;ES;fi;;
- 31) S=M31;SC;if [[ $cur == enter ]];then R;echo -e "
- mKitty описание программы терминала. kitty Эмулятор терминала для художников.
- \e[36m
- https://asciinema.org/a/493790
- https://try.gitea.io/Grannik/mKitty
- https://framagit.org/GrannikOleg/mkitty
- https://bitbucket.org/grannikoleg/mkitty
- https://codeberg.org/Grannik/mKitty
- https://notabug.org/Grannikoleg/mKitty
- https://sourceforge.net/projects/mkitty/files/
- https://gitlab.com/grannik/mkitty
- https://github.com/GrannikOleg/mkitty
- \e[36m
- ";ES;fi;;
- #
- 32) S=M32;SC;if [[ $cur == enter ]];then R;exit 0;fi;;
- esac;POS;done
|