Cześć, Szukam od tygodnia (odziwo nie znalazłem) jak zmienić rozmiar terminala w języku C by zawsze gdy odpale program był ustawiony rozmiar 130x30. Wiem że dam radę to w windows.h ale nie mogę znaleźć jak to zrobić. Jakby ktoś miał czas i wie gdzie coś takiego wyjaśnięte to poproszu o podesłanie linku albo kodu jak coś takiego robi. Dzięki i pozdrawiam
Zmiana rozmiaru terminala [C][linix]
- Rejestracja: dni
- Ostatnio: dni
Nie jest to takie proste, ze względu na to, że Linux ma znacznie bardzo modularną strukturę. W związku z tym nie ma jednoznacznego sposobu na to. Chyba…
Jak rozumiem, chodzi ci o środowika X (bo w „gołej konsoli” to sprawa ograniczałaby się do zmiany trybu graficznego, to można dość prosto zmienić). W przypadku środowiska okienkowego jest trochę trudniej.
Wydaje mi się, że na początek ustalić numer procesu terminala. Wysoce prawdopodobne, że znajdziesz zmienną środowiskową (funkcja getenv) WINDOWID.
Potem musisz użyć API Xliba, żeby zmienić rozmiar tego okna. Chyba tego ci trzeba: https://tronche.com/gui/x/xlib/window/XResizeWindow.html Nie jestem do końca pewny jak uzyskać obiekt Window na podstawie id, które masz w zmiennej środowiska.
- Rejestracja: dni
- Ostatnio: dni
użyj wielo-platformowej biblioteki ncurses
Najlepiej jak równocześnie porzucisz standardowe wyjście/wejście.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 293
Chcesz to robić "programistycznie", czy wystarczy Ci że aplikacja otworzy się w terminalu o konkretnym rozmiarze ?
mate-terminal --geometry 130x20 -e "top"
Jeśli nie chcesz startować nowego terminala
resize -s 20 130 # zwróć uwagę na odwróconą kolejność
./my_program
- Rejestracja: dni
- Ostatnio: dni
- Postów: 293
Rozwiązanie korzystające z kodów kontrolnych xterm-a (ale musisz mieć świadomość, że WM może to zablokować)
#include <stdio.h>
int main(void)
{
puts("\x1B[8;50;132t");
return 0;
}
https://invisible-island.net/xterm/ctlseqs/ctlseqs.html
\x1B - ESC
ESC [
Control Sequence Introducer
CSI Ps ; Ps ; Ps t
...
Ps = 8 ; height ; width ⇒ Resize the text area to given
height and width in characters. Omitted parameters reuse the
current height or width. Zero parameters use the display's
height or width.