Resize current window with Curses


 
Thread Tools Search this Thread
Top Forums Programming Resize current window with Curses
# 1  
Old 02-04-2010
Resize current window with Curses

Hi.

I am beginning with Unix C Curses Library and i would like to know if it's possible to resize my current window.

In other words, i am working with a Putty Client over my Windows system and with a telnet/ssh connection to linux. I want to build a small linux application using C Curses library and i want to fix the size (rows and columns) of my current Putty window.

Is it possible?

First of all, thanks for your help
# 2  
Old 02-04-2010
A little googling found me this. You may or may not need to tweak your terminal types, etc. for curses to realize putty's terminal supports resizing, but it definitely does.
# 3  
Old 02-04-2010
Ok, thanks Corona.

I had been looking for that this morning and i had found 'resize_term' but my first tests didn't make it.

I 'll read more about this and i 'll do more tests.

I 'll report about any advances.

---------- Post updated at 04:59 PM ---------- Previous update was at 04:26 PM ----------

Oh !!! I just find this post:

terminal Width/height change

# 4  
Old 02-04-2010
Quote:
Originally Posted by pogdorica
---------- Post updated at 04:59 PM ---------- Previous update was at 04:26 PM ----------

[/COLOR]Oh !!! I just find this post:

terminal Width/height change

No, I really think you need to call resizeterm(). The ioctl only changes what size is reported, not what size the window is, so isn't very useful. How the terminal is actually resized from the user end is terminal-specific and nothing to do with the kernel, hence part of curses.

What value is resizeterm returning? It may not think your terminal's resizable. Curses also provides the function is_term_resized() to tell if curses thinks the terminal is even capable of resizing. What does 'env | grep TERM' show? If TERM is not xterm it probably won't try to resize it even if the terminal supports it.

---------- Post updated at 10:50 AM ---------- Previous update was at 10:09 AM ----------

(posted from PM with permission)
Quote:
Originally Posted by pogdorica
Hi Corona.

I'm grateful for your time and support. I'm from Madrid-Spain and I'm really sorry if my english isnīt very good. I hope you understand all my post.
Even if it's not as easy as Spanish for you, your english is quite good.
Quote:
Today, itīs the first time that i try to do something with 'curses' library and i would want to know what it is possible to do and not to do with this library. I am studying your link; sure it 's very good.
I really don't know curses. I'm just using google, reading documentation, and suggesting things I do by habit. It certainly seems possible to resize terminals with curses -- both PuTTY and curses support it.

Whenever a function doesn't work, first check its return value. Whether curses believes its succeeded or not will help you figure out what's gone wrong. curses might not even be trying to resize the terminal if it doesn't believe its resizable.

Another thing to check is the manual page, see 'man resizeterm'. That's where I found that resizeterm and resize_term are different functions -- you should be calling resizeterm -- and where I found the mention of is_term_resized.

You might also find Writing Programs with NCURSES useful.
# 5  
Old 02-04-2010
I have found this Linux Redhat command "resize -s Rows Columns" and Smilie it works in my PuTTY terminal, so,... Curses should work too, i hope so.Smilie
# 6  
Old 02-04-2010
I've been toying with curses a little and have found that it believes it has resized it when in fact it has not. When the program exits Putty has spammed "PuTTYPuTTYPuTTYPuTTYPuTTYPuTTY" messages to console no matter what I do, meaning curses is sending it some weird ^e control codes instead of the esc-codes one would expect of an xterm!

Looking up the actual esc codes, I made this shell function:
Code:
function resize # call resize x y
{
        echo -e "\x1b[8;${2};${1}t"
}

it acts as expected, so curses seems to be giving bananas resize codes for this for some reason.

---------- Post updated at 12:36 PM ---------- Previous update was at 12:04 PM ----------

On further testing my code was messed up. But whether the call succeeds or not, it seems that it doesn't actually send any codes to resize the window! This may be another one of those strange curses things where it's "supposed to do that" until you do the right voodoo. Or it may be a bug. With curses it's sometimes hard to tell the difference...
# 7  
Old 02-09-2010
Hi.

Well, i finally havenīt got to resize my xterm terminal with C library Curses, so i have had to do it with "resize command" such as:
Code:
sprintf (vx_sttorden, "resize -s %d %d >/dev/null", 
         p_nuRows, p_nuColumns);

ret = system (vx_sttorden);

Thanks for all.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Toggle between xterm window and standard terminal window

Is it possible to toggle back and forth between an xterm invoked from one tty, and a shell invoked from a different tty? I am running Centos 7 with KDE and booting in non-graphic mode. After logging in on the default window (/dev/tty1) , I can then use ALT-F2 to access a new window (/dev/tty2),... (1 Reply)
Discussion started by: rhgscty
1 Replies

2. UNIX for Dummies Questions & Answers

Preventing the terminal window to resize

I am running Terminal (xterm) on FreeBSD and XFCE. When opening a new terminal window so that an additional tab appears, the window resizes to become taller and partially hiding behind the task bar. I noticed that Xubuntu has fixed this feature and the window does not resize when opening a second... (0 Replies)
Discussion started by: figaro
0 Replies

3. UNIX Desktop Questions & Answers

Resize the default window size

Hi, How can I resize the terminal window's default size in CDE (Solaris)? Regards, Sharif. (1 Reply)
Discussion started by: sharif
1 Replies

4. UNIX for Advanced & Expert Users

send characters to current window

Before I re-invent the wheel... I have written an on-screen keyboard & handwriting input client in Java (spare me please, I get paid to write Java and it will take some time to get back up to speed in C & X11). In order to concentrate on the other bits, I took advantage of a hack... (0 Replies)
Discussion started by: bcw
0 Replies

5. Programming

curses.h

hi all i get a segmentation fault error in the following program. couldn't understand why it happens. can anyone explain what is really happening. s1.c #include<curses.h> main(){ int c; noecho(); cbreak(); c=getch(); printf("%c",(char)c); } I compiled this program as cc s1.c... (2 Replies)
Discussion started by: bankpro
2 Replies

6. UNIX for Advanced & Expert Users

CDE loging window resize?

I was asked to display a banner on the CDE login window and I have successfully accomplished that task. This is what I did: 1) made the directory /etc/dt/config/C 2) cp /usr/dt/config/C/Xresources /etc/dt/config/C 3) I edited /etc/dt/config/C/Xresources and ensured the following lines were... (0 Replies)
Discussion started by: rtoba
0 Replies

7. Solaris

CDE loging window resize?

I was asked to display a banner on the CDE login window and I have successfully accomplished that task. This is what I did: 1) made the directory /etc/dt/config/C 2) cp /usr/dt/config/C/Xresources /etc/dt/config/C 3) I edited /etc/dt/config/C/Xresources and ensured the following lines were... (0 Replies)
Discussion started by: rtoba
0 Replies

8. Programming

curses & window resize issues

I am writing a program to display a database to the screen(xterm) and want to allow the window resize signal to increase/decrease the amount data that is displayed. I have a signal handler function for catching the SIGWINCH event and calling a function to reallocate the space for the windows... (0 Replies)
Discussion started by: kwaz
0 Replies

9. Windows & DOS: Issues & Discussions

window 2000 professional not pinging my window 98 system.

Hello, We someone help me resolve this problem. I have window 2000 professional, windows 98 and Unixware 7.0.1 on the network. I was able to establish connection with all. However, l was unable to ping window 98 from window 2000 professional. I was able to ping the window 2000 from the window... (10 Replies)
Discussion started by: kayode
10 Replies

10. UNIX for Dummies Questions & Answers

curses.h

hi i'd like to know how to draw a rectangle using the curses.h library, you know with all the WINDOW *newwin stuff and all thanx!:) (1 Reply)
Discussion started by: chomano
1 Replies
Login or Register to Ask a Question