summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-09-21release i3 4.214.21Michael Stapelberg
2022-09-21unflake t/289-ipc-shutdown-event.t (#5144)Michael Stapelberg
Before this commit, the test was flaky: it relied on the Perl test process sending the kill() system call before i3 exited. This can easily be triggered by adding a sleep(1) after the “cmd 'exit'” line. This is because with i3_autostart => 1 (the default), i3test.pm kills i3 or bails out if it can’t. So, we instead set i3_autostart => 0 and launch i3 ourselves. This will unfortunately still make the code kill i3 and bail out, because launch_with_config updates the $i3_pid variable that i3test.pm uses for tracking whether it should clean up i3. The solution is to exit i3 by calling exit_gracefully, which will make the i3test.pm state correct. related to https://github.com/i3/i3/issues/3009
2022-09-20Add some release notes (#5138)Orestis Floros
2022-09-20tiling_drag: Correctly switch to workspace when dragging across outputs (#5141)Orestis Floros
Fixes #5089
2022-09-19motif: restore `BS_NORMAL` correctly (#5135)viri
motif hints: restore BS_NORMAL correctly
2022-09-17tiling_drag: con_rect_plus_deco_height: Fix underflow (#5129)Orestis Floros
Fixes #5069
2022-09-12Fix crash in parse_file() when parsing nested variables (#5003)zhrvn
Count extra_bytes correctly If there is a variable with the same name as the rest of another variable after removing $, then it will be counted twice. Therefore, we need to completely replace it with spaces (variable names cannot contain spaces) in order to correctly calculate the length of a new string. fixes https://github.com/i3/i3/pull/5002 Co-authored-by: Ivan Zharov <zhiv.email@gmail.com> Co-authored-by: Michael Stapelberg <stapelberg@users.noreply.github.com>
2022-09-11Fix segfault with mode "default" key bindings (#5007)zhrvn
ignore bindings when not in a valid mode Co-authored-by: Ivan Zharov <zhiv.email@gmail.com> Co-authored-by: Michael Stapelberg <stapelberg@users.noreply.github.com>
2022-09-10testsuite: catch i3 SIGSEGV by installing SIGCHLD handler (#5123)Michael Stapelberg
The testsuite already contains quite a number of SIGCHLD handler installation/un-installations. Here is my attempt at an inventary. 1. complete-run.pl installs a SIGCHLD handler in the `start_xserver()` function call, which prints an error and exits when all x server processes have exited. 2. In the TestWorker child process, a SIGCHLD handler is installed to reap dead test child processes. 3. The TestWorker child process forks another child process for running the test file, where the previously installed SIGCHLD handler (point 2) is unset. This is where this commit comes in: it installs a SIGCHLD handler in the test file child process, which will trigger when the i3 subprocess dies. 4. (For completeness: i3test.pm defines an END block where it unsets the previous SIGCHLD handler before it kills the subprocesses.) With this commit, when i3 segfaults, the output will look like this: Writing logfile to 'testsuite-2022-09-10-21-14-46-4.20-103-gb242bceb/complete-run.log'... [:100] /home/michael/i3/testcases/t/167-workspace_layout.t: BAILOUT completed 0 of 1 tests test /home/michael/i3/testcases/t/167-workspace_layout.t bailed out: could not kill i3: No such process fixes https://github.com/i3/i3/issues/4437
2022-09-09open_logbuffer: avoid overflow by comparing (long long) (#5113)Michael Stapelberg
I tested this on a machine with 256 GB of RAM. fixes #4906
2022-09-09config_parser: prevent trailing whitespace in output (string → word) (#5117)Michael Stapelberg
fixes https://github.com/i3/i3/issues/5064
2022-09-09config: set bar block font to i3-wide font *after* parsing (#5118)Michael Stapelberg
Otherwise, the font directive needs to come before bar blocks, which is surprising to users. fixes https://github.com/i3/i3/issues/5031
2022-09-06man/i3-input: fix a typo: chose → choose (#5087)paperluigis
2022-09-06Add wezterm to i3-sensible-terminal (#5107)mariano
2022-09-06i3-sensible-pager: sanitize LESS environment variable (#5111)bodea
When an error is encountered such as "The configured command for this shortcut could not be run successfully", the "show errors" button on i3-nagbar doesn't work if $PAGER is less, and $LESS contains either the -E or -F flag (the window pops up, but immediately disappears). Strip these flags from the LESS environment variable before invoking $pager.
2022-07-28Allow dragging tiled windows with the mouse. (#3085)Orestis Floros
Fixes #2643 Inner drop region behaves like move to mark. The outer region is close to the edge (currently 30px from the edge). This will place the container as a sibling in the given direction within the parent container. If the move direction goes against the orientation of the parent container, tree_move() is called. Contributors: Co-authored-by: Orestis Floros <orestisflo@gmail.com> See #3085 - Inner drop region behaves like move to mark - Handle workspaces - Fix crash when target closes - Initiate tiling drag from titlebar - Hide indicator until container is dragged outside of original position - Calculate outer_threshold using percentages instead of fixed pixel values - Emit 'move' event properly - Don't focus previously unfocused containers - Use tree_split() on different orientation - Fix redundant split containers - DT_PARENT - Readability & optimizations - Limit parent threshold by render_deco_height() - Tests - Fullscreen container handling - Initiate drag from title bar - Fix issue of EnterNotify events still triggering after drag_callback is called - Include decorations for drop target calculation Co-authored-by: Michael Forster <email@michael-forster.de> See #2178 - Original implementation of tiling drag + indicator window > A container can be dragged by the title bar to one of the four sides > of another container. That container will then be split either > horizontally or vertically. Co-authored-by: Tony Crisci <tony@dubstepdish.com> See #2653 - Original implementation of outer/inner drop region indicator: > There are two drop regions per direction. > > The inner region is closer to the center of the window. Dropping on > this region will split the target container and put the container > within the split at the given direction beside the target container. > > The outer region is close to the edge (currently 30px from the edge). > This will place the container as a sibling in the given direction within > the parent container. > > Dropping into the outer region moves the con beside the target. If the > move direction goes against the orientation of the parent container, the > con moves out of the row. - Fix crash: Ignore containers without a managed window (eg i3bar)
2022-07-28Fix Wbitwise-instead-of-logical warningsOrestis Floros
> error: use of bitwise '|' with boolean operands
2022-07-28fix travis/check-spelling.pl for recent Lintian changesMichael Stapelberg
2022-06-30Split container parents should be redrawn when swapping child containers ↵Jay Ta'ala
(within parent) (#4765) Redraw split container parents when swapping child containers Split container parents should be redrawn when swapping child containers so they show the correct window ordering (note without this higher level split parent container titles will only update when changing layout or moving child cons in/out.
2022-06-30cleanup-bintray: remove remaining bintray references (#5038)Josh Soref
* The `cleanup-bintray.pl` script is just unused * The `dh_builddeb` override is no longer necessary as bintray is no longer used
2022-06-28highlight the difference between "workspace N" and "workspace number N" commandsKjetil Torgrim Homme
2022-06-08Fix segfault when bindsym command is empty (#5001)zhiv-git
Remove end token from BINDCOMMAND fixes i3/i3#5000: bindsym command cannot be empty, because NULL string causes i3 to segfault when copied in configure_binding()
2022-06-01Fix typos (#4989)George Rodrigues
2022-05-31GitHub Actions: declare /usr/src/i3 as safe directory (#4992)Michael Stapelberg
2022-03-28clear surface on x_push_node (#4577)André Silva
2022-03-28Fix typo in comment (#4936)takelley1
* Fix typo in comment * Fix other typo in comment
2022-02-10Remove Xlib references (#4845)Ingo Bürk
* remove Xlib import from i3bar * remove unused Xlib declarations
2022-02-07Use proper WM_Sx registration for i3 (#4843)Gergely Risko
i3's WM ownership is registered with the X Atom WM_S_S0 (for screen0), instead of the correct WM_S0. The relevant xcb-util API didn't change, this is simply a bug in i3 that has always been there: https://gitlab.freedesktop.org/xorg/lib/libxcb-util/-/blob/0.4.0/src/atoms.c#L65
2021-12-11Merge pull request #4710 from pstray/title_window_icon-toggleOrestis Floros
Implement title_window_icon toggle
2021-12-11Implement title_window_icon togglePeder Stray
A feature described in i3/i3#4709
2021-12-06Merge pull request #4717 from orestisfl/janitorialOrestis Floros
Remove outdated //-style commented-out code
2021-12-06Remove outdated //-style commented-out codeOrestis Floros
This makes the whole code-base have zero changes with clang-format (v13).
2021-12-06fix #4697, adds backslashes quotation for exec (#4699)sergio
Signed-off-by: Sergio E. Nemirowski <sergio@outerface.net>
2021-12-01docs: change IPC window_type value (#4668)Chris Templin
2021-11-29debian: bump to libpcre2-dev for autobuilds (#4705)Michael Stapelberg
related to https://github.com/i3/i3/issues/4682
2021-11-29Switch from pcre to pcre2 (#4684)Uli Schlachter
The issue at [0] was opened and I just took a stab at it. I have no prior experience with pcre and pcre2, but using [1,2] I hacked together something that seems to work. Next, Michael told me to turn that patch/hack into a PR, so here we are. The dependency in meson.build now uses version:'>=10', but this is more a random guess than actual knowledge. There was a while loop in regex_new() that dealt with an error when pcre was not compiled with UTF-8 support. This loop uses a magic constant of 32 for the error code. I just dropped this loop, because I was just writing a hack and did not intend to turn this into a PR. Also, a quick "grep 32 /usr/include/pcre.h" does not find anything useful, so... *shrug* pcre_study() was removed without replacement, so the corresponding code is also simply removed. Testing done: The test suite passes for me. YMMV. [0]: https://github.com/i3/i3/issues/4682 [1]: https://www.pcre.org/current/doc/html/pcre2api.html [2]: https://www.pcre.org/current/doc/html/pcre2demo.html Signed-off-by: Uli Schlachter <psychon@znc.in> Fixes: https://github.com/i3/i3/issues/4682
2021-11-27Merge pull request #4698 from orestisfl/user_output_names_find_nextIngo Bürk
user_output_names_find_next: Always initialize target_output
2021-11-27user_output_names_find_next: Always initialize target_outputOrestis Floros
This way, if the user has provided a valid, existing output in the list of outputs, the focus & move workspace to output commands will not report a misleading failure. Side-effect is that the command code will try to execute a no-op e.g. by moving the workspace to the output it already is on. But that's what the user is actually requesting in this case and it shouldn't be a problem. Fixes #4691
2021-11-18Merge pull request #4485 from ToxicGLaDOS/long_commands_crashIngo Bürk
Fix bug where long commands crash i3
2021-11-18Merge pull request #4622 from orestisfl/focus-output-nextIngo Bürk
Focus output next
2021-11-18Merge pull request #4651 from orestisfl/docs-ipc-socketIngo Bürk
docs: Make more clear that an IPC socket is always created
2021-11-18Merge pull request #4667 from orestisfl/transient_for-loopIngo Bürk
Fix transient_for endless loop
2021-11-11Fix transient_for endless loopOrestis Floros
Other approaches would be: - Slow/fast pointer technique. - Using a set/associative map to save 'seen' nodes. i3 does not have such data structure. Counting the total amount of windows is the simpler to implement. I've also extracted the logic in a function and re-used it in render.c. Fixes #4404
2021-11-07Merge pull request #4656 from stapelberg/flakyOrestis Floros
Fix flaky tests: sync after kill
2021-11-07t/219-ipc-window-focus.t: sync after killMichael Stapelberg
2021-11-07fix flaky testcases/t/185-scratchpad.t: sync after kill commandMichael Stapelberg
2021-11-06Merge pull request #4648 from orestisfl/formatting-new-actionOrestis Floros
Move clang-format and safe-wrappers check in new job
2021-11-06Release notes script fixes (#4652)Orestis Floros
* release-notes: Sort filenames * release-notes: Fix print-urls
2021-11-05cmd_focus_output: Multiple outputsOrestis Floros
2021-11-05tests: Extract focused_output in libraryOrestis Floros