120 lines
4.2 KiB
TOML
120 lines
4.2 KiB
TOML
[socket]
|
|
# Which socket to listen on? If relative,
|
|
# defaults to being relative to $XDG_RUNTIME_DIR
|
|
listen = "wayland-10"
|
|
# Which Wayland socket to use as upstream?
|
|
# If missing, defaults to $WAYLAND_DISPLAY
|
|
# upstream = "wayland-1"
|
|
|
|
[exec]
|
|
# A command to invoke when asking the user to permit or deny a
|
|
# Wayland request (configured via [[filter.requests]] below).
|
|
#
|
|
# A status code 0 indicates the request is allowed. Else, it is
|
|
# blocked.
|
|
#
|
|
# If missing, `action = "ask"` will act like `action = "block"`.
|
|
#
|
|
# The first and second arguments to this program will be the interface
|
|
# and request name, respectively. The third argument will be a human-readable
|
|
# description for the request, as configured by the `desc` field.
|
|
#
|
|
# A JSON representation of the request will be passed through via the
|
|
# WL_MITM_MSG_JSON env variable.
|
|
ask_cmd = "contrib/ask-bemenu.sh"
|
|
|
|
# A command to invoke when a request filter has `action = "notify"`.
|
|
#
|
|
# Everything is the same as `ask_cmd`, except that we don't wait for this
|
|
# process to finish and we ignore its output and status code. The request
|
|
# will not be filtered whatever this command does.
|
|
notify_cmd = "contrib/notify-libnotify.sh"
|
|
|
|
[logging]
|
|
# If true, log all known requests (client -> server) at the DEBUG level
|
|
# log_all_requests = false
|
|
|
|
# If true, log all known events (server -> client) at the DEBUG level
|
|
# log_all_events = false
|
|
|
|
# Set the maximum log level output to stdout
|
|
# Overrides the RUST_LOG environmet variable if set
|
|
# log_level = "info"
|
|
|
|
[filter]
|
|
# A list of Wayland global singleton objects that's allowed
|
|
# Each of them generally correspond to an implemented protocol
|
|
# Note that we can only allow globals we have a corresponding XML
|
|
# file under proto/ for.
|
|
allowed_globals = [
|
|
# Base wl protocols
|
|
"wl_compositor",
|
|
"wl_shm",
|
|
"wl_data_device_manager",
|
|
"wl_output", # each output is also a global
|
|
"wl_seat",
|
|
# Window management
|
|
"xdg_wm_base",
|
|
"zxdg_decoration_manager_v1",
|
|
# Presentation time (used by video playback)
|
|
"wp_presentation",
|
|
# Surface scaling
|
|
"wp_viewporter",
|
|
# Linux DMA-BUF
|
|
"zwp_linux_dmabuf_v1",
|
|
# Linux DRM (for clients requiring GPU accel)
|
|
"wl_drm",
|
|
"wp_drm_lease_device_v1",
|
|
"wp_linux_drm_syncobj_manager_v1",
|
|
# Clipboard manager from wlroots, used for the filter example below.
|
|
"zwlr_data_control_manager_v1"
|
|
]
|
|
|
|
# When set to true, do not actually filter anything -- only emit a
|
|
# warning when a filter would have been triggered.
|
|
# Defaults to false
|
|
# dry_run = false
|
|
|
|
# A list of requests we'd like to filter
|
|
[[filter.requests]]
|
|
# The interface name in question
|
|
interface = "zwlr_data_control_offer_v1"
|
|
# List of requests to apply this action to
|
|
# In this case, the "receive" request is the one where the client
|
|
# asks the server to sent over clipboard data
|
|
requests = [ "receive" ]
|
|
# What to do? "block" to block it outright; "ask" to invoke
|
|
# `ask_cmd` first.
|
|
action = "ask"
|
|
# A short, human-readable description of the action; passed to the
|
|
# `ask_cmd`
|
|
desc = "pasting from clipboard (from background)"
|
|
# What to do when we need to block the request, either from ask_cmd's return
|
|
# value or from `action = "block"`? "ignore" means we'll simply not pass this
|
|
# request to the server. "reject" means we'll send an error back (see `error_code`),
|
|
# but that also means most client implementations will exit entirely.
|
|
# Defaults to "ignore"
|
|
block_type = "ignore"
|
|
# An error code to send back when this is blocked; defaults to 0
|
|
# See the interface's XML definition (or at Wayland explorer) for
|
|
# a list of error codes.
|
|
# This is only used when `block_type = "reject"`.
|
|
#error_code = 0
|
|
|
|
[[filter.requests]]
|
|
interface = "zwlr_data_control_device_v1"
|
|
# These are the requests used by clients to set the clipboard content
|
|
requests = [ "set_selection", "set_primary_selection" ]
|
|
action = "ask"
|
|
desc = "overriding clipboard selection"
|
|
|
|
# This is the paste request used when we press Ctrl-V in a foreground application.
|
|
#
|
|
# Filtering this would make most apps misbehave whether we use "ignore" or "reject",
|
|
# so best course of action is to simply notify the user that the foreground app has
|
|
# pasted.
|
|
[[filter.requests]]
|
|
interface = "wl_data_offer"
|
|
requests = [ "receive" ]
|
|
action = "notify"
|
|
desc = "pasted from clipboard or accepted drag and drop"
|