]> git.sur5r.net Git - i3/i3/log
i3/i3
10 years agoBugfix: create the directory for storing the restart state (Thanks hjem)
Michael Stapelberg [Fri, 27 Jun 2014 07:04:51 +0000 (09:04 +0200)]
Bugfix: create the directory for storing the restart state (Thanks hjem)

fixes #1303

10 years agoMerge branch 'fix-i3-save-tree-unicode-args'
Michael Stapelberg [Wed, 25 Jun 2014 08:00:59 +0000 (10:00 +0200)]
Merge branch 'fix-i3-save-tree-unicode-args'

10 years agoBugfix: interpret commandline parameters as utf-8
Michael Stapelberg [Wed, 25 Jun 2014 08:00:23 +0000 (10:00 +0200)]
Bugfix: interpret commandline parameters as utf-8

fixes #1293

10 years agoMerge branch 'log-dpi'
Michael Stapelberg [Tue, 24 Jun 2014 07:57:05 +0000 (09:57 +0200)]
Merge branch 'log-dpi'

10 years agoadd log messages for the detected DPI
Michael Stapelberg [Tue, 24 Jun 2014 07:56:31 +0000 (09:56 +0200)]
add log messages for the detected DPI

Currently, the DPI is only logged when pango fonts are used, which is
often not the case when people report problems with the DPI detection.

10 years agoMerge branch 'fix-focus-unmapped'
Michael Stapelberg [Tue, 24 Jun 2014 07:01:39 +0000 (09:01 +0200)]
Merge branch 'fix-focus-unmapped'

10 years agoBugfix: don't focus unmapped container on manage
Tony Crisci [Mon, 23 Jun 2014 21:25:23 +0000 (17:25 -0400)]
Bugfix: don't focus unmapped container on manage

A window may become unmapped on manage when an assignment command unmaps
the window, such as moving it to the scratchpad or killing it.

This can cause i3 focus to be an unmapped window and different than X
focus which can lead to complications

fixes #1283

10 years agoMerge branch 'next'
Michael Stapelberg [Sun, 15 Jun 2014 17:14:36 +0000 (19:14 +0200)]
Merge branch 'next'

10 years agoMerge branch 'release-4.8' into next
Michael Stapelberg [Sun, 15 Jun 2014 17:14:25 +0000 (19:14 +0200)]
Merge branch 'release-4.8' into next

10 years agoman: bump version to 4.8 4.8
Michael Stapelberg [Sun, 15 Jun 2014 17:12:16 +0000 (19:12 +0200)]
man: bump version to 4.8

10 years agoformat **/*.c with clang-format-3.5
Michael Stapelberg [Sun, 15 Jun 2014 17:07:02 +0000 (19:07 +0200)]
format **/*.c with clang-format-3.5

This has multiple effects:

1) The i3 codebase is now consistently formatted. clang-format uncovered
   plenty of places where inconsistent code made it into our code base.

2) When writing code, you don’t need to think or worry about our coding
   style. Write it in yours, then run clang-format-3.5

3) When submitting patches, we don’t need to argue about coding style.

The basic idea is that we don’t want to care about _how_ we write the
code, but _what_ it does :). The coding style that we use is defined in
the .clang-format config file and is based on the google style, but
adapted in such a way that the number of modifications to the i3 code
base is minimal.

10 years agoadd .clang-format, to be used with clang-format-3.5
Michael Stapelberg [Sun, 15 Jun 2014 17:05:01 +0000 (19:05 +0200)]
add .clang-format, to be used with clang-format-3.5

10 years agodelete old release notes
Michael Stapelberg [Sun, 15 Jun 2014 16:27:03 +0000 (18:27 +0200)]
delete old release notes

10 years agoadd release notes for v4.8
Michael Stapelberg [Sun, 15 Jun 2014 16:26:40 +0000 (18:26 +0200)]
add release notes for v4.8

10 years agoman/i3.man: update to contain new default font
Michael Stapelberg [Sun, 15 Jun 2014 16:18:44 +0000 (18:18 +0200)]
man/i3.man: update to contain new default font

10 years agoBugfix: don’t overwrite the window’s geometry after restarting
Michael Stapelberg [Fri, 13 Jun 2014 20:29:24 +0000 (22:29 +0200)]
Bugfix: don’t overwrite the window’s geometry after restarting

fixes #1263

10 years agoBugfix: ensure floating windows don’t drop out of fullscreen when restarting
Michael Stapelberg [Fri, 13 Jun 2014 20:26:06 +0000 (22:26 +0200)]
Bugfix: ensure floating windows don’t drop out of fullscreen when restarting

fixes #1263

10 years agoBugfix: don’t errnously render floating fullscreen windows during restart
Michael Stapelberg [Fri, 13 Jun 2014 20:21:00 +0000 (22:21 +0200)]
Bugfix: don’t errnously render floating fullscreen windows during restart

fixes #1263

10 years agoBugfix: don’t overwrite the original size of floating windows when changing border...
Michael Stapelberg [Fri, 13 Jun 2014 20:18:36 +0000 (22:18 +0200)]
Bugfix: don’t overwrite the original size of floating windows when changing border style

fixes #1263

10 years agoalso change the default font in i3.config.keycodes
Michael Stapelberg [Fri, 13 Jun 2014 18:02:34 +0000 (20:02 +0200)]
also change the default font in i3.config.keycodes

10 years agodefault config: use `set` for directions
Tony Crisci [Thu, 12 Jun 2014 23:34:57 +0000 (19:34 -0400)]
default config: use `set` for directions

Using `set` for direction letter keys makes them easier to configure for
users who prefer traditional vim-style directions.

10 years agofix warning: use size_t when comparing against strlen()
Michael Stapelberg [Thu, 12 Jun 2014 19:24:29 +0000 (21:24 +0200)]
fix warning: use size_t when comparing against strlen()

10 years agohandle windows whose WM_TRANSIENT_FOR points to themselve
Michael Stapelberg [Thu, 12 Jun 2014 19:16:45 +0000 (21:16 +0200)]
handle windows whose WM_TRANSIENT_FOR points to themselve

I consider this behavior broken and not respecting the standard, but it
happens in real life, and it’s better for i3 to not busy-loop in such a
situation :).

fixes #1259

10 years agoRevert "Rerender on button press only when focus changes"
Michael Stapelberg [Thu, 12 Jun 2014 19:01:06 +0000 (21:01 +0200)]
Revert "Rerender on button press only when focus changes"

This reverts commit b714878f52ef7c175699ed831c5925a577621f5a.

That commit introduced a regression: clicking on floating windows would
no longer raise them reliably.

fixes #1260

10 years agoBugfix: Set input focus with last timestamp
Tony Crisci [Thu, 12 Jun 2014 05:33:33 +0000 (01:33 -0400)]
Bugfix: Set input focus with last timestamp

Setting input focus with the last event timestamp prevents race
conditions when setting focus.

fixes #1127

10 years agoBugfix: fix crash when using multiple for_window statements that move windows (Thanks...
Michael Stapelberg [Thu, 12 Jun 2014 07:32:55 +0000 (09:32 +0200)]
Bugfix: fix crash when using multiple for_window statements that move windows (Thanks Antonio)

fixes #1257

10 years agoInclude sys/sysctl.h after i3.h to prevent redefinition warnings caused by queue...
Marcus Crestani [Wed, 11 Jun 2014 18:53:22 +0000 (20:53 +0200)]
Include sys/sysctl.h after i3.h to prevent redefinition warnings caused by queue.h on OS X.

10 years agoBugfix: Typo in i3.xsession.desktop TryExec rule.
Holger Langenau [Wed, 11 Jun 2014 10:28:53 +0000 (12:28 +0200)]
Bugfix: Typo in i3.xsession.desktop TryExec rule.

Typo in executable for TryExec prevents LightDM from starting i3.

10 years agoBugfix: prevent unneeded render on pointer enter
Tony Crisci [Wed, 11 Jun 2014 00:28:19 +0000 (20:28 -0400)]
Bugfix: prevent unneeded render on pointer enter

When `focus_follows_mouse` option is on, prevent an uneeded render on
pointer enter when the con is already focused.

This pointer enter might be caused by entering a window decoration of an
already-focused container.

This extra render can cause concurrency issues when focus is set
asynchronously with WM_TAKE_FOCUS.

10 years agocleanup temporary directory when restarting and not using XDG_RUNTIME_DIR
Michael Stapelberg [Wed, 11 Jun 2014 07:17:43 +0000 (09:17 +0200)]
cleanup temporary directory when restarting and not using XDG_RUNTIME_DIR

fixes #1253

10 years agodebian: recommend fonts-dejavu-core after we switched the default
Michael Stapelberg [Sun, 8 Jun 2014 20:28:13 +0000 (22:28 +0200)]
debian: recommend fonts-dejavu-core after we switched the default

10 years agodefault config: switch to “DejaVu Sans Mono 8” as default font
Michael Stapelberg [Sun, 8 Jun 2014 20:25:59 +0000 (22:25 +0200)]
default config: switch to “DejaVu Sans Mono 8” as default font

As mentioned in the comment, this change is motivated by better support
for unicode, right-to-left rendering and scalability on retina/hidpi
setups.

10 years agodelete ipc socket when exiting, cleanup tmpdir
Michael Stapelberg [Sun, 8 Jun 2014 20:13:43 +0000 (22:13 +0200)]
delete ipc socket when exiting, cleanup tmpdir

fixes #1253

10 years agoreplace remaining printf()s with D?LOG
Michael Stapelberg [Sun, 8 Jun 2014 19:56:14 +0000 (21:56 +0200)]
replace remaining printf()s with D?LOG

fixes #1252

10 years agoUse XCB_BUTTON_INDEX defines for mouse buttons
Campbell Barton [Sun, 8 Jun 2014 07:14:27 +0000 (17:14 +1000)]
Use XCB_BUTTON_INDEX defines for mouse buttons

10 years agoDon't ELOG ipc EOF
Tony Crisci [Sat, 7 Jun 2014 02:11:44 +0000 (22:11 -0400)]
Don't ELOG ipc EOF

Receiving EOF from a client is not an error, but rather a standard way a
client may disconnect from the IPC. This should rather be logged from
a consumer of the libi3 ipc_recv_message() function as a normal client
disconnect event.

fixes #1252

10 years agoMod i3.xsession.desktop for autostart Ubuntu 14.04
Matthias Thubauville [Tue, 3 Jun 2014 06:38:11 +0000 (08:38 +0200)]
Mod i3.xsession.desktop for autostart Ubuntu 14.04

i3 started from lightdm properly, but autostart did not work. The line
"X-LightDM-DesktopName=i3" seems to be responsible to allow autostart.

Tested on a clean install of Ubuntu 14.04.

10 years agoAdd abstraction for running a binding
Tony Crisci [Sat, 31 May 2014 15:00:02 +0000 (11:00 -0400)]
Add abstraction for running a binding

Add run_binding function to bindings.h.

> Runs the given binding and handles parse errors. Returns a
> CommandResult for running the binding's command. Caller should render
> tree if needs_tree_render is true. Free with command_result_free().

10 years agotests: fix a few racy testcases by adding sync_with_i3 calls
Michael Stapelberg [Sun, 1 Jun 2014 09:48:10 +0000 (11:48 +0200)]
tests: fix a few racy testcases by adding sync_with_i3 calls

10 years agoSet EWMH active window to None when none has focus
Tony Crisci [Sat, 31 May 2014 16:06:39 +0000 (12:06 -0400)]
Set EWMH active window to None when none has focus

_NET_ACTIVE_WINDOW:

> The window ID of the currently active window or None if no window has
> the focus.

This fixes a bug that would not update _NET_ACTIVE_WINDOW when focus
changed to an i3 container without a window such as a branch or
workspace content container.

10 years agoRefactor parse_command
Tony Crisci [Wed, 28 May 2014 06:01:50 +0000 (02:01 -0400)]
Refactor parse_command

parse_command returns a struct that contains useful information about
the result of a command as a whole (instead of the intermediate
representation used during parsing).

parse_command now requires the caller to allocate the yajl_gen used for
generating a json reply. This is passed as the second parameter to
parse_command. If NULL is passed, no json reply will be generated.

10 years agoAdd configuration option for disabling mouse warping
Atte Peltomaki [Mon, 24 Mar 2014 17:03:05 +0000 (19:03 +0200)]
Add configuration option for disabling mouse warping

This patch adds a new configuration option "mouse_warping [output|none]".

When mouse warping is disabled, mouse cursor does not jump to middle of current
screen when changing workspaces between multiple outputs. This introduces a
"special" cursor state, where focus is in one window and cursor on another.
Useful for eg. scrolling a web page with mouse wheel while typing into another
window on keyboard.

10 years agoFeature: Workspace assignment by number
Tony Crisci [Sun, 18 May 2014 03:36:58 +0000 (23:36 -0400)]
Feature: Workspace assignment by number

Workspace assignments with bare numbers assign all workspaces with that
number to the specified output.

Workspace assignment by number is overridden by workspace assignment by
name.

10 years agoBugfix: double X render on manage
Tony Crisci [Sun, 18 May 2014 07:12:39 +0000 (03:12 -0400)]
Bugfix: double X render on manage

When a con is being managed, tree_render should only be called once to
push the changes to the rendering server to prevent wasting resources.

10 years agoFix test 517
Tony Crisci [Sun, 18 May 2014 05:56:50 +0000 (01:56 -0400)]
Fix test 517

Test 517 was sometimes failing because the command to reset the test
generates a focus event which was not being properly ignored.

Now the correct event should always be tested.

10 years agoChange the names of parser result structs
Tony Crisci [Sun, 18 May 2014 04:44:19 +0000 (00:44 -0400)]
Change the names of parser result structs

Change the name of structs CommandResult and ConfigResult to
CommandResultIR and ConfigResultIR to show they are an intermediate
representation used during parsing.

10 years agodebian: require libyajl >= 2.0.4 (Thanks Koston)
Michael Stapelberg [Fri, 16 May 2014 16:15:53 +0000 (18:15 +0200)]
debian: require libyajl >= 2.0.4 (Thanks Koston)

10 years agouse size_t for strspn() return value
Michael Stapelberg [Fri, 16 May 2014 16:03:31 +0000 (18:03 +0200)]
use size_t for strspn() return value

10 years ago"somewhen" -> "some time" in i3-config-wizard(1)
Jean-Philippe Ouellet [Sun, 11 May 2014 10:23:34 +0000 (06:23 -0400)]
"somewhen" -> "some time" in i3-config-wizard(1)

10 years agoSeparate border width for floating windows
Aleksi Blinnikka [Fri, 9 May 2014 16:33:38 +0000 (19:33 +0300)]
Separate border width for floating windows

Floating windows already had their own border style, but the width was
the same for all windows.

The configuration directives 'new_window' and 'new_float' can now be
used simultaneously to have different border widths for floating and
tiled windows.

fixes #1244

10 years agoi3bar: implement custom workspace numbers config
Tony Crisci [Mon, 5 May 2014 17:56:47 +0000 (13:56 -0400)]
i3bar: implement custom workspace numbers config

Implement the configuration option within the bar config directive for
custom workspace numbers with the directive `strip_workspace_numbers
yes`.

This directive strips the workspace name of the number prefix and
delimiter. When the workspace name consists only of the number, it will
default to show the number.

For example:

* "2:5" -> "5"
* "4:$" -> "$"
* "8" -> "8"

This allows customization of i3bar for alternate ordering of workspaces
which has a legitimate use for alternate keyboard layouts such as
Dvorak.

fixes #1131

10 years agoi3-input: fix (irrelevant) memory leak
Michael Stapelberg [Thu, 15 May 2014 21:50:09 +0000 (23:50 +0200)]
i3-input: fix (irrelevant) memory leak

Given that the code was exit(0)ing directly after using that memory,
it’s not like this has any effect. However, less false positives on the
clang-analyze report pages is a good thing.

10 years agoi3-dmenu-desktop: don’t use smartmatch (it’s experimental)
Michael Stapelberg [Thu, 15 May 2014 20:52:18 +0000 (22:52 +0200)]
i3-dmenu-desktop: don’t use smartmatch (it’s experimental)

This commit should not change functionality at all (famous last words).

10 years agodocs/userguide: fix default key binding (Thanks Maxime)
Michael Stapelberg [Thu, 8 May 2014 06:45:30 +0000 (08:45 +0200)]
docs/userguide: fix default key binding (Thanks Maxime)

10 years agofix “make dist” target
Michael Stapelberg [Sun, 4 May 2014 21:07:53 +0000 (23:07 +0200)]
fix “make dist” target

This was broken in 13db56255134a71acd2fd5a7e254adfbd0c2983b

10 years agoRerender on button press only when focus changes
Tony Crisci [Sun, 4 May 2014 11:50:23 +0000 (07:50 -0400)]
Rerender on button press only when focus changes

On button press events, the only change in state that would presently
require rerendering the tree is when the focused window changes.

10 years agoRemove yajl major version conditionals
Tony Crisci [Sun, 4 May 2014 01:02:54 +0000 (21:02 -0400)]
Remove yajl major version conditionals

Yajl version ≥ 2 is required.

fixes #1156

10 years agoFeature: improve active window request handling
Tony Crisci [Fri, 2 May 2014 20:27:26 +0000 (16:27 -0400)]
Feature: improve active window request handling

Allow client requests of type _NET_ACTIVE_WINDOW to switch workspaces if
they indicate they are a pager. Otherwise, set the urgency hint on that
con to indicate that something happened.

This allows task switchers like skippy-xd to work properly.

http://standards.freedesktop.org/wm-spec/latest/ar01s03.html#idm140251368127856

10 years agoTest workspace empty event semantics
Marco Hunsicker [Tue, 1 Apr 2014 17:33:37 +0000 (19:33 +0200)]
Test workspace empty event semantics

This patchs provides testcases for the workspace "empty" event.

10 years agoRefactor binding accessor
Tony Crisci [Fri, 2 May 2014 14:22:40 +0000 (10:22 -0400)]
Refactor binding accessor

Change the primary binding accessor to `get_binding_from_xcb_event`.

This function gets a binding from a generic xcb event of type KeyPress,
KeyRelease, ButtonPress, or ButtonRelease by determining the input type
(keyboard or mouse), the modifiers pressed from the filtered event
`state`, managing the proper fall back in case mode switch is enabled,
and finally querying the bindings for a binding that matches the event.

The logic of querying keyboard bindings is not intended to be altered by
this change.

The general accessor has been slightly modified to work with mouse
bindings and made private because it is only used in bindings.c

10 years agoi3bar: reinit colors on barconfig update
Tony Crisci [Fri, 2 May 2014 23:56:12 +0000 (19:56 -0400)]
i3bar: reinit colors on barconfig update

Allows bar colors to be updated on barconfig update events, such as with
the ipc command `reload`.

10 years agoDont include dock clients in ewmh lists
Tony Crisci [Fri, 2 May 2014 20:54:34 +0000 (16:54 -0400)]
Dont include dock clients in ewmh lists

http://standards.freedesktop.org/wm-spec/latest/ar01s03.html#idm140251368149456

The _NET_CLIENT_LIST property of the root window:

> These arrays contain all X Windows managed by the Window Manager.

Dock clients are not managed windows, so they should not be included in
_NET_CLIENT_LIST or _NET_CLIENT_LIST_STACKING.

10 years agoimprove error messages for i3-internal workspace names
Michael Stapelberg [Sat, 3 May 2014 13:02:51 +0000 (15:02 +0200)]
improve error messages for i3-internal workspace names

10 years agoadd a testcase for the previous commit (internal workspaces)
Michael Stapelberg [Sat, 3 May 2014 13:00:49 +0000 (15:00 +0200)]
add a testcase for the previous commit (internal workspaces)

10 years agoMake all workspaces starting with "__" internal
Alexander Berntsen [Wed, 30 Apr 2014 09:12:22 +0000 (11:12 +0200)]
Make all workspaces starting with "__" internal

Workspaces won't work properly if they start with "__", so reserve that
namespace altogether. Disallow renaming workspaces to reserved namespace
and using reserved namespace in configuration.

Fixes #1209.

10 years agorender resize windows retina-correctly
Michael Stapelberg [Fri, 2 May 2014 15:11:48 +0000 (17:11 +0200)]
render resize windows retina-correctly

10 years agos/he/she/, s/his/her/ (Thanks lasers)
Michael Stapelberg [Wed, 30 Apr 2014 07:43:32 +0000 (09:43 +0200)]
s/he/she/, s/his/her/ (Thanks lasers)

10 years agoImplement the window::fullscreen_mode event
Tony Crisci [Mon, 28 Apr 2014 22:38:06 +0000 (18:38 -0400)]
Implement the window::fullscreen_mode event

The fullscreen_mode event is a window with the "change" property set to
"fullscreen_mode". This event should be emitted whenever a window enters
or exits fullscreen mode.

This event can be used to turn off dpms off when a window is fullscreen
or display the fullscreen container name in the status line for
instance.

10 years agoFeature: send complete config on barconfig_update
Tony Crisci [Sun, 27 Apr 2014 05:33:58 +0000 (01:33 -0400)]
Feature: send complete config on barconfig_update

Send all the options in the bar block on the barconfig_update event.

This will eventually allow for dynamically updating bar colors with the
`reload` command.

10 years agoDelegate click handling to dock clients
Tony Crisci [Wed, 30 Apr 2014 01:29:17 +0000 (21:29 -0400)]
Delegate click handling to dock clients

Do not handle click events on dock clients because they are not managed
windows. Dock clients are responsible for sending the message to i3 to
focus a workspace if that is appropriate. i3bar now sends the message to
focus the correct workspace when that is appropriate.

Otherwise, it could interfere with the dock clients own click handling,
which could be an action to focus a different workspace than i3 had
assumed, such as would be the case with a workspace widget.

10 years agoBugfix: ipc window event crash with no window
Tony Crisci [Mon, 28 Apr 2014 22:21:29 +0000 (18:21 -0400)]
Bugfix: ipc window event crash with no window

The log message at the top of ipc_send_window_event would segfault when
no xcb window is present, such as for a split container.

The log now shows the con id which is more relevant anyway.

10 years agoImplement bindsym mouse configuration
Tony Crisci [Sun, 27 Apr 2014 05:48:28 +0000 (01:48 -0400)]
Implement bindsym mouse configuration

If a `bindsym` config directive specifies a symbol beginning with
"button", the binding will be given the type B_MOUSE for the indicated
button number.

Example:

bindsym $mod+button2 exec echo 'button two'

This will be interpreted as having input code (now `keycode`) 2 and type
B_MOUSE.

The mechanism to find and run mouse bindings on mouse events is not
implemented.

10 years agotruncate DPI to an integer before multiplying (Thanks eeemsi)
Michael Stapelberg [Sat, 26 Apr 2014 20:50:31 +0000 (22:50 +0200)]
truncate DPI to an integer before multiplying (Thanks eeemsi)

This fixes i3bar workspace button rendering on non-DPI screens
(oldschool!)

10 years agodo click handling and tray padding retina-correctly
Michael Stapelberg [Sat, 26 Apr 2014 15:30:27 +0000 (17:30 +0200)]
do click handling and tray padding retina-correctly

10 years agodraw workspace buttons and padded text blocks retina-correctly
Michael Stapelberg [Sat, 26 Apr 2014 15:27:57 +0000 (17:27 +0200)]
draw workspace buttons and padded text blocks retina-correctly

10 years agoi3bar: render separators retina-correctly
Michael Stapelberg [Sat, 26 Apr 2014 15:20:21 +0000 (17:20 +0200)]
i3bar: render separators retina-correctly

10 years agoInitialize default window border width retina-correctly
Michael Stapelberg [Sat, 26 Apr 2014 15:18:21 +0000 (17:18 +0200)]
Initialize default window border width retina-correctly

10 years agolibi3: add logical_px() for Retina display support
Michael Stapelberg [Sat, 26 Apr 2014 15:17:37 +0000 (17:17 +0200)]
libi3: add logical_px() for Retina display support

10 years agoi3-dmenu-desktop: also quote the %c field code (Thanks bo)
Michael Stapelberg [Sat, 26 Apr 2014 12:25:12 +0000 (14:25 +0200)]
i3-dmenu-desktop: also quote the %c field code (Thanks bo)

The spec says:

“Implementations must take care not to expand field codes into multiple
 arguments unless explicitly instructed by this specification. This means
 that name fields, filenames and other replacements that can contain
 spaces must be passed as a single argument to the executable program
 after expansion.”

fixes #1240

10 years agoadd missing docs/layout-saving-1.png
Michael Stapelberg [Sat, 26 Apr 2014 10:46:25 +0000 (12:46 +0200)]
add missing docs/layout-saving-1.png

10 years agodebian: add docs/layout-saving
Michael Stapelberg [Sat, 26 Apr 2014 10:40:30 +0000 (12:40 +0200)]
debian: add docs/layout-saving

10 years agoMove check_for_duplicate_bindings to bindings.[ch]
Tony Crisci [Wed, 23 Apr 2014 01:41:28 +0000 (21:41 -0400)]
Move check_for_duplicate_bindings to bindings.[ch]

Additionally add a check for the same input_type (mouse or keyboard).
Bindings with different input types cannot be duplicates.

10 years agoBugfix: resize window check should check for null
Tony Crisci [Fri, 18 Apr 2014 18:14:22 +0000 (14:14 -0400)]
Bugfix: resize window check should check for null

When checking the window type for a resize command, first check to see
if the window property is null before checking whether or not it is a
dock window. The window may be null in the case it is a branch
container.

fixes #1220

10 years agoReset SIGIPE handler before executing a command
Petr Písař [Thu, 24 Apr 2014 18:35:17 +0000 (20:35 +0200)]
Reset SIGIPE handler before executing a command

This commit:

commit fb6d117c42ce3d9988ff44c079814b3840b1e37f
Author: Axel Wagner <mail@merovius.de>
Date:   Thu Dec 30 21:09:32 2010 +0100

    Port sighandler to tree-branch

blocks SIGPIPE. Unfortunatelly blocked signal set is preserved accross
execve()s, so any program executed by i3 inherited blocked SIGPIPE signal.
This leads to courious effects when pipe writer does not terminate after
exiting pipe reader.

Simple reproducer is to spawn a new xterm by a key shortcut and then run this
command there:

$ perl -e 'print $SIG{PIPE}, qq{\n}'
IGNORE

fixes #1237

10 years agoadd docs/layout-saving
Michael Stapelberg [Wed, 23 Apr 2014 17:49:50 +0000 (19:49 +0200)]
add docs/layout-saving

Feedback on this new document is very much appreciated, please don’t
hesitate to state anything that is hard to understand/could be improved.

10 years agoFix i3.mk to not rebuild test.* all the time
Michael Stapelberg [Wed, 23 Apr 2014 17:34:45 +0000 (19:34 +0200)]
Fix i3.mk to not rebuild test.* all the time

This problem was introduced in 5181055a

10 years agobuild i3-save-tree(1) manpage (Thanks xeen)
Michael Stapelberg [Wed, 23 Apr 2014 17:33:22 +0000 (19:33 +0200)]
build i3-save-tree(1) manpage (Thanks xeen)

10 years agofix parallel make
Julian Ospald [Tue, 22 Apr 2014 15:09:23 +0000 (15:09 +0000)]
fix parallel make

fixes #1232

10 years agorespect CFLAGS in linking command
Julian Ospald [Tue, 22 Apr 2014 15:09:23 +0000 (15:09 +0000)]
respect CFLAGS in linking command

fixes #1233

10 years agoDon’t overwrite existing windows with placeholder windows
Michael Stapelberg [Fri, 18 Apr 2014 18:36:56 +0000 (20:36 +0200)]
Don’t overwrite existing windows with placeholder windows

This could happen when you appended a layout on a workspace where there
are already other windows.

10 years agolayout restoring: append at the nearest split container (or workspace) (Thanks chris)
Michael Stapelberg [Fri, 18 Apr 2014 18:30:27 +0000 (20:30 +0200)]
layout restoring: append at the nearest split container (or workspace) (Thanks chris)

Before this commit, leaf containers (such as terminal emulators) would
get children appended, which is not intended.

fixes #1223

10 years agoMove switch_mode to bindings.[ch]
Tony Crisci [Mon, 14 Apr 2014 18:52:56 +0000 (14:52 -0400)]
Move switch_mode to bindings.[ch]

10 years agoDont set input focus and send WM_TAKE_FOCUS
Tony Crisci [Thu, 10 Apr 2014 17:28:14 +0000 (13:28 -0400)]
Dont set input focus and send WM_TAKE_FOCUS

If input focus is set by the window manager, it is not necessary to send
WM_TAKE_FOCUS because it has already taken focus.

http://tronche.com/gui/x/icccm/sec-4.html#s-4.1.7

> The goal is to support window managers that want to assign the input
> focus to a top-level window in such a way that the top-level window
> either can assign it to one of its subwindows or can decline the offer
> of the focus. For example, a clock or a text editor with no currently
> open frames might not want to take focus even though the window
> manager generally believes that clients should take the input focus
> after being deiconified or raised.

Both setting input focus and sending WM_TAKE_FOCUS is effectively
setting focus on the window twice which is certainly against the spirit
of the spec, if not the letter.

fixes #1167

10 years agoMaintain the _NET_CLIENT_LIST property
Tony Crisci [Tue, 8 Apr 2014 18:27:40 +0000 (14:27 -0400)]
Maintain the _NET_CLIENT_LIST property

Add and update the _NET_CLIENT_LIST property on the root window to
better comply with ewmh standards.

Information on this property can be found here:
http://standards.freedesktop.org/wm-spec/latest/ar01s03.html

> These arrays contain all X Windows managed by the Window Manager.
> _NET_CLIENT_LIST has initial mapping order, starting with the oldest window.

fixes #1099

10 years agoBugfix: clear wm_size_hints if they are not set
Michael Stapelberg [Wed, 9 Apr 2014 20:14:50 +0000 (22:14 +0200)]
Bugfix: clear wm_size_hints if they are not set

Otherwise, we read random garbage. Found by the testsuite due to
t/185-scratchpad.t failing because a window was incorrectly recognized
as a floating window.

10 years agoFix t/158-wm_take_focus, it was not properly verifying events (Thanks TonyC)
Michael Stapelberg [Wed, 9 Apr 2014 19:47:32 +0000 (21:47 +0200)]
Fix t/158-wm_take_focus, it was not properly verifying events (Thanks TonyC)

See also http://cr.i3wm.org/patch/500 for TonyC’s patch. This version
reduces code duplication.

10 years agoBugfix: Use DOM loaded event for TOC (Thanks TonyC)
Michael Stapelberg [Wed, 9 Apr 2014 18:37:24 +0000 (20:37 +0200)]
Bugfix: Use DOM loaded event for TOC (Thanks TonyC)

See http://code.i3wm.org/i3-website/commit/?id=d8e239e6 for the original
commit for the i3 website. This one is for documentation built from git.

10 years agoSend last event timestamp with WM_TAKE_FOCUS msg
Tony Crisci [Sat, 29 Mar 2014 04:25:52 +0000 (00:25 -0400)]
Send last event timestamp with WM_TAKE_FOCUS msg

According to 4.1.7 of the iccm spec

http://tronche.com/gui/x/icccm/sec-4.html#s-4.1.7

> Windows with the atom WM_TAKE_FOCUS in their WM_PROTOCOLS property may
> receive a ClientMessage event from the window manager (as described in
> section 4.2.8) with WM_TAKE_FOCUS in its data[0] field and a valid
> timestamp (i.e. not CurrentTime ) in its data[1] field.

Adds the timestamp parameter to send_take_focus to avoid the dangerous
use of a global variable.

10 years agoOpenBSD does not have librt
David Coppa [Wed, 26 Mar 2014 09:01:50 +0000 (10:01 +0100)]
OpenBSD does not have librt

10 years agoi3-nagbar: add missing newline when printing version information
Arun Persaud [Sun, 23 Mar 2014 17:49:20 +0000 (10:49 -0700)]
i3-nagbar: add missing newline when printing version information