]> git.sur5r.net Git - i3/i3/log
i3/i3
9 years agoMerge pull request #2074 from Airblader/feature-2064
Michael Stapelberg [Sat, 21 Nov 2015 22:04:49 +0000 (23:04 +0100)]
Merge pull request #2074 from Airblader/feature-2064

Support _NET_WM_USER_TIME.

9 years agoSupport _NET_WM_USER_TIME. 2074/head
Ingo Bürk [Fri, 20 Nov 2015 23:19:49 +0000 (00:19 +0100)]
Support _NET_WM_USER_TIME.

With this patch, we support the special value "0" for _NET_WM_USER_TIME
on a window upon managing it, which indicates that the window shall not
be focused.

fixes #2064

9 years agoMerge pull request #2076 from Airblader/feature-document-rects
Michael Stapelberg [Sat, 21 Nov 2015 21:44:31 +0000 (22:44 +0100)]
Merge pull request #2076 from Airblader/feature-document-rects

Document rect, window_rect and deco_rect.

9 years agoDocument rect, window_rect and deco_rect. 2076/head
Ingo Bürk [Sat, 21 Nov 2015 20:52:43 +0000 (21:52 +0100)]
Document rect, window_rect and deco_rect.

9 years agoMerge pull request #2071 from tyll/https
Michael Stapelberg [Thu, 19 Nov 2015 13:10:42 +0000 (14:10 +0100)]
Merge pull request #2071 from tyll/https

Use https if possible

9 years agoUse https if possible 2071/head
Till Maas [Thu, 19 Nov 2015 12:32:35 +0000 (13:32 +0100)]
Use https if possible

git:// and http:// do not protect the integrity of the accessed data.
Therefore use https instead.

9 years agoMerge pull request #2061 from Airblader/bug-2049
Michael Stapelberg [Mon, 16 Nov 2015 08:49:27 +0000 (00:49 -0800)]
Merge pull request #2061 from Airblader/bug-2049

Only grab scrollwheel buttons if necessary

9 years agoAdd i3test::XTEST, add 2 test cases for key bindings
Michael Stapelberg [Mon, 16 Nov 2015 08:25:53 +0000 (09:25 +0100)]
Add i3test::XTEST, add 2 test cases for key bindings

9 years agoRevert "Bugfix: set group mask 1 by default, correctly compare modifiers"
Michael Stapelberg [Sun, 15 Nov 2015 17:00:48 +0000 (18:00 +0100)]
Revert "Bugfix: set group mask 1 by default, correctly compare modifiers"

This reverts commit 9692c1498bcde3489f80b484dbd847a75dfd0405.

That commit accidentally defaulted to group mask 1, but the default
should be to match any group mask, so that having multiple layouts
loaded at the same time works.

fixes #2062

9 years agoOnly grab scrollwheel buttons if necessary. 2061/head
Ingo Bürk [Wed, 11 Nov 2015 19:40:25 +0000 (20:40 +0100)]
Only grab scrollwheel buttons if necessary.

With this patch, we only grab the scrollwheel buttons (4 and 5) when
managing a window if a whole window key binding exists for these buttons.

This allows both of these usecases:
  - Bindings to scrollwheel buttons using --whole-window (see #1701).
  - Scrolling in a window without focusing it if no such binding
    exists (see #2049).

Furthermore, we drop all button grabs and regrab them after a config
reload in order to reevaluate the new bindings correctly.

fixes #2049

9 years agoExtract function to grab buttons when managing a window.
Ingo Bürk [Wed, 11 Nov 2015 19:21:26 +0000 (20:21 +0100)]
Extract function to grab buttons when managing a window.

We refactor the button grabbing into a function to allow the next patch
both to
  - conditionally grab different sets of buttons
  - grab the buttons again when reloading the config.

relates to #2049

9 years agoMerge pull request #2058 from Airblader/feature-rename-flag
Michael Stapelberg [Mon, 9 Nov 2015 20:17:07 +0000 (21:17 +0100)]
Merge pull request #2058 from Airblader/feature-rename-flag

Rename I3BAR_CAIRO to CAIRO_SUPPORT.

9 years agoRename I3BAR_CAIRO to CAIRO_SUPPORT. 2058/head
Ingo Bürk [Sat, 7 Nov 2015 19:28:45 +0000 (14:28 -0500)]
Rename I3BAR_CAIRO to CAIRO_SUPPORT.

9 years agoMerge pull request #2053 from Airblader/feature-2048
Michael Stapelberg [Tue, 3 Nov 2015 07:44:02 +0000 (08:44 +0100)]
Merge pull request #2053 from Airblader/feature-2048

Raise dependency to cairo 1.14.4.

9 years agoRaise dependency to cairo 1.14.4. 2053/head
Ingo Bürk [Mon, 2 Nov 2015 14:11:21 +0000 (09:11 -0500)]
Raise dependency to cairo 1.14.4.

With the recent cairo bugfix, we can now switch to using cairo for
rendering i3bar per default by raising the minimum version of cairo
to 1.14.4, if this cairo version is available.

resolves #2048

9 years agoMerge pull request #2054 from hwangcc23/fix-2051
Michael Stapelberg [Mon, 2 Nov 2015 19:13:20 +0000 (20:13 +0100)]
Merge pull request #2054 from hwangcc23/fix-2051

Fix config validation fail when no new line from end of file

9 years agoMerge pull request #2055 from Airblader/bug-2044
Michael Stapelberg [Mon, 2 Nov 2015 19:10:53 +0000 (20:10 +0100)]
Merge pull request #2055 from Airblader/bug-2044

Remove autostart commands after they have been executed.

9 years agoRemove autostart commands after they have been executed. 2055/head
Ingo Bürk [Mon, 2 Nov 2015 14:21:43 +0000 (09:21 -0500)]
Remove autostart commands after they have been executed.

As there is no need to keep autostart commands in memory, we can safely
remove them as soon as they have been executed. As we previously didn't
clear them at all during config reloads, this also fixes a memory leak.

Note that neither autostarts nor autostarts_always is executed during
config reloads, so removing them from memory is fine as an i3 restart
will cause them to be parsed again.

fixes #2044

9 years agoFix config validation fail when no new line from end of file 2054/head
hwangcc23 [Mon, 2 Nov 2015 14:12:44 +0000 (22:12 +0800)]
Fix config validation fail when no new line from end of file

1. i3 config validation failed when the new line is missing from the end of file.
   The error was: "ERROR: Your line continuation is too long, it exceeds 4096 bytes".
   It is wrong to assume that there is always a '\n' at the end of each line in the config file.
   (Not for the last line.)
   Fix it via adding a end-of-file check.

2. See the issue #2051. (https://github.com/i3/i3/issues/2051)

9 years agoMerge pull request #2001 from Airblader/feature-multiple-tray-output
Michael Stapelberg [Mon, 2 Nov 2015 08:18:26 +0000 (09:18 +0100)]
Merge pull request #2001 from Airblader/feature-multiple-tray-output

Allow multiple tray_output directives.

9 years agoFix memory leaks in modes and bar bindings. 2001/head
Ingo Bürk [Fri, 30 Oct 2015 17:10:41 +0000 (13:10 -0400)]
Fix memory leaks in modes and bar bindings.

9 years agoAllow multiple tray_output directives.
Ingo Bürk [Fri, 16 Oct 2015 09:34:19 +0000 (11:34 +0200)]
Allow multiple tray_output directives.

This patch introduces the possibility to specify the tray_output directive
multiple times. All values will be used by i3bar, in the order they are
given.

This way, a single bar configuration can be used for several machines with
internal output names "eDP1" and "LVDS-0" by specifying tray_output for both.
Any external output (e.g., "DP-0") will still not receive the tray. The same
effect can be achieved by using "primary", but forces the user to couple the
tray display to the primary output which may not be desirable behavior.

relates to #555

9 years agoBugfix: ignore XKB group bits in floating_modifier
Michael Stapelberg [Fri, 30 Oct 2015 07:38:53 +0000 (08:38 +0100)]
Bugfix: ignore XKB group bits in floating_modifier

fixes #2046

9 years agoBugfix: set group mask 1 by default, correctly compare modifiers
Michael Stapelberg [Thu, 29 Oct 2015 07:47:36 +0000 (08:47 +0100)]
Bugfix: set group mask 1 by default, correctly compare modifiers

fixes #2002

9 years agoBugfix: correctly compare modifier mask when identifying keybindings
Michael Stapelberg [Wed, 28 Oct 2015 20:42:37 +0000 (21:42 +0100)]
Bugfix: correctly compare modifier mask when identifying keybindings

fixes #2002

9 years agoMerge pull request #2043 from Airblader/bug-regex-mem-leak
Michael Stapelberg [Wed, 28 Oct 2015 17:55:26 +0000 (18:55 +0100)]
Merge pull request #2043 from Airblader/bug-regex-mem-leak

Fix multiple memory leaks with regular expressions.

9 years agoFix multiple memory leaks with regular expressions. 2043/head
Ingo Bürk [Wed, 28 Oct 2015 13:39:23 +0000 (14:39 +0100)]
Fix multiple memory leaks with regular expressions.

9 years agoMerge pull request #2030 from DavidMikeSimon/focus-bar-color
Michael Stapelberg [Tue, 27 Oct 2015 18:57:15 +0000 (19:57 +0100)]
Merge pull request #2030 from DavidMikeSimon/focus-bar-color

Optionally change i3bar color on focused output, implements #2020

9 years agoOptionally change i3bar color on focused output, implements #2020 2030/head
David Simon [Mon, 26 Oct 2015 20:55:01 +0000 (16:55 -0400)]
Optionally change i3bar color on focused output, implements #2020

9 years agoMerge pull request #2040 from Airblader/bug-2034
Michael Stapelberg [Tue, 27 Oct 2015 09:07:25 +0000 (10:07 +0100)]
Merge pull request #2040 from Airblader/bug-2034

Fix crash when trying to split and float a dock container.

9 years agoMerge pull request #2041 from Airblader/feature-2028-2
Michael Stapelberg [Tue, 27 Oct 2015 07:50:48 +0000 (08:50 +0100)]
Merge pull request #2041 from Airblader/feature-2028-2

Add --no-auto-back-and-forth for moving windows.

9 years agoAdd --no-auto-back-and-forth for moving windows. 2041/head
Ingo Bürk [Mon, 26 Oct 2015 21:38:06 +0000 (22:38 +0100)]
Add --no-auto-back-and-forth for moving windows.

This patch extends the previously introduced flag --no-auto-back-and-forth
to also apply to

    move window to workspace <name>
    move window to workspace number <number>

relates to #2028

9 years agoFix crash when trying to split and float a dock container. 2040/head
Ingo Bürk [Mon, 26 Oct 2015 17:16:21 +0000 (18:16 +0100)]
Fix crash when trying to split and float a dock container.

Since splitting a docking container was allowed and successful, the check
to prevent floating it fails to work. This causes a crash because the
workspace of the container cannot be determined as the dockarea is higher
up in the tree than the workspace it belongs to.

This patch extends to sanity check to nested dock containers when trying to
float a container and also disallows manually splitting a docked container
or changing its layout.

fixes #2034

9 years agoMerge pull request #2039 from DavidMikeSimon/fix-1824
Michael Stapelberg [Mon, 26 Oct 2015 20:26:53 +0000 (21:26 +0100)]
Merge pull request #2039 from DavidMikeSimon/fix-1824

Use separate buffers for i3bar statusline for each workspace, track short and long renders separately, fixes #1824

9 years agoUse separate buffers for i3bar statusline for each workspace, track short and long... 2039/head
David Simon [Mon, 26 Oct 2015 15:27:09 +0000 (11:27 -0400)]
Use separate buffers for i3bar statusline for each workspace, track short and long renders separately, fixes #1824

9 years agoMerge pull request #2036 from Airblader/bug-2015
Michael Stapelberg [Mon, 26 Oct 2015 08:14:28 +0000 (09:14 +0100)]
Merge pull request #2036 from Airblader/bug-2015

Make resize grow|shrink width|height work for a nested split in the s…

9 years agoMerge pull request #2031 from Airblader/feature-2028
Michael Stapelberg [Sun, 25 Oct 2015 15:51:32 +0000 (16:51 +0100)]
Merge pull request #2031 from Airblader/feature-2028

Added --no-auto-back-and-forth to workspace commands.

9 years agoMerge pull request #2037 from Airblader/bug-run-assignments
Michael Stapelberg [Sun, 25 Oct 2015 15:48:32 +0000 (16:48 +0100)]
Merge pull request #2037 from Airblader/bug-run-assignments

Fix assignments bug and a small logging bug

9 years agoMark assignment as run before executing it. 2037/head
Ingo Bürk [Sun, 25 Oct 2015 13:27:08 +0000 (14:27 +0100)]
Mark assignment as run before executing it.

We need to store the information that an assignment was run for a window
before actually executing the command. Otherwise, if the command causes
a change that causes assignments to be run again, the window might be
matched again, causing an infinite loop and hence i3 to freeze or crash.

9 years agoFixed logging statement.
Ingo Bürk [Sun, 25 Oct 2015 13:25:55 +0000 (14:25 +0100)]
Fixed logging statement.

Assignments don't necessarily represent workspace assignments, but could
also be used, e.g., for no_focus. Hence, there's no point in logging
dest.workspace for all assignments.

9 years agoMake resize grow|shrink width|height work for a nested split in the same direction. 2036/head
Ingo Bürk [Sun, 25 Oct 2015 12:03:56 +0000 (13:03 +0100)]
Make resize grow|shrink width|height work for a nested split in the same direction.

Suppose a horizontally oriented workspace has two windows open. Issuing "split h" on
the right window creates a nested horizontal container. If we now resize in "width"
direction, the resize doesn't work because it will only operate on the current parent,
which is a container with only one child, so the resize command exits.

This is unexpected behavior from a user point of view. Hence, with this patch, we
ensure that we don't just go up the tree until we find a parent with the correct
orientation, but also keep going if that parent has only a single child.

fixes #2015

9 years agoAdded --no-auto-back-and-forth to workspace commands. 2031/head
Ingo Bürk [Fri, 23 Oct 2015 21:36:37 +0000 (23:36 +0200)]
Added --no-auto-back-and-forth to workspace commands.

This patch introduces the --no-auto-back-and-forth flag to both of

    workspace --no-auto-back-and-forth <name>
    workspace --no-auto-back-and-forth number <number>

This flag will only have an effect if the back_and_forth feature is
enabled. If passed, the feature will be ignored for this particular
call only.

fixes #2028

9 years agoMerge pull request #2027 from Airblader/feature-cleanup-1
Michael Stapelberg [Fri, 23 Oct 2015 06:34:55 +0000 (08:34 +0200)]
Merge pull request #2027 from Airblader/feature-cleanup-1

Remove broken and unused debug borders.

9 years agoRemove broken and unused debug borders. 2027/head
Ingo Bürk [Thu, 22 Oct 2015 22:38:11 +0000 (00:38 +0200)]
Remove broken and unused debug borders.

9 years agoMerge pull request #2025 from Airblader/feature-2022
Michael Stapelberg [Thu, 22 Oct 2015 18:36:02 +0000 (20:36 +0200)]
Merge pull request #2025 from Airblader/feature-2022

Added background and border keys to the i3bar protocol.

9 years agoMerge pull request #2018 from Airblader/feature-2014
Michael Stapelberg [Thu, 22 Oct 2015 18:32:05 +0000 (20:32 +0200)]
Merge pull request #2018 from Airblader/feature-2014

Allow multiple marks on a window

9 years agoAdded background and border keys to the i3bar protocol. 2025/head
Ingo Bürk [Thu, 22 Oct 2015 14:11:08 +0000 (16:11 +0200)]
Added background and border keys to the i3bar protocol.

This patch adds two new status block keys, background and border, which
define the respective colors for the status block. If not specified, the
current behavior is kept, e.g., no background / border will be drawn.

If the status block is marked urgent, the urgent color is prioritized.

fixes #2022

9 years agoIntroduce special value __focused__ for criterion con_id. 2018/head
Ingo Bürk [Thu, 22 Oct 2015 13:38:23 +0000 (15:38 +0200)]
Introduce special value __focused__ for criterion con_id.

This allows matching with

    [con_id=__focused__] unmark

for commands that do not default to operating on the focused window
if no criteria have been specified (such as unmark).

relates to #2014

9 years agoMake 'unmark' aware of matched windows.
Ingo Bürk [Tue, 20 Oct 2015 06:14:42 +0000 (08:14 +0200)]
Make 'unmark' aware of matched windows.

This patch allows using 'unmark' on matched windows. The old behavior
of applying it to all windows if no criteria were specified is kept.

relates to #2014

9 years agoIntroduce "--add" for marking windows.
Ingo Bürk [Mon, 19 Oct 2015 16:31:21 +0000 (18:31 +0200)]
Introduce "--add" for marking windows.

In order to keep compatibility to before allowing multiple marks on a window,
we introduce a flag "--add" that must be set to put more than one mark on a
window. The default, which is also available as "--replace", keeps the old
behavior of overwriting a mark when setting a new one.

fixes #2014

9 years agoAllow multiple marks on windows.
Ingo Bürk [Mon, 19 Oct 2015 16:10:20 +0000 (18:10 +0200)]
Allow multiple marks on windows.

This patch allows multiple marks to be set on a single window. The restriction that a mark may
only be on one window at a time is still upheld as this is necessary for commands like
"move window to mark" to make sense.

relates to #2014

9 years agoMerge pull request #2017 from Airblader/bug-2011
Michael Stapelberg [Thu, 22 Oct 2015 07:19:07 +0000 (09:19 +0200)]
Merge pull request #2017 from Airblader/bug-2011

Activate root output if RandR request fails.

9 years agoMerge pull request #2023 from Adaephon-GH/next
Michael Stapelberg [Thu, 22 Oct 2015 07:08:39 +0000 (09:08 +0200)]
Merge pull request #2023 from Adaephon-GH/next

Fix documentation for __focused__  + some small fixes

9 years agoActivate root output if RandR request fails. 2017/head
Ingo Bürk [Mon, 19 Oct 2015 19:17:35 +0000 (21:17 +0200)]
Activate root output if RandR request fails.

fixes #2011

9 years agoMake rendering of key bindings more consistent 2023/head
Adaephon-GH [Wed, 21 Oct 2015 11:58:45 +0000 (13:58 +0200)]
Make rendering of key bindings more consistent

- Render key names and key bindings verbatim if they could be used like
  that in the configuration (no special format for "colloquial" names:
  Alt, Windows, ...)
- Use only lower case letters for key bindings

9 years agoImprove placement of explicit IDs for headings
Adaephon-GH [Wed, 21 Oct 2015 11:35:52 +0000 (13:35 +0200)]
Improve placement of explicit IDs for headings

In some cases the IDs of section titles was placed after the section
title. With that in the rendered HTML the ID was placed on the paragraph
and not on the heading. This led to heading not being shown when the
corresponding link was clicked.

9 years agoQuote __focused__ to prevent parsing by asciidoc
Adaephon-GH [Wed, 21 Oct 2015 11:08:21 +0000 (13:08 +0200)]
Quote __focused__ to prevent parsing by asciidoc

Text between two "__" is rendered as italics by asciidoc. This affects
the display of the new __focused__ special value for criteria.

9 years agofix a memory leak in handle_get_bar_config
Michael Stapelberg [Mon, 19 Oct 2015 17:11:53 +0000 (19:11 +0200)]
fix a memory leak in handle_get_bar_config

9 years agoFix memleak in translate_keysyms
Michael Stapelberg [Mon, 19 Oct 2015 16:52:47 +0000 (18:52 +0200)]
Fix memleak in translate_keysyms

9 years agoMerge pull request #2013 from Adaephon-GH/next
Michael Stapelberg [Mon, 19 Oct 2015 06:13:14 +0000 (08:13 +0200)]
Merge pull request #2013 from Adaephon-GH/next

Fix erroneous headline for moving to mark

9 years agoFix erroneous headline for moving to mark 2013/head
Adaephon-GH [Mon, 19 Oct 2015 05:39:59 +0000 (07:39 +0200)]
Fix erroneous headline for moving to mark

The headline indicated that it would be possible to move containers and *workspaces* to marks but the following text clearly shows that it should state containers and *windows*.

9 years agoMerge pull request #2007 from Airblader/feature-1996
Michael Stapelberg [Sun, 18 Oct 2015 16:25:07 +0000 (18:25 +0200)]
Merge pull request #2007 from Airblader/feature-1996

Add proper documentation for binding modes.

9 years agoAdd proper documentation for binding modes. 2007/head
Ingo Bürk [Sat, 17 Oct 2015 17:59:45 +0000 (19:59 +0200)]
Add proper documentation for binding modes.

fixes #1996

9 years agoMerge pull request #2004 from Airblader/bug-2003
Michael Stapelberg [Sun, 18 Oct 2015 10:26:37 +0000 (12:26 +0200)]
Merge pull request #2004 from Airblader/bug-2003

Fix moving windows to a marked workspace by mark.

9 years agoMerge pull request #2008 from Airblader/feature-1995
Michael Stapelberg [Sun, 18 Oct 2015 10:11:54 +0000 (12:11 +0200)]
Merge pull request #2008 from Airblader/feature-1995

Use sasprintf() instead of alloc'ing and strncpy() in i3bar.

9 years agoUse sasprintf() instead of alloc'ing and strncpy() in i3bar. 2008/head
Ingo Bürk [Sat, 17 Oct 2015 20:14:48 +0000 (22:14 +0200)]
Use sasprintf() instead of alloc'ing and strncpy() in i3bar.

resolves #1995

9 years agoMerge pull request #2005 from Airblader/feature-1998
Michael Stapelberg [Fri, 16 Oct 2015 22:21:46 +0000 (15:21 -0700)]
Merge pull request #2005 from Airblader/feature-1998

Log X11 errors in i3bar.

9 years agoLog X11 errors in i3bar. 2005/head
Ingo Bürk [Fri, 16 Oct 2015 19:18:23 +0000 (21:18 +0200)]
Log X11 errors in i3bar.

This commit introduces X11 error logging similar to the way we already do in i3.

fixes #1998

9 years agoFix moving windows to a marked workspace by mark. 2004/head
Ingo Bürk [Fri, 16 Oct 2015 19:07:16 +0000 (21:07 +0200)]
Fix moving windows to a marked workspace by mark.

When a window is moved to a mark and the marked container is a workspace,
we can skip any other logic and just call con_move_to_workspace directly.

fixes #2003

9 years agoMerge pull request #1999 from hwangcc23/fix-workspace-next
Michael Stapelberg [Fri, 16 Oct 2015 18:10:18 +0000 (11:10 -0700)]
Merge pull request #1999 from hwangcc23/fix-workspace-next

Revise workspace next/prev

9 years agoman: add “floating window” to terminology (Thanks frederik)
Michael Stapelberg [Fri, 16 Oct 2015 17:42:20 +0000 (19:42 +0200)]
man: add “floating window” to terminology (Thanks frederik)

9 years agoRevise workspace next/prev 1999/head
hwangcc23 [Fri, 16 Oct 2015 15:17:41 +0000 (23:17 +0800)]
Revise workspace next/prev

See the issue #1798 (http://github.com/i3/i3/issues/1798).

+workspace_next+ as-is cycles through either numbered or named workspaces,
but when it reaches the last numbered/named workspace, it only looks for
named workspaces. This commit changes it: look for named workspaces after
exhausting numbered ones, but also for numbered ones after exhausting
named ones.

Also add a test case 528-workspace-next-prev.t (numbered workspaces and named
workspaces on 2 outputs) for testing this.

9 years agoMerge pull request #1990 from Airblader/bug-1989
Michael Stapelberg [Wed, 14 Oct 2015 20:32:31 +0000 (13:32 -0700)]
Merge pull request #1990 from Airblader/bug-1989

Flush cairo surface after drawing text.

9 years agoIntroduce switch for the drawing backend 1990/head
Ingo Bürk [Wed, 14 Oct 2015 18:49:52 +0000 (20:49 +0200)]
Introduce switch for the drawing backend

This commit restores the old XCB drawing code paths while keeping the
cairo drawing available via a compile-time switch (I3BAR_CAIRO). This
is necessary as cairo currently has a bug that breaks i3bar for users
without the RENDER extension, which might be the case, e.g., for VNC
users.

For more context, see #1989 and the discussions about its fix. Once the
cairo fix is available in a stable release, i3 can depend on that version
and remove the XCB drawing code paths.

fixes #1989

9 years agoExtract cairo_clear_surface.
Ingo Bürk [Wed, 14 Oct 2015 17:03:05 +0000 (19:03 +0200)]
Extract cairo_clear_surface.

This commit refactors the i3bar drawing code to also define an abstraction
function for clearing a surface. This is needed to fully abstract i3bar/xcb.c's
drawing code so that we can introduce a switch to easily exchange the
underlying drawing mechanism.

9 years agoIntroduce a macro to flush a cairo surface twice.
Ingo Bürk [Wed, 14 Oct 2015 16:57:16 +0000 (18:57 +0200)]
Introduce a macro to flush a cairo surface twice.

Flushing the surface twice is necessary due to a cairo bug. For context,
refer to #1989 and https://bugs.freedesktop.org/show_bug.cgi?id=92455.

9 years agoMerge pull request #1994 from Airblader/bug-1992
Michael Stapelberg [Tue, 13 Oct 2015 19:08:42 +0000 (12:08 -0700)]
Merge pull request #1994 from Airblader/bug-1992

Make pango markup in mode names optional with a flag.

9 years agoFlush cairo surface after drawing text.
Ingo Bürk [Tue, 13 Oct 2015 09:08:10 +0000 (11:08 +0200)]
Flush cairo surface after drawing text.

This is necessary to avoid a bug where a cairo assertion fails because no snapshot is available.

fixes #1989

9 years agoRename is_markup to pango_markup. 1994/head
Ingo Bürk [Tue, 13 Oct 2015 07:29:50 +0000 (09:29 +0200)]
Rename is_markup to pango_markup.

9 years agoMake pango markup in mode names optional with a flag.
Ingo Bürk [Mon, 12 Oct 2015 21:43:47 +0000 (23:43 +0200)]
Make pango markup in mode names optional with a flag.

This introduces the flag "--pango" on the mode config directive to
explicitly enable pango markup for mode names. Not setting this will
cause the mode name to be rendered as is.
This fixes a regression in 4.11 where mode names containing characters
such as '<' would break user's configs as they didn't escape these
characters.

fixes #1992

9 years agoMerge pull request #1991 from Airblader/bug-1987
Michael Stapelberg [Mon, 12 Oct 2015 18:30:23 +0000 (11:30 -0700)]
Merge pull request #1991 from Airblader/bug-1987

Suppress no_focus for first window on a workspace.

9 years agoSuppress no_focus for first window on a workspace. 1991/head
Ingo Bürk [Mon, 12 Oct 2015 10:56:19 +0000 (12:56 +0200)]
Suppress no_focus for first window on a workspace.

With this patch, the no_focus directive will be ignored if the
to-be-opened window is the first on its workspace as there's no
reason the user would not want to focus it in this case.
This improves usability when, for example, using a tabbed
workspace_layout.

fixes #1987

9 years agoUse sasprintf()
Michael Stapelberg [Sun, 11 Oct 2015 18:42:52 +0000 (20:42 +0200)]
Use sasprintf()

9 years agoBugfix: add keymap fall back (_XKB_RULES_NAMES, then defaults)
Michael Stapelberg [Sun, 11 Oct 2015 18:23:07 +0000 (20:23 +0200)]
Bugfix: add keymap fall back (_XKB_RULES_NAMES, then defaults)

fixes #1983

9 years agoMerge pull request #1988 from Airblader/bug-1986
Michael Stapelberg [Sun, 11 Oct 2015 17:03:03 +0000 (10:03 -0700)]
Merge pull request #1988 from Airblader/bug-1986

Fix documentation for no_focus.

9 years agoFix documentation for no_focus. 1988/head
Ingo Bürk [Sun, 11 Oct 2015 15:05:30 +0000 (17:05 +0200)]
Fix documentation for no_focus.

fixes #1986

9 years agoMerge pull request #1985 from Airblader/bug-1984
Michael Stapelberg [Sun, 11 Oct 2015 08:54:13 +0000 (01:54 -0700)]
Merge pull request #1985 from Airblader/bug-1984

Remove support for 32-bit visuals and RGBA colors.

9 years agoRemove support for 32-bit visuals and RGBA colors. 1985/head
Ingo Bürk [Sat, 10 Oct 2015 19:27:23 +0000 (21:27 +0200)]
Remove support for 32-bit visuals and RGBA colors.

fixes #1984

9 years agotravis: install clang-format-3.5 from llvm repository
Michael Stapelberg [Sat, 10 Oct 2015 22:12:38 +0000 (00:12 +0200)]
travis: install clang-format-3.5 from llvm repository

Ubuntu utopic disappeared from archive.ubuntu.com, it’s EOL.

9 years agoMerge pull request #1981 from Airblader/feature-i3bar-rgba
Michael Stapelberg [Fri, 9 Oct 2015 16:32:52 +0000 (09:32 -0700)]
Merge pull request #1981 from Airblader/feature-i3bar-rgba

Allow 32-bit depth visuals and RGBA in i3bar

9 years agoRefactor cairo drawing of rectangles into utility functions. 1981/head
Ingo Bürk [Thu, 8 Oct 2015 10:31:56 +0000 (12:31 +0200)]
Refactor cairo drawing of rectangles into utility functions.

9 years agoWhen drawing text, mark the surface as dirty.
Ingo Bürk [Thu, 8 Oct 2015 10:16:25 +0000 (12:16 +0200)]
When drawing text, mark the surface as dirty.

Since libi3 currently creates its own cairo surface for drawing text, we
need to mark our own surface as dirty to force cairo to invalidate its
cache. Otherwise, this will result in graphical glitches such as the text
not showing up at all.

This wrapper can be removed in the future when libi3 is adapted to reuse
the same cairo surface as we do for all other drawing operations.

9 years agoAllow text drawing to use the alpha channel.
Ingo Bürk [Wed, 7 Oct 2015 09:03:18 +0000 (11:03 +0200)]
Allow text drawing to use the alpha channel.

We pass alpha channel information to the current text drawing code
and use it if it is available. The previous behavior of using full
opacity for RGB format colors is preserved.

9 years agoUse 32-bit visuals for i3bar when possible and allow RGBA colors.
Ingo Bürk [Mon, 5 Oct 2015 10:58:05 +0000 (12:58 +0200)]
Use 32-bit visuals for i3bar when possible and allow RGBA colors.

This patch creates all necessary windows for i3bar with 32-bit visuals if available.
It also introduces the possibility to define RGBA colors (next to RGB colors), which
allows the user to set the opacity of any color. This requires running a compositor.

With this patch we also start supporting _NET_SYSTEM_TRAY_VISUAL, which is necessary
for the tray icons so they create the tray window with the correct depth and visual.

9 years agoMerge pull request #1933 from Airblader/feature-1878-2
Michael Stapelberg [Mon, 5 Oct 2015 07:38:43 +0000 (09:38 +0200)]
Merge pull request #1933 from Airblader/feature-1878-2

Draw i3bar with cairo

9 years agoUse cairo for all drawing operations in i3bar. 1933/head
Ingo Bürk [Sat, 5 Sep 2015 21:38:15 +0000 (23:38 +0200)]
Use cairo for all drawing operations in i3bar.

fixes #1878

9 years agoMerge pull request #1963 from Airblader/bug-refactor-match-parsing
Michael Stapelberg [Sun, 4 Oct 2015 16:09:28 +0000 (18:09 +0200)]
Merge pull request #1963 from Airblader/bug-refactor-match-parsing

Refactor parsing of matches to avoid code duplication.

9 years agoRefactor parsing of matches to avoid code duplication. 1963/head
Ingo Bürk [Sun, 27 Sep 2015 07:42:26 +0000 (09:42 +0200)]
Refactor parsing of matches to avoid code duplication.

9 years agoMerge pull request #1909 from Airblader/feature-refactor-1
Michael Stapelberg [Sun, 4 Oct 2015 15:15:42 +0000 (17:15 +0200)]
Merge pull request #1909 from Airblader/feature-refactor-1

Refactor rendering noodles a bit

9 years agoMerge pull request #1965 from Airblader/feature-typed-commands-parser
Michael Stapelberg [Sun, 4 Oct 2015 15:05:27 +0000 (17:05 +0200)]
Merge pull request #1965 from Airblader/feature-typed-commands-parser

Make the command parser stack typed