Fix README after merge clobbered it
This commit is contained in:
parent
1e88c125f9
commit
a71df92315
1 changed files with 22 additions and 12 deletions
34
README.md
34
README.md
|
@ -11,9 +11,9 @@ A couple of other fun features exist such as minor movement animations when the
|
|||
|
||||
|
||||
## Requirements and Installation
|
||||
pyngtube is built for Python3. Python2 is long since EOLed; no support will be provided. Python 3.6 should be the minimum required version but is testing on 3.9 and 3.10.
|
||||
pyngtube is built for Python3. Python2 is long since EOLed; no support will be provided. Python 3.6 should be the minimum required version but is tested on 3.9+.
|
||||
|
||||
pyngtube requires WxPython, Pygame, PyYAML, and PyAudio. Fairly hefty requirements for what it does. You can get a simplified rundown in `requirements.txt`.
|
||||
pyngtube requires tkinter, Pygame, PyYAML, and PyAudio. Fairly hefty requirements for what it does. You can get a simplified rundown in `requirements.txt`.
|
||||
|
||||
Installation should be fairly simple. The most direct approach is to install the pre-requisites using Pip like so.
|
||||
|
||||
|
@ -45,26 +45,21 @@ If you run into build errors at the `pip install` step you're likely on an OS th
|
|||
|
||||
|
||||
## Usage
|
||||
Basic launching can be accomplished with `python main.pyw` in the pyngtube dir, or double-clicing the main.pyw file. This should launch a default experience with a very crappy hand-drawn default avatar.
|
||||
Basic launching can be accomplished with `python main.pyw` in the pyngtube dir, or double-clicking the main.pyw file. This should launch a default experience with a very crappy hand-drawn default avatar.
|
||||
|
||||
There is no user interface. You can scroll the mousewheel inside the window to change the microphone threshold and can right-click in the window to open a dialog to select a new profile to load. See Configuration below for avatar configuration specs.
|
||||
|
||||
|
||||
## Configuration
|
||||
The main configuration file is pyngtube.yaml. Pyngtube will search for this file in the following locations in order, taking the first it finds:
|
||||
|
||||
* The location provided as the first argument to main.pyw
|
||||
* %HOME%/.pyngtube.yaml
|
||||
* %HOME%/pyngtube.yaml
|
||||
* %PWD%/pyngtube.yaml
|
||||
* (pygntube_dir)/pyngtube.yaml
|
||||
* Fall back to hardcoded defaults
|
||||
The main configuration file is ptv.yaml, in the same directory as main.pyw. You may also manually provide a different config file location as an argument to main.pyw.
|
||||
|
||||
This file is a standard yaml file of configuration directives. It is recommended that this main config file only include the bare necessities of configuring the program: microphone settings and window size if you need it. Then the avatar settings should be imported via a profile declared with the `profile` directive.
|
||||
|
||||
A profile is a directory that consists of a second configuration yaml file, and all the images needed to make the avatar work. The `profile` directive should be simply the name of the directory and the yaml file must be named profile.yaml. Pyngtube will attempt to find this profile in the pyngtube installation directory. profile.yaml must declare the images to be used for the avatar.
|
||||
|
||||
Profiles can either be animated or not. An animated profile can have a list of images for each state, and will shuffle through them in a loop. Check out how the `default` and `default-animated` profiles differ for more info. The `default-animated` profile uses identical animation frames as merely an example but if you alter the images, you'll see animation.
|
||||
You can configure either static pngtubers or animated ones. Static ones will only have blink and mouth open frames while animated ones will have entire animations for each state that play in a loop. Animations are lists of PNG images.
|
||||
|
||||
You can see the configuration for static and animated avatars both in the `default` and `default-animated` profile directories.
|
||||
|
||||
|
||||
## Troubleshooting
|
||||
|
@ -72,6 +67,8 @@ If the app crashes, closes suddenly, or doesn't open at all, the first step is t
|
|||
|
||||
Configuration errors are fatal (causing a forced exit) by design, including invalid keys in the configuration file.
|
||||
|
||||
If the terminal outputs errors about your system not being built to support tcl/tk, tkinter, etc, you're likely missing a tcl/tk package. This should only happen under Linux; Windows installs of Python should always support tk.
|
||||
|
||||
|
||||
## Known Issues
|
||||
First and foremost, this is a personal tool I'm making available as an (arguably bad) example and starting point for someone else's personal tool. This means assumptions are made about my environment that may not work in your environment. Certain bugs I may not care about that you do. Here's a list of what I can think of that's a little "off" right now:
|
||||
|
@ -81,3 +78,16 @@ First and foremost, this is a personal tool I'm making available as an (arguably
|
|||
* For that matter, there's no way to change threshold if you're using a pointing device without a wheel short of editing the config file
|
||||
- What little debugging and error raising there is prints to the console. This needs to be reworked to raise actual GUI errors
|
||||
- pyngtube makes the awkward assumption that you have one audio input device. It should work fine even if you don't, but some configuration around this should be provided
|
||||
- I don't like the dependency on tkinter because it's undisclosed and cannot be put into `requirements.txt` but the greater evil prior was a depdency on wxPython which has a massive build and install process. Most py installations come with tkinter bundled
|
||||
|
||||
|
||||
## Contributing
|
||||
My Forgejo instance is closed to new registrations so contributions aren't really accepted at the moment. If you must submit a code change, let me know and I'll arrange something.
|
||||
|
||||
Code is formatted with [python-black](https://github.com/psf/black) before commit.
|
||||
|
||||
|
||||
## Why The Weird License?
|
||||
The [ACSL](https://anticapitalist.software/) most closely aligns with how I want things I create to be used. In a better world I'd license things MIT or even some variant of CC-BY, but I've seen and experienced time and time again that fully open software tends to filter up, benefitting the largest corporations more than the common user. This results in megacorps benefitting while providing nothing in return and, in the worst cases, even demanding FOSS devs perform free labor for them to perform their security audits, investigate their change requests for their specific use cases, and the like.
|
||||
|
||||
I hold no illusion that anything I make will ever be important, but I refuse to even put myself in the position where that could occur. Is the ACSL enforceable? That's a matter of test-by-trial. It says what I want to say with my work; that's what matters.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue