GithubHelp home page GithubHelp logo

xctrl's Introduction

The X11 control library is a shared library that allows you to query and
manipulate various aspects of an X11 window manager and the windows it manages. 

It is based largely on Tomas Styblo's "wmctrl" command line tool, but has been
transformed into a C library with some additional features and a Lua binding.

It is intended to work with any EWMH / NetWM compatible window manager, but 
since support for these standards varies between different window managers and
clients, some functionality might be missing in some environments.

To build the Lua module, simply type "make" from the top-level directory,
and "make install" to install install it in Lua's package.cpath.

By default, the Makefile will use the first lua headers it can find. If your
Lua headers are installed somewhere else, you can do something like:

  % make EXTRA_CFLAGS=-I/usr/include/lua5.1
 
"make install" will use your "lua" executable to parse the package.cpath.
If your Lua executable has another name, specify the name as LUA= when
you install:

  % make install LUA=lua5.1

You can also specify a non-standard install path with DESTDIR=

  % make install DESTDIR=~/my-lua-modules

By default the Makefile builds a stripped library optimized for size,
but you can disable optimizations and retain debugging information by
using "make DEBUG=1"

It is also possible to build a separate shared library for use in
other applications by typing "make lib" but there is currently no
"make install" target for that type of build.


To link the C library statically into your own standalone application 
or library, define XCTRL_API as static and include the "xctrl.c" 
source file directly:

 #include <X11/Xlib.h>
 #define XCTRL_API static
 #include "xctrl.c"



The Lua binding should be fairly well documented, see the file:
 ./docs/lxctrl.html

There is currently no documentation for the C library, but reading the
sources and the Lua docs should give you some idea of what's there.



xctrl's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

xctrl's Issues

create release tag

Hi, would it be possible to create a release tag?

It would be very helpful for downstream packagers.

Thanks!

Build failure

I tried installing this on Trisquel 6, but I got the following error, and I now 
have no idea on how to proceed.

$ make EXTRA_CFLAGS=-I/usr/include/lua5.2
rm -f *.o xctrl.so
cc -I/usr/include/lua5.2 -Wall -DVERSION=\"1.09\" -Os -Wall -pedantic -Wshadow 
-Wunused -Wbad-function-cast -Wmissing-prototypes  -lX11 -lXmu -s -shared 
lxctrl.c -o xctrl.so
/usr/bin/ld: /tmp/ccnrYzNq.o: relocation R_X86_64_32 against `.rodata.str1.1' 
can not be used when making a shared object; recompile with -fPIC
/tmp/ccnrYzNq.o: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[1]: *** [xctrl.so] Error 1
make: *** [default] Error 2


Original issue reported on code.google.com by [email protected] on 16 Nov 2014 at 2:01

GPL License for extension?

Hi Jeff,

Just wondering if you're completely set on the GPL for this extension.

I would dig to put into luabuild but since it does optional static linking even 
LGPL would be an issue.

Not a big issue, really; I don't share the usual anti-GPL sentiment of many Lua 
people.

steve d.

Original issue reported on code.google.com by [email protected] on 17 Apr 2012 at 1:48

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.