window resize fixes
							parent
							
								
									24bdbe861c
								
							
						
					
					
						commit
						68fdeefcca
					
				
							
								
								
									
										101
									
								
								bashtop
								
								
								
								
							
							
						
						
									
										101
									
								
								bashtop
								
								
								
								
							|  | @ -21,7 +21,7 @@ banner=( | ||||||
| "██╔══██╗██╔══██║╚════██║██╔══██║   ██║   ██║   ██║██╔═══╝ " | "██╔══██╗██╔══██║╚════██║██╔══██║   ██║   ██║   ██║██╔═══╝ " | ||||||
| "██████╔╝██║  ██║███████║██║  ██║   ██║   ╚██████╔╝██║     " | "██████╔╝██║  ██║███████║██║  ██║   ██║   ╚██████╔╝██║     " | ||||||
| "╚═════╝ ╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝   ╚═╝    ╚═════╝ ╚═╝     ") | "╚═════╝ ╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝   ╚═╝    ╚═════╝ ╚═╝     ") | ||||||
| declare version="0.6.2" | declare version="0.6.5" | ||||||
| declare banner_width=${#banner[0]} | declare banner_width=${#banner[0]} | ||||||
| banner_colors=("#E62525" "#CD2121" "#B31D1D" "#9A1919" "#801414") | banner_colors=("#E62525" "#CD2121" "#B31D1D" "#9A1919" "#801414") | ||||||
| 
 | 
 | ||||||
|  | @ -93,16 +93,16 @@ declare -a sorting=( "pid" "program" "arguments" "threads" "user" "memory" "cpu | ||||||
| declare -a pid_history detail_graph detail_history detail_mem_history | declare -a pid_history detail_graph detail_history detail_mem_history | ||||||
| declare time_left timestamp_start timestamp_end timestamp_input_start timestamp_input_end time_string mem_out proc_misc prev_screen pause_screen filter input_to_filter | declare time_left timestamp_start timestamp_end timestamp_input_start timestamp_input_end time_string mem_out proc_misc prev_screen pause_screen filter input_to_filter | ||||||
| declare no_epoch proc_det proc_misc2 sleeping=0 detail_mem_graph proc_det2 proc_out | declare no_epoch proc_det proc_misc2 sleeping=0 detail_mem_graph proc_det2 proc_out | ||||||
| declare esc_character tab backspace update_sec saved_key sleepy late_update skip_process_draw | declare esc_character tab backspace update_sec saved_key sleepy late_update skip_process_draw winches | ||||||
| declare -a disks_free disks_total disks_name disks_free_percent | declare -a disks_free disks_total disks_name disks_free_percent | ||||||
| printf -v esc_character "\u1b" | printf -v esc_character "\u1b" | ||||||
| printf -v tab "\u09" | printf -v tab "\u09" | ||||||
| printf -v backspace "\u7F" | printf -v backspace "\u7F" | ||||||
| printf -v enter_key "\x0a" | printf -v enter_key "\x0a" | ||||||
| 
 | 
 | ||||||
| tty_width="$(tput cols)" | read tty_height tty_width < <(stty size) | ||||||
| tty_height="$(tput lines)" |  | ||||||
| 
 | 
 | ||||||
|  | #* Symbols for graphs | ||||||
| declare -a graph_symbol | declare -a graph_symbol | ||||||
| graph_symbol=(" " "⡀" "⣀" "⣄" "⣤" "⣦" "⣴" "⣶" "⣷" "⣾" "⣿") | graph_symbol=(" " "⡀" "⣀" "⣄" "⣤" "⣦" "⣴" "⣶" "⣷" "⣾" "⣿") | ||||||
| graph_symbol+=( " " "⣿" "⢿" "⡿" "⠿" "⠻" "⠟"  "⠛" "⠙" "⠉" "⠈") | graph_symbol+=( " " "⣿" "⢿" "⡿" "⠿" "⠻" "⠟"  "⠛" "⠙" "⠉" "⠈") | ||||||
|  | @ -339,9 +339,13 @@ init_() { #? Collect needed information and set options before startig main loop | ||||||
| 		unset 'proc[reverse]' | 		unset 'proc[reverse]' | ||||||
| 	fi | 	fi | ||||||
| 
 | 
 | ||||||
|  | 	#* Wait for resize if terminal size is smaller then 80x25 | ||||||
|  | 	if (($tty_width<80 | $tty_height<25)); then resized; fi | ||||||
|  | 	 | ||||||
| 	#* Calculate sizes of boxes | 	#* Calculate sizes of boxes | ||||||
| 	calc_sizes | 	calc_sizes | ||||||
| 	 | 	 | ||||||
|  | 
 | ||||||
| 	#* Call init for processes data collection | 	#* Call init for processes data collection | ||||||
| 	proc[selected]=0 | 	proc[selected]=0 | ||||||
| 	proc[page]=1 | 	proc[page]=1 | ||||||
|  | @ -382,26 +386,30 @@ traperr() { #? Function for reporting error line numbers | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| resized() { #? Get new terminal size if terminal is resized | resized() { #? Get new terminal size if terminal is resized | ||||||
| 	while (( tty_width!=$(tput cols) | tty_height!=$(tput lines) )); do |  | ||||||
| 	tty_width="$(tput cols)" |  | ||||||
| 	tty_height="$(tput lines)" |  | ||||||
| 	resized=1 | 	resized=1 | ||||||
| 	sleep 0.1 | 	unset winches | ||||||
|  | 	while ((++winches<5)); do | ||||||
|  | 		read tty_height tty_width < <(stty size) | ||||||
|  | 		if (($tty_width<80 | $tty_height<25)); then  | ||||||
|  | 			size_error_msg | ||||||
|  | 			winches=0 | ||||||
|  | 		else | ||||||
|  | 			create_box -w 30 -h 3 -c 1 -l 1 -lc "#EE3355" -title "resizing" | ||||||
|  | 			print -jc 28 "New size: ${tty_height}x${tty_width}" | ||||||
|  | 			sleep 0.2 | ||||||
|  | 			if [[ $(stty size) != "$tty_height $tty_width" ]]; then winches=0; fi | ||||||
|  | 		fi | ||||||
| 	done | 	done | ||||||
| 
 |  | ||||||
| 	if ((tty_width<80 | tty_height<25)); then size_error="true"; else size_error="false"; fi |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| size_error_msg() { #? Shows error message if terminal size is below 80x25 | size_error_msg() { #? Shows error message if terminal size is below 80x25 | ||||||
| 	local width=$tty_width | 	local width=$tty_width | ||||||
| 	local height=$tty_height | 	local height=$tty_height | ||||||
| 	tput clear | 	tput clear | ||||||
| 	create_box -full -title "warning" | 	create_box -full -lc "#EE3355" -title "resize window" | ||||||
| 	print -rs -m $((tty_height/2-2)) 2 | 	print -rs -m $((tty_height/2-1)) 2 -fg cc -c -l 11 "Current size: " -fg dd3050 -d 1 -c "${tty_height}x${tty_width}" | ||||||
| 	print -c -fg cc -b "Resize window!" | 	print -d 1 -fg cc -c -l 15 "Need to be atleast:" -fg 30dd50 -d 1 -c "80x25" | ||||||
| 	print -d 1 -c "Current size: ${tty_height}x${tty_width}" | 	while [[ $(stty size) == "$tty_height $tty_width" ]]; do sleep 0.2; done | ||||||
| 	print -d 1 -c "Need to be atleast: 80x25" |  | ||||||
| 	while (( width==tty_width & height==tty_height )); do sleep 0.5 ; done |  | ||||||
| 	 | 	 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -518,7 +526,7 @@ sort_array_int() {	#? Copy and sort an array of integers from largest to smalles | ||||||
| 	out_arr=("${array[@]}")	 | 	out_arr=("${array[@]}")	 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| subscript() { #? Convert a integer to a string of subscript numbers | subscript() { #? Convert an integer to a string of subscript numbers | ||||||
| 	local i out int=$1 | 	local i out int=$1 | ||||||
| 	for((i=0;i<${#int};i++)); do | 	for((i=0;i<${#int};i++)); do | ||||||
| 		out="${out}${subscript[${int:$i:1}]}" | 		out="${out}${subscript[${int:$i:1}]}" | ||||||
|  | @ -765,7 +773,7 @@ create_box() { #? Draw a box with an optional titlebar and title at given locati | ||||||
| 		print -v box_out -m $line $((col+2)) -t "┤" -fg ee -b -t "$title" -rs -fg ${line_color:-66} -t "├" | 		print -v box_out -m $line $((col+2)) -t "┤" -fg ee -b -t "$title" -rs -fg ${line_color:-66} -t "├" | ||||||
| 	fi | 	fi | ||||||
| 
 | 
 | ||||||
| 	print -v box_out -m $((line+1)) $((col+1)) -rs | 	print -v box_out -rs -m $((line+1)) $((col+1)) | ||||||
| 
 | 
 | ||||||
| 	if [[ -z $ext_var ]]; then echo -en "${box_out}"; fi	 | 	if [[ -z $ext_var ]]; then echo -en "${box_out}"; fi	 | ||||||
| 	 | 	 | ||||||
|  | @ -1529,21 +1537,22 @@ collect_processes() { #? Collect process information and calculate accurate cpu | ||||||
| 				if [[ ${pid} == "${proc[detailed_pid]}" ]]; then | 				if [[ ${pid} == "${proc[detailed_pid]}" ]]; then | ||||||
| 					if [[ -z ${proc[detailed_name]} ]]; then | 					if [[ -z ${proc[detailed_name]} ]]; then | ||||||
| 						local det_array get_mem | 						local det_array get_mem | ||||||
| 						read -r -d '' proc[detailed_name] </proc/${pid}/comm ||true | 						read -r proc[detailed_name] </proc/${pid}/comm ||true | ||||||
| 						proc[detailed_cmd]="$(tr '\000' ' ' </proc/${pid}/cmdline)"						 | 						proc[detailed_cmd]="$(tr '\000' ' ' </proc/${pid}/cmdline)"						 | ||||||
| 						proc[detailed_name]="${proc[detailed_name]::15}" | 						proc[detailed_name]="${proc[detailed_name]::15}" | ||||||
| 						proc[detailed_user]="${work_array[-3]}" |  | ||||||
| 						proc[detailed_threads]="${work_array[-4]}" | 						proc[detailed_threads]="${work_array[-4]}" | ||||||
| 						det_array=($(ps -o etime,ppid --no-headers -p $pid || true)) | 						det_array=($(ps -o etime,ppid,euser:15 --no-headers -p $pid || true)) | ||||||
| 						proc[detailed_runtime]="${det_array[0]}"	 | 						proc[detailed_runtime]="${det_array[0]}"	 | ||||||
| 						proc[detailed_parent_pid]="${det_array[1]}" | 						proc[detailed_parent_pid]="${det_array[1]}" | ||||||
|  | 						proc[detailed_user]="${det_array[*]:2}" | ||||||
| 						proc[detailed_parent_name]="$(ps -o comm --no-headers -p ${det_array[1]} || true)" | 						proc[detailed_parent_name]="$(ps -o comm --no-headers -p ${det_array[1]} || true)" | ||||||
| 						get_mem=1 | 						get_mem=1 | ||||||
| 					fi | 					fi | ||||||
| 					proc[detailed_cpu]="${cpu_percent_string// /}" | 					proc[detailed_cpu]="${cpu_percent_string// /}" | ||||||
| 					proc[detailed_cpu_int]="${cpu_int}" | 					proc[detailed_cpu_int]="${cpu_int}" | ||||||
| 
 | 
 | ||||||
| 					if [[ ${proc[detailed_mem]} != "${work_array[-2]}" || -n $get_mem ]]; then | 					if [[ ${proc[detailed_mem]} != "${work_array[-2]}" || -n $get_mem ]] || ((++proc[detailed_mem_count]>5)); then | ||||||
|  | 						proc[detailed_mem_count]=0 | ||||||
| 						proc[detailed_mem]="${work_array[-2]}" | 						proc[detailed_mem]="${work_array[-2]}" | ||||||
| 						proc[detailed_mem_int]="${proc[detailed_mem]/./}" | 						proc[detailed_mem_int]="${proc[detailed_mem]/./}" | ||||||
| 						if [[ ${proc[detailed_mem_int]::1} == "0" ]]; then proc[detailed_mem_int]="${proc[detailed_mem_int]:1}0"; fi | 						if [[ ${proc[detailed_mem_int]::1} == "0" ]]; then proc[detailed_mem_int]="${proc[detailed_mem_int]:1}0"; fi | ||||||
|  | @ -1625,6 +1634,7 @@ collect_processes() { #? Collect process information and calculate accurate cpu | ||||||
| 		for ((i=0;i<${#pid_history[@]};i++)); do | 		for ((i=0;i<${#pid_history[@]};i++)); do | ||||||
| 			if [[ -n ${pid_history[$i]} && ! -e /proc/${pid_history[$i]} ]]; then | 			if [[ -n ${pid_history[$i]} && ! -e /proc/${pid_history[$i]} ]]; then | ||||||
| 				unset "pid_${pid_history[i]}_graph" | 				unset "pid_${pid_history[i]}_graph" | ||||||
|  | 				unset "pid_${pid_history[i]}_count" | ||||||
| 				unset "proc[new_${pid_history[i]}_ticks]" | 				unset "proc[new_${pid_history[i]}_ticks]" | ||||||
| 				unset "proc[old_${pid_history[i]}_ticks]" | 				unset "proc[old_${pid_history[i]}_ticks]" | ||||||
| 				unset "pid_history[${i}]" | 				unset "pid_history[${i}]" | ||||||
|  | @ -2071,7 +2081,7 @@ draw_mem() { #? Draw mem, swap and disk statistics | ||||||
| 		((++disk_num)) | 		((++disk_num)) | ||||||
| 	done | 	done | ||||||
| 
 | 
 | ||||||
| 
 | 	if ((resized>0)); then ((resized++)); fi | ||||||
| 	#* Print created text, graph and meters to output variable | 	#* Print created text, graph and meters to output variable | ||||||
| 	draw_out="${draw_out}${mem_graph[*]}${swap_graph[*]}${mem_out}" | 	draw_out="${draw_out}${mem_graph[*]}${swap_graph[*]}${mem_out}" | ||||||
| 
 | 
 | ||||||
|  | @ -2317,6 +2327,8 @@ draw_processes() { #? Draw processes and values to screen | ||||||
| 
 | 
 | ||||||
| 	proc_out="${detail_graph[*]}${proc_out}" | 	proc_out="${detail_graph[*]}${proc_out}" | ||||||
| 
 | 
 | ||||||
|  | 	if ((resized>0)); then ((resized++)); fi | ||||||
|  | 
 | ||||||
| 	if [[ $argument == "now" ]]; then | 	if [[ $argument == "now" ]]; then | ||||||
| 		echo -en "${proc_out}" | 		echo -en "${proc_out}" | ||||||
| 	#else | 	#else | ||||||
|  | @ -2378,10 +2390,11 @@ draw_net() { #? Draw net information and graphs to screen | ||||||
| 
 | 
 | ||||||
| draw_clock() { #? Draw a clock at top of screen | draw_clock() { #? Draw a clock at top of screen | ||||||
| 	if [[ -z $draw_clock ]]; then return; fi | 	if [[ -z $draw_clock ]]; then return; fi | ||||||
|  | 	if [[ $resized -gt 0 && $resized -lt 5 ]]; then unset clock_out; return; fi | ||||||
| 	local width=${box[cpu_width]} color=${box[cpu_color]} old_time_string="${time_string}" | 	local width=${box[cpu_width]} color=${box[cpu_color]} old_time_string="${time_string}" | ||||||
| 	#time_string="$(date ${draw_clock})" | 	#time_string="$(date ${draw_clock})" | ||||||
| 	printf -v time_string "%(${draw_clock})T" | 	printf -v time_string "%(${draw_clock})T" | ||||||
| 	if [[ $old_time_string != "$time_string" || $resized -gt 0 ]]; then | 	if [[ $old_time_string != "$time_string" || -z $clock_out ]]; then | ||||||
| 		unset clock_out | 		unset clock_out | ||||||
| 		print -v clock_out -m 1 $((width/2-${#time_string}/2)) -rs -fg ${color} -t "┤" -fg ee -b -t "${time_string}" -fg ${color} -t "├" | 		print -v clock_out -m 1 $((width/2-${#time_string}/2)) -rs -fg ${color} -t "┤" -fg ee -b -t "${time_string}" -fg ${color} -t "├" | ||||||
| 	fi | 	fi | ||||||
|  | @ -2472,8 +2485,8 @@ menu_() { #? Shows the main menu overlay | ||||||
| 		else wait_string="0.001"; time_left=0; fi | 		else wait_string="0.001"; time_left=0; fi | ||||||
| 		 | 		 | ||||||
| 		get_key -v keypress -w ${wait_string} | 		get_key -v keypress -w ${wait_string} | ||||||
|  | 		if [[ $(stty size) != "$tty_height $tty_width" ]]; then resized; fi | ||||||
| 		if ((resized>0)); then  | 		if ((resized>0)); then  | ||||||
| 			while [[ $size_error == true ]] ; do size_error_msg; done |  | ||||||
| 			calc_sizes; draw_bg quiet; time_left=0; unset menu_out | 			calc_sizes; draw_bg quiet; time_left=0; unset menu_out | ||||||
| 			unset bannerd | 			unset bannerd | ||||||
| 		fi | 		fi | ||||||
|  | @ -2493,7 +2506,7 @@ menu_() { #? Shows the main menu overlay | ||||||
| 		esac | 		esac | ||||||
| 		 | 		 | ||||||
| 		if ((time_left==0)); then get_ms timestamp_start; collect_and_draw; fi | 		if ((time_left==0)); then get_ms timestamp_start; collect_and_draw; fi | ||||||
| 		if ((resized>0)); then resized=0; fi | 		if ((resized>=5)); then resized=0; fi | ||||||
| 
 | 
 | ||||||
| 	done				 | 	done				 | ||||||
| 	unpause_ | 	unpause_ | ||||||
|  | @ -2576,8 +2589,8 @@ help_() { #? Shows the help overlay | ||||||
| 		else wait_string="0.001"; time_left=0; fi | 		else wait_string="0.001"; time_left=0; fi | ||||||
| 		 | 		 | ||||||
| 		get_key -v tmp -w "${wait_string}" | 		get_key -v tmp -w "${wait_string}" | ||||||
|  | 		if [[ $(stty size) != "$tty_height $tty_width" ]]; then resized; fi | ||||||
| 		if ((resized>0)); then  | 		if ((resized>0)); then  | ||||||
| 			while [[ $size_error == true ]] ; do size_error_msg; done |  | ||||||
| 			sleep 0.5 | 			sleep 0.5 | ||||||
| 			calc_sizes; draw_bg quiet; redraw=1 | 			calc_sizes; draw_bg quiet; redraw=1 | ||||||
| 			d_banner=1 | 			d_banner=1 | ||||||
|  | @ -2611,7 +2624,7 @@ options_() { #? Shows the options overlay | ||||||
| 							"and updates top process over a period of time." | 							"and updates top process over a period of time." | ||||||
| 							" " | 							" " | ||||||
| 							"\"cpu responsive\" updates sorting directly at a" | 							"\"cpu responsive\" updates sorting directly at a" | ||||||
| 							"significant cost of cpu time.") | 							"cost of cpu time.") | ||||||
| 		desc_proc_reversed=("Reverse sorting order." | 		desc_proc_reversed=("Reverse sorting order." | ||||||
| 							" " | 							" " | ||||||
| 							"True or false.") | 							"True or false.") | ||||||
|  | @ -2817,8 +2830,9 @@ options_() { #? Shows the options overlay | ||||||
| 			draw_bg quiet | 			draw_bg quiet | ||||||
| 		fi | 		fi | ||||||
| 
 | 
 | ||||||
|  | 		if [[ $(stty size) != "$tty_height $tty_width" ]]; then resized; fi | ||||||
|  | 
 | ||||||
| 		if ((resized>0)); then  | 		if ((resized>0)); then  | ||||||
| 			while [[ $size_error == true ]] ; do size_error_msg; done |  | ||||||
| 			calc_sizes; draw_bg quiet | 			calc_sizes; draw_bg quiet | ||||||
| 			redraw_misc=1; time_left=0 | 			redraw_misc=1; time_left=0 | ||||||
| 			unset options_out bannerd menu_out | 			unset options_out bannerd menu_out | ||||||
|  | @ -3065,9 +3079,9 @@ process_input() { #? Process keypresses for main ui | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| collect_and_draw() { #? Run all collect and draw functions | collect_and_draw() { #? Run all collect and draw functions | ||||||
| 
 | 	local task_int=1 | ||||||
| 	for task in processes cpu mem net; do | 	for task in processes cpu mem net; do | ||||||
| 		 | 		((++task_int)) | ||||||
| 		if [[ -n $pause_screen ]]; then  | 		if [[ -n $pause_screen ]]; then  | ||||||
| 			get_key -save | 			get_key -save | ||||||
| 			if [[ -n $saved_key ]]; then return; fi | 			if [[ -n $saved_key ]]; then return; fi | ||||||
|  | @ -3075,8 +3089,11 @@ collect_and_draw() { #? Run all collect and draw functions | ||||||
| 			process_input 0.05 | 			process_input 0.05 | ||||||
| 		fi | 		fi | ||||||
| 		collect_${task} | 		collect_${task} | ||||||
|  | 		get_key -save | ||||||
| 		draw_${task} | 		draw_${task} | ||||||
|  | 		get_key -save | ||||||
| 		draw_clock "$1" | 		draw_clock "$1" | ||||||
|  | 		if ((resized>0 & resized<task_int)); then return; fi | ||||||
| 	done | 	done | ||||||
| 
 | 
 | ||||||
| 	last_screen="${draw_out}" | 	last_screen="${draw_out}" | ||||||
|  | @ -3093,14 +3110,9 @@ main_loop() { #? main loop... | ||||||
| 	#* Timestamp for accurate timer | 	#* Timestamp for accurate timer | ||||||
| 	get_ms timestamp_start | 	get_ms timestamp_start | ||||||
| 
 | 
 | ||||||
| 	#* Loop a error message if terminal resized below 80x25 | 	if [[ $(stty size) != "$tty_height $tty_width" ]]; then resized; fi | ||||||
| 	while [[ $size_error == true ]] ; do size_error_msg; done |  | ||||||
| 
 | 
 | ||||||
| 	if ((resized>0)); then | 	if ((resized>0)); then | ||||||
| 		if (( tty_width!=$(tput cols) | tty_height!=$(tput lines) )); then |  | ||||||
| 			tty_width="$(tput cols)" |  | ||||||
| 			tty_height="$(tput lines)" |  | ||||||
| 		fi |  | ||||||
| 		calc_sizes | 		calc_sizes | ||||||
| 		draw_bg | 		draw_bg | ||||||
| 	fi | 	fi | ||||||
|  | @ -3108,13 +3120,14 @@ main_loop() { #? main loop... | ||||||
| 	#* Run all collect and draw functions | 	#* Run all collect and draw functions | ||||||
| 	collect_and_draw now | 	collect_and_draw now | ||||||
| 
 | 
 | ||||||
|  | 	#* Reset resized variable if resized and all functions have finished redrawing | ||||||
|  | 	if ((resized>=5)); then resized=0 | ||||||
|  | 	elif ((resized>0)); then unset draw_out proc_out clock_out; return; fi | ||||||
|  | 	 | ||||||
| 	#* Echo everyting out to screen in one command to get a smooth transition between updates | 	#* Echo everyting out to screen in one command to get a smooth transition between updates | ||||||
| 	echo -en "${draw_out}${proc_out}${clock_out}" | 	echo -en "${draw_out}${proc_out}${clock_out}" | ||||||
| 	unset draw_out | 	unset draw_out | ||||||
| 	 | 	 | ||||||
| 	#* Reset resized variable if resized and all functions have finished redrawing |  | ||||||
| 	if ((resized>=3)); then resized=0; fi |  | ||||||
| 	 |  | ||||||
| 	#* Compare timestamps to get exact time needed to wait until next loop | 	#* Compare timestamps to get exact time needed to wait until next loop | ||||||
| 	get_ms timestamp_end | 	get_ms timestamp_end | ||||||
| 	time_left=$((timestamp_start+update_ms-timestamp_end)) | 	time_left=$((timestamp_start+update_ms-timestamp_end)) | ||||||
|  | @ -3179,11 +3192,7 @@ resume_() { | ||||||
| 	stty -echo | 	stty -echo | ||||||
| 	tput civis | 	tput civis | ||||||
| 
 | 
 | ||||||
| 	if (( tty_width!=$(tput cols) | tty_height!=$(tput lines) )); then | 	 | ||||||
| 		tty_width="$(tput cols)" |  | ||||||
| 		tty_height="$(tput lines)" |  | ||||||
| 		resized=1 |  | ||||||
| 	fi |  | ||||||
| 
 | 
 | ||||||
| 	if [[ -n $pause_screen ]]; then | 	if [[ -n $pause_screen ]]; then | ||||||
| 		echo -en "$pause_screen" | 		echo -en "$pause_screen" | ||||||
|  | @ -3220,7 +3229,7 @@ fi | ||||||
| 
 | 
 | ||||||
| #* Set up traps for ctrl-c, soft kill, window resize and resume from ctrl-z | #* Set up traps for ctrl-c, soft kill, window resize and resume from ctrl-z | ||||||
| trap 'quit_' SIGINT SIGQUIT SIGTERM | trap 'quit_' SIGINT SIGQUIT SIGTERM | ||||||
| trap 'resized' SIGWINCH | trap 'resized=1' SIGWINCH | ||||||
| trap 'sleepy=1; time_left=0' SIGTSTP | trap 'sleepy=1; time_left=0' SIGTSTP | ||||||
| trap 'resume_' SIGCONT | trap 'resume_' SIGCONT | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 aristocratos
						aristocratos