Coder Social home page Coder Social logo

johnsjob / bambam Goto Github PK

View Code? Open in Web Editor NEW

This project forked from porridge/bambam

0.0 0.0 0.0 4.88 MB

keyboard mashing and doodling game for babies and toddlers

License: GNU General Public License v3.0

Shell 3.83% Python 57.67% Makefile 1.94% Roff 36.56%

bambam's Introduction

Bambam

Build Status Translation Status

Bambam is a simple baby keyboard (and gamepad) masher application that locks the keyboard and mouse and instead displays bright colors, pictures, and sounds. While OSX has great programs like AlphaBaby, the original author couldn't find anything for Linux and having wanted to learn Python for a while, Bambam was his excuse.

Bambam screenshot

Installation

From a distribution package

First, see if your distribution has a bambam package already. This way takes care of dependencies, translated program messages, .desktop files and manual pages.

For example:

sudo apt install bambam
man bambam

Manual installation

Before installing this application, ensure you have the following installed:

  • Python - versions 3.9, 3.10 and 3.11 are supported
  • Pygame - version 2.x is supported, but version 1.9 might work too
  • PyYAML - only required for using extensions; any reasonably recent version should work

If not, you can install it manually as follows:

  1. Download the bambam-1.3.0.zip or bambam-1.3.0.tar.gz file.
  2. Unzip bambam-1.3.0.zip or tar zxvf bambam-1.3.0.tar.gz to create the bambam-1.3.0 directory.
  3. Change into the bambam-1.3.0 directory
cd bambam-1.3.0

If you would like to take advantage of the recommended way to start the game (see the next section) do the following:

sed -i -e "s,/usr/games/bambam,`pwd`/bambam.py," bambam-session.desktop
sudo mkdir -p /etc/X11/sessions
sudo cp bambam-session.desktop /etc/X11/sessions/

For an alternative way to start the game from your applications menu, do the following:

sed -i -e "s,/usr/games/bambam,`pwd`/bambam.py," bambam.desktop
mkdir -p ~/.local/share/applications
cp bambam.desktop ~/.local/share/applications/

Usage

Once installed, there are two ways to run the game:

  1. Recommended: as a dedicated graphical session.

    When logging into your system, look for a gear icon, which opens a drop-down menu of available session types. Select BamBam and log in.

    This way only the game is launched, and the user is logged out as soon as the game quits. Thanks to this, a child is not able to cause any damage even if he or she somehow manages to quit the game.

    This way is safer, but more cumbersome.

  2. Alternative: Directly from a terminal, or applications menu.

    Select the game from your applications menu, or to run the game from a terminal window, type bambam if you installed from a distribution package, or ./bambam.py if you installed manually.

    Why this way is not recommended:

    This way the program runs as part of a regular session. The game tries to grab the keyboard and mouse pointer focus in order to prevent a child from exiting the game or switching away from it. However it is not 100% bulletproof, depending on the exact environment.

    This way is easier, but potentially more risky. Take care when leaving your child unattended with the game.

Exiting

To exit, just directly type the command mentioned in the upper left-hand corner of the window. In the English locales, this is:

quit

Extensions

Extensions are a way to change how Bambam behaves. They are supported since version 1.3.0, currently as an experimental feature.

Extensions are directories containing media files as well as a file describing how the game should behave when a certain event happens. Anyone can create an extension, it does not require programming skills.

Currently there is only a single extension bundled with the game:

  • alphanumeric-en_US - this extension makes the program play recordings of American English pronounciation of letters and digits when the corresponding keys are pressed.

To use an extension:

  1. Make sure the extension directory is located in one of the extension base directories, that is:

    • extensions/ in the same directory as the bambam program,
    • $HOME/.local/share/bambam/extensions/,
    • /usr/share/bambam/extensions/ - if the program is installed from your distribution's package.
  2. Pass the --extension option followed by the name of the extension on program invocation.

    For example ./bambam.py --extension alphanumeric-en_US.

See separate documentation on creating extensions if you would like to create your own extension or change an existing one.

More information

More information is in the manual page. To view it, type:

man ./bambam.6

Comments or suggestions? Any feedback is appreciated, please send it to the bambam-users forum.

Translations for this game are done on Weblate. Please help translating for your mother tongue!

History

This project was moved from its code.google.com location in April 2015, since that site was about to be shut down.

Note that changes (as of 2010-08-17) from the launchpad bambam fork had been merged back to this project in February 2014.

The sounds for the alphanumeric-en_US extension were copied from https://github.com/porridge/bambam-media and are distributed under the terms of the GNU General Public License.

bambam's People

Contributors

albanobattistella avatar alfredoprades avatar booniepepper avatar brammeleman avatar comradekingu avatar dasistdaniel avatar dependabot[bot] avatar hekkup avatar jakubfabijan avatar josprachi avatar maronghappy avatar marsoft avatar mgodlewski avatar mrdon2 avatar nathanbnm avatar nicolasbrailo avatar porridge avatar pre-commit-ci[bot] avatar realpixelcode avatar sbgodin avatar shtrom avatar stephengeorgewest avatar technologyclassroom avatar weblate avatar

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.