6 Commits

Author SHA1 Message Date
a3fa227ac1 patch bump 2025-01-22 16:38:52 +00:00
b1b6c66828 reduce the time vban menus are re-enabled after a disconnect 2025-01-22 16:38:44 +00:00
cb00de36f0 add _internal/configs to config paths.
vm-compact dirs now override _internal/config

upd README TOML Files section
2025-01-22 16:30:06 +00:00
ae200068d0 upd vban-cmd dep 2025-01-17 03:06:55 +00:00
b720494c68 add gui scripts 2025-01-16 20:38:29 +00:00
6e6308a17f patch bump 2025-01-15 21:03:40 +00:00
11 changed files with 69 additions and 24 deletions

View File

@@ -65,15 +65,18 @@ Set the kind of Voicemeeter, KIND_ID may be:
## TOML Files
This is how your files should be organised. Wherever your `__main__.py` file is located (after install this can be any location), `configs` should be in the same location.
Directly inside of configs directory you may place an app.toml, vban.toml and a directory for each kind.
Inside each kind directory you may place as many custom toml configurations as you wish.
If you've downloaded the binary from [Releases][releases] you can find configs included in the `_internal/configs` directory.
You may override these configs by placing a directory `vm-compact` in one of the following locations:
- `user home directory / .config`
- `user home directory / Documents / Voicemeeter`
The contents should match the following directory structure:
.
├── `__main__.py`
├── configs
├── vm-compact
        ├── app.toml
@@ -111,7 +114,7 @@ Configure certain startup states for the app.
Configure a user config to load on app startup. Don't include the .toml extension in the config name.
- `theme`
By default the app loads up the [Sun Valley light or dark theme][def] by @rdbende. You have the option to load up the app without any theme loaded. Simply set `enabled` to false and `mode` will take no effect.
By default the app loads up the [Sun Valley light or dark theme][releases] by @rdbende. You have the option to load up the app without any theme loaded. Simply set `enabled` to false and `mode` will take no effect.
- `extends`
Extending the app will show both strips and buses. In reduced mode only one or the other. This app will extend both horizontally and vertically, simply set `extends_horizontal` true or false accordingly.
@@ -164,4 +167,5 @@ User configs may be loaded at any time via the menu.
[Rdbende](https://github.com/rdbende) for creating the beautiful [Sun Valley theme][sv-theme].
[sv-theme]: https://github.com/rdbende/Sun-Valley-ttk-theme
[sv-theme]: https://github.com/rdbende/Sun-Valley-ttk-theme
[releases]: https://github.com/onyx-and-iris/voicemeeter-compact/releases

12
poetry.lock generated
View File

@@ -223,18 +223,18 @@ files = [
[[package]]
name = "vban-cmd"
version = "2.4.12"
version = "2.5.0"
description = "Python interface for the VBAN RT Packet Service (Sendtext)"
optional = false
python-versions = "<4.0,>=3.10"
python-versions = ">=3.10"
groups = ["main"]
files = [
{file = "vban_cmd-2.4.12-py3-none-any.whl", hash = "sha256:418f97a22b474f97e985149eedcd66756e2a192c92225cdf5c37640f235e46e8"},
{file = "vban_cmd-2.4.12.tar.gz", hash = "sha256:3bc1b0ff584d1c3e611d9f0c29d4a8a1a017ebcb891bf0c8ee458a95e711ec06"},
{file = "vban_cmd-2.5.0-py3-none-any.whl", hash = "sha256:22a19037066487d464a61941a3b85a0331b498a9efb1bcacdc932e9d06c5bf87"},
{file = "vban_cmd-2.5.0.tar.gz", hash = "sha256:691a852e5052e50103839b06a0a9d0746b90df3346545c2cf4f10b099d9666e4"},
]
[package.dependencies]
tomli = {version = ">=2.0.1,<3.0.0", markers = "python_version < \"3.11\""}
tomli = {version = ">=2.0.1,<3.0", markers = "python_version < \"3.11\""}
[[package]]
name = "voicemeeter-api"
@@ -254,4 +254,4 @@ tomli = {version = ">=2.0.1,<3.0", markers = "python_version < \"3.11\""}
[metadata]
lock-version = "2.1"
python-versions = ">=3.10,<3.14"
content-hash = "dcdeea1bbc5ce5b15a8aa22261b8958926d8ee28a9651544260df76887dea8cc"
content-hash = "19c384acd36868a5bfdc3f3173f444858136603694c3f1134c0d30cd17157651"

View File

@@ -1,6 +1,6 @@
[project]
name = "voicemeeter-compact"
version = "1.9.5"
version = "1.9.8"
description = "A Compact Voicemeeter Remote App"
authors = [
{name = "Onyx and Iris",email = "code@onyxandiris.online"}
@@ -10,11 +10,16 @@ readme = "README.md"
requires-python = ">=3.10,<3.14"
dependencies = [
"voicemeeter-api (>=2.6.1,<3.0.0)",
"vban-cmd (>=2.4.12,<3.0.0)",
"vban-cmd (>=2.5.0,<3.0.0)",
"sv-ttk (>=2.6.0,<3.0.0)",
"tomli (>=2.0.1,<3.0) ; python_version < '3.11'",
]
[project.scripts]
gui-basic = "vmcompact.gui.basic:run"
gui-banana = "vmcompact.gui.banana:run"
gui-potato = "vmcompact.gui.potato:run"
[tool.poetry]
packages = [{ include = "vmcompact" }]
include = ["vmcompact/img/cat.ico"]

View File

@@ -12,14 +12,14 @@ configuration = {}
def get_configpath():
configpaths = [
for pn in (
Path.home() / '.config' / 'vm-compact',
Path.home() / 'Documents' / 'Voicemeeter' / 'vm-compact',
Path.cwd() / '_internal' / 'configs',
Path.cwd() / 'configs',
Path.home() / '.config' / 'vm-compact' / 'configs',
Path.home() / 'Documents' / 'Voicemeeter' / 'configs',
]
for configpath in configpaths:
if configpath.exists():
return configpath
):
if pn.exists():
return pn
if configpath := get_configpath():

View File

@@ -0,0 +1 @@
from .main import run

View File

@@ -0,0 +1,11 @@
import voicemeeterlib
import vmcompact
def run():
KIND_ID = 'banana'
with voicemeeterlib.api(KIND_ID) as vmr:
app = vmcompact.connect(KIND_ID, vmr)
app.mainloop()

View File

@@ -0,0 +1 @@
from .main import run

View File

@@ -0,0 +1,11 @@
import voicemeeterlib
import vmcompact
def run():
KIND_ID = 'basic'
with voicemeeterlib.api(KIND_ID) as vmr:
app = vmcompact.connect(KIND_ID, vmr)
app.mainloop()

View File

@@ -0,0 +1 @@
from .main import run

View File

@@ -0,0 +1,11 @@
import voicemeeterlib
import vmcompact
def run():
KIND_ID = 'potato'
with voicemeeterlib.api(KIND_ID) as vmr:
app = vmcompact.connect(KIND_ID, vmr)
app.mainloop()

View File

@@ -421,7 +421,7 @@ class Menus(tk.Menu):
del self.parent.__dict__['userconfigs']
self.menu_setup()
self.after(15000, self.enable_vban_menus)
self.after(500, self.enable_vban_menus)
def documentation(self):
webbrowser.open_new(r'https://voicemeeter.com/')