Coder Social home page Coder Social logo

cursor's Introduction

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

cursor's People

Contributors

gijstimmers avatar goggle avatar manrajgrover avatar tiagocordeiro avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

cursor's Issues

Update installing instruction in the README

I am maintaining a AUR package (https://aur.archlinux.org/packages/python-cursor/) for cursor since August 2018. If you think that this is done right (the package build instructions can be seen in the PKGBUILD https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=python-cursor), we could mention this as the preferred way to install cursor for Arch Linux users. Maybe we could write somehing like this in the README:

Arch Linux:
The package is available in the AUR. You can either use a AUR helper or manually install it:

git clone https://aur.archlinux.org/python-cursor.git
cd python-cursor
makepkg -si
sudo pacman -U python-cursor-x.y.z-r-any.pkg.xz

In addition, many people do not consider it as good practice to use sudo pip to install python packages. It installs the python files on your system path, which is usually already maintained by the system's package manager (pacman for Arch users, apt-get for Debian/Ubuntu users). Maybe you should encourage users to set up virtual environments or at least use pip install ---user to install the package.

Use atexit module to redraw cursor on program exit

README states:

Note that the cursor will stay hidden until you call cursor.show() โ€” even after exiting your python script!
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.

As another easy alternative, you might consider using the Python atexit module (or just mentioning the possibility in the README for that matter). Could work as follows:

>>> import cursor
>>> import atexit
>>> atexit.register(cursor.show)
<function show at 0x7f6ebbf7b668>
>>> cursor.hide()
>>> print("hello world!")
hello world!
>>> exit()

Cursor comes back after window resize

Using Python 3.7 on Windows 10

cursor.hide() works first time but if I resize the console window it comes back. After this any attempt to re-run cursor.hide() is ignored and the cursor will not go away.

license issue

Hi,
I would like to ask you if there would be possibility of relicensing this repo to MIT if would author of the answer on stackoverflow agree?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.