Commit Graph

46 Commits

Author SHA1 Message Date
Michael Stapelberg e65ee63763 Implement logging to a SHM ringbuffer
This feature is automatically enabled when running a debug version of i3.
The logfile will use 1% of your physical RAM size, but at max 25 MiB.
2011-12-10 10:50:33 +00:00
Michael Stapelberg acf29dbfd5 Makefiles: introduce $(FLEX) and $(BISON) 2011-11-22 00:01:01 +00:00
Michael Stapelberg 98baa222f7 remove obsolete TERM_EMU build option 2011-10-23 12:00:56 +01:00
Michael Stapelberg b9db72dc8a Implement support for startup notifications
This only sets up startup notifications for the 'exec' commands and directives.

Monitoring startups follows later.
2011-10-10 15:54:17 +01:00
Raphael Kubo da Costa 99825ff268 common.mk: Silence some remaining pkg-config calls.
Some pkg-config calls still didn't redirect stderr to /dev/null, causing
the gnome-config error messages to be printed.
2011-10-10 11:43:02 +01:00
Michael Stapelberg 1942594ae9 makefile: redirect stderr to /dev/null when invoking pkg-config
This silences an error about gnome-config not being installed (pkg-config seems
to use gnome-config as a fall-back on some systems).
2011-10-09 18:35:58 +01:00
Michael Stapelberg 45a9eeb29d Bugfix: Don’t use a blank after comma in ldflags_for_lib calls (Thanks Raphael)
'-l foo' instead of '-lfoo' is a problem on FreeBSD.
2011-10-09 18:24:06 +01:00
Michael Stapelberg 094c26556e Introduce libi3, an *internal* library to eliminate code duplication 2011-10-02 16:11:30 +01:00
Michael Stapelberg 3629934b0a Check for PCRE version and disable PCRE_UCP for <= 8.10 2011-09-30 20:31:32 +01:00
Michael Stapelberg 6420b2b102 Introduce the i3-sensible-{pager,editor,terminal} scripts
The former two provide fallbacks in case $PAGER or $EDITOR is not set (which
might be more common than you think, because they have to be set in
~/.xsession, not in the shell configuration!) while the latter tries to launch
a terminal emulator. The scripts are most prominently used in i3-nagbar, which
alerts the user when the configuration is broken for some reason. Also,
i3-sensible-terminal is used in the default configuration.

This commit does not rely on the shell supporting ${PAGER:-less} anymore, which
is not the case for 'fish'.
2011-09-25 18:46:37 +01:00
Michael Stapelberg 2fc54aadf1 Implement support for PCRE regular expressions for all criteria (for_window, commands, assignments) 2011-09-10 23:53:11 +01:00
Michael Stapelberg 32ce533d54 enable -Wl,--as-needed only on Linux (doesn’t work on Mac OS X) 2011-08-01 18:09:27 +02:00
Michael Stapelberg 3c68a9158c LDFLAGS: add -Wl,--as-needed. reduces .so dependencies
Let’s see if that works on all systems :)
2011-08-01 16:13:38 +02:00
Michael Stapelberg 339a7cb8c3 make i3bar use i3’s common.mk 2011-08-01 16:13:19 +02:00
Michael Stapelberg 44f46a5ee6 Makefile: don’t set PREFIX/SYSCONFDIR (necessary for OpenBSD ports framework) (Thanks madroach) 2011-07-23 22:24:23 +02:00
Michael Stapelberg fc583adb99 makefile: link -liconv on Darwin (Thanks Marcus) 2011-07-17 15:18:30 +02:00
Michael Stapelberg 3749ed2fbe Makefile: respect and use LIBS (Thanks Kacper) 2011-07-13 13:28:31 +02:00
Michael Stapelberg 93f906308d makefiles: respect and use the CPPFLAGS variable (Thanks Kacper)
See also: http://stackoverflow.com/questions/2754966/cflags-vs-cppflags
2011-07-13 13:25:15 +02:00
Michael Stapelberg 6fb186c77c common.mk: correctly determine git branch for subfolders 2011-07-11 18:12:57 +02:00
Michael Stapelberg c55abca115 add i3-nagbar. tells you about config file errors (for example) 2011-07-10 14:33:19 +02:00
Michael Stapelberg 78264958c0 makefile: add COVERAGE flag 2011-05-08 19:56:11 +02:00
Michael Stapelberg 528f486eee Make code compatible with yajl 2.0 *and* 1.0 2011-04-27 19:52:53 +02:00
Michael Stapelberg a2e87f69ac remove hard-coded paths since we now use pkg-config for all the dependencies 2011-03-18 18:11:02 +01:00
Michael Stapelberg 696d3cb88f remove obsolete xcb-property line (Thanks SardemFF7) 2011-03-18 18:07:04 +01:00
Michael Stapelberg 0639a7d95b Make i3 compatible with the very latest xcb
This involves:
 • Compiling with xcb-util instead of xcb-{atom,aux} (they merged the libraries)
 • Not using xcb-{event,property} anymore (code removed upstream)
 • Not using the predefined WINDOW, CARDINEL, … atoms (removed upstream)
 • Using the new xcb_icccm_* data types/functions instead of just xcb_*
   (for example xcb_icccm_get_wm_hints instead of xcb_get_wm_hints)

Also I refactored the atoms to use x-macros.
2011-03-18 14:39:27 +01:00
Fernando Tarlá Cardoso Lemos 481ae6ccf2 Support pkg-config if the modules are available. 2011-02-20 16:22:09 +01:00
Fernando Tarlá Cardoso Lemos 69fc6449dc libXcursor support (themed cursors). 2010-11-28 13:01:45 +01:00
Fernando Tarlá Cardoso Lemos bfa12a5819 Port the path resolution and config loading code from -next. 2010-11-15 14:00:46 +01:00
Michael Stapelberg c1789bef8e Include git branch name in the version string 2010-06-02 11:22:09 +02:00
Michael Stapelberg 0a04ed618b Makefile: only enable when -freorder-blocks-and-partition when DEBUG != 1
…otherwise you don’t see variables in gdb
2010-05-09 22:45:21 +02:00
Michael Stapelberg ab03b3bd41 compile with -freorder-blocks-and-partition 2010-04-13 20:16:40 +02:00
Michael Stapelberg c145f7e529 first step of the big refactoring ("tree" branch).
From here on, we can track changes. It made no sense to put the
development up to this point into git.
2010-04-13 13:17:39 +02:00
Michael Stapelberg 1bce8f2104 makefiles: support PREFIX and SYSCONFDIR 2010-03-16 00:08:54 +01:00
Michael Stapelberg 9a9ba1b859 ipc: implement GET_WORKSPACES message type
This is the foundation to use dzen2 or similar as a complete
replacement for the internal workspaces bar.

A testcase is included, more documentation about the IPC interface
will follow.
2010-03-11 15:58:39 +01:00
Michael Stapelberg 952914c3c5 Remove -ftrampolines as we don’t have nested functions anymore 2010-03-11 15:36:54 +01:00
Michael Stapelberg bd76e994b8 Re-add old Xinerama code for the poor nvidia users
Add --force-xinerama when starting i3 to use Xinerama instead of RandR.
This should *ONLY* be done if you have no other choice (nvidia’s
binary driver uses twinview and does not expose the monitor information
through RandR).
2010-03-09 21:25:54 +01:00
Michael Stapelberg 85308715ea Turn nested functions into real functions or macros
This enables compilation with llvm-clang and thus closes ticket #101.
While it makes the code more ugly, I don’t see a beautiful solution
which would enable us to stay with the more elegant solution of
nested functions and still allow compilation with any other compiler
than gcc.
2010-03-07 19:00:34 +01:00
Michael Stapelberg 818e02ef35 huge change: implement RandR instead of Xinerama
Thanks to Merovius for doing a proof of concept on this one and
being a driving force behind the idea.

Using RandR instead of Xinerama means that we are now able to use
the full potential of the modern way of configuring screens. That
means, i3 now has an idea of the outputs your graphic driver
provides, which allowed us to get rid of the ugly way of detecting
changes in the screen configuration which we used before. Now, your
workspaces should not be confused when changing output modes anymore.

Also, instead of having ugly heuristics to assign your workspaces
to (the screen at position X or the second screen in the list of
screens) you will be able to just specify an output name.

As this change basically touches everything, you should be prepared
for bugs. Please test and report them!
2010-03-02 12:47:21 +01:00
Michael Stapelberg 0abf9cc570 Include date of the last commit in version number (Thanks Scytale) 2010-01-23 22:35:10 +01:00
Michael Stapelberg 75ac464c0d makefile: rather than a dependency for each source file, generate loglevels.h by recursion
This little hack runs make recursively to generate include/loglevels.h
before running any other target but skip an explicit dependency on
loglevels.h in each rule. Therefore, you do not need to rebuild
every source file when compiling.
2009-12-22 12:14:09 +01:00
Michael Stapelberg 5397e893b9 logging: new makefile target to generate loglevels at compile time
Using shell commands, a bitmask is generated for each file. Additionally,
a C header containing an array of loglevels and their files is created in
include/loglevels.h.
2009-12-19 22:40:23 +01:00
Michael Stapelberg da9de671ba Only evaluate the $(shell) expansions once in Makefiles 2009-11-09 21:29:54 +01:00
Michael Stapelberg b3bee0930e Explicitly specify -lxcb when linking to link with binutils-gold 2009-11-07 16:44:52 +01:00
Michael Stapelberg a8352a8988 Merge patches for OpenBSD compatibility 2009-09-02 22:25:50 +02:00
Michael Stapelberg 90a94af296 Fix FTBFS for GNU/kFreeBSD and possibly GNU/Hurd (Thanks Cyril) 2009-08-24 12:17:14 +02:00
Michael Stapelberg ec9b58ada9 Add i3-msg, a sample implementation and hopefully useful utility 2009-07-28 21:26:36 +02:00