Key Cast - Cast your key presses and mouse clicks on the screen, while casting your favorite application on the screen. Better than the rest.

Overview

Linux Windows macOS made-with-python PyPI license


Logo

Key Cast

Screen cast your keyboard and mouse clicks in style
Project Homepage »

View Demo · Report Bug · Request Feature

Table of Contents
  1. Introduction Functionalities
  2. Getting Started Getting Started (Development)
  3. Usage
  4. License
  5. Contact
  6. Acknowledgement
  7. Info
  8. Issues

Introduction

Keycast in action

In this internet age, everyone is learning to stay ahead in their career or to develop something new, creative and fun. Digging the internet for quality tutorials, watching that youtube videos of blender, illustrator, photoshop, webdev and what not. To give back to your community, you also thought of creating some tutorials, but guess what, you are not having any good keyboard and mouse indicators, and that ones which are available in the market, do not suits your personality.

Here comes Keycast, which enables you to, screen cast your keyboard and mouse clicks, while also being pleasant to your eyes and why you should consider Keycast, here's why:

  • Cross-platform: Run it anywhere. Run it on Linux, Windows or OS X.
  • Keybaord & mouse clicks: From keyboard presses to mouse clicks, we've covered you all!.
  • Drag it anywhere: Obstructing your view? place it anywhere on the screen.
  • [IN PROGRESS!] Show in style: Choose from numerous themes, or create your own.
  • [IN PROGRESS!] Transparency control: Adjust the transparency level of the panel as per your convenience.

Functionalities

  • Following are the functionalities implemented till now:
  • Show previous and current keypresses/key combinations
  • Show mouse activity
  • Drag and drop anywhere on the screen
  • Second instance prunning of the running application

Built With

This was achieved with Python (cPython), with Pynput as global keyboard and mouse event listener, Tkinter powering the GUI, & Pyinstaller for creating distributable package files.

Getting Started

  • You do not need Python installed to use this app, just go to the application Homepage, and download the package as per your OS.

For Linux/OS X users only

  • After downloading the file, open the properties of the file, go to permissions tab and check the option saying allow executing file as program, and then run the file, now it would run smoothly.

Getting Started (Development)

This section will help you to get started with the project, locally

Prerequistes

  • You should be having Python version > 3.6.x
  • Install the requirements from REQUIREMENTS.txt file via pip before actually running the application, with
    pip3 install -r REQUIREMENTS.txt

Installation

  • Clone the project locally with
    git clone [email protected]:daxter-army/key-cast.git
  • Navigate to the project dir and activate virtual env
  • for windows
    .\keycast_env\bin\activate
  • for linux/OS X
    source .\keycast_env\bin\activate
  • Now you'll see that virtual env has been activated, after this hit
    python3 keycast_dev.py
  • You have done it, you will be seeing a window running on your screen, if everything goes well.

Building

To create one distributable file on linux/OS X, type

    pyinstaller keycast_prod.py --onefile -i "path_to_icon/icon_file.ico" --add-data "assets:assets"

With hidden console window, in Windows, type

    pyinstaller keycast_prod.py --onefile -i "path_to_icon/icon_file.ico" --add-data "assets:assets" --windowed

With console window in the background, in Windows, remove --windowed argument

Usage

gui

You can use it with any of your favourite software while making any tutorial, screen casting your screen, or while streaming your game over the internet.

More themes coming soon!

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Mehul Singh Teya - [email protected] | LinkedIn
Project Link: https://github.com/daxter-army/key-cast
Project Homepage : https://daxter-army.github.io/key-cast

Acknowledgement

Info

  • Right now it is heavily under development, and is being developed in linux (ubuntu). You can see unidentified characters being shown by the software, because sometimes different key combos having different key codes, I am working on this to support as many as keyboards and key combos possible.

  • windows_bundle directory contains bundled package for windows, same is the case with linux_bundle, bundle to be created for mac OS X.

  • The main file that runs is /dist/keycast_prod.exe, these are also the files that are available on the homepage to be downloaded.

  • For development use, keycast_dev.py, then copy-paste the whole code to keycast_prod.py, and also paste the code of additional files in that file also, to increase the performance.

Issues

Visit Issues tab
Issues

Issues
  • Icon

    Icon

    • Add icon to the executable file
    enhancement good first issue 
    opened by daxter-army 1
  • Settings screen

    Settings screen

    • Implement a second screen, to tweak settings like transparency, position on the screen, changing themes etc.
    enhancement 
    opened by daxter-army 0
  • Mac OS Bundle

    Mac OS Bundle

    • Bundle for Mac OS X is yet to be created.
    enhancement good first issue 
    opened by daxter-army 0
  • Windows bundle being treated as virus

    Windows bundle being treated as virus

    • Windows bundle .exe file is being treated as virus, by windows defender and antivirus.
    enhancement 
    opened by daxter-army 2
  • Mac OS testing pending

    Mac OS testing pending

    • Testing pending on Mac OS X
    enhancement 
    opened by daxter-army 0
  • Scrolling event issue

    Scrolling event issue

    • Scrolling event indicator not working in windows. NOTE: Indication from trackpad is not working, but it is working from external mouse.
    bug 
    opened by daxter-army 0
Owner
Mehul Singh Teya
No Bio, only CS
Mehul Singh Teya
Turn (almost) any Python command line program into a full GUI application with one line

Gooey Turn (almost) any Python 2 or 3 Console Program into a GUI application with one line Support this project Table of Contents Gooey Table of conte

Chris 15k Oct 22, 2021
Textual is a TUI (Text User Interface) framework for Python inspired by modern web development.

Textual is a TUI (Text User Interface) framework for Python inspired by modern web development.

Will McGugan 5.8k Oct 18, 2021
UberGui is a lightweight multi-threaded, webRender UI module for TouchDesigner

UberGui V4 UberGui is a lightweight multi-threaded, webRender UI module for TouchDesigner projects. The aim is to solve the trifecta of challenges bui

LUCAS M MORGAN 38 Jun 19, 2021
Tukaan is the new framework that aims to replace Tkinter

Tukaan is the new, pythonic and colorful (like a keel-billed toucan) framework that aims to replace Tkinter. It has everything (on my computer, not at GitHub) that you need to develop cross-platform GUIs.

Tukaan 11 Oct 16, 2021
A library for building modern declarative desktop applications in WX.

re-wx is a library for building modern declarative desktop applications. It's built as a management layer on top of WXPython, which means you get all the goodness of a mature, native, cross-platform UI kit, wrapped up in a modern, React inspired API.

Chris 92 Oct 12, 2021
Edifice: a declarative GUI library for Python

Edifice is a Python library for building reactive UI, inspired by modern Javascript libraries such as React.

David Ding 77 Oct 9, 2021
Python Screen Recorder using Python

PY-Screen-Recorder Python Screen Recorder using Python Requirement: pip install cv2 pip install pyautogui pip install numpy How to reach me? You can r

SonLyte 6 Oct 24, 2021
Dress up your code with a beautiful graphical user interface !

Dresscode Dress up your code with a beautiful graphical user interface ! This project is part of the Pyrustic Ecosystem. Look powered by the cyberpunk

null 22 Sep 2, 2021
A small pomodoro GUI for Windows/Linux created in Python with PyQt5.

Pomodoro A small pomodoro GUI for Windows/Linux created with PyQt5. Features The "Timer" tab allows you to set your desired work and rest times aswell

Burak Martin 73 Oct 10, 2021
System Tray Icon for PySimpleGUI (the tkinter version). Adds a system tray icon by using pystray and PIL

psgtray Add a System Tray Icon to your tkinter port of PySimpleGUI. Installation via pip Installation is via pip: python -m pip install psgtray or if

PySimpleGUI 9 Oct 14, 2021
A little Python library for making simple Electron-like HTML/JS GUI apps

Eel Eel is a little Python library for making simple Electron-like offline HTML/JS GUI apps, with full access to Python capabilities and libraries. Ee

Chris Knott 4.6k Oct 22, 2021
A lightweight file-copying interface.

autosort A lightweight file-copying interface. Preview What is autosort? Autosort is a lightweight file-copying interface. It allows you to copy sever

null 29 Jun 17, 2021
Multi-handle range slider widget for PyQt/PySide

QtRangeSlider The missing multi-handle range slider widget for PyQt & PySide The goal of this package is to provide a Range Slider (a slider with 2 or

Talley Lambert 16 Oct 7, 2021
A simple yet powerful TUI framework for your Python (3.7+) applications

A simple yet powerful TUI framework for your Python (3.7+) applications

null 170 Oct 14, 2021
A desktop application for JupyterLab, based on Electron.

A desktop application for JupyterLab, based on Electron.

JupyterLab 1.4k Oct 20, 2021
Declarative User Interfaces for Python

Welcome to Enaml Enaml is a programming language and framework for creating professional-quality user interfaces with minimal effort. What you get A d

null 1.1k Oct 15, 2021
MATE Layouts is a small panel layout switching application for the MATE Desktop.

a small panel layout switching application for the MATE Desktop

Wilbur Wetterquarz 2 Oct 9, 2021
Management Gui for OpenVR FSR PlugIn

OpenVR FSR App Small GUI to install/uninstall, tweak settings of the Modified OpenVR DLL with AMD FidelityFX SuperResolution Upscaler with a single cl

Stefan Tapper 89 Oct 15, 2021