Project: cursor

A small Python package to hide or show the terminal cursor

Project Details

Latest version
1.3.5
Home Page
https://github.com/GijsTimmers/cursor
PyPI Page
https://pypi.org/project/cursor/

Project Popularity

PageRank
0.002308811322860728
Number of downloads
236436

License: GPL v3

PyPI version

cursor

A small Python package to hide or show the terminal cursor. Works on Linux and Windows, on both Python 2 and Python 3.

demonstration

Disclaimer

The code is almost entirely a copy of James Spencer's answer on StackOverflow.

Installation

The preferred way of installing cursor is via pip. You can install pip with your package manager:

On Ubuntu:

sudo apt-get install python-pip
pip install --user cursor

On Arch:

git clone https://aur.archlinux.org/python-cursor.git
cd python-cursor
makepkg -si

Usage

import cursor
cursor.hide() ## Hides the cursor
cursor.show() ## Shows the cursor

Note that the cursor will stay hidden until you call cursor.show() — even after exiting your python script!

Because of that, pip will install two scripts, which can be run from the command line: cursor_hide and cursor_show.

An alternative is using the HiddenCursor() class in conjunction with Python's with statement. This will make sure that the cursor is shown again after running your code, even if exceptions are raised:

import cursor
with cursor.HiddenCursor():     ## Cursor will stay hidden
    import time                 ## while code is being executed;
    for a in range(1,100):      ## afterwards it will show up again
        print(a)
        time.sleep(0.05)
    

You could also use Python's atexit module:

import cursor
import atexit
import time

atexit.register(cursor.show)    ## Make sure cursor.show() is called
                                ## when exiting

cursor.hide()                   ## Hides cursor
for a in range(1,100):
    print(a)
    time.sleep(0.05)
exit()                          ## Cursor will show again

Contributors

Manraj Singh: allowed setting a customisable stream

Alexander Seiler: packaging for Arch

Patrik Kopkan: packaging for Fedora

Projects using cursor

halo: beautiful terminal spinners in Python

pipenv: a tool that aims to bring the best of all packaging worlds to the Python world