mKittyConfPerformance.sh 4.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #!/bin/bash
  2. source "sKitty.sh"
  3. HEAD(){ for (( a=2; a<=9; a++ ))
  4. do
  5. TPUT $a 1
  6. $E "\033[1;35m\xE2\x94\x82 \xE2\x94\x82\033[0m";
  7. done
  8. TPUT 3 1
  9. $E "\033[0m\033[35m+- Настройка производительности ------------- Performance tuning ----------------+\033[0m";
  10. TPUT 7 1
  11. $E "\033[0m\033[35m+--- Up \xE2\x86\x91 \xE2\x86\x93 Down Select Enter ---------------------------------------------------+\033[0m";
  12. MARK;TPUT 1 1
  13. $E "$c";UNMARK;}
  14. i=0; CLEAR; CIVIS;NULL=/dev/null
  15. # 32 это расстояние сверху и 48 это расстояние слева
  16. FOOT(){ MARK;TPUT 10 1
  17. $E "$c";UNMARK;}
  18. # это управляет кнопками ввер/хвниз
  19. i=0; CLEAR; CIVIS;NULL=/dev/null
  20. #
  21. M0(){ TPUT 4 3; $e " Задержка обновления экрана \e[32mrepaint_delay \033[0m";}
  22. M1(){ TPUT 5 3; $e " Задержка перед обработкой ввода \e[32minput_delay \033[0m";}
  23. M2(){ TPUT 6 3; $e " Синхронизируйте обновления экрана \e[32msync_to_monitor \033[0m";}
  24. #
  25. M3(){ TPUT 8 3; $e " \e[90mExit \033[0m";}
  26. LM=3
  27. MENU(){ for each in $(seq 0 $LM);do M${each};done;}
  28. POS(){ if [[ $cur == up ]];then ((i--));fi
  29. if [[ $cur == dn ]];then ((i++));fi
  30. if [[ $i -lt 0 ]];then i=$LM;fi
  31. if [[ $i -gt $LM ]];then i=0;fi;}
  32. REFRESH(){ after=$((i+1)); before=$((i-1))
  33. if [[ $before -lt 0 ]];then before=$LM;fi
  34. if [[ $after -gt $LM ]];then after=0;fi
  35. if [[ $j -lt $i ]];then UNMARK;M$before;else UNMARK;M$after;fi
  36. if [[ $after -eq 0 ]] || [ $before -eq $LM ];then
  37. UNMARK; M$before; M$after;fi;j=$i;UNMARK;M$before;M$after;}
  38. INIT(){ R;HEAD;FOOT;MENU;}
  39. SC(){ REFRESH;MARK;$S;$b;cur=`ARROW`;}
  40. # Функция возвращения в меню
  41. ES(){ MARK;$e " ENTER = main menu ";$b;read;INIT;};INIT
  42. while [[ "$O" != " " ]]; do case $i in
  43. 0) S=M0;SC; if [[ $cur == enter ]];then R;echo -e "
  44. Задержка (в миллисекундах) между обновлениями экрана.
  45. Уменьшение его увеличивает количество кадров в секунду (FPS) за счет большей
  46. загрузки ЦП. Значение по умолчанию дает ~100 кадров в секунду, что более чем
  47. достаточно для большинства применений. Обратите внимание, что для фактического
  48. достижения 100 FPS вам необходимо либо установить для sync_to_monitor значение
  49. no, либо использовать монитор с высокой частотой обновления. Кроме того, чтобы
  50. свести к минимуму задержку при наличии ожидающих обработки входных данных,
  51. параметр repaint_delay игнорируется.
  52. \e[32m repaint_delay 10\e[0m";ES;fi;;
  53. 1) S=M1;SC; if [[ $cur == enter ]];then R;echo -e "
  54. Задержка (в миллисекундах) перед обработкой ввода из программы, запущенной в
  55. терминале. Обратите внимание, что его уменьшение повысит скорость отклика, но
  56. также увеличит Использование ЦП и может вызвать мерцание в полноэкранных
  57. программах, которые перерисовывают весь экран в каждом цикле, потому что kitty
  58. настолько быстр, что частичные обновления экрана будут нарисовано.
  59. \e[32m input_delay 3\e[0m";ES;fi;;
  60. 2) S=M2;SC; if [[ $cur == enter ]];then R;echo -e "
  61. Синхронизируйте обновления экрана с частотой обновления монитора.
  62. Это предотвращает разрыв: https://en.wikipedia.org/wiki/Screen_tearing
  63. при прокрутке. Однако он ограничивает скорость рендеринга частотой обновления
  64. вашего монитора. При очень высокой скорости повторения мыши/клавиатуры вы
  65. можете заметить небольшую задержку ввода.
  66. Если это так, установите для этого параметра значение «нет».
  67. \e[32m sync_to_monitor yes\e[0m";ES;fi;;
  68. #
  69. 3) S=M3;SC;if [[ $cur == enter ]];then R;exit 0;fi;;
  70. esac;POS;done