mirror of
https://github.com/onyx-and-iris/voicemeeter-compact.git
synced 2026-04-08 17:03:32 +00:00
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a3fa227ac1 | |||
| b1b6c66828 | |||
| cb00de36f0 | |||
| ae200068d0 | |||
| b720494c68 | |||
| 6e6308a17f |
20
README.md
20
README.md
@@ -65,15 +65,18 @@ Set the kind of Voicemeeter, KIND_ID may be:
|
|||||||
|
|
||||||
## TOML Files
|
## 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.
|
If you've downloaded the binary from [Releases][releases] you can find configs included in the `_internal/configs` directory.
|
||||||
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.
|
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`
|
├── vm-compact
|
||||||
|
|
||||||
├── configs
|
|
||||||
|
|
||||||
├── app.toml
|
├── 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.
|
Configure a user config to load on app startup. Don't include the .toml extension in the config name.
|
||||||
|
|
||||||
- `theme`
|
- `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`
|
- `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.
|
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].
|
[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
12
poetry.lock
generated
@@ -223,18 +223,18 @@ files = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "vban-cmd"
|
name = "vban-cmd"
|
||||||
version = "2.4.12"
|
version = "2.5.0"
|
||||||
description = "Python interface for the VBAN RT Packet Service (Sendtext)"
|
description = "Python interface for the VBAN RT Packet Service (Sendtext)"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = "<4.0,>=3.10"
|
python-versions = ">=3.10"
|
||||||
groups = ["main"]
|
groups = ["main"]
|
||||||
files = [
|
files = [
|
||||||
{file = "vban_cmd-2.4.12-py3-none-any.whl", hash = "sha256:418f97a22b474f97e985149eedcd66756e2a192c92225cdf5c37640f235e46e8"},
|
{file = "vban_cmd-2.5.0-py3-none-any.whl", hash = "sha256:22a19037066487d464a61941a3b85a0331b498a9efb1bcacdc932e9d06c5bf87"},
|
||||||
{file = "vban_cmd-2.4.12.tar.gz", hash = "sha256:3bc1b0ff584d1c3e611d9f0c29d4a8a1a017ebcb891bf0c8ee458a95e711ec06"},
|
{file = "vban_cmd-2.5.0.tar.gz", hash = "sha256:691a852e5052e50103839b06a0a9d0746b90df3346545c2cf4f10b099d9666e4"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[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]]
|
[[package]]
|
||||||
name = "voicemeeter-api"
|
name = "voicemeeter-api"
|
||||||
@@ -254,4 +254,4 @@ tomli = {version = ">=2.0.1,<3.0", markers = "python_version < \"3.11\""}
|
|||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "2.1"
|
lock-version = "2.1"
|
||||||
python-versions = ">=3.10,<3.14"
|
python-versions = ">=3.10,<3.14"
|
||||||
content-hash = "dcdeea1bbc5ce5b15a8aa22261b8958926d8ee28a9651544260df76887dea8cc"
|
content-hash = "19c384acd36868a5bfdc3f3173f444858136603694c3f1134c0d30cd17157651"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "voicemeeter-compact"
|
name = "voicemeeter-compact"
|
||||||
version = "1.9.5"
|
version = "1.9.8"
|
||||||
description = "A Compact Voicemeeter Remote App"
|
description = "A Compact Voicemeeter Remote App"
|
||||||
authors = [
|
authors = [
|
||||||
{name = "Onyx and Iris",email = "code@onyxandiris.online"}
|
{name = "Onyx and Iris",email = "code@onyxandiris.online"}
|
||||||
@@ -10,11 +10,16 @@ readme = "README.md"
|
|||||||
requires-python = ">=3.10,<3.14"
|
requires-python = ">=3.10,<3.14"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"voicemeeter-api (>=2.6.1,<3.0.0)",
|
"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)",
|
"sv-ttk (>=2.6.0,<3.0.0)",
|
||||||
"tomli (>=2.0.1,<3.0) ; python_version < '3.11'",
|
"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]
|
[tool.poetry]
|
||||||
packages = [{ include = "vmcompact" }]
|
packages = [{ include = "vmcompact" }]
|
||||||
include = ["vmcompact/img/cat.ico"]
|
include = ["vmcompact/img/cat.ico"]
|
||||||
|
|||||||
@@ -12,14 +12,14 @@ configuration = {}
|
|||||||
|
|
||||||
|
|
||||||
def get_configpath():
|
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.cwd() / 'configs',
|
||||||
Path.home() / '.config' / 'vm-compact' / 'configs',
|
):
|
||||||
Path.home() / 'Documents' / 'Voicemeeter' / 'configs',
|
if pn.exists():
|
||||||
]
|
return pn
|
||||||
for configpath in configpaths:
|
|
||||||
if configpath.exists():
|
|
||||||
return configpath
|
|
||||||
|
|
||||||
|
|
||||||
if configpath := get_configpath():
|
if configpath := get_configpath():
|
||||||
|
|||||||
1
vmcompact/gui/banana/__init__.py
Normal file
1
vmcompact/gui/banana/__init__.py
Normal file
@@ -0,0 +1 @@
|
|||||||
|
from .main import run
|
||||||
11
vmcompact/gui/banana/main.py
Normal file
11
vmcompact/gui/banana/main.py
Normal 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()
|
||||||
1
vmcompact/gui/basic/__init__.py
Normal file
1
vmcompact/gui/basic/__init__.py
Normal file
@@ -0,0 +1 @@
|
|||||||
|
from .main import run
|
||||||
11
vmcompact/gui/basic/main.py
Normal file
11
vmcompact/gui/basic/main.py
Normal 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()
|
||||||
1
vmcompact/gui/potato/__init__.py
Normal file
1
vmcompact/gui/potato/__init__.py
Normal file
@@ -0,0 +1 @@
|
|||||||
|
from .main import run
|
||||||
11
vmcompact/gui/potato/main.py
Normal file
11
vmcompact/gui/potato/main.py
Normal 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()
|
||||||
@@ -421,7 +421,7 @@ class Menus(tk.Menu):
|
|||||||
del self.parent.__dict__['userconfigs']
|
del self.parent.__dict__['userconfigs']
|
||||||
self.menu_setup()
|
self.menu_setup()
|
||||||
|
|
||||||
self.after(15000, self.enable_vban_menus)
|
self.after(500, self.enable_vban_menus)
|
||||||
|
|
||||||
def documentation(self):
|
def documentation(self):
|
||||||
webbrowser.open_new(r'https://voicemeeter.com/')
|
webbrowser.open_new(r'https://voicemeeter.com/')
|
||||||
|
|||||||
Reference in New Issue
Block a user