snakeware

Python-based Linux distro for x86-64 and RPi
git clone git://squid-tech.com/snakeware.git
Log | Files | Refs | README

commit 39adb1ff6846518d9c5ccac97776566d9e3ecd56
parent ceccc8643b750553d803abc18e50606b5dcfeff9
Author: Josh Moore <jxm5210@g.rit.edu>
Date:   Mon,  1 Jun 2020 23:38:15 -0400

Merge pull request #34 from joshiemoore/speaknspell

speaknspell - audio support
Diffstat:
MREADME.md | 7++++---
Msnakeware/config/pip_modules.txt | 1+
Msnakeware/config/x86-64-buildroot-config | 25+++++++++++++++++++++----
Msnakeware/config/x86-64-kernel-config | 321++++++++++++++++++++++++++++++++++++-------------------------------------------
Msnakeware/overlay/etc/init.d/S30startpy | 6++++++
Asnakewm/apps/fun/speaknspell/__init__.py | 13+++++++++++++
Asnakewm/apps/fun/speaknspell/speak.py | 58++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
7 files changed, 248 insertions(+), 183 deletions(-)

diff --git a/README.md b/README.md @@ -18,9 +18,10 @@ have a usable set of userspace apps and utilities written entirely in Python, be ## Running [Download the latest release image.](https://github.com/joshiemoore/snakeware/releases) -Then, burn the image file to a flash drive and boot it, or launch it in QEMU with this command: +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` +`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: ``` @@ -63,7 +64,7 @@ This is an abridged list of future plans: * ~~Modify partition scheme for faster boot - /usr on its own partition?~~ * Take advantage of pygame_gui's theme functionality * Dynamic/interactive desktop backgrounds -* Sound support +* ~~Sound support~~ * Networking -> web browser * Ditch busybox, init via Python somehow * ... diff --git a/snakeware/config/pip_modules.txt b/snakeware/config/pip_modules.txt @@ -1 +1,2 @@ pygame_gui +pyttsx3 diff --git a/snakeware/config/x86-64-buildroot-config b/snakeware/config/x86-64-buildroot-config @@ -375,8 +375,8 @@ BR2_INIT_BUSYBOX=y # BR2_INIT_SYSTEMD is not set # BR2_INIT_NONE is not set # BR2_ROOTFS_DEVICE_CREATION_STATIC is not set -BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS=y -# BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV is not set +# BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS is not set +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y # BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV is not set BR2_ROOTFS_DEVICE_TABLE="system/device_table.txt" # BR2_ROOTFS_DEVICE_TABLE_SUPPORTS_EXTENDED_ATTRIBUTES is not set @@ -479,7 +479,24 @@ BR2_PACKAGE_SKELETON_INIT_SYSV=y # # Audio and video applications # -# BR2_PACKAGE_ALSA_UTILS is not set +BR2_PACKAGE_ALSA_UTILS=y +BR2_PACKAGE_ALSA_UTILS_ALSACONF=y +BR2_PACKAGE_ALSA_UTILS_ACONNECT=y +BR2_PACKAGE_ALSA_UTILS_ALSACTL=y +# BR2_PACKAGE_ALSA_UTILS_ALSALOOP is not set +BR2_PACKAGE_ALSA_UTILS_ALSAMIXER=y +BR2_PACKAGE_ALSA_UTILS_ALSAUCM=y +BR2_PACKAGE_ALSA_UTILS_ALSATPLG=y +BR2_PACKAGE_ALSA_UTILS_AMIDI=y +BR2_PACKAGE_ALSA_UTILS_AMIXER=y +BR2_PACKAGE_ALSA_UTILS_APLAY=y +BR2_PACKAGE_ALSA_UTILS_APLAYMIDI=y +BR2_PACKAGE_ALSA_UTILS_ARECORDMIDI=y +BR2_PACKAGE_ALSA_UTILS_ASEQDUMP=y +BR2_PACKAGE_ALSA_UTILS_ASEQNET=y +BR2_PACKAGE_ALSA_UTILS_BAT=y +BR2_PACKAGE_ALSA_UTILS_IECSET=y +BR2_PACKAGE_ALSA_UTILS_SPEAKER_TEST=y # BR2_PACKAGE_ATEST is not set # BR2_PACKAGE_AUMIX is not set # BR2_PACKAGE_BELLAGIO is not set @@ -525,7 +542,7 @@ BR2_PACKAGE_MJPEGTOOLS_SIMD_SUPPORT=y # BR2_PACKAGE_MOTION is not set # BR2_PACKAGE_MPD is not set # BR2_PACKAGE_MPD_MPC is not set -# BR2_PACKAGE_MPG123 is not set +BR2_PACKAGE_MPG123=y # BR2_PACKAGE_MPV is not set # BR2_PACKAGE_MULTICAT is not set # BR2_PACKAGE_MUSEPACK is not set diff --git a/snakeware/config/x86-64-kernel-config b/snakeware/config/x86-64-kernel-config @@ -4,10 +4,10 @@ # # -# Compiler: gcc (Arch Linux 9.3.0-1) 9.3.0 +# Compiler: gcc (GCC) 10.1.0 # CONFIG_CC_IS_GCC=y -CONFIG_GCC_VERSION=90300 +CONFIG_GCC_VERSION=100100 CONFIG_CLANG_VERSION=0 CONFIG_CC_CAN_LINK=y CONFIG_CC_HAS_ASM_GOTO=y @@ -30,10 +30,10 @@ CONFIG_HAVE_KERNEL_LZMA=y CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y CONFIG_HAVE_KERNEL_LZ4=y -# CONFIG_KERNEL_GZIP is not set +CONFIG_KERNEL_GZIP=y # CONFIG_KERNEL_BZIP2 is not set # CONFIG_KERNEL_LZMA is not set -CONFIG_KERNEL_XZ=y +# CONFIG_KERNEL_XZ is not set # CONFIG_KERNEL_LZO is not set # CONFIG_KERNEL_LZ4 is not set CONFIG_DEFAULT_HOSTNAME="archlinux" @@ -671,10 +671,7 @@ CONFIG_DMIID=y CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y # CONFIG_ISCSI_IBFT is not set # CONFIG_FW_CFG_SYSFS is not set -CONFIG_GOOGLE_FIRMWARE=y -# CONFIG_GOOGLE_SMI is not set -# CONFIG_GOOGLE_COREBOOT_TABLE is not set -# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set +# CONFIG_GOOGLE_FIRMWARE is not set # # EFI (Extensible Firmware Interface) Support @@ -835,12 +832,8 @@ CONFIG_ARCH_HAS_MEM_ENCRYPT=y CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y # end of GCOV-based kernel profiling -CONFIG_PLUGIN_HOSTCC="g++" +CONFIG_PLUGIN_HOSTCC="" CONFIG_HAVE_GCC_PLUGINS=y -CONFIG_GCC_PLUGINS=y -# CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set -# CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set -# CONFIG_GCC_PLUGIN_RANDSTRUCT is not set # end of General architecture-dependent options CONFIG_RT_MUTEXES=y @@ -2496,6 +2489,7 @@ CONFIG_TOUCHSCREEN_PROPERTIES=y # CONFIG_TOUCHSCREEN_PIXCIR is not set # CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set # CONFIG_TOUCHSCREEN_WM831X is not set +# CONFIG_TOUCHSCREEN_WM97XX is not set # CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set # CONFIG_TOUCHSCREEN_TOUCHIT213 is not set # CONFIG_TOUCHSCREEN_TSC_SERIO is not set @@ -2709,7 +2703,7 @@ CONFIG_ACPI_I2C_OPREGION=y CONFIG_I2C_BOARDINFO=y CONFIG_I2C_COMPAT=y # CONFIG_I2C_CHARDEV is not set -CONFIG_I2C_MUX=m +CONFIG_I2C_MUX=y # # Multiplexer I2C Chip support @@ -3399,6 +3393,7 @@ CONFIG_EZX_PCAP=y # CONFIG_MFD_VIPERBOARD is not set # CONFIG_MFD_RETU is not set # CONFIG_MFD_PCF50633 is not set +# CONFIG_UCB1400_CORE is not set # CONFIG_MFD_RDC321X is not set # CONFIG_MFD_RT5033 is not set CONFIG_MFD_RC5T583=y @@ -3542,46 +3537,8 @@ CONFIG_REGULATOR=y # CONFIG_REGULATOR_WM8350 is not set # CONFIG_REGULATOR_WM8400 is not set CONFIG_CEC_CORE=m -CONFIG_RC_CORE=m -# CONFIG_RC_MAP is not set -CONFIG_LIRC=y -CONFIG_RC_DECODERS=y -# CONFIG_IR_NEC_DECODER is not set -# CONFIG_IR_RC5_DECODER is not set -# CONFIG_IR_RC6_DECODER is not set -# CONFIG_IR_JVC_DECODER is not set -# CONFIG_IR_SONY_DECODER is not set -# CONFIG_IR_SANYO_DECODER is not set -# CONFIG_IR_SHARP_DECODER is not set -# CONFIG_IR_MCE_KBD_DECODER is not set -# CONFIG_IR_XMP_DECODER is not set -# CONFIG_IR_IMON_DECODER is not set -# CONFIG_IR_RCMM_DECODER is not set -CONFIG_RC_DEVICES=y -# CONFIG_RC_ATI_REMOTE is not set -# CONFIG_IR_ENE is not set -# CONFIG_IR_HIX5HD2 is not set -# CONFIG_IR_IMON is not set -# CONFIG_IR_IMON_RAW is not set -# CONFIG_IR_MCEUSB is not set -# CONFIG_IR_ITE_CIR is not set -# CONFIG_IR_FINTEK is not set -# CONFIG_IR_NUVOTON is not set -# CONFIG_IR_REDRAT3 is not set -# CONFIG_IR_SPI is not set -# CONFIG_IR_STREAMZAP is not set -# CONFIG_IR_WINBOND_CIR is not set -# CONFIG_IR_IGORPLUGUSB is not set -# CONFIG_IR_IGUANA is not set -# CONFIG_IR_TTUSBIR is not set -# CONFIG_RC_LOOPBACK is not set -# CONFIG_IR_GPIO_CIR is not set -# CONFIG_IR_GPIO_TX is not set -# CONFIG_IR_PWM_TX is not set -# CONFIG_IR_SERIAL is not set -# CONFIG_IR_SIR is not set -# CONFIG_RC_XBOX_DVD is not set -CONFIG_MEDIA_SUPPORT=m +# CONFIG_RC_CORE is not set +CONFIG_MEDIA_SUPPORT=y # # Multimedia core support @@ -3592,17 +3549,16 @@ CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y CONFIG_MEDIA_RADIO_SUPPORT=y CONFIG_MEDIA_SDR_SUPPORT=y CONFIG_MEDIA_CEC_SUPPORT=y -CONFIG_MEDIA_CEC_RC=y CONFIG_MEDIA_CONTROLLER=y CONFIG_MEDIA_CONTROLLER_DVB=y # CONFIG_MEDIA_CONTROLLER_REQUEST_API is not set -CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_DEV=y CONFIG_VIDEO_V4L2_SUBDEV_API=y -CONFIG_VIDEO_V4L2=m +CONFIG_VIDEO_V4L2=y CONFIG_VIDEO_V4L2_I2C=y # CONFIG_VIDEO_ADV_DEBUG is not set # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set -CONFIG_DVB_CORE=m +CONFIG_DVB_CORE=y CONFIG_DVB_MMAP=y CONFIG_DVB_NET=y CONFIG_DVB_MAX_ADAPTERS=16 @@ -3641,12 +3597,10 @@ CONFIG_MEDIA_USB_SUPPORT=y # # CONFIG_VIDEO_AU0828 is not set # CONFIG_VIDEO_CX231XX is not set -# CONFIG_VIDEO_TM6000 is not set # # Digital TV USB devices # -# CONFIG_DVB_USB is not set # CONFIG_DVB_USB_V2 is not set # CONFIG_DVB_TTUSB_BUDGET is not set # CONFIG_DVB_TTUSB_DEC is not set @@ -3684,7 +3638,6 @@ CONFIG_MEDIA_PCI_SUPPORT=y # # Media capture/analog TV support # -# CONFIG_VIDEO_IVTV is not set # CONFIG_VIDEO_HEXIUM_GEMINI is not set # CONFIG_VIDEO_HEXIUM_ORION is not set # CONFIG_VIDEO_MXB is not set @@ -3693,11 +3646,7 @@ CONFIG_MEDIA_PCI_SUPPORT=y # # Media capture/analog/hybrid TV support # -# CONFIG_VIDEO_CX18 is not set -# CONFIG_VIDEO_CX23885 is not set # CONFIG_VIDEO_CX25821 is not set -# CONFIG_VIDEO_CX88 is not set -# CONFIG_VIDEO_BT848 is not set # CONFIG_VIDEO_SAA7134 is not set # CONFIG_VIDEO_SAA7164 is not set @@ -3708,13 +3657,10 @@ CONFIG_MEDIA_PCI_SUPPORT=y # CONFIG_DVB_BUDGET_CORE is not set # CONFIG_DVB_B2C2_FLEXCOP_PCI is not set # CONFIG_DVB_PLUTO2 is not set -# CONFIG_DVB_DM1105 is not set # CONFIG_DVB_PT1 is not set # CONFIG_DVB_PT3 is not set -# CONFIG_MANTIS_CORE is not set # CONFIG_DVB_NGENE is not set # CONFIG_DVB_DDBRIDGE is not set -# CONFIG_DVB_SMIPCIE is not set # CONFIG_DVB_NETUP_UNIDVB is not set # CONFIG_VIDEO_IPU3_CIO2 is not set CONFIG_V4L_PLATFORM_DRIVERS=y @@ -3743,6 +3689,7 @@ CONFIG_SDR_PLATFORM_DRIVERS=y # Supported MMC/SDIO adapters # CONFIG_RADIO_ADAPTERS=y +CONFIG_RADIO_TEA575X=y # CONFIG_RADIO_SI470X is not set # CONFIG_RADIO_SI4713 is not set # CONFIG_USB_MR800 is not set @@ -3764,17 +3711,16 @@ CONFIG_RADIO_ADAPTERS=y # end of Texas Instruments WL128x FM driver (ST based) # CONFIG_CYPRESS_FIRMWARE is not set -CONFIG_VIDEOBUF2_CORE=m -CONFIG_VIDEOBUF2_V4L2=m -CONFIG_VIDEOBUF2_MEMOPS=m -CONFIG_VIDEOBUF2_VMALLOC=m +CONFIG_VIDEOBUF2_CORE=y +CONFIG_VIDEOBUF2_V4L2=y +CONFIG_VIDEOBUF2_MEMOPS=y +CONFIG_VIDEOBUF2_VMALLOC=y # # Media ancillary drivers (tuners, sensors, i2c, spi, frontends) # CONFIG_MEDIA_SUBDRV_AUTOSELECT=y CONFIG_MEDIA_ATTACH=y -# CONFIG_VIDEO_IR_I2C is not set # # I2C Encoders, decoders, sensors and other helper chips @@ -3952,32 +3898,32 @@ CONFIG_MEDIA_ATTACH=y # CONFIG_CXD2880_SPI_DRV is not set # end of Media SPI Adapters -CONFIG_MEDIA_TUNER=m +CONFIG_MEDIA_TUNER=y # # Customize TV tuners # -CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_SIMPLE=y # CONFIG_MEDIA_TUNER_TDA18250 is not set -CONFIG_MEDIA_TUNER_TDA8290=m -CONFIG_MEDIA_TUNER_TDA827X=m -CONFIG_MEDIA_TUNER_TDA18271=m -CONFIG_MEDIA_TUNER_TDA9887=m -CONFIG_MEDIA_TUNER_TEA5761=m -CONFIG_MEDIA_TUNER_TEA5767=m +CONFIG_MEDIA_TUNER_TDA8290=y +CONFIG_MEDIA_TUNER_TDA827X=y +CONFIG_MEDIA_TUNER_TDA18271=y +CONFIG_MEDIA_TUNER_TDA9887=y +CONFIG_MEDIA_TUNER_TEA5761=y +CONFIG_MEDIA_TUNER_TEA5767=y # CONFIG_MEDIA_TUNER_MSI001 is not set -CONFIG_MEDIA_TUNER_MT20XX=m +CONFIG_MEDIA_TUNER_MT20XX=y # CONFIG_MEDIA_TUNER_MT2060 is not set # CONFIG_MEDIA_TUNER_MT2063 is not set # CONFIG_MEDIA_TUNER_MT2266 is not set # CONFIG_MEDIA_TUNER_MT2131 is not set # CONFIG_MEDIA_TUNER_QT1010 is not set -CONFIG_MEDIA_TUNER_XC2028=m -CONFIG_MEDIA_TUNER_XC5000=m -CONFIG_MEDIA_TUNER_XC4000=m +CONFIG_MEDIA_TUNER_XC2028=y +CONFIG_MEDIA_TUNER_XC5000=y +CONFIG_MEDIA_TUNER_XC4000=y # CONFIG_MEDIA_TUNER_MXL5005S is not set # CONFIG_MEDIA_TUNER_MXL5007T is not set -CONFIG_MEDIA_TUNER_MC44S803=m +CONFIG_MEDIA_TUNER_MC44S803=y # CONFIG_MEDIA_TUNER_MAX2165 is not set # CONFIG_MEDIA_TUNER_TDA18218 is not set # CONFIG_MEDIA_TUNER_FC0011 is not set @@ -4433,19 +4379,21 @@ CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y # CONFIG_LOGO is not set # end of Graphics support -CONFIG_SOUND=m +CONFIG_SOUND=y CONFIG_SOUND_OSS_CORE=y # CONFIG_SOUND_OSS_CORE_PRECLAIM is not set -CONFIG_SND=m -CONFIG_SND_TIMER=m -CONFIG_SND_PCM=m -CONFIG_SND_HWDEP=m -CONFIG_SND_RAWMIDI=m +CONFIG_SND=y +CONFIG_SND_TIMER=y +CONFIG_SND_PCM=y +CONFIG_SND_HWDEP=y +CONFIG_SND_SEQ_DEVICE=y +CONFIG_SND_RAWMIDI=y CONFIG_SND_JACK=y CONFIG_SND_JACK_INPUT_DEV=y CONFIG_SND_OSSEMUL=y -# CONFIG_SND_MIXER_OSS is not set -# CONFIG_SND_PCM_OSS is not set +CONFIG_SND_MIXER_OSS=y +CONFIG_SND_PCM_OSS=y +CONFIG_SND_PCM_OSS_PLUGINS=y CONFIG_SND_PCM_TIMER=y # CONFIG_SND_HRTIMER is not set CONFIG_SND_DYNAMIC_MINORS=y @@ -4460,92 +4408,117 @@ CONFIG_SND_DEBUG=y CONFIG_SND_CTL_VALIDATION=y CONFIG_SND_VMASTER=y CONFIG_SND_DMA_SGBUF=y -# CONFIG_SND_SEQUENCER is not set +CONFIG_SND_SEQUENCER=y +# CONFIG_SND_SEQ_DUMMY is not set +# CONFIG_SND_SEQUENCER_OSS is not set +CONFIG_SND_SEQ_MIDI_EVENT=y +CONFIG_SND_SEQ_MIDI=y +CONFIG_SND_SEQ_MIDI_EMUL=y +CONFIG_SND_SEQ_VIRMIDI=y +CONFIG_SND_MPU401_UART=y +CONFIG_SND_OPL3_LIB=y +CONFIG_SND_OPL3_LIB_SEQ=y +CONFIG_SND_VX_LIB=y +CONFIG_SND_AC97_CODEC=y CONFIG_SND_DRIVERS=y # CONFIG_SND_PCSP is not set # CONFIG_SND_DUMMY is not set # CONFIG_SND_ALOOP is not set +# CONFIG_SND_VIRMIDI is not set # CONFIG_SND_MTPAV is not set # CONFIG_SND_SERIAL_U16550 is not set # CONFIG_SND_MPU401 is not set +# CONFIG_SND_AC97_POWER_SAVE is not set +CONFIG_SND_SB_COMMON=y CONFIG_SND_PCI=y -# CONFIG_SND_AD1889 is not set -# CONFIG_SND_ALS300 is not set -# CONFIG_SND_ALS4000 is not set -# CONFIG_SND_ALI5451 is not set -# CONFIG_SND_ASIHPI is not set -# CONFIG_SND_ATIIXP is not set +CONFIG_SND_AD1889=y +CONFIG_SND_ALS300=y +CONFIG_SND_ALS4000=y +CONFIG_SND_ALI5451=y +CONFIG_SND_ASIHPI=y +CONFIG_SND_ATIIXP=y # CONFIG_SND_ATIIXP_MODEM is not set -# CONFIG_SND_AU8810 is not set -# CONFIG_SND_AU8820 is not set -# CONFIG_SND_AU8830 is not set -# CONFIG_SND_AW2 is not set -# CONFIG_SND_AZT3328 is not set -# CONFIG_SND_BT87X is not set -# CONFIG_SND_CA0106 is not set -# CONFIG_SND_CMIPCI is not set -# CONFIG_SND_OXYGEN is not set -# CONFIG_SND_CS4281 is not set -# CONFIG_SND_CS46XX is not set -# CONFIG_SND_CTXFI is not set -# CONFIG_SND_DARLA20 is not set -# CONFIG_SND_GINA20 is not set -# CONFIG_SND_LAYLA20 is not set -# CONFIG_SND_DARLA24 is not set -# CONFIG_SND_GINA24 is not set -# CONFIG_SND_LAYLA24 is not set -# CONFIG_SND_MONA is not set -# CONFIG_SND_MIA is not set -# CONFIG_SND_ECHO3G is not set -# CONFIG_SND_INDIGO is not set -# CONFIG_SND_INDIGOIO is not set -# CONFIG_SND_INDIGODJ is not set -# CONFIG_SND_INDIGOIOX is not set -# CONFIG_SND_INDIGODJX is not set -# CONFIG_SND_EMU10K1 is not set -# CONFIG_SND_EMU10K1X is not set -# CONFIG_SND_ENS1370 is not set -# CONFIG_SND_ENS1371 is not set -# CONFIG_SND_ES1938 is not set -# CONFIG_SND_ES1968 is not set -# CONFIG_SND_FM801 is not set -# CONFIG_SND_HDSP is not set -# CONFIG_SND_HDSPM is not set -# CONFIG_SND_ICE1712 is not set -# CONFIG_SND_ICE1724 is not set -# CONFIG_SND_INTEL8X0 is not set -# CONFIG_SND_INTEL8X0M is not set -# CONFIG_SND_KORG1212 is not set -# CONFIG_SND_LOLA is not set -# CONFIG_SND_LX6464ES is not set -# CONFIG_SND_MAESTRO3 is not set -# CONFIG_SND_MIXART is not set -# CONFIG_SND_NM256 is not set -# CONFIG_SND_PCXHR is not set -# CONFIG_SND_RIPTIDE is not set -# CONFIG_SND_RME32 is not set -# CONFIG_SND_RME96 is not set -# CONFIG_SND_RME9652 is not set -# CONFIG_SND_SE6X is not set -# CONFIG_SND_SONICVIBES is not set -# CONFIG_SND_TRIDENT is not set -# CONFIG_SND_VIA82XX is not set -# CONFIG_SND_VIA82XX_MODEM is not set -# CONFIG_SND_VIRTUOSO is not set -# CONFIG_SND_VX222 is not set -# CONFIG_SND_YMFPCI is not set +CONFIG_SND_AU8810=y +CONFIG_SND_AU8820=y +CONFIG_SND_AU8830=y +CONFIG_SND_AW2=y +CONFIG_SND_AZT3328=y +CONFIG_SND_BT87X=y +CONFIG_SND_BT87X_OVERCLOCK=y +CONFIG_SND_CA0106=y +CONFIG_SND_CMIPCI=y +CONFIG_SND_OXYGEN_LIB=y +CONFIG_SND_OXYGEN=y +CONFIG_SND_CS4281=y +CONFIG_SND_CS46XX=y +CONFIG_SND_CS46XX_NEW_DSP=y +CONFIG_SND_CTXFI=y +CONFIG_SND_DARLA20=y +CONFIG_SND_GINA20=y +CONFIG_SND_LAYLA20=y +CONFIG_SND_DARLA24=y +CONFIG_SND_GINA24=y +CONFIG_SND_LAYLA24=y +CONFIG_SND_MONA=y +CONFIG_SND_MIA=y +CONFIG_SND_ECHO3G=y +CONFIG_SND_INDIGO=y +CONFIG_SND_INDIGOIO=y +CONFIG_SND_INDIGODJ=y +CONFIG_SND_INDIGOIOX=y +CONFIG_SND_INDIGODJX=y +CONFIG_SND_EMU10K1=y +CONFIG_SND_EMU10K1_SEQ=y +CONFIG_SND_EMU10K1X=y +CONFIG_SND_ENS1370=y +CONFIG_SND_ENS1371=y +CONFIG_SND_ES1938=y +CONFIG_SND_ES1968=y +CONFIG_SND_ES1968_INPUT=y +CONFIG_SND_ES1968_RADIO=y +CONFIG_SND_FM801=y +CONFIG_SND_FM801_TEA575X_BOOL=y +CONFIG_SND_HDSP=y + +# +# Don't forget to add built-in firmwares for HDSP driver +# +CONFIG_SND_HDSPM=y +CONFIG_SND_ICE1712=y +CONFIG_SND_ICE1724=y +CONFIG_SND_INTEL8X0=y +CONFIG_SND_INTEL8X0M=y +CONFIG_SND_KORG1212=y +CONFIG_SND_LOLA=y +CONFIG_SND_LX6464ES=y +CONFIG_SND_MAESTRO3=y +CONFIG_SND_MAESTRO3_INPUT=y +CONFIG_SND_MIXART=y +CONFIG_SND_NM256=y +CONFIG_SND_PCXHR=y +CONFIG_SND_RIPTIDE=y +CONFIG_SND_RME32=y +CONFIG_SND_RME96=y +CONFIG_SND_RME9652=y +CONFIG_SND_SONICVIBES=y +CONFIG_SND_TRIDENT=y +CONFIG_SND_VIA82XX=y +CONFIG_SND_VIA82XX_MODEM=y +CONFIG_SND_VIRTUOSO=y +CONFIG_SND_VX222=y +CONFIG_SND_YMFPCI=y # # HD-Audio # -CONFIG_SND_HDA=m -CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDA=y +CONFIG_SND_HDA_INTEL=y CONFIG_SND_HDA_HWDEP=y CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_INPUT_BEEP=y CONFIG_SND_HDA_INPUT_BEEP_MODE=1 CONFIG_SND_HDA_PATCH_LOADER=y -CONFIG_SND_HDA_CODEC_REALTEK=m +CONFIG_SND_HDA_CODEC_REALTEK=y # CONFIG_SND_HDA_CODEC_ANALOG is not set # CONFIG_SND_HDA_CODEC_SIGMATEL is not set # CONFIG_SND_HDA_CODEC_VIA is not set @@ -4556,23 +4529,23 @@ CONFIG_SND_HDA_CODEC_REALTEK=m # CONFIG_SND_HDA_CODEC_CA0132 is not set # CONFIG_SND_HDA_CODEC_CMEDIA is not set # CONFIG_SND_HDA_CODEC_SI3054 is not set -CONFIG_SND_HDA_GENERIC=m +CONFIG_SND_HDA_GENERIC=y CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 # end of HD-Audio -CONFIG_SND_HDA_CORE=m +CONFIG_SND_HDA_CORE=y CONFIG_SND_HDA_COMPONENT=y CONFIG_SND_HDA_PREALLOC_SIZE=0 CONFIG_SND_INTEL_NHLT=y -CONFIG_SND_INTEL_DSP_CONFIG=m +CONFIG_SND_INTEL_DSP_CONFIG=y CONFIG_SND_SPI=y CONFIG_SND_USB=y -CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_AUDIO=y CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y -CONFIG_SND_USB_UA101=m -CONFIG_SND_USB_USX2Y=m +CONFIG_SND_USB_UA101=y +CONFIG_SND_USB_USX2Y=y # CONFIG_SND_USB_CAIAQ is not set -CONFIG_SND_USB_US122L=m +CONFIG_SND_USB_US122L=y # CONFIG_SND_USB_6FIRE is not set # CONFIG_SND_USB_HIFACE is not set # CONFIG_SND_BCD2000 is not set @@ -4582,7 +4555,9 @@ CONFIG_SND_USB_US122L=m # CONFIG_SND_USB_VARIAX is not set # CONFIG_SND_SOC is not set CONFIG_SND_X86=y +CONFIG_SND_SYNTH_EMUX=y # CONFIG_SND_XEN_FRONTEND is not set +CONFIG_AC97_BUS=y # # HID support @@ -5917,17 +5892,11 @@ CONFIG_LSM="yama" # # Kernel hardening options # -CONFIG_GCC_PLUGIN_STRUCTLEAK=y # # Memory initialization # -# CONFIG_INIT_STACK_NONE is not set -# CONFIG_GCC_PLUGIN_STRUCTLEAK_USER is not set -# CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF is not set -CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL=y -# CONFIG_GCC_PLUGIN_STRUCTLEAK_VERBOSE is not set -# CONFIG_GCC_PLUGIN_STACKLEAK is not set +CONFIG_INIT_STACK_NONE=y CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set # end of Memory initialization diff --git a/snakeware/overlay/etc/init.d/S30startpy b/snakeware/overlay/etc/init.d/S30startpy @@ -1,5 +1,11 @@ #!/bin/sh +amixer sset Master unmute +amixer sset Headphones unmute +amixer sset Speaker unmute + +amixer sset Master 100% + # PYTHON THREE FOREVER BABY! while [ 1 ] do diff --git a/snakewm/apps/fun/speaknspell/__init__.py b/snakewm/apps/fun/speaknspell/__init__.py @@ -0,0 +1,13 @@ +from .speak import SpeakSpell + +def load(manager, params): + """ + Create and launch a new instance of SpeakSpell. + """ + # default position + pos = (100, 100) + + if params is not None and len(params) > 0: + pos = params[0] + + SpeakSpell(pos, manager) diff --git a/snakewm/apps/fun/speaknspell/speak.py b/snakewm/apps/fun/speaknspell/speak.py @@ -0,0 +1,58 @@ +import threading + +import pygame +import pygame_gui + +from pygame_gui.elements import UILabel +from pygame_gui.elements import UITextEntryLine + +import pyttsx3 + +class SpeakSpell(pygame_gui.elements.UIWindow): + speakthrd = None + + def __init__(self, pos, manager): + super().__init__( + pygame.Rect(pos, (400,128)), + manager=manager, + window_display_title='speaknspell', + object_id='#speaknspell' + ) + + self.label = UILabel( + relative_rect=pygame.Rect(-20, 10, 400, 20), + text='', + manager=manager, + container=self + ) + + self.input = UITextEntryLine( + relative_rect=pygame.Rect(0, 40, 368, 30), + manager=manager, + container=self + ) + + self.engine = pyttsx3.init() + self.engine.setProperty('rate', 150) + self.speakthrd = None + + self.speak('Hello, thank you for using snakeware!') + + def speak(self, text): + if self.speakthrd is not None and self.speakthrd.is_alive(): + return + + if text == '': + return + + self.engine.say(text) + self.speakthrd = threading.Thread(target=self.engine.runAndWait, args=()) + self.speakthrd.start() + self.label.set_text(text) + self.input.set_text('') + + def process_event(self, event): + super().process_event(event) + if event.type == pygame.USEREVENT and event.ui_element == self.input: + if event.user_type == pygame_gui.UI_TEXT_ENTRY_FINISHED: + self.speak(self.input.get_text())