| Crates.io | litra-autotoggle |
| lib.rs | litra-autotoggle |
| version | 1.2.0 |
| created_at | 2024-10-09 08:51:28.295229+00 |
| updated_at | 2026-01-23 10:18:49.118019+00 |
| description | Automatically turn your Logitech Litra device on when your webcam turns on, and off when your webcam turns off |
| homepage | |
| repository | https://github.com/timrogers/litra-autotoggle |
| max_upload_size | |
| id | 1402146 |
| size | 94,457 |
litra-autotoggle💡 Automatically turn your Logitech Litra device on when your webcam turns on, and off when your webcam turns off (macOS, Linux, and Windows)
The following Logitech Litra devices, connected via USB, are supported:
litra-autotoggle by running brew tap timrogers/tap && brew install litra-autotoggle.litra-autotoggle --help to check that everything is working.litra-autotoggle crate by running cargo install litra-autotoggle.litra-autotoggle --help to check that everything is working and see the available commands.PATH (or $PATH on Unix-like systems), so you can execute it from your shell/terminal. For the best experience, call it litra-autotoggle (or litra-autotoggle.exe on Windows).litra-autotoggle --help to check that everything is working.Run brew services start timrogers/tap/litra-autotoggle.
litra-autotoggle will run in the background, and all connected Litra devices will turn on when your webcam turns on, and off when your webcam turns off. If no Litra device is connected, the listener will keep on running, but will do nothing.
To customize the background service's configuration, edit the config file at $(brew --prefix)/etc/litra-autotoggle.yml. For information on how litra-autotoggle config files work, see "Using a configuration file" below. To validate your config file, run litra-autotoggle --config-file $(brew --prefix)/etc/litra-autotoggle.yml.
[!NOTE] When starting the service for the first time on a macOS device, you will receive a notification warning you about software running in the background.
Just run litra-autotoggle. By default, all connected Litra devices will turn on when your webcam turns on, and off when your webcam turns off.
The following arguments are supported:
--config-file to specify a YAML configuration file containing options (see "Using a configuration file" below)--serial-number to point to a specific Litra device by serial number. You can get the serial number using the litra devices command in the litra CLI.--device-path to point to a specific Litra device by its path (useful for devices that don't show a serial number).--device-type to point to a specific Litra device type (glow, beam or beam_lx).--require-device to enforce that a Litra device must be connected. By default, the listener will keep running even if no Litra device is found. With this set, the listener will exit whenever it looks for a Litra device and none is found.--video-device (Linux only) to watch a specific video device (e.g. /dev/video0). By default, all video devices will be watched.--delay to customize the delay (in milliseconds) between a webcam event being detected and toggling your Litra. When your webcam turns on or off, multiple events may be generated in quick succession. Setting a delay allows the program to wait for all events before taking action, avoiding flickering. Defaults to 1.5 seconds (1500 milliseconds).--verbose to enable verbose logging--back to toggle the back light on Litra Beam LX devices. When enabled, the back light will be turned on/off together with the front light.[!NOTE] Only one filter (
--serial-number,--device-path, or--device-type) can be specified at a time.
Instead of passing arguments on the command line, you can use a YAML configuration file with the --config-file option. This is particularly useful when running litra-autotoggle as a background service.
Create a YAML file (e.g., config.yml) with your desired options:
# By default, the tool will control all connected Litra devices. You can specify ONE
# of the below filters to limit which device(s) it will control.
#
# device_type: glow
# serial_number: ABCD1
# device_path: DevSrvsID:4296789687
#
# By default, the tool will watch all connected video devices. On Linux, you can limit
# this to one specific device by specifying its path below.
#
# video_device: /dev/video0
#
# By default, the tool will wait 1.5 seconds after a video device event before toggling
# the light to reduce flickering. You can adjust this delay (in milliseconds) below.
#
# delay: 2000
#
# By default, if no Litra devices are found, the tool will keep running. You can change this
# behavior by setting the option below to true.
#
# require_device: true
#
# By default, the tool emits simple logs. You can enable debug logging by setting the option
# below to true.
#
# verbose: true
#
# By default, only the front light is toggled. On Litra Beam LX devices, you can also toggle
# the back light by setting the option below to true.
#
# back: true
Then run:
litra-autotoggle --config-file config.yml
Available configuration options:
All command-line options can be specified in the configuration file using underscored names:
serial_number (string)device_path (string)device_type (string: glow, beam, or beam_lx)require_device (boolean)video_device (string, Linux only)delay (number, in milliseconds)verbose (boolean)back (boolean, toggles the back light on Litra Beam LX devices)Important notes:
serial_number, device_path, or device_type) can be specified in the config filelitra-autotoggle.example.yml for a complete example with all available optionsudev permissions (Linux only)On most Linux operating systems, you will need to manually configure permissions using udev to allow non-root users to access and manage Litra devices.
To allow all users that are part of the video group to access the Litra devices, copy the 99-litra.rules file into /etc/udev/rules.d.
Next, reboot your computer or run the following commands as root:
# udevadm control --reload-rules
# udevadm trigger
On Windows, litra-autotoggle monitors camera usage by polling the Windows registry. The application checks the registry path:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\webcam
The registry contains entries for each application that has accessed the camera, with LastUsedTimeStart and LastUsedTimeStop timestamps. The camera is considered active when any application has a LastUsedTimeStart timestamp greater than its LastUsedTimeStop timestamp.
The application polls the registry every 500ms for changes. This approach is compatible with all Windows applications that use the standard camera APIs.