Skip to content

Instantly share code, notes, and snippets.

View cclauss's full-sized avatar

Christian Clauss cclauss

View GitHub Profile
@cclauss
cclauss / theBlues.py
Last active July 28, 2024 14:29
Play a blues melody on Pythonista on the iPad (iOS)
# Play a blues melody on Pythonista on the iPad (iOS)
import sound
import time
def playNotes(inNotes, inWithEmphisis=False):
for note in inNotes:
sound.play_effect('Piano_' + note)
if (inWithEmphisis):
time.sleep(0.25)
sound.play_effect('Piano_' + note)
@cclauss
cclauss / installNyamuk.py
Created March 9, 2013 09:47
Using nyamuk on Pythonista on iOS. > Download from github the nyamuk Python library and install it for Pythonista on iOS.
#!/usr/bin/env python
# installNyamuk -- https://github.com/iwanbk/nyamuk
# download from github the nyamuk Python library and install it for Pythonista on iOS
#import nyamuk, sys # uncomment if you want to test if nyamuk is already installed
#print('got it...')
#sys.exit()
import os, shutil, urllib, zipfile
@cclauss
cclauss / blueMaze.py
Created March 31, 2013 20:36
blueMaze -- just a hack to get to know the Pythonista graphics Scene class..
from scene import *
from random import random
class MyScene (Scene):
def setup(self):
# This will be called before the first frame is drawn.
self.root_layer = Layer(self.bounds)
self.mLines = []
self.mCount = 0
(self.mCurrLocX, self.mCurrLocY) = self.bounds.center()
@cclauss
cclauss / draggableImages.py
Last active December 16, 2015 04:49
draggableImages demo for Pythonista on iOS.
# http://omz-forums.appspot.com/pythonista/post/5144563366756352
import random, scene
sizeInPixels = 100
def rectFromPt(inPoint): # returns a scene.Rect centered on inPoint
half = sizeInPixels / 2
return scene.Rect(inPoint.x - half, inPoint.y - half, sizeInPixels, sizeInPixels)
@cclauss
cclauss / tabsTo4Spaces.py
Created April 22, 2013 14:55
Simple Pythonista utility script that you need to put this Pythonista Actions menu. It goes though the script currently open in the Pythonista Editor, converting all tab characters ('\t') into four space characters.
# replace ALL tab characters with four spaces
import editor, sys
theText = editor.get_text()
theCount = theText.count('\t')
if not theText.count('\t'):
print('no tabs found.')
sys.exit()
theLength = len(theText)
@cclauss
cclauss / macOSXPasteboard.py
Created August 11, 2013 05:00
Get and set the text content of the Mac OS X Pasteboard using pbcopy and pbpaste
#!/usr/bin/env python
# For details, in Mac OS X Terminal type: man pbcopy
import subprocess, sys
def getClipboardData(): # Only works for data types: {txt | rtf | ps}
p = subprocess.Popen(['pbpaste'], stdout=subprocess.PIPE)
retcode = p.wait()
data = p.stdout.read()
@cclauss
cclauss / flippedDisplay.py
Last active December 21, 2015 13:38
Pythonista's canvas module's graphics origin (0, 0) is at the bottomLeft. "with flippedDisplay": will temporarily switch the graphics origin to be at the topLeft.
import canvas, scene
from contextlib import contextmanager
@contextmanager
def privateGstate():
"""Save the canvas.gstate and then restore it when leaving the 'with' clause."""
canvas.save_gstate()
try: yield None
finally: canvas.restore_gstate()
@cclauss
cclauss / tiltingColor.py
Last active December 21, 2015 18:48
A gravity hack that uses Pythonista's scene.gravity() method to change screen colors when the user tilts their device. Red = abs(pitch), Green = abs(yaw), Blue = abs(roll)
Moved to: https://github.com/cclauss/Pythonista_scene
@cclauss
cclauss / noDoze.py
Last active January 20, 2023 07:08
Update: This looks like a far better solution... `console.set_idle_timer_disabled(flag)` Disable or enable the idle timer (which puts the device to sleep after a certain period of inactivity). -- Keep relaunching yourself to prevent your iOS device from falling asleep. Run, sleep 30 seconds, store state in argv (or a file), reboot self -- Repeat…
# Update: This looks like a far better solution...
# `console.set_idle_timer_disabled(flag)`
# Disable or enable the idle timer (which puts the device to sleep after a certain period of inactivity).
# noDoze.py -- keep relaunching yourself to prevent
# your iOS device from falling asleep.
import notification, time, urllib
def argsString(argv):
@cclauss
cclauss / sceneAndThread.py
Last active December 22, 2015 01:49
Pythonista's Scene module only wants a single scene to run so the last Scene that has had it's run() method called (either in the main thread or a child thread) will be the ONLY one to execute. All others will ignored. The scene will not get launched (i.e. it's setup() method called) until AFTER the main thread has completed.
import scene, threading, time
colorRed = scene.Color(1, 0, 0)
colorGreen = scene.Color(0, 1, 0)
colorBlue = scene.Color(0, 0, 1)
theColors = (colorRed, colorGreen, colorBlue)
greyLight = scene.Color(.7, .7, .7)
greyMedium = scene.Color(.5, .5, .5)
greyDark = scene.Color(.3, .3, .3)