aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
35 hoursReap zombie children on i3 start (#5909)HEADnextNikolay Nechaev
One case when this might be useful is when i3 is restarted and there are children that terminate after the previous i3 instance shut down but before the new one set things up. Fixes #5756
35 hoursRemove pledge() support for OpenBSD (#6048)Theo Buehler
While this initially worked fine, at some point these patches broke because libcairo started calling shmget(2) - a syscall not covered by any pledge promise - and a common pitfall when using pledge with graphics-oriented applications. Various attempts were made to fix them, but at some time they were simply disabled in the OpenBSD port: https://github.com/openbsd/ports/commit/a4a9f41dd79f8e9db6d58fb946d2a0c7151cde00 https://github.com/openbsd/ports/commit/5a03c386bab19dcc8e8d7a618693d557840068d1 This seems pointless and creates needless friction both for the i3 team who was willing to carry ugly code and for the OpenBSD ports maintainers who had to disable that code again. Let's abandon this experiment.
35 hoursdocs: Fix "Focus the next output" example (#6054)Bimba Laszlo
The "Focus the next output" example was misleading, fixed the code and added another comment to the previous code.
3 daysadd WINDOW_TYPE_NOTIFICATION to floating list (#6017)Junicchi
as explained in this discussion: https://github.com/i3/i3/discussions/5966#discussioncomment-8961295
14 daystestsuite docs: Update instructions (#6034)Orestis Floros
- Only recommend local perl library installation - Update build instructions to match hacking-howto
2024-04-30i3bar-workspace-protocol: Make examples (more) POSIX compliant (#6029)Orestis Floros
See https://unix.stackexchange.com/a/581410, `read` needs a variable name. Came up in #5939
2024-04-30errorlog: Check errorfile exists (#6028)Orestis Floros
Fixes #6027
2024-04-19Use I3SOCK environment variable for path in AnyEvent::I3 (#5987)Wesley Schwengle
Commit 3ae5f31d0 introduced the I3SOCK environment variable. This prevents us from having to call `i3 --get-socketpath'. In case the variable doesn't exist, fall back to the old ways. Signed-off-by: Wesley Schwengle <wesleys@opperschaap.net>
2024-04-19AnyEvent::I3: rip out taint mode compatibility (#5999)Michael Stapelberg
I suspect nobody actually uses Perl’s taint mode with AnyEvent::I3. See https://github.com/i3/i3/pull/5987 for discussion.
2024-04-16Add a newline at the end of the version option output. (#5980)yuvallangerontheroad
If there is no newline character at the end of the version option's output, the next command line prompt is written left to the version, rather than under it.
2024-04-09AnyEvent-I3: bump to 0.19 (#5990)Michael Stapelberg
fixes https://github.com/i3/i3/issues/5986
2024-04-09Check if subscribe event type is supported in AnyEvent::I3 (#5988)Wesley Schwengle
Add simple `if exists' construct in the subscribe function. This prevents a somewhat cryptic warnings such as these: Use of uninitialized value $type in hash element at /usr/share/perl5/AnyEvent/I3.pm line 309. We still warn the user, but it is much clearer as to what the cause is. It now shows something like this: Could not subscribe to event type 'foo'. Supported events are _error barconfig_update binding mode output shutdown tick window workspace Signed-off-by: Wesley Schwengle <wesleys@opperschaap.net>
2024-03-20Fix missing SIGUSR2 posix signal handling (#5960)systec-awe
Since there is no separate error handling the `SIGUSR2` signal is registered to get the write return code after exiting the program. Fixes #5958 --------- Signed-off-by: Andre Werner <andre.werner@systec-electronic.com>
2024-02-12Support multiple _NET_WM_STATE changes in one ClientMessage (#5910)Orestis Floros
2024-02-06Create new workspaces to the right of existing ones with the same numberrsgowman
i.e. creating workspaces named "1", "2:a", "2:b", "3" should result in that same order rather than "1", "2:b", "2:a", "3".
2024-02-06Don't skip identically numbered workspaces when moving to next/prev (#4578)rsgowman
eg if you have workspaces: { 1, 2:a, 2:b, 3 } and are on workspace 1, then 'workspace next' should traverse 1 -> 2:a -> 2:b -> 3 -> 1 instead of 1 -> 2:a -> 3 -> 1. Fixes #4452
2024-02-05Use new GitHub issue templates (#5900)Orestis Floros
Biggest benefit is that the users are presented with a set of editable fields instead of having to edit markdown directly in a text box, which is less friendly. Links to userguide and IPC docs are clickable in the description. See https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository
2024-02-04doc: update meson build instruction (#5899)Harimbola Santatra
The [official build instruction][1] are deprecated on Meson 1.3.1. These command: mkdir -p build && cd build meson .. ninja ... work but will yield the following warning: > WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated. Here's the correct way, according to the [meson documentation][2]: mkdir -p build meson setup build meson compile -C build meson install -C build [1]: https://i3wm.org/docs/hacking-howto.html#_building_i3 [2]: https://mesonbuild.com/Quick-guide.html#compiling-a-meson-project
2024-01-31Avoid creating redundant containers when switching between tabbed/stacked ↵Orestis Floros
and split layouts (#5469) Fixes #3001
2024-01-30smart_borders: Deprecate option (#5889)Orestis Floros
This had pretty much identical behaviour to hide_edge_borders which made it confusing. The `hide_edge_borders smart_no_gaps` implementation has an extra check which fixes #5406.
2024-01-28Merge pull request #5787 from elebow/userguide-default_border-title-layout-noteOrestis Floros
docs: Add note to `default_border` about title bar in stacking/tabbed
2024-01-28Shrinking on a per-block basis (#5818)Alessandro Vinciguerra
Co-authored-by: Orestis Floros <orestisflo@gmail.com>
2024-01-27clang-format: enable InsertBraces (#5882)Orestis Floros
Enforces a rule that we have followed for years now. Yes, the diff is quite big but we get it over with once and we prevent having to nit-pick future PRs.
2024-01-26con_is_maximized: Fix case where parent is workspace (#5880)Orestis Floros
See added test for simple example.
2024-01-24split up compound test assertionsSeth Pollen
2024-01-22Add support for _NET_WM_STATE_MAXIMIZED_{HORZ, VERT} (#5840)sethpollen
If a window occupies the entirety of its workspace vertically and/or horizontally, pass it the _NET_WM_STATE_MAXIMIZED_{HORZ, VERT} atoms. This helps applications like Google Chrome draw the tab bar correctly and handle tab clicks correctly (see https://crbug.com/1495853). This change is based on work from @yshui in #2380.
2023-12-13Make raphamorim/rio one of i3's sensible terminals.Yonas Yanfa
2023-11-26docs: Add note to `default_border` about title bar in stacking/tabbedEddie Lebow
See <https://github.com/i3/i3/issues/2664>.
2023-11-05focus workspace: consider workspace_auto_back_and_forth (#5754)Orestis Floros
Additionally, adds some tests for the command. Fixes #5744
2023-11-05Clean up old release notes (#5753)Orestis Floros
2023-11-05bindings: Do not grab pointer when executing bindings (#5755)Orestis Floros
Grabing the pointer produces a `GrabFrozen` error in applications that are run from key bindings. Since we don't need the pointer in such cases, we can change the call to use ASYNC. This seems to be a historical leftover. I've tested locally that these still work: - bindsym $mod+x ... - bindsym --release $mod+x ... - bindsym $mod+button1 ... - bindsym --release $mod+button1 ... - bindsym --release $mod+x exec program that grabs the keyboard now works (see original issue) Even in the main branch, I actually couldn't get `import` and `xdotool` to fail with the pointer being frozen, potentially because these programs wait a bit for the pointer to be unfrozen like i3lock does. This patch came up in https://github.com/i3/i3/issues/5735#issuecomment-1781321011 I wonder why the pointer is actually grabbed. The argument I change in `xcb_grab_key` there, is `pointer_mode`, from https://www.x.org/releases/X11R7.7/doc/man/man3/xcb_grab_key.3.xhtml: ``` pointer_mode One of the following values: XCB_GRAB_MODE_SYNC The state of the keyboard appears to freeze: No further keyboard events are generated by the server until the grabbing client issues a releasing AllowEvents request or until the keyboard grab is released. XCB_GRAB_MODE_ASYNC Keyboard event processing continues normally. ``` I traced via `git blame` the usage of `xcb_grab_key` throughout 14 years of i3 development and it seems that `pointer_mode` was always set to `XCB_GRAB_MODE_SYNC`, going all the way back to b66445670695f48f52988e2cc81d2ea7f03cf237. Fixes #5735
2023-11-04docs: fix typo in i3bar-workspace-protocola-kenji
2023-10-29debian: update changelogMichael Stapelberg
2023-10-29Merge branch 'release-4.23'Michael Stapelberg
2023-10-29Restore non-git version suffixMichael Stapelberg
2023-10-29release i3 4.234.23Michael Stapelberg
2023-09-23Fix failing testcase when the font exists (#5679)Sergey Zhmylove
When the font from testcase's config exists on the system, load_configuration() does not fallback to a 'fixed' one resulting in a fail of this case. The fallback scenario is added as well.
2023-09-21motif hints: respect maximum border style in append_layoutOrestis Floros
2023-09-21Update to clang-format-15Orestis Floros
2023-09-13userguide: Add an example for negative lookeaheads (#5665)Orestis Floros
2023-09-06remanage_window: Refactor to make clearer when a swallowing happensOrestis Floros
2023-09-06Remanage window after urgency flag changeOrestis Floros
Fixes #5658
2023-09-05Update to actions/checkout@v4 (#5653)Orestis Floros
Update to [actions/checkout@v4](https://github.com/actions/checkout/releases/tag/v4.0.0) According to https://github.com/actions/checkout/issues/1448 it might fix the issue we are encountering. Even if it doesn't, no apparent harm from using the latest version.
2023-09-04Fix dead links for Modern Perl bookWesley Schwengle
Closes: #5523 Signed-off-by: Wesley Schwengle <wesleys@opperschaap.net>
2023-09-03Fix crashes when using machine criterion (#5650)Orestis Floros
Fixes #5616
2023-07-22Share graphics context globally (#4376)Uli Schlachter
Instead of creating a graphics context for every surface_t, this commit adds a cache that allows to "remember" up to two GCs. Thus, the code uses less GCs. When a GC from the cache can be used, this also gets rid of a round-trip to the X11 server. Both of these are tiny, insignificant savings, but so what? Since GCs are per-depth, this code needs access to get_visual_depth(). To avoid a code duplication, this function is moved to libi3. Fixes: https://github.com/i3/i3/issues/3478 Signed-off-by: Uli Schlachter <psychon@znc.in>
2023-07-21Remove focus workaroundslyshot
2023-07-15Fix gcc false-positive warningOrestis Floros
2023-07-15debugging docs: Add note about ptraceOrestis Floros
Also remove outdated section about IRC
2023-06-30Regrab buttons on mode change (#5554)Orestis Floros
Unfortunately, grabbing / ungrabbing doesn't seem to work correctly in xvfb so we can't really test this. I also fixed the deduplication code in bindings_get_buttons_to_grab().