Giter Club home page Giter Club logo

dwm-ipc's Introduction

dwm-ipc

Main CI

dwm-ipc is a patch for dwm that implements inter-process communication through a UNIX socket. This allows you to query the window manager for information, listen for events such as tag changes or layout changes, as well as send commands to control the window manager from other programs/scripts.

Requirements

In order to build dwm you need the Xlib header files. The patch additionally requires yajl which is a tiny C JSON library.

Applying the Patch

The patch can be found on the Releases page. Download the latest version of the patch that matches your version of dwm.

The patch is best applied after all of your other patches due to the number of additions to dwm.c. The patch was designed with compatability in mind, so there are minimal deletions.

Tips

  • Apply the patch last after all your other patches to avoid merge conflicts

Patch Compatability

At the moment, the patch will only work on systems that implement epoll and is not completely portable. Portability will be improved in the future.

Supported IPC Messages

At the moment the IPC patch supports the following message requests:

  • Run user-defined command (similar to key bindings)

  • Get information about available layouts

  • Get information about the tags available

  • Get the properties of all of the monitors

  • Get the properties of a specific dwm client

  • Subscribe to tag change, client focus change, layout change events, monitor focus change events, and focused title change events.

For more info on the IPC protocol implementation, visit the wiki.

dwm-msg

dwm-msg is a cli program included in the patch which supports all of the IPC message types listed above. The program can be used to run commands, query dwm for information, and listen for events. This program is particularly useful for creating custom shell scripts to control dwm.

Related Projects

See dwmipcpp

See polybar dwm module [WIP]

dwm-ipc's People

Contributors

garbeam avatar mihirlad55 avatar hiltjo avatar cls avatar anydot avatar schachmat avatar cdown avatar ericpruitt avatar klemensn avatar shad0w73 avatar dcousens avatar osandov avatar bakkeby avatar

Watchers

James Cloos avatar

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.