arcan-cfgfs - FUSE file system driver for window manager automation
arcan-cfgfs [OPTIONS] --control=/path/to/control /path/to/mount
This tool provides a FUSE (userspace filesystem) module for the simple line
protocol used by durden and other window managers to provide an interface for
external control and testing. It is still in an early stage, and breaking
changes might occur.
The contents of the filesystem will vary with the window manager,
and some configuration in the window manager itself might be needed for the
feature to be accessible.
At the moment, this is quite slow. The actual response time of the commands will
vary with the refresh rate of the display. There are two big factors that
contribute to this problem, one fixable and another inherent to the design.
The inherent problem is that all filesystem operations are aligned
to the state of the active output displays. Since there is an intimate
relationship between the GPU, its displays and the active arcan window
manager, many operations depend on asynchronous operations on the GPU. To
avoid triggering undefined behaviors in the GL graphics API or causing
severe performance degradation due to artificially triggered pipeline
stalls, virtual file system operations are deferred until a point where
current pipeline has been synchronized with the output displays.
The other problem is that the FUSE driver itself is very poor at
caching lookups. This means that actions such as listing a directory may
contain multiple operations that will repeatedly run into the
synchronization problem above.
Since this tool can be used to automate and explore contents of the active
window manager, it has far reaching privacy and security implications. It is
up to the user to make sure that only the ones that should have this
capability has access to the mount point and the file system.
All arguments can be listed via the '-h' or '--help' command line switch, the
exact details will vary with the FUSE implementation on your system.
There is one necessary argument, and that is --control. This
should point to the control domain socket used by the window manager to
implement the underlying protocol and data format.
Copyright © 2018 Bjorn Stahl. 3-clause BSD licensed. This is free
software: you are free to change and redistribute it. There is NO WARRANTY, to
the extent permitted by law.
Bjorn Stahl <contact at arcan-fe dot com>