Skip to content
This repository has been archived by the owner on Nov 7, 2022. It is now read-only.

Commit

Permalink
Merge branch 'gaps-next' into 'gaps'
Browse files Browse the repository at this point in the history
  • Loading branch information
Airblader committed Feb 18, 2020
2 parents 840208c + 8b1d1a1 commit 238d6d3
Show file tree
Hide file tree
Showing 97 changed files with 2,334 additions and 952 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ install:
script:
- docker run -v $PWD:/usr/src/i3/ -w /usr/src/i3 ${BASENAME} ./travis/check-safe-wrappers.sh
- docker run -v $PWD:/usr/src/i3/ -w /usr/src/i3 ${BASENAME} ./travis/check-formatting.sh
- docker run -v $PWD:/usr/src/i3/ -w /usr/src/i3 -e CC ${BASENAME} /bin/sh -c 'autoreconf -fi && mkdir -p build && cd build && (../configure || (cat config.log; false)) && make -j CFLAGS="-Wformat -Wformat-security -Wextra -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Werror"'
- docker run -v $PWD:/usr/src/i3/ -w /usr/src/i3 -e CC ${BASENAME} /bin/sh -c 'autoreconf -fi && mkdir -p build && cd build && (../configure || (cat config.log; false)) && make -j CFLAGS="-Wformat -Wformat-security -Wextra -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Werror -fno-common"'
- docker run -v $PWD:/usr/src/i3/ -w /usr/src/i3 ${BASENAME} ./travis/check-spelling.pl
- docker run -v $PWD:/usr/src/i3/ -w /usr/src/i3 -e CC ${BASENAME} ./travis/run-tests.sh
- ./travis/skip-pkg.sh || docker run -v $PWD:/usr/src/i3/ -w /usr/src/i3 ${BASENAME} ./travis/debian-build.sh deb/debian-amd64/DIST
Expand Down
2 changes: 1 addition & 1 deletion I3_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
4.17.1-non-git
4.18-non-git
4 changes: 3 additions & 1 deletion Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ EXTRA_DIST = \
I3_VERSION \
LICENSE \
PACKAGE-MAINTAINER \
RELEASE-NOTES-4.17.1 \
RELEASE-NOTES-4.18 \
generate-command-parser.pl \
parser-specs/commands.spec \
parser-specs/config.spec \
Expand Down Expand Up @@ -503,6 +503,7 @@ i3_SOURCES = \
include/con.h \
include/data.h \
include/display_version.h \
include/drag.h \
include/ewmh.h \
include/fake_outputs.h \
include/floating.h \
Expand Down Expand Up @@ -548,6 +549,7 @@ i3_SOURCES = \
src/config_directives.c \
src/config_parser.c \
src/display_version.c \
src/drag.c \
src/ewmh.c \
src/fake_outputs.c \
src/floating.c \
Expand Down
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,11 @@ smart_borders no_gaps

This extends i3's `hide_edge_borders` with a new option. When set, edge-specific borders of a container will be hidden if it's the only container on the workspace and the gaps to the screen edge is `0`.

```
# Hide edge borders only if there is one window with no gaps
hide_edge_borders smart_no_gaps
```

## i3bar

### Bar Height
Expand Down
29 changes: 0 additions & 29 deletions RELEASE-NOTES-4.17.1

This file was deleted.

71 changes: 71 additions & 0 deletions RELEASE-NOTES-4.18
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@

┌────────────────────────────┐
│ Release notes for i3 v4.18 │
└────────────────────────────┘

This is i3 v4.18. This version is considered stable. All users of i3 are
strongly encouraged to upgrade.

┌────────────────────────────┐
│ Changes in i3 v4.18 │
└────────────────────────────┘

• docs/ipc: document fullscreen_mode in GET_TREE reply
• docs/ipc: document marks field in GET_TREE reply
• docs/ipc: document window_type in GET_TREE reply
• docs/ipc: improve documentation for window_properties
• docs/userguide: clarify commands/config directive wording
• layout saving: remanage window after property updates (e.g. titles)
• get_first_output: prefer primary output (e.g. when moving disabled outputs)
• ipc: add window_type to nodes
• ipc: add container id to nodes
• allow dragging active titles for all container types (e.g. floating+tabbed)
• allow dragging inactive titles after a 10px threshold
• make tray icon order deterministic (sorted by class/instance)
• implement focus next|prev
• implement focus next|prev sibling
• implement focus_wrapping workspace
• exit with exit code 0 on --help
• exec command: respect command criteria

┌────────────────────────────┐
│ Bugfixes │
└────────────────────────────┘

• build: fix lcov support
• build: use AC_REPLACE_FUNCS, drop bundled memmem
• build: fix building with -fno-common (for gcc 10)
• build: configure: deal with git worktree checkouts, where .git is a file
• docs/userguide: fix link to pango markup
• docs/userguide: add missing manipulating_layout anchor
• docs/userguide: fix IPC socket location
• i3-nagbar: make debug log visible
• i3-nagbar: fix small memory leaks
• i3bar: fix small memory leaks
• move workspace to output: don’t create duplicate numbered workspace
• correctly select output when pointer query fails
• fix moving windows to scratchpad when using marks
• fix startup workspace selection when workspace command uses options
• do not try to center floating window on itself (fixes xterm placement)
• fix “move window to <mark>” when target is a workspace
• correctly activate windows behind a fullscreen window
• fix back-and-forth after renaming workspaces
• keep focus when moving container to marked workspace
• do not show scratchpad windows upon move to position command
• reparent windows to their current position when unmanaging
(fixes dock clients unexpectedly moving to different output)
• fix crash when moving containers
• scratchpad_move: un-fullscreen correct container
• avoid crash when nc->window is NULL

┌────────────────────────────┐
│ Thanks! │
└────────────────────────────┘

Thanks for testing, bugfixes, discussions and everything I forgot go out to:

acheronfail, Albert Safin, Antoine, Benjamin Dopplinger, Brian Ashworth,
Damien Cassou, Daniele Varrazzo, David Shen, Erwin J. van Eijk, Ingo Bürk,
Iskustvo, izzel, Konst Mayer, Orestis Floros, Yury Ignatev

-- Michael Stapelberg, 2020-02-17
14 changes: 9 additions & 5 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Run autoreconf -fi to generate a configure script from this file.

AC_PREREQ([2.69])
AC_INIT([i3], [4.17.1], [https://github.com/i3/i3/issues])
AC_INIT([i3], [4.18], [https://github.com/i3/i3/issues])
# For AX_EXTEND_SRCDIR
AX_ENABLE_BUILDDIR
AM_INIT_AUTOMAKE([foreign subdir-objects -Wall no-dist-gzip dist-bzip2])
Expand All @@ -29,7 +29,7 @@ AS_VAR_IF([_cv_gnu_make_command], [""], [AC_MSG_ERROR([the i3 Makefile.am requir

AX_EXTEND_SRCDIR

AS_IF([test -d ${srcdir}/.git],
AS_IF([test -e ${srcdir}/.git],
[
VERSION="$(git -C ${srcdir} describe --tags --abbrev=0)"
I3_VERSION="$(git -C ${srcdir} describe --tags --always) ($(git -C ${srcdir} rev-list --format=%cd --date=short -n1 $(git rev-parse HEAD) | tail -n1), branch \\\"$(git -C ${srcdir} describe --tags --always --all | sed s:heads/::)\\\")"
Expand Down Expand Up @@ -72,7 +72,8 @@ AC_CHECK_TYPES([mode_t, off_t, pid_t, size_t, ssize_t], , [AC_MSG_FAILURE([canno
AC_FUNC_FORK
AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
AC_FUNC_STRNLEN
AC_CHECK_FUNCS([atexit dup2 ftruncate getcwd gettimeofday localtime_r memchr memset mkdir rmdir setlocale socket strcasecmp strchr strdup strerror strncasecmp strndup strrchr strspn strstr strtol strtoul], , [AC_MSG_FAILURE([cannot find the $ac_func function, which i3 requires])])
AC_CHECK_FUNCS([atexit dup2 ftruncate getcwd gettimeofday localtime_r memchr memset mkdir rmdir setlocale socket strcasecmp strchr strdup strerror strncasecmp strrchr strspn strstr strtol strtoul], , [AC_MSG_FAILURE([cannot find the $ac_func function, which i3 requires])])
AC_REPLACE_FUNCS([mkdirp strndup])

# Checks for libraries.

Expand All @@ -83,8 +84,11 @@ AC_SEARCH_LIBS([ev_run], [ev], , [AC_MSG_FAILURE([cannot find the required ev_ru

AC_SEARCH_LIBS([shm_open], [rt], [], [], [-pthread])

AC_SEARCH_LIBS([iconv_open], [iconv], ,
AC_SEARCH_LIBS([libiconv_open], [iconv], , [AC_MSG_FAILURE([cannot find the required iconv_open() function despite trying to link with -liconv])]))
AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <iconv.h>], [iconv_open(0, 0)])], ,
[LIBS="-liconv $LIBS"
AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <iconv.h>], [iconv_open(0, 0)])], ,
[AC_MSG_FAILURE([cannot find the required iconv_open() function despite trying to link with -liconv])])]
)

AX_PTHREAD

Expand Down
19 changes: 19 additions & 0 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,21 @@
i3-wm (4.18.1-1) unstable; urgency=medium

* New upstream release.

-- Michael Stapelberg <[email protected]> Mon, 17 Feb 2020 18:25:47 +0100

i3-wm (4.18-1) unstable; urgency=medium

* New upstream release.

-- Michael Stapelberg <[email protected]> Mon, 17 Feb 2020 18:25:47 +0100

i3-wm (4.17.1-1) unstable; urgency=medium

* New upstream release.

-- Michael Stapelberg <[email protected]> Fri, 30 Aug 2019 23:06:40 +0200

i3-wm (4.17-1) unstable; urgency=medium

* New upstream release.
Expand All @@ -8,6 +26,7 @@ i3-wm (4.16.1-1) unstable; urgency=medium

* New upstream release.

>>>>>>> vanilla/next
-- Michael Stapelberg <[email protected]> Sun, 27 Jan 2019 16:45:11 +0100

i3-wm (4.16-1) unstable; urgency=medium
Expand Down
2 changes: 1 addition & 1 deletion docs/i3bar-protocol
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ separator_block_width::
is 9 pixels), since the separator line is drawn in the middle.
markup::
A string that indicates how the text of the block should be parsed. Set to
+"pango"+ to use https://developer.gnome.org/pango/stable/PangoMarkupFormat.html[Pango markup].
+"pango"+ to use https://developer.gnome.org/pango/stable/pango-Markup.html[Pango markup].
Set to +"none"+ to not use any markup (default). Pango markup only works
if you use a pango font.

Expand Down
21 changes: 20 additions & 1 deletion docs/ipc
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,10 @@ sending a reply. Expect the socket to be shut down.
The reply consists of a serialized list of workspaces. Each workspace has the
following properties:

id (integer)::
The internal ID (actually a C pointer value) of this container. Do not
make any assumptions about it. You can use it to (re-)identify and
address containers when talking to i3.
num (integer)::
The logical number of the workspace. Corresponds to the command
to switch to this workspace. For named workspaces, this will be -1.
Expand Down Expand Up @@ -344,19 +348,34 @@ window (integer)::
containers. This ID corresponds to what xwininfo(1) and other
X11-related tools display (usually in hex).
window_properties (map)::
X11 window properties title, instance, class, window_role and transient_for.
This optional field contains all available X11 window properties from the
following list: *title*, *instance*, *class*, *window_role* and *transient_for*.
window_type (string)::
The window type (_NET_WM_WINDOW_TYPE). Possible values are undefined, normal,
dialog, utility, toolbar, splash, menu, dropdown_menu, popup_menu, tooltip and
notification.
urgent (bool)::
Whether this container (window, split container, floating container or
workspace) has the urgency hint set, directly or indirectly. All parent
containers up until the workspace container will be marked urgent if they
have at least one urgent child.
marks (array of string)::
List of marks assigned to container
focused (bool)::
Whether this container is currently focused.
focus (array of integer)::
List of child node IDs (see +nodes+, +floating_nodes+ and +id+) in focus
order. Traversing the tree by following the first entry in this array
will result in eventually reaching the one node with +focused+ set to
true.
fullscreen_mode (integer)::
Whether this container is in fullscreen state or not.
Possible values are
+0+ (no fullscreen),
+1+ (fullscreened on output) or
+2+ (fullscreened globally).
Note that all workspaces are considered fullscreened on their respective output.

nodes (array of node)::
The tiling (i.e. non-floating) child containers of this node.
floating_nodes (array of node)::
Expand Down
24 changes: 0 additions & 24 deletions docs/layout-saving
Original file line number Diff line number Diff line change
Expand Up @@ -261,27 +261,3 @@ container:
]
}
--------------------------------------------------------------------------------

=== Placeholders using window title matches don't swallow the window

If you use the +title+ attribute to match a window and find that it doesn't
work or only works sometimes, the reason might be that the application sets the
title only after making the window visible. This will be especially true for
programs running inside terminal emulators, e.g., +urxvt -e irssi+ when
matching on +title: "irssi"+.

One way to deal with this is to not rely on the title, but instead use, e.g.,
the +instance+ attribute and running the program to set this window instance to
that value:

--------------------------------------------------------------------------------
# Run irssi via
# urxvt -name "irssi-container" -e irssi

"swallows": [
{
"class": "URxvt",
"instance": "irssi-container"
}
]
--------------------------------------------------------------------------------
Loading

0 comments on commit 238d6d3

Please sign in to comment.