Commit Graph

6074 Commits

Author SHA1 Message Date
Marcin Szewczyk ad36e32764 window_update_motif_hints(): uint32_t for fields, fixes #2238
xcb_get_property_value() returns 32-bit property fields
2016-03-02 23:31:08 +01:00
Michael Stapelberg 6fe8d30d65 Merge pull request #2233 from Airblader/bug-2228
Revert to default binding mode before reloading the config.
2016-02-25 21:19:14 +01:00
Michael Stapelberg 70cc9af69b Merge pull request #2232 from Airblader/bug-2229
Determine focused workspace correctly when moving workspace to output.
2016-02-25 21:18:55 +01:00
Michael Stapelberg a3d87c5b57 Merge pull request #2231 from Airblader/feature-2223
Introduce I3_FLOATING_WINDOW.
2016-02-25 21:18:29 +01:00
Ingo Bürk ad702dff13 Revert to default binding mode before reloading the config.
If a user reloads the config while in some binding mode, the binding mode
will revert to the default, but no event will ever be fired, causing a
broken i3bar mode display.

This patch explicitly reverts to the default binding mode before reloading
the config. We reload rather than switch to the binding mode after having
reloaded the config because there's no guarantee that mode will even still
exist.

fixes #2228
2016-02-25 19:28:48 +01:00
Ingo Bürk a9d8184c73 Determine focused workspace correctly when moving workspace to output.
This patch correctly determines the previously focused workspace on the
target output when moving a workspace to another output. Before, we used
nodes_head for this, which will not actually return the previously focused
workspace, but just the first workspace on that output. Hence, we now use
focus_head instead.

This bug was introduced all the way back in 1e143fea when the feature of
moving workspaces to another output was first implemented.

fixes #2229
2016-02-25 19:12:09 +01:00
Ingo Bürk 712c6d65ff Introduce I3_FLOATING_WINDOW
This patch introduces a proprietary atom I3_FLOATING_WINDOW which will be
set and maintained for floating windows and removed on tiling containers.

This allows users to select on this atom, e.g., in their compositor
configuration or in utility scripts (without using the IPC).

fixes #2223
2016-02-25 18:36:22 +01:00
Michael Stapelberg fdbbae56b2 split atoms.xmacro into 2 files to obtain _NET_SUPPORTED count
Manually updating a magic number doesn’t work in the long run.
With this change, the number of atoms contained in
include/atoms_NET_SUPPORTED.xmacro is used.

fixes #2230
2016-02-23 21:48:18 +01:00
Michael Stapelberg eb631ce3c3 Merge pull request #2221 from Airblader/bug-2220
Revert e2e7b7 and remove unreachable fallback code
2016-02-22 09:15:31 +01:00
Ingo Bürk b8109c3a59 Document tray initialization better.
This commit removes an unnecessary fallback to the first output's name as
this name ("first") will only be used to see whether "tray_output none"
has been specified, anyway.

We also add documentation that clearly states when we want to initialize
the tray and when we don't want to do the same.

relates to #2220
2016-02-21 14:26:13 +01:00
Ingo Bürk 320591ac19 Remove unreachable fallback code for tray_output primary.
This commit removes the code for falling back to the first available
output for the system tray if 'tray_output primary' has been specified
but there is no primary output (managed by this bar).

This fallback behavior was broken/unreachable because the tray
will never be initialized in this situation in the first place. Having
this dead code lead to a wrong assumption in #1855 and hence to
commit e2e7b70d00, which makes the
system tray not show up for many users when first installing i3.

Thanks to @rtlanceroad for reporting this issue.

fixes #2220
2016-02-21 14:17:23 +01:00
Ingo Bürk 3e1b269409 Revert "Add 'tray_output primary' to the default config"
This reverts commit e2e7b70d00.

relates to #2220
2016-02-21 14:12:02 +01:00
Michael Stapelberg d0ff8ac212 Add issue template
This is a mix of what our old new-ticket-form used to suggest:
http://code.stapelberg.de/git/i3-new-ticket/tree/templates/index.html
…and what CONTRIBUTING.md already entailed.

See https://github.com/blog/2111-issue-and-pull-request-templates
2016-02-19 18:48:49 +01:00
Michael Stapelberg fe5e7b0c81 move CONTRIBUTING.md to .github/ directory
See https://github.com/blog/2111-issue-and-pull-request-templates
2016-02-19 18:41:30 +01:00
Michael Stapelberg f63701ed09 Allow workspace renames which change case
fixes #2211
2016-02-15 08:34:03 +01:00
Michael Stapelberg e91fa09569 Merge pull request #2210 from Airblader/bug-2166
Don't allow floating workspaces anymore.
2016-02-15 08:15:23 +01:00
Michael Stapelberg d6aece03ee Merge pull request #2209 from Airblader/feature-2208
Allow "modifier none" in i3bar to disable the modifier.
2016-02-15 08:14:26 +01:00
Michael Stapelberg d42db7fb9a Merge pull request #2212 from bendem/patch-1
Reflect changes to i3-sensible-terminal in its manpage
2016-02-14 13:50:36 +01:00
bendem 9c595a1a28 Reflect changes to i3-sensible-terminal in its manpage 2016-02-14 13:28:14 +01:00
Ingo Bürk 9431ef16f6 Don't allow floating workspaces anymore.
This is essentially a revert of daf00a9 which introduced a mechanism
to float workspace containers by wrapping all children into a new
container and floating it.

This caused a bug and there's no good reason (anymore) to allow doing
this in the first place as we don't support floating nested containers.

fixes #2166
2016-02-11 21:25:50 +01:00
Ingo Bürk 018922dcc4 Allow "modifier none" in i3bar to disable the modifier.
This allows "modifier none" (and "modifier off") for the bar config
in order to disable the modifier key altogether. This is useful
for users who use a different approach to hiding / showing the bar,
e.g., a custom keybind that involved multiple keys or scripts.

fixes #2208
2016-02-11 20:51:05 +01:00
Michael Stapelberg e2d1f0f567 Merge pull request #2203 from Airblader/bug-2202
Ensure that the "border" command uses logical pixels.
2016-02-10 22:04:07 +01:00
Michael Stapelberg 5735e2de10 Merge pull request #2204 from romanblanco/st
Added st to i3-sensible-terminal
2016-02-10 22:02:51 +01:00
Roman Blanco 658e5597d2 Added st to i3-sensible-terminal 2016-02-09 22:33:37 +01:00
Ingo Bürk 6cbff6bfd4 Ensure that the "border" command uses logical pixels.
Until now, only the config directive for borders (new_window,
new_float) respected the DPI setting (using logical_px). This
patch makes sure we also do so for runtime "border" commands.

fixes #2202
2016-02-09 21:03:44 +01:00
Michael Stapelberg 1e23e55c5e Merge pull request #2197 from norrland/next
Update i3-sensible-terminal
2016-02-07 14:55:21 +01:00
Michael Stapelberg 0ff65ab79f Merge pull request #2196 from Airblader/feature-2165
Remove _NET_WM_STATE on withdrawn windows.
2016-02-07 14:54:34 +01:00
norrland 5601096c5e Update i3-sensible-terminal 2016-02-07 14:40:00 +01:00
Ingo Bürk ad95038c5e Remove _NET_WM_STATE on withdrawn windows.
According to the spec, _NET_WM_STATE must be removed when the window is
withdrawn, much like _NET_WM_DESKTOP.

fixes #2165
2016-02-07 12:08:50 +01:00
Michael Stapelberg fbfbdb8e12 travis: check spelling of binaries and manpages, use docker
We now build a docker base container based on debian sid (where the very
latest packages are available). That base container is updated once a
month, or whenever travis-build.Dockerfile or debian/control change, but
re-used for subsequent travis runs. While the initial build might take
up to 15 minutes, subsequent builds typically run in a minute or two.

All the different steps that we run on travis are now factored into
separate scripts in the travis/ directory.

Switching to docker should also help with issue #2174.
2016-02-06 10:36:43 +01:00
Michael Stapelberg 065ce6b8fc Merge pull request #2190 from jolange/userguide
Userguide: "hiding vertical borders" -> "hiding outer borders"
2016-02-05 09:30:21 +01:00
Johannes Lange 0c57abe8e5 "hiding vertical borders" -> "hiding outer borders"
This option can be used to hide horizontal or horizontal+vertical
borders since 57effd6
2016-02-04 20:01:24 +01:00
Michael Stapelberg 63cb5b2439 Merge pull request #2186 from brianmillar/next
Added Neovim to i3-sensible-editor
2016-02-01 08:24:36 +01:00
Brian Millar bb4e1c8cd1 Added Neovim to i3-sensible-editor 2016-02-01 01:18:41 +00:00
Michael Stapelberg 026fadf72d Merge pull request #2185 from nicklan/next
Fix issue #2184.  don't send atom, but raw code
2016-01-31 22:22:04 +01:00
Nick Lanham 8f2d066dc6 Fix issue #2184. don't send atom, but raw code
XEMBED messages aren't atoms, but just codes, so i3bar should just send
XEMBED_EMBEDDED_NOTIFY rather than indexing the atom array.
2016-01-31 12:21:47 -08:00
Michael Stapelberg b565676fb7 Merge pull request #2183 from jolange/hacking_update
changed old `cfgparse.y` reference to `config_parser.c`
2016-01-31 16:22:21 +01:00
Johannes Lange 1c7b25f25a changed old "cfgparse.y" reference to "config_parser.c" 2016-01-30 13:44:05 +01:00
Michael Stapelberg de42f9aef3 Merge pull request #2177 from dcoppa/next
Remove commented-out code and fix i3-nagbar manpage
2016-01-26 01:06:27 -08:00
David Coppa 7a25d3f149 Fix i3-nagbar example. 2016-01-26 09:57:59 +01:00
David Coppa 1041572769 Remove commented-out code. 2016-01-26 09:55:24 +01:00
Michael Stapelberg df3320796b Merge pull request #2172 from Airblader/bug-net-wm-desktop-1
Don't ignore focus on _NET_WM_DESKTOP client messages.
2016-01-25 00:30:12 -08:00
Ingo Bürk 3c0ba081df Don't ignore focus on _NET_WM_DESKTOP client messages.
Ignoring the focus leads to a broken focus if the pointer is, e.g.,
over i3bar at the point in time the window is moved by the client
message. It also causes i3bar's workspace display to break.

Thanks to GermainZ for reporting.
2016-01-22 20:32:51 +01:00
Michael Stapelberg f9a47c2611 Merge pull request #2169 from Airblader/bug-2168
Don't grab the buttons on the root window.
2016-01-20 13:43:20 -08:00
Ingo Bürk 95b60b170e Don't grab the buttons on the root window.
We don't actually need to grab the buttons to fix #2097, but doing so
will cause a freeze due to unreleased events.

We partially revert 6f12f02 which avoids the freeze, but doesn't break
functionality.

relates to #2097
fixes #2168
2016-01-20 22:28:20 +01:00
Michael Stapelberg cfd07ab0e6 Merge pull request #2162 from Airblader/feature-2153
Handle the EWMH atom _NET_WM_DESKTOP.
2016-01-18 13:31:03 -08:00
Ingo Bürk 328035fb7e Handle the EWMH atom _NET_WM_DESKTOP.
We already claim _NET_WM_DESKTOP support in _NET_SUPPORTED since around 2009,
but haven't actually done anything with it. However, especially pagers like
gnome-panel rely on this property to be updated and many tools, like GTK, want
to use the corresponding client messages to make a window sticky, move it
around etc.

This patch implements full support according to the EWMH spec. This means:

* We set the property on all windows when managing it.
* We keep the property updated on all windows at all times.
* We read and respect the property upon managing a window if it was set before
  mapping the window.
* We react to client messages for it.
* We remove the property on withdrawn windows.

Note that the special value 0xFFFFFFFF, according to the spec, means that the
window shall be shown on all workspaces. We do this by making it sticky and
float it. This shows it on all workspaces at least on the output it is on.

Furthermore, the spec gives us the freedom to ignore _NET_WM_DESKTOP when
managing a window if we have good reason to. In our case, we give window
swallowing a higher priority since the user would likely expect that and we
want to keep placeholder windows only around for as long as we have to.
However, we do prioritize this property over, for example, startup
notifications.

fixes #2153
fixes #1507
fixes #938
2016-01-18 12:13:36 +01:00
Michael Stapelberg dfdf9bed94 Merge pull request #2164 from pra85/patch-1
Update license year range to 2016
2016-01-17 13:22:11 -08:00
Michael Stapelberg a761e018d5 Merge pull request #2161 from botovq/next
Add pledge support for OpenBSD
2016-01-17 13:21:56 -08:00
Theo Buehler a1d1f456a1 Add pledge(2) support for OpenBSD
pledges for i3:
"stdio rpath unix" for talking to the i3 socket usually in /tmp
"proc exec" for executing programs
"wpath cpath" are needed for the restart-in-place functionality

To make this work, @semarie pointed out that it is sufficient to ensure
that we get physical_mem_bytes only once, namely in init_logging().

pledges for i3-msg:
"stdio rpath unix" are needed for talking to the i3-socket

pledges for i3-nagbar
"rpath getpw" to find the home directory
"wpath cpath" to write the script
"proc exec" to execute the script
2016-01-17 18:49:00 +01:00