summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-10-19release i3 4.204.20Michael Stapelberg
2021-10-18Merge pull request #4599 from stapelberg/docs-releaseIngo Bürk
Docs and release notes prep for the next release
2021-10-17release notes: plug headline features, order and clarify changelogMichael Stapelberg
2021-10-17userguide: use “all” criterion in title_window_icon examplesMichael Stapelberg
2021-10-07Merge pull request #4565 from stapelberg/skipOrestis Floros
i3-dmenu-desktop: ignore duplicate files and directories
2021-10-07i3-dmenu-desktop: ignore duplicate files and directoriesMichael Stapelberg
This is required when e.g. mpv is installed in the NixOS global system environment *and* in the user environment. Standalone reproducer: mkdir -p test1/share/applications test2/share ln -svf /usr/share/applications/i3.desktop test1/share/applications ln -svf $PWD/test1/share/applications test2/share export XDG_DATA_DIRS='test1/share:test2/share' i3-dmenu-desktop fixes #4522
2021-10-07Merge pull request #4566 from stapelberg/spellingOrestis Floros
fix travis/check-spelling.pl for updated API
2021-10-06fix travis/check-spelling.pl for updated APIMichael Stapelberg
2021-09-25Merge pull request #4538 from psychon/log-focus-outOrestis Floros
Log FocusOut events
2021-09-25Log FocusOut eventsUli Schlachter
Currently, i3 only logs FocusIn events. Thus, a debug log tells us when some window gets the focus. However, we don't know when it loses the focus. This commit remedies this by adding some log messages for this. Since I had no idea what to log, this just logs all the fields from the event plus tries to find a name for the window. Signed-off-by: Uli Schlachter <psychon@znc.in> Idea-in-context-of: https://github.com/i3/i3/issues/4532
2021-09-22GET_CONFIG: add raw/variable-processed contents of all config files (#4528)Michael Stapelberg
We do this by adding to included_files as i3 processes the configs. This should allow for easy debugging, without having to change how i3 processes config files. related to #4192
2021-09-16Merge pull request #4436 from psychon/check-cairo-statusOrestis Floros
Check cairo status in draw_util_surface_free()
2021-09-15Fix a minor memory leakUli Schlachter
When xcb_request_check() returns an error, something has to clean up and free this error. Signed-off-by: Uli Schlachter <psychon@znc.in>
2021-09-15Check cairo status in draw_util_surface_free()Uli Schlachter
When "something goes wrong" in cairo-land, the corresponding cairo object goes into an error state. These errors are sticky. Thus, it is enough to check for errors before destroying the context. This commit adds a check in draw_util_surface_free() to check the cairo context's status and print a log message if anything is wrong. The idea here is to help debugging drawing issues. Instead of "nothing visible", the corresponding log message hopefully helps debugging. This code would have saved me lots of time in figuring out why my pull request #4379 did not work. Signed-off-by: Uli Schlachter <psychon@znc.in>
2021-09-10Update docs to Discussions (#4503)Ingo Bürk
2021-09-10Merge pull request #4469 from vincentbernat/fix/handler-xrandrIngo Bürk
handlers.c: send an "output" event on monitor configuration change
2021-09-10doc: fix version number in release notesVincent Bernat
2021-09-10handlers.c: send an "output" event on monitor configuration changeVincent Bernat
When adding/removing a monitor, the outputs are likely to be modified. Send an IPC event "output", like when there is a screen configuration change. Signed-off-by: Vincent Bernat <vincent@bernat.ch>
2021-09-10Merge pull request #4502 from orestisfl/discussion-templateIngo Bürk
Add option to start a new discussion in the templates
2021-09-10Merge pull request #4501 from orestisfl/window-logsIngo Bürk
Make window id logging hex everywhere
2021-09-10Add option to start a new discussion in the templatesOrestis Floros
2021-09-09Make window id logging hex everywhereOrestis Floros
Right now some logs use %d and some use %08x and it can be confusing to follow.
2021-09-09Merge pull request #4497 from orestisfl/icons-title-alignOrestis Floros
Make window icons follow title alignment
2021-09-09Make window icons follow title alignmentOrestis Floros
Fixes #4464. Inspired by changes from #4453 but I didn't end up using the original code. For ALIGN_LEFT and ALIGN_CENTER icon offset is calculated first and then title offset is based on that. For ALIGN_RIGHT title offset is calculated first but we make sure that the icon fits in the window. Additionally, icons will now hide if there is not enough space to render them + their padding. Realistically, this won't happen in normal usecases. Effectively, icons have higher precedence over text: draw_util_text will hide text when it exceeds the max width and the code takes this into consideration. Icons will only hide when they can't fit at all, not in order to assure that the text can be displayed fully.
2021-09-08Merge pull request #4499 from orestisfl/gh-actions-logsIngo Bürk
GH actions: Archive complete logs on test failure
2021-09-08Merge pull request #4498 from orestisfl/memleakIngo Bürk
Free window role & machine
2021-09-08GH actions: Archive complete logs on test failureOrestis Floros
https://docs.github.com/en/actions/reference/usage-limits-billing-and-administration#artifact-and-log-retention-policy > By default, the artifacts and log files generated by workflows are > retained for 90 days before they are automatically deleted.
2021-09-07Free window role & machineOrestis Floros
2021-09-06Merge pull request #4495 from kgilmer/config-directives-no-file-no-errorIngo Bürk
Lower severity of missing include path specified from error to info.
2021-09-05Lower severity of missing include path specified from error to info. ↵Ken Gilmer
Addresses https://github.com/i3/i3/issues/4494.
2021-09-01Merge pull request #4491 from i3/orestisfl-patch-1Ingo Bürk
Add #4409 to release notes
2021-08-31Add #4409 to release notesOrestis Floros
2021-08-30Merge pull request #4454 from vincentbernat/feature/i3-notifyOrestis Floros
main: signal readiness by notifying systemd
2021-08-30main: signal readiness by notifying systemdVincent Bernat
This is useful if we want to be able to start some services depending on i3, notably some script using the socket or third-party bars like polybar. To make use of this change, user is expected to use the following stanza: ``` [Unit] Description=i3 window manager PartOf=graphical-session.target [Service] Type=notify ExecStart=/usr/bin/i3 ExecStopPost=/bin/systemctl --user stop graphical-session.target Restart=on-failure ``` Something similar is already possible using socket activation. For example, we could use: ``` [Unit] Description=i3 window manager socket PartOf=graphical-session.target [Socket] ListenStream=%t/i3.sock ExecStartPost=/bin/systemctl --user set-environment I3SOCK=%t/i3.sock ``` And other units could `Requires=i3.socket`. Unfortunately, not everything is using I3SOCK. Notably, `i3 --get-socketpath` does not and that's what i3ipcpp is doing. An alternative would be to patch `i3 --get-socketpath` to use I3SOCK if present, however, this may be a bit risky. Should we check the environment variable first or the root attribute? Another alternative not requiring any modification is to have a dedicated `i3-session.target`: ``` [Unit] Description=i3 session BindsTo=graphical-session.target Wants=wallpaper.service Wants=wallpaper.timer Wants=polybar.service Wants=i3-companion.service ``` And trigger it from i3: ``` exec_always --no-startup-id systemctl --user start --no-block i3-session.target ``` The proposed change being quite small, it seems harmless and low-maintenance. Signed-off-by: Vincent Bernat <vincent@bernat.ch>
2021-08-28Implement support for the WM_Sn selection (#4374)Uli Schlachter
Closes #536 When the WM_Sn selection is already owned at startup, this now either errors out or waits for the old selection owner to exit.
2021-07-30ipc: document scratchpad_state (#4466)Michael Stapelberg
fixes https://github.com/i3/i3/issues/4465
2021-07-26Merge pull request #4460 from iscgar/isaac/all-criterionIngo Bürk
Implement 'all' matching criterion
2021-07-24Implement 'all' matching criterionIsaac Garzon
This criterion matches all open windows, as a more readable (and correct) version of the 'class=".*"' criterion (more correct because it'll also match windows which don't have WM_CLASS set yet).
2021-07-05Use mkdirp() in get_process_filename() (#4397)tomty89
Avoids race condition in case multiple i3 instances are started in parallel with e.g. systemd user units for multiple X(vfb) servers.
2021-06-13Implement showing window icons in titlebar (#4439)Michael Stapelberg
This feature defaults to off, and can be turned on for individual windows, or (with for_window) for all new windows. See the userguide change. This commit is partially based on work by: • Marius Muja • mickael9 • Esteve Varela Colominas • Bernardo Menicagli
2021-06-02Implement include config directive (#4420)Michael Stapelberg
The implementation uses wordexp(3) just like sway: https://github.com/i3/i3/issues/1197#issuecomment-226844106 Thanks to jajm for their implementation at https://github.com/jajm/i3/commit/bb55709d0aa0731f7b3c641871731a992ababb1a This required refactoring the config parser to be re-entrant (no more global state) and to return an error instead of dying. In case a file cannot be opened, i3 reports an error but proceeds with the remaining configuration. Key bindings can be overwritten or removed using the new --remove flag of the bindsym/bindcode directive. All files that were successfully included are displayed in i3 --moreversion. One caveat is i3 config file variable expansion, see the note in the userguide. fixes #4192
2021-05-23Merge pull request #4430 from stapelberg/actionsIngo Bürk
README: update build status badge for GitHub Actions
2021-05-23README: update build status badge for GitHub ActionsMichael Stapelberg
2021-05-23switch from Travis to GitHub actions for continuous integration (CI) (#4428)Michael Stapelberg
2021-05-20docs/ipc: Explicitly state null as a possible typeVladimir Panteleev
This helps write correct descriptions of the JSON schema for strongly typed languages that support deserializing to native types (and require a different type for null).
2021-05-20docs/ipc: Add descriptions of all message payloadsVladimir Panteleev
These seemed to be inconsistently specified. Particularly, the "SYNC" message payload was not described anywhere. Even when the payload is empty, it is helpful to specify that explicitly, as it prevents the reader from having to guess whether if it's really empty, or otherwise somehow implicitly obvious. The "Reply format" section is now "Messages and replies", and covers both the reply format and the format of sent messages.
2021-05-20docs/ipc: Explicitly state that reply types correspond to message typesVladimir Panteleev
Help avoid some squinting to make sure everything actually matches.
2021-05-20docs/ipc: Fix inconsistent whitespaceVladimir Panteleev
2021-05-20docs/ipc: Re-order and clarify reply formatVladimir Panteleev
- Make sure to place the description of the packet before the description of the payload. - Describe the relationship of messages and replies. - Add note on pipelining.
2021-05-20docs/ipc: Fix grammarVladimir Panteleev
Add missing "it". Also add two instances of "a", which sounds more correct to me.