Commit graph

380 commits

Author SHA1 Message Date
Daniel Eklöf
b173f36e7e gitlab-ci: initial commit 2019-01-20 12:52:15 +01:00
Daniel Eklöf
4f5e22e231 module/xwindow: de-registering events from active window may fail
De-registering events from the previous active window may fail (when
the previous window has been destroyed).

Catch this early, and only log a debug message. This avoids having a
normal occurrence polluting the output with error messages.
2019-01-20 12:04:29 +01:00
Daniel Eklöf
d86c9914e5 module/mpd: silence overflow warning 2019-01-20 11:35:20 +01:00
Daniel Eklöf
fa7a2f90a5 PKGBUILD: add dependencies
For now, we *require* everything.

We _could_ modify the build system to exclude modules whose
dependencies haven't been met. That would allow us to make some of the
dependencies optional.
2019-01-20 11:17:22 +01:00
Daniel Eklöf
383e03127a PKGBUILD: new 2019-01-20 10:33:28 +01:00
Daniel Eklöf
498a3e3d78 particle/string: free glyphs and clusters in destroy() 2019-01-20 10:06:17 +01:00
Daniel Eklöf
5a0d192ec1 particle/string: re-use glyphs calculated in begin_expose()
In begin_expose(), we call cairo_scaled_font_text_to_glyphs()
with (x,y) = (0,0), in order to calculate the glyph extents (needed
for width calculation).

Then, in expose(), we called it again, but with correct (x,y) offsets.

Simplify this, by caching the glyphs from begin_expose(). Then, in
expose(), simply adjust the glyph offsets before calling
cairo_show_text_glyphs().
2019-01-20 10:02:13 +01:00
Daniel Eklöf
b1453fd65e font: simplify configuration format; it's just a string now 2019-01-20 09:51:44 +01:00
Daniel Eklöf
314b43b4f0 main: initialize locale
This affects e.g. the clock module, which (by default) formats the
date according to the locale's preferred format.
2019-01-19 20:50:02 +01:00
Daniel Eklöf
bfa9ce9970 particle/ramp: value is *also* offsetted by the minimum value 2019-01-19 20:17:26 +01:00
Daniel Eklöf
cffb007009 module/alsa: handle failure(s) to attach to card or find mixer 2019-01-19 19:58:02 +01:00
Daniel Eklöf
fbb6cd47c4 module/xkb: log all available layouts at startup 2019-01-19 18:54:31 +01:00
Daniel Eklöf
dff3104c85 misc: make use of the xcb-aux library 2019-01-19 18:47:34 +01:00
Daniel Eklöf
9d5bbe0566 misc: xcb_connect() always returns a non-NULL pointer
Instead, we need to check if xcb_connection_has_error() says something
went wrong. We also need to call xcb_disconnect() on the disfunctional
XCB connection object.
2019-01-19 18:45:15 +01:00
Daniel Eklöf
406d6b3b83 module/backlight: fix logging name 2019-01-19 17:06:23 +01:00
Daniel Eklöf
174b1f05e0 module/xkb: log initial state 2019-01-19 17:05:34 +01:00
Daniel Eklöf
502c2bd746 module/network: remove debug logging 2019-01-19 17:01:38 +01:00
Daniel Eklöf
e6745f55dd module/mpd: socket may already exist, but not be connectable 2019-01-19 17:00:08 +01:00
Daniel Eklöf
cecd5d3e6f module/mpd: use inotify, when possible, to watch for MPD socket creation
When we're connecting to a unix domain socket, use inotify to watch
for it's creation, instead of trying to re-connect over and over
again.
2019-01-19 13:49:58 +01:00
Daniel Eklöf
4ff9af1ebd module/xkb: add define for debug logging, but don't enable it 2019-01-19 13:49:44 +01:00
Daniel Eklöf
01be29d660 module/xkb: update scroll lock state on indicator state notify event 2019-01-19 13:22:40 +01:00
Daniel Eklöf
925dfb736a module/xkb: implement indicator state
For now, we only expose caps-, num- and scroll-lock, as booleans.
2019-01-19 12:30:07 +01:00
Daniel Eklöf
7bb849bdf4 xcb: use strncpy() to extract atom name 2019-01-19 12:18:54 +01:00
Daniel Eklöf
04f7f3485f particle/string: don't cut in the middle of an utf-8 multibyte
When limiting a string (due to it exceeding it's max length), make
sure not to cut it in the middle of an utf-8 multibyte, as this
results in an invalid utf-8 string.
2019-01-17 20:44:51 +01:00
Daniel Eklöf
09270c4670 particle/string: handle conversion failures in cairo_scaled_font_text_to_glyphs()
In particular, use cairo_scaled_font_text_to_glyphs() to calculate the
extents, since the cairo_scaled_font_text_extents() will leave the
scaled font in an error state, which is impossible to recuperate from.
2019-01-17 20:18:46 +01:00
Daniel Eklöf
1bbdaf145f module/xwindow: add missing break to switch case 2019-01-17 20:17:04 +01:00
Daniel Eklöf
64c366c051 xcb: cleanup err message generated by xcb_error() 2019-01-16 19:02:32 +01:00
Daniel Eklöf
85d1971ac3 module/i3: read socket path from root window's I3_SOCKET_PATH property
This way, we don't have to execute another process just to get the
path.
2019-01-16 17:22:13 +01:00
Daniel Eklöf
dc7fde335e main: refactor 2019-01-16 17:22:08 +01:00
Daniel Eklöf
b195c19599 bar: remove struct bar_run_context; store abort_fd in bar struct 2019-01-16 16:38:04 +01:00
Daniel Eklöf
a4ce3372ce main: refactor 2019-01-16 16:34:59 +01:00
Daniel Eklöf
77f8e6fa28 xcb: xcb_error() no longer prefixes error message with "XCB: " 2019-01-16 16:27:25 +01:00
Daniel Eklöf
bf558eca1b module/xwindow: log X errors 2019-01-16 16:26:27 +01:00
Daniel Eklöf
c5309abbd0 module/xwindow: don't crash if there is no active window 2019-01-16 16:24:56 +01:00
Daniel Eklöf
41c53a7b2f font: ref-count font objects 2019-01-15 21:01:18 +01:00
Daniel Eklöf
7525ae99eb font: cache loaded fonts
Instantiating a new font is expensive, both in CPU and
memory. Mitigate by adding a cache. On a hit, instead of instantiating
a new font, clone the one from the cache.

Remember, cloning is basically just a ref counter bump.
2019-01-15 20:48:04 +01:00
Daniel Eklöf
fae2e5cb18 xcb: add xcb_error(), a generic describe-an-x-error function
By default, generates an error message with the major/minor opcodes,
the error code and sequence number.

If available, it will use xcb-errors to generate an even better
description.
2019-01-15 20:44:21 +01:00
Daniel Eklöf
7a8ba94a49 bar: xcb-errors is optional
With it available, we get better (more descriptive) X error
messages. But it's not fatal, and we don't require it.
2019-01-15 19:26:02 +01:00
Daniel Eklöf
b0e384b2f3 module/xwindow: don't crash if window doesn't have a correctly sized PID property 2019-01-15 19:18:01 +01:00
Daniel Eklöf
d264a6a067 module/xwindow: correct logging "module" (name) 2019-01-15 19:17:37 +01:00
Daniel Eklöf
b62e66ccb6 bar: log X(cb) errors 2019-01-15 19:17:22 +01:00
Daniel Eklöf
33d811ae78 bar: set correct window title 2019-01-15 19:17:02 +01:00
Daniel Eklöf
c868a4ac46 particle/list: disable debug 2019-01-15 19:15:57 +01:00
Daniel Eklöf
8f58e161bc particle/string: disable debug 2019-01-15 19:15:48 +01:00
Daniel Eklöf
c3930ef60a xcb: create atom if it doesn't exist
Fixes a bug where not all atoms have (yet) been created when starting
f00bar as part of the WM startup (for example, with an 'exec' in i3's
config).
2019-01-15 19:14:52 +01:00
Daniel Eklöf
ceb4770d7f Merge branch 'plugins-builtin' 2019-01-14 20:57:20 +01:00
Daniel Eklöf
0d591fe5a1 allow plugins to be compiled into the f00bar main binary 2019-01-14 20:57:03 +01:00
Daniel Eklöf
00679dbeeb decorations: cmake: compact CMakeLists.txt by using foreach() 2019-01-13 21:55:48 +01:00
Daniel Eklöf
c6b83ac7dc particles: cmake: compact CMakeLists.txt by using foreach() 2019-01-13 21:55:42 +01:00
Daniel Eklöf
c6ce536cff particle/string: explicitly link against cairo
Because it's the right thing to do. It worked without it, since the
f00bar main binary is linked with -rdynamic (to give plugins access to
core functions).
2019-01-13 21:49:24 +01:00