Solved

How to hide cursor in a Linux/Unix console?

Posted on 2004-09-01
7
6,927 Views
Last Modified: 2008-01-09
Hi,

I am looking for a way to hide the cursor in a Linux/Unix console, or at least move the cursor to a desirable position. I don’t wish to permanently alter the cursor, just while my program runs in the terminal. I assume it’s not as easy as in the windows dos prompt but hopefully it won’t include package instalment. Thanks in advance.
0
Comment
Question by:Aidman
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
  • 2
  • +1
7 Comments
 
LVL 86

Expert Comment

by:jkr
ID: 11957487
It is not really easy, but can be done using 'ncurses'. Check out http://web.cs.mun.ca/~rod/ncurses/ncurses.html ("Writing Programs with NCURSES by Eric S. Raymond and Zeyd M. Ben-Halim") and http://en.tldp.org/HOWTO/NCURSES-Programming-HOWTO/ ("NCURSES Programming HOWTO")
0
 
LVL 23

Expert Comment

by:Mysidia
ID: 11959062
The shell command would be
 setterm -cursor off

now on a linux terminal... In C  (brute force method)
  printf("\e[?25l");
  fflush(stdout);

  printf("\e[?25h");
  fflush(stdout) ;

Those are terminal codes.
To move the cursor around, you can try other codes, i.e.
   printf("\e[5H");  change position row 5
   printf("\e[5;3H");  change position to row 5 column 3

To do this in a clean manner that will work with terminals other than the local Linux console,
using curses/ncurses is the best choice I think; however.
0
 
LVL 23

Accepted Solution

by:
Mysidia earned 150 total points
ID: 11959068
Err, oops
        printf("\e[?25l");        is cursor off

        printf("\e[?25h");       is cursor on
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 46

Expert Comment

by:Sjef Bosman
ID: 11961367
Curses is meant for all types of old-fashioned terminals (VT100 etc., BeeHive, VT36). Not all of them used to implement a cursor-off/on. The escape sequences above assume a VT100 or comparable terminal. It is therefore important that you have set your Linux console to simulate a VT100.
0
 

Author Comment

by:Aidman
ID: 11973445
Mysidia, I tested your solution in the terminal by writing: echo "\e[?25l"
and it worked perfectly, however strangly it didn't work when writting it in code.

The gcc compiler returned "warning: dubious escape: \e" when I used printf("\e[?25l")
and when executed it just printed "e[?25l". Then I wrote printf("\\e[?25l")
and it compiled fine but still didn't affect the cursor just printed "\e[?25l".
I even tested calling system("echo \"\\e[?25l\"") and system("echo \"\e[?25l\"")
but that also only printed string.

Any ideas?
0
 
LVL 46

Assisted Solution

by:Sjef Bosman
Sjef Bosman earned 100 total points
ID: 11974132
Instead of \e, try \033
0
 

Author Comment

by:Aidman
ID: 11991086
Sorry for the delay, haven’t had good opportunities to test the solution, until now that is...
Anyways many thanks for the excellent solution!
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Preface I don't like visual development tools that are supposed to write a program for me. Even if it is Xcode and I can use Interface Builder. Yes, it is a perfect tool and has helped me a lot, mainly, in the beginning, when my programs were small…
This tutorial is posted by Aaron Wojnowski, administrator at SDKExpert.net.  To view more iPhone tutorials, visit www.sdkexpert.net. This is a very simple tutorial on finding the user's current location easily. In this tutorial, you will learn ho…
The goal of this video is to provide viewers with basic examples to understand recursion in the C programming language.
The goal of this video is to provide viewers with basic examples to understand how to create, access, and change arrays in the C programming language.

734 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question