Git Product home page Git Product logo

x11fs's Introduction

x11fs X window virtual filesystem

This is heavily based off wmutils. Check them out.

x11fs is a tool for manipulating X windows. It creates a vitual filesystem to represent open windows, similar to what /proc does for processes. This allows windows to be controlled using any language or tool with simple file IO, in a true unix fashion.

Build

After installing the relevant developement packages for fuse and xcb for your distro (on Ubuntu these are libxcb1-dev, libxcb-icccm4-dev and libfuse-dev), x11fs can be built using the make command. Installation can be done by invoking make install.

Usage

See the wiki for more information. Or go here for a simple example setup.

Contact

Please join #x11fs on freenode if you have any questions or just want to talk about the project. Please be patient however, there are not many members of the channel so it may be inactive at times.

Thanks to

Luiz de Milon for helping to come up with the initial idea. The creators of wmutils for providing some inspiration, and some basic xcb code to study.

x11fs's People

Contributors

gromgit avatar harveyhunt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

x11fs's Issues

Future of x11fs

@sdhand, I could not find a way of contacting you outside Github, so I'll post this as an issue here (feel free to email me in response or query me on Freenode).

I was wondering what your plans for future development of x11fs are. Do you have a plan of what you would like to see added and what kind of vision you have for the project?

Handling of ignored windows.

@ix mentioned that he had some trouble with the way handling ignored windows works when attempting to switch from wmutils.
The exact issue happened when making a focus changing script. As listing the mountpoint shows every window, including ignored ones (overrride_redirect = true), and unmapped windows. This means when finding a new window to focus, instead of just picking the next id from the list he had to first go and check if that window was unmapped or ignored, and if it was, go and get a new id. Obviously this is quite a lot of messy code for something that should arguably be fairly simple. Contrast this to wmutils, where you can choose to list every window, just windows which aren't unmapped or ignored or only windows which are. I was wondering if would be possible to make this sort of thing easier, and am interested in hearing people's point of view on the matter.

As far as I see we have 3 options:

  1. Leave it working how it does - people just have to go and check the mapped and ignored files when doing something like this.
  2. Make ignored (and possibly unmapped windows) hidden. This would achieve something similar to what wmutils has, except it has the downside that not all windows can be accessed from /0xXXXXXXXX and when interacting with a certain window you would first have to work out if you needed to access it using /<winid> or /.<winid>.
  3. Don't include ignored windows in the list at all. The override_redirect flag is for telling the wm not to interfere with the window, and we should respect this by making it impossible. This still leaves us with the problem of what to do with unmapped windows however.

If anyone has any strong opinions on which option to go for, or any other ideas, please tell me.
Thanks.

Support clipboard editing

Not sure if this is a feature-creep thing or out of scope, but it would be nice if x11fs supported changing and viewing the clipboard buffers.

Say, ~/.x/clip/{primary,secondary,clipboard}.

effects don't seem to take place until an event triggers

To clarify what I mean,

When I cat $X11FS/event to watch events stream in, if I try to interrupt the stream by passing SIGINT through ^C, the stream does not stop until another event happens.

Similarly, when I increase the border-width of a window (this is under dwm), the width effect does not take place until the window actually goes out of sight (e.g., by switching views or removing the window from the current tags) and is brought back.

Ideally, all effects should be immediate.

Maintainenace

The freenode channel is dead, the links to wmutils are dead too. It's still on fuse2, and the pull request viable for merging was well, not. This begs the question - is this repository still maintained?

Handling errors from shell.

How we are supposed to handle errors when something wrong happens from the shell script level?

Let's say we want to move window like so:
echo 100 > $X11FS/$WID/geometry/y
however some internal x11 error occurs.

Checking #? does not make any sense since that's clearly not the cat's fault here.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.