Spaghetti Namespaces#119
Draft
notbabaisyou wants to merge 1 commit into
Draft
Conversation
17e5e7e to
57a7818
Compare
acff4f9 to
130e5ff
Compare
Implement display namespace isolation for X11 clients, providing Linux namespace-style isolation for the X server. Each application gets its own "display namespace" - an isolated view of the display server. Isolation features: - Window visibility isolation (XACE_RESOURCE_ACCESS) - Event delivery isolation (XACE_SEND_ACCESS, XACE_RECEIVE_ACCESS) - Input grab isolation (XACE_DEVICE_ACCESS, ProcGrabKey, ProcGrabButton) - Screen capture protection (DoGetImage, ShmGetImage) - Property access control (XACE_PROPERTY_ACCESS) - Client enumeration isolation (XACE_CLIENT_ACCESS) - Key monitoring restriction (QueryKeymap, RawKey events) - Clipboard isolation (optional, XACE_SELECTION_ACCESS)
130e5ff to
8d5689f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
tl;dr we have xnamespaces at home, no this probably won't be enabled by default for a long time
SPAGHETTI-NSis my sloppy coded alternative to Xlibre'sXnamespaces, focusing on being easy to use and being a matter of turn it on in the Xorg config or launch the server with it enabled.Window managers, compositors and system trays should get moved to the root namespace, which is where all applications are allowed to see each other and interact with another. Other applications are moved into their own namespaces and can only see root and themselves. Applications that fork off or spawn their own children are grouped into the same namespace for simplicity sake.
Of course you might be asking: What about accessibility applications,
xdg-desktop-portaland the likes? That's where Oregano steps in, this is a full CLI, GUI and daemon that lets you manage your namespaces however you like them, meaning that Xorg doesn't have to deal with one more config file. You can setup applications to get automatically promoted to the root namespace without having to do anything.What won't this protect you from?
COMPOSITEextensionHere's an example of namespaces in action, taken from Oregano:
An optional password protection mechanism is available for the truly paranoid, in addition to the option to isolate the clipboard- which is a horrible idea.
For now this is a draft until Spaghetti 26.3 development window opens. Oregano will be made public once this is merged.