From 727fb62b051a77fc94529da8fe12a886c3166d32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ingo=20B=C3=BCrk?= Date: Sun, 15 Nov 2020 19:12:09 +0100 Subject: [PATCH 1/7] Restore non-git suffix --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 11541e211..0bf023f2d 100644 --- a/meson.build +++ b/meson.build @@ -63,7 +63,7 @@ config_h = declare_dependency( sources: vcs_tag( input: config_h_in, output: 'config.h', - fallback: meson.project_version() + ' (2020-11-15)', + fallback: meson.project_version() + '-non-git', ) ) From 0c09bc24ffad9a662537c5cd94550ef0e14b36bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ana=C3=ABl=20Beutot?= Date: Tue, 29 Dec 2020 21:45:39 +0100 Subject: [PATCH 2/7] Fix workspace assignements after output changes Fix #4261 The previous method was modifying the same list it was iterating upon causing an erronous iteration and thus not every workspace got assigned back to were they should (only the first one). --- src/randr.c | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/src/randr.c b/src/randr.c index 8e000ca62..b4d1d0941 100644 --- a/src/randr.c +++ b/src/randr.c @@ -439,28 +439,31 @@ void init_ws_for_output(Output *output) { Con *previous_focus = con_get_workspace(focused); /* Iterate over all workspaces and check if any of them should be assigned - * to this output. */ - Con *output_con; - TAILQ_FOREACH (output_con, &(croot->nodes_head), nodes) { - if (con_is_internal(output_con)) { + * to this output. + * Note: in order to do that we iterate over all_cons and not using another + * list that would be updated during iteration by the + * workspace_move_to_output function. */ + Con *workspace; + TAILQ_FOREACH (workspace, &all_cons, all_cons) { + if (workspace->type != CT_WORKSPACE || con_is_internal(workspace)) { continue; } - Con *workspace; - TAILQ_FOREACH (workspace, &(output_get_content(output_con)->nodes_head), nodes) { - Con *workspace_out = get_assigned_output(workspace->name, workspace->num); - if (output->con != workspace_out) { - continue; - } + Con *workspace_out = get_assigned_output(workspace->name, workspace->num); - DLOG("Moving workspace \"%s\" from output \"%s\" to \"%s\" due to assignment\n", - workspace->name, workspace_out->name, output_primary_name(output)); - /* Need to copy output's rect since content is not yet rendered. We - * can't call render_con here because render_output only proceeds - * if a workspace exists. */ - content->rect = output->con->rect; - workspace_move_to_output(workspace, output); + if (output->con != workspace_out) { + continue; } + + DLOG("Moving workspace \"%s\" from output \"%s\" to \"%s\" due to assignment\n", + workspace->name, output_primary_name(get_output_for_con(workspace)), + output_primary_name(output)); + + /* Need to copy output's rect since content is not yet rendered. We + * can't call render_con here because render_output only proceeds + * if a workspace exists. */ + content->rect = output->con->rect; + workspace_move_to_output(workspace, output); } /* Temporarily set the focused container, might not be initialized yet. */ From b35be841316712aac048f3823560726691863986 Mon Sep 17 00:00:00 2001 From: Orestis Floros Date: Sat, 2 Jan 2021 21:47:12 +0100 Subject: [PATCH 3/7] Comment-out duplicate i3-dmenu-desktop bindcode Fixes #4304 --- etc/config.keycodes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/config.keycodes b/etc/config.keycodes index aa79901bf..a02c0046d 100644 --- a/etc/config.keycodes +++ b/etc/config.keycodes @@ -51,7 +51,7 @@ bindcode $mod+40 exec --no-startup-id dmenu_run # bindcode $mod+40 exec rofi -modi drun,run -show drun # There also is i3-dmenu-desktop which only displays applications shipping a # .desktop file. It is a wrapper around dmenu, so you need that installed. -bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop +# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop # change focus bindcode $mod+44 focus left From 77d5bbb9b572b3e6680f2248b915594a7c06c435 Mon Sep 17 00:00:00 2001 From: Imran Virani <32938830+ImranVirani@users.noreply.github.com> Date: Wed, 27 Jan 2021 16:06:29 -0500 Subject: [PATCH 4/7] Properly quote rofi call in i3 config --- etc/config | 2 +- etc/config.keycodes | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/etc/config b/etc/config index 19cb8c484..ce22fd3d1 100644 --- a/etc/config +++ b/etc/config @@ -54,7 +54,7 @@ bindsym Mod1+Shift+q kill # start dmenu (a program launcher) bindsym Mod1+d exec --no-startup-id dmenu_run # A more modern dmenu replacement is rofi: -# bindsym Mod1+d exec rofi -modi drun,run -show drun +# bindsym Mod1+d exec "rofi -modi drun,run -show drun" # There also is i3-dmenu-desktop which only displays applications shipping a # .desktop file. It is a wrapper around dmenu, so you need that installed. # bindsym Mod1+d exec --no-startup-id i3-dmenu-desktop diff --git a/etc/config.keycodes b/etc/config.keycodes index a02c0046d..f76d5a714 100644 --- a/etc/config.keycodes +++ b/etc/config.keycodes @@ -48,7 +48,7 @@ bindcode $mod+Shift+24 kill # start dmenu (a program launcher) bindcode $mod+40 exec --no-startup-id dmenu_run # A more modern dmenu replacement is rofi: -# bindcode $mod+40 exec rofi -modi drun,run -show drun +# bindcode $mod+40 exec "rofi -modi drun,run -show drun" # There also is i3-dmenu-desktop which only displays applications shipping a # .desktop file. It is a wrapper around dmenu, so you need that installed. # bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop From 0fb9123da9f8132b3603719e455ef5f77af02ad8 Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Mon, 1 Feb 2021 09:03:45 +0100 Subject: [PATCH 5/7] release i3 4.19.1 --- RELEASE-NOTES-4.19 | 81 -------------------------------------------- RELEASE-NOTES-4.19.1 | 27 +++++++++++++++ meson.build | 2 +- 3 files changed, 28 insertions(+), 82 deletions(-) delete mode 100644 RELEASE-NOTES-4.19 create mode 100644 RELEASE-NOTES-4.19.1 diff --git a/RELEASE-NOTES-4.19 b/RELEASE-NOTES-4.19 deleted file mode 100644 index cd5bf2c65..000000000 --- a/RELEASE-NOTES-4.19 +++ /dev/null @@ -1,81 +0,0 @@ - - ┌──────────────────────────────┐ - │ Release notes for i3 v4.19 │ - └──────────────────────────────┘ - -This is i3 v4.19. This version is considered stable. All users of i3 are -strongly encouraged to upgrade. - -In this release, we switched from the autotools build system to the meson build -system (https://mesonbuild.com/). Check https://github.com/i3/i3/issues/4086 for -details. If this causes problems for you, you can revert the commit which -removed autotools from the tree: we tried our best to keep both build systems -working. Please reach out to us in that case! - - ┌────────────────────────────┐ - │ Changes in i3 v4.19 │ - └────────────────────────────┘ - - • userguide: explain button6 and button7 (scroll wheel right/left) - • ipc: always include the marks property (even if empty) - • ipc: introduce GET_BINDING_STATE command - • ipc: clarify workspace name field semantics - • ipc: document parse_error COMMAND reply field - • i3bar: launch using exec to avoid leaving useless shell process - • i3bar: make dock client order deterministic (sorted by class/instance) as a - side effect, i3bars without an explicit bar-id will be sorted according - to their definition order in the config file - • i3bar: update config when necessary (reduces redraws on bar mode changes) - • i3bar: add coordinates relative to the current output in i3bar click events - • i3bar: add “nonprimary” output option - • i3bar: set WM_CLASS instance to bar id - • i3-input: add different exit codes for when i3-input fails - • i3-dmenu-desktop: Support symlinks in search path - • pod2html: render without stylesheet by default - • introduce “tiling_from” and ”floating_from” criteria - • mention rofi in default config file - • allow ppt values in move direction and move position commands - • allow matching on empty properties like class, title, etc. - - ┌────────────────────────────┐ - │ Bugfixes │ - └────────────────────────────┘ - - • i3-nagbar: Use _PATH_BSHELL to ensure using a bourne shell - • i3bar: fix Xorg memory leak - • i3bar: fix hang when pausing/resuming bar program - • i3bar: fix crash on invalid JSON input - • i3bar: kick tray clients before destroying the bar - • ensure client windows have a size of at least 1px after resize - • correctly handle overlapping decorations - • limit workspace numbers within 0..INT32_MAX - • fix a bug with tiling resize inside floating container - • correctly handle mouse resize in fullscreen containers by - not propagating $mod+right click to fullscreen clients - • do not try to resize fullscreen and non-fullscreen windows - • do not focus floating windows changing workspace with ConfigureNotify - • set _NET_DESKTOP_VIEWPORT after randr changes - • fix a bug with i3-nagbar not starting after it has already started once - • fix conflict when moving parent of fullscreen window to workspace - • fix named workspace assignments on output changes - • fix named workspace assignment precedence on workspace renames - • fix windows getting swallowed more than once - • erase i3 --moreversion progress line before overwriting - • fix test case 180-fd-leaks when running on Fedora - • fix crash in `focus next sibling` - • fix moving tiling windows out of the scratchpad - • floating_maybe_reassign_ws: only re-focus if previously focused - (fixes a focus issue with KDE notifications) - • fix crash on invalid JSON input in stored layouts - • fix monitor change during/with i3 restart by moving - content for non-existing output containers - -Thanks for testing, bugfixes, discussions and everything I forgot go out to: - - 6144, acheronfail, Albert Safin, Alessandro Vinciguerra, Andrey Burov, - Francesc Hervada-Sala, Heman Gandhi, Ian Fan, Ingo Bürk, izzel, Jason, Jason - Nader, Jorg Heymans, Joseph, Konstantin Kharlamov, Lukas Kern, Mark Guptill, - Martin T. H. Sandsmark, Matthew Martin, Maxim Schuwalow, Mike Sharov, Orestis - Floros, Vasily Fomin, Wilhelm Schuster, xzfc, zero77 - --- Michael Stapelberg, 2020-11-15 diff --git a/RELEASE-NOTES-4.19.1 b/RELEASE-NOTES-4.19.1 new file mode 100644 index 000000000..72e479c78 --- /dev/null +++ b/RELEASE-NOTES-4.19.1 @@ -0,0 +1,27 @@ + + ┌──────────────────────────────┐ + │ Release notes for i3 v4.19.1 │ + └──────────────────────────────┘ + +This is i3 v4.19. This version is considered stable. All users of i3 are +strongly encouraged to upgrade. + +This is a bugfix release for v4.19 + + ┌────────────────────────────┐ + │ Bugfixes │ + └────────────────────────────┘ + + • fix workspaces not moving to assigned output after output becomes available + • fix duplicate bindcode after i3-config-wizard + • fix commented-out rofi call in default i3 config + + ┌────────────────────────────┐ + │ Thanks! │ + └────────────────────────────┘ + +Thanks for testing, bugfixes, discussions and everything I forgot go out to: + + Anaël Beutot, Imran Virani, Orestis Floros + +-- Michael Stapelberg, 2021-02-01 diff --git a/meson.build b/meson.build index 0bf023f2d..14faf2d30 100644 --- a/meson.build +++ b/meson.build @@ -6,7 +6,7 @@ project( 'i3', 'c', - version: '4.19', + version: '4.19.1', default_options: [ 'c_std=c11', 'warning_level=1', # enable all warnings (-Wall) From 001577c58ce5f51829a599b102f4a04a95ac537f Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Mon, 1 Feb 2021 09:04:01 +0100 Subject: [PATCH 6/7] Set non-git version to 4.19.1-non-git. --- I3_VERSION | 1 + 1 file changed, 1 insertion(+) create mode 100644 I3_VERSION diff --git a/I3_VERSION b/I3_VERSION new file mode 100644 index 000000000..e754b6e0f --- /dev/null +++ b/I3_VERSION @@ -0,0 +1 @@ +4.19.1-non-git From e30b29b6ff69495580539820a3c3ec10f18926f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ingo=20B=C3=BCrk?= Date: Mon, 1 Feb 2021 09:54:35 +0100 Subject: [PATCH 7/7] release i3-gaps 4.19.1 --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 14faf2d30..b052efa45 100644 --- a/meson.build +++ b/meson.build @@ -63,7 +63,7 @@ config_h = declare_dependency( sources: vcs_tag( input: config_h_in, output: 'config.h', - fallback: meson.project_version() + '-non-git', + fallback: meson.project_version() + ' (2021-02-01)', ) )