터미널 출력(이 경우 6픽셀 이미지)의 "행"과 "열"에서 원하는 너비와 높이인 2개의 쉘 변수 $width
및 를 제공하는 프로그램이 있습니다 .$height
$height 및 $width 값을 행/열 단위에서 픽셀 단위로 어떻게 변환합니까?
#!/bin/bash
pixelsperrow=# How
pixelspercolumn=# How
heightpixels=$(($height*$pixelsperrow))
widthpixels=$(($width*$pixelspercolumn))
foot
또한 내 터미널 에뮬레이터( )가 터미널 창에서 현재 사용할 수 있는 열 수인 $COLUMNS 환경 변수를 제공한다는 사실도 확인했습니다 . river
관련이 있는 경우 (Wayland 타일링 창 관리자)를 WM으로 사용하고 있습니다.
답변1
어쩌면 ioctl
터미널 크기를 픽셀 단위로 얻는 것이 가능할 수도 있습니다.
$ cat termsize.c
#include <sys/ioctl.h>
#include <stdio.h>
#include <unistd.h>
int main(void) {
struct winsize w;
ioctl(STDOUT_FILENO, TIOCGWINSZ, &w);
printf("%d,%d %d,%d\n", w.ws_row, w.ws_col, w.ws_ypixel, w.ws_xpixel);
return 0;
}
$ make termsize
cc termsize.c -o termsize
$ ./termsize
24,80 388,644