Commit graph

547 commits

Author SHA1 Message Date
Daniel Eklöf
28d39f3aec bar/xcb: ignore non-zero border margins 2019-02-17 19:45:26 +01:00
Daniel Eklöf
0ab772f869 bar: move x,y coordinates to xcb backend 2019-02-17 19:40:20 +01:00
Daniel Eklöf
3d8cb7f17e bar/wayland: implement border margins 2019-02-17 15:47:44 +01:00
Daniel Eklöf
cb0c43a61b README: update bar configuration properties 2019-02-17 15:47:29 +01:00
Daniel Eklöf
9c611a716b config: make border.width and border.color optional 2019-02-17 15:47:13 +01:00
Daniel Eklöf
50d6afab6a bar: add margin properties to the border 2019-02-17 15:45:02 +01:00
Daniel Eklöf
12ef2569a4 bar/wayland: log *something* when a global is removed 2019-02-17 12:38:52 +01:00
Daniel Eklöf
a1bcf07599 bar/wayland: drop wl_seat interface version requirement to 1
This allows us to drop the empty 'name' handler.
2019-02-17 12:38:52 +01:00
Daniel Eklöf
620d89319b module/i3: reset current window info on a "floating" window event 2019-02-17 12:32:27 +01:00
Daniel Eklöf
272a1bd2ed cmake: link i3-common against json and xcb-stuff 2019-02-15 22:48:01 +01:00
Daniel Eklöf
db211de70c modules/i3-common: add support for sway's IPC_GET_INPUTS 2019-02-15 22:30:12 +01:00
Daniel Eklöf
e710152248 Merge branch 'i3-split' 2019-02-15 22:08:06 +01:00
Daniel Eklöf
06ae704ded module/i3-commonh: I3_IPC_REPLY_TYPE_SYNC is relatively new
And is for example not present in our CI.
2019-02-15 22:06:24 +01:00
Daniel Eklöf
e40b50bf5e module/i3-common: add missing include
Needed for e.g strncpy() and strcmp()
2019-02-15 22:06:03 +01:00
Daniel Eklöf
ae7f554b8c module/i3: only call bar->refresh() from burst_done() callback
IPC reply and event handlers no longer call bar->refresh()
directly. Instead, they set a 'dirty' bit. Then, in burst_done(), we
call bar->refresh() when the dirty bit has been set.
2019-02-15 22:01:58 +01:00
Daniel Eklöf
f9044ec883 module/i3: add a 'burst_done()' callback
This callback is called after all received packets have been
processed, before going into a blocking poll() again.
2019-02-15 22:01:07 +01:00
Daniel Eklöf
5e97c77c24 module/i3: remove unneeded includes 2019-02-15 20:58:43 +01:00
Daniel Eklöf
e36ba56caf module/i3-common: being disconnected is usually not an error 2019-02-15 20:57:31 +01:00
Daniel Eklöf
fce37e86e4 module/i3: break out I3 IPC receive loop 2019-02-15 18:58:21 +01:00
Daniel Eklöf
6df68f1c23 module/i3-common: const:ify 2019-02-13 22:00:42 +01:00
Daniel Eklöf
92319714c7 module/i3: break out send_pkg() 2019-02-13 22:00:13 +01:00
Daniel Eklöf
76dc4f82cd module/i3-common: always disconnect from XCB on error 2019-02-13 21:58:20 +01:00
Daniel Eklöf
37d15096f9 module/i3: break out get_socket_address() 2019-02-13 21:55:03 +01:00
Daniel Eklöf
6e44d8e04e module/i3: fix crash when there is no "current" workspace template 2019-02-13 21:46:30 +01:00
Daniel Eklöf
4d9ee6ff82 cmake: use find_program() to locate wayland-scanner binary 2019-02-13 21:45:31 +01:00
Daniel Eklöf
236511db88 Merge branch 'i3-expose-window-title' 2019-02-12 22:13:29 +01:00
Daniel Eklöf
c34dc7f025 Merge branch 'master' into i3-expose-window-title 2019-02-12 22:13:16 +01:00
Daniel Eklöf
21b2e249bc cmake: install header files 2019-02-12 22:12:57 +01:00
Daniel Eklöf
0e41c6560b cmake: install header files 2019-02-12 22:12:35 +01:00
Daniel Eklöf
6f021b62de Merge branch 'master' into i3-expose-window-title 2019-02-12 20:53:37 +01:00
Daniel Eklöf
8c72d1f2a9 main: config: also support XDG_CONFIG_HOME/f00bar/config.yml 2019-02-12 20:53:09 +01:00
Daniel Eklöf
bc4f1723d4 Merge branch 'master' into i3-expose-window-title 2019-02-12 20:01:01 +01:00
Daniel Eklöf
1e466a24ba Pull in wlr-protocols instead of wlroots
We're not interested in anything in wlroots, except the wlr protocols.
2019-02-12 20:00:35 +01:00
Daniel Eklöf
ffd85cf4ae Merge branch 'master' into i3-expose-window-title 2019-02-10 12:50:35 +01:00
Daniel Eklöf
6a30f66894 README: wayland is now supported 2019-02-10 12:50:23 +01:00
Daniel Eklöf
97ff63044f module/i3: cleanup 2019-02-10 12:29:33 +01:00
Daniel Eklöf
d631e47a5e module/i3: detect 'current' workspace while iterating workspaces 2019-02-10 12:29:33 +01:00
Daniel Eklöf
330ad48dfd module/i3: handle 'label' like an extra workspace called 'current' 2019-02-10 12:29:33 +01:00
Daniel Eklöf
a3be2839e5 module/i3: avoid calling json_object_get_int() multiple times 2019-02-10 12:29:33 +01:00
Daniel Eklöf
83db675e01 module/i3: subscribe *before* requesting initial workspace list
This ensures we don't have a race, where we might miss workspace
changes between the initial list and subscribing.
2019-02-10 12:29:33 +01:00
Daniel Eklöf
be4765fadd module/i3: 'dynlist' -> 'workspaces' 2019-02-10 12:29:33 +01:00
Daniel Eklöf
4100922b7a module/i3: allow 'content' to also contain a regular 'label'
Previously, the 'content' of i3 was a map, where the keys where i3
workspace names, mapping to a particle template.

Now, that configuration type is still allowed. But we also allow a
variant where the 'content' is a list, of either 1 or 2 entries.

Both entries *must* be dictionaries. The key is either 'dynlist',
which is the same as the dictionary-only type of
configuration. I.e. it maps to a dictionary where the keys are
workspace names, mapping to particle templates.

If the key is *not* dynlist, then it is assumed to be a particle name,
and we treat that as a "regular" label, that will be appended after
the workspace dynlist when instantiating the content.

This particle will be instantiated with, for now, the title and
application of the _currently focused_ workspace.
2019-02-10 12:29:33 +01:00
Daniel Eklöf
d565fbe2f0 module/i3: track active window title and application name
This is done on a per-workspace basis.

Note that the initial state is currently not detected. I.e. we
retrieve the initial workspace list, but we don't get the currently
focused window.
2019-02-10 12:29:33 +01:00
Daniel Eklöf
5ed6e0acbc module/i3: look for I3SOCK env variable before reading X properties 2019-02-10 12:29:33 +01:00
Daniel Eklöf
1c5d017dc3 Merge branch 'calloc-not-malloc' 2019-02-10 12:29:14 +01:00
Daniel Eklöf
b6e61f9c7e modules: use calloc() instead of malloc()
In cases where it makes sense, use calloc() instead of malloc():

* When allocating large objects with many members, many for which
  NULL/0 is a good default value.
* Arrays etc where we explicitly initialize to NULL anyway.
2019-02-09 11:11:31 +01:00
Daniel Eklöf
6bba9200cf particles: use calloc() instead of malloc()
In cases where it makes sense, use calloc() instead of malloc():

* When allocating large objects with many members, many for which
  NULL/0 is a good default value.
* Arrays etc where we explicitly initialize to NULL anyway.
2019-02-09 11:05:12 +01:00
Daniel Eklöf
29e9cea1dd decorations: use calloc() instead of malloc()
In cases where it makes sense, use calloc() instead of malloc():

* When allocating large objects with many members, many for which
  NULL/0 is a good default value.
* Arrays etc where we explicitly initialize to NULL anyway.
2019-02-09 10:58:26 +01:00
Daniel Eklöf
83591b9269 bar: use calloc() instead of malloc()
In cases where it makes sense, use calloc() instead of malloc():

* When allocating large objects with many members, many for which
  NULL/0 is a good default value.
* Arrays etc where we explicitly initialize to NULL anyway.
2019-02-09 10:55:42 +01:00
Daniel Eklöf
ad3a33cf3d bar/wayland: do *not* enable keyboard interactivity 2019-02-07 18:27:09 +01:00