内容简介：snakeware is a free Linux distro with a Python userspace inspired by the Commodore 64. You are booted directly into a Python interpreter, which you can use to do whatever you want with your computer.
snakeware is a free Linux distro with a Python userspace inspired by the Commodore 64. You are booted directly into a Python interpreter, which you can use to do whatever you want with your computer.
The idea is that a Python OS would be fun to use and very easy to contribute to. Even relative beginners might be able to find ways to meaningfully contribute apps and other code to this distro.
Our window manager, snakewm, is based on pygame/pygame_gui. We do not use X11; snakewm draws directly to
We also are not going to be using any other huge and opaque software such as systemd, etc. The goal is to eventually have a usable set of userspace apps and utilities written entirely in Python, because Python is fun and it Just Werks™.
Then, burn the image file to a flash drive and boot it, or launch it in QEMU. Here is how I start it in QEMU, it works pretty well for me:
qemu-system-x86_64 -drive format=raw,file=snakeware.img -m 2048 -soundhw hda -audiodev id=pa,driver=pa
Once you are booted into the Python environment, launch snakewm with these commands:
>>> from snakewm.wm import SnakeWM >>> SnakeWM().run()
Press the Left WinKey to open the App Menu!
The snakeware build system is based on buildroot. See the
snakeware/ directory in this repo for resources and documentation on how to build your own snakeware distro image.
NOTE:If you are only contributing apps or other code to snakewm, you don't need to build a whole snakeware distro image to test your changes. Simply make your changes to snakewm then run
sudo python wm.py in the
snakewm/ directory. snakewm will then start drawing itself directly to the framebuffer and you can test out your changes. Press
ALT+ESC to return to your normal desktop. (It would still be good to test your changes in an actual snakeware environment though.)
Developers of all experience levels are welcome and encouraged to contribute to snakeware. Python enthusiasts that are familiar with pygame and pygame_gui will be able to write their own snakeware apps very easily. See existing apps in
snakewm/apps/ for examples of how to get started, and feel free to ask questions if you need help.
Those with experience building Linux systems are encouraged to contribute to the underlying aspects of the distro, such as the build/package scripts and configuration for the kernel, GRUB, etc. The build system is currently not very streamlined or robust, and I am sure that there are better ways to do a lot of it.
I would also like to eventually stop using Busybox for intialization and find a way to perform all necessary init from the Python environment, so ideas about that are welcome.
This is an abridged list of future plans:
- Many more snakewm apps
App menu for choosing apps to run
Improved/streamlined build system
- Improved kernel config
- snake-games - full-screen user games separate from SnakeWM
Modify partition scheme for faster boot - /usr on its own partition?
- Take advantage of pygame_gui's theme functionality
- Dynamic/interactive desktop backgrounds
- Networking -> web browser
- snakechat - chat with everyone else who's using snakeware
- Gopher client?
- Ditch busybox, init via Python somehow
- A Commodore 64 Skin for Windows Terminal
- Linux distro review: Intel’s own Clear Linux OS
- Not actually Linux distro review deux: GhostBSD
- 互联网档案馆推出网页版 Commodore 64 模拟器
- Exchange 的 Python 开发包 PyExchange
- Python的SMTP服务器 inbox.py
- Linux 免密 Shell 工具 jssh
- Python 的 SSH 实现 AsyncSSH
- Python IP 地址操作库 ipaddr-py
Math Adventures with Python
Peter Farrell / No Starch Press / 2018-11-13 / GBP 24.99
Learn math by getting creative with code! Use the Python programming language to transform learning high school-level math topics like algebra, geometry, trigonometry, and calculus! In Math Adventu......一起来看看 《Math Adventures with Python》 这本书的介绍吧!