Skip to content

privacy

Shows when your microphone, camera, or screen is being captured, based on PipeWire stream links. Camera detection also notices applications opening video devices directly through V4L2. Each input type has its own icon that switches between an “off” glyph (idle) and an active glyph (in use). Hovering the widget lists the applications currently using each device.

Direct V4L2 access is reported using process names (/proc/<pid>/comm, at most 15 characters) and works independently of the PipeWire daemon. It indicates an open /dev/video* node, including applications that keep a device open while not streaming. An application is shown only after it has held a device open for about 3 seconds, so brief capability probes (for example, Discord checking cameras during a call) do not trigger the indicator. Metadata devices are excluded. Other V4L2 nodes such as mem2mem codecs, v4l2loopback, and HDMI capture can still appear when a process holds them open. Video devices you cannot read, and processes whose file descriptors cannot be inspected due to system permissions, cannot be detected this way.

SettingTypeDefaultDescription
hide_inactiveboolfalseHide idle icons, and hide the whole widget when nothing is being captured
icon_spacingnumber4Spacing between the indicator icons in pixels (0–48)
active_colorstring"primary"Color role (or fixed hex) for an icon while that device is in use
inactive_colorstring"outline_variant"Color role (or fixed hex) for an idle icon (when hide_inactive is off)

Global microphone, camera, and screen-share filters live under [shell.privacy].

[widget.privacy]
type = "privacy"
hide_inactive = true
icon_spacing = 6