65 lines
2.4 KiB
Nix
65 lines
2.4 KiB
Nix
{ pkgs, ... }:
|
|
{
|
|
home.packages = with pkgs; [
|
|
### Python script that uses OBS-Studio's websocket to toggle recording when a hotkey is pressed.
|
|
( writers.writePython3Bin "obs-toggle-recording" {
|
|
libraries = [
|
|
( python311Packages.buildPythonPackage {
|
|
pname = "obsws_python";
|
|
version = "1.7.0";
|
|
src = fetchurl {
|
|
url = "https://files.pythonhosted.org/packages/22/29/dcb5286c9301eee8b72aee1e997761fb2cca9bf963fcd373acdfca353af3/obsws_python-1.7.0-py3-none-any.whl";
|
|
sha256 = "0jvqfvqgvqjsv0jsddj51m4wrinbrc2gbymmnmv9kfarfj7ly7g7";
|
|
};
|
|
format = "wheel";
|
|
doCheck = false;
|
|
buildInputs = [];
|
|
checkInputs = [];
|
|
nativeBuildInputs = [];
|
|
propagatedBuildInputs = [
|
|
( python311Packages.buildPythonPackage {
|
|
pname = "tomli";
|
|
version = "2.0.2";
|
|
src = fetchurl {
|
|
url = "https://files.pythonhosted.org/packages/cf/db/ce8eda256fa131af12e0a76d481711abe4681b6923c27efb9a255c9e4594/tomli-2.0.2-py3-none-any.whl";
|
|
sha256 = "0f5ar8vfq7lkydj19am5ymxg11d00ql0kv5hj3v07lskbi429gif";
|
|
};
|
|
format = "wheel";
|
|
doCheck = false;
|
|
buildInputs = [];
|
|
checkInputs = [];
|
|
nativeBuildInputs = [];
|
|
propagatedBuildInputs = [];
|
|
} )
|
|
( python311Packages.buildPythonPackage {
|
|
pname = "websocket-client";
|
|
version = "1.8.0";
|
|
src = fetchurl {
|
|
url = "https://files.pythonhosted.org/packages/5a/84/44687a29792a70e111c5c477230a72c4b957d88d16141199bf9acb7537a3/websocket_client-1.8.0-py3-none-any.whl";
|
|
sha256 = "09m5pwwi4bbwdv2vdhlc5k0737kskhnxyb5j17l9ii7mjz4lrd0p";
|
|
};
|
|
format = "wheel";
|
|
doCheck = false;
|
|
buildInputs = [];
|
|
checkInputs = [];
|
|
nativeBuildInputs = [];
|
|
propagatedBuildInputs = [];
|
|
} )
|
|
];
|
|
} )
|
|
];
|
|
} ''
|
|
import obsws_python as obs
|
|
client = obs.ReqClient(host='localhost', port=4455)
|
|
recording_status = client.get_record_status()
|
|
active = recording_status.output_active
|
|
paused = recording_status.output_paused
|
|
|
|
if not active:
|
|
client.start_record()
|
|
else:
|
|
client.toggle_record_pause()
|
|
'' )
|
|
];
|
|
}
|