bsod is a lighthearted python package that simulates a windows-style Blue Screen of Death (BSOD). When executed, it takes over the screen, blocks keyboard input, and displays a fullscreen BSOD image accompanied by audio.
This project is intentionally simple and experimental in nature. It is meant for educational, demonstrational, and humorous purposes only, particularly to explore system-level interactions from Python and understand how desktop applications can manipulate user input and display behavior.
- Fullscreen BSOD-style visual using
pygame - Optional delayed execution via a timer
- Keyboard input blocking
- Audio playback during the BSOD screen
- Packaged as a command-line tool (
bsod) - Includes bundled assets (image and audio) via Python packaging
Important: This package interacts directly with keyboard input and window focus. It should not be run on production systems or machines with unsaved work.
You can directly run using
uvx bsodor install the package directly from PyPI:
pip install bsod- Designed primarily for Windows
- Uses Windows-specific libraries (
pywin32,keyboard) - May not function correctly on Linux or macOS
After installation from PyPI, the package exposes a console command:
bsodRunning this command will immediately:
- Block keyboard input
- Launch a fullscreen BSOD window
- Play an audio file
- Keep running until forcefully terminated
You can delay the BSOD screen using the -t or --timer flag:
bsod -t 20This will wait 20 seconds before triggering the BSOD behavior.
- Time is specified in seconds
- During the delay, nothing is blocked until the timer completes
| Argument | Description |
|---|---|
-t, --timer |
Delay execution by a specified number of seconds |
If no arguments are provided, the BSOD is triggered immediately.
- The entry point is defined via
console_scriptsinsetup.py bsod.mainparses CLI arguments and manages execution timing- Keyboard input is blocked using the
keyboardlibrary - The BSOD screen is rendered in fullscreen using
pygame - Assets (image and audio) are bundled and resolved using
pkg_resources - Threads are used to block input and display the screen concurrently
arpy8-bsod/
├── README.md
├── LICENSE
├── MANIFEST.in
├── setup.py
├── bsod/
│ ├── __init__.py
│ ├── main.py
│ ├── utils.py
│ └── assets/
│ ├── image.png
│ └── audio.mp3
└── .github/
└── workflows/
└── python-publish.yaml
main.py– CLI entry point and argument handlingutils.py– Keyboard blocking, window handling, and display logicMANIFEST.in– Ensures asset files are included in the package.github/workflows/python-publish.yaml– GitHub Actions workflow for PyPI publishing
The package relies on the following libraries:
pygamekeyboardpyautoguipywin32setuptools
These are automatically installed when installing the package via pip.
This package:
- Blocks keyboard input
- Forces fullscreen display
- Requires manual termination in some cases
Use at your own risk. The author is not responsible for any unintended consequences, system disruptions, or data loss resulting from its use.
This project is intended strictly for:
- Educational demonstrations
- Experimentation
- Humor
This project is licensed under the MIT License.
You are free to:
- Use
- Modify
- Distribute
- Share
See the LICENSE file for full details.
Arpit Sengar GitHub: https://github.com/arpy8
Contributions, issues, and suggestions are welcome.
