yetanothergeek / xctrl Goto Github PK
View Code? Open in Web Editor NEWShared library to control an X11 window manager.
License: GNU General Public License v2.0
Shared library to control an X11 window manager.
License: GNU General Public License v2.0
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.
Hi, would it be possible to create a release tag?
It would be very helpful for downstream packagers.
Thanks!
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
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.