kcm_webcam_settings is quite self explanatory. It is a module for KDE Plasma System Settings that allows to adjust and apply some settings for the webcam if available. Be aware that not all webcams expose settings.
It also defines udev rules so that whenever the webcam is plugged in, the settings are automatically applied again. This allows for instance to switch cameras and have customized settings for each of them.
kcm_webcam_setttings also support multiple devices.
cmake
kf5-ki18n-devel
kf5-kcmutils-devel
kf5-kdeclarative-devel
qt5-qtsvg-devel
kf5-plasma-devel
qt5-qtmultimedia-devel
v4l-utils
kf5-ki18n
kf5-kcmutils
kf5-kdeclarative
qt5-qtsvg
kf5-plasma
Before running kcmshell5 kcm_webcam_settings
or systemsettings5
export QT_LOGGING_RULES="kcm.webcam_settings.debug=true"
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=~/.local/kde
make
sudo make install
source prefix.sh
kcmshell5 kcm_webcam_settings
git clone https://github.com/infra-monkey/kcm_webcam_settings.git
cd kcm_webcam_settings
cmake ..
make
sudo make install
The unique identifier of the device is probably not that unique depending on the model. In the case of two devices with the same serialid, only the first one would be configured.
The resolution and pixel format is defined through Video4Linux but the applications don't seem to always use it. The result in the applications might not be what is configured in systemsettings.
The settings are set system wide. This means that if multiple users are configured on the system and define different settings, the last one to modify the settings will define it for everyone.
The Zoom Client will not use the settings defined in this module if "HD" is checked in the "Zoom application" camera settings.
This Plugin will crash if v4l2loopback
is installed.
The kcm need root permission to write the udev rules.
An action is create allowing one function to use root privileges. This function only writes in /etc/udev/rules.d/99-persistent-webcam.rules
and reloads the udev rules.
I maintain rpm for Fedora in Copr.
Supported platforms are :
- Fedora 34 (x86_64,aarch64)
- Fedora 35 (x86_64,aarch64)
- Fedora 36 (x86_64,aarch64)