It's possible for this to be null when powering on display from a
powered off state.
```
==1947040==ERROR: AddressSanitizer: heap-use-after-free on address 0x7ce3d56a7c60 at pc 0x00000048d0c4 bp 0x7ffc25f0a5b0 sp 0x7ffc25f0a5a8
READ of size 8 at 0x7ce3d56a7c60 thread T0
#0 0x00000048d0c3 in transaction_add_node ../sway/desktop/transaction.c:174
#1 0x00000048d0c3 in _transaction_commit_dirty ../sway/desktop/transaction.c:955
#2 0x00000048d0c3 in _transaction_commit_dirty ../sway/desktop/transaction.c:941
#3 0x000000522581 in apply_resolved_output_configs ../sway/config/output.c:1022
#4 0x000000522581 in apply_output_configs ../sway/config/output.c:1070
#5 0x00000047445f in timer_modeset_handle ../sway/desktop/output.c:407
#6 0x7fa3d8b1e4bc in wl_timer_heap_dispatch ../src/event-loop.c:529
#7 0x7fa3d8b1e4bc in wl_event_loop_dispatch ../src/event-loop.c:1052
#8 0x7fa3d8b200b4 in wl_display_run ../src/wayland-server.c:1584
#9 0x00000041fc45 in main ../sway/main.c:376
#10 0x7fa3d702b2fa in __libc_start_call_main (/lib64/libc.so.6+0x2b2fa) (BuildId: 8523b213e7586a93ab00f6dd476418b1e521e62c)
#11 0x7fa3d702b3ca in __libc_start_main_impl (/lib64/libc.so.6+0x2b3ca) (BuildId: 8523b213e7586a93ab00f6dd476418b1e521e62c)
#12 0x000000421cb4 in _start ../sysdeps/x86_64/start.S:115
0x7ce3d56a7c60 is located 32 bytes inside of 424-byte region [0x7ce3d56a7c40,0x7ce3d56a7de8)
freed by thread T0 here:
#0 0x7fa3d93208eb (/lib64/libasan.so.8+0x1208eb) (BuildId: cbfe49f3b7600c4f194d4c54774c977296e9d98a)
#1 0x00000048701f in transaction_destroy ../sway/desktop/transaction.c:68
#2 0x00000048701f in transaction_progress ../sway/desktop/transaction.c:766
#3 0x000000487185 in transaction_commit_pending ../sway/desktop/transaction.c:884
#4 0x000000487185 in transaction_commit_pending ../sway/desktop/transaction.c:876
#5 0x000000487185 in transaction_progress ../sway/desktop/transaction.c:774
#6 0x00000048ba69 in handle_timeout ../sway/desktop/transaction.c:782
#7 0x7fa3d8b1e4bc in wl_timer_heap_dispatch ../src/event-loop.c:529
#8 0x7fa3d8b1e4bc in wl_event_loop_dispatch ../src/event-loop.c:1052
previously allocated by thread T0 here:
#0 0x7fa3d93215a3 in calloc (/lib64/libasan.so.8+0x1215a3) (BuildId: cbfe49f3b7600c4f194d4c54774c977296e9d98a)
#1 0x0000005ed71c in output_create ../sway/tree/output.c:105
#2 0x00000047bfa4 in handle_new_output ../sway/desktop/output.c:572
#3 0x7fa3d8b1c73b in wl_signal_emit_mutable ../src/wayland-server.c:2369
#4 0x7ffc25f0a63f ([stack]+0x2963f)
SUMMARY: AddressSanitizer: heap-use-after-free ../sway/desktop/transaction.c:174 in transaction_add_node
```
|
||
|---|---|---|
| .builds | ||
| .github/ISSUE_TEMPLATE | ||
| assets | ||
| client | ||
| common | ||
| completions | ||
| include | ||
| protocols | ||
| sway | ||
| swaybar | ||
| swaymsg | ||
| swaynag | ||
| .editorconfig | ||
| .gitignore | ||
| .mailmap | ||
| config.in | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| meson.build | ||
| meson_options.txt | ||
| README.ar.md | ||
| README.az.md | ||
| README.cs.md | ||
| README.de.md | ||
| README.dk.md | ||
| README.es.md | ||
| README.fr.md | ||
| README.ge.md | ||
| README.gr.md | ||
| README.hi.md | ||
| README.hu.md | ||
| README.ir.md | ||
| README.it.md | ||
| README.ja.md | ||
| README.ko.md | ||
| README.md | ||
| README.nl.md | ||
| README.no.md | ||
| README.pl.md | ||
| README.pt.md | ||
| README.ro.md | ||
| README.ru.md | ||
| README.sr.md | ||
| README.sv.md | ||
| README.tr.md | ||
| README.uk.md | ||
| README.zh-CN.md | ||
| README.zh-TW.md | ||
| release.sh | ||
| sway.desktop | ||
sway
English - عربي - Azərbaycanca - Česky - Deutsch - Dansk - Español - Français - ქართული - Ελληνικά - हिन्दी - Magyar - فارسی - Italiano - 日本語 - 한국어 - Nederlands - Norsk - Polski - Português - Română - Русский - Српски - Svenska - Türkçe - Українська - 中文-简体 - 中文-繁體
sway is an i3-compatible Wayland compositor. Read the FAQ. Join the IRC channel (#sway on irc.libera.chat).
Release Signatures
Releases are signed with E88F5E48 and published on GitHub.
Installation
From Packages
Sway is available in many distributions. Try installing the "sway" package for yours.
Compiling from Source
Check out this wiki page if you want to build the HEAD of sway and wlroots for testing or development.
Install dependencies:
- meson *
- wlroots
- wayland
- wayland-protocols *
- pcre2
- json-c
- pango
- cairo
- gdk-pixbuf2 (optional: additional image formats for system tray)
- swaybg (optional: wallpaper)
- scdoc (optional: man pages) *
- git (optional: version info) *
* Compile-time dep
Run these commands:
meson setup build/
ninja -C build/
sudo ninja -C build/ install
Configuration
If you already use i3, then copy your i3 config to ~/.config/sway/config and
it'll work out of the box. Otherwise, copy the sample configuration file to
~/.config/sway/config. It is usually located at /etc/sway/config.
Run man 5 sway for information on the configuration.
Running
Run sway from a TTY or from a display manager.